@burdenoff/microfe-devportal 2026.624.28 → 2026.625.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.
@@ -16,131 +16,131 @@ import ce from "../../node_modules/.bun/date-fns@3.6.0/node_modules/date-fns/for
16
16
  import { usePackageUpload as le } from "../hooks/usePackageUpload.js";
17
17
  import { useCallback as ue, useEffect as de, useMemo as l, useRef as u, useState as d } from "react";
18
18
  import { useI18n as fe } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
19
- import { AlertCircle as f, Archive as pe, CheckCircle as p, Clock as me, FileJson as he, Loader2 as m, Package as ge, Plus as _e, Upload as h } from "lucide-react";
20
- import { useParams as ve } from "react-router-dom";
21
- import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
22
- import { gql as y } from "@apollo/client";
23
- import { useMutation as ye, useQuery as be } from "@apollo/client/react";
19
+ import { AlertCircle as f, Archive as pe, CheckCircle as me, Clock as he, FileJson as ge, Loader2 as p, Package as _e, Plus as ve, Upload as m } from "lucide-react";
20
+ import { useParams as ye } from "react-router-dom";
21
+ import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
22
+ import { gql as v } from "@apollo/client";
23
+ import { useMutation as be, useQuery as xe } from "@apollo/client/react";
24
24
  //#region src/devportal/pages/ApplicationVersionsPage.tsx
