@burdenoff/microfe-devportal 2026.917.1 → 2026.917.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.
@@ -13,38 +13,19 @@ import { PermissionGuard as ue } from "../components/PermissionGuard.js";
13
13
  import { MarkdownEditor as de } from "../components/MarkdownEditor.js";
14
14
  import "../components/index.js";
15
15
  import { useDevportalPermission as d } from "../hooks/usePermission.js";
16
+ import { useProducts as fe } from "../hooks/useProducts.js";
17
+ import "../hooks/index.js";
16
18
  import { DEVPORTAL_PERMISSIONS as f } from "../constants/permissions.js";
17
19
  import { useEffect as p, useState as m } from "react";
18
- import { AlertCircle as fe, AlertTriangle as pe, AppWindow as me, Archive as he, Check as h, Copy as ge, Eye as g, EyeOff as _e, Power as ve, RefreshCw as _, Save as ye, Send as be, Trash2 as xe } from "lucide-react";
19
- import { useParams as Se } from "react-router";
20
- import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
21
- import { useI18n as Ce } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
20
+ import { AlertCircle as pe, AlertTriangle as me, AppWindow as he, Archive as ge, Check as h, Copy as _e, Eye as ve, EyeOff as ye, Power as be, RefreshCw as g, Save as xe, Send as Se, Trash2 as Ce } from "lucide-react";
21
+ import { useParams as we } from "react-router";
22
+ import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
23
+ import { useI18n as Te } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
22
24
  //#region src/devportal/pages/EditApplicationPage.tsx
