@burdenoff/microfe-devportal 2026.623.5 → 2026.623.7

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 (45) hide show
  1. package/dist/devportal/DevportalRoutes.js +123 -108
  2. package/dist/devportal/DevportalRoutes.js.map +1 -1
  3. package/dist/devportal/components/SectionNav.js +71 -5
  4. package/dist/devportal/components/SectionNav.js.map +1 -0
  5. package/dist/devportal/components/index.js +1 -1
  6. package/dist/devportal/hooks/useGraphQL.js +1 -1
  7. package/dist/devportal/pages/AdminReviewPage.js +39 -39
  8. package/dist/devportal/pages/AnalyticsDashboardPage.js +54 -54
  9. package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
  10. package/dist/devportal/pages/ApiKeysPage.js +53 -53
  11. package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
  12. package/dist/devportal/pages/AppLogsPage.js +9 -9
  13. package/dist/devportal/pages/ApplicationDetailPage.js +462 -462
  14. package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
  15. package/dist/devportal/pages/ApplicationVersionsPage.js +120 -120
  16. package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
  17. package/dist/devportal/pages/ApplicationsPage.js +73 -73
  18. package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
  19. package/dist/devportal/pages/CreateApiKeyPage.js +20 -20
  20. package/dist/devportal/pages/CreateApplicationPage.js +32 -32
  21. package/dist/devportal/pages/CreateOAuthClientPage.js +18 -18
  22. package/dist/devportal/pages/CreateOrganizationPage.js +12 -12
  23. package/dist/devportal/pages/CreateWebhookPage.js +23 -23
  24. package/dist/devportal/pages/DashboardPage.js +23 -23
  25. package/dist/devportal/pages/DelegationsPage.js +22 -22
  26. package/dist/devportal/pages/EditApplicationPage.js +283 -283
  27. package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
  28. package/dist/devportal/pages/ListingPreviewPage.js +9 -9
  29. package/dist/devportal/pages/OAuthClientDetailPage.js +15 -15
  30. package/dist/devportal/pages/OAuthClientsPage.js +14 -14
  31. package/dist/devportal/pages/OrganizationDetailPage.js +84 -84
  32. package/dist/devportal/pages/OrganizationMembersPage.js +260 -260
  33. package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
  34. package/dist/devportal/pages/OrganizationsPage.js +16 -16
  35. package/dist/devportal/pages/PublishPage.js +16 -16
  36. package/dist/devportal/pages/PublisherProfilePage.js +18 -18
  37. package/dist/devportal/pages/RevenueDashboardPage.js +29 -29
  38. package/dist/devportal/pages/SettingsPage.js +17 -17
  39. package/dist/devportal/pages/SetupPage.js +99 -99
  40. package/dist/devportal/pages/SetupPage.js.map +1 -1
  41. package/dist/devportal/pages/WebhookDetailPage.js +143 -143
  42. package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
  43. package/dist/devportal/pages/WebhooksPage.js +133 -133
  44. package/dist/devportal/pages/WebhooksPage.js.map +1 -1
  45. package/package.json +1 -1
@@ -1,63 +1,63 @@
1
1
  import { useDevportal as e } from "../providers/DevportalProvider.js";
2
2
  import { EmptyState as t } from "../components/EmptyState.js";
3
- import { PageLayout as n } from "../components/PageLayout.js";
4
- import { StatusBadge as r } from "../components/StatusBadge.js";
5
- import { SelectionCheckbox as i } from "../components/SelectionCheckbox.js";
6
- import { DataTable as ee } from "../components/DataTable.js";
7
- import { InputField as te, TextareaField as ne } from "../components/FormField.js";
8
- import { ConfirmDialog as a } from "../components/ConfirmDialog.js";
9
- import { useCreateApplicationVersionMutation as re, useDeprecateApplicationVersionMutation as ie, useGetApplicationQuery as ae, useGetApplicationVersionsQuery as oe, usePublishApplicationVersionMutation as se } from "../../generated/global-operations.js";
10
- import { PermissionGuard as ce } from "../components/PermissionGuard.js";
3
+ import { useCreateApplicationVersionMutation as n, useDeprecateApplicationVersionMutation as r, useGetApplicationQuery as ee, useGetApplicationVersionsQuery as te, usePublishApplicationVersionMutation as ne } from "../../generated/global-operations.js";
4
+ import { PageLayout as i } from "../components/PageLayout.js";
5
+ import { StatusBadge as re } from "../components/StatusBadge.js";
6
+ import { SelectionCheckbox as a } from "../components/SelectionCheckbox.js";
7
+ import { DataTable as ie } from "../components/DataTable.js";
8
+ import { InputField as ae, TextareaField as oe } from "../components/FormField.js";
9
+ import { ConfirmDialog as o } from "../components/ConfirmDialog.js";
10
+ import { PermissionGuard as se } from "../components/PermissionGuard.js";
11
11
  import "../components/index.js";