25
- var xe = () => {
26
- let { t: xe } = fe(), b = (e, t) => {
27
- let n = xe(e);
25
+ var Se = () => {
26
+ let { t: Se } = fe(), y = (e, t) => {
27
+ let n = Se(e);
28
28
  return n === e ? t : n;
29
- }, { allowed: Se } = c(s.APP_VERSION_CREATE), { allowed: x } = c(s.APP_VERSION_PUBLISH), { allowed: S } = c(s.APP_VERSION_DEPRECATE), { appId: C } = ve(), { workspacesGatewayUrl: Ce, authToken: we, workspaceId: Te, getWorkspaceToken: Ee } = e(), { data: De } = be(y`query MyPublisherVersions { myPublisher { id } }`, { fetchPolicy: "cache-first" }), w = De?.myPublisher?.id ?? null, { data: Oe } = be(y`query PublisherProductsVersions($publisherId: String!) { products(filter: { publisherId: $publisherId }) { id productId } }`, {
30
- variables: { publisherId: w ?? "" },
29
+ }, { allowed: Ce } = c(s.APP_VERSION_CREATE), { allowed: b } = c(s.APP_VERSION_PUBLISH), { allowed: x } = c(s.APP_VERSION_DEPRECATE), { appId: S } = ye(), { workspacesGatewayUrl: we, authToken: Te, workspaceId: Ee, getWorkspaceToken: De } = e(), { data: Oe } = xe(v`query MyPublisherVersions { myPublisher { id } }`, { fetchPolicy: "cache-first" }), C = Oe?.myPublisher?.id ?? null, { data: ke } = xe(v`query PublisherProductsVersions($publisherId: String!) { products(filter: { publisherId: $publisherId }) { id productId } }`, {
30
+ variables: { publisherId: C ?? "" },
31
31
  fetchPolicy: "cache-first",
32
- skip: !w
33
- }), T = Oe?.products?.find((e) => e.productId === C)?.id ?? null, [ke] = ye(y`
32
+ skip: !C
33
+ }), w = ke?.products?.find((e) => e.productId === S)?.id ?? null, [Ae] = be(v`
34
34
  mutation UpdateStoreProductVersion($input: UpdateProductInput!) {
35
35
  updateProduct(input: $input) { id manifestVersion }
36
36
  }
37
- `), { upload: E, uploading: D, progress: O, error: k } = le(Ce, we, Te, Ee), A = u(null), j = u(null), [M, N] = d(!1), [P, F] = d({
37
+ `), { upload: T, uploading: E, progress: D, error: O } = le(we, Te, Ee, De), k = u(null), A = u(null), [j, M] = d(!1), [N, P] = d({
38
38
  version: "",
39
39
  releaseNotes: "",
40
40
  changelog: "",
41
41
  packageUrl: "",
42
42
  packageSize: "",
43
43
  manifestJson: ""
44
- }), [I, Ae] = d(null), [L, R] = d("file"), [je, z] = d(null), [Me, B] = d(null), [V, H] = d(/* @__PURE__ */ new Set()), [Ne, U] = d(null), { data: W } = ee({
45
- variables: { id: C ?? "" },
46
- skip: !C,
44
+ }), [F, je] = d(null), [I, L] = d("file"), [Me, R] = d(null), [Ne, z] = d(null), [B, V] = d(/* @__PURE__ */ new Set()), [Pe, H] = d(null), { data: U } = ee({
45
+ variables: { id: S ?? "" },
46
+ skip: !S,
47
47
  fetchPolicy: "cache-first"
48
- }), Pe = W?.application?.appType === "NODE" || W?.application?.appType === "WORKFLOW", G = W?.application?.appType === "NODE", Fe = W?.application?.appType === "WORKFLOW";
48
+ }), Fe = U?.application?.appType === "NODE" || U?.application?.appType === "WORKFLOW", W = U?.application?.appType === "NODE", Ie = U?.application?.appType === "WORKFLOW", Le = U?.application?.appType === "API_INTEGRATION";
49
49
  de(() => {
50
- let e = W?.application?.name;
51
- if (!C || !e) return;
50
+ let e = U?.application?.name;
51
+ if (!S || !e) return;
52
52
  let t = window.__breadcrumbRegistry;
53
- return t?.register(C, e), () => t?.unregister(C);
54
- }, [C, W?.application?.name]);
55
- let { data: K, loading: Ie, error: Le } = te({
56
- variables: { applicationId: C },
57
- skip: !C,
53
+ return t?.register(S, e), () => t?.unregister(S);
54
+ }, [S, U?.application?.name]);
55
+ let { data: G, loading: Re, error: ze } = te({
56
+ variables: { applicationId: S },
57
+ skip: !S,
58
58
  fetchPolicy: "cache-and-network"
59
- }), [Re, { loading: ze }] = n({ refetchQueries: ["GetApplicationVersions"] }), [Be] = ne({ refetchQueries: ["GetApplicationVersions"] }), [Ve] = r({ refetchQueries: ["GetApplicationVersions"] }), q = l(() => K?.application?.versions?.edges?.map((e) => e.node) ?? [], [K?.application?.versions]), J = l(() => q.filter((e) => V.has(e.id)), [q, V]), Y = l(() => J.filter((e) => e.status?.toUpperCase() === "DRAFT"), [J]), X = l(() => J.filter((e) => e.status?.toUpperCase() === "PUBLISHED" && !e.isLatest), [J]), Z = q.length > 0 && q.every((e) => V.has(e.id)), He = q.some((e) => V.has(e.id)) && !Z, Ue = async () => {
60
- if (!C || !P.version.trim()) return;
61
- if (z(null), G && !P.packageUrl) {
62
- z("A ZIP package is required for NODE type.");
59
+ }), [Be, { loading: Ve }] = n({ refetchQueries: ["GetApplicationVersions"] }), [He] = ne({ refetchQueries: ["GetApplicationVersions"] }), [Ue] = r({ refetchQueries: ["GetApplicationVersions"] }), K = l(() => G?.application?.versions?.edges?.map((e) => e.node) ?? [], [G?.application?.versions]), q = l(() => K.filter((e) => B.has(e.id)), [K, B]), J = l(() => q.filter((e) => e.status?.toUpperCase() === "DRAFT"), [q]), Y = l(() => q.filter((e) => e.status?.toUpperCase() === "PUBLISHED" && !e.isLatest), [q]), X = K.length > 0 && K.every((e) => B.has(e.id)), Z = K.some((e) => B.has(e.id)) && !X, We = async () => {
60
+ if (!S || !N.version.trim()) return;
61
+ if (R(null), W && !N.packageUrl) {
62
+ R("A ZIP package is required for NODE type.");
63
63
  return;
64
64
  }
65
- if (Pe && !P.manifestJson.trim()) {
66
- z("A manifest JSON is required.");
65
+ if (Fe && !N.manifestJson.trim()) {
66
+ R("A manifest JSON is required.");
67
67
  return;
68
68
  }
69
69
  let e;
70
- if (P.manifestJson.trim()) try {
71
- e = JSON.parse(P.manifestJson);
70
+ if (N.manifestJson.trim()) try {
71
+ e = JSON.parse(N.manifestJson);
72
72
  } catch {
73
- z("Invalid JSON in manifest — please check your input.");
73
+ R("Invalid JSON in manifest — please check your input.");
74
74
  return;
75
75
  }
76
76
  try {
77
- await Re({ variables: {
78
- applicationId: C,
77
+ await Be({ variables: {
78
+ applicationId: S,
79
79
  input: {
80
- version: P.version,
81
- releaseNotes: P.releaseNotes || void 0,
82
- changelog: P.changelog || void 0,
83
- packageUrl: P.packageUrl || void 0,
84
- packageSize: P.packageSize || void 0,
80
+ version: N.version,
81
+ releaseNotes: N.releaseNotes || void 0,
82
+ changelog: N.changelog || void 0,
83
+ packageUrl: N.packageUrl || void 0,
84
+ packageSize: N.packageSize || void 0,
85
85
  manifest: e
86
86
  }
87
- } }), N(!1), F({
87
+ } }), M(!1), P({
88
88
  version: "",
89
89
  releaseNotes: "",
90
90
  changelog: "",
91
91
  packageUrl: "",
92
92
  packageSize: "",
93
93
  manifestJson: ""
94
- }), Ae(null), R("file"), B(b("devportal.versionCreatedSuccess", "Version created successfully"));
94
+ }), je(null), L("file"), z(y("devportal.versionCreatedSuccess", "Version created successfully"));
95
95
  } catch (e) {
96
- z(e instanceof Error ? e.message : b("devportal.versionCreateFailed", "Failed to create version"));
96
+ R(e instanceof Error ? e.message : y("devportal.versionCreateFailed", "Failed to create version"));
97
97
  }
98
- }, We = ue(async (e) => {
98
+ }, Ge = ue(async (e) => {
99
99
  let t = e.target.files?.[0];
100
100
  if (t) {
101
101
  e.target.value = "";
102
102
  try {
103
- let e = await E(t);
104
- F((n) => ({
103
+ let e = await T(t);
104
+ P((n) => ({
105
105
  ...n,
106
106
  packageUrl: e.downloadUrl,
107
107
  packageSize: String(t.size)
108
108
  }));
109
109
  } catch {}
110
110
  }
111
- }, [E]), Ge = ue((e) => {
111
+ }, [T]), Ke = ue((e) => {
112
112
  let t = e.target.files?.[0];
113
113
  if (!t) return;
114
114
  e.target.value = "";
115
115
  let n = new FileReader();
116
116
  n.onload = (e) => {
117
117
  let n = e.target?.result;
118
- typeof n == "string" && (Ae(t.name), F((e) => ({
118
+ typeof n == "string" && (je(t.name), P((e) => ({
119
119
  ...e,
120
120
  manifestJson: n
121
121
  })));
122
122
  }, n.readAsText(t);
123
- }, []), Ke = async (e) => {
124
- z(null), B(null);
123
+ }, []), qe = async (e) => {
124
+ R(null), z(null);
125
125
  try {
126
- if (await Be({ variables: { id: e } }), T) {
127
- let t = q.find((t) => t.id === e);
128
- t && await ke({ variables: { input: {
129
- id: T,
126
+ if (await He({ variables: { id: e } }), w) {
127
+ let t = K.find((t) => t.id === e);
128
+ t && await Ae({ variables: { input: {
129
+ id: w,
130
130
  manifestVersion: t.version,
131
131
  manifest: {
132
132
  manifestVersion: "1.0",
133
- name: W?.application?.slug ?? "",
133
+ name: U?.application?.slug ?? "",
134
134
  version: t.version,
135
- itemType: W?.application?.appType?.toLowerCase() ?? "node",
135
+ itemType: U?.application?.appType?.toLowerCase() ?? "node",
136
136
  identity: {
137
- name: W?.application?.slug ?? "",
137
+ name: U?.application?.slug ?? "",
138
138
  version: t.version,
139
- displayName: W?.application?.name ?? "",
140
- description: W?.application?.shortDescription ?? W?.application?.description ?? ""
139
+ displayName: U?.application?.name ?? "",
140
+ description: U?.application?.shortDescription ?? U?.application?.description ?? ""
141
141
  },
142
142
  publisher: {
143
- id: W?.application?.developerId ?? "",
143
+ id: U?.application?.developerId ?? "",
144
144
  name: "Burdenoff"
145
145
  },
146
146
  pricing: {
@@ -151,377 +151,377 @@ var xe = () => {
151
151
  }
152
152
  } } }).catch(() => {});
153
153
  }
154
- B(b("devportal.versionPublishedSuccess", "Version published successfully"));
154
+ z(y("devportal.versionPublishedSuccess", "Version published successfully"));
155
155
  } catch (e) {
156
- z(e instanceof Error ? e.message : b("devportal.versionPublishFailed", "Failed to publish version"));
156
+ R(e instanceof Error ? e.message : y("devportal.versionPublishFailed", "Failed to publish version"));
157
157
  }
158
- }, qe = async (e) => {
159
- z(null), B(null);
158
+ }, Je = async (e) => {
159
+ R(null), z(null);
160
160
  try {
161
- await Ve({ variables: { id: e } }), B(b("devportal.versionDeprecatedSuccess", "Version deprecated successfully"));
161
+ await Ue({ variables: { id: e } }), z(y("devportal.versionDeprecatedSuccess", "Version deprecated successfully"));
162
162
  } catch (e) {
163
- z(e instanceof Error ? e.message : b("devportal.versionDeprecateFailed", "Failed to deprecate version"));
163
+ R(e instanceof Error ? e.message : y("devportal.versionDeprecateFailed", "Failed to deprecate version"));
164
164
  }
165
- }, Je = (e) => {
165
+ }, Ye = (e) => {
166
166
  let t = e.status?.toUpperCase();
167
- return t === "PUBLISHED" && e.isLatest ? /* @__PURE__ */ _(p, {
167
+ return t === "PUBLISHED" && e.isLatest ? /* @__PURE__ */ g(me, {
168
168
  size: 16,
169
169
  className: "text-status-success-text"
170
- }) : t === "DRAFT" ? /* @__PURE__ */ _(me, {
170
+ }) : t === "DRAFT" ? /* @__PURE__ */ g(he, {
171
171
  size: 16,
172
172
  className: "text-status-warning-text"
173
- }) : t === "DEPRECATED" ? /* @__PURE__ */ _(pe, {
173
+ }) : t === "DEPRECATED" ? /* @__PURE__ */ g(pe, {
174
174
  size: 16,
175
175
  className: "text-text-secondary"
176
- }) : /* @__PURE__ */ _(ge, {
176
+ }) : /* @__PURE__ */ g(_e, {
177
177
  size: 16,
178
178
  className: "text-accent-blue"
179
179
  });
180
- }, Ye = (e, t) => {
181
- H((n) => {
180
+ }, Xe = (e, t) => {
181
+ V((n) => {
182
182
  let r = new Set(n);
183
183
  return t ? r.add(e) : r.delete(e), r;
184
184
  });
185
185
  }, Q = (e) => {
186
- H((t) => {
186
+ V((t) => {
187
187
  let n = new Set(t);
188
- return q.forEach((t) => {
188
+ return K.forEach((t) => {
189
189
  e ? n.add(t.id) : n.delete(t.id);
190
190
  }), n;
191
191
  });
192
- }, $ = () => H(/* @__PURE__ */ new Set());
193
- return Ie && !K ? /* @__PURE__ */ _(i, {
194
- title: b("devportal.versionManagement", "Version Management"),
195
- description: b("devportal.versionManagementDescription", "Manage your application versions"),
196
- backLink: `/apps/${C}`,
197
- backLabel: b("devportal.backToApplication", "Back to Application"),
198
- children: /* @__PURE__ */ _("div", {
192
+ }, $ = () => V(/* @__PURE__ */ new Set());
193
+ return Re && !G ? /* @__PURE__ */ g(i, {
194
+ title: y("devportal.versionManagement", "Version Management"),
195
+ description: y("devportal.versionManagementDescription", "Manage your application versions"),
196
+ backLink: `/apps/${S}`,
197
+ backLabel: y("devportal.backToApplication", "Back to Application"),
198
+ children: /* @__PURE__ */ g("div", {
199
199
  className: "flex items-center justify-center py-16",
200
- children: /* @__PURE__ */ _(m, { className: "h-8 w-8 animate-spin text-muted-foreground" })
200
+ children: /* @__PURE__ */ g(p, { className: "h-8 w-8 animate-spin text-muted-foreground" })
201
201
  })
202
- }) : Le && !K ? /* @__PURE__ */ _(i, {
203
- title: b("devportal.versionManagement", "Version Management"),
204
- description: b("devportal.versionManagementDescription", "Manage your application versions"),
205
- backLink: `/apps/${C}`,
206
- backLabel: b("devportal.backToApplication", "Back to Application"),
207
- children: /* @__PURE__ */ _(t, {
208
- icon: /* @__PURE__ */ _(f, {
202
+ }) : ze && !G ? /* @__PURE__ */ g(i, {
203
+ title: y("devportal.versionManagement", "Version Management"),
204
+ description: y("devportal.versionManagementDescription", "Manage your application versions"),
205
+ backLink: `/apps/${S}`,
206
+ backLabel: y("devportal.backToApplication", "Back to Application"),
207
+ children: /* @__PURE__ */ g(t, {
208
+ icon: /* @__PURE__ */ g(f, {
209
209
  size: 32,
210
210
  className: "text-status-error-text"
211
211
  }),
212
- title: b("devportal.failedToLoadVersions", "Failed to load versions"),
213
- description: Le.message || b("devportal.versionsLoadError", "An error occurred while loading versions")
212
+ title: y("devportal.failedToLoadVersions", "Failed to load versions"),
213
+ description: ze.message || y("devportal.versionsLoadError", "An error occurred while loading versions")
214
214
  })
215
- }) : /* @__PURE__ */ _(se, {
215
+ }) : /* @__PURE__ */ g(se, {
216
216
  permission: s.APP_READ,
217
- children: /* @__PURE__ */ v(i, {
218
- title: b("devportal.versionManagement", "Version Management"),
219
- description: b("devportal.versionManagementDescription", "Manage your application versions"),
220
- backLink: `/apps/${C}`,
221
- backLabel: b("devportal.backToApplication", "Back to Application"),
222
- actions: /* @__PURE__ */ v("button", {
223
- onClick: () => N(!0),
224
- disabled: !Se,
225
- "aria-disabled": !Se,
217
+ children: /* @__PURE__ */ _(i, {
218
+ title: y("devportal.versionManagement", "Version Management"),
219
+ description: y("devportal.versionManagementDescription", "Manage your application versions"),
220
+ backLink: `/apps/${S}`,
221
+ backLabel: y("devportal.backToApplication", "Back to Application"),
222
+ actions: /* @__PURE__ */ _("button", {
223
+ onClick: () => M(!0),
224
+ disabled: !Ce,
225
+ "aria-disabled": !Ce,
226
226
  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",
227
- children: [/* @__PURE__ */ _(_e, { size: 16 }), b("devportal.newVersion", "New Version")]
227
+ children: [/* @__PURE__ */ g(ve, { size: 16 }), y("devportal.newVersion", "New Version")]
228
228
  }),
229
229
  children: [
230
- je && /* @__PURE__ */ v("div", {
230
+ Me && /* @__PURE__ */ _("div", {
231
231
  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",
232
232
  children: [
233
- /* @__PURE__ */ _(f, {
233
+ /* @__PURE__ */ g(f, {
234
234
  size: 16,
235
235
  className: "flex-shrink-0"
236
236
  }),
237
- je,
238
- /* @__PURE__ */ _("button", {
239
- onClick: () => z(null),
237
+ Me,
238
+ /* @__PURE__ */ g("button", {
239
+ onClick: () => R(null),
240
240
  className: "ml-auto text-status-error-text hover:text-status-error-text",
241
- children: b("devportal.dismiss", "Dismiss")
241
+ children: y("devportal.dismiss", "Dismiss")
242
242
  })
243
243
  ]
244
244
  }),
245
- Me && /* @__PURE__ */ v("div", {
245
+ Ne && /* @__PURE__ */ _("div", {
246
246
  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",
247
247
  children: [
248
- /* @__PURE__ */ _(p, {
248
+ /* @__PURE__ */ g(me, {
249
249
  size: 16,
250
250
  className: "flex-shrink-0"
251
251
  }),
252
- Me,
253
- /* @__PURE__ */ _("button", {
254
- onClick: () => B(null),
252
+ Ne,
253
+ /* @__PURE__ */ g("button", {
254
+ onClick: () => z(null),
255
255
  className: "ml-auto text-status-success-text hover:text-status-success-text",
256
- children: b("devportal.dismiss", "Dismiss")
256
+ children: y("devportal.dismiss", "Dismiss")
257
257
  })
258
258
  ]
259
259
  }),
260
- q.length > 0 && /* @__PURE__ */ _("div", {
260
+ K.length > 0 && /* @__PURE__ */ g("div", {
261
261
  className: "rounded-lg border bg-card p-4",
262
- children: /* @__PURE__ */ v("div", {
262
+ children: /* @__PURE__ */ _("div", {
263
263
  className: "flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between",
264
- children: [/* @__PURE__ */ v("div", {
264
+ children: [/* @__PURE__ */ _("div", {
265
265
  className: "flex flex-wrap items-center gap-3",
266
- children: [/* @__PURE__ */ v("div", {
266
+ children: [/* @__PURE__ */ _("div", {
267
267
  className: "flex items-center gap-2",
268
- children: [/* @__PURE__ */ _(a, {
269
- checked: Z,
270
- indeterminate: He,
268
+ children: [/* @__PURE__ */ g(a, {
269
+ checked: X,
270
+ indeterminate: Z,
271
271
  onChange: Q,
272
272
  ariaLabel: "Select all visible versions"
273
- }), /* @__PURE__ */ _("span", {
273
+ }), /* @__PURE__ */ g("span", {
274
274
  className: "text-sm font-medium",
275
- children: b("devportal.selectAllVisible", "Select all visible")
275
+ children: y("devportal.selectAllVisible", "Select all visible")
276
276
  })]
277
- }), V.size > 0 && /* @__PURE__ */ _("button", {
277
+ }), B.size > 0 && /* @__PURE__ */ g("button", {
278
278
  onClick: $,
279
279
  className: "text-sm text-muted-foreground hover:text-foreground",
280
- children: b("devportal.clearSelection", "Clear selection")
280
+ children: y("devportal.clearSelection", "Clear selection")
281
281
  })]
282
- }), /* @__PURE__ */ v("div", {
282
+ }), /* @__PURE__ */ _("div", {
283
283
  className: "flex flex-wrap items-center gap-2",
284
284
  children: [
285
- /* @__PURE__ */ v("span", {
285
+ /* @__PURE__ */ _("span", {
286
286
  className: "rounded-full bg-muted px-3 py-1 text-sm font-medium text-muted-foreground",
287
- children: [V.size, " selected"]
287
+ children: [B.size, " selected"]
288
288
  }),
289
- /* @__PURE__ */ v("button", {
290
- onClick: () => U("publish"),
291
- disabled: Y.length === 0 || !x,
292
- "aria-disabled": !x,
289
+ /* @__PURE__ */ _("button", {
290
+ onClick: () => H("publish"),
291
+ disabled: J.length === 0 || !b,
292
+ "aria-disabled": !b,
293
293
  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",
294
- children: [b("devportal.publishSelected", "Publish Selected"), Y.length > 0 ? ` (${Y.length})` : ""]
294
+ children: [y("devportal.publishSelected", "Publish Selected"), J.length > 0 ? ` (${J.length})` : ""]
295
295
  }),
296
- /* @__PURE__ */ v("button", {
297
- onClick: () => U("deprecate"),
298
- disabled: X.length === 0 || !S,
299
- "aria-disabled": !S,
296
+ /* @__PURE__ */ _("button", {
297
+ onClick: () => H("deprecate"),
298
+ disabled: Y.length === 0 || !x,
299
+ "aria-disabled": !x,
300
300
  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",
301
- children: [b("devportal.deprecateSelected", "Deprecate Selected"), X.length > 0 ? ` (${X.length})` : ""]
301
+ children: [y("devportal.deprecateSelected", "Deprecate Selected"), Y.length > 0 ? ` (${Y.length})` : ""]
302
302
  })
303
303
  ]
304
304
  })]
305
305
  })
306
306
  }),
307
- q.length > 0 ? /* @__PURE__ */ _(ie, {
308
- data: q,
307
+ K.length > 0 ? /* @__PURE__ */ g(ie, {
308
+ data: K,
309
309
  keyField: "id",
310
310
  columns: [
311
311
  {
312
312
  key: "select",
313
- header: /* @__PURE__ */ _(a, {
314
- checked: Z,
315
- indeterminate: He,
313
+ header: /* @__PURE__ */ g(a, {
314
+ checked: X,
315
+ indeterminate: Z,
316
316
  onChange: Q,
317
317
  ariaLabel: "Select all visible versions"
318
318
  }),
319
319
  className: "w-12",
320
- render: (e) => /* @__PURE__ */ _("div", {
320
+ render: (e) => /* @__PURE__ */ g("div", {
321
321
  onClick: (e) => e.stopPropagation(),
322
- children: /* @__PURE__ */ _(a, {
323
- checked: V.has(e.id),
324
- onChange: (t) => Ye(e.id, t),
322
+ children: /* @__PURE__ */ g(a, {
323
+ checked: B.has(e.id),
324
+ onChange: (t) => Xe(e.id, t),
325
325
  ariaLabel: `Select version ${e.version}`
326
326
  })
327
327
  })
328
328
  },
329
329
  {
330
330
  key: "version",
331
- header: b("devportal.version", "Version"),
332
- render: (e) => /* @__PURE__ */ v("div", {
331
+ header: y("devportal.version", "Version"),
332
+ render: (e) => /* @__PURE__ */ _("div", {
333
333
  className: "flex items-center gap-2",
334
334
  children: [
335
- Je(e),
336
- /* @__PURE__ */ _("span", {
335
+ Ye(e),
336
+ /* @__PURE__ */ g("span", {
337
337
  className: "font-mono font-medium",
338
338
  children: e.version
339
339
  }),
340
- e.isLatest && /* @__PURE__ */ _("span", {
340
+ e.isLatest && /* @__PURE__ */ g("span", {
341
341
  className: "rounded-full bg-status-success-bg-subtle px-2 py-0.5 text-xs text-status-success-text",
342
- children: b("devportal.latest", "Latest")
342
+ children: y("devportal.latest", "Latest")
343
343
  }),
344
- !e.isStable && /* @__PURE__ */ _("span", {
344
+ !e.isStable && /* @__PURE__ */ g("span", {
345
345
  className: "rounded-full bg-status-warning-bg-subtle px-2 py-0.5 text-xs text-status-warning-text",
346
- children: b("devportal.beta", "Beta")
346
+ children: y("devportal.beta", "Beta")
347
347
  })
348
348
  ]
349
349
  })
350
350
  },
351
351
  {
352
352
  key: "releaseNotes",
353
- header: b("devportal.releaseNotes", "Release Notes"),
354
- render: (e) => /* @__PURE__ */ _("p", {
353
+ header: y("devportal.releaseNotes", "Release Notes"),
354
+ render: (e) => /* @__PURE__ */ g("p", {
355
355
  className: "max-w-md truncate text-sm text-muted-foreground",
356
- children: e.releaseNotes || b("devportal.noReleaseNotes", "No release notes")
356
+ children: e.releaseNotes || y("devportal.noReleaseNotes", "No release notes")
357
357
  })
358
358
  },
359
359
  {
360
360
  key: "status",
361
- header: b("devportal.status", "Status"),
362
- render: (e) => /* @__PURE__ */ _(re, { status: e.status })
361
+ header: y("devportal.status", "Status"),
362
+ render: (e) => /* @__PURE__ */ g(re, { status: e.status })
363
363
  },
364
364
  {
365
365
  key: "publishedAt",
366
- header: b("devportal.published", "Published"),
366
+ header: y("devportal.published", "Published"),
367
367
  render: (e) => e.publishedAt ? ce(new Date(e.publishedAt), "MMM d, yyyy") : "-"
368
368
  },
369
369
  {
370
370
  key: "actions",
371
371
  header: "",
372
372
  className: "w-32",
373
- render: (e) => /* @__PURE__ */ v("div", {
373
+ render: (e) => /* @__PURE__ */ _("div", {
374
374
  className: "flex gap-2",
375
- children: [e.status?.toUpperCase() === "DRAFT" && /* @__PURE__ */ _("button", {
375
+ children: [e.status?.toUpperCase() === "DRAFT" && /* @__PURE__ */ g("button", {
376
376
  className: "text-xs text-primary hover:underline disabled:opacity-50",
377
+ disabled: !b,
378
+ "aria-disabled": !b,
379
+ onClick: () => qe(e.id),
380
+ children: y("devportal.publish", "Publish")
381
+ }), e.status?.toUpperCase() === "PUBLISHED" && !e.isLatest && /* @__PURE__ */ g("button", {
382
+ className: "text-xs text-status-warning-text hover:underline disabled:opacity-50",
377
383
  disabled: !x,
378
384
  "aria-disabled": !x,
379
- onClick: () => Ke(e.id),
380
- children: b("devportal.publish", "Publish")
381
- }), e.status?.toUpperCase() === "PUBLISHED" && !e.isLatest && /* @__PURE__ */ _("button", {
382
- className: "text-xs text-status-warning-text hover:underline disabled:opacity-50",
383
- disabled: !S,
384
- "aria-disabled": !S,
385
- onClick: () => qe(e.id),
386
- children: b("devportal.deprecate", "Deprecate")
385
+ onClick: () => Je(e.id),
386
+ children: y("devportal.deprecate", "Deprecate")
387
387
  })]
388
388
  })
389
389
  }
390
390
  ]
391
- }) : /* @__PURE__ */ _(t, {
392
- icon: /* @__PURE__ */ _(ge, { size: 32 }),
393
- title: b("devportal.noVersionsYet", "No versions yet"),
394
- description: b("devportal.noVersionsYetDescription", "Create your first version to start distributing your app"),
395
- action: /* @__PURE__ */ v("button", {
396
- onClick: () => N(!0),
391
+ }) : /* @__PURE__ */ g(t, {
392
+ icon: /* @__PURE__ */ g(_e, { size: 32 }),
393
+ title: y("devportal.noVersionsYet", "No versions yet"),
394
+ description: y("devportal.noVersionsYetDescription", "Create your first version to start distributing your app"),
395
+ action: /* @__PURE__ */ _("button", {
396
+ onClick: () => M(!0),
397
397
  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",
398
- children: [/* @__PURE__ */ _(_e, { size: 16 }), b("devportal.createVersion", "Create Version")]
398
+ children: [/* @__PURE__ */ g(ve, { size: 16 }), y("devportal.createVersion", "Create Version")]
399
399
  })
400
400
  }),
401
- M && /* @__PURE__ */ _(o, {
402
- open: M,
403
- onOpenChange: N,
404
- onConfirm: Ue,
405
- title: b("devportal.createNewVersion", "Create New Version"),
401
+ j && /* @__PURE__ */ g(o, {
402
+ open: j,
403
+ onOpenChange: M,
404
+ onConfirm: We,
405
+ title: y("devportal.createNewVersion", "Create New Version"),
406
406
  size: "lg",
407
- confirmLabel: ze ? b("devportal.creating", "Creating...") : b("devportal.createVersion", "Create Version"),
408
- children: /* @__PURE__ */ v("div", {
407
+ confirmLabel: Ve ? y("devportal.creating", "Creating...") : y("devportal.createVersion", "Create Version"),
408
+ children: /* @__PURE__ */ _("div", {
409
409
  className: "space-y-4",
410
410
  children: [
411
- /* @__PURE__ */ _(ae, {
412
- label: b("devportal.versionNumber", "Version Number"),
413
- value: P.version,
414
- onChange: (e) => F({
415
- ...P,
411
+ /* @__PURE__ */ g(ae, {
412
+ label: y("devportal.versionNumber", "Version Number"),
413
+ value: N.version,
414
+ onChange: (e) => P({
415
+ ...N,
416
416
  version: e.target.value
417
417
  }),
418
418
  placeholder: "e.g., 2.2.0",
419
- hint: b("devportal.versionHint", "Use semantic versioning (major.minor.patch)"),
419
+ hint: y("devportal.versionHint", "Use semantic versioning (major.minor.patch)"),
420
420
  required: !0
421
421
  }),
422
- Pe ? /* @__PURE__ */ v("div", {
422
+ Fe ? /* @__PURE__ */ _("div", {
423
423
  className: "space-y-3",
424
424
  children: [
425
- /* @__PURE__ */ _("div", {
425
+ /* @__PURE__ */ g("div", {
426
426
  className: "rounded-md border border-status-warning-bg bg-status-warning-bg-subtle px-3 py-2 text-xs text-status-warning-text",
427
- children: G ? "A ZIP package and manifest JSON are required for NODE type." : "A manifest JSON is required for WORKFLOW type. No ZIP needed — the manifest defines the workflow."
427
+ children: W ? "A ZIP package and manifest JSON are required for NODE type." : "A manifest JSON is required for WORKFLOW type. No ZIP needed — the manifest defines the workflow."
428
428
  }),
429
- G && /* @__PURE__ */ v("div", {
429
+ W && /* @__PURE__ */ _("div", {
430
430
  className: "space-y-1",
431
431
  children: [
432
- /* @__PURE__ */ v("label", {
432
+ /* @__PURE__ */ _("label", {
433
433
  className: "text-sm font-medium",
434
- children: ["ZIP Package ", /* @__PURE__ */ _("span", {
434
+ children: ["ZIP Package ", /* @__PURE__ */ g("span", {
435
435
  className: "text-destructive",
436
436
  children: "*"
437
437
  })]
438
438
  }),
439
- /* @__PURE__ */ v("div", {
439
+ /* @__PURE__ */ _("div", {
440
440
  className: "flex gap-2 items-center",
441
441
  children: [
442
- /* @__PURE__ */ _("input", {
443
- ref: A,
442
+ /* @__PURE__ */ g("input", {
443
+ ref: k,
444
444
  type: "file",
445
445
  accept: ".zip",
446
446
  className: "hidden",
447
- onChange: We
447
+ onChange: Ge
448
448
  }),
449
- /* @__PURE__ */ _("button", {
449
+ /* @__PURE__ */ g("button", {
450
450
  type: "button",
451
- disabled: D,
452
- onClick: () => A.current?.click(),
451
+ disabled: E,
452
+ onClick: () => k.current?.click(),
453
453
  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",
454
- children: D ? /* @__PURE__ */ v(g, { children: [
455
- /* @__PURE__ */ _(m, {
454
+ children: E ? /* @__PURE__ */ _(h, { children: [
455
+ /* @__PURE__ */ g(p, {
456
456
  size: 14,
457
457
  className: "animate-spin"
458
458
  }),
459
459
  " ",
460
460
  "Uploading… ",
461
- O,
461
+ D,
462
462
  "%"
463
- ] }) : /* @__PURE__ */ v(g, { children: [
464
- /* @__PURE__ */ _(h, { size: 14 }),
463
+ ] }) : /* @__PURE__ */ _(h, { children: [
464
+ /* @__PURE__ */ g(m, { size: 14 }),
465
465
  " ",
466
- P.packageUrl ? "Replace zip" : "Upload zip"
466
+ N.packageUrl ? "Replace zip" : "Upload zip"
467
467
  ] })
468
468
  }),
469
- P.packageUrl && !D && /* @__PURE__ */ _("span", {
469
+ N.packageUrl && !E && /* @__PURE__ */ g("span", {
470
470
  className: "text-xs text-status-success-text",
471
471
  children: "✓ Uploaded"
472
472
  })
473
473
  ]
474
474
  }),
475
- k && /* @__PURE__ */ _("p", {
475
+ O && /* @__PURE__ */ g("p", {
476
476
  className: "text-xs text-destructive",
477
- children: k
477
+ children: O
478
478
  })
479
479
  ]
480
480
  }),
481
- /* @__PURE__ */ v("div", {
481
+ /* @__PURE__ */ _("div", {
482
482
  className: "space-y-1",
483
483
  children: [
484
- /* @__PURE__ */ v("label", {
484
+ /* @__PURE__ */ _("label", {
485
485
  className: "text-sm font-medium",
486
- children: ["Manifest JSON ", /* @__PURE__ */ _("span", {
486
+ children: ["Manifest JSON ", /* @__PURE__ */ g("span", {
487
487
  className: "text-destructive",
488
488
  children: "*"
489
489
  })]
490
490
  }),
491
- /* @__PURE__ */ _("input", {
492
- ref: j,
491
+ /* @__PURE__ */ g("input", {
492
+ ref: A,
493
493
  type: "file",
494
494
  accept: ".json,application/json",
495
495
  className: "hidden",
496
- onChange: Ge
496
+ onChange: Ke
497
497
  }),
498
- /* @__PURE__ */ v("div", {
498
+ /* @__PURE__ */ _("div", {
499
499
  className: "flex gap-2 items-center",
500
- children: [/* @__PURE__ */ v("button", {
500
+ children: [/* @__PURE__ */ _("button", {
501
501
  type: "button",
502
- onClick: () => j.current?.click(),
502
+ onClick: () => A.current?.click(),
503
503
  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",
504
- children: [/* @__PURE__ */ _(he, { size: 14 }), I ? "Replace manifest.json" : "Upload manifest.json"]
505
- }), I && /* @__PURE__ */ v("span", {
504
+ children: [/* @__PURE__ */ g(ge, { size: 14 }), F ? "Replace manifest.json" : "Upload manifest.json"]
505
+ }), F && /* @__PURE__ */ _("span", {
506
506
  className: "text-xs text-status-success-text",
507
- children: ["✓ ", I]
507
+ children: ["✓ ", F]
508
508
  })]
509
509
  }),
510
- I && P.manifestJson && (() => {
510
+ F && N.manifestJson && (() => {
511
511
  try {
512
- let e = JSON.parse(P.manifestJson), t = typeof e.name == "string" ? e.name : null, n = typeof e.version == "string" ? e.version : null, r = typeof e.itemType == "string" ? e.itemType : null;
513
- return /* @__PURE__ */ v("div", {
512
+ let e = JSON.parse(N.manifestJson), t = typeof e.name == "string" ? e.name : null, n = typeof e.version == "string" ? e.version : null, r = typeof e.itemType == "string" ? e.itemType : null;
513
+ return /* @__PURE__ */ _("div", {
514
514
  className: "rounded-md border bg-muted/40 px-3 py-2 text-xs font-mono space-y-0.5",
515
515
  children: [
516
- t && /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("span", {
516
+ t && /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("span", {
517
517
  className: "text-muted-foreground",
518
518
  children: "name: "
519
519
  }), t] }),
520
- n && /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("span", {
520
+ n && /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("span", {
521
521
  className: "text-muted-foreground",
522
522
  children: "version: "
523
523
  }), n] }),
524
- r && /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("span", {
524
+ r && /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("span", {
525
525
  className: "text-muted-foreground",
526
526
  children: "itemType: "
527
527
  }), r] })
@@ -531,139 +531,139 @@ var xe = () => {
531
531
  return null;
532
532
  }
533
533
  })(),
534
- /* @__PURE__ */ _("p", {
534
+ /* @__PURE__ */ g("p", {
535
535
  className: "text-xs text-muted-foreground",
536
- children: Fe ? "Upload your manifest.json — defines the workflow steps, triggers, and configuration." : "Upload your manifest.json — defines the node's inputs, outputs, and configuration schema."
536
+ children: Ie ? "Upload your manifest.json — defines the workflow steps, triggers, and configuration." : "Upload your manifest.json — defines the node's inputs, outputs, and configuration schema."
537
537
  })
538
538
  ]
539
539
  })
540
540
  ]
541
- }) : /* @__PURE__ */ v("div", {
541
+ }) : !Le && /* @__PURE__ */ _("div", {
542
542
  className: "space-y-2",
543
543
  children: [
544
- /* @__PURE__ */ _("label", {
544
+ /* @__PURE__ */ g("label", {
545
545
  className: "text-sm font-medium",
546
546
  children: "Package"
547
547
  }),
548
- /* @__PURE__ */ v("div", {
548
+ /* @__PURE__ */ _("div", {
549
549
  className: "flex gap-1 rounded-md border p-0.5 w-fit",
550
- children: [/* @__PURE__ */ v("button", {
550
+ children: [/* @__PURE__ */ _("button", {
551
551
  type: "button",
552
- onClick: () => R("file"),
553
- className: `inline-flex items-center gap-1.5 rounded px-3 py-1 text-xs font-medium transition-colors ${L === "file" ? "bg-primary text-primary-foreground" : "hover:bg-muted"}`,
554
- children: [/* @__PURE__ */ _(h, { size: 12 }), " Upload zip"]
555
- }), /* @__PURE__ */ v("button", {
552
+ onClick: () => L("file"),
553
+ className: `inline-flex items-center gap-1.5 rounded px-3 py-1 text-xs font-medium transition-colors ${I === "file" ? "bg-primary text-primary-foreground" : "hover:bg-muted"}`,
554
+ children: [/* @__PURE__ */ g(m, { size: 12 }), " Upload zip"]
555
+ }), /* @__PURE__ */ _("button", {
556
556
  type: "button",
557
- onClick: () => R("manifest"),
558
- className: `inline-flex items-center gap-1.5 rounded px-3 py-1 text-xs font-medium transition-colors ${L === "manifest" ? "bg-primary text-primary-foreground" : "hover:bg-muted"}`,
559
- children: [/* @__PURE__ */ _(he, { size: 12 }), " Paste manifest JSON"]
557
+ onClick: () => L("manifest"),
558
+ className: `inline-flex items-center gap-1.5 rounded px-3 py-1 text-xs font-medium transition-colors ${I === "manifest" ? "bg-primary text-primary-foreground" : "hover:bg-muted"}`,
559
+ children: [/* @__PURE__ */ g(ge, { size: 12 }), " Paste manifest JSON"]
560
560
  })]
561
561
  }),
562
- L === "file" && /* @__PURE__ */ v("div", {
562
+ I === "file" && /* @__PURE__ */ _("div", {
563
563
  className: "space-y-1",
564
- children: [/* @__PURE__ */ v("div", {
564
+ children: [/* @__PURE__ */ _("div", {
565
565
  className: "flex gap-2 items-center",
566
566
  children: [
567
- /* @__PURE__ */ _("input", {
568
- ref: A,
567
+ /* @__PURE__ */ g("input", {
568
+ ref: k,
569
569
  type: "file",
570
570
  accept: ".zip",
571
571
  className: "hidden",
572
- onChange: We
572
+ onChange: Ge
573
573
  }),
574
- /* @__PURE__ */ _("button", {
574
+ /* @__PURE__ */ g("button", {
575
575
  type: "button",
576
- disabled: D,
577
- onClick: () => A.current?.click(),
576
+ disabled: E,
577
+ onClick: () => k.current?.click(),
578
578
  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",
579
- children: D ? /* @__PURE__ */ v(g, { children: [
580
- /* @__PURE__ */ _(m, {
579
+ children: E ? /* @__PURE__ */ _(h, { children: [
580
+ /* @__PURE__ */ g(p, {
581
581
  size: 14,
582
582
  className: "animate-spin"
583
583
  }),
584
584
  " ",
585
585
  "Uploading… ",
586
- O,
586
+ D,
587
587
  "%"
588
- ] }) : /* @__PURE__ */ v(g, { children: [
589
- /* @__PURE__ */ _(h, { size: 14 }),
588
+ ] }) : /* @__PURE__ */ _(h, { children: [
589
+ /* @__PURE__ */ g(m, { size: 14 }),
590
590
  " ",
591
- P.packageUrl ? "Replace zip" : "Upload zip"
591
+ N.packageUrl ? "Replace zip" : "Upload zip"
592
592
  ] })
593
593
  }),
594
- P.packageUrl && !D && /* @__PURE__ */ _("span", {
594
+ N.packageUrl && !E && /* @__PURE__ */ g("span", {
595
595
  className: "text-xs text-status-success-text",
596
596
  children: "✓ Uploaded"
597
597
  })
598
598
  ]
599
- }), k && /* @__PURE__ */ _("p", {
599
+ }), O && /* @__PURE__ */ g("p", {
600
600
  className: "text-xs text-destructive",
601
- children: k
601
+ children: O
602
602
  })]
603
603
  }),
604
- L === "manifest" && /* @__PURE__ */ v("div", {
604
+ I === "manifest" && /* @__PURE__ */ _("div", {
605
605
  className: "space-y-1",
606
- children: [/* @__PURE__ */ _("textarea", {
606
+ children: [/* @__PURE__ */ g("textarea", {
607
607
  rows: 6,
608
608
  placeholder: "{\n \"name\": \"my-workflow\",\n \"version\": \"1.0.0\",\n \"steps\": []\n}",
609
- value: P.manifestJson,
610
- onChange: (e) => F({
611
- ...P,
609
+ value: N.manifestJson,
610
+ onChange: (e) => P({
611
+ ...N,
612
612
  manifestJson: e.target.value
613
613
  }),
614
614
  className: "w-full rounded-md border bg-transparent px-3 py-2 text-xs font-mono resize-y placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring"
615
- }), /* @__PURE__ */ _("p", {
615
+ }), /* @__PURE__ */ g("p", {
616
616
  className: "text-xs text-muted-foreground",
617
617
  children: "Paste your workflow or configuration JSON here. No zip required."
618
618
  })]
619
619
  })
620
620
  ]
621
621
  }),
622
- /* @__PURE__ */ _(oe, {
623
- label: b("devportal.releaseNotes", "Release Notes"),
624
- value: P.releaseNotes,
625
- onChange: (e) => F({
626
- ...P,
622
+ /* @__PURE__ */ g(oe, {
623
+ label: y("devportal.releaseNotes", "Release Notes"),
624
+ value: N.releaseNotes,
625
+ onChange: (e) => P({
626
+ ...N,
627
627
  releaseNotes: e.target.value
628
628
  }),
629
- placeholder: b("devportal.releaseNotesPlaceholder", "What changed in this release?"),
629
+ placeholder: y("devportal.releaseNotesPlaceholder", "What changed in this release?"),
630
630
  rows: 2
631
631
  })
632
632
  ]
633
633
  })
634
634
  }),
635
- /* @__PURE__ */ _(o, {
636
- open: Ne === "publish",
635
+ /* @__PURE__ */ g(o, {
636
+ open: Pe === "publish",
637
637
  onOpenChange: (e) => {
638
- e || U(null);
638
+ e || H(null);
639
639
  },
640
640
  onConfirm: async () => {
641
- if (Y.length === 0) return;
642
- z(null);
643
- let e = await Promise.allSettled(Y.map((e) => Be({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
644
- B(`Published ${t} version${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`), $(), U(null);
641
+ if (J.length === 0) return;
642
+ R(null);
643
+ let e = await Promise.allSettled(J.map((e) => He({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
644
+ z(`Published ${t} version${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`), $(), H(null);
645
645
  },
646
- title: b("devportal.publishSelectedVersions", "Publish selected versions"),
647
- description: `${b("devportal.publish", "Publish")} ${Y.length} selected version${Y.length === 1 ? "" : "s"}?`,
648
- confirmLabel: b("devportal.publish", "Publish"),
649
- cancelLabel: b("devportal.cancel", "Cancel"),
646
+ title: y("devportal.publishSelectedVersions", "Publish selected versions"),
647
+ description: `${y("devportal.publish", "Publish")} ${J.length} selected version${J.length === 1 ? "" : "s"}?`,
648
+ confirmLabel: y("devportal.publish", "Publish"),
649
+ cancelLabel: y("devportal.cancel", "Cancel"),
650
650
  variant: "success"
651
651
  }),
652
- /* @__PURE__ */ _(o, {
653
- open: Ne === "deprecate",
652
+ /* @__PURE__ */ g(o, {
653
+ open: Pe === "deprecate",
654
654
  onOpenChange: (e) => {
655
- e || U(null);
655
+ e || H(null);
656
656
  },
657
657
  onConfirm: async () => {
658
- if (X.length === 0) return;
659
- z(null);
660
- let e = await Promise.allSettled(X.map((e) => Ve({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
661
- B(`Deprecated ${t} version${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`), $(), U(null);
658
+ if (Y.length === 0) return;
659
+ R(null);
660
+ let e = await Promise.allSettled(Y.map((e) => Ue({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
661
+ z(`Deprecated ${t} version${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`), $(), H(null);
662
662
  },
663
- title: b("devportal.deprecateSelectedVersions", "Deprecate selected versions"),
664
- 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.")}`,
665
- confirmLabel: b("devportal.deprecate", "Deprecate"),
666
- cancelLabel: b("devportal.cancel", "Cancel"),
663
+ title: y("devportal.deprecateSelectedVersions", "Deprecate selected versions"),
664
+ description: `${y("devportal.deprecate", "Deprecate")} ${Y.length} selected version${Y.length === 1 ? "" : "s"}? ${y("devportal.deprecateVersionsWarning", "Deprecated versions remain visible but should no longer be promoted.")}`,
665
+ confirmLabel: y("devportal.deprecate", "Deprecate"),
666
+ cancelLabel: y("devportal.cancel", "Cancel"),
667
667
  variant: "warning"
668
668
  })
669
669
  ]
@@ -671,6 +671,6 @@ var xe = () => {
671
671
  });
672
672
  };
673
673
  //#endregion
674
- export { xe as ApplicationVersionsPage };
674
+ export { Se as ApplicationVersionsPage };
675
675
 
676
676
  //# sourceMappingURL=ApplicationVersionsPage.js.map