23
- var we = [
24
- {
25
- value: "fluidgrids",
26
- label: "FluidGrids"
27
- },
28
- {
29
- value: "workspaces",
30
- label: "Workspaces"
31
- },
32
- {
33
- value: "bigconsole",
34
- label: "BigConsole"
35
- },
36
- {
37
- value: "botlit",
38
- label: "Botlit"
39
- },
40
- {
41
- value: "vibecontrols",
42
- label: "VibeControls"
43
- }
44
- ], Te = Object.entries(a).map(([e, t]) => ({
25
+ var Ee = Object.entries(a).map(([e, t]) => ({
45
26
  value: e,
46
27
  label: t
47
- })), x = [
28
+ })), b = [
48
29
  {
49
30
  value: "PUBLIC",
50
31
  label: "Public — listed in the marketplace after review"
@@ -57,10 +38,10 @@ var we = [
57
38
  value: "INTERNAL",
58
39
  label: "Internal — visible to your entire dev org"
59
40
  }
60
- ], Ee = [...x, {
41
+ ], De = [...b, {
61
42
  value: "UNLISTED",
62
43
  label: "Unlisted — shareable via link, not listed in store"
63
- }], De = [
44
+ }], Oe = [
64
45
  {
65
46
  value: "ai",
66
47
  label: "AI & Automation"
@@ -90,7 +71,7 @@ var we = [
90
71
  label: "Triggers"
91
72
  }
92
73
  ];
93
- function Oe(e) {
74
+ function ke(e) {
94
75
  return e ? {
95
76
  id: e.id,
96
77
  name: e.name,
@@ -133,21 +114,21 @@ function Oe(e) {
133
114
  updatedAt: e.updatedAt
134
115
  } : null;
135
116
  }
136
- var S = () => {
137
- let { navigate: a, basePath: S } = e(), { appId: C } = Se(), { t: ke } = Ce(), { allowed: w } = d(f.APP_UPDATE), { allowed: T } = d(f.APP_DELETE), E = (e, t) => {
138
- let n = ke(e);
117
+ var x = () => {
118
+ let { navigate: a, basePath: x } = e(), { appId: S } = we(), { t: Ae } = Te(), { products: C } = fe(), { allowed: w } = d(f.APP_UPDATE), { allowed: T } = d(f.APP_DELETE), E = (e, t) => {
119
+ let n = Ae(e);
139
120
  return n === e ? t : n;
140
- }, [D, O] = m(!1), [k, A] = m({}), [Ae, j] = m(!1), [je, M] = m(!1), [Me, N] = m(!1), [P, F] = m(!1), [I, L] = m(!1), [R, z] = m(!1), [B, Ne] = m(null), [Pe, V] = m(!1), { data: H, loading: Fe, error: U, refetch: Ie } = re({
141
- variables: { id: C },
142
- skip: !C
143
- }), [W] = ae(), [Le] = ne(), [Re] = te(), [ze] = ie(), G = Oe(H?.application);
121
+ }, [D, O] = m(!1), [k, A] = m({}), [je, j] = m(!1), [Me, M] = m(!1), [N, P] = m(!1), [F, I] = m(!1), [L, R] = m(!1), [z, B] = m(!1), [V, Ne] = m(null), [Pe, H] = m(!1), { data: U, loading: Fe, error: W, refetch: Ie } = re({
122
+ variables: { id: S },
123
+ skip: !S
124
+ }), [G] = ae(), [Le] = ne(), [Re] = te(), [ze] = ie(), K = ke(U?.application);
144
125
  p(() => {
145
- let e = G?.name;
146
- if (!C || !e) return;
126
+ let e = K?.name;
127
+ if (!S || !e) return;
147
128
  let t = window.__breadcrumbRegistry;
148
- return t?.register(C, e), () => t?.unregister(C);
149
- }, [C, G?.name]);
150
- let [K, q] = m({
129
+ return t?.register(S, e), () => t?.unregister(S);
130
+ }, [S, K?.name]);
131
+ let [q, J] = m({
151
132
  name: "",
152
133
  slug: "",
153
134
  shortDescription: "",
@@ -166,225 +147,225 @@ var S = () => {
166
147
  oauthAuthUrl: "",
167
148
  oauthRevokeUrl: "",
168
149
  requiresApproval: !1
169
- }), [J, Y] = m([]);
150
+ }), [Y, X] = m([]);
170
151
  p(() => {
171
- if (G) {
172
- q({
173
- name: G.name,
174
- slug: G.slug,
175
- shortDescription: G.shortDescription || "",
176
- description: G.description || "",
177
- appType: G.appType,
178
- visibility: G.visibility,
179
- category: G.category || "",
180
- tags: G.tags,
181
- keywords: G.keywords,
182
- websiteUrl: G.websiteUrl || "",
183
- documentationUrl: G.documentationUrl || "",
184
- supportUrl: G.supportUrl || "",
185
- privacyPolicyUrl: G.privacyPolicyUrl || "",
186
- termsOfServiceUrl: G.termsOfServiceUrl || "",
187
- githubUrl: G.githubUrl || "",
188
- oauthAuthUrl: G.oauthAuthUrl || "",
189
- oauthRevokeUrl: G.oauthRevokeUrl || "",
190
- requiresApproval: G.requiresApproval
152
+ if (K) {
153
+ J({
154
+ name: K.name,
155
+ slug: K.slug,
156
+ shortDescription: K.shortDescription || "",
157
+ description: K.description || "",
158
+ appType: K.appType,
159
+ visibility: K.visibility,
160
+ category: K.category || "",
161
+ tags: K.tags,
162
+ keywords: K.keywords,
163
+ websiteUrl: K.websiteUrl || "",
164
+ documentationUrl: K.documentationUrl || "",
165
+ supportUrl: K.supportUrl || "",
166
+ privacyPolicyUrl: K.privacyPolicyUrl || "",
167
+ termsOfServiceUrl: K.termsOfServiceUrl || "",
168
+ githubUrl: K.githubUrl || "",
169
+ oauthAuthUrl: K.oauthAuthUrl || "",
170
+ oauthRevokeUrl: K.oauthRevokeUrl || "",
171
+ requiresApproval: K.requiresApproval
191
172
  });
192
- let e = H?.application?.manifest?.compatibility;
193
- Y(Array.isArray(e?.products) ? e.products : []), F(!1);
173
+ let e = U?.application?.manifest?.compatibility;
174
+ X(Array.isArray(e?.products) ? e.products : []), I(!1);
194
175
  }
195
- }, [H?.application]);
196
- let X = (e) => {
197
- a?.(`${S}${e}`);
198
- }, Z = (e, t) => {
199
- q((n) => ({
176
+ }, [U?.application]);
177
+ let Z = (e) => {
178
+ a?.(`${x}${e}`);
179
+ }, Q = (e, t) => {
180
+ J((n) => ({
200
181
  ...n,
201
182
  [e]: t
202
- })), F(!0), k[e] && A((t) => ({
183
+ })), I(!0), k[e] && A((t) => ({
203
184
  ...t,
204
185
  [e]: void 0
205
186
  }));
206
- }, Q = async () => {
207
- if (C) {
208
- z(!0);
187
+ }, $ = async () => {
188
+ if (S) {
189
+ B(!0);
209
190
  try {
210
- let e = (await ze({ variables: { id: C } })).data?.rotateApplicationSigningSecret?.signingSecret;
211
- e && (Ne(e), L(!0));
191
+ let e = (await ze({ variables: { id: S } })).data?.rotateApplicationSigningSecret?.signingSecret;
192
+ e && (Ne(e), R(!0));
212
193
  } catch {
213
194
  o("error");
214
195
  } finally {
215
- z(!1);
196
+ B(!1);
216
197
  }
217
198
  }
218
199
  }, Be = async (e) => {
219
- await navigator.clipboard.writeText(e), V(!0), setTimeout(() => V(!1), 2e3);
200
+ await navigator.clipboard.writeText(e), H(!0), setTimeout(() => H(!1), 2e3);
220
201
  }, Ve = () => {
221
202
  let e = {};
222
- return K.name.trim() ? K.name.length < 3 ? e.name = E("devportal.appNameMinLength", "Name must be at least 3 characters") : K.name.length > 100 && (e.name = E("devportal.appNameMaxLength", "Name must be less than 100 characters")) : e.name = E("devportal.appNameRequired", "Application name is required"), K.slug.trim() ? /^[a-z0-9-]+$/.test(K.slug) || (e.slug = E("devportal.slugInvalidChars", "Slug can only contain lowercase letters, numbers, and hyphens")) : e.slug = E("devportal.slugRequired", "Slug is required"), K.shortDescription.trim() ? K.shortDescription.length > 200 && (e.shortDescription = E("devportal.shortDescriptionMaxLength", "Short description must be less than 200 characters")) : e.shortDescription = E("devportal.shortDescriptionRequired", "Short description is required"), K.appType || (e.appType = E("devportal.appTypeRequired", "Application type is required")), K.category || (e.category = E("devportal.categoryRequired", "Category is required")), A(e), Object.keys(e).length === 0;
203
+ return q.name.trim() ? q.name.length < 3 ? e.name = E("devportal.appNameMinLength", "Name must be at least 3 characters") : q.name.length > 100 && (e.name = E("devportal.appNameMaxLength", "Name must be less than 100 characters")) : e.name = E("devportal.appNameRequired", "Application name is required"), q.slug.trim() ? /^[a-z0-9-]+$/.test(q.slug) || (e.slug = E("devportal.slugInvalidChars", "Slug can only contain lowercase letters, numbers, and hyphens")) : e.slug = E("devportal.slugRequired", "Slug is required"), q.shortDescription.trim() ? q.shortDescription.length > 200 && (e.shortDescription = E("devportal.shortDescriptionMaxLength", "Short description must be less than 200 characters")) : e.shortDescription = E("devportal.shortDescriptionRequired", "Short description is required"), q.appType || (e.appType = E("devportal.appTypeRequired", "Application type is required")), q.category || (e.category = E("devportal.categoryRequired", "Category is required")), A(e), Object.keys(e).length === 0;
223
204
  }, He = async (e) => {
224
- if (e.preventDefault(), !(!Ve() || !G)) {
205
+ if (e.preventDefault(), !(!Ve() || !K)) {
225
206
  O(!0);
226
207
  try {
227
- await W({ variables: {
228
- id: G.id,
208
+ await G({ variables: {
209
+ id: K.id,
229
210
  input: {
230
- name: K.name,
231
- shortDescription: K.shortDescription,
232
- description: K.description,
233
- appType: K.appType,
234
- visibility: K.visibility,
235
- category: K.category,
236
- tags: K.tags,
237
- keywords: K.keywords,
238
- websiteUrl: K.websiteUrl || null,
239
- documentationUrl: K.documentationUrl || null,
240
- supportUrl: K.supportUrl || null,
241
- privacyPolicyUrl: K.privacyPolicyUrl || null,
242
- termsOfServiceUrl: K.termsOfServiceUrl || null,
243
- githubUrl: K.githubUrl || null,
244
- oauthAuthUrl: K.oauthAuthUrl || null,
245
- oauthRevokeUrl: K.oauthRevokeUrl || null,
246
- compatibleProducts: J
211
+ name: q.name,
212
+ shortDescription: q.shortDescription,
213
+ description: q.description,
214
+ appType: q.appType,
215
+ visibility: q.visibility,
216
+ category: q.category,
217
+ tags: q.tags,
218
+ keywords: q.keywords,
219
+ websiteUrl: q.websiteUrl || null,
220
+ documentationUrl: q.documentationUrl || null,
221
+ supportUrl: q.supportUrl || null,
222
+ privacyPolicyUrl: q.privacyPolicyUrl || null,
223
+ termsOfServiceUrl: q.termsOfServiceUrl || null,
224
+ githubUrl: q.githubUrl || null,
225
+ oauthAuthUrl: q.oauthAuthUrl || null,
226
+ oauthRevokeUrl: q.oauthRevokeUrl || null,
227
+ compatibleProducts: Y
247
228
  }
248
- } }), F(!1);
229
+ } }), I(!1);
249
230
  } catch (e) {
250
231
  console.error("Failed to update application:", e);
251
232
  } finally {
252
233
  O(!1);
253
234
  }
254
235
  }
255
- }, $ = async () => {
256
- if (G) {
236
+ }, Ue = async () => {
237
+ if (K) {
257
238
  se("medium");
258
239
  try {
259
- await Le({ variables: { id: G.id } }), o("success"), X("/apps");
240
+ await Le({ variables: { id: K.id } }), o("success"), Z("/apps");
260
241
  } catch (e) {
261
242
  o("error"), console.error("Failed to delete application:", e);
262
243
  }
263
244
  }
264
- }, Ue = async () => {
265
- if (G) try {
266
- await W({ variables: {
267
- id: G.id,
245
+ }, We = async () => {
246
+ if (K) try {
247
+ await G({ variables: {
248
+ id: K.id,
268
249
  input: { visibility: "PRIVATE" }
269
250
  } }), M(!1);
270
251
  } catch (e) {
271
252
  console.error("Failed to deprecate application:", e);
272
253
  }
273
- }, We = async () => {
274
- if (G) try {
275
- await Re({ variables: { id: G.id } }), N(!1), X("/apps");
254
+ }, Ge = async () => {
255
+ if (K) try {
256
+ await Re({ variables: { id: K.id } }), P(!1), Z("/apps");
276
257
  } catch (e) {
277
258
  console.error("Failed to deactivate application:", e);
278
259
  }
279
260
  };
280
- if (Fe) return /* @__PURE__ */ y(n, { message: E("devportal.loadingApplication", "Loading application...") });
281
- if (U) return /* @__PURE__ */ y(r, {
261
+ if (Fe) return /* @__PURE__ */ v(n, { message: E("devportal.loadingApplication", "Loading application...") });
262
+ if (W) return /* @__PURE__ */ v(r, {
282
263
  title: E("devportal.error", "Error"),
283
- backLink: `${S}/apps`,
264
+ backLink: `${x}/apps`,
284
265
  backLabel: E("devportal.backToApplications", "Back to Applications"),
285
- children: /* @__PURE__ */ b("div", {
266
+ children: /* @__PURE__ */ y("div", {
286
267
  className: "flex flex-col items-center justify-center py-12 text-center",
287
268
  children: [
288
- /* @__PURE__ */ y(fe, {
269
+ /* @__PURE__ */ v(pe, {
289
270
  size: 48,
290
271
  className: "text-status-error-text mb-4"
291
272
  }),
292
- /* @__PURE__ */ y("h3", {
273
+ /* @__PURE__ */ v("h3", {
293
274
  className: "text-lg font-semibold mb-2",
294
275
  children: E("devportal.failedToLoadApplication", "Failed to load application")
295
276
  }),
296
- /* @__PURE__ */ y("p", {
277
+ /* @__PURE__ */ v("p", {
297
278
  className: "text-sm text-text-secondary",
298
- children: U.message
279
+ children: W.message
299
280
  })
300
281
  ]
301
282
  })
302
283
  });
303
- if (!G) return /* @__PURE__ */ y(r, {
284
+ if (!K) return /* @__PURE__ */ v(r, {
304
285
  title: E("devportal.notFound", "Not Found"),
305
- backLink: `${S}/apps`,
286
+ backLink: `${x}/apps`,
306
287
  backLabel: E("devportal.backToApplications", "Back to Applications"),
307
- children: /* @__PURE__ */ y(ee, {
288
+ children: /* @__PURE__ */ v(ee, {
308
289
  illustration: "empty-generic",
309
- icon: /* @__PURE__ */ y(me, { size: 48 }),
290
+ icon: /* @__PURE__ */ v(he, { size: 48 }),
310
291
  title: E("devportal.applicationNotFound", "Application not found"),
311
292
  description: E("devportal.applicationNotFoundDescription", "The application you're looking for doesn't exist or you don't have access to it.")
312
293
  })
313
294
  });
314
- let Ge = G.status === "DRAFT" || G.status === "REJECTED", Ke = G.status === "PUBLISHED", qe = G.status === "ACTIVE" || G.status === "PUBLISHED";
315
- return /* @__PURE__ */ y(ue, {
295
+ let Ke = K.status === "DRAFT" || K.status === "REJECTED", qe = K.status === "PUBLISHED", Je = K.status === "ACTIVE" || K.status === "PUBLISHED";
296
+ return /* @__PURE__ */ v(ue, {
316
297
  authOnly: !0,
317
- children: /* @__PURE__ */ b(r, {
318
- title: `${E("devportal.editAppTitlePrefix", "Edit:")} ${G.name}`,
298
+ children: /* @__PURE__ */ y(r, {
299
+ title: `${E("devportal.editAppTitlePrefix", "Edit:")} ${K.name}`,
319
300
  description: E("devportal.editAppDescription", "Update your application settings"),
320
301
  purpose: E("devportal.editAppPurpose", "Change how this app appears and behaves — its name, description, classification, links, and lifecycle settings. Use the danger zone at the bottom to deprecate or delete it when it is retired."),
321
- backLink: `${S}/apps/${G.id}`,
302
+ backLink: `${x}/apps/${K.id}`,
322
303
  backLabel: E("devportal.backToApplication", "Back to Application"),
323
- actions: /* @__PURE__ */ y("div", {
304
+ actions: /* @__PURE__ */ v("div", {
324
305
  className: "flex items-center gap-2",
325
- children: /* @__PURE__ */ y(oe, {
326
- status: G.status,
306
+ children: /* @__PURE__ */ v(oe, {
307
+ status: K.status,
327
308
  type: "app"
328
309
  })
329
310
  }),
330
311
  children: [
331
- /* @__PURE__ */ b("form", {
312
+ /* @__PURE__ */ y("form", {
332
313
  onSubmit: He,
333
314
  className: "space-y-8 max-w-3xl",
334
315
  children: [
335
- G.status === "PUBLISHED" && /* @__PURE__ */ b("div", {
316
+ K.status === "PUBLISHED" && /* @__PURE__ */ y("div", {
336
317
  className: "rounded-lg border border-border-subtle bg-status-warning-bg-subtle p-4 flex gap-3",
337
- children: [/* @__PURE__ */ y(pe, {
318
+ children: [/* @__PURE__ */ v(me, {
338
319
  size: 20,
339
320
  className: "text-status-warning-text flex-shrink-0 mt-0.5"
340
- }), /* @__PURE__ */ b("div", {
321
+ }), /* @__PURE__ */ y("div", {
341
322
  className: "text-sm text-status-warning-text",
342
- children: [/* @__PURE__ */ y("p", {
323
+ children: [/* @__PURE__ */ v("p", {
343
324
  className: "font-medium",
344
325
  children: E("devportal.appIsPublished", "This application is published")
345
- }), /* @__PURE__ */ y("p", {
326
+ }), /* @__PURE__ */ v("p", {
346
327
  className: "mt-1 text-status-warning-text",
347
328
  children: E("devportal.publishedAppChangesWarning", "Changes to published apps may require re-review. Major changes will put the app back into review status.")
348
329
  })]
349
330
  })]
350
331
  }),
351
- /* @__PURE__ */ y(i, {
332
+ /* @__PURE__ */ v(i, {
352
333
  title: E("devportal.basicInformation", "Basic Information"),
353
334
  description: E("devportal.basicInformationDescription", "Core details about your application"),
354
- children: /* @__PURE__ */ b("div", {
335
+ children: /* @__PURE__ */ y("div", {
355
336
  className: "space-y-4",
356
337
  children: [
357
- /* @__PURE__ */ y(s, {
338
+ /* @__PURE__ */ v(s, {
358
339
  label: E("devportal.applicationName", "Application Name"),
359
- value: K.name,
360
- onChange: (e) => Z("name", e.target.value),
340
+ value: q.name,
341
+ onChange: (e) => Q("name", e.target.value),
361
342
  placeholder: E("devportal.applicationNamePlaceholder", "My Awesome App"),
362
343
  required: !0,
363
344
  error: k.name
364
345
  }),
365
- /* @__PURE__ */ y(s, {
346
+ /* @__PURE__ */ v(s, {
366
347
  label: E("devportal.slug", "Slug"),
367
- value: K.slug,
368
- onChange: (e) => Z("slug", e.target.value.toLowerCase()),
348
+ value: q.slug,
349
+ onChange: (e) => Q("slug", e.target.value.toLowerCase()),
369
350
  placeholder: E("devportal.slugPlaceholder", "my-awesome-app"),
370
351
  required: !0,
371
352
  error: k.slug,
372
353
  hint: E("devportal.slugChangeWarning", "Changing the slug may break existing integrations")
373
354
  }),
374
- /* @__PURE__ */ y(le, {
355
+ /* @__PURE__ */ v(le, {
375
356
  label: E("devportal.shortDescription", "Short Description"),
376
- value: K.shortDescription,
377
- onChange: (e) => Z("shortDescription", e.target.value),
357
+ value: q.shortDescription,
358
+ onChange: (e) => Q("shortDescription", e.target.value),
378
359
  placeholder: E("devportal.shortDescriptionPlaceholder", "A brief description of what your app does"),
379
360
  required: !0,
380
361
  error: k.shortDescription,
381
- hint: `${K.shortDescription.length}/200 ${E("devportal.characters", "characters")}`,
362
+ hint: `${q.shortDescription.length}/200 ${E("devportal.characters", "characters")}`,
382
363
  rows: 2
383
364
  }),
384
- /* @__PURE__ */ y(de, {
365
+ /* @__PURE__ */ v(de, {
385
366
  label: E("devportal.fullDescription", "Full Description"),
386
- value: K.description,
387
- onChange: (e) => Z("description", e),
367
+ value: q.description,
368
+ onChange: (e) => Q("description", e),
388
369
  placeholder: E("devportal.fullDescriptionPlaceholder", "Detailed description of your application, features, and use cases..."),
389
370
  rows: 6,
390
371
  hint: E("devportal.markdownSupported", "Markdown formatting is supported")
@@ -392,182 +373,182 @@ var S = () => {
392
373
  ]
393
374
  })
394
375
  }),
395
- /* @__PURE__ */ b(i, {
376
+ /* @__PURE__ */ y(i, {
396
377
  title: E("devportal.classification", "Classification"),
397
378
  description: E("devportal.classificationDescription", "Categorize your application"),
398
379
  children: [
399
- /* @__PURE__ */ b("div", {
380
+ /* @__PURE__ */ y("div", {
400
381
  className: "grid gap-4 sm:grid-cols-2",
401
382
  children: [
402
- /* @__PURE__ */ y(c, {
383
+ /* @__PURE__ */ v(c, {
403
384
  label: E("devportal.applicationType", "Application Type"),
404
- value: K.appType,
405
- onChange: (e) => Z("appType", e.target.value),
406
- options: Te,
385
+ value: q.appType,
386
+ onChange: (e) => Q("appType", e.target.value),
387
+ options: Ee,
407
388
  required: !0,
408
389
  error: k.appType
409
390
  }),
410
- /* @__PURE__ */ y(c, {
391
+ /* @__PURE__ */ v(c, {
411
392
  label: E("devportal.category", "Category"),
412
- value: K.category,
413
- onChange: (e) => Z("category", e.target.value),
414
- options: De,
393
+ value: q.category,
394
+ onChange: (e) => Q("category", e.target.value),
395
+ options: Oe,
415
396
  required: !0,
416
397
  error: k.category
417
398
  }),
418
- /* @__PURE__ */ y(c, {
399
+ /* @__PURE__ */ v(c, {
419
400
  label: E("devportal.visibility", "Visibility"),
420
- value: K.visibility,
421
- onChange: (e) => Z("visibility", e.target.value),
422
- options: G?.appType === "WORKFLOW" ? Ee : x,
423
- hint: K.visibility === "PUBLIC" ? E("devportal.visibilityHintPublic", "Listed in the marketplace after review approval — anyone can discover and install it") : K.visibility === "UNLISTED" ? E("devportal.visibilityHintUnlisted", "Not in the store, but accessible via a direct link. You can still submit for marketplace review") : K.visibility === "INTERNAL" ? E("devportal.visibilityHintInternal", "Visible to all members of your developer organization — no one outside can access it") : E("devportal.visibilityHintPrivate", "Only you (the creator) can see this — other org members cannot access it")
401
+ value: q.visibility,
402
+ onChange: (e) => Q("visibility", e.target.value),
403
+ options: K?.appType === "WORKFLOW" ? De : b,
404
+ hint: q.visibility === "PUBLIC" ? E("devportal.visibilityHintPublic", "Listed in the marketplace after review approval — anyone can discover and install it") : q.visibility === "UNLISTED" ? E("devportal.visibilityHintUnlisted", "Not in the store, but accessible via a direct link. You can still submit for marketplace review") : q.visibility === "INTERNAL" ? E("devportal.visibilityHintInternal", "Visible to all members of your developer organization — no one outside can access it") : E("devportal.visibilityHintPrivate", "Only you (the creator) can see this — other org members cannot access it")
424
405
  })
425
406
  ]
426
407
  }),
427
- /* @__PURE__ */ y(l, {
408
+ /* @__PURE__ */ v(l, {
428
409
  label: E("devportal.tags", "Tags"),
429
- value: K.tags,
430
- onChange: (e) => Z("tags", e),
410
+ value: q.tags,
411
+ onChange: (e) => Q("tags", e),
431
412
  placeholder: E("devportal.addTagsPlaceholder", "Add tags (press Enter)")
432
413
  }),
433
- /* @__PURE__ */ y(l, {
414
+ /* @__PURE__ */ v(l, {
434
415
  label: E("devportal.keywords", "Keywords"),
435
- value: K.keywords,
436
- onChange: (e) => Z("keywords", e),
416
+ value: q.keywords,
417
+ onChange: (e) => Q("keywords", e),
437
418
  placeholder: E("devportal.addKeywordsPlaceholder", "Add keywords (press Enter)")
438
419
  }),
439
- (K.appType === "NODE" || K.appType === "WORKFLOW") && /* @__PURE__ */ b("div", {
420
+ (q.appType === "NODE" || q.appType === "WORKFLOW") && /* @__PURE__ */ y("div", {
440
421
  className: "space-y-2",
441
422
  children: [
442
- /* @__PURE__ */ y("label", {
423
+ /* @__PURE__ */ v("label", {
443
424
  className: "block text-sm font-medium text-text-primary",
444
425
  children: "Compatible Products"
445
426
  }),
446
- /* @__PURE__ */ b("p", {
427
+ /* @__PURE__ */ y("p", {
447
428
  className: "text-xs text-text-secondary",
448
429
  children: [
449
430
  "Select which products this ",
450
- K.appType.toLowerCase(),
431
+ q.appType.toLowerCase(),
451
432
  " ",
452
433
  "works with. Users will see it in those products' node stores."
453
434
  ]
454
435
  }),
455
- /* @__PURE__ */ y("div", {
436
+ /* @__PURE__ */ v("div", {
456
437
  className: "flex flex-wrap gap-3",
457
- children: we.map((e) => {
458
- let n = J.includes(e.value);
459
- return /* @__PURE__ */ b("label", {
438
+ children: C.map((e) => {
439
+ let n = Y.includes(e.slug);
440
+ return /* @__PURE__ */ y("label", {
460
441
  className: t("flex items-center gap-2 cursor-pointer rounded-md border px-3 py-2 text-sm transition-colors", n ? "border-primary bg-primary/10 text-text-primary" : "border-border-subtle hover:border-border text-text-secondary hover:text-text-primary"),
461
442
  children: [
462
- /* @__PURE__ */ y("input", {
443
+ /* @__PURE__ */ v("input", {
463
444
  type: "checkbox",
464
445
  className: "sr-only",
465
446
  checked: n,
466
447
  onChange: () => {
467
- Y((t) => n ? t.filter((t) => t !== e.value) : [...t, e.value]), F(!0);
448
+ X((t) => n ? t.filter((t) => t !== e.slug) : [...t, e.slug]), I(!0);
468
449
  }
469
450
  }),
470
- n && /* @__PURE__ */ y(h, {
451
+ n && /* @__PURE__ */ v(h, {
471
452
  size: 14,
472
453
  className: "text-primary flex-shrink-0"
473
454
  }),
474
- e.label
455
+ e.name
475
456
  ]
476
- }, e.value);
457
+ }, e.id);
477
458
  })
478
459
  })
479
460
  ]
480
461
  })
481
462
  ]
482
463
  }),
483
- /* @__PURE__ */ y(i, {
464
+ /* @__PURE__ */ v(i, {
484
465
  title: E("devportal.links", "Links"),
485
466
  description: E("devportal.linksDescription", "External resources for your application"),
486
- children: /* @__PURE__ */ b("div", {
467
+ children: /* @__PURE__ */ y("div", {
487
468
  className: "grid gap-4 sm:grid-cols-2",
488
469
  children: [
489
- /* @__PURE__ */ y(s, {
470
+ /* @__PURE__ */ v(s, {
490
471
  label: E("devportal.websiteUrl", "Website URL"),
491
472
  type: "url",
492
- value: K.websiteUrl,
493
- onChange: (e) => Z("websiteUrl", e.target.value),
473
+ value: q.websiteUrl,
474
+ onChange: (e) => Q("websiteUrl", e.target.value),
494
475
  placeholder: E("devportal.websiteUrlPlaceholder", "https://example.com")
495
476
  }),
496
- /* @__PURE__ */ y(s, {
477
+ /* @__PURE__ */ v(s, {
497
478
  label: E("devportal.documentationUrl", "Documentation URL"),
498
479
  type: "url",
499
- value: K.documentationUrl,
500
- onChange: (e) => Z("documentationUrl", e.target.value),
480
+ value: q.documentationUrl,
481
+ onChange: (e) => Q("documentationUrl", e.target.value),
501
482
  placeholder: E("devportal.documentationUrlPlaceholder", "https://docs.example.com")
502
483
  }),
503
- /* @__PURE__ */ y(s, {
484
+ /* @__PURE__ */ v(s, {
504
485
  label: E("devportal.supportUrl", "Support URL"),
505
486
  type: "url",
506
- value: K.supportUrl,
507
- onChange: (e) => Z("supportUrl", e.target.value),
487
+ value: q.supportUrl,
488
+ onChange: (e) => Q("supportUrl", e.target.value),
508
489
  placeholder: E("devportal.supportUrlPlaceholder", "https://support.example.com")
509
490
  }),
510
- /* @__PURE__ */ y(s, {
491
+ /* @__PURE__ */ v(s, {
511
492
  label: E("devportal.githubUrl", "GitHub URL"),
512
493
  type: "url",
513
- value: K.githubUrl,
514
- onChange: (e) => Z("githubUrl", e.target.value),
494
+ value: q.githubUrl,
495
+ onChange: (e) => Q("githubUrl", e.target.value),
515
496
  placeholder: E("devportal.githubUrlPlaceholder", "https://github.com/org/repo")
516
497
  }),
517
- /* @__PURE__ */ y(s, {
498
+ /* @__PURE__ */ v(s, {
518
499
  label: E("devportal.privacyPolicyUrl", "Privacy Policy URL"),
519
500
  type: "url",
520
- value: K.privacyPolicyUrl,
521
- onChange: (e) => Z("privacyPolicyUrl", e.target.value),
501
+ value: q.privacyPolicyUrl,
502
+ onChange: (e) => Q("privacyPolicyUrl", e.target.value),
522
503
  placeholder: E("devportal.privacyPolicyUrlPlaceholder", "https://example.com/privacy")
523
504
  }),
524
- /* @__PURE__ */ y(s, {
505
+ /* @__PURE__ */ v(s, {
525
506
  label: E("devportal.termsOfServiceUrl", "Terms of Service URL"),
526
507
  type: "url",
527
- value: K.termsOfServiceUrl,
528
- onChange: (e) => Z("termsOfServiceUrl", e.target.value),
508
+ value: q.termsOfServiceUrl,
509
+ onChange: (e) => Q("termsOfServiceUrl", e.target.value),
529
510
  placeholder: E("devportal.termsOfServiceUrlPlaceholder", "https://example.com/terms")
530
511
  })
531
512
  ]
532
513
  })
533
514
  }),
534
- (K.appType === "INTEGRATION" || K.appType === "API_INTEGRATION") && /* @__PURE__ */ y(i, {
515
+ (q.appType === "INTEGRATION" || q.appType === "API_INTEGRATION") && /* @__PURE__ */ v(i, {
535
516
  title: "Integration Setup",
536
517
  description: "Configure the endpoints for your integration. After a user installs, we redirect them to your callback URL so your server can complete the connection.",
537
- children: /* @__PURE__ */ b("div", {
518
+ children: /* @__PURE__ */ y("div", {
538
519
  className: "space-y-4",
539
520
  children: [
540
- /* @__PURE__ */ y(s, {
521
+ /* @__PURE__ */ v(s, {
541
522
  label: "Post-install Callback URL",
542
523
  type: "url",
543
- value: K.oauthAuthUrl,
544
- onChange: (e) => Z("oauthAuthUrl", e.target.value),
524
+ value: q.oauthAuthUrl,
525
+ onChange: (e) => Q("oauthAuthUrl", e.target.value),
545
526
  placeholder: "https://yourapp.com/callback",
546
527
  hint: "Users land here after install with ?installation_id=xxx appended"
547
528
  }),
548
- /* @__PURE__ */ y(s, {
529
+ /* @__PURE__ */ v(s, {
549
530
  label: "Revoke URL",
550
531
  type: "url",
551
- value: K.oauthRevokeUrl,
552
- onChange: (e) => Z("oauthRevokeUrl", e.target.value),
532
+ value: q.oauthRevokeUrl,
533
+ onChange: (e) => Q("oauthRevokeUrl", e.target.value),
553
534
  placeholder: "https://yourapp.com/oauth/revoke",
554
535
  hint: "We POST to this URL when a user uninstalls your integration"
555
536
  }),
556
537
  (() => {
557
- let e = B ?? H?.application?.signingSecret, t = "boff_sk_" + "•".repeat(32);
558
- return /* @__PURE__ */ b("div", {
538
+ let e = V ?? U?.application?.signingSecret, t = "boff_sk_" + "•".repeat(32);
539
+ return /* @__PURE__ */ y("div", {
559
540
  className: "space-y-1.5",
560
541
  children: [
561
- /* @__PURE__ */ y("label", {
542
+ /* @__PURE__ */ v("label", {
562
543
  className: "block text-sm font-medium text-text-primary",
563
544
  children: "Signing Secret"
564
545
  }),
565
- /* @__PURE__ */ b("p", {
546
+ /* @__PURE__ */ y("p", {
566
547
  className: "text-xs text-text-secondary",
567
548
  children: [
568
549
  "Use this secret to authenticate",
569
550
  " ",
570
- /* @__PURE__ */ y("code", {
551
+ /* @__PURE__ */ v("code", {
571
552
  className: "font-mono text-xs bg-bg-sunken px-1 py-0.5 rounded",
572
553
  children: "verifyInstallation"
573
554
  }),
@@ -575,55 +556,55 @@ var S = () => {
575
556
  "calls from your integration server. Store it securely — it is only shown immediately after generation or rotation."
576
557
  ]
577
558
  }),
578
- e ? /* @__PURE__ */ b("div", {
559
+ e ? /* @__PURE__ */ y("div", {
579
560
  className: "flex items-center gap-2",
580
- children: [/* @__PURE__ */ b("div", {
561
+ children: [/* @__PURE__ */ y("div", {
581
562
  className: "flex-1 flex items-center gap-0 rounded-md border border-border-default bg-bg-sunken overflow-hidden",
582
563
  children: [
583
- /* @__PURE__ */ y("code", {
564
+ /* @__PURE__ */ v("code", {
584
565
  className: "flex-1 px-3 py-2 text-xs font-mono text-text-primary truncate",
585
- children: I ? e : t
566
+ children: L ? e : t
586
567
  }),
587
- /* @__PURE__ */ y("button", {
568
+ /* @__PURE__ */ v("button", {
588
569
  type: "button",
589
- onClick: () => L((e) => !e),
570
+ onClick: () => R((e) => !e),
590
571
  className: "px-2 py-2 text-text-secondary hover:text-text-primary border-l border-border-default",
591
- title: I ? "Hide" : "Reveal",
592
- children: y(I ? _e : g, { size: 14 })
572
+ title: L ? "Hide" : "Reveal",
573
+ children: v(L ? ye : ve, { size: 14 })
593
574
  }),
594
- /* @__PURE__ */ y("button", {
575
+ /* @__PURE__ */ v("button", {
595
576
  type: "button",
596
577
  onClick: () => Be(e),
597
578
  className: "px-2 py-2 text-text-secondary hover:text-text-primary border-l border-border-default",
598
579
  title: "Copy to clipboard",
599
- children: Pe ? /* @__PURE__ */ y(h, {
580
+ children: Pe ? /* @__PURE__ */ v(h, {
600
581
  size: 14,
601
582
  className: "text-green-500"
602
- }) : /* @__PURE__ */ y(ge, { size: 14 })
583
+ }) : /* @__PURE__ */ v(_e, { size: 14 })
603
584
  })
604
585
  ]
605
- }), /* @__PURE__ */ b("button", {
586
+ }), /* @__PURE__ */ y("button", {
606
587
  type: "button",
607
- onClick: Q,
608
- disabled: R,
588
+ onClick: $,
589
+ disabled: z,
609
590
  className: "flex items-center gap-1.5 px-3 py-2 text-xs rounded-md border border-border-default bg-bg-default text-text-primary hover:bg-bg-subtle disabled:opacity-50",
610
591
  title: "Rotate signing secret",
611
- children: [/* @__PURE__ */ y(_, {
592
+ children: [/* @__PURE__ */ v(g, {
612
593
  size: 12,
613
- className: R ? "animate-spin" : ""
594
+ className: z ? "animate-spin" : ""
614
595
  }), "Rotate"]
615
596
  })]
616
- }) : /* @__PURE__ */ b("button", {
597
+ }) : /* @__PURE__ */ y("button", {
617
598
  type: "button",
618
- onClick: Q,
619
- disabled: R,
599
+ onClick: $,
600
+ disabled: z,
620
601
  className: "flex items-center gap-1.5 px-3 py-2 text-xs rounded-md border border-border-default bg-bg-default text-text-primary hover:bg-bg-subtle disabled:opacity-50",
621
- children: [/* @__PURE__ */ y(_, {
602
+ children: [/* @__PURE__ */ v(g, {
622
603
  size: 12,
623
- className: R ? "animate-spin" : ""
604
+ className: z ? "animate-spin" : ""
624
605
  }), "Generate Signing Secret"]
625
606
  }),
626
- B && /* @__PURE__ */ y("p", {
607
+ V && /* @__PURE__ */ v("p", {
627
608
  className: "text-xs text-amber-600 dark:text-amber-400",
628
609
  children: "New secret generated. Copy it now — the old secret is already invalidated."
629
610
  })
@@ -633,111 +614,111 @@ var S = () => {
633
614
  ]
634
615
  })
635
616
  }),
636
- /* @__PURE__ */ y(i, {
617
+ /* @__PURE__ */ v(i, {
637
618
  title: E("devportal.settings", "Settings"),
638
619
  description: E("devportal.settingsDescription", "Additional configuration options"),
639
- children: /* @__PURE__ */ y("div", {
620
+ children: /* @__PURE__ */ v("div", {
640
621
  className: "space-y-4",
641
- children: /* @__PURE__ */ y(ce, {
622
+ children: /* @__PURE__ */ v(ce, {
642
623
  label: E("devportal.requireWorkspaceAdminApproval", "Require workspace admin approval"),
643
624
  description: E("devportal.requireWorkspaceAdminApprovalDescription", "When enabled, workspace admins must approve installations before users can access this app"),
644
- checked: K.requiresApproval,
645
- onChange: (e) => Z("requiresApproval", e.target.checked)
625
+ checked: q.requiresApproval,
626
+ onChange: (e) => Q("requiresApproval", e.target.checked)
646
627
  })
647
628
  })
648
629
  }),
649
- Ge && /* @__PURE__ */ b("div", {
630
+ Ke && /* @__PURE__ */ y("div", {
650
631
  className: "rounded-lg border border-border-subtle bg-bg-sunken p-4 space-y-2",
651
- children: [/* @__PURE__ */ b("p", {
632
+ children: [/* @__PURE__ */ y("p", {
652
633
  className: "text-sm font-medium text-text-primary flex items-center gap-2",
653
- children: [/* @__PURE__ */ y(be, { size: 14 }), E("devportal.submissionChecklist", "Submission Checklist")]
634
+ children: [/* @__PURE__ */ v(Se, { size: 14 }), E("devportal.submissionChecklist", "Submission Checklist")]
654
635
  }), [
655
636
  {
656
637
  label: E("devportal.checkName", "Name set"),
657
- ok: !!K.name.trim()
638
+ ok: !!q.name.trim()
658
639
  },
659
640
  {
660
641
  label: E("devportal.checkShortDesc", "Short description set"),
661
- ok: !!K.shortDescription.trim()
642
+ ok: !!q.shortDescription.trim()
662
643
  },
663
644
  {
664
645
  label: E("devportal.checkFullDesc", "Full description added"),
665
- ok: !!K.description.trim()
646
+ ok: !!q.description.trim()
666
647
  },
667
648
  {
668
649
  label: E("devportal.checkCategory", "Category selected"),
669
- ok: !!K.category
650
+ ok: !!q.category
670
651
  },
671
652
  {
672
653
  label: E("devportal.checkVisibility", "Visibility set to Public or Unlisted"),
673
- ok: !!K.visibility && K.visibility !== "PRIVATE"
654
+ ok: !!q.visibility && q.visibility !== "PRIVATE"
674
655
  },
675
656
  {
676
657
  label: E("devportal.checkSaved", "All changes saved"),
677
- ok: !P
658
+ ok: !F
678
659
  },
679
- ...G?.appType === "NODE" || G?.appType === "WORKFLOW" ? [{
660
+ ...K?.appType === "NODE" || K?.appType === "WORKFLOW" ? [{
680
661
  label: E("devportal.checkVersion", "At least one version uploaded"),
681
- ok: (H?.application?.versions?.totalCount ?? 0) > 0
662
+ ok: (U?.application?.versions?.totalCount ?? 0) > 0
682
663
  }] : []
683
- ].map((e) => /* @__PURE__ */ b("div", {
664
+ ].map((e) => /* @__PURE__ */ y("div", {
684
665
  className: "flex items-center gap-2 text-sm",
685
- children: [e.ok ? /* @__PURE__ */ y("span", {
666
+ children: [e.ok ? /* @__PURE__ */ v("span", {
686
667
  className: "text-status-success-text",
687
668
  children: "✓"
688
- }) : /* @__PURE__ */ y("span", {
669
+ }) : /* @__PURE__ */ v("span", {
689
670
  className: "text-status-error-text",
690
671
  children: "✗"
691
- }), /* @__PURE__ */ y("span", {
672
+ }), /* @__PURE__ */ v("span", {
692
673
  className: e.ok ? "text-text-secondary line-through" : "text-text-primary",
693
674
  children: e.label
694
675
  })]
695
676
  }, e.label))]
696
677
  }),
697
- /* @__PURE__ */ b("div", {
678
+ /* @__PURE__ */ y("div", {
698
679
  className: "flex flex-col gap-4 border-t pt-6",
699
- children: [/* @__PURE__ */ y("div", {
680
+ children: [/* @__PURE__ */ v("div", {
700
681
  className: "flex items-center justify-end",
701
- children: /* @__PURE__ */ y("button", {
682
+ children: /* @__PURE__ */ v("button", {
702
683
  type: "submit",
703
- disabled: D || !P || !w,
684
+ disabled: D || !F || !w,
704
685
  "aria-disabled": !w,
705
686
  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 transition-colors disabled:opacity-50",
706
- children: D ? /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y("span", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }), E("devportal.saving", "Saving...")] }) : /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y(ye, { size: 16 }), E("devportal.saveChanges", "Save Changes")] })
687
+ children: D ? /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("span", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }), E("devportal.saving", "Saving...")] }) : /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(xe, { size: 16 }), E("devportal.saveChanges", "Save Changes")] })
707
688
  })
708
- }), /* @__PURE__ */ b("div", {
689
+ }), /* @__PURE__ */ y("div", {
709
690
  className: "rounded-lg border border-border-subtle bg-status-error-bg-subtle p-4",
710
691
  children: [
711
- /* @__PURE__ */ y("h3", {
692
+ /* @__PURE__ */ v("h3", {
712
693
  className: "text-sm font-medium text-status-error-text",
713
694
  children: E("devportal.dangerZone", "Danger Zone")
714
695
  }),
715
- /* @__PURE__ */ y("p", {
696
+ /* @__PURE__ */ v("p", {
716
697
  className: "mt-1 text-sm text-status-error-text",
717
698
  children: E("devportal.dangerZoneWarning", "These actions are irreversible. Please proceed with caution.")
718
699
  }),
719
- /* @__PURE__ */ b("div", {
700
+ /* @__PURE__ */ y("div", {
720
701
  className: "mt-4 flex gap-3",
721
702
  children: [
722
- Ke && /* @__PURE__ */ b("button", {
703
+ qe && /* @__PURE__ */ y("button", {
723
704
  type: "button",
724
705
  onClick: () => M(!0),
725
706
  className: "inline-flex items-center gap-2 rounded-md border border-accent-orange bg-bg-surface px-3 py-1.5 text-sm font-medium text-accent-orange hover:bg-accent-orange-subtle transition-colors",
726
- children: [/* @__PURE__ */ y(he, { size: 14 }), E("devportal.deprecateApp", "Deprecate App")]
707
+ children: [/* @__PURE__ */ v(ge, { size: 14 }), E("devportal.deprecateApp", "Deprecate App")]
727
708
  }),
728
- qe && /* @__PURE__ */ b("button", {
709
+ Je && /* @__PURE__ */ y("button", {
729
710
  type: "button",
730
- onClick: () => N(!0),
711
+ onClick: () => P(!0),
731
712
  className: "inline-flex items-center gap-2 rounded-md border border-accent-orange bg-bg-surface px-3 py-1.5 text-sm font-medium text-accent-orange hover:bg-accent-orange-subtle transition-colors",
732
- children: [/* @__PURE__ */ y(ve, { size: 14 }), E("devportal.deactivateApp", "Deactivate App")]
713
+ children: [/* @__PURE__ */ v(be, { size: 14 }), E("devportal.deactivateApp", "Deactivate App")]
733
714
  }),
734
- /* @__PURE__ */ b("button", {
715
+ /* @__PURE__ */ y("button", {
735
716
  type: "button",
736
717
  onClick: () => j(!0),
737
718
  disabled: !T,
738
719
  "aria-disabled": !T,
739
720
  className: "inline-flex items-center gap-2 rounded-md border border-status-error-bg bg-bg-surface px-3 py-1.5 text-sm font-medium text-status-error-text hover:bg-status-error-bg-subtle transition-colors disabled:opacity-50",
740
- children: [/* @__PURE__ */ y(xe, { size: 14 }), E("devportal.deleteApp", "Delete App")]
721
+ children: [/* @__PURE__ */ v(Ce, { size: 14 }), E("devportal.deleteApp", "Delete App")]
741
722
  })
742
723
  ]
743
724
  })
@@ -746,38 +727,38 @@ var S = () => {
746
727
  })
747
728
  ]
748
729
  }),
749
- /* @__PURE__ */ y(u, {
750
- open: Ae,
730
+ /* @__PURE__ */ v(u, {
731
+ open: je,
751
732
  onOpenChange: j,
752
733
  title: E("devportal.deleteApplication", "Delete Application"),
753
- description: E("devportal.deleteApplicationConfirm", `Are you sure you want to delete "${G.name}"? This action cannot be undone. All OAuth clients, API keys, webhooks, and analytics data will be permanently deleted.`),
734
+ description: E("devportal.deleteApplicationConfirm", `Are you sure you want to delete "${K.name}"? This action cannot be undone. All OAuth clients, API keys, webhooks, and analytics data will be permanently deleted.`),
754
735
  confirmLabel: E("devportal.deleteApplication", "Delete Application"),
755
736
  variant: "destructive",
756
- onConfirm: $
737
+ onConfirm: Ue
757
738
  }),
758
- /* @__PURE__ */ y(u, {
759
- open: je,
739
+ /* @__PURE__ */ v(u, {
740
+ open: Me,
760
741
  onOpenChange: M,
761
742
  title: E("devportal.deprecateApplication", "Deprecate Application"),
762
- description: E("devportal.deprecateApplicationConfirm", `Are you sure you want to deprecate "${G.name}"? Existing users will still be able to use the app, but it will no longer be visible in the marketplace and new installations will be disabled.`),
743
+ description: E("devportal.deprecateApplicationConfirm", `Are you sure you want to deprecate "${K.name}"? Existing users will still be able to use the app, but it will no longer be visible in the marketplace and new installations will be disabled.`),
763
744
  confirmLabel: E("devportal.deprecateApplication", "Deprecate Application"),
764
745
  variant: "warning",
765
- onConfirm: Ue
746
+ onConfirm: We
766
747
  }),
767
- /* @__PURE__ */ y(u, {
768
- open: Me,
769
- onOpenChange: N,
748
+ /* @__PURE__ */ v(u, {
749
+ open: N,
750
+ onOpenChange: P,
770
751
  title: E("devportal.deactivateApplication", "Deactivate Application"),
771
- description: E("devportal.deactivateApplicationConfirm", `Are you sure you want to deactivate "${G.name}"? This will revoke all active tokens and disable the app from the auth-svc layer. The app will no longer be able to authenticate or act on behalf of users.`),
752
+ description: E("devportal.deactivateApplicationConfirm", `Are you sure you want to deactivate "${K.name}"? This will revoke all active tokens and disable the app from the auth-svc layer. The app will no longer be able to authenticate or act on behalf of users.`),
772
753
  confirmLabel: E("devportal.deactivateApplication", "Deactivate Application"),
773
754
  variant: "destructive",
774
- onConfirm: We
755
+ onConfirm: Ge
775
756
  })
776
757
  ]
777
758
  })
778
759
  });
779
760
  };
780
761
  //#endregion
781
- export { S as EditApplicationPage };
762
+ export { x as EditApplicationPage };
782
763
 
783
764
  //# sourceMappingURL=EditApplicationPage.js.map