12
- import { DEVPORTAL_PERMISSIONS as o } from "../constants/permissions.js";
13
- import { useDevportalPermission as s } from "../hooks/usePermission.js";
12
+ import { DEVPORTAL_PERMISSIONS as s } from "../constants/permissions.js";
13
+ import { useDevportalPermission as c } from "../hooks/usePermission.js";
14
14
  import "../hooks/index.js";
15
- import le from "../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/format.js";
16
- import { usePackageUpload as ue } from "../hooks/usePackageUpload.js";
17
- import { useCallback as de, useEffect as fe, useMemo as c, useRef as pe, useState as l } from "react";
18
- import { useI18n as me } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
19
- import { AlertCircle as u, Archive as he, CheckCircle as d, Clock as ge, FileJson as _e, Loader2 as f, Package as p, Plus as m, Upload as h } from "lucide-react";
15
+ import ce from "../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/format.js";
16
+ import { usePackageUpload as le } from "../hooks/usePackageUpload.js";
17
+ import { useCallback as ue, useEffect as de, useMemo as l, useRef as fe, useState as u } from "react";
18
+ import { useI18n as pe } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
19
+ import { AlertCircle as d, Archive as me, CheckCircle as f, Clock as he, FileJson as ge, Loader2 as p, Package as m, Plus as h, Upload as _e } from "lucide-react";
20
20
  import { useParams as ve } from "react-router-dom";
21
21
  import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
22
22
  //#region src/devportal/pages/ApplicationVersionsPage.tsx
23
23
  var y = () => {
24
- let { t: y } = me(), b = (e, t) => {
24
+ let { t: y } = pe(), b = (e, t) => {
25
25
  let n = y(e);
26
26
  return n === e ? t : n;
27
- }, { allowed: x } = s(o.APP_VERSION_CREATE), { allowed: S } = s(o.APP_VERSION_PUBLISH), { allowed: C } = s(o.APP_VERSION_DEPRECATE), { appId: w } = ve(), { workspacesGatewayUrl: ye, authToken: be, workspaceId: xe, getWorkspaceToken: Se } = e(), { upload: T, uploading: E, progress: Ce, error: D } = ue(ye, be, xe, Se), O = pe(null), [k, A] = l(!1), [j, M] = l({
27
+ }, { allowed: x } = c(s.APP_VERSION_CREATE), { allowed: S } = c(s.APP_VERSION_PUBLISH), { allowed: C } = c(s.APP_VERSION_DEPRECATE), { appId: w } = ve(), { workspacesGatewayUrl: ye, authToken: be, workspaceId: xe, getWorkspaceToken: Se } = e(), { upload: T, uploading: E, progress: Ce, error: D } = le(ye, be, xe, Se), O = fe(null), [k, A] = u(!1), [j, M] = u({
28
28
  version: "",
29
29
  releaseNotes: "",
30
30
  changelog: "",
31
31
  packageUrl: "",
32
32
  packageSize: "",
33
33
  manifestJson: ""
34
- }), [N, P] = l("file"), [we, F] = l(null), [I, L] = l(null), [R, z] = l(/* @__PURE__ */ new Set()), [B, V] = l(null), { data: H } = ae({
34
+ }), [N, P] = u("file"), [F, I] = u(null), [L, R] = u(null), [z, B] = u(/* @__PURE__ */ new Set()), [V, H] = u(null), { data: U } = ee({
35
35
  variables: { id: w ?? "" },
36
36
  skip: !w,
37
37
  fetchPolicy: "cache-first"
38
38
  });
39
- fe(() => {
40
- let e = H?.application?.name;
39
+ de(() => {
40
+ let e = U?.application?.name;
41
41
  if (!w || !e) return;
42
42
  let t = window.__breadcrumbRegistry;
43
43
  return t?.register(w, e), () => t?.unregister(w);
44
- }, [w, H?.application?.name]);
45
- let { data: U, loading: Te, error: W } = oe({
44
+ }, [w, U?.application?.name]);
45
+ let { data: W, loading: we, error: G } = te({
46
46
  variables: { applicationId: w },
47
47
  skip: !w,
48
48
  fetchPolicy: "cache-and-network"
49
- }), [Ee, { loading: De }] = re({ refetchQueries: ["GetApplicationVersions"] }), [G] = se({ refetchQueries: ["GetApplicationVersions"] }), [K] = ie({ refetchQueries: ["GetApplicationVersions"] }), q = c(() => U?.application?.versions?.edges?.map((e) => e.node) ?? [], [U?.application?.versions]), J = c(() => q.filter((e) => R.has(e.id)), [q, R]), Y = c(() => J.filter((e) => e.status?.toUpperCase() === "DRAFT"), [J]), X = c(() => J.filter((e) => e.status?.toUpperCase() === "PUBLISHED" && !e.isLatest), [J]), Z = q.length > 0 && q.every((e) => R.has(e.id)), Oe = q.some((e) => R.has(e.id)) && !Z, ke = async () => {
49
+ }), [Te, { loading: Ee }] = n({ refetchQueries: ["GetApplicationVersions"] }), [K] = ne({ refetchQueries: ["GetApplicationVersions"] }), [q] = r({ refetchQueries: ["GetApplicationVersions"] }), J = l(() => W?.application?.versions?.edges?.map((e) => e.node) ?? [], [W?.application?.versions]), Y = l(() => J.filter((e) => z.has(e.id)), [J, z]), X = l(() => Y.filter((e) => e.status?.toUpperCase() === "DRAFT"), [Y]), Z = l(() => Y.filter((e) => e.status?.toUpperCase() === "PUBLISHED" && !e.isLatest), [Y]), Q = J.length > 0 && J.every((e) => z.has(e.id)), De = J.some((e) => z.has(e.id)) && !Q, Oe = async () => {
50
50
  if (!w || !j.version.trim()) return;
51
- F(null);
51
+ I(null);
52
52
  let e;
53
53
  if (N === "manifest" && j.manifestJson.trim()) try {
54
54
  e = JSON.parse(j.manifestJson);
55
55
  } catch {
56
- F("Invalid JSON in manifest — please check your input.");
56
+ I("Invalid JSON in manifest — please check your input.");
57
57
  return;
58
58
  }
59
59
  try {
60
- await Ee({ variables: {
60
+ await Te({ variables: {
61
61
  applicationId: w,
62
62
  input: {
63
63
  version: j.version,
@@ -74,11 +74,11 @@ var y = () => {
74
74
  packageUrl: "",
75
75
  packageSize: "",
76
76
  manifestJson: ""
77
- }), P("file"), L(b("devportal.versionCreatedSuccess", "Version created successfully"));
77
+ }), P("file"), R(b("devportal.versionCreatedSuccess", "Version created successfully"));
78
78
  } catch (e) {
79
- F(e instanceof Error ? e.message : b("devportal.versionCreateFailed", "Failed to create version"));
79
+ I(e instanceof Error ? e.message : b("devportal.versionCreateFailed", "Failed to create version"));
80
80
  }
81
- }, Ae = de(async (e) => {
81
+ }, ke = ue(async (e) => {
82
82
  let t = e.target.files?.[0];
83
83
  if (t) {
84
84
  e.target.value = "";
@@ -91,73 +91,73 @@ var y = () => {
91
91
  }));
92
92
  } catch {}
93
93
  }
94
- }, [T]), je = async (e) => {
95
- F(null), L(null);
94
+ }, [T]), Ae = async (e) => {
95
+ I(null), R(null);
96
96
  try {
97
- await G({ variables: { id: e } }), L(b("devportal.versionPublishedSuccess", "Version published successfully"));
97
+ await K({ variables: { id: e } }), R(b("devportal.versionPublishedSuccess", "Version published successfully"));
98
98
  } catch (e) {
99
- F(e instanceof Error ? e.message : b("devportal.versionPublishFailed", "Failed to publish version"));
99
+ I(e instanceof Error ? e.message : b("devportal.versionPublishFailed", "Failed to publish version"));
100
100
  }
101
- }, Me = async (e) => {
102
- F(null), L(null);
101
+ }, je = async (e) => {
102
+ I(null), R(null);
103
103
  try {
104
- await K({ variables: { id: e } }), L(b("devportal.versionDeprecatedSuccess", "Version deprecated successfully"));
104
+ await q({ variables: { id: e } }), R(b("devportal.versionDeprecatedSuccess", "Version deprecated successfully"));
105
105
  } catch (e) {
106
- F(e instanceof Error ? e.message : b("devportal.versionDeprecateFailed", "Failed to deprecate version"));
106
+ I(e instanceof Error ? e.message : b("devportal.versionDeprecateFailed", "Failed to deprecate version"));
107
107
  }
108
- }, Ne = (e) => {
108
+ }, Me = (e) => {
109
109
  let t = e.status?.toUpperCase();
110
- return t === "PUBLISHED" && e.isLatest ? /* @__PURE__ */ _(d, {
110
+ return t === "PUBLISHED" && e.isLatest ? /* @__PURE__ */ _(f, {
111
111
  size: 16,
112
112
  className: "text-status-success-text"
113
- }) : t === "DRAFT" ? /* @__PURE__ */ _(ge, {
113
+ }) : t === "DRAFT" ? /* @__PURE__ */ _(he, {
114
114
  size: 16,
115
115
  className: "text-status-warning-text"
116
- }) : t === "DEPRECATED" ? /* @__PURE__ */ _(he, {
116
+ }) : t === "DEPRECATED" ? /* @__PURE__ */ _(me, {
117
117
  size: 16,
118
118
  className: "text-text-secondary"
119
- }) : /* @__PURE__ */ _(p, {
119
+ }) : /* @__PURE__ */ _(m, {
120
120
  size: 16,
121
121
  className: "text-accent-blue"
122
122
  });
123
- }, Pe = (e, t) => {
124
- z((n) => {
123
+ }, Ne = (e, t) => {
124
+ B((n) => {
125
125
  let r = new Set(n);
126
126
  return t ? r.add(e) : r.delete(e), r;
127
127
  });
128
- }, Q = (e) => {
129
- z((t) => {
128
+ }, Pe = (e) => {
129
+ B((t) => {
130
130
  let n = new Set(t);
131
- return q.forEach((t) => {
131
+ return J.forEach((t) => {
132
132
  e ? n.add(t.id) : n.delete(t.id);
133
133
  }), n;
134
134
  });
135
- }, $ = () => z(/* @__PURE__ */ new Set());
136
- return Te && !U ? /* @__PURE__ */ _(n, {
135
+ }, $ = () => B(/* @__PURE__ */ new Set());
136
+ return we && !W ? /* @__PURE__ */ _(i, {
137
137
  title: b("devportal.versionManagement", "Version Management"),
138
138
  description: b("devportal.versionManagementDescription", "Manage your application versions"),
139
139
  backLink: `/apps/${w}`,
140
140
  backLabel: b("devportal.backToApplication", "Back to Application"),
141
141
  children: /* @__PURE__ */ _("div", {
142
142
  className: "flex items-center justify-center py-16",
143
- children: /* @__PURE__ */ _(f, { className: "h-8 w-8 animate-spin text-muted-foreground" })
143
+ children: /* @__PURE__ */ _(p, { className: "h-8 w-8 animate-spin text-muted-foreground" })
144
144
  })
145
- }) : W && !U ? /* @__PURE__ */ _(n, {
145
+ }) : G && !W ? /* @__PURE__ */ _(i, {
146
146
  title: b("devportal.versionManagement", "Version Management"),
147
147
  description: b("devportal.versionManagementDescription", "Manage your application versions"),
148
148
  backLink: `/apps/${w}`,
149
149
  backLabel: b("devportal.backToApplication", "Back to Application"),
150
150
  children: /* @__PURE__ */ _(t, {
151
- icon: /* @__PURE__ */ _(u, {
151
+ icon: /* @__PURE__ */ _(d, {
152
152
  size: 32,
153
153
  className: "text-status-error-text"
154
154
  }),
155
155
  title: b("devportal.failedToLoadVersions", "Failed to load versions"),
156
- description: W.message || b("devportal.versionsLoadError", "An error occurred while loading versions")
156
+ description: G.message || b("devportal.versionsLoadError", "An error occurred while loading versions")
157
157
  })
158
- }) : /* @__PURE__ */ _(ce, {
159
- permission: o.APP_READ,
160
- children: /* @__PURE__ */ v(n, {
158
+ }) : /* @__PURE__ */ _(se, {
159
+ permission: s.APP_READ,
160
+ children: /* @__PURE__ */ v(i, {
161
161
  title: b("devportal.versionManagement", "Version Management"),
162
162
  description: b("devportal.versionManagementDescription", "Manage your application versions"),
163
163
  backLink: `/apps/${w}`,
@@ -167,40 +167,40 @@ var y = () => {
167
167
  disabled: !x,
168
168
  "aria-disabled": !x,
169
169
  className: "inline-flex items-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 disabled:opacity-50",
170
- children: [/* @__PURE__ */ _(m, { size: 16 }), b("devportal.newVersion", "New Version")]
170
+ children: [/* @__PURE__ */ _(h, { size: 16 }), b("devportal.newVersion", "New Version")]
171
171
  }),
172
172
  children: [
173
- we && /* @__PURE__ */ v("div", {
173
+ F && /* @__PURE__ */ v("div", {
174
174
  className: "rounded-lg border border-border-subtle bg-status-error-bg-subtle p-3 flex items-center gap-2 text-sm text-status-error-text",
175
175
  children: [
176
- /* @__PURE__ */ _(u, {
176
+ /* @__PURE__ */ _(d, {
177
177
  size: 16,
178
178
  className: "flex-shrink-0"
179
179
  }),
180
- we,
180
+ F,
181
181
  /* @__PURE__ */ _("button", {
182
- onClick: () => F(null),
182
+ onClick: () => I(null),
183
183
  className: "ml-auto text-status-error-text hover:text-status-error-text",
184
184
  children: b("devportal.dismiss", "Dismiss")
185
185
  })
186
186
  ]
187
187
  }),
188
- I && /* @__PURE__ */ v("div", {
188
+ L && /* @__PURE__ */ v("div", {
189
189
  className: "rounded-lg border border-border-subtle bg-status-success-bg-subtle p-3 flex items-center gap-2 text-sm text-status-success-text",
190
190
  children: [
191
- /* @__PURE__ */ _(d, {
191
+ /* @__PURE__ */ _(f, {
192
192
  size: 16,
193
193
  className: "flex-shrink-0"
194
194
  }),
195
- I,
195
+ L,
196
196
  /* @__PURE__ */ _("button", {
197
- onClick: () => L(null),
197
+ onClick: () => R(null),
198
198
  className: "ml-auto text-status-success-text hover:text-status-success-text",
199
199
  children: b("devportal.dismiss", "Dismiss")
200
200
  })
201
201
  ]
202
202
  }),
203
- q.length > 0 && /* @__PURE__ */ _("div", {
203
+ J.length > 0 && /* @__PURE__ */ _("div", {
204
204
  className: "rounded-lg border bg-card p-4",
205
205
  children: /* @__PURE__ */ v("div", {
206
206
  className: "flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between",
@@ -208,16 +208,16 @@ var y = () => {
208
208
  className: "flex flex-wrap items-center gap-3",
209
209
  children: [/* @__PURE__ */ v("div", {
210
210
  className: "flex items-center gap-2",
211
- children: [/* @__PURE__ */ _(i, {
212
- checked: Z,
213
- indeterminate: Oe,
214
- onChange: Q,
211
+ children: [/* @__PURE__ */ _(a, {
212
+ checked: Q,
213
+ indeterminate: De,
214
+ onChange: Pe,
215
215
  ariaLabel: "Select all visible versions"
216
216
  }), /* @__PURE__ */ _("span", {
217
217
  className: "text-sm font-medium",
218
218
  children: b("devportal.selectAllVisible", "Select all visible")
219
219
  })]
220
- }), R.size > 0 && /* @__PURE__ */ _("button", {
220
+ }), z.size > 0 && /* @__PURE__ */ _("button", {
221
221
  onClick: $,
222
222
  className: "text-sm text-muted-foreground hover:text-foreground",
223
223
  children: b("devportal.clearSelection", "Clear selection")
@@ -227,44 +227,44 @@ var y = () => {
227
227
  children: [
228
228
  /* @__PURE__ */ v("span", {
229
229
  className: "rounded-full bg-muted px-3 py-1 text-sm font-medium text-muted-foreground",
230
- children: [R.size, " selected"]
230
+ children: [z.size, " selected"]
231
231
  }),
232
232
  /* @__PURE__ */ v("button", {
233
- onClick: () => V("publish"),
234
- disabled: Y.length === 0 || !S,
233
+ onClick: () => H("publish"),
234
+ disabled: X.length === 0 || !S,
235
235
  "aria-disabled": !S,
236
236
  className: "rounded-md border border-status-success-bg px-3 py-2 text-sm font-medium text-status-success-text hover:bg-status-success-bg-subtle disabled:cursor-not-allowed disabled:opacity-50",
237
- children: [b("devportal.publishSelected", "Publish Selected"), Y.length > 0 ? ` (${Y.length})` : ""]
237
+ children: [b("devportal.publishSelected", "Publish Selected"), X.length > 0 ? ` (${X.length})` : ""]
238
238
  }),
239
239
  /* @__PURE__ */ v("button", {
240
- onClick: () => V("deprecate"),
241
- disabled: X.length === 0 || !C,
240
+ onClick: () => H("deprecate"),
241
+ disabled: Z.length === 0 || !C,
242
242
  "aria-disabled": !C,
243
243
  className: "rounded-md border border-status-warning-bg px-3 py-2 text-sm font-medium text-status-warning-text hover:bg-status-warning-bg-subtle disabled:cursor-not-allowed disabled:opacity-50",
244
- children: [b("devportal.deprecateSelected", "Deprecate Selected"), X.length > 0 ? ` (${X.length})` : ""]
244
+ children: [b("devportal.deprecateSelected", "Deprecate Selected"), Z.length > 0 ? ` (${Z.length})` : ""]
245
245
  })
246
246
  ]
247
247
  })]
248
248
  })
249
249
  }),
250
- q.length > 0 ? /* @__PURE__ */ _(ee, {
251
- data: q,
250
+ J.length > 0 ? /* @__PURE__ */ _(ie, {
251
+ data: J,
252
252
  keyField: "id",
253
253
  columns: [
254
254
  {
255
255
  key: "select",
256
- header: /* @__PURE__ */ _(i, {
257
- checked: Z,
258
- indeterminate: Oe,
259
- onChange: Q,
256
+ header: /* @__PURE__ */ _(a, {
257
+ checked: Q,
258
+ indeterminate: De,
259
+ onChange: Pe,
260
260
  ariaLabel: "Select all visible versions"
261
261
  }),
262
262
  className: "w-12",
263
263
  render: (e) => /* @__PURE__ */ _("div", {
264
264
  onClick: (e) => e.stopPropagation(),
265
- children: /* @__PURE__ */ _(i, {
266
- checked: R.has(e.id),
267
- onChange: (t) => Pe(e.id, t),
265
+ children: /* @__PURE__ */ _(a, {
266
+ checked: z.has(e.id),
267
+ onChange: (t) => Ne(e.id, t),
268
268
  ariaLabel: `Select version ${e.version}`
269
269
  })
270
270
  })
@@ -275,7 +275,7 @@ var y = () => {
275
275
  render: (e) => /* @__PURE__ */ v("div", {
276
276
  className: "flex items-center gap-2",
277
277
  children: [
278
- Ne(e),
278
+ Me(e),
279
279
  /* @__PURE__ */ _("span", {
280
280
  className: "font-mono font-medium",
281
281
  children: e.version
@@ -302,12 +302,12 @@ var y = () => {
302
302
  {
303
303
  key: "status",
304
304
  header: b("devportal.status", "Status"),
305
- render: (e) => /* @__PURE__ */ _(r, { status: e.status })
305
+ render: (e) => /* @__PURE__ */ _(re, { status: e.status })
306
306
  },
307
307
  {
308
308
  key: "publishedAt",
309
309
  header: b("devportal.published", "Published"),
310
- render: (e) => e.publishedAt ? le(new Date(e.publishedAt), "MMM d, yyyy") : "-"
310
+ render: (e) => e.publishedAt ? ce(new Date(e.publishedAt), "MMM d, yyyy") : "-"
311
311
  },
312
312
  {
313
313
  key: "actions",
@@ -319,38 +319,38 @@ var y = () => {
319
319
  className: "text-xs text-primary hover:underline disabled:opacity-50",
320
320
  disabled: !S,
321
321
  "aria-disabled": !S,
322
- onClick: () => je(e.id),
322
+ onClick: () => Ae(e.id),
323
323
  children: b("devportal.publish", "Publish")
324
324
  }), e.status?.toUpperCase() === "PUBLISHED" && !e.isLatest && /* @__PURE__ */ _("button", {
325
325
  className: "text-xs text-status-warning-text hover:underline disabled:opacity-50",
326
326
  disabled: !C,
327
327
  "aria-disabled": !C,
328
- onClick: () => Me(e.id),
328
+ onClick: () => je(e.id),
329
329
  children: b("devportal.deprecate", "Deprecate")
330
330
  })]
331
331
  })
332
332
  }
333
333
  ]
334
334
  }) : /* @__PURE__ */ _(t, {
335
- icon: /* @__PURE__ */ _(p, { size: 32 }),
335
+ icon: /* @__PURE__ */ _(m, { size: 32 }),
336
336
  title: b("devportal.noVersionsYet", "No versions yet"),
337
337
  description: b("devportal.noVersionsYetDescription", "Create your first version to start distributing your app"),
338
338
  action: /* @__PURE__ */ v("button", {
339
339
  onClick: () => A(!0),
340
340
  className: "inline-flex items-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90",
341
- children: [/* @__PURE__ */ _(m, { size: 16 }), b("devportal.createVersion", "Create Version")]
341
+ children: [/* @__PURE__ */ _(h, { size: 16 }), b("devportal.createVersion", "Create Version")]
342
342
  })
343
343
  }),
344
- k && /* @__PURE__ */ _(a, {
344
+ k && /* @__PURE__ */ _(o, {
345
345
  open: k,
346
346
  onOpenChange: A,
347
- onConfirm: ke,
347
+ onConfirm: Oe,
348
348
  title: b("devportal.createNewVersion", "Create New Version"),
349
- confirmLabel: De ? b("devportal.creating", "Creating...") : b("devportal.createVersion", "Create Version"),
349
+ confirmLabel: Ee ? b("devportal.creating", "Creating...") : b("devportal.createVersion", "Create Version"),
350
350
  children: /* @__PURE__ */ v("div", {
351
351
  className: "space-y-4",
352
352
  children: [
353
- /* @__PURE__ */ _(te, {
353
+ /* @__PURE__ */ _(ae, {
354
354
  label: b("devportal.versionNumber", "Version Number"),
355
355
  value: j.version,
356
356
  onChange: (e) => M({
@@ -374,12 +374,12 @@ var y = () => {
374
374
  type: "button",
375
375
  onClick: () => P("file"),
376
376
  className: `inline-flex items-center gap-1.5 rounded px-3 py-1 text-xs font-medium transition-colors ${N === "file" ? "bg-primary text-primary-foreground" : "hover:bg-muted"}`,
377
- children: [/* @__PURE__ */ _(h, { size: 12 }), " Upload zip"]
377
+ children: [/* @__PURE__ */ _(_e, { size: 12 }), " Upload zip"]
378
378
  }), /* @__PURE__ */ v("button", {
379
379
  type: "button",
380
380
  onClick: () => P("manifest"),
381
381
  className: `inline-flex items-center gap-1.5 rounded px-3 py-1 text-xs font-medium transition-colors ${N === "manifest" ? "bg-primary text-primary-foreground" : "hover:bg-muted"}`,
382
- children: [/* @__PURE__ */ _(_e, { size: 12 }), " Paste manifest JSON"]
382
+ children: [/* @__PURE__ */ _(ge, { size: 12 }), " Paste manifest JSON"]
383
383
  })]
384
384
  }),
385
385
  N === "file" && /* @__PURE__ */ v("div", {
@@ -392,7 +392,7 @@ var y = () => {
392
392
  type: "file",
393
393
  accept: ".zip",
394
394
  className: "hidden",
395
- onChange: Ae
395
+ onChange: ke
396
396
  }),
397
397
  /* @__PURE__ */ _("button", {
398
398
  type: "button",
@@ -400,7 +400,7 @@ var y = () => {
400
400
  onClick: () => O.current?.click(),
401
401
  className: "inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm font-medium hover:bg-muted transition-colors disabled:opacity-50",
402
402
  children: E ? /* @__PURE__ */ v(g, { children: [
403
- /* @__PURE__ */ _(f, {
403
+ /* @__PURE__ */ _(p, {
404
404
  size: 14,
405
405
  className: "animate-spin"
406
406
  }),
@@ -409,7 +409,7 @@ var y = () => {
409
409
  Ce,
410
410
  "%"
411
411
  ] }) : /* @__PURE__ */ v(g, { children: [
412
- /* @__PURE__ */ _(h, { size: 14 }),
412
+ /* @__PURE__ */ _(_e, { size: 14 }),
413
413
  " ",
414
414
  j.packageUrl ? "Replace zip" : "Upload zip"
415
415
  ] })
@@ -442,7 +442,7 @@ var y = () => {
442
442
  })
443
443
  ]
444
444
  }),
445
- /* @__PURE__ */ _(ne, {
445
+ /* @__PURE__ */ _(oe, {
446
446
  label: b("devportal.releaseNotes", "Release Notes"),
447
447
  value: j.releaseNotes,
448
448
  onChange: (e) => M({
@@ -455,36 +455,36 @@ var y = () => {
455
455
  ]
456
456
  })
457
457
  }),
458
- /* @__PURE__ */ _(a, {
459
- open: B === "publish",
458
+ /* @__PURE__ */ _(o, {
459
+ open: V === "publish",
460
460
  onOpenChange: (e) => {
461
- e || V(null);
461
+ e || H(null);
462
462
  },
463
463
  onConfirm: async () => {
464
- if (Y.length === 0) return;
465
- F(null);
466
- let e = await Promise.allSettled(Y.map((e) => G({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
467
- L(`Published ${t} version${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`), $(), V(null);
464
+ if (X.length === 0) return;
465
+ I(null);
466
+ let e = await Promise.allSettled(X.map((e) => K({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
467
+ R(`Published ${t} version${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`), $(), H(null);
468
468
  },
469
469
  title: b("devportal.publishSelectedVersions", "Publish selected versions"),
470
- description: `${b("devportal.publish", "Publish")} ${Y.length} selected version${Y.length === 1 ? "" : "s"}?`,
470
+ description: `${b("devportal.publish", "Publish")} ${X.length} selected version${X.length === 1 ? "" : "s"}?`,
471
471
  confirmLabel: b("devportal.publish", "Publish"),
472
472
  cancelLabel: b("devportal.cancel", "Cancel"),
473
473
  variant: "success"
474
474
  }),
475
- /* @__PURE__ */ _(a, {
476
- open: B === "deprecate",
475
+ /* @__PURE__ */ _(o, {
476
+ open: V === "deprecate",
477
477
  onOpenChange: (e) => {
478
- e || V(null);
478
+ e || H(null);
479
479
  },
480
480
  onConfirm: async () => {
481
- if (X.length === 0) return;
482
- F(null);
483
- let e = await Promise.allSettled(X.map((e) => K({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
484
- L(`Deprecated ${t} version${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`), $(), V(null);
481
+ if (Z.length === 0) return;
482
+ I(null);
483
+ let e = await Promise.allSettled(Z.map((e) => q({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
484
+ R(`Deprecated ${t} version${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`), $(), H(null);
485
485
  },
486
486
  title: b("devportal.deprecateSelectedVersions", "Deprecate selected versions"),
487
- description: `${b("devportal.deprecate", "Deprecate")} ${X.length} selected version${X.length === 1 ? "" : "s"}? ${b("devportal.deprecateVersionsWarning", "Deprecated versions remain visible but should no longer be promoted.")}`,
487
+ description: `${b("devportal.deprecate", "Deprecate")} ${Z.length} selected version${Z.length === 1 ? "" : "s"}? ${b("devportal.deprecateVersionsWarning", "Deprecated versions remain visible but should no longer be promoted.")}`,
488
488
  confirmLabel: b("devportal.deprecate", "Deprecate"),
489
489
  cancelLabel: b("devportal.cancel", "Cancel"),
490
490
  variant: "warning"