@burdenoff/microfe-devportal 2026.830.1 → 2026.830.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.
Files changed (104) hide show
  1. package/dist/devportal/AdminDevportalRoot.d.ts.map +1 -1
  2. package/dist/devportal/AdminDevportalRoot.js +16 -19
  3. package/dist/devportal/AdminDevportalRoot.js.map +1 -1
  4. package/dist/devportal/DevportalRoot.d.ts.map +1 -1
  5. package/dist/devportal/DevportalRoot.js +36 -39
  6. package/dist/devportal/DevportalRoot.js.map +1 -1
  7. package/dist/devportal/components/AppCard.js +41 -41
  8. package/dist/devportal/components/ConfirmDialog.d.ts.map +1 -1
  9. package/dist/devportal/components/ConfirmDialog.js +19 -22
  10. package/dist/devportal/components/ConfirmDialog.js.map +1 -1
  11. package/dist/devportal/components/DataTable.d.ts.map +1 -1
  12. package/dist/devportal/components/DataTable.js +31 -34
  13. package/dist/devportal/components/DataTable.js.map +1 -1
  14. package/dist/devportal/components/FeatureFlaggedRoute.js +8 -8
  15. package/dist/devportal/components/FormField.d.ts.map +1 -1
  16. package/dist/devportal/components/FormField.js +26 -32
  17. package/dist/devportal/components/FormField.js.map +1 -1
  18. package/dist/devportal/components/GrantDelegationModal.js +64 -64
  19. package/dist/devportal/components/GrantDelegationModal.js.map +1 -1
  20. package/dist/devportal/components/LoadingState.d.ts.map +1 -1
  21. package/dist/devportal/components/LoadingState.js +5 -8
  22. package/dist/devportal/components/LoadingState.js.map +1 -1
  23. package/dist/devportal/components/PageLayout.d.ts.map +1 -1
  24. package/dist/devportal/components/PageLayout.js +10 -13
  25. package/dist/devportal/components/PageLayout.js.map +1 -1
  26. package/dist/devportal/components/PermissionGuard.d.ts.map +1 -1
  27. package/dist/devportal/components/PermissionGuard.js +11 -14
  28. package/dist/devportal/components/PermissionGuard.js.map +1 -1
  29. package/dist/devportal/components/SecretDisplay.d.ts.map +1 -1
  30. package/dist/devportal/components/SecretDisplay.js +24 -30
  31. package/dist/devportal/components/SecretDisplay.js.map +1 -1
  32. package/dist/devportal/components/SectionNav.d.ts.map +1 -1
  33. package/dist/devportal/components/SectionNav.js +24 -27
  34. package/dist/devportal/components/SectionNav.js.map +1 -1
  35. package/dist/devportal/components/StatusBadge.d.ts.map +1 -1
  36. package/dist/devportal/components/StatusBadge.js +24 -33
  37. package/dist/devportal/components/StatusBadge.js.map +1 -1
  38. package/dist/devportal/index.d.ts +1 -0
  39. package/dist/devportal/index.d.ts.map +1 -1
  40. package/dist/devportal/index.js +1 -0
  41. package/dist/devportal/pages/AdminReviewPage.js +172 -172
  42. package/dist/devportal/pages/AnalyticsDashboardPage.js +43 -43
  43. package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
  44. package/dist/devportal/pages/ApiKeysPage.js +119 -119
  45. package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
  46. package/dist/devportal/pages/AppLogsPage.js +45 -45
  47. package/dist/devportal/pages/ApplicationDetailPage.js +607 -607
  48. package/dist/devportal/pages/ApplicationVersionsPage.js +13 -13
  49. package/dist/devportal/pages/ApplicationsPage.d.ts.map +1 -1
  50. package/dist/devportal/pages/ApplicationsPage.js +104 -101
  51. package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
  52. package/dist/devportal/pages/CreateApiKeyPage.js +45 -45
  53. package/dist/devportal/pages/CreateApplicationPage.js +38 -38
  54. package/dist/devportal/pages/CreateApplicationPage.js.map +1 -1
  55. package/dist/devportal/pages/CreateOAuthClientPage.js +52 -52
  56. package/dist/devportal/pages/CreateOrganizationPage.js +26 -26
  57. package/dist/devportal/pages/CreateWebhookPage.d.ts.map +1 -1
  58. package/dist/devportal/pages/CreateWebhookPage.js +48 -48
  59. package/dist/devportal/pages/CreateWebhookPage.js.map +1 -1
  60. package/dist/devportal/pages/DashboardPage.d.ts.map +1 -1
  61. package/dist/devportal/pages/DashboardPage.js +66 -72
  62. package/dist/devportal/pages/DashboardPage.js.map +1 -1
  63. package/dist/devportal/pages/DelegationsPage.js +174 -174
  64. package/dist/devportal/pages/DocumentationPage.js +93 -93
  65. package/dist/devportal/pages/EditApplicationPage.js +14 -14
  66. package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
  67. package/dist/devportal/pages/ListingPreviewPage.js +76 -76
  68. package/dist/devportal/pages/OAuthClientDetailPage.js +75 -75
  69. package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
  70. package/dist/devportal/pages/OAuthClientsPage.js +64 -64
  71. package/dist/devportal/pages/OrganizationDetailPage.js +189 -189
  72. package/dist/devportal/pages/OrganizationDetailPage.js.map +1 -1
  73. package/dist/devportal/pages/OrganizationMembersPage.js +10 -10
  74. package/dist/devportal/pages/OrganizationsPage.d.ts.map +1 -1
  75. package/dist/devportal/pages/OrganizationsPage.js +163 -154
  76. package/dist/devportal/pages/OrganizationsPage.js.map +1 -1
  77. package/dist/devportal/pages/PublishPage.js +104 -104
  78. package/dist/devportal/pages/PublishPage.js.map +1 -1
  79. package/dist/devportal/pages/PublisherProfilePage.js +55 -55
  80. package/dist/devportal/pages/ResourcesPage.js +60 -60
  81. package/dist/devportal/pages/RevenueDashboardPage.js +60 -60
  82. package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -1
  83. package/dist/devportal/pages/SellerDashboardPage.js +83 -83
  84. package/dist/devportal/pages/SellerItemsPage.js +163 -163
  85. package/dist/devportal/pages/SellerItemsPage.js.map +1 -1
  86. package/dist/devportal/pages/SellerOrdersPage.js +63 -63
  87. package/dist/devportal/pages/SettingsPage.js +21 -21
  88. package/dist/devportal/pages/SetupPage.js +183 -183
  89. package/dist/devportal/pages/SetupPage.js.map +1 -1
  90. package/dist/devportal/pages/StoreSubmissionPage.js +5 -5
  91. package/dist/devportal/pages/WebhookDetailPage.js +123 -123
  92. package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
  93. package/dist/devportal/pages/WebhooksPage.js +118 -118
  94. package/dist/devportal/pages/WebhooksPage.js.map +1 -1
  95. package/dist/devportal/utils/i18n.d.ts +9 -2
  96. package/dist/devportal/utils/i18n.d.ts.map +1 -1
  97. package/dist/devportal/utils/i18n.js +13 -10
  98. package/dist/devportal/utils/i18n.js.map +1 -1
  99. package/dist/index.js +2 -1
  100. package/dist/translations/en.d.ts +1251 -0
  101. package/dist/translations/en.d.ts.map +1 -0
  102. package/dist/translations/en.js +1235 -0
  103. package/dist/translations/en.js.map +1 -0
  104. package/package.json +1 -1
@@ -19,10 +19,10 @@ import { DEVPORTAL_PERMISSIONS as le } from "../constants/permissions.js";
19
19
  import { usePackageUpload as ue } from "../hooks/usePackageUpload.js";
20
20
  import { useCallback as A, useEffect as de, useMemo as j, useRef as M, useState as N } from "react";
21
21
  import { Markdown as fe } from "@burdenoff/fe-libs/shared/components";
22
- import { useI18n as P } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
23
- import { AlertCircle as F, AppWindow as pe, BarChart3 as me, Check as I, CheckCircle as he, ChevronRight as ge, CircleDollarSign as L, Clock as _e, Copy as ve, Edit as ye, ExternalLink as R, FlaskConical as be, Gift as xe, Info as Se, Key as Ce, Link as we, Loader2 as z, Lock as Te, MoreHorizontal as Ee, Package as De, Plus as B, Power as Oe, RefreshCw as ke, SendHorizontal as Ae, Shield as je, Store as Me, TrendingUp as Ne, Upload as V, Users as Pe, Wallet as Fe, Webhook as H, X as Ie, XCircle as Le } from "lucide-react";
22
+ import { AlertCircle as P, AppWindow as pe, BarChart3 as me, Check as F, CheckCircle as he, ChevronRight as ge, CircleDollarSign as I, Clock as _e, Copy as ve, Edit as ye, ExternalLink as L, FlaskConical as be, Gift as xe, Info as Se, Key as Ce, Link as we, Loader2 as R, Lock as Te, MoreHorizontal as Ee, Package as De, Plus as z, Power as Oe, RefreshCw as ke, SendHorizontal as Ae, Shield as je, Store as Me, TrendingUp as Ne, Upload as B, Users as Pe, Wallet as Fe, Webhook as V, X as Ie, XCircle as Le } from "lucide-react";
24
23
  import { useParams as Re } from "react-router";
25
- import { Fragment as U, jsx as W, jsxs as G } from "react/jsx-runtime";
24
+ import { Fragment as H, jsx as U, jsxs as W } from "react/jsx-runtime";
25
+ import { useI18n as G } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
26
26
  import { CTAOverflowMenu as ze, EmphasisPanel as Be, GlassCard as Ve } from "@burdenoff/fe-libs/ui";
27
27
  //#region src/devportal/pages/ApplicationDetailPage.tsx
28
28
  function He(e) {
@@ -165,7 +165,7 @@ var Ke = [
165
165
  {
166
166
  id: "pricing",
167
167
  label: "Pricing",
168
- icon: L
168
+ icon: I
169
169
  },
170
170
  {
171
171
  id: "permissions",
@@ -175,7 +175,7 @@ var Ke = [
175
175
  {
176
176
  id: "webhooks",
177
177
  label: "Webhooks",
178
- icon: H
178
+ icon: V
179
179
  },
180
180
  {
181
181
  id: "delegations",
@@ -185,7 +185,7 @@ var Ke = [
185
185
  {
186
186
  id: "playground",
187
187
  label: "API Playground",
188
- icon: R
188
+ icon: L
189
189
  },
190
190
  {
191
191
  id: "oauth",
@@ -201,32 +201,32 @@ var Ke = [
201
201
  ACTIVE: "bg-status-success-bg-subtle text-status-success-text",
202
202
  REVOKED: "bg-status-error-bg-subtle text-status-error-text",
203
203
  EXPIRED: "bg-bg-sunken text-text-secondary"
204
- }, Je = ({ message: e = "Loading..." }) => /* @__PURE__ */ G("div", {
204
+ }, Je = ({ message: e = "Loading..." }) => /* @__PURE__ */ W("div", {
205
205
  className: "flex items-center justify-center gap-3 py-12",
206
- children: [/* @__PURE__ */ W(z, {
206
+ children: [/* @__PURE__ */ U(R, {
207
207
  size: 20,
208
208
  className: "animate-spin text-text-secondary"
209
- }), /* @__PURE__ */ W("p", {
209
+ }), /* @__PURE__ */ U("p", {
210
210
  className: "text-sm text-text-secondary",
211
211
  children: e
212
212
  })]
213
- }), Ye = ({ message: e }) => /* @__PURE__ */ G("div", {
213
+ }), Ye = ({ message: e }) => /* @__PURE__ */ W("div", {
214
214
  className: "flex flex-col items-center justify-center gap-2 py-12 text-center",
215
- children: [/* @__PURE__ */ W(F, {
215
+ children: [/* @__PURE__ */ U(P, {
216
216
  size: 32,
217
217
  className: "text-status-error-text"
218
- }), /* @__PURE__ */ W("p", {
218
+ }), /* @__PURE__ */ U("p", {
219
219
  className: "text-sm text-text-secondary",
220
220
  children: e
221
221
  })]
222
222
  }), K = () => {
223
- let { navigate: i, basePath: o, workspaceId: c } = e(), { t: u } = P(), m = (e, t) => {
223
+ let { navigate: i, basePath: o, workspaceId: c } = e(), { t: u } = G(), m = (e, t) => {
224
224
  let n = u(e);
225
225
  return n === e ? t : n;
226
- }, { allowed: g } = ce(le.APP_UPDATE), { allowed: y } = ce(le.APP_DELETE), { appId: b } = Re(), [S, D] = N("overview"), [te, ne] = N(!1), [k, ie] = N(!1), [se, ue] = N(null), [de, j] = N(!1), { data: M, loading: fe, error: me, refetch: L } = s({
226
+ }, { allowed: g } = ce(le.APP_UPDATE), { allowed: y } = ce(le.APP_DELETE), { appId: b } = Re(), [S, D] = N("overview"), [te, ne] = N(!1), [k, ie] = N(!1), [se, ue] = N(null), [de, j] = N(!1), { data: M, loading: fe, error: me, refetch: I } = s({
227
227
  variables: { id: b },
228
228
  skip: !b
229
- }), [ve, { loading: R }] = h(), [xe, { loading: Se }] = a(), [Ce, { loading: we }] = _(), [Te] = p(), [Ee, { loading: De }] = f(), [B, { loading: je }] = v(), { data: Ne, refetch: V } = d({
229
+ }), [ve, { loading: L }] = h(), [xe, { loading: Se }] = a(), [Ce, { loading: we }] = _(), [Te] = p(), [Ee, { loading: De }] = f(), [z, { loading: je }] = v(), { data: Ne, refetch: B } = d({
230
230
  variables: {
231
231
  applicationId: b,
232
232
  workspaceId: c ?? void 0
@@ -237,7 +237,7 @@ var Ke = [
237
237
  variables: { id: M?.application?.developerOrganizationId ?? "" },
238
238
  skip: !M?.application?.developerOrganizationId,
239
239
  fetchPolicy: "cache-first"
240
- }), H = A((e) => {
240
+ }), V = A((e) => {
241
241
  i?.(`${o}${e}`);
242
242
  }, [i, o]), Ie = A(async () => {
243
243
  let e = M?.application?.appId;
@@ -247,12 +247,12 @@ var Ke = [
247
247
  } catch {}
248
248
  }, [M?.application?.appId, ve]), Be = A(async () => {
249
249
  if (b) try {
250
- await xe({ variables: { id: b } }), ie(!1), H("/apps");
250
+ await xe({ variables: { id: b } }), ie(!1), V("/apps");
251
251
  } catch {}
252
252
  }, [
253
253
  b,
254
254
  xe,
255
- H
255
+ V
256
256
  ]), Ve = A(async (e) => {
257
257
  if (!(!b || !c)) try {
258
258
  await Ee({ variables: { input: {
@@ -261,7 +261,7 @@ var Ke = [
261
261
  workspaceId: c,
262
262
  autoUpdate: !1,
263
263
  ...e ? { version: e } : {}
264
- } } }), V(), O("success");
264
+ } } }), B(), O("success");
265
265
  } catch (e) {
266
266
  console.error("[DevPortal] Test in Workspace failed:", e), O("error");
267
267
  }
@@ -269,14 +269,14 @@ var Ke = [
269
269
  b,
270
270
  c,
271
271
  Ee,
272
- V
272
+ B
273
273
  ]), [Ue, We] = N(!1), [Ge, qe] = N(""), Je = A(async (e) => {
274
274
  try {
275
- await B({ variables: { id: e } }), V(), O("success");
275
+ await z({ variables: { id: e } }), B(), O("success");
276
276
  } catch {
277
277
  O("error");
278
278
  }
279
- }, [B, V]), Ye = A(async () => {
279
+ }, [z, B]), Ye = A(async () => {
280
280
  if (b) try {
281
281
  let e = (M?.application?.versions?.edges ?? []).map((e) => e.node).filter((e) => e.status === "draft");
282
282
  for (let t of e) await Te({ variables: { id: t.id } });
@@ -284,32 +284,32 @@ var Ke = [
284
284
  } catch (e) {
285
285
  console.error("[DevPortal] Submit failed:", e), O("error");
286
286
  } finally {
287
- L();
287
+ I();
288
288
  }
289
289
  }, [
290
290
  b,
291
291
  M?.application?.versions?.edges,
292
292
  Te,
293
293
  Ce,
294
- L
294
+ I
295
295
  ]);
296
- if (fe && !M) return /* @__PURE__ */ W(n, { message: m("devportal.loadingApplication", "Loading application...") });
297
- if (me) return /* @__PURE__ */ W(x, {
296
+ if (fe && !M) return /* @__PURE__ */ U(n, { message: m("devportal.loadingApplication", "Loading application...") });
297
+ if (me) return /* @__PURE__ */ U(x, {
298
298
  title: m("devportal.error", "Error"),
299
299
  backLink: `${o}/apps`,
300
300
  backLabel: m("devportal.backToApplications", "Back to Applications"),
301
- children: /* @__PURE__ */ G("div", {
301
+ children: /* @__PURE__ */ W("div", {
302
302
  className: "flex flex-col items-center justify-center py-12 text-center",
303
303
  children: [
304
- /* @__PURE__ */ W(F, {
304
+ /* @__PURE__ */ U(P, {
305
305
  size: 48,
306
306
  className: "text-status-error-text mb-4"
307
307
  }),
308
- /* @__PURE__ */ W("h3", {
308
+ /* @__PURE__ */ U("h3", {
309
309
  className: "text-lg font-semibold mb-2",
310
310
  children: m("devportal.failedToLoadApplication", "Failed to load application")
311
311
  }),
312
- /* @__PURE__ */ W("p", {
312
+ /* @__PURE__ */ U("p", {
313
313
  className: "text-sm text-text-secondary",
314
314
  children: me.message
315
315
  })
@@ -317,13 +317,13 @@ var Ke = [
317
317
  })
318
318
  });
319
319
  let K = He(M?.application);
320
- if (!K) return /* @__PURE__ */ W(x, {
320
+ if (!K) return /* @__PURE__ */ U(x, {
321
321
  title: m("devportal.notFound", "Not Found"),
322
322
  backLink: `${o}/apps`,
323
323
  backLabel: m("devportal.backToApplications", "Back to Applications"),
324
- children: /* @__PURE__ */ W(r, {
324
+ children: /* @__PURE__ */ U(r, {
325
325
  illustration: "empty-generic",
326
- icon: /* @__PURE__ */ W(pe, { size: 48 }),
326
+ icon: /* @__PURE__ */ U(pe, { size: 48 }),
327
327
  title: m("devportal.applicationNotFound", "Application not found"),
328
328
  description: m("devportal.applicationNotFoundDescription", "The application you're looking for doesn't exist or you don't have access to it.")
329
329
  })
@@ -337,18 +337,18 @@ var Ke = [
337
337
  ].includes(K.appType), J = K.appType === "API_INTEGRATION", Qe = M?.application?.versions?.totalCount ?? 0, at = K.appType === "NODE", ot = M?.application?.versions?.edges ?? [], st = ot.find((e) => e.node.isLatest)?.node ?? ot[0]?.node ?? null, ct = (st?.metadata ?? {}).sandboxBuildStatus, ut = at && ct !== "READY", dt = ut ? ct === "FAILED" || ct === "DISPATCH_FAILED" ? m("devportal.testInWorkspaceBuildFailed", "Test in Workspace (sandbox build failed)") : m("devportal.testInWorkspaceBuilding", "Test in Workspace (building sandbox image…)") : m("devportal.testInWorkspace", "Test in Workspace"), Y = K.pricingType === "PAID", ft = Fe?.developerOrganization, pt = ft?.platformFeeRate ?? .3, X = !!ft?.billingAccountId, mt = K.pricingDetails ?? {}, Z = K.pricingType === "FREE" || K.pricingType === "PAID" && typeof mt.price == "number" && mt.price > 0, Q = !!K.description?.trim() && !!K.category && !!K.iconUrl && (K.visibility === "PUBLIC" || K.visibility === "UNLISTED") && (!q && !J || Qe > 0) && (!Y || X) && Z, $ = Q && K.status !== "PUBLISHED" && K.status !== "SUBMITTED" && K.status !== "INACTIVE" && K.status !== "REVOKED", gt = [
338
338
  ...q ? [] : [{
339
339
  label: m("devportal.rotateSecret", "Rotate Secret"),
340
- icon: /* @__PURE__ */ W(ke, { size: 16 }),
340
+ icon: /* @__PURE__ */ U(ke, { size: 16 }),
341
341
  disabled: !K.appId,
342
342
  onSelect: () => ne(!0)
343
343
  }],
344
344
  ...!q || at ? Pe ? [{
345
345
  label: m("devportal.uninstallFromWorkspace", "Uninstall from Workspace"),
346
- icon: /* @__PURE__ */ W(Le, { size: 16 }),
346
+ icon: /* @__PURE__ */ U(Le, { size: 16 }),
347
347
  disabled: je || !c,
348
348
  onSelect: () => void Je(Pe.id)
349
349
  }] : [{
350
350
  label: dt,
351
- icon: /* @__PURE__ */ W(be, { size: 16 }),
351
+ icon: /* @__PURE__ */ U(be, { size: 16 }),
352
352
  disabled: De || !c || ut,
353
353
  onSelect: () => {
354
354
  if (ot.length <= 1) {
@@ -360,24 +360,24 @@ var Ke = [
360
360
  }] : [],
361
361
  {
362
362
  label: m("devportal.deactivate", "Deactivate"),
363
- icon: /* @__PURE__ */ W(Oe, { size: 16 }),
363
+ icon: /* @__PURE__ */ U(Oe, { size: 16 }),
364
364
  intent: "destructive",
365
365
  disabled: !y,
366
366
  onSelect: () => ie(!0)
367
367
  }
368
368
  ];
369
- return /* @__PURE__ */ G(x, {
369
+ return /* @__PURE__ */ W(x, {
370
370
  title: K.name,
371
371
  description: K.shortDescription,
372
372
  purpose: m("devportal.appDetailPurpose", "Everything about this application in one place — its credentials, the permissions and webhooks it uses, its analytics, and its store listing. Use the tabs to configure each area, then edit or publish when it is ready."),
373
373
  backLink: `${o}/apps`,
374
374
  backLabel: m("devportal.backToApplications", "Back to Applications"),
375
- actions: /* @__PURE__ */ G("div", {
375
+ actions: /* @__PURE__ */ W("div", {
376
376
  className: "flex items-center gap-2",
377
- children: [K.status === "SUBMITTED" ? /* @__PURE__ */ G("div", {
377
+ children: [K.status === "SUBMITTED" ? /* @__PURE__ */ W("div", {
378
378
  className: "flex items-center gap-1.5 rounded-full border border-status-warning-bg bg-status-warning-bg-subtle px-3 py-1.5 text-xs font-medium text-status-warning-text",
379
- children: [/* @__PURE__ */ W(_e, { size: 13 }), m("devportal.underReview", "Under Review")]
380
- }) : K.status !== "PUBLISHED" && K.status !== "INACTIVE" && K.status !== "REVOKED" ? /* @__PURE__ */ W("button", {
379
+ children: [/* @__PURE__ */ U(_e, { size: 13 }), m("devportal.underReview", "Under Review")]
380
+ }) : K.status !== "PUBLISHED" && K.status !== "INACTIVE" && K.status !== "REVOKED" ? /* @__PURE__ */ U("button", {
381
381
  type: "button",
382
382
  onClick: () => void Ye(),
383
383
  disabled: !$ || we,
@@ -391,62 +391,62 @@ var Ke = [
391
391
  Y && !X && "Link a billing account to receive payments"
392
392
  ].filter(Boolean).join(" · "),
393
393
  className: t("inline-flex items-center gap-2 rounded-md px-5 py-2 text-sm font-medium whitespace-nowrap transition-colors", $ && !we ? "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg/90 cursor-pointer" : "cursor-not-allowed bg-bg-muted text-text-tertiary ring-1 ring-border-subtle"),
394
- children: we ? /* @__PURE__ */ G(U, { children: [/* @__PURE__ */ W(z, {
394
+ children: we ? /* @__PURE__ */ W(H, { children: [/* @__PURE__ */ U(R, {
395
395
  size: 15,
396
396
  className: "animate-spin"
397
- }), m("devportal.submitting", "Submitting…")] }) : /* @__PURE__ */ G(U, { children: [/* @__PURE__ */ W(Ae, { size: 15 }), m("devportal.submitForReview", "Submit for Review")] })
398
- }) : null, /* @__PURE__ */ W(ze, {
397
+ }), m("devportal.submitting", "Submitting…")] }) : /* @__PURE__ */ W(H, { children: [/* @__PURE__ */ U(Ae, { size: 15 }), m("devportal.submitForReview", "Submit for Review")] })
398
+ }) : null, /* @__PURE__ */ U(ze, {
399
399
  primary: {
400
400
  label: m("devportal.editApp", "Edit App"),
401
- icon: /* @__PURE__ */ W(ye, { size: 16 }),
401
+ icon: /* @__PURE__ */ U(ye, { size: 16 }),
402
402
  disabled: !g,
403
- onSelect: () => H(`/apps/${K.id}/edit`)
403
+ onSelect: () => V(`/apps/${K.id}/edit`)
404
404
  },
405
405
  actions: gt
406
406
  })]
407
407
  }),
408
408
  children: [
409
- se && /* @__PURE__ */ W(ee, {
409
+ se && /* @__PURE__ */ U(ee, {
410
410
  title: m("devportal.newAppSecretGenerated", "New App Secret Generated"),
411
411
  secret: se,
412
412
  description: m("devportal.appSecretRotatedDescription", "Your app secret has been rotated. The old secret is no longer valid."),
413
413
  onDismiss: () => ue(null)
414
414
  }),
415
- /* @__PURE__ */ G("div", {
415
+ /* @__PURE__ */ W("div", {
416
416
  className: "flex flex-wrap items-center gap-2",
417
417
  children: [
418
- /* @__PURE__ */ W(T, {
418
+ /* @__PURE__ */ U(T, {
419
419
  status: K.status,
420
420
  type: "app"
421
421
  }),
422
- /* @__PURE__ */ W("span", {
422
+ /* @__PURE__ */ U("span", {
423
423
  title: K.visibility === "PUBLIC" ? "Public — discoverable in the marketplace. Requires review approval before going live." : K.visibility === "UNLISTED" ? "Unlisted — not in the store, but accessible via a direct share link. You can still submit for marketplace review." : K.visibility === "INTERNAL" ? "Internal — visible to all members of your developer organization, but not to anyone outside." : "Private — only you (the creator) can see this. Other org members cannot access it.",
424
- children: /* @__PURE__ */ W(T, {
424
+ children: /* @__PURE__ */ U(T, {
425
425
  status: K.visibility,
426
426
  type: "app"
427
427
  })
428
428
  }),
429
- K.isVerified && /* @__PURE__ */ W(E, { verified: !0 }),
430
- K.isFeatured && /* @__PURE__ */ W(w, {}),
431
- /* @__PURE__ */ W("span", {
429
+ K.isVerified && /* @__PURE__ */ U(E, { verified: !0 }),
430
+ K.isFeatured && /* @__PURE__ */ U(w, {}),
431
+ /* @__PURE__ */ U("span", {
432
432
  className: "text-sm text-text-secondary",
433
433
  children: C[K.appType] || K.appType
434
434
  })
435
435
  ]
436
436
  }),
437
- K.status === "SUBMITTED" && /* @__PURE__ */ G("div", {
437
+ K.status === "SUBMITTED" && /* @__PURE__ */ W("div", {
438
438
  className: "flex items-start gap-3 rounded-lg border border-border-subtle bg-status-warning-bg-subtle p-4",
439
- children: [/* @__PURE__ */ W(_e, {
439
+ children: [/* @__PURE__ */ U(_e, {
440
440
  size: 18,
441
441
  className: "text-status-warning-text mt-0.5 flex-shrink-0"
442
- }), /* @__PURE__ */ G("div", {
442
+ }), /* @__PURE__ */ W("div", {
443
443
  className: "text-sm",
444
- children: [/* @__PURE__ */ W("p", {
444
+ children: [/* @__PURE__ */ U("p", {
445
445
  className: "font-medium text-status-warning-text",
446
446
  children: m("devportal.underReview", "Under Review")
447
- }), /* @__PURE__ */ G("p", {
447
+ }), /* @__PURE__ */ W("p", {
448
448
  className: "mt-0.5 text-text-secondary",
449
- children: [m("devportal.underReviewDesc", "Your submission is being reviewed by our team. You'll be notified of the outcome."), K.submittedAt && /* @__PURE__ */ G("span", {
449
+ children: [m("devportal.underReviewDesc", "Your submission is being reviewed by our team. You'll be notified of the outcome."), K.submittedAt && /* @__PURE__ */ W("span", {
450
450
  className: "ml-1",
451
451
  children: [
452
452
  "Submitted ",
@@ -457,64 +457,64 @@ var Ke = [
457
457
  })]
458
458
  })]
459
459
  }),
460
- K.status === "REJECTED" && /* @__PURE__ */ G("div", {
460
+ K.status === "REJECTED" && /* @__PURE__ */ W("div", {
461
461
  className: "flex items-start gap-3 rounded-lg border border-status-error-bg bg-status-error-bg-subtle p-4",
462
- children: [/* @__PURE__ */ W(Le, {
462
+ children: [/* @__PURE__ */ U(Le, {
463
463
  size: 18,
464
464
  className: "text-status-error-text mt-0.5 flex-shrink-0"
465
- }), /* @__PURE__ */ G("div", {
465
+ }), /* @__PURE__ */ W("div", {
466
466
  className: "text-sm",
467
467
  children: [
468
- /* @__PURE__ */ W("p", {
468
+ /* @__PURE__ */ U("p", {
469
469
  className: "font-medium text-status-error-text",
470
470
  children: m("devportal.reviewRejected", "Review Rejected")
471
471
  }),
472
- /* @__PURE__ */ W("p", {
472
+ /* @__PURE__ */ U("p", {
473
473
  className: "mt-0.5 text-text-secondary",
474
474
  children: K.reviewNotes || m("devportal.reviewRejectedDesc", "Your submission was not approved. Please review the feedback, update your app, and re-submit.")
475
475
  }),
476
- /* @__PURE__ */ W("button", {
476
+ /* @__PURE__ */ U("button", {
477
477
  type: "button",
478
- onClick: () => H(`/apps/${K.id}/edit`),
478
+ onClick: () => V(`/apps/${K.id}/edit`),
479
479
  className: "mt-2 inline-flex items-center gap-1 text-xs font-medium text-primary underline",
480
480
  children: m("devportal.editAndResubmit", "Edit app and re-submit →")
481
481
  })
482
482
  ]
483
483
  })]
484
484
  }),
485
- K.status === "PUBLISHED" && /* @__PURE__ */ G("div", {
485
+ K.status === "PUBLISHED" && /* @__PURE__ */ W("div", {
486
486
  className: "flex items-start gap-3 rounded-lg border border-status-success-bg bg-status-success-bg-subtle p-4",
487
- children: [/* @__PURE__ */ W(he, {
487
+ children: [/* @__PURE__ */ U(he, {
488
488
  size: 18,
489
489
  className: "text-status-success-text mt-0.5 flex-shrink-0"
490
- }), /* @__PURE__ */ G("div", {
490
+ }), /* @__PURE__ */ W("div", {
491
491
  className: "text-sm",
492
- children: [/* @__PURE__ */ W("p", {
492
+ children: [/* @__PURE__ */ U("p", {
493
493
  className: "font-medium text-status-success-text",
494
494
  children: m("devportal.liveInStore", "Live in the Store")
495
- }), /* @__PURE__ */ W("p", {
495
+ }), /* @__PURE__ */ U("p", {
496
496
  className: "mt-0.5 text-text-secondary",
497
497
  children: m("devportal.liveInStoreDesc", "Your app is published and visible to users in the marketplace.")
498
498
  })]
499
499
  })]
500
500
  }),
501
- K.status === "UNLISTED" && /* @__PURE__ */ G("div", {
501
+ K.status === "UNLISTED" && /* @__PURE__ */ W("div", {
502
502
  className: "flex items-start gap-3 rounded-lg border border-status-warning-bg bg-status-warning-bg-subtle p-4",
503
- children: [/* @__PURE__ */ W(F, {
503
+ children: [/* @__PURE__ */ U(P, {
504
504
  size: 18,
505
505
  className: "text-status-warning-text mt-0.5 flex-shrink-0"
506
- }), /* @__PURE__ */ G("div", {
506
+ }), /* @__PURE__ */ W("div", {
507
507
  className: "text-sm",
508
508
  children: [
509
- /* @__PURE__ */ W("p", {
509
+ /* @__PURE__ */ U("p", {
510
510
  className: "font-medium text-status-warning-text",
511
511
  children: m("devportal.delistedFromStore", "Delisted from the Store")
512
512
  }),
513
- /* @__PURE__ */ W("p", {
513
+ /* @__PURE__ */ U("p", {
514
514
  className: "mt-0.5 text-text-secondary",
515
515
  children: m("devportal.delistedFromStoreDesc", "Your app has been removed from the marketplace and is no longer visible to new users. Existing installs continue to work.")
516
516
  }),
517
- K.reviewNotes && /* @__PURE__ */ G("p", {
517
+ K.reviewNotes && /* @__PURE__ */ W("p", {
518
518
  className: "mt-2 rounded-md bg-status-warning-bg px-3 py-2 font-mono text-xs text-status-warning-text",
519
519
  children: [
520
520
  m("devportal.delistReason", "Reason"),
@@ -581,22 +581,22 @@ var Ke = [
581
581
  onClick: void 0
582
582
  }
583
583
  ], a = i.filter((e) => e.done).length;
584
- return /* @__PURE__ */ G("div", {
584
+ return /* @__PURE__ */ W("div", {
585
585
  className: "rounded-xl border border-border-subtle bg-bg-surface shadow-sm",
586
- children: [/* @__PURE__ */ W("div", {
586
+ children: [/* @__PURE__ */ U("div", {
587
587
  className: "flex items-center justify-between border-b border-border-subtle px-5 py-4",
588
- children: /* @__PURE__ */ G("div", {
588
+ children: /* @__PURE__ */ W("div", {
589
589
  className: "flex items-center gap-3",
590
- children: [/* @__PURE__ */ W("div", {
590
+ children: [/* @__PURE__ */ U("div", {
591
591
  className: "flex h-8 w-8 items-center justify-center rounded-full bg-action-primary-bg/10",
592
- children: /* @__PURE__ */ W(Me, {
592
+ children: /* @__PURE__ */ U(Me, {
593
593
  size: 16,
594
594
  className: "text-primary"
595
595
  })
596
- }), /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("p", {
596
+ }), /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("p", {
597
597
  className: "text-sm font-semibold text-text-primary",
598
598
  children: m("devportal.completeSetup", "Complete your app setup")
599
- }), /* @__PURE__ */ G("p", {
599
+ }), /* @__PURE__ */ W("p", {
600
600
  className: "text-xs text-text-secondary",
601
601
  children: [
602
602
  a,
@@ -608,29 +608,29 @@ var Ke = [
608
608
  ]
609
609
  })] })]
610
610
  })
611
- }), /* @__PURE__ */ W("div", {
611
+ }), /* @__PURE__ */ U("div", {
612
612
  className: "divide-y divide-border-subtle",
613
- children: i.map((e, n) => /* @__PURE__ */ G("button", {
613
+ children: i.map((e, n) => /* @__PURE__ */ W("button", {
614
614
  type: "button",
615
615
  onClick: e.onClick,
616
616
  disabled: !e.onClick,
617
617
  className: t("w-full flex items-center gap-4 px-5 py-4 text-left transition-colors", e.onClick ? "hover:bg-bg-sunken/40 cursor-pointer" : "cursor-default opacity-60"),
618
618
  children: [
619
- /* @__PURE__ */ W("div", {
619
+ /* @__PURE__ */ U("div", {
620
620
  className: t("flex h-7 w-7 flex-shrink-0 items-center justify-center rounded-full text-xs font-bold", e.done ? "bg-status-success-bg text-status-success-text" : "border-2 border-border-subtle bg-bg-sunken text-text-secondary"),
621
- children: e.done ? /* @__PURE__ */ W(I, { size: 13 }) : n + 1
621
+ children: e.done ? /* @__PURE__ */ U(F, { size: 13 }) : n + 1
622
622
  }),
623
- /* @__PURE__ */ G("div", {
623
+ /* @__PURE__ */ W("div", {
624
624
  className: "flex-1 min-w-0",
625
- children: [/* @__PURE__ */ W("p", {
625
+ children: [/* @__PURE__ */ U("p", {
626
626
  className: t("text-sm font-medium", e.done ? "text-text-secondary line-through" : "text-text-primary"),
627
627
  children: e.label
628
- }), e.hint && !e.done && /* @__PURE__ */ W("p", {
628
+ }), e.hint && !e.done && /* @__PURE__ */ U("p", {
629
629
  className: "mt-0.5 text-xs text-text-secondary truncate",
630
630
  children: e.hint
631
631
  })]
632
632
  }),
633
- e.onClick && !e.done && /* @__PURE__ */ W(ge, {
633
+ e.onClick && !e.done && /* @__PURE__ */ U(ge, {
634
634
  size: 16,
635
635
  className: "flex-shrink-0 text-text-secondary"
636
636
  })
@@ -639,89 +639,89 @@ var Ke = [
639
639
  })]
640
640
  });
641
641
  })(),
642
- /* @__PURE__ */ W("div", {
642
+ /* @__PURE__ */ U("div", {
643
643
  className: "border-b",
644
- children: /* @__PURE__ */ W("nav", {
644
+ children: /* @__PURE__ */ U("nav", {
645
645
  className: "-mb-px flex gap-4 overflow-x-auto",
646
646
  role: "tablist",
647
647
  "aria-label": m("devportal.applicationSections", "Application sections"),
648
648
  children: Ke.filter((e) => !(q && (e.id === "permissions" || e.id === "webhooks" || e.id === "delegations" || e.id === "playground" || e.id === "oauth" || e.id === "api-keys") || !q && !J && e.id === "versions" || !J && (e.id === "oauth" || e.id === "api-keys"))).map((e) => {
649
649
  let n = e.icon;
650
- return /* @__PURE__ */ G("button", {
650
+ return /* @__PURE__ */ W("button", {
651
651
  id: `application-tab-${e.id}`,
652
652
  role: "tab",
653
653
  "aria-selected": S === e.id,
654
654
  "aria-controls": `application-panel-${e.id}`,
655
655
  onClick: () => D(e.id),
656
656
  className: t("flex items-center gap-2 border-b-2 px-1 py-3 text-sm font-medium transition-colors", S === e.id ? "border-primary text-primary" : "border-transparent text-text-secondary hover:text-text-primary hover:border-muted-foreground"),
657
- children: [/* @__PURE__ */ W(n, { size: 16 }), e.label]
657
+ children: [/* @__PURE__ */ U(n, { size: 16 }), e.label]
658
658
  }, e.id);
659
659
  })
660
660
  })
661
661
  }),
662
- /* @__PURE__ */ G("div", {
662
+ /* @__PURE__ */ W("div", {
663
663
  className: "mt-6",
664
664
  id: `application-panel-${S}`,
665
665
  role: "tabpanel",
666
666
  "aria-labelledby": `application-tab-${S}`,
667
667
  tabIndex: 0,
668
668
  children: [
669
- S === "overview" && /* @__PURE__ */ W(it, {
669
+ S === "overview" && /* @__PURE__ */ U(it, {
670
670
  app: K,
671
671
  appId: b,
672
- refetch: () => void L()
672
+ refetch: () => void I()
673
673
  }),
674
- S === "permissions" && /* @__PURE__ */ W(xt, {
674
+ S === "permissions" && /* @__PURE__ */ U(xt, {
675
675
  app: K,
676
676
  versionScopes: M?.application?.versions?.edges?.[0]?.node?.requiredScopes ?? [],
677
677
  locked: K.status === "PUBLISHED" || K.status === "APPROVED" || K.status === "ACTIVE",
678
678
  onNavigateToVersions: () => D("versions")
679
679
  }),
680
- S === "webhooks" && /* @__PURE__ */ W(tt, {
680
+ S === "webhooks" && /* @__PURE__ */ U(tt, {
681
681
  appId: K.id,
682
- onNavigate: H
682
+ onNavigate: V
683
683
  }),
684
- S === "delegations" && /* @__PURE__ */ W(nt, {
684
+ S === "delegations" && /* @__PURE__ */ U(nt, {
685
685
  authAppId: K.appId || void 0,
686
686
  appName: K.name,
687
687
  onGrantDelegation: () => j(!0),
688
- onNavigate: H
688
+ onNavigate: V
689
689
  }),
690
- S === "analytics" && /* @__PURE__ */ W(rt, { appId: K.id }),
691
- S === "playground" && /* @__PURE__ */ W(lt, { app: K }),
692
- S === "oauth" && /* @__PURE__ */ W(Xe, {
690
+ S === "analytics" && /* @__PURE__ */ U(rt, { appId: K.id }),
691
+ S === "playground" && /* @__PURE__ */ U(lt, { app: K }),
692
+ S === "oauth" && /* @__PURE__ */ U(Xe, {
693
693
  appId: K.id,
694
- onNavigate: H
694
+ onNavigate: V
695
695
  }),
696
- S === "api-keys" && /* @__PURE__ */ W(Ze, {
696
+ S === "api-keys" && /* @__PURE__ */ U(Ze, {
697
697
  appId: K.id,
698
- onNavigate: H
698
+ onNavigate: V
699
699
  }),
700
- S === "store-listing" && /* @__PURE__ */ W(ht, {
700
+ S === "store-listing" && /* @__PURE__ */ U(ht, {
701
701
  app: K,
702
702
  versionCount: M?.application?.versions?.totalCount ?? 0,
703
703
  isPackageApp: q,
704
704
  pricingDone: Z,
705
705
  onNavigateToVersions: q || J ? () => D("versions") : void 0,
706
706
  onNavigateToPricing: () => D("pricing"),
707
- onNavigateToSubmission: () => H(`/apps/${K.id}/store-submission`)
707
+ onNavigateToSubmission: () => V(`/apps/${K.id}/store-submission`)
708
708
  }),
709
- S === "pricing" && /* @__PURE__ */ W($e, {
709
+ S === "pricing" && /* @__PURE__ */ U($e, {
710
710
  app: K,
711
711
  platformFeeRate: pt,
712
712
  billingAccountLinked: X,
713
- onNavigateToRevenue: () => H("/revenue"),
713
+ onNavigateToRevenue: () => V("/revenue"),
714
714
  isReadyToSubmit: Q
715
715
  }),
716
- S === "versions" && /* @__PURE__ */ W(et, {
716
+ S === "versions" && /* @__PURE__ */ U(et, {
717
717
  appId: K.id,
718
- onNavigate: H,
718
+ onNavigate: V,
719
719
  pricingDone: Z,
720
720
  onNavigateToPricing: () => D("pricing")
721
721
  })
722
722
  ]
723
723
  }),
724
- /* @__PURE__ */ W(ae, {
724
+ /* @__PURE__ */ U(ae, {
725
725
  open: te,
726
726
  onOpenChange: ne,
727
727
  onConfirm: Ie,
@@ -730,9 +730,9 @@ var Ke = [
730
730
  confirmLabel: m("devportal.rotateSecret", "Rotate Secret"),
731
731
  cancelLabel: m("devportal.cancel", "Cancel"),
732
732
  variant: "warning",
733
- loading: R
733
+ loading: L
734
734
  }),
735
- /* @__PURE__ */ W(ae, {
735
+ /* @__PURE__ */ U(ae, {
736
736
  open: k,
737
737
  onOpenChange: ie,
738
738
  onConfirm: Be,
@@ -743,7 +743,7 @@ var Ke = [
743
743
  variant: "destructive",
744
744
  loading: Se
745
745
  }),
746
- /* @__PURE__ */ W(ae, {
746
+ /* @__PURE__ */ U(ae, {
747
747
  open: Ue,
748
748
  onOpenChange: We,
749
749
  onConfirm: () => Ve(Ge || void 0),
@@ -752,7 +752,7 @@ var Ke = [
752
752
  confirmLabel: m("devportal.testInWorkspace", "Test in Workspace"),
753
753
  cancelLabel: m("devportal.cancel", "Cancel"),
754
754
  loading: De,
755
- children: /* @__PURE__ */ W(re, {
755
+ children: /* @__PURE__ */ U(re, {
756
756
  label: m("devportal.version", "Version"),
757
757
  value: Ge,
758
758
  onChange: (e) => qe(e.target.value),
@@ -762,7 +762,7 @@ var Ke = [
762
762
  }))
763
763
  })
764
764
  }),
765
- /* @__PURE__ */ W(oe, {
765
+ /* @__PURE__ */ U(oe, {
766
766
  open: de,
767
767
  onOpenChange: j,
768
768
  appId: K.appId || "",
@@ -775,55 +775,55 @@ var Ke = [
775
775
  ]
776
776
  });
777
777
  }, Xe = ({ onNavigate: e }) => {
778
- let { t } = P(), n = (e, n) => {
778
+ let { t } = G(), n = (e, n) => {
779
779
  let r = t(e);
780
780
  return r === e ? n : r;
781
781
  };
782
- return /* @__PURE__ */ G("div", {
782
+ return /* @__PURE__ */ W("div", {
783
783
  className: "space-y-4 py-4 text-center",
784
784
  children: [
785
- /* @__PURE__ */ W(je, { className: "mx-auto h-10 w-10 text-text-secondary" }),
786
- /* @__PURE__ */ W("h3", {
785
+ /* @__PURE__ */ U(je, { className: "mx-auto h-10 w-10 text-text-secondary" }),
786
+ /* @__PURE__ */ U("h3", {
787
787
  className: "font-medium",
788
788
  children: n("devportal.oauthApps", "OAuth Apps")
789
789
  }),
790
- /* @__PURE__ */ W("p", {
790
+ /* @__PURE__ */ U("p", {
791
791
  className: "text-sm text-text-secondary",
792
792
  children: n("devportal.oauthAppsManagedCentrally", "OAuth apps are now managed centrally. Visit the OAuth Apps page to create and manage your apps.")
793
793
  }),
794
- /* @__PURE__ */ G("button", {
794
+ /* @__PURE__ */ W("button", {
795
795
  onClick: () => e("/oauth"),
796
796
  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",
797
- children: [/* @__PURE__ */ W(R, { size: 16 }), n("devportal.manageOAuthApps", "Manage OAuth Apps")]
797
+ children: [/* @__PURE__ */ U(L, { size: 16 }), n("devportal.manageOAuthApps", "Manage OAuth Apps")]
798
798
  })
799
799
  ]
800
800
  });
801
801
  }, Ze = ({ onNavigate: e }) => {
802
- let { t } = P(), n = (e, n) => {
802
+ let { t } = G(), n = (e, n) => {
803
803
  let r = t(e);
804
804
  return r === e ? n : r;
805
805
  };
806
- return /* @__PURE__ */ G("div", {
806
+ return /* @__PURE__ */ W("div", {
807
807
  className: "space-y-4 py-4 text-center",
808
808
  children: [
809
- /* @__PURE__ */ W(Ce, { className: "mx-auto h-10 w-10 text-text-secondary" }),
810
- /* @__PURE__ */ W("h3", {
809
+ /* @__PURE__ */ U(Ce, { className: "mx-auto h-10 w-10 text-text-secondary" }),
810
+ /* @__PURE__ */ U("h3", {
811
811
  className: "font-medium",
812
812
  children: n("devportal.apiKeys", "API Keys")
813
813
  }),
814
- /* @__PURE__ */ W("p", {
814
+ /* @__PURE__ */ U("p", {
815
815
  className: "text-sm text-text-secondary",
816
816
  children: n("devportal.apiKeysManagedCentrally", "API keys are now managed centrally. Visit the API Keys page to generate and manage your keys.")
817
817
  }),
818
- /* @__PURE__ */ G("button", {
818
+ /* @__PURE__ */ W("button", {
819
819
  onClick: () => e("/api-keys"),
820
820
  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",
821
- children: [/* @__PURE__ */ W(R, { size: 16 }), n("devportal.manageApiKeys", "Manage API Keys")]
821
+ children: [/* @__PURE__ */ U(L, { size: 16 }), n("devportal.manageApiKeys", "Manage API Keys")]
822
822
  })
823
823
  ]
824
824
  });
825
825
  }, q = .01, J = (e) => e * q, Qe = (e) => Math.round(e / q), $e = ({ app: e, platformFeeRate: n, billingAccountLinked: r, onNavigateToRevenue: i, isReadyToSubmit: a = !1 }) => {
826
- let { t: o } = P(), s = (e, t) => {
826
+ let { t: o } = G(), s = (e, t) => {
827
827
  let n = o(e);
828
828
  return n === e ? t : n;
829
829
  }, c = e.pricingDetails ?? {}, [l, u] = N({
@@ -866,25 +866,25 @@ var Ke = [
866
866
  minimumFractionDigits: 2,
867
867
  maximumFractionDigits: 2
868
868
  }), D = (e) => e.toLocaleString("en-US") + " cr";
869
- return /* @__PURE__ */ G("div", {
869
+ return /* @__PURE__ */ W("div", {
870
870
  className: "space-y-8",
871
871
  children: [
872
- /* @__PURE__ */ G("div", {
872
+ /* @__PURE__ */ W("div", {
873
873
  className: "flex items-start gap-3 rounded-lg border border-border-subtle bg-bg-sunken px-4 py-3",
874
- children: [/* @__PURE__ */ W(L, {
874
+ children: [/* @__PURE__ */ U(I, {
875
875
  size: 16,
876
876
  className: "mt-0.5 shrink-0 text-primary"
877
- }), /* @__PURE__ */ G("p", {
877
+ }), /* @__PURE__ */ W("p", {
878
878
  className: "text-sm text-text-secondary",
879
879
  children: [
880
- /* @__PURE__ */ W("span", {
880
+ /* @__PURE__ */ U("span", {
881
881
  className: "font-medium text-text-primary",
882
882
  children: "Platform credits"
883
883
  }),
884
884
  " ",
885
885
  "are the currency of the Burdenoff marketplace.",
886
886
  " ",
887
- /* @__PURE__ */ G("span", {
887
+ /* @__PURE__ */ W("span", {
888
888
  className: "font-medium",
889
889
  children: [
890
890
  "1 credit = ",
@@ -897,41 +897,41 @@ var Ke = [
897
897
  ]
898
898
  })]
899
899
  }),
900
- /* @__PURE__ */ G("div", {
900
+ /* @__PURE__ */ W("div", {
901
901
  className: "space-y-3",
902
- children: [/* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("h2", {
902
+ children: [/* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("h2", {
903
903
  className: "text-lg font-semibold",
904
904
  children: s("devportal.howMonetizationWorks", "How App Monetization Works")
905
- }), /* @__PURE__ */ W("p", {
905
+ }), /* @__PURE__ */ U("p", {
906
906
  className: "mt-1 text-sm text-text-secondary",
907
907
  children: s("devportal.monetizationDesc", "Earn revenue when users install or purchase your app. Here's exactly how the money flows.")
908
- })] }), /* @__PURE__ */ G("div", {
908
+ })] }), /* @__PURE__ */ W("div", {
909
909
  className: "grid gap-4 sm:grid-cols-3",
910
910
  children: [
911
- /* @__PURE__ */ G("div", {
911
+ /* @__PURE__ */ W("div", {
912
912
  className: "rounded-xl border border-border-subtle bg-bg-surface p-5 space-y-3",
913
- children: [/* @__PURE__ */ W("div", {
913
+ children: [/* @__PURE__ */ U("div", {
914
914
  className: "flex h-9 w-9 items-center justify-center rounded-lg bg-status-success-bg-subtle",
915
- children: /* @__PURE__ */ W(Ne, {
915
+ children: /* @__PURE__ */ U(Ne, {
916
916
  size: 18,
917
917
  className: "text-status-success-text"
918
918
  })
919
- }), /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ G("p", {
919
+ }), /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ W("p", {
920
920
  className: "font-semibold",
921
921
  children: [(100 - n * 100).toFixed(0), "% revenue share"]
922
- }), /* @__PURE__ */ G("p", {
922
+ }), /* @__PURE__ */ W("p", {
923
923
  className: "mt-1 text-sm text-text-secondary",
924
924
  children: [
925
925
  "You keep",
926
926
  " ",
927
- /* @__PURE__ */ G("span", {
927
+ /* @__PURE__ */ W("span", {
928
928
  className: "font-medium text-status-success-text",
929
929
  children: [(100 - n * 100).toFixed(0), "%"]
930
930
  }),
931
931
  " ",
932
932
  "of every sale in credits. The platform retains a",
933
933
  " ",
934
- /* @__PURE__ */ G("span", {
934
+ /* @__PURE__ */ W("span", {
935
935
  className: "font-medium",
936
936
  children: [(n * 100).toFixed(0), "%"]
937
937
  }),
@@ -940,28 +940,28 @@ var Ke = [
940
940
  ]
941
941
  })] })]
942
942
  }),
943
- /* @__PURE__ */ G("div", {
943
+ /* @__PURE__ */ W("div", {
944
944
  className: "rounded-xl border border-border-subtle bg-bg-surface p-5 space-y-3",
945
- children: [/* @__PURE__ */ W("div", {
945
+ children: [/* @__PURE__ */ U("div", {
946
946
  className: "flex h-9 w-9 items-center justify-center rounded-lg bg-action-primary-bg/10",
947
- children: /* @__PURE__ */ W(Fe, {
947
+ children: /* @__PURE__ */ U(Fe, {
948
948
  size: 18,
949
949
  className: "text-primary"
950
950
  })
951
- }), /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("p", {
951
+ }), /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("p", {
952
952
  className: "font-semibold",
953
953
  children: "Credits → cash via billing"
954
- }), /* @__PURE__ */ G("p", {
954
+ }), /* @__PURE__ */ W("p", {
955
955
  className: "mt-1 text-sm text-text-secondary",
956
956
  children: [
957
957
  "Every sale instantly deposits your earned credits into your linked billing account. You can spend them on platform services or request a cash withdrawal. Track everything on the",
958
958
  " ",
959
- i ? /* @__PURE__ */ W("button", {
959
+ i ? /* @__PURE__ */ U("button", {
960
960
  type: "button",
961
961
  onClick: i,
962
962
  className: "font-medium text-primary underline-offset-2 hover:underline",
963
963
  children: "Revenue page"
964
- }) : /* @__PURE__ */ W("span", {
964
+ }) : /* @__PURE__ */ U("span", {
965
965
  className: "font-medium text-primary",
966
966
  children: "Revenue page"
967
967
  }),
@@ -969,18 +969,18 @@ var Ke = [
969
969
  ]
970
970
  })] })]
971
971
  }),
972
- /* @__PURE__ */ G("div", {
972
+ /* @__PURE__ */ W("div", {
973
973
  className: "rounded-xl border border-border-subtle bg-bg-surface p-5 space-y-3",
974
- children: [/* @__PURE__ */ W("div", {
974
+ children: [/* @__PURE__ */ U("div", {
975
975
  className: "flex h-9 w-9 items-center justify-center rounded-lg bg-status-warning-bg-subtle",
976
- children: /* @__PURE__ */ W(xe, {
976
+ children: /* @__PURE__ */ U(xe, {
977
977
  size: 18,
978
978
  className: "text-status-warning-text"
979
979
  })
980
- }), /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("p", {
980
+ }), /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("p", {
981
981
  className: "font-semibold",
982
982
  children: "Reach the full marketplace"
983
- }), /* @__PURE__ */ W("p", {
983
+ }), /* @__PURE__ */ U("p", {
984
984
  className: "mt-1 text-sm text-text-secondary",
985
985
  children: "Any user with platform credits can discover and install your app directly from the marketplace. Free apps maximise reach; paid apps let you monetise your work."
986
986
  })] })]
@@ -988,52 +988,52 @@ var Ke = [
988
988
  ]
989
989
  })]
990
990
  }),
991
- /* @__PURE__ */ G("div", {
991
+ /* @__PURE__ */ W("div", {
992
992
  className: "space-y-4",
993
993
  children: [
994
- /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("h3", {
994
+ /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("h3", {
995
995
  className: "text-base font-semibold",
996
996
  children: s("devportal.setPricingTitle", "Set Your Price")
997
- }), /* @__PURE__ */ G("p", {
997
+ }), /* @__PURE__ */ W("p", {
998
998
  className: "mt-0.5 text-sm text-text-secondary",
999
999
  children: [
1000
1000
  "Choose ",
1001
- /* @__PURE__ */ W("strong", { children: "Free" }),
1001
+ /* @__PURE__ */ U("strong", { children: "Free" }),
1002
1002
  " to maximise installs, or",
1003
1003
  " ",
1004
- /* @__PURE__ */ W("strong", { children: "Paid" }),
1004
+ /* @__PURE__ */ U("strong", { children: "Paid" }),
1005
1005
  " to earn credits on every install. Paid apps require a linked billing account before publishing."
1006
1006
  ]
1007
1007
  })] }),
1008
- /* @__PURE__ */ W("div", {
1008
+ /* @__PURE__ */ U("div", {
1009
1009
  className: "flex flex-wrap gap-2",
1010
- children: ft.map((e) => /* @__PURE__ */ W("button", {
1010
+ children: ft.map((e) => /* @__PURE__ */ U("button", {
1011
1011
  type: "button",
1012
1012
  onClick: () => h("pricingType", e.value),
1013
1013
  className: t("rounded-md border px-4 py-2 text-sm font-medium transition-colors", l.pricingType === e.value ? "bg-action-primary-bg text-action-primary-text border-primary" : "hover:bg-bg-sunken border-border-subtle"),
1014
1014
  children: e.label
1015
1015
  }, e.value))
1016
1016
  }),
1017
- _ && /* @__PURE__ */ G("div", {
1017
+ _ && /* @__PURE__ */ W("div", {
1018
1018
  className: "space-y-4",
1019
1019
  children: [
1020
- /* @__PURE__ */ G("div", {
1020
+ /* @__PURE__ */ W("div", {
1021
1021
  className: "max-w-xs",
1022
1022
  children: [
1023
- /* @__PURE__ */ G("label", {
1023
+ /* @__PURE__ */ W("label", {
1024
1024
  className: "mb-1.5 block text-sm font-medium",
1025
1025
  children: [
1026
1026
  "Listing price",
1027
1027
  " ",
1028
- /* @__PURE__ */ W("span", {
1028
+ /* @__PURE__ */ U("span", {
1029
1029
  className: "text-text-tertiary font-normal",
1030
1030
  children: "(credits)"
1031
1031
  })
1032
1032
  ]
1033
1033
  }),
1034
- /* @__PURE__ */ G("div", {
1034
+ /* @__PURE__ */ W("div", {
1035
1035
  className: "relative flex items-center",
1036
- children: [/* @__PURE__ */ W("input", {
1036
+ children: [/* @__PURE__ */ U("input", {
1037
1037
  type: "number",
1038
1038
  min: 1,
1039
1039
  step: 1,
@@ -1041,12 +1041,12 @@ var Ke = [
1041
1041
  onChange: (e) => h("price", e.target.value),
1042
1042
  placeholder: "e.g. 1000",
1043
1043
  className: "w-full rounded-md border border-border-subtle bg-bg-input px-3 py-2 pr-20 text-sm focus:outline-none focus:ring-2 focus:ring-primary/50"
1044
- }), /* @__PURE__ */ W("span", {
1044
+ }), /* @__PURE__ */ U("span", {
1045
1045
  className: "pointer-events-none absolute right-3 text-xs text-text-tertiary",
1046
1046
  children: "credits"
1047
1047
  })]
1048
1048
  }),
1049
- y && /* @__PURE__ */ G("p", {
1049
+ y && /* @__PURE__ */ W("p", {
1050
1050
  className: "mt-1.5 text-xs text-text-secondary",
1051
1051
  children: [
1052
1052
  "≈ ",
@@ -1057,20 +1057,20 @@ var Ke = [
1057
1057
  ")"
1058
1058
  ]
1059
1059
  }),
1060
- /* @__PURE__ */ W("p", {
1060
+ /* @__PURE__ */ U("p", {
1061
1061
  className: "mt-1 text-xs text-text-tertiary",
1062
1062
  children: s("devportal.priceHint", "Set the number of credits a buyer spends to install your app")
1063
1063
  })
1064
1064
  ]
1065
1065
  }),
1066
- /* @__PURE__ */ G("div", {
1066
+ /* @__PURE__ */ W("div", {
1067
1067
  className: "flex items-center gap-2 text-xs text-text-secondary",
1068
- children: [/* @__PURE__ */ W("span", { children: "Quick convert:" }), [
1068
+ children: [/* @__PURE__ */ U("span", { children: "Quick convert:" }), [
1069
1069
  5,
1070
1070
  10,
1071
1071
  25,
1072
1072
  50
1073
- ].map((e) => /* @__PURE__ */ G("button", {
1073
+ ].map((e) => /* @__PURE__ */ W("button", {
1074
1074
  type: "button",
1075
1075
  onClick: () => h("price", String(Qe(e))),
1076
1076
  className: "rounded border border-border-subtle px-2 py-0.5 hover:bg-bg-sunken transition-colors",
@@ -1083,27 +1083,27 @@ var Ke = [
1083
1083
  ]
1084
1084
  }, e))]
1085
1085
  }),
1086
- y && /* @__PURE__ */ G("div", {
1086
+ y && /* @__PURE__ */ W("div", {
1087
1087
  className: "rounded-lg border border-border-subtle bg-bg-sunken p-4 space-y-3",
1088
1088
  children: [
1089
- /* @__PURE__ */ W("p", {
1089
+ /* @__PURE__ */ U("p", {
1090
1090
  className: "text-xs font-semibold uppercase tracking-wide text-text-secondary",
1091
1091
  children: s("devportal.revenueBreakdown", "Revenue Breakdown per Sale")
1092
1092
  }),
1093
- /* @__PURE__ */ G("div", {
1093
+ /* @__PURE__ */ W("div", {
1094
1094
  className: "space-y-2 text-sm",
1095
1095
  children: [
1096
- /* @__PURE__ */ G("div", {
1096
+ /* @__PURE__ */ W("div", {
1097
1097
  className: "flex items-center justify-between",
1098
- children: [/* @__PURE__ */ W("span", {
1098
+ children: [/* @__PURE__ */ U("span", {
1099
1099
  className: "text-text-secondary",
1100
1100
  children: "Buyer pays"
1101
- }), /* @__PURE__ */ G("span", {
1101
+ }), /* @__PURE__ */ W("span", {
1102
1102
  className: "font-medium tabular-nums",
1103
1103
  children: [
1104
1104
  D(v),
1105
1105
  " ",
1106
- /* @__PURE__ */ G("span", {
1106
+ /* @__PURE__ */ W("span", {
1107
1107
  className: "text-text-tertiary text-xs",
1108
1108
  children: [
1109
1109
  "(",
@@ -1114,12 +1114,12 @@ var Ke = [
1114
1114
  ]
1115
1115
  })]
1116
1116
  }),
1117
- /* @__PURE__ */ G("div", {
1117
+ /* @__PURE__ */ W("div", {
1118
1118
  className: "flex items-center justify-between text-status-error-text",
1119
- children: [/* @__PURE__ */ G("span", { children: [
1119
+ children: [/* @__PURE__ */ W("span", { children: [
1120
1120
  "Platform fee",
1121
1121
  " ",
1122
- /* @__PURE__ */ G("span", {
1122
+ /* @__PURE__ */ W("span", {
1123
1123
  className: "opacity-70",
1124
1124
  children: [
1125
1125
  "(",
@@ -1127,13 +1127,13 @@ var Ke = [
1127
1127
  "%)"
1128
1128
  ]
1129
1129
  })
1130
- ] }), /* @__PURE__ */ G("span", {
1130
+ ] }), /* @__PURE__ */ W("span", {
1131
1131
  className: "tabular-nums",
1132
1132
  children: [
1133
1133
  "− ",
1134
1134
  D(S),
1135
1135
  " ",
1136
- /* @__PURE__ */ G("span", {
1136
+ /* @__PURE__ */ W("span", {
1137
1137
  className: "text-xs opacity-70",
1138
1138
  children: [
1139
1139
  "(",
@@ -1144,14 +1144,14 @@ var Ke = [
1144
1144
  ]
1145
1145
  })]
1146
1146
  }),
1147
- /* @__PURE__ */ G("div", {
1147
+ /* @__PURE__ */ W("div", {
1148
1148
  className: "flex items-center justify-between border-t border-border-subtle pt-2 font-semibold text-status-success-text",
1149
- children: [/* @__PURE__ */ W("span", { children: "You earn" }), /* @__PURE__ */ G("span", {
1149
+ children: [/* @__PURE__ */ U("span", { children: "You earn" }), /* @__PURE__ */ W("span", {
1150
1150
  className: "tabular-nums",
1151
1151
  children: [
1152
1152
  D(w),
1153
1153
  " ",
1154
- /* @__PURE__ */ G("span", {
1154
+ /* @__PURE__ */ W("span", {
1155
1155
  className: "text-sm font-normal",
1156
1156
  children: ["≈ ", E(T)]
1157
1157
  })
@@ -1160,29 +1160,29 @@ var Ke = [
1160
1160
  })
1161
1161
  ]
1162
1162
  }),
1163
- /* @__PURE__ */ W("p", {
1163
+ /* @__PURE__ */ U("p", {
1164
1164
  className: "text-xs text-text-tertiary",
1165
1165
  children: "Credits are deposited to your billing account on each sale. Cash withdrawal is subject to platform terms and minimum payout thresholds."
1166
1166
  })
1167
1167
  ]
1168
1168
  }),
1169
- !r && /* @__PURE__ */ G("div", {
1169
+ !r && /* @__PURE__ */ W("div", {
1170
1170
  className: "flex items-start gap-3 rounded-lg border border-status-warning-bg bg-status-warning-bg-subtle p-4",
1171
- children: [/* @__PURE__ */ W(F, {
1171
+ children: [/* @__PURE__ */ U(P, {
1172
1172
  size: 16,
1173
1173
  className: "mt-0.5 shrink-0 text-status-warning-text"
1174
- }), /* @__PURE__ */ G("div", {
1174
+ }), /* @__PURE__ */ W("div", {
1175
1175
  className: "flex-1 min-w-0",
1176
1176
  children: [
1177
- /* @__PURE__ */ W("p", {
1177
+ /* @__PURE__ */ U("p", {
1178
1178
  className: "text-sm font-medium text-status-warning-text",
1179
1179
  children: s("devportal.billingAccountRequired", "Billing account required to publish")
1180
1180
  }),
1181
- /* @__PURE__ */ W("p", {
1181
+ /* @__PURE__ */ U("p", {
1182
1182
  className: "mt-0.5 text-xs text-text-secondary",
1183
1183
  children: "Paid apps must have a billing account linked to your developer organization before you can submit for review. This is where your earned credits and cash withdrawals will be managed."
1184
1184
  }),
1185
- i && /* @__PURE__ */ W("button", {
1185
+ i && /* @__PURE__ */ U("button", {
1186
1186
  type: "button",
1187
1187
  onClick: i,
1188
1188
  className: "mt-2 text-xs font-medium text-primary hover:underline underline-offset-2",
@@ -1195,23 +1195,23 @@ var Ke = [
1195
1195
  })
1196
1196
  ]
1197
1197
  }),
1198
- /* @__PURE__ */ G("div", {
1198
+ /* @__PURE__ */ W("div", {
1199
1199
  className: "rounded-xl border border-border-subtle bg-bg-surface p-5 space-y-3",
1200
- children: [/* @__PURE__ */ W("h3", {
1200
+ children: [/* @__PURE__ */ U("h3", {
1201
1201
  className: "text-sm font-semibold",
1202
1202
  children: s("devportal.termsTitle", "Developer & Marketplace Terms")
1203
- }), /* @__PURE__ */ G("ul", {
1203
+ }), /* @__PURE__ */ W("ul", {
1204
1204
  className: "space-y-2 text-sm text-text-secondary",
1205
1205
  children: [
1206
- /* @__PURE__ */ G("li", {
1206
+ /* @__PURE__ */ W("li", {
1207
1207
  className: "flex items-start gap-2",
1208
- children: [/* @__PURE__ */ W(I, {
1208
+ children: [/* @__PURE__ */ U(F, {
1209
1209
  size: 14,
1210
1210
  className: "mt-0.5 shrink-0 text-status-success-text"
1211
- }), /* @__PURE__ */ G("span", { children: [
1211
+ }), /* @__PURE__ */ W("span", { children: [
1212
1212
  "By publishing to the marketplace you agree to the",
1213
1213
  " ",
1214
- /* @__PURE__ */ W("a", {
1214
+ /* @__PURE__ */ U("a", {
1215
1215
  href: "/legal/developer-terms",
1216
1216
  target: "_blank",
1217
1217
  rel: "noopener noreferrer",
@@ -1221,29 +1221,29 @@ var Ke = [
1221
1221
  "."
1222
1222
  ] })]
1223
1223
  }),
1224
- /* @__PURE__ */ G("li", {
1224
+ /* @__PURE__ */ W("li", {
1225
1225
  className: "flex items-start gap-2",
1226
- children: [/* @__PURE__ */ W(I, {
1226
+ children: [/* @__PURE__ */ U(F, {
1227
1227
  size: 14,
1228
1228
  className: "mt-0.5 shrink-0 text-status-success-text"
1229
- }), /* @__PURE__ */ W("span", { children: "All prices are in platform credits. The USD equivalent is indicative only and may vary with the current credit rate." })]
1229
+ }), /* @__PURE__ */ U("span", { children: "All prices are in platform credits. The USD equivalent is indicative only and may vary with the current credit rate." })]
1230
1230
  }),
1231
- /* @__PURE__ */ G("li", {
1231
+ /* @__PURE__ */ W("li", {
1232
1232
  className: "flex items-start gap-2",
1233
- children: [/* @__PURE__ */ W(I, {
1233
+ children: [/* @__PURE__ */ U(F, {
1234
1234
  size: 14,
1235
1235
  className: "mt-0.5 shrink-0 text-status-success-text"
1236
- }), /* @__PURE__ */ W("span", { children: "Earnings are credited to your billing account per-sale. Cash withdrawals are subject to a minimum threshold and applicable taxes in your jurisdiction." })]
1236
+ }), /* @__PURE__ */ U("span", { children: "Earnings are credited to your billing account per-sale. Cash withdrawals are subject to a minimum threshold and applicable taxes in your jurisdiction." })]
1237
1237
  }),
1238
- /* @__PURE__ */ G("li", {
1238
+ /* @__PURE__ */ W("li", {
1239
1239
  className: "flex items-start gap-2",
1240
- children: [/* @__PURE__ */ W(I, {
1240
+ children: [/* @__PURE__ */ U(F, {
1241
1241
  size: 14,
1242
1242
  className: "mt-0.5 shrink-0 text-status-success-text"
1243
- }), /* @__PURE__ */ G("span", { children: [
1243
+ }), /* @__PURE__ */ W("span", { children: [
1244
1244
  "The platform reserves the right to adjust the credit rate, fee structure, or payout schedule with 30 days notice. See the",
1245
1245
  " ",
1246
- /* @__PURE__ */ W("a", {
1246
+ /* @__PURE__ */ U("a", {
1247
1247
  href: "/legal/marketplace-terms",
1248
1248
  target: "_blank",
1249
1249
  rel: "noopener noreferrer",
@@ -1257,26 +1257,26 @@ var Ke = [
1257
1257
  ]
1258
1258
  })]
1259
1259
  }),
1260
- /* @__PURE__ */ G("div", {
1260
+ /* @__PURE__ */ W("div", {
1261
1261
  className: "border-t border-border-subtle pt-6 space-y-4",
1262
- children: [/* @__PURE__ */ W("button", {
1262
+ children: [/* @__PURE__ */ U("button", {
1263
1263
  type: "button",
1264
1264
  onClick: () => void g(),
1265
1265
  disabled: d,
1266
1266
  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",
1267
- children: d ? /* @__PURE__ */ G(U, { children: [/* @__PURE__ */ W(z, {
1267
+ children: d ? /* @__PURE__ */ W(H, { children: [/* @__PURE__ */ U(R, {
1268
1268
  size: 16,
1269
1269
  className: "animate-spin"
1270
- }), s("devportal.saving", "Saving…")] }) : /* @__PURE__ */ G(U, { children: [/* @__PURE__ */ W(L, { size: 16 }), s("devportal.savePricing", "Save Pricing")] })
1271
- }), a && /* @__PURE__ */ G("div", {
1270
+ }), s("devportal.saving", "Saving…")] }) : /* @__PURE__ */ W(H, { children: [/* @__PURE__ */ U(I, { size: 16 }), s("devportal.savePricing", "Save Pricing")] })
1271
+ }), a && /* @__PURE__ */ W("div", {
1272
1272
  className: "flex items-start gap-3 rounded-lg border border-status-success-bg bg-status-success-bg-subtle px-4 py-3",
1273
- children: [/* @__PURE__ */ W(I, {
1273
+ children: [/* @__PURE__ */ U(F, {
1274
1274
  size: 16,
1275
1275
  className: "mt-0.5 shrink-0 text-status-success-text"
1276
- }), /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("p", {
1276
+ }), /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("p", {
1277
1277
  className: "text-sm font-medium text-status-success-text",
1278
1278
  children: s("devportal.allSetToSubmit", "You're all set!")
1279
- }), /* @__PURE__ */ W("p", {
1279
+ }), /* @__PURE__ */ U("p", {
1280
1280
  className: "mt-0.5 text-xs text-text-secondary",
1281
1281
  children: s("devportal.allSetDesc", "Store listing, versions, and pricing are complete. Head to the top of the page and click Submit for Review.")
1282
1282
  })] })]
@@ -1285,87 +1285,87 @@ var Ke = [
1285
1285
  ]
1286
1286
  });
1287
1287
  }, et = ({ appId: e, onNavigate: n, pricingDone: i = !1, onNavigateToPricing: a }) => {
1288
- let { t: o } = P(), s = (e, t) => {
1288
+ let { t: o } = G(), s = (e, t) => {
1289
1289
  let n = o(e);
1290
1290
  return n === e ? t : n;
1291
1291
  }, { data: l, loading: u, error: d } = c({
1292
1292
  variables: { applicationId: e },
1293
1293
  fetchPolicy: "cache-and-network"
1294
1294
  });
1295
- if (u) return /* @__PURE__ */ W(Je, { message: s("devportal.loadingVersions", "Loading versions…") });
1296
- if (d) return /* @__PURE__ */ W(Ye, { message: d.message });
1295
+ if (u) return /* @__PURE__ */ U(Je, { message: s("devportal.loadingVersions", "Loading versions…") });
1296
+ if (d) return /* @__PURE__ */ U(Ye, { message: d.message });
1297
1297
  let f = (l?.application?.versions?.edges ?? []).map((e) => e.node);
1298
- return /* @__PURE__ */ G("div", {
1298
+ return /* @__PURE__ */ W("div", {
1299
1299
  className: "space-y-4",
1300
1300
  children: [
1301
- /* @__PURE__ */ G("div", {
1301
+ /* @__PURE__ */ W("div", {
1302
1302
  className: "flex items-center justify-between",
1303
- children: [/* @__PURE__ */ G("p", {
1303
+ children: [/* @__PURE__ */ W("p", {
1304
1304
  className: "text-sm text-text-secondary",
1305
1305
  children: [
1306
1306
  f.length,
1307
1307
  " ",
1308
1308
  f.length === 1 ? s("devportal.version", "version") : s("devportal.versions", "versions")
1309
1309
  ]
1310
- }), /* @__PURE__ */ G("button", {
1310
+ }), /* @__PURE__ */ W("button", {
1311
1311
  onClick: () => n(`/apps/${e}/versions`),
1312
1312
  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",
1313
- children: [/* @__PURE__ */ W(V, { size: 16 }), s("devportal.uploadVersion", "Upload Version")]
1313
+ children: [/* @__PURE__ */ U(B, { size: 16 }), s("devportal.uploadVersion", "Upload Version")]
1314
1314
  })]
1315
1315
  }),
1316
- f.length > 0 ? /* @__PURE__ */ W("div", {
1316
+ f.length > 0 ? /* @__PURE__ */ U("div", {
1317
1317
  className: "overflow-hidden rounded-lg border border-border-subtle",
1318
- children: /* @__PURE__ */ G("table", {
1318
+ children: /* @__PURE__ */ W("table", {
1319
1319
  className: "w-full text-sm",
1320
- children: [/* @__PURE__ */ W("thead", { children: /* @__PURE__ */ G("tr", {
1320
+ children: [/* @__PURE__ */ U("thead", { children: /* @__PURE__ */ W("tr", {
1321
1321
  className: "border-b border-border-subtle bg-bg-sunken/50",
1322
1322
  children: [
1323
- /* @__PURE__ */ W("th", {
1323
+ /* @__PURE__ */ U("th", {
1324
1324
  className: "px-4 py-3 text-left font-medium text-text-secondary",
1325
1325
  children: s("devportal.version", "Version")
1326
1326
  }),
1327
- /* @__PURE__ */ W("th", {
1327
+ /* @__PURE__ */ U("th", {
1328
1328
  className: "px-4 py-3 text-left font-medium text-text-secondary",
1329
1329
  children: s("devportal.status", "Status")
1330
1330
  }),
1331
- /* @__PURE__ */ W("th", {
1331
+ /* @__PURE__ */ U("th", {
1332
1332
  className: "px-4 py-3 text-left font-medium text-text-secondary",
1333
1333
  children: s("devportal.released", "Released")
1334
1334
  }),
1335
- /* @__PURE__ */ W("th", {
1335
+ /* @__PURE__ */ U("th", {
1336
1336
  className: "px-4 py-3 text-left font-medium text-text-secondary",
1337
1337
  children: s("devportal.flags", "Flags")
1338
1338
  })
1339
1339
  ]
1340
- }) }), /* @__PURE__ */ W("tbody", {
1340
+ }) }), /* @__PURE__ */ U("tbody", {
1341
1341
  className: "divide-y divide-border-subtle",
1342
- children: f.map((e) => /* @__PURE__ */ G(U, { children: [
1343
- /* @__PURE__ */ G("tr", {
1342
+ children: f.map((e) => /* @__PURE__ */ W(H, { children: [
1343
+ /* @__PURE__ */ W("tr", {
1344
1344
  className: "hover:bg-bg-sunken/30 transition-colors",
1345
1345
  children: [
1346
- /* @__PURE__ */ W("td", {
1346
+ /* @__PURE__ */ U("td", {
1347
1347
  className: "px-4 py-3 font-mono font-medium",
1348
1348
  children: e.version
1349
1349
  }),
1350
- /* @__PURE__ */ W("td", {
1350
+ /* @__PURE__ */ U("td", {
1351
1351
  className: "px-4 py-3",
1352
- children: /* @__PURE__ */ W("span", {
1352
+ children: /* @__PURE__ */ U("span", {
1353
1353
  className: t("inline-flex rounded-full px-2 py-0.5 text-xs font-medium", e.status === "published" ? "bg-status-success-bg-subtle text-status-success-text" : e.status === "pending_review" ? "bg-status-info-bg-subtle text-status-info-text" : e.status === "rejected" ? "bg-status-error-bg-subtle text-status-error-text" : e.status === "deprecated" ? "bg-bg-sunken text-text-secondary" : "bg-status-warning-bg-subtle text-status-warning-text"),
1354
1354
  children: e.status === "pending_review" ? "In Review" : e.status
1355
1355
  })
1356
1356
  }),
1357
- /* @__PURE__ */ W("td", {
1357
+ /* @__PURE__ */ U("td", {
1358
1358
  className: "px-4 py-3 text-text-secondary",
1359
1359
  children: e.publishedAt ? new Date(e.publishedAt).toLocaleDateString() : new Date(e.createdAt).toLocaleDateString()
1360
1360
  }),
1361
- /* @__PURE__ */ W("td", {
1361
+ /* @__PURE__ */ U("td", {
1362
1362
  className: "px-4 py-3",
1363
- children: /* @__PURE__ */ G("div", {
1363
+ children: /* @__PURE__ */ W("div", {
1364
1364
  className: "flex gap-1.5",
1365
- children: [e.isLatest && /* @__PURE__ */ W("span", {
1365
+ children: [e.isLatest && /* @__PURE__ */ U("span", {
1366
1366
  className: "rounded-full bg-action-primary-bg/10 px-2 py-0.5 text-xs text-primary font-medium",
1367
1367
  children: "latest"
1368
- }), e.isStable && /* @__PURE__ */ W("span", {
1368
+ }), e.isStable && /* @__PURE__ */ U("span", {
1369
1369
  className: "rounded-full bg-status-success-bg-subtle px-2 py-0.5 text-xs text-status-success-text font-medium",
1370
1370
  children: "stable"
1371
1371
  })]
@@ -1373,26 +1373,26 @@ var Ke = [
1373
1373
  })
1374
1374
  ]
1375
1375
  }, e.id),
1376
- e.status === "rejected" && e.reviewNotes && /* @__PURE__ */ W("tr", {
1376
+ e.status === "rejected" && e.reviewNotes && /* @__PURE__ */ U("tr", {
1377
1377
  className: "bg-status-error-bg-subtle/40",
1378
- children: /* @__PURE__ */ W("td", {
1378
+ children: /* @__PURE__ */ U("td", {
1379
1379
  colSpan: 4,
1380
1380
  className: "px-4 py-2",
1381
- children: /* @__PURE__ */ G("p", {
1381
+ children: /* @__PURE__ */ W("p", {
1382
1382
  className: "text-xs text-status-error-text",
1383
- children: [/* @__PURE__ */ G("span", {
1383
+ children: [/* @__PURE__ */ W("span", {
1384
1384
  className: "font-semibold",
1385
1385
  children: ["Review feedback:", " "]
1386
1386
  }), e.reviewNotes]
1387
1387
  })
1388
1388
  })
1389
1389
  }, `${e.id}-notes`),
1390
- e.status === "pending_review" && /* @__PURE__ */ W("tr", {
1390
+ e.status === "pending_review" && /* @__PURE__ */ U("tr", {
1391
1391
  className: "bg-status-info-bg-subtle/30",
1392
- children: /* @__PURE__ */ W("td", {
1392
+ children: /* @__PURE__ */ U("td", {
1393
1393
  colSpan: 4,
1394
1394
  className: "px-4 py-2",
1395
- children: /* @__PURE__ */ W("p", {
1395
+ children: /* @__PURE__ */ U("p", {
1396
1396
  className: "text-xs text-status-info-text",
1397
1397
  children: "Submitted for platform review — you will be notified once approved or if changes are needed."
1398
1398
  })
@@ -1401,50 +1401,50 @@ var Ke = [
1401
1401
  ] }))
1402
1402
  })]
1403
1403
  })
1404
- }) : /* @__PURE__ */ W(r, {
1404
+ }) : /* @__PURE__ */ U(r, {
1405
1405
  illustration: "empty-generic",
1406
- icon: /* @__PURE__ */ W(De, { size: 32 }),
1406
+ icon: /* @__PURE__ */ U(De, { size: 32 }),
1407
1407
  title: s("devportal.noVersions", "No versions yet"),
1408
1408
  description: s("devportal.noVersionsDescription", "Upload your first version to make this item available for review and distribution."),
1409
- action: /* @__PURE__ */ G("button", {
1409
+ action: /* @__PURE__ */ W("button", {
1410
1410
  onClick: () => n(`/apps/${e}/versions`),
1411
1411
  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",
1412
- children: [/* @__PURE__ */ W(V, { size: 16 }), s("devportal.uploadVersion", "Upload Version")]
1412
+ children: [/* @__PURE__ */ U(B, { size: 16 }), s("devportal.uploadVersion", "Upload Version")]
1413
1413
  })
1414
1414
  }),
1415
- f.length > 0 && !i && a && /* @__PURE__ */ G("div", {
1415
+ f.length > 0 && !i && a && /* @__PURE__ */ W("div", {
1416
1416
  className: "mt-4 flex items-center gap-3 rounded-lg border border-border-subtle bg-bg-sunken px-4 py-3",
1417
1417
  children: [
1418
- /* @__PURE__ */ W(L, {
1418
+ /* @__PURE__ */ U(I, {
1419
1419
  size: 16,
1420
1420
  className: "shrink-0 text-primary"
1421
1421
  }),
1422
- /* @__PURE__ */ W("p", {
1422
+ /* @__PURE__ */ U("p", {
1423
1423
  className: "flex-1 text-sm text-text-secondary",
1424
1424
  children: s("devportal.versionsNextPricing", "You've got versions covered. Now set your pricing before you can submit.")
1425
1425
  }),
1426
- /* @__PURE__ */ G("button", {
1426
+ /* @__PURE__ */ W("button", {
1427
1427
  type: "button",
1428
1428
  onClick: a,
1429
1429
  className: "inline-flex items-center gap-1 text-sm font-medium text-primary hover:underline underline-offset-2 whitespace-nowrap",
1430
- children: [s("devportal.nextSetPricing", "Set Pricing"), /* @__PURE__ */ W(ge, { size: 15 })]
1430
+ children: [s("devportal.nextSetPricing", "Set Pricing"), /* @__PURE__ */ U(ge, { size: 15 })]
1431
1431
  })
1432
1432
  ]
1433
1433
  })
1434
1434
  ]
1435
1435
  });
1436
1436
  }, tt = ({ appId: e, onNavigate: t }) => {
1437
- let { t: n } = P(), r = (e, t) => {
1437
+ let { t: n } = G(), r = (e, t) => {
1438
1438
  let r = n(e);
1439
1439
  return r === e ? t : r;
1440
1440
  }, { data: i, loading: a, error: o } = u({ variables: { applicationId: e } });
1441
- return a ? /* @__PURE__ */ W(Je, { message: r("devportal.loadingWebhooks", "Loading webhooks...") }) : o ? /* @__PURE__ */ W(Ye, { message: o.message }) : /* @__PURE__ */ W(at, {
1441
+ return a ? /* @__PURE__ */ U(Je, { message: r("devportal.loadingWebhooks", "Loading webhooks...") }) : o ? /* @__PURE__ */ U(Ye, { message: o.message }) : /* @__PURE__ */ U(at, {
1442
1442
  appId: e,
1443
1443
  webhooks: (i?.webhooks ?? []).map(Ue),
1444
1444
  onNavigate: t
1445
1445
  });
1446
1446
  }, nt = ({ authAppId: e, appName: t, onGrantDelegation: n, onNavigate: a }) => {
1447
- let { t: o } = P(), s = (e, t) => {
1447
+ let { t: o } = G(), s = (e, t) => {
1448
1448
  let n = o(e);
1449
1449
  return n === e ? t : n;
1450
1450
  }, { data: c, loading: l, error: u, refetch: d } = i(), [f] = m(), [p, h] = N([]), [g, _] = N(!1), [v, y] = N(/* @__PURE__ */ new Set()), [b, x] = N(null), S = j(() => c?.currentUserDelegations?.delegations ? c.currentUserDelegations.delegations.filter((t) => t.appId === e).map(Ge) : [], [e, c]), C = j(() => S.filter((e) => e.status === "ACTIVE"), [S]), w = j(() => C.filter((e) => v.has(e.id)), [C, v]), T = C.length > 0 && C.every((e) => v.has(e.id)), E = C.some((e) => v.has(e.id)) && !T, D = A((e, t) => {
@@ -1473,19 +1473,19 @@ var Ke = [
1473
1473
  _(!1);
1474
1474
  }
1475
1475
  }, [f, d]);
1476
- return e ? l ? /* @__PURE__ */ W(Je, { message: s("devportal.loadingDelegations", "Loading delegations...") }) : u ? /* @__PURE__ */ W(Ye, { message: u.message }) : /* @__PURE__ */ G(U, { children: [
1477
- b && /* @__PURE__ */ W("div", {
1476
+ return e ? l ? /* @__PURE__ */ U(Je, { message: s("devportal.loadingDelegations", "Loading delegations...") }) : u ? /* @__PURE__ */ U(Ye, { message: u.message }) : /* @__PURE__ */ W(H, { children: [
1477
+ b && /* @__PURE__ */ U("div", {
1478
1478
  className: "rounded-lg border border-border-subtle bg-status-success-bg-subtle p-3 text-sm text-status-success-text",
1479
- children: /* @__PURE__ */ G("div", {
1479
+ children: /* @__PURE__ */ W("div", {
1480
1480
  className: "flex items-center justify-between gap-3",
1481
- children: [/* @__PURE__ */ W("span", { children: b }), /* @__PURE__ */ W("button", {
1481
+ children: [/* @__PURE__ */ U("span", { children: b }), /* @__PURE__ */ U("button", {
1482
1482
  onClick: () => x(null),
1483
1483
  className: "text-status-success-text hover:text-status-success-text",
1484
1484
  children: s("devportal.dismiss", "Dismiss")
1485
1485
  })]
1486
1486
  })
1487
1487
  }),
1488
- /* @__PURE__ */ W(ot, {
1488
+ /* @__PURE__ */ U(ot, {
1489
1489
  appName: t,
1490
1490
  delegations: S,
1491
1491
  onGrantDelegation: n,
@@ -1498,7 +1498,7 @@ var Ke = [
1498
1498
  allVisibleSelected: T,
1499
1499
  partiallySelected: E
1500
1500
  }),
1501
- /* @__PURE__ */ W(ae, {
1501
+ /* @__PURE__ */ U(ae, {
1502
1502
  open: p.length > 0,
1503
1503
  onOpenChange: (e) => {
1504
1504
  e || h([]);
@@ -1513,19 +1513,19 @@ var Ke = [
1513
1513
  variant: "destructive",
1514
1514
  loading: g
1515
1515
  })
1516
- ] }) : /* @__PURE__ */ W(r, {
1516
+ ] }) : /* @__PURE__ */ U(r, {
1517
1517
  illustration: "empty-generic",
1518
- icon: /* @__PURE__ */ W(je, { size: 32 }),
1518
+ icon: /* @__PURE__ */ U(je, { size: 32 }),
1519
1519
  title: s("devportal.linkAuthAppFirst", "Link an auth app first"),
1520
1520
  description: s("devportal.linkAuthAppFirstDescription", "Delegations are managed through auth apps. Create or link an auth app before granting app-as-user access."),
1521
- action: /* @__PURE__ */ G("button", {
1521
+ action: /* @__PURE__ */ W("button", {
1522
1522
  onClick: () => a("/oauth"),
1523
1523
  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",
1524
- children: [/* @__PURE__ */ W(R, { size: 16 }), s("devportal.manageOAuthApps", "Manage OAuth Apps")]
1524
+ children: [/* @__PURE__ */ U(L, { size: 16 }), s("devportal.manageOAuthApps", "Manage OAuth Apps")]
1525
1525
  })
1526
1526
  });
1527
1527
  }, rt = ({ appId: e }) => {
1528
- let { t } = P(), n = (e, n) => {
1528
+ let { t } = G(), n = (e, n) => {
1529
1529
  let r = t(e);
1530
1530
  return r === e ? n : r;
1531
1531
  }, r = j(() => /* @__PURE__ */ new Date(), []), { data: i, loading: a, error: s } = o({ variables: {
@@ -1537,45 +1537,45 @@ var Ke = [
1537
1537
  }, [r]).toISOString(),
1538
1538
  endDate: r.toISOString()
1539
1539
  } });
1540
- return a ? /* @__PURE__ */ W(Je, { message: n("devportal.loadingAnalytics", "Loading analytics...") }) : s ? /* @__PURE__ */ W(Ye, { message: s.message }) : /* @__PURE__ */ W(st, { analytics: (i?.applicationAnalytics ?? []).map(We) });
1540
+ return a ? /* @__PURE__ */ U(Je, { message: n("devportal.loadingAnalytics", "Loading analytics...") }) : s ? /* @__PURE__ */ U(Ye, { message: s.message }) : /* @__PURE__ */ U(st, { analytics: (i?.applicationAnalytics ?? []).map(We) });
1541
1541
  }, it = ({ app: e, appId: t, refetch: n }) => {
1542
- let { t: r } = P(), i = (e, t) => {
1542
+ let { t: r } = G(), i = (e, t) => {
1543
1543
  let n = r(e);
1544
1544
  return n === e ? t : n;
1545
1545
  }, [a, { loading: o }] = g(), [s, { loading: c }] = y(), [l, u] = N(!1);
1546
- return /* @__PURE__ */ G("div", {
1546
+ return /* @__PURE__ */ W("div", {
1547
1547
  className: "space-y-6",
1548
- children: [e.appType === "WORKFLOW" && /* @__PURE__ */ W("div", {
1548
+ children: [e.appType === "WORKFLOW" && /* @__PURE__ */ U("div", {
1549
1549
  className: "rounded-lg border border-border-subtle bg-bg-elevated p-4",
1550
- children: /* @__PURE__ */ G("div", {
1550
+ children: /* @__PURE__ */ W("div", {
1551
1551
  className: "flex items-start justify-between gap-4",
1552
- children: [/* @__PURE__ */ G("div", {
1552
+ children: [/* @__PURE__ */ W("div", {
1553
1553
  className: "flex items-start gap-3",
1554
- children: [/* @__PURE__ */ W("div", {
1554
+ children: [/* @__PURE__ */ U("div", {
1555
1555
  className: "mt-0.5 flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-full bg-action-primary-bg-subtle",
1556
- children: /* @__PURE__ */ W(we, {
1556
+ children: /* @__PURE__ */ U(we, {
1557
1557
  size: 15,
1558
1558
  className: "text-action-primary-text"
1559
1559
  })
1560
- }), /* @__PURE__ */ G("div", { children: [
1561
- /* @__PURE__ */ W("p", {
1560
+ }), /* @__PURE__ */ W("div", { children: [
1561
+ /* @__PURE__ */ U("p", {
1562
1562
  className: "text-sm font-medium text-text-primary",
1563
1563
  children: i("devportal.shareWorkflow.title", "Share as Public Link")
1564
1564
  }),
1565
- /* @__PURE__ */ W("p", {
1565
+ /* @__PURE__ */ U("p", {
1566
1566
  className: "mt-0.5 text-xs text-text-secondary",
1567
1567
  children: e.visibility === "UNLISTED" ? i("devportal.shareWorkflow.activeDesc", "Anyone with the link can preview and copy this workflow into their FluidGrids workspace.") : i("devportal.shareWorkflow.inactiveDesc", "Generate a public link anyone can use to copy this workflow into their own FluidGrids workspace — no store review needed.")
1568
1568
  }),
1569
- e.visibility === "UNLISTED" && (e.status === "PUBLISHED" || e.status === "SUBMITTED") && /* @__PURE__ */ W("p", {
1569
+ e.visibility === "UNLISTED" && (e.status === "PUBLISHED" || e.status === "SUBMITTED") && /* @__PURE__ */ U("p", {
1570
1570
  className: "mt-1.5 text-xs text-status-warning-text",
1571
1571
  children: i("devportal.shareWorkflow.stopSharingPublishedNote", "This app is in the marketplace. Stopping the share link will keep it there — visibility will switch to Public so the store listing is preserved.")
1572
1572
  }),
1573
- e.visibility === "UNLISTED" && /* @__PURE__ */ G("div", {
1573
+ e.visibility === "UNLISTED" && /* @__PURE__ */ W("div", {
1574
1574
  className: "mt-2 flex items-center gap-2",
1575
- children: [/* @__PURE__ */ W("code", {
1575
+ children: [/* @__PURE__ */ U("code", {
1576
1576
  className: "rounded bg-bg-canvas px-2 py-1 text-xs text-text-secondary",
1577
1577
  children: `${window.location.protocol}//${window.location.host}/shared/${t}`
1578
- }), /* @__PURE__ */ G("button", {
1578
+ }), /* @__PURE__ */ W("button", {
1579
1579
  type: "button",
1580
1580
  className: "flex items-center gap-1 rounded px-2 py-1 text-xs text-action-primary-text hover:bg-action-primary-bg-subtle transition-colors",
1581
1581
  onClick: () => {
@@ -1584,11 +1584,11 @@ var Ke = [
1584
1584
  u(!0), setTimeout(() => u(!1), 2e3);
1585
1585
  });
1586
1586
  },
1587
- children: [W(l ? I : ve, { size: 12 }), l ? i("devportal.copied", "Copied!") : i("devportal.copyLink", "Copy Link")]
1587
+ children: [U(l ? F : ve, { size: 12 }), l ? i("devportal.copied", "Copied!") : i("devportal.copyLink", "Copy Link")]
1588
1588
  })]
1589
1589
  })
1590
1590
  ] })]
1591
- }), /* @__PURE__ */ W("button", {
1591
+ }), /* @__PURE__ */ U("button", {
1592
1592
  type: "button",
1593
1593
  disabled: o || c || !e.manifest,
1594
1594
  title: e.manifest ? void 0 : i("devportal.shareWorkflow.noManifestHint", "Add a workflow manifest before sharing"),
@@ -1596,67 +1596,67 @@ var Ke = [
1596
1596
  e.visibility === "UNLISTED" ? s({ variables: { id: t } }).then(() => n()) : a({ variables: { id: t } }).then(() => n());
1597
1597
  },
1598
1598
  className: `flex-shrink-0 rounded-full px-3 py-1.5 text-xs font-medium transition-colors ${e.visibility === "UNLISTED" ? "border border-status-error-bg text-status-error-text hover:bg-status-error-bg-subtle" : "bg-action-primary-bg text-text-on-action hover:opacity-90 disabled:opacity-50"}`,
1599
- children: o || c ? /* @__PURE__ */ W(z, {
1599
+ children: o || c ? /* @__PURE__ */ U(R, {
1600
1600
  size: 12,
1601
1601
  className: "animate-spin"
1602
1602
  }) : e.visibility === "UNLISTED" ? i("devportal.shareWorkflow.stopSharing", "Stop Sharing") : i("devportal.shareWorkflow.share", "Share Link")
1603
1603
  })]
1604
1604
  })
1605
- }), /* @__PURE__ */ G("div", {
1605
+ }), /* @__PURE__ */ W("div", {
1606
1606
  className: "grid gap-6 lg:grid-cols-3",
1607
- children: [/* @__PURE__ */ G("div", {
1607
+ children: [/* @__PURE__ */ W("div", {
1608
1608
  className: "lg:col-span-2 space-y-6",
1609
1609
  children: [
1610
- /* @__PURE__ */ W(Be, { children: /* @__PURE__ */ G("div", {
1610
+ /* @__PURE__ */ U(Be, { children: /* @__PURE__ */ W("div", {
1611
1611
  className: "grid gap-4 sm:grid-cols-4",
1612
1612
  children: [
1613
- /* @__PURE__ */ W(Z, {
1613
+ /* @__PURE__ */ U(Z, {
1614
1614
  label: i("devportal.totalInstalls", "Total Installs"),
1615
1615
  value: e.installCount.toLocaleString()
1616
1616
  }),
1617
- /* @__PURE__ */ W(Z, {
1617
+ /* @__PURE__ */ U(Z, {
1618
1618
  label: i("devportal.activeInstalls", "Active Installs"),
1619
1619
  value: e.activeInstallCount.toLocaleString()
1620
1620
  }),
1621
- /* @__PURE__ */ W(Z, {
1621
+ /* @__PURE__ */ U(Z, {
1622
1622
  label: i("devportal.averageRating", "Average Rating"),
1623
1623
  value: e.averageRating ? `${e.averageRating.toFixed(1)} ★` : i("devportal.notAvailable", "N/A")
1624
1624
  }),
1625
- /* @__PURE__ */ W(Z, {
1625
+ /* @__PURE__ */ U(Z, {
1626
1626
  label: i("devportal.reviews", "Reviews"),
1627
1627
  value: e.reviewCount.toString()
1628
1628
  })
1629
1629
  ]
1630
1630
  }) }),
1631
- /* @__PURE__ */ W(S, {
1631
+ /* @__PURE__ */ U(S, {
1632
1632
  title: i("devportal.description", "Description"),
1633
- children: e.description ? /* @__PURE__ */ W(fe, {
1633
+ children: e.description ? /* @__PURE__ */ U(fe, {
1634
1634
  className: "prose prose-sm max-w-none",
1635
1635
  children: e.description
1636
- }) : /* @__PURE__ */ W("p", {
1636
+ }) : /* @__PURE__ */ U("p", {
1637
1637
  className: "text-sm text-text-secondary",
1638
1638
  children: i("devportal.noDescriptionProvided", "No description provided.")
1639
1639
  })
1640
1640
  }),
1641
- /* @__PURE__ */ W(S, {
1641
+ /* @__PURE__ */ U(S, {
1642
1642
  title: i("devportal.tagsAndKeywords", "Tags & Keywords"),
1643
- children: /* @__PURE__ */ G("div", {
1643
+ children: /* @__PURE__ */ W("div", {
1644
1644
  className: "space-y-3",
1645
- children: [e.tags.length > 0 && /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("p", {
1645
+ children: [e.tags.length > 0 && /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("p", {
1646
1646
  className: "text-xs text-text-secondary mb-2",
1647
1647
  children: i("devportal.tags", "Tags")
1648
- }), /* @__PURE__ */ W("div", {
1648
+ }), /* @__PURE__ */ U("div", {
1649
1649
  className: "flex flex-wrap gap-2",
1650
- children: e.tags.map((e) => /* @__PURE__ */ W("span", {
1650
+ children: e.tags.map((e) => /* @__PURE__ */ U("span", {
1651
1651
  className: "rounded-full bg-action-primary-bg/10 px-3 py-1 text-xs font-medium text-primary",
1652
1652
  children: e
1653
1653
  }, e))
1654
- })] }), e.keywords.length > 0 && /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("p", {
1654
+ })] }), e.keywords.length > 0 && /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("p", {
1655
1655
  className: "text-xs text-text-secondary mb-2",
1656
1656
  children: i("devportal.keywords", "Keywords")
1657
- }), /* @__PURE__ */ W("div", {
1657
+ }), /* @__PURE__ */ U("div", {
1658
1658
  className: "flex flex-wrap gap-2",
1659
- children: e.keywords.map((e) => /* @__PURE__ */ W("span", {
1659
+ children: e.keywords.map((e) => /* @__PURE__ */ U("span", {
1660
1660
  className: "rounded-full bg-bg-sunken px-3 py-1 text-xs",
1661
1661
  children: e
1662
1662
  }, e))
@@ -1664,14 +1664,14 @@ var Ke = [
1664
1664
  })
1665
1665
  })
1666
1666
  ]
1667
- }), /* @__PURE__ */ G("div", {
1667
+ }), /* @__PURE__ */ W("div", {
1668
1668
  className: "space-y-6",
1669
- children: [/* @__PURE__ */ W(S, {
1669
+ children: [/* @__PURE__ */ U(S, {
1670
1670
  title: i("devportal.details", "Details"),
1671
- children: /* @__PURE__ */ W(ne, { items: [
1671
+ children: /* @__PURE__ */ U(ne, { items: [
1672
1672
  {
1673
1673
  label: i("devportal.appId", "App ID"),
1674
- value: /* @__PURE__ */ W("code", {
1674
+ value: /* @__PURE__ */ U("code", {
1675
1675
  className: "text-xs",
1676
1676
  children: e.id
1677
1677
  })
@@ -1707,32 +1707,32 @@ var Ke = [
1707
1707
  value: e.publishedAt ? new Date(e.publishedAt).toLocaleDateString() : i("devportal.notPublished", "Not published")
1708
1708
  }
1709
1709
  ] })
1710
- }), /* @__PURE__ */ W(S, {
1710
+ }), /* @__PURE__ */ U(S, {
1711
1711
  title: i("devportal.links", "Links"),
1712
- children: /* @__PURE__ */ G("div", {
1712
+ children: /* @__PURE__ */ W("div", {
1713
1713
  className: "space-y-2",
1714
1714
  children: [
1715
- e.websiteUrl && /* @__PURE__ */ W(Q, {
1715
+ e.websiteUrl && /* @__PURE__ */ U(Q, {
1716
1716
  label: i("devportal.website", "Website"),
1717
1717
  url: e.websiteUrl
1718
1718
  }),
1719
- e.documentationUrl && /* @__PURE__ */ W(Q, {
1719
+ e.documentationUrl && /* @__PURE__ */ U(Q, {
1720
1720
  label: i("devportal.documentation", "Documentation"),
1721
1721
  url: e.documentationUrl
1722
1722
  }),
1723
- e.supportUrl && /* @__PURE__ */ W(Q, {
1723
+ e.supportUrl && /* @__PURE__ */ U(Q, {
1724
1724
  label: i("devportal.support", "Support"),
1725
1725
  url: e.supportUrl
1726
1726
  }),
1727
- e.githubUrl && /* @__PURE__ */ W(Q, {
1727
+ e.githubUrl && /* @__PURE__ */ U(Q, {
1728
1728
  label: i("devportal.github", "GitHub"),
1729
1729
  url: e.githubUrl
1730
1730
  }),
1731
- e.privacyPolicyUrl && /* @__PURE__ */ W(Q, {
1731
+ e.privacyPolicyUrl && /* @__PURE__ */ U(Q, {
1732
1732
  label: i("devportal.privacyPolicy", "Privacy Policy"),
1733
1733
  url: e.privacyPolicyUrl
1734
1734
  }),
1735
- e.termsOfServiceUrl && /* @__PURE__ */ W(Q, {
1735
+ e.termsOfServiceUrl && /* @__PURE__ */ U(Q, {
1736
1736
  label: i("devportal.termsOfService", "Terms of Service"),
1737
1737
  url: e.termsOfServiceUrl
1738
1738
  })
@@ -1743,15 +1743,15 @@ var Ke = [
1743
1743
  })]
1744
1744
  });
1745
1745
  }, at = ({ appId: e, webhooks: t, onNavigate: n }) => {
1746
- let { t: i } = P(), a = (e, t) => {
1746
+ let { t: i } = G(), a = (e, t) => {
1747
1747
  let n = i(e);
1748
1748
  return n === e ? t : n;
1749
1749
  };
1750
- return /* @__PURE__ */ G("div", {
1750
+ return /* @__PURE__ */ W("div", {
1751
1751
  className: "space-y-6",
1752
- children: [/* @__PURE__ */ G("div", {
1752
+ children: [/* @__PURE__ */ W("div", {
1753
1753
  className: "flex items-center justify-between",
1754
- children: [/* @__PURE__ */ G("p", {
1754
+ children: [/* @__PURE__ */ W("p", {
1755
1755
  className: "text-sm text-text-secondary",
1756
1756
  children: [
1757
1757
  t.length,
@@ -1760,81 +1760,81 @@ var Ke = [
1760
1760
  " ",
1761
1761
  a("devportal.configured", "configured")
1762
1762
  ]
1763
- }), /* @__PURE__ */ G("button", {
1763
+ }), /* @__PURE__ */ W("button", {
1764
1764
  onClick: () => n(`/apps/${e}/webhooks/new`),
1765
1765
  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",
1766
- children: [/* @__PURE__ */ W(B, { size: 16 }), a("devportal.addWebhook", "Add Webhook")]
1766
+ children: [/* @__PURE__ */ U(z, { size: 16 }), a("devportal.addWebhook", "Add Webhook")]
1767
1767
  })]
1768
- }), t.length > 0 ? /* @__PURE__ */ W("div", {
1768
+ }), t.length > 0 ? /* @__PURE__ */ U("div", {
1769
1769
  className: "space-y-4",
1770
- children: t.map((t) => /* @__PURE__ */ G("div", {
1770
+ children: t.map((t) => /* @__PURE__ */ W("div", {
1771
1771
  className: "rounded-card border border-border-seam bg-bg-surface p-4 space-y-4 shadow-[var(--shadow-pop)]",
1772
1772
  children: [
1773
- /* @__PURE__ */ G("div", {
1773
+ /* @__PURE__ */ W("div", {
1774
1774
  className: "flex items-start justify-between",
1775
- children: [/* @__PURE__ */ G("div", { children: [/* @__PURE__ */ G("div", {
1775
+ children: [/* @__PURE__ */ W("div", { children: [/* @__PURE__ */ W("div", {
1776
1776
  className: "flex items-center gap-2",
1777
- children: [/* @__PURE__ */ W("h3", {
1777
+ children: [/* @__PURE__ */ U("h3", {
1778
1778
  className: "font-medium",
1779
1779
  children: t.name
1780
- }), /* @__PURE__ */ W(T, {
1780
+ }), /* @__PURE__ */ U(T, {
1781
1781
  status: t.status,
1782
1782
  type: "webhook"
1783
1783
  })]
1784
- }), t.description && /* @__PURE__ */ W("p", {
1784
+ }), t.description && /* @__PURE__ */ U("p", {
1785
1785
  className: "text-sm text-text-secondary mt-1",
1786
1786
  children: t.description
1787
- })] }), /* @__PURE__ */ W("button", {
1787
+ })] }), /* @__PURE__ */ U("button", {
1788
1788
  onClick: () => n(`/apps/${e}/webhooks/${t.id}`),
1789
1789
  className: "rounded-md p-1 hover:bg-bg-sunken",
1790
- children: /* @__PURE__ */ W(Ee, { size: 20 })
1790
+ children: /* @__PURE__ */ U(Ee, { size: 20 })
1791
1791
  })]
1792
1792
  }),
1793
- /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("p", {
1793
+ /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("p", {
1794
1794
  className: "text-xs text-text-secondary mb-1",
1795
1795
  children: a("devportal.endpointUrl", "Endpoint URL")
1796
- }), /* @__PURE__ */ W("code", {
1796
+ }), /* @__PURE__ */ U("code", {
1797
1797
  className: "text-sm bg-bg-sunken px-2 py-1 rounded block truncate",
1798
1798
  children: t.url
1799
1799
  })] }),
1800
- /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("p", {
1800
+ /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("p", {
1801
1801
  className: "text-xs text-text-secondary mb-2",
1802
1802
  children: a("devportal.events", "Events")
1803
- }), /* @__PURE__ */ W("div", {
1803
+ }), /* @__PURE__ */ U("div", {
1804
1804
  className: "flex flex-wrap gap-2",
1805
- children: t.events.map((e) => /* @__PURE__ */ W("span", {
1805
+ children: t.events.map((e) => /* @__PURE__ */ U("span", {
1806
1806
  className: "rounded-full bg-bg-sunken px-2 py-0.5 text-xs",
1807
1807
  children: e
1808
1808
  }, e))
1809
1809
  })] }),
1810
- /* @__PURE__ */ G("div", {
1810
+ /* @__PURE__ */ W("div", {
1811
1811
  className: "grid gap-4 sm:grid-cols-4 text-sm",
1812
1812
  children: [
1813
- /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("p", {
1813
+ /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("p", {
1814
1814
  className: "text-xs text-text-secondary",
1815
1815
  children: a("devportal.success", "Success")
1816
- }), /* @__PURE__ */ W("p", {
1816
+ }), /* @__PURE__ */ U("p", {
1817
1817
  className: "font-medium text-status-success-text",
1818
1818
  children: t.successCount.toLocaleString()
1819
1819
  })] }),
1820
- /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("p", {
1820
+ /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("p", {
1821
1821
  className: "text-xs text-text-secondary",
1822
1822
  children: a("devportal.failed", "Failed")
1823
- }), /* @__PURE__ */ W("p", {
1823
+ }), /* @__PURE__ */ U("p", {
1824
1824
  className: "font-medium text-status-error-text",
1825
1825
  children: t.failureCount.toLocaleString()
1826
1826
  })] }),
1827
- /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("p", {
1827
+ /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("p", {
1828
1828
  className: "text-xs text-text-secondary",
1829
1829
  children: a("devportal.successRate", "Success Rate")
1830
- }), /* @__PURE__ */ G("p", {
1830
+ }), /* @__PURE__ */ W("p", {
1831
1831
  className: "font-medium",
1832
1832
  children: [t.successCount + t.failureCount > 0 ? (t.successCount / (t.successCount + t.failureCount) * 100).toFixed(1) : "0.0", "%"]
1833
1833
  })] }),
1834
- /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("p", {
1834
+ /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("p", {
1835
1835
  className: "text-xs text-text-secondary",
1836
1836
  children: a("devportal.lastTriggered", "Last Triggered")
1837
- }), /* @__PURE__ */ W("p", {
1837
+ }), /* @__PURE__ */ U("p", {
1838
1838
  className: "font-medium",
1839
1839
  children: t.lastTriggeredAt ? new Date(t.lastTriggeredAt).toLocaleString() : a("devportal.never", "Never")
1840
1840
  })] })
@@ -1842,29 +1842,29 @@ var Ke = [
1842
1842
  })
1843
1843
  ]
1844
1844
  }, t.id))
1845
- }) : /* @__PURE__ */ W(r, {
1845
+ }) : /* @__PURE__ */ U(r, {
1846
1846
  illustration: "empty-notifications",
1847
- icon: /* @__PURE__ */ W(H, { size: 32 }),
1847
+ icon: /* @__PURE__ */ U(V, { size: 32 }),
1848
1848
  title: a("devportal.noWebhooks", "No webhooks"),
1849
1849
  description: a("devportal.noWebhooksDescription", "Add a webhook to receive event notifications"),
1850
- action: /* @__PURE__ */ G("button", {
1850
+ action: /* @__PURE__ */ W("button", {
1851
1851
  onClick: () => n(`/apps/${e}/webhooks/new`),
1852
1852
  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",
1853
- children: [/* @__PURE__ */ W(B, { size: 16 }), a("devportal.addWebhook", "Add Webhook")]
1853
+ children: [/* @__PURE__ */ U(z, { size: 16 }), a("devportal.addWebhook", "Add Webhook")]
1854
1854
  })
1855
1855
  })]
1856
1856
  });
1857
1857
  }, ot = ({ appName: e, delegations: n, onGrantDelegation: i, onRevokeDelegation: a, selectedDelegationIds: o, onToggleSelectDelegation: s, onToggleAllDelegations: c, onClearSelection: l, onRevokeSelected: u, allVisibleSelected: d, partiallySelected: f }) => {
1858
- let { t: p } = P(), m = (e, t) => {
1858
+ let { t: p } = G(), m = (e, t) => {
1859
1859
  let n = p(e);
1860
1860
  return n === e ? t : n;
1861
1861
  }, h = n.filter((e) => e.status === "ACTIVE"), g = n.filter((e) => e.status !== "ACTIVE");
1862
- return /* @__PURE__ */ G("div", {
1862
+ return /* @__PURE__ */ W("div", {
1863
1863
  className: "space-y-6",
1864
1864
  children: [
1865
- /* @__PURE__ */ G("div", {
1865
+ /* @__PURE__ */ W("div", {
1866
1866
  className: "flex items-center justify-between",
1867
- children: [/* @__PURE__ */ G("div", { children: [/* @__PURE__ */ G("p", {
1867
+ children: [/* @__PURE__ */ W("div", { children: [/* @__PURE__ */ W("p", {
1868
1868
  className: "text-sm text-text-secondary",
1869
1869
  children: [
1870
1870
  n.length,
@@ -1875,7 +1875,7 @@ var Ke = [
1875
1875
  " ",
1876
1876
  e
1877
1877
  ]
1878
- }), h.length > 0 && /* @__PURE__ */ G("p", {
1878
+ }), h.length > 0 && /* @__PURE__ */ W("p", {
1879
1879
  className: "text-xs text-text-secondary mt-0.5",
1880
1880
  children: [
1881
1881
  h.length,
@@ -1887,44 +1887,44 @@ var Ke = [
1887
1887
  " ",
1888
1888
  m("devportal.revokedExpired", "revoked/expired")
1889
1889
  ]
1890
- })] }), /* @__PURE__ */ G("button", {
1890
+ })] }), /* @__PURE__ */ W("button", {
1891
1891
  onClick: i,
1892
1892
  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",
1893
- children: [/* @__PURE__ */ W(B, { size: 16 }), m("devportal.grantDelegation", "Grant Delegation")]
1893
+ children: [/* @__PURE__ */ U(z, { size: 16 }), m("devportal.grantDelegation", "Grant Delegation")]
1894
1894
  })]
1895
1895
  }),
1896
- h.length > 0 && /* @__PURE__ */ W("div", {
1896
+ h.length > 0 && /* @__PURE__ */ U("div", {
1897
1897
  className: "rounded-card border border-border-seam bg-bg-surface p-4",
1898
- children: /* @__PURE__ */ G("div", {
1898
+ children: /* @__PURE__ */ W("div", {
1899
1899
  className: "flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between",
1900
- children: [/* @__PURE__ */ G("div", {
1900
+ children: [/* @__PURE__ */ W("div", {
1901
1901
  className: "flex flex-wrap items-center gap-3",
1902
- children: [/* @__PURE__ */ G("div", {
1902
+ children: [/* @__PURE__ */ W("div", {
1903
1903
  className: "flex items-center gap-2",
1904
- children: [/* @__PURE__ */ W(D, {
1904
+ children: [/* @__PURE__ */ U(D, {
1905
1905
  checked: d,
1906
1906
  indeterminate: f,
1907
1907
  onChange: c,
1908
1908
  ariaLabel: m("devportal.selectAllActiveDelegations", "Select all active app delegations")
1909
- }), /* @__PURE__ */ W("span", {
1909
+ }), /* @__PURE__ */ U("span", {
1910
1910
  className: "text-sm font-medium",
1911
1911
  children: m("devportal.selectAllActive", "Select all active")
1912
1912
  })]
1913
- }), o.size > 0 && /* @__PURE__ */ W("button", {
1913
+ }), o.size > 0 && /* @__PURE__ */ U("button", {
1914
1914
  onClick: l,
1915
1915
  className: "text-sm text-text-secondary hover:text-text-primary",
1916
1916
  children: m("devportal.clearSelection", "Clear selection")
1917
1917
  })]
1918
- }), /* @__PURE__ */ G("div", {
1918
+ }), /* @__PURE__ */ W("div", {
1919
1919
  className: "flex flex-wrap items-center gap-2",
1920
- children: [/* @__PURE__ */ G("span", {
1920
+ children: [/* @__PURE__ */ W("span", {
1921
1921
  className: "rounded-full bg-bg-sunken px-3 py-1 text-sm font-medium text-text-secondary",
1922
1922
  children: [
1923
1923
  o.size,
1924
1924
  " ",
1925
1925
  m("devportal.selected", "selected")
1926
1926
  ]
1927
- }), /* @__PURE__ */ G("button", {
1927
+ }), /* @__PURE__ */ W("button", {
1928
1928
  onClick: u,
1929
1929
  disabled: o.size === 0,
1930
1930
  className: "rounded-md border border-status-error-bg px-3 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg-subtle disabled:cursor-not-allowed disabled:opacity-50",
@@ -1933,33 +1933,33 @@ var Ke = [
1933
1933
  })]
1934
1934
  })
1935
1935
  }),
1936
- n.length > 0 ? /* @__PURE__ */ W("div", {
1936
+ n.length > 0 ? /* @__PURE__ */ U("div", {
1937
1937
  className: "space-y-4",
1938
- children: n.map((e) => /* @__PURE__ */ G("div", {
1938
+ children: n.map((e) => /* @__PURE__ */ W("div", {
1939
1939
  className: "rounded-card border border-border-seam bg-bg-surface p-4 space-y-4 shadow-[var(--shadow-pop)]",
1940
1940
  children: [
1941
- /* @__PURE__ */ G("div", {
1941
+ /* @__PURE__ */ W("div", {
1942
1942
  className: "flex items-start justify-between",
1943
- children: [/* @__PURE__ */ G("div", {
1943
+ children: [/* @__PURE__ */ W("div", {
1944
1944
  className: "flex items-start gap-3",
1945
- children: [e.status === "ACTIVE" && /* @__PURE__ */ W("div", {
1945
+ children: [e.status === "ACTIVE" && /* @__PURE__ */ U("div", {
1946
1946
  onClick: (e) => e.stopPropagation(),
1947
- children: /* @__PURE__ */ W(D, {
1947
+ children: /* @__PURE__ */ U(D, {
1948
1948
  checked: o.has(e.id),
1949
1949
  onChange: (t) => s(e.id, t),
1950
1950
  ariaLabel: `Select delegation ${e.id}`,
1951
1951
  className: "mt-1"
1952
1952
  })
1953
- }), /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ G("div", {
1953
+ }), /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ W("div", {
1954
1954
  className: "flex items-center gap-2",
1955
- children: [/* @__PURE__ */ G("h3", {
1955
+ children: [/* @__PURE__ */ W("h3", {
1956
1956
  className: "font-medium",
1957
1957
  children: ["Delegation #", e.id.slice(0, 8)]
1958
- }), /* @__PURE__ */ W("span", {
1958
+ }), /* @__PURE__ */ U("span", {
1959
1959
  className: t("rounded-full px-2 py-0.5 text-xs font-medium", qe[e.status]),
1960
1960
  children: e.status
1961
1961
  })]
1962
- }), /* @__PURE__ */ G("p", {
1962
+ }), /* @__PURE__ */ W("p", {
1963
1963
  className: "text-sm text-text-secondary mt-1",
1964
1964
  children: [
1965
1965
  m("devportal.granted", "Granted"),
@@ -1971,55 +1971,55 @@ var Ke = [
1971
1971
  e.grantedBy === e.userId ? m("devportal.you", "you") : e.grantedBy.slice(0, 8)
1972
1972
  ]
1973
1973
  })] })]
1974
- }), e.status === "ACTIVE" && /* @__PURE__ */ G("button", {
1974
+ }), e.status === "ACTIVE" && /* @__PURE__ */ W("button", {
1975
1975
  onClick: () => a(e.id),
1976
1976
  className: "inline-flex items-center gap-1.5 rounded-md border border-border-subtle px-3 py-1.5 text-xs font-medium text-status-error-text hover:bg-status-error-bg-subtle transition-colors",
1977
- children: [/* @__PURE__ */ W(Le, { size: 14 }), m("devportal.revoke", "Revoke")]
1977
+ children: [/* @__PURE__ */ U(Le, { size: 14 }), m("devportal.revoke", "Revoke")]
1978
1978
  })]
1979
1979
  }),
1980
- /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("p", {
1980
+ /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("p", {
1981
1981
  className: "text-xs text-text-secondary mb-2",
1982
1982
  children: m("devportal.grantedScopes", "Granted Scopes")
1983
- }), /* @__PURE__ */ W("div", {
1983
+ }), /* @__PURE__ */ U("div", {
1984
1984
  className: "flex flex-wrap gap-2",
1985
- children: e.scopes.map((e) => /* @__PURE__ */ W("span", {
1985
+ children: e.scopes.map((e) => /* @__PURE__ */ U("span", {
1986
1986
  className: "rounded-full bg-status-success-bg-subtle px-2 py-0.5 text-xs text-status-success-text",
1987
1987
  children: e
1988
1988
  }, e))
1989
1989
  })] }),
1990
- e.workspaceIds.length > 0 && /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("p", {
1990
+ e.workspaceIds.length > 0 && /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("p", {
1991
1991
  className: "text-xs text-text-secondary mb-2",
1992
1992
  children: m("devportal.workspaceScope", "Workspace Scope")
1993
- }), /* @__PURE__ */ W("div", {
1993
+ }), /* @__PURE__ */ U("div", {
1994
1994
  className: "flex flex-wrap gap-2",
1995
- children: e.workspaceIds.map((e) => /* @__PURE__ */ W("code", {
1995
+ children: e.workspaceIds.map((e) => /* @__PURE__ */ U("code", {
1996
1996
  className: "rounded bg-bg-sunken px-2 py-0.5 text-xs",
1997
1997
  children: e
1998
1998
  }, e))
1999
1999
  })] }),
2000
- /* @__PURE__ */ G("div", {
2000
+ /* @__PURE__ */ W("div", {
2001
2001
  className: "flex items-center gap-4 text-xs text-text-secondary",
2002
2002
  children: [
2003
- e.expiresAt && /* @__PURE__ */ G("span", {
2003
+ e.expiresAt && /* @__PURE__ */ W("span", {
2004
2004
  className: "flex items-center gap-1",
2005
2005
  children: [
2006
- /* @__PURE__ */ W(_e, { size: 12 }),
2006
+ /* @__PURE__ */ U(_e, { size: 12 }),
2007
2007
  m("devportal.expires", "Expires"),
2008
2008
  " ",
2009
2009
  new Date(e.expiresAt).toLocaleDateString()
2010
2010
  ]
2011
2011
  }),
2012
- !e.expiresAt && e.status === "ACTIVE" && /* @__PURE__ */ G("span", {
2012
+ !e.expiresAt && e.status === "ACTIVE" && /* @__PURE__ */ W("span", {
2013
2013
  className: "flex items-center gap-1",
2014
- children: [/* @__PURE__ */ W(he, {
2014
+ children: [/* @__PURE__ */ U(he, {
2015
2015
  size: 12,
2016
2016
  className: "text-status-success-text"
2017
2017
  }), m("devportal.noExpiration", "No expiration")]
2018
2018
  }),
2019
- e.revokedAt && /* @__PURE__ */ G("span", {
2019
+ e.revokedAt && /* @__PURE__ */ W("span", {
2020
2020
  className: "flex items-center gap-1",
2021
2021
  children: [
2022
- /* @__PURE__ */ W(Le, {
2022
+ /* @__PURE__ */ U(Le, {
2023
2023
  size: 12,
2024
2024
  className: "text-status-error-text"
2025
2025
  }),
@@ -2032,53 +2032,53 @@ var Ke = [
2032
2032
  })
2033
2033
  ]
2034
2034
  }, e.id))
2035
- }) : /* @__PURE__ */ W(r, {
2035
+ }) : /* @__PURE__ */ U(r, {
2036
2036
  illustration: "empty-people",
2037
- icon: /* @__PURE__ */ W(Pe, { size: 32 }),
2037
+ icon: /* @__PURE__ */ U(Pe, { size: 32 }),
2038
2038
  title: m("devportal.noDelegations", "No delegations"),
2039
2039
  description: m("devportal.noDelegationsDescription", "Grant a delegation to allow this app to act on your behalf"),
2040
- action: /* @__PURE__ */ G("button", {
2040
+ action: /* @__PURE__ */ W("button", {
2041
2041
  onClick: i,
2042
2042
  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",
2043
- children: [/* @__PURE__ */ W(B, { size: 16 }), m("devportal.grantDelegation", "Grant Delegation")]
2043
+ children: [/* @__PURE__ */ U(z, { size: 16 }), m("devportal.grantDelegation", "Grant Delegation")]
2044
2044
  })
2045
2045
  })
2046
2046
  ]
2047
2047
  });
2048
2048
  }, st = ({ analytics: e }) => {
2049
- let { t } = P(), n = (e, n) => {
2049
+ let { t } = G(), n = (e, n) => {
2050
2050
  let r = t(e);
2051
2051
  return r === e ? n : r;
2052
2052
  }, i = e[0], a = e[1], o = (e, t) => t ? (e - t) / t * 100 : 0;
2053
- return /* @__PURE__ */ G("div", {
2053
+ return /* @__PURE__ */ W("div", {
2054
2054
  className: "space-y-6",
2055
- children: [/* @__PURE__ */ G("div", {
2055
+ children: [/* @__PURE__ */ W("div", {
2056
2056
  className: "grid gap-4 sm:grid-cols-4",
2057
2057
  children: [
2058
- /* @__PURE__ */ W(Z, {
2058
+ /* @__PURE__ */ U(Z, {
2059
2059
  label: n("devportal.activeUsers", "Active Users"),
2060
2060
  value: i?.activeUsers.toLocaleString() || "0",
2061
2061
  trend: a ? o(i.activeUsers, a.activeUsers) : void 0
2062
2062
  }),
2063
- /* @__PURE__ */ W(Z, {
2063
+ /* @__PURE__ */ U(Z, {
2064
2064
  label: n("devportal.apiCalls", "API Calls"),
2065
2065
  value: i ? `${(i.apiCalls / 1e3).toFixed(1)}K` : "0",
2066
2066
  trend: a ? o(i.apiCalls, a.apiCalls) : void 0
2067
2067
  }),
2068
- /* @__PURE__ */ W(Z, {
2068
+ /* @__PURE__ */ U(Z, {
2069
2069
  label: n("devportal.avgResponseTime", "Avg Response Time"),
2070
2070
  value: i?.avgResponseTime ? `${i.avgResponseTime}ms` : n("devportal.notAvailable", "N/A"),
2071
2071
  trend: a && i?.avgResponseTime ? -o(i.avgResponseTime, a.avgResponseTime || 1) : void 0
2072
2072
  }),
2073
- /* @__PURE__ */ W(Z, {
2073
+ /* @__PURE__ */ U(Z, {
2074
2074
  label: n("devportal.errorRate", "Error Rate"),
2075
2075
  value: i && i.apiCalls > 0 ? `${(i.errors / i.apiCalls * 100).toFixed(2)}%` : "0%",
2076
2076
  trend: a && i && i.apiCalls > 0 && a.apiCalls > 0 ? -o(i.errors / i.apiCalls, a.errors / a.apiCalls) : void 0
2077
2077
  })
2078
2078
  ]
2079
- }), /* @__PURE__ */ W(S, {
2079
+ }), /* @__PURE__ */ U(S, {
2080
2080
  title: n("devportal.dailyBreakdown", "Daily Breakdown"),
2081
- children: e.length > 0 ? /* @__PURE__ */ W(te, {
2081
+ children: e.length > 0 ? /* @__PURE__ */ U(te, {
2082
2082
  data: e,
2083
2083
  keyField: "id",
2084
2084
  columns: [
@@ -2118,16 +2118,16 @@ var Ke = [
2118
2118
  render: (e) => e.sessions.toLocaleString()
2119
2119
  }
2120
2120
  ]
2121
- }) : /* @__PURE__ */ W(r, {
2121
+ }) : /* @__PURE__ */ U(r, {
2122
2122
  illustration: "empty-data",
2123
- icon: /* @__PURE__ */ W(me, { size: 32 }),
2123
+ icon: /* @__PURE__ */ U(me, { size: 32 }),
2124
2124
  title: n("devportal.noAnalyticsData", "No analytics data"),
2125
2125
  description: n("devportal.noAnalyticsDataDescription", "Analytics data will appear here once the application starts receiving traffic.")
2126
2126
  })
2127
2127
  })]
2128
2128
  });
2129
2129
  }, ct = "# Sample query — replace with your own\n# Note: introspection is disabled on this gateway for security.\n# Use a real query from your app's API schema instead.\nquery GetCurrentUser {\n currentUser {\n id\n email\n }\n}", lt = ({ app: t }) => {
2130
- let { apiGatewayUrl: n, workspacesGatewayUrl: r, authToken: i } = e(), { t: a } = P(), o = (e, t) => {
2130
+ let { apiGatewayUrl: n, workspacesGatewayUrl: r, authToken: i } = e(), { t: a } = G(), o = (e, t) => {
2131
2131
  let n = a(e);
2132
2132
  return n === e ? t : n;
2133
2133
  }, [s, c] = N(ct), [l, u] = N("{}"), [d, f] = N(""), [p, m] = N(!1), [h, g] = N(`${n || "https://gw-global.local.burdenoff.com"}/global/graphql`), [_, v] = N(i || ""), [y, b] = N(!1), x = A(async () => {
@@ -2164,21 +2164,21 @@ var Ke = [
2164
2164
  ]), S = A(() => {
2165
2165
  i && v(i), b(!0);
2166
2166
  }, [i]);
2167
- return /* @__PURE__ */ G("div", {
2167
+ return /* @__PURE__ */ W("div", {
2168
2168
  className: "space-y-4",
2169
2169
  children: [
2170
- /* @__PURE__ */ G("div", {
2170
+ /* @__PURE__ */ W("div", {
2171
2171
  className: "flex items-center justify-between",
2172
- children: [/* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("h3", {
2172
+ children: [/* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("h3", {
2173
2173
  className: "text-lg font-semibold",
2174
2174
  children: o("devportal.apiPlayground", "API Playground")
2175
- }), /* @__PURE__ */ G("p", {
2175
+ }), /* @__PURE__ */ W("p", {
2176
2176
  className: "text-sm text-text-secondary",
2177
2177
  children: [
2178
2178
  o("devportal.apiPlaygroundDescription", "Test GraphQL APIs in the context of"),
2179
2179
  " ",
2180
- /* @__PURE__ */ W("strong", { children: t.name }),
2181
- t.appId && /* @__PURE__ */ G("span", {
2180
+ /* @__PURE__ */ U("strong", { children: t.name }),
2181
+ t.appId && /* @__PURE__ */ W("span", {
2182
2182
  className: "ml-1 text-xs text-text-secondary",
2183
2183
  children: [
2184
2184
  "(OAuth App: ",
@@ -2187,39 +2187,39 @@ var Ke = [
2187
2187
  ]
2188
2188
  })
2189
2189
  ]
2190
- })] }), /* @__PURE__ */ G("button", {
2190
+ })] }), /* @__PURE__ */ W("button", {
2191
2191
  onClick: S,
2192
2192
  className: "flex items-center gap-2 rounded-md border px-3 py-1.5 text-sm font-medium hover:bg-accent transition-colors",
2193
- children: [/* @__PURE__ */ W(Ce, { size: 14 }), o("devportal.autoFillCredentials", "Auto-fill Credentials")]
2193
+ children: [/* @__PURE__ */ U(Ce, { size: 14 }), o("devportal.autoFillCredentials", "Auto-fill Credentials")]
2194
2194
  })]
2195
2195
  }),
2196
- y && /* @__PURE__ */ G("div", {
2196
+ y && /* @__PURE__ */ W("div", {
2197
2197
  className: "rounded-lg border bg-status-info-bg-subtle p-4 text-sm space-y-2",
2198
2198
  children: [
2199
- /* @__PURE__ */ W("p", {
2199
+ /* @__PURE__ */ U("p", {
2200
2200
  className: "font-medium text-status-info-text",
2201
2201
  children: o("devportal.authenticationGuide", "Authentication Guide")
2202
2202
  }),
2203
- /* @__PURE__ */ G("p", {
2203
+ /* @__PURE__ */ W("p", {
2204
2204
  className: "text-status-info-text",
2205
2205
  children: [
2206
2206
  o("devportal.authenticationGuideText", "Your current session token has been filled in. For app-level authentication (Client Credentials flow), use the"),
2207
2207
  " ",
2208
- /* @__PURE__ */ W("strong", { children: o("devportal.oauthClientsTab", "OAuth Clients") }),
2208
+ /* @__PURE__ */ U("strong", { children: o("devportal.oauthClientsTab", "OAuth Clients") }),
2209
2209
  " ",
2210
2210
  o("devportal.authenticationGuideText2", "tab to get the app's clientId and clientSecret, then call:")
2211
2211
  ]
2212
2212
  }),
2213
- /* @__PURE__ */ W("pre", {
2213
+ /* @__PURE__ */ U("pre", {
2214
2214
  className: "rounded bg-status-info-bg-subtle p-2 text-xs overflow-x-auto text-status-info-text",
2215
2215
  children: "mutation {\n authenticateApp(input: {\n clientId: \"<your-client-id>\"\n clientSecret: \"<your-client-secret>\"\n scopes: []\n }) {\n accessToken\n tokenType\n expiresIn\n }\n}"
2216
2216
  }),
2217
- /* @__PURE__ */ G("p", {
2217
+ /* @__PURE__ */ W("p", {
2218
2218
  className: "text-status-info-text",
2219
2219
  children: [
2220
2220
  o("devportal.useReturnedAccessToken", "Use the returned"),
2221
2221
  " ",
2222
- /* @__PURE__ */ W("code", {
2222
+ /* @__PURE__ */ U("code", {
2223
2223
  className: "bg-status-info-bg-subtle px-1 rounded",
2224
2224
  children: "accessToken"
2225
2225
  }),
@@ -2227,79 +2227,79 @@ var Ke = [
2227
2227
  o("devportal.asBearerToken", "as the Bearer token below.")
2228
2228
  ]
2229
2229
  }),
2230
- /* @__PURE__ */ W("button", {
2230
+ /* @__PURE__ */ U("button", {
2231
2231
  onClick: () => b(!1),
2232
2232
  className: "text-xs text-accent-blue hover:underline",
2233
2233
  children: o("devportal.dismiss", "Dismiss")
2234
2234
  })
2235
2235
  ]
2236
2236
  }),
2237
- /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("label", {
2237
+ /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("label", {
2238
2238
  className: "block text-sm font-medium mb-1",
2239
2239
  children: o("devportal.gatewayEndpoint", "Gateway Endpoint")
2240
- }), /* @__PURE__ */ G("div", {
2240
+ }), /* @__PURE__ */ W("div", {
2241
2241
  className: "flex gap-2",
2242
- children: [/* @__PURE__ */ W("input", {
2242
+ children: [/* @__PURE__ */ U("input", {
2243
2243
  type: "text",
2244
2244
  value: h,
2245
2245
  onChange: (e) => g(e.target.value),
2246
2246
  className: "flex-1 rounded-md border px-3 py-2 text-sm font-mono bg-bg-surface"
2247
- }), /* @__PURE__ */ G("select", {
2247
+ }), /* @__PURE__ */ W("select", {
2248
2248
  onChange: (e) => g(e.target.value),
2249
2249
  className: "rounded-md border px-3 py-2 text-sm bg-bg-surface",
2250
2250
  value: h,
2251
- children: [/* @__PURE__ */ W("option", {
2251
+ children: [/* @__PURE__ */ U("option", {
2252
2252
  value: `${n || "https://gw-global.local.burdenoff.com"}/global/graphql`,
2253
2253
  children: o("devportal.globalGateway", "Global Gateway")
2254
- }), /* @__PURE__ */ W("option", {
2254
+ }), /* @__PURE__ */ U("option", {
2255
2255
  value: `${r || "https://gw-wspace.local.burdenoff.com"}/workspaces/graphql`,
2256
2256
  children: o("devportal.workspaceGateway", "Workspace Gateway")
2257
2257
  })]
2258
2258
  })]
2259
2259
  })] }),
2260
- /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("label", {
2260
+ /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("label", {
2261
2261
  className: "block text-sm font-medium mb-1",
2262
2262
  children: o("devportal.bearerToken", "Bearer Token")
2263
- }), /* @__PURE__ */ W("input", {
2263
+ }), /* @__PURE__ */ U("input", {
2264
2264
  type: "password",
2265
2265
  value: _,
2266
2266
  onChange: (e) => v(e.target.value),
2267
2267
  placeholder: o("devportal.pasteAccessToken", "Paste access token here..."),
2268
2268
  className: "w-full rounded-md border px-3 py-2 text-sm font-mono bg-bg-surface"
2269
2269
  })] }),
2270
- /* @__PURE__ */ G("div", {
2270
+ /* @__PURE__ */ W("div", {
2271
2271
  className: "grid grid-cols-1 lg:grid-cols-2 gap-4",
2272
- children: [/* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("label", {
2272
+ children: [/* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("label", {
2273
2273
  className: "block text-sm font-medium mb-1",
2274
2274
  children: o("devportal.query", "Query")
2275
- }), /* @__PURE__ */ W("textarea", {
2275
+ }), /* @__PURE__ */ U("textarea", {
2276
2276
  value: s,
2277
2277
  onChange: (e) => c(e.target.value),
2278
2278
  className: "w-full h-64 rounded-md border px-3 py-2 text-sm font-mono bg-bg-surface resize-y",
2279
2279
  spellCheck: !1
2280
- })] }), /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("label", {
2280
+ })] }), /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("label", {
2281
2281
  className: "block text-sm font-medium mb-1",
2282
2282
  children: o("devportal.variablesJson", "Variables (JSON)")
2283
- }), /* @__PURE__ */ W("textarea", {
2283
+ }), /* @__PURE__ */ U("textarea", {
2284
2284
  value: l,
2285
2285
  onChange: (e) => u(e.target.value),
2286
2286
  className: "w-full h-64 rounded-md border px-3 py-2 text-sm font-mono bg-bg-surface resize-y",
2287
2287
  spellCheck: !1
2288
2288
  })] })]
2289
2289
  }),
2290
- /* @__PURE__ */ G("button", {
2290
+ /* @__PURE__ */ W("button", {
2291
2291
  onClick: x,
2292
2292
  disabled: p,
2293
2293
  className: "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",
2294
- children: [p ? /* @__PURE__ */ W(z, {
2294
+ children: [p ? /* @__PURE__ */ U(R, {
2295
2295
  size: 16,
2296
2296
  className: "animate-spin"
2297
- }) : /* @__PURE__ */ W(R, { size: 16 }), p ? o("devportal.executing", "Executing...") : o("devportal.executeQuery", "Execute Query")]
2297
+ }) : /* @__PURE__ */ U(L, { size: 16 }), p ? o("devportal.executing", "Executing...") : o("devportal.executeQuery", "Execute Query")]
2298
2298
  }),
2299
- d && /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("label", {
2299
+ d && /* @__PURE__ */ W("div", { children: [/* @__PURE__ */ U("label", {
2300
2300
  className: "block text-sm font-medium mb-1",
2301
2301
  children: o("devportal.response", "Response")
2302
- }), /* @__PURE__ */ W("pre", {
2302
+ }), /* @__PURE__ */ U("pre", {
2303
2303
  className: "w-full max-h-96 overflow-auto rounded-md border bg-bg-sunken p-4 text-xs font-mono",
2304
2304
  children: d
2305
2305
  })] })
@@ -2313,46 +2313,46 @@ var Ke = [
2313
2313
  r((await s(e)).downloadUrl);
2314
2314
  } catch {}
2315
2315
  }, [s, r]);
2316
- return /* @__PURE__ */ G("div", {
2316
+ return /* @__PURE__ */ W("div", {
2317
2317
  className: "space-y-1.5",
2318
2318
  children: [
2319
- /* @__PURE__ */ W("label", {
2319
+ /* @__PURE__ */ U("label", {
2320
2320
  className: "text-sm font-medium",
2321
2321
  children: e
2322
2322
  }),
2323
- /* @__PURE__ */ G("div", {
2323
+ /* @__PURE__ */ W("div", {
2324
2324
  className: "flex gap-3 items-start",
2325
- children: [/* @__PURE__ */ G("div", {
2325
+ children: [/* @__PURE__ */ W("div", {
2326
2326
  className: t("relative shrink-0 w-20 rounded-lg border border-border-subtle bg-bg-sunken overflow-hidden flex items-center justify-center", o),
2327
- children: [n && !f ? /* @__PURE__ */ W("img", {
2327
+ children: [n && !f ? /* @__PURE__ */ U("img", {
2328
2328
  src: n,
2329
2329
  alt: e,
2330
2330
  className: "w-full h-full object-cover",
2331
2331
  onError: () => p(!0)
2332
- }) : /* @__PURE__ */ W(V, {
2332
+ }) : /* @__PURE__ */ U(B, {
2333
2333
  size: 18,
2334
2334
  className: "text-text-secondary opacity-40"
2335
- }), c && /* @__PURE__ */ G("div", {
2335
+ }), c && /* @__PURE__ */ W("div", {
2336
2336
  className: "absolute inset-0 bg-bg-overlay flex flex-col items-center justify-center gap-1",
2337
- children: [/* @__PURE__ */ W(z, {
2337
+ children: [/* @__PURE__ */ U(R, {
2338
2338
  size: 14,
2339
2339
  className: "animate-spin text-white"
2340
- }), /* @__PURE__ */ G("span", {
2340
+ }), /* @__PURE__ */ W("span", {
2341
2341
  className: "text-white text-xs",
2342
2342
  children: [l, "%"]
2343
2343
  })]
2344
2344
  })]
2345
- }), /* @__PURE__ */ G("div", {
2345
+ }), /* @__PURE__ */ W("div", {
2346
2346
  className: "flex-1 space-y-1.5",
2347
2347
  children: [
2348
- /* @__PURE__ */ W("input", {
2348
+ /* @__PURE__ */ U("input", {
2349
2349
  type: "url",
2350
2350
  value: n,
2351
2351
  onChange: (e) => r(e.target.value),
2352
2352
  placeholder: "https://...",
2353
2353
  className: "w-full rounded-md border border-border-subtle bg-bg-input px-3 py-1.5 text-sm placeholder:text-text-placeholder focus:outline-none focus:ring-2 focus:ring-primary/30"
2354
2354
  }),
2355
- /* @__PURE__ */ W("input", {
2355
+ /* @__PURE__ */ U("input", {
2356
2356
  ref: d,
2357
2357
  type: "file",
2358
2358
  accept: a,
@@ -2362,21 +2362,21 @@ var Ke = [
2362
2362
  t && h(t), e.target.value = "";
2363
2363
  }
2364
2364
  }),
2365
- /* @__PURE__ */ G("button", {
2365
+ /* @__PURE__ */ W("button", {
2366
2366
  type: "button",
2367
2367
  disabled: c,
2368
2368
  onClick: () => d.current?.click(),
2369
2369
  className: "inline-flex items-center gap-1.5 rounded-md border px-2.5 py-1 text-xs font-medium hover:bg-bg-sunken transition-colors disabled:opacity-50",
2370
- children: [/* @__PURE__ */ W(V, { size: 11 }), c ? `Uploading… ${l}%` : "Upload image"]
2370
+ children: [/* @__PURE__ */ U(B, { size: 11 }), c ? `Uploading… ${l}%` : "Upload image"]
2371
2371
  }),
2372
- u && /* @__PURE__ */ W("p", {
2372
+ u && /* @__PURE__ */ U("p", {
2373
2373
  className: "text-xs text-status-error-text",
2374
2374
  children: u
2375
2375
  })
2376
2376
  ]
2377
2377
  })]
2378
2378
  }),
2379
- i && /* @__PURE__ */ W("p", {
2379
+ i && /* @__PURE__ */ U("p", {
2380
2380
  className: "text-xs text-text-secondary",
2381
2381
  children: i
2382
2382
  })
@@ -2398,53 +2398,53 @@ var Ke = [
2398
2398
  }, f = (t) => {
2399
2399
  n(e.filter((e, n) => n !== t));
2400
2400
  };
2401
- return /* @__PURE__ */ G("div", {
2401
+ return /* @__PURE__ */ W("div", {
2402
2402
  className: "space-y-2",
2403
2403
  children: [
2404
- /* @__PURE__ */ G("div", {
2404
+ /* @__PURE__ */ W("div", {
2405
2405
  className: "flex flex-col gap-0.5",
2406
- children: [/* @__PURE__ */ W("label", {
2406
+ children: [/* @__PURE__ */ U("label", {
2407
2407
  className: "text-sm font-medium",
2408
2408
  children: "Screenshots"
2409
- }), /* @__PURE__ */ W("p", {
2409
+ }), /* @__PURE__ */ U("p", {
2410
2410
  className: "text-xs text-text-muted",
2411
2411
  children: "Shown in the horizontal preview strip below the hero — wide landscape proportions work best (16:9)"
2412
2412
  })]
2413
2413
  }),
2414
- /* @__PURE__ */ G("div", {
2414
+ /* @__PURE__ */ W("div", {
2415
2415
  className: "flex flex-wrap gap-3",
2416
- children: [e.map((e, t) => /* @__PURE__ */ G("div", {
2416
+ children: [e.map((e, t) => /* @__PURE__ */ W("div", {
2417
2417
  className: "relative group w-36 aspect-video rounded-lg border border-border-subtle overflow-hidden bg-bg-sunken",
2418
- children: [/* @__PURE__ */ W("img", {
2418
+ children: [/* @__PURE__ */ U("img", {
2419
2419
  src: e,
2420
2420
  alt: `Screenshot ${t + 1}`,
2421
2421
  className: "w-full h-full object-cover"
2422
- }), /* @__PURE__ */ W("button", {
2422
+ }), /* @__PURE__ */ U("button", {
2423
2423
  type: "button",
2424
2424
  onClick: () => f(t),
2425
2425
  className: "absolute top-1 right-1 rounded-full bg-bg-overlay text-white p-0.5 opacity-0 group-hover:opacity-100 transition-opacity",
2426
- children: /* @__PURE__ */ W(Ie, { size: 12 })
2426
+ children: /* @__PURE__ */ U(Ie, { size: 12 })
2427
2427
  })]
2428
- }, t)), /* @__PURE__ */ W("button", {
2428
+ }, t)), /* @__PURE__ */ U("button", {
2429
2429
  type: "button",
2430
2430
  disabled: i,
2431
2431
  onClick: () => s.current?.click(),
2432
2432
  className: t("w-36 aspect-video rounded-lg border-2 border-dashed border-border-subtle flex flex-col items-center justify-center gap-1.5 text-text-secondary hover:border-border-strong hover:bg-bg-sunken transition-colors disabled:opacity-50"),
2433
- children: i ? /* @__PURE__ */ G(U, { children: [/* @__PURE__ */ W(z, {
2433
+ children: i ? /* @__PURE__ */ W(H, { children: [/* @__PURE__ */ U(R, {
2434
2434
  size: 18,
2435
2435
  className: "animate-spin text-primary"
2436
- }), /* @__PURE__ */ G("span", {
2436
+ }), /* @__PURE__ */ W("span", {
2437
2437
  className: "text-xs",
2438
2438
  children: [a, "%"]
2439
- })] }) : /* @__PURE__ */ G(U, { children: [/* @__PURE__ */ W(V, { size: 18 }), /* @__PURE__ */ W("span", {
2439
+ })] }) : /* @__PURE__ */ W(H, { children: [/* @__PURE__ */ U(B, { size: 18 }), /* @__PURE__ */ U("span", {
2440
2440
  className: "text-xs",
2441
2441
  children: "Add screenshot"
2442
2442
  })] })
2443
2443
  })]
2444
2444
  }),
2445
- /* @__PURE__ */ G("div", {
2445
+ /* @__PURE__ */ W("div", {
2446
2446
  className: "flex gap-2",
2447
- children: [/* @__PURE__ */ W("input", {
2447
+ children: [/* @__PURE__ */ U("input", {
2448
2448
  type: "url",
2449
2449
  value: c,
2450
2450
  onChange: (e) => l(e.target.value),
@@ -2453,7 +2453,7 @@ var Ke = [
2453
2453
  },
2454
2454
  placeholder: "https://... paste a screenshot URL",
2455
2455
  className: "flex-1 rounded-md border border-border-subtle bg-bg-input px-3 py-1.5 text-sm placeholder:text-text-placeholder focus:outline-none focus:ring-2 focus:ring-primary/30"
2456
- }), /* @__PURE__ */ W("button", {
2456
+ }), /* @__PURE__ */ U("button", {
2457
2457
  type: "button",
2458
2458
  onClick: d,
2459
2459
  disabled: !c.trim(),
@@ -2461,7 +2461,7 @@ var Ke = [
2461
2461
  children: "Add"
2462
2462
  })]
2463
2463
  }),
2464
- /* @__PURE__ */ W("input", {
2464
+ /* @__PURE__ */ U("input", {
2465
2465
  ref: s,
2466
2466
  type: "file",
2467
2467
  accept: "image/png,image/jpeg,image/webp,image/gif",
@@ -2471,7 +2471,7 @@ var Ke = [
2471
2471
  t && u(t), e.target.value = "";
2472
2472
  }
2473
2473
  }),
2474
- o && /* @__PURE__ */ W("p", {
2474
+ o && /* @__PURE__ */ U("p", {
2475
2475
  className: "text-xs text-status-error-text",
2476
2476
  children: o
2477
2477
  })
@@ -2587,7 +2587,7 @@ function mt(e) {
2587
2587
  };
2588
2588
  }
2589
2589
  var ht = ({ app: t, versionCount: n = 0, isPackageApp: r = !1, pricingDone: i = !1, onNavigateToVersions: a, onNavigateToPricing: o, onNavigateToSubmission: s }) => {
2590
- let { workspacesGatewayUrl: c, authToken: l, workspaceId: u, getWorkspaceToken: d } = e(), { t: f } = P(), p = (e, t) => {
2590
+ let { workspacesGatewayUrl: c, authToken: l, workspaceId: u, getWorkspaceToken: d } = e(), { t: f } = G(), p = (e, t) => {
2591
2591
  let n = f(e);
2592
2592
  return n === e ? t : n;
2593
2593
  }, [m, h] = N(() => mt(t)), [g, _] = N(!1), [v, y] = N(null), x = M(mt(t)), C = M(t);
@@ -2642,21 +2642,21 @@ var ht = ({ app: t, versionCount: n = 0, isPackageApp: r = !1, pricingDone: i =
2642
2642
  } finally {
2643
2643
  _(!1);
2644
2644
  }
2645
- }, { upload: te, uploading: ne, progress: ae, error: oe } = ue(c, l, u, d, "/DevPortal/Assets"), { upload: ce, uploading: le, progress: A, error: j } = ue(c, l, u, d, "/DevPortal/Assets"), { upload: fe, uploading: pe, progress: me, error: L } = ue(c, l, u, d, "/DevPortal/Assets"), ve = Y.has(m.manifestItemType), ye = t.status === "SUBMITTED";
2646
- return /* @__PURE__ */ G("div", {
2645
+ }, { upload: te, uploading: ne, progress: ae, error: oe } = ue(c, l, u, d, "/DevPortal/Assets"), { upload: ce, uploading: le, progress: A, error: j } = ue(c, l, u, d, "/DevPortal/Assets"), { upload: fe, uploading: pe, progress: me, error: I } = ue(c, l, u, d, "/DevPortal/Assets"), ve = Y.has(m.manifestItemType), ye = t.status === "SUBMITTED";
2646
+ return /* @__PURE__ */ W("div", {
2647
2647
  className: "space-y-8 max-w-3xl",
2648
2648
  children: [
2649
- t.status === "PUBLISHED" ? /* @__PURE__ */ G("div", {
2649
+ t.status === "PUBLISHED" ? /* @__PURE__ */ W("div", {
2650
2650
  className: "flex items-start gap-3 rounded-lg border border-success/30 bg-success/10 px-4 py-3",
2651
- children: [/* @__PURE__ */ W(he, {
2651
+ children: [/* @__PURE__ */ U(he, {
2652
2652
  size: 16,
2653
2653
  className: "text-success mt-0.5 shrink-0"
2654
- }), /* @__PURE__ */ G("div", {
2654
+ }), /* @__PURE__ */ W("div", {
2655
2655
  className: "text-sm",
2656
- children: [/* @__PURE__ */ W("span", {
2656
+ children: [/* @__PURE__ */ U("span", {
2657
2657
  className: "font-medium text-success",
2658
2658
  children: p("devportal.storeListing.published", "Published")
2659
- }), t.publishedAt && /* @__PURE__ */ G("span", {
2659
+ }), t.publishedAt && /* @__PURE__ */ W("span", {
2660
2660
  className: "text-text-secondary ml-2",
2661
2661
  children: [
2662
2662
  p("devportal.storeListing.since", "since"),
@@ -2665,59 +2665,59 @@ var ht = ({ app: t, versionCount: n = 0, isPackageApp: r = !1, pricingDone: i =
2665
2665
  ]
2666
2666
  })]
2667
2667
  })]
2668
- }) : ye ? /* @__PURE__ */ G("div", {
2668
+ }) : ye ? /* @__PURE__ */ W("div", {
2669
2669
  className: "flex items-center justify-between gap-3 rounded-lg border border-primary/30 bg-action-primary-bg/5 px-4 py-3",
2670
- children: [/* @__PURE__ */ G("div", {
2670
+ children: [/* @__PURE__ */ W("div", {
2671
2671
  className: "flex items-start gap-3",
2672
- children: [/* @__PURE__ */ W(_e, {
2672
+ children: [/* @__PURE__ */ U(_e, {
2673
2673
  size: 16,
2674
2674
  className: "text-primary mt-0.5 shrink-0"
2675
- }), /* @__PURE__ */ G("div", {
2675
+ }), /* @__PURE__ */ W("div", {
2676
2676
  className: "text-sm",
2677
2677
  children: [
2678
- /* @__PURE__ */ W("span", {
2678
+ /* @__PURE__ */ U("span", {
2679
2679
  className: "font-medium text-primary",
2680
2680
  children: p("devportal.storeListing.underReview", "Submitted for review")
2681
2681
  }),
2682
- t.submittedAt && /* @__PURE__ */ W("span", {
2682
+ t.submittedAt && /* @__PURE__ */ U("span", {
2683
2683
  className: "text-text-secondary ml-2",
2684
2684
  children: new Date(t.submittedAt).toLocaleDateString()
2685
2685
  }),
2686
- t.reviewStatus && /* @__PURE__ */ G("span", {
2686
+ t.reviewStatus && /* @__PURE__ */ W("span", {
2687
2687
  className: "text-text-secondary ml-2",
2688
2688
  children: ["· ", t.reviewStatus]
2689
2689
  })
2690
2690
  ]
2691
2691
  })]
2692
- }), s && /* @__PURE__ */ G("button", {
2692
+ }), s && /* @__PURE__ */ W("button", {
2693
2693
  type: "button",
2694
2694
  onClick: s,
2695
2695
  className: "shrink-0 text-xs text-primary hover:underline font-medium flex items-center gap-1",
2696
- children: [p("devportal.viewStatus", "View Status"), /* @__PURE__ */ W(R, { size: 12 })]
2696
+ children: [p("devportal.viewStatus", "View Status"), /* @__PURE__ */ U(L, { size: 12 })]
2697
2697
  })]
2698
- }) : /* @__PURE__ */ G("div", {
2698
+ }) : /* @__PURE__ */ W("div", {
2699
2699
  className: "flex items-start gap-3 rounded-lg border border-warning/30 bg-warning/5 px-4 py-3",
2700
- children: [/* @__PURE__ */ W(F, {
2700
+ children: [/* @__PURE__ */ U(P, {
2701
2701
  size: 16,
2702
2702
  className: "text-warning mt-0.5 shrink-0"
2703
- }), /* @__PURE__ */ G("div", {
2703
+ }), /* @__PURE__ */ W("div", {
2704
2704
  className: "text-sm",
2705
- children: [/* @__PURE__ */ W("span", {
2705
+ children: [/* @__PURE__ */ U("span", {
2706
2706
  className: "font-medium text-warning",
2707
2707
  children: p("devportal.storeListing.draft", "Draft")
2708
- }), /* @__PURE__ */ W("span", {
2708
+ }), /* @__PURE__ */ U("span", {
2709
2709
  className: "text-text-secondary ml-2",
2710
2710
  children: p("devportal.storeListing.draftHint", "Complete your store listing and submit for review to publish.")
2711
2711
  })]
2712
2712
  })]
2713
2713
  }),
2714
- /* @__PURE__ */ W(S, {
2714
+ /* @__PURE__ */ U(S, {
2715
2715
  title: p("devportal.package", "Package"),
2716
2716
  description: p("devportal.packageDescription", "Technical configuration — how FluidGrid installs and runs this item"),
2717
- children: /* @__PURE__ */ G("div", {
2717
+ children: /* @__PURE__ */ W("div", {
2718
2718
  className: "space-y-6",
2719
2719
  children: [
2720
- /* @__PURE__ */ W(re, {
2720
+ /* @__PURE__ */ U(re, {
2721
2721
  label: p("devportal.storeItemType", "Item Type"),
2722
2722
  value: m.manifestItemType,
2723
2723
  onChange: (e) => {
@@ -2728,13 +2728,13 @@ var ht = ({ app: t, versionCount: n = 0, isPackageApp: r = !1, pricingDone: i =
2728
2728
  placeholder: p("devportal.selectItemType", "Select item type…"),
2729
2729
  hint: p("devportal.storeItemTypeHint", "Sub-category shown in the marketplace (e.g. Node vs Agent vs Parser)")
2730
2730
  }),
2731
- /* @__PURE__ */ W(k, {
2731
+ /* @__PURE__ */ U(k, {
2732
2732
  label: p("devportal.manifestDisplayName", "Display Name"),
2733
2733
  value: m.manifestDisplayName,
2734
2734
  onChange: (e) => E("manifestDisplayName", e.target.value),
2735
2735
  placeholder: "My Awesome Node"
2736
2736
  }),
2737
- ve && /* @__PURE__ */ W(ie, {
2737
+ ve && /* @__PURE__ */ U(ie, {
2738
2738
  label: t.appType === "WORKFLOW" ? p("devportal.workflowJsonContent", "Workflow Canvas Definition (JSON)") : p("devportal.jsonContent", "Template Definition (JSON)"),
2739
2739
  value: m.manifestJsonContent,
2740
2740
  onChange: (e) => E("manifestJsonContent", e.target.value),
@@ -2745,15 +2745,15 @@ var ht = ({ app: t, versionCount: n = 0, isPackageApp: r = !1, pricingDone: i =
2745
2745
  ]
2746
2746
  })
2747
2747
  }),
2748
- /* @__PURE__ */ W(S, {
2748
+ /* @__PURE__ */ U(S, {
2749
2749
  title: p("devportal.storePresentation", "Store Presence"),
2750
2750
  description: p("devportal.storePresentationDescription", "Visual assets and copy shown to users browsing the marketplace"),
2751
- children: /* @__PURE__ */ G("div", {
2751
+ children: /* @__PURE__ */ W("div", {
2752
2752
  className: "space-y-5",
2753
2753
  children: [
2754
- /* @__PURE__ */ G("div", {
2754
+ /* @__PURE__ */ W("div", {
2755
2755
  className: "grid gap-5 sm:grid-cols-2",
2756
- children: [/* @__PURE__ */ W(ut, {
2756
+ children: [/* @__PURE__ */ U(ut, {
2757
2757
  label: p("devportal.iconUrl", "Icon"),
2758
2758
  value: m.iconUrl,
2759
2759
  onChange: (e) => E("iconUrl", e),
@@ -2763,7 +2763,7 @@ var ht = ({ app: t, versionCount: n = 0, isPackageApp: r = !1, pricingDone: i =
2763
2763
  uploading: ne,
2764
2764
  progress: ae,
2765
2765
  error: oe
2766
- }), /* @__PURE__ */ W(ut, {
2766
+ }), /* @__PURE__ */ U(ut, {
2767
2767
  label: p("devportal.bannerUrl", "Banner"),
2768
2768
  value: m.bannerUrl,
2769
2769
  onChange: (e) => E("bannerUrl", e),
@@ -2775,14 +2775,14 @@ var ht = ({ app: t, versionCount: n = 0, isPackageApp: r = !1, pricingDone: i =
2775
2775
  error: j
2776
2776
  })]
2777
2777
  }),
2778
- /* @__PURE__ */ W(k, {
2778
+ /* @__PURE__ */ U(k, {
2779
2779
  label: p("devportal.videoUrl", "Demo Video URL"),
2780
2780
  value: m.videoUrl,
2781
2781
  onChange: (e) => E("videoUrl", e.target.value),
2782
2782
  placeholder: "https://...",
2783
2783
  hint: p("devportal.videoUrlHint", "YouTube or Vimeo embed URL")
2784
2784
  }),
2785
- /* @__PURE__ */ W(se, {
2785
+ /* @__PURE__ */ U(se, {
2786
2786
  label: p("devportal.shortDescription", "Short Description"),
2787
2787
  value: m.shortDescription,
2788
2788
  onChange: (e) => E("shortDescription", e),
@@ -2790,62 +2790,62 @@ var ht = ({ app: t, versionCount: n = 0, isPackageApp: r = !1, pricingDone: i =
2790
2790
  rows: 2,
2791
2791
  hint: `${m.shortDescription.length}/200 · ${p("devportal.shortDescHint", "Shown in search results and cards")}`
2792
2792
  }),
2793
- /* @__PURE__ */ W(se, {
2793
+ /* @__PURE__ */ U(se, {
2794
2794
  label: p("devportal.longDescription", "Full Description"),
2795
2795
  value: m.description,
2796
2796
  onChange: (e) => E("description", e),
2797
2797
  rows: 5,
2798
2798
  hint: p("devportal.fullDescHint", "Markdown supported")
2799
2799
  }),
2800
- /* @__PURE__ */ W(dt, {
2800
+ /* @__PURE__ */ U(dt, {
2801
2801
  urls: m.screenshotsText.split("\n").map((e) => e.trim()).filter(Boolean),
2802
2802
  onChange: (e) => E("screenshotsText", e.join("\n")),
2803
2803
  upload: fe,
2804
2804
  uploading: pe,
2805
2805
  progress: me,
2806
- error: L
2806
+ error: I
2807
2807
  })
2808
2808
  ]
2809
2809
  })
2810
2810
  }),
2811
- /* @__PURE__ */ W(S, {
2811
+ /* @__PURE__ */ U(S, {
2812
2812
  title: p("devportal.linksPolicies", "Links & Policies"),
2813
2813
  description: p("devportal.linksPoliciesDescription", "External resources and legal documents — privacy policy and terms are required for store submission"),
2814
- children: /* @__PURE__ */ G("div", {
2814
+ children: /* @__PURE__ */ W("div", {
2815
2815
  className: "grid gap-4 sm:grid-cols-2",
2816
2816
  children: [
2817
- /* @__PURE__ */ W(k, {
2817
+ /* @__PURE__ */ U(k, {
2818
2818
  label: p("devportal.websiteUrl", "Website"),
2819
2819
  value: m.websiteUrl,
2820
2820
  onChange: (e) => E("websiteUrl", e.target.value),
2821
2821
  placeholder: "https://..."
2822
2822
  }),
2823
- /* @__PURE__ */ W(k, {
2823
+ /* @__PURE__ */ U(k, {
2824
2824
  label: p("devportal.documentationUrl", "Documentation"),
2825
2825
  value: m.documentationUrl,
2826
2826
  onChange: (e) => E("documentationUrl", e.target.value),
2827
2827
  placeholder: "https://..."
2828
2828
  }),
2829
- /* @__PURE__ */ W(k, {
2829
+ /* @__PURE__ */ U(k, {
2830
2830
  label: p("devportal.githubUrl", "GitHub"),
2831
2831
  value: m.githubUrl,
2832
2832
  onChange: (e) => E("githubUrl", e.target.value),
2833
2833
  placeholder: "https://github.com/..."
2834
2834
  }),
2835
- /* @__PURE__ */ W(k, {
2835
+ /* @__PURE__ */ U(k, {
2836
2836
  label: p("devportal.supportUrl", "Support"),
2837
2837
  value: m.supportUrl,
2838
2838
  onChange: (e) => E("supportUrl", e.target.value),
2839
2839
  placeholder: "https://..."
2840
2840
  }),
2841
- /* @__PURE__ */ W(k, {
2841
+ /* @__PURE__ */ U(k, {
2842
2842
  label: `${p("devportal.privacyPolicyUrl", "Privacy Policy")} *`,
2843
2843
  value: m.privacyPolicyUrl,
2844
2844
  onChange: (e) => E("privacyPolicyUrl", e.target.value),
2845
2845
  placeholder: "https://...",
2846
2846
  hint: p("devportal.requiredForStore", "Required for store submission")
2847
2847
  }),
2848
- /* @__PURE__ */ W(k, {
2848
+ /* @__PURE__ */ U(k, {
2849
2849
  label: `${p("devportal.termsOfServiceUrl", "Terms of Service")} *`,
2850
2850
  value: m.termsOfServiceUrl,
2851
2851
  onChange: (e) => E("termsOfServiceUrl", e.target.value),
@@ -2855,52 +2855,52 @@ var ht = ({ app: t, versionCount: n = 0, isPackageApp: r = !1, pricingDone: i =
2855
2855
  ]
2856
2856
  })
2857
2857
  }),
2858
- /* @__PURE__ */ G("div", {
2858
+ /* @__PURE__ */ W("div", {
2859
2859
  className: "border-t pt-6 space-y-3",
2860
2860
  children: [
2861
- v === "success" && /* @__PURE__ */ G("div", {
2861
+ v === "success" && /* @__PURE__ */ W("div", {
2862
2862
  className: "flex items-center gap-2 rounded-md border border-success/30 bg-success/10 px-3 py-2 text-sm text-success",
2863
- children: [/* @__PURE__ */ W(he, {
2863
+ children: [/* @__PURE__ */ U(he, {
2864
2864
  size: 15,
2865
2865
  className: "shrink-0"
2866
2866
  }), p("devportal.storeListing.savedSuccess", "Store listing saved successfully.")]
2867
2867
  }),
2868
- v === "error" && /* @__PURE__ */ G("div", {
2868
+ v === "error" && /* @__PURE__ */ W("div", {
2869
2869
  className: "flex items-center gap-2 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",
2870
- children: [/* @__PURE__ */ W(F, {
2870
+ children: [/* @__PURE__ */ U(P, {
2871
2871
  size: 15,
2872
2872
  className: "shrink-0"
2873
2873
  }), p("devportal.storeListing.savedError", "Failed to save. Please try again.")]
2874
2874
  }),
2875
- /* @__PURE__ */ G("div", {
2875
+ /* @__PURE__ */ W("div", {
2876
2876
  className: "flex flex-wrap items-center gap-3",
2877
2877
  children: [
2878
- /* @__PURE__ */ W("button", {
2878
+ /* @__PURE__ */ U("button", {
2879
2879
  type: "button",
2880
2880
  onClick: ee,
2881
2881
  disabled: g || !D || !w,
2882
2882
  title: D ? w ? void 0 : p("devportal.storeListing.noChanges", "All changes saved — edit any field to save again") : p("devportal.storeListing.requiredFieldsHint", "Fill in Short Description, Privacy Policy URL, and Terms of Service URL to save"),
2883
2883
  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 disabled:cursor-not-allowed",
2884
- children: g ? /* @__PURE__ */ G(U, { children: [/* @__PURE__ */ W(z, {
2884
+ children: g ? /* @__PURE__ */ W(H, { children: [/* @__PURE__ */ U(R, {
2885
2885
  size: 16,
2886
2886
  className: "animate-spin"
2887
- }), p("devportal.saving", "Saving…")] }) : w ? /* @__PURE__ */ G(U, { children: [/* @__PURE__ */ W(Me, { size: 16 }), p("devportal.saveStoreListing", "Save Store Listing")] }) : /* @__PURE__ */ G(U, { children: [/* @__PURE__ */ W(I, { size: 16 }), p("devportal.saved", "Saved")] })
2887
+ }), p("devportal.saving", "Saving…")] }) : w ? /* @__PURE__ */ W(H, { children: [/* @__PURE__ */ U(Me, { size: 16 }), p("devportal.saveStoreListing", "Save Store Listing")] }) : /* @__PURE__ */ W(H, { children: [/* @__PURE__ */ U(F, { size: 16 }), p("devportal.saved", "Saved")] })
2888
2888
  }),
2889
- !D && /* @__PURE__ */ W("p", {
2889
+ !D && /* @__PURE__ */ U("p", {
2890
2890
  className: "text-xs text-text-secondary",
2891
2891
  children: p("devportal.storeListing.requiredFieldsLabel", "Short Description, Privacy Policy URL, and Terms of Service URL are required")
2892
2892
  }),
2893
- r && n === 0 && a && /* @__PURE__ */ G("button", {
2893
+ r && n === 0 && a && /* @__PURE__ */ W("button", {
2894
2894
  type: "button",
2895
2895
  onClick: a,
2896
2896
  className: "inline-flex items-center gap-1.5 text-sm font-medium text-primary hover:underline underline-offset-2",
2897
- children: [p("devportal.nextUploadVersion", "Next: Upload a Version"), /* @__PURE__ */ W(ge, { size: 15 })]
2897
+ children: [p("devportal.nextUploadVersion", "Next: Upload a Version"), /* @__PURE__ */ U(ge, { size: 15 })]
2898
2898
  }),
2899
- (!r || n > 0) && !i && o && /* @__PURE__ */ G("button", {
2899
+ (!r || n > 0) && !i && o && /* @__PURE__ */ W("button", {
2900
2900
  type: "button",
2901
2901
  onClick: o,
2902
2902
  className: "inline-flex items-center gap-1.5 text-sm font-medium text-primary hover:underline underline-offset-2",
2903
- children: [p("devportal.nextSetPricing", "Next: Set Pricing"), /* @__PURE__ */ W(ge, { size: 15 })]
2903
+ children: [p("devportal.nextSetPricing", "Next: Set Pricing"), /* @__PURE__ */ U(ge, { size: 15 })]
2904
2904
  })
2905
2905
  ]
2906
2906
  })
@@ -2909,20 +2909,20 @@ var ht = ({ app: t, versionCount: n = 0, isPackageApp: r = !1, pricingDone: i =
2909
2909
  ]
2910
2910
  });
2911
2911
  }, Z = ({ label: e, value: n, trend: r }) => {
2912
- let { t: i } = P();
2913
- return /* @__PURE__ */ G(Ve, {
2912
+ let { t: i } = G();
2913
+ return /* @__PURE__ */ W(Ve, {
2914
2914
  treatment: "metric",
2915
2915
  className: "p-4",
2916
2916
  children: [
2917
- /* @__PURE__ */ W("p", {
2917
+ /* @__PURE__ */ U("p", {
2918
2918
  className: "text-sm text-text-secondary",
2919
2919
  children: e
2920
2920
  }),
2921
- /* @__PURE__ */ W("p", {
2921
+ /* @__PURE__ */ U("p", {
2922
2922
  className: "text-2xl font-bold tabular-nums",
2923
2923
  children: n
2924
2924
  }),
2925
- r !== void 0 && /* @__PURE__ */ G("p", {
2925
+ r !== void 0 && /* @__PURE__ */ W("p", {
2926
2926
  className: t("text-xs mt-1 tabular-nums", r > 0 ? "text-status-success-text" : r < 0 ? "text-status-error-text" : "text-text-secondary"),
2927
2927
  children: [
2928
2928
  r > 0 ? "+" : "",
@@ -2936,12 +2936,12 @@ var ht = ({ app: t, versionCount: n = 0, isPackageApp: r = !1, pricingDone: i =
2936
2936
  })
2937
2937
  ]
2938
2938
  });
2939
- }, Q = ({ label: e, url: t }) => /* @__PURE__ */ G("a", {
2939
+ }, Q = ({ label: e, url: t }) => /* @__PURE__ */ W("a", {
2940
2940
  href: t,
2941
2941
  target: "_blank",
2942
2942
  rel: "noopener noreferrer",
2943
2943
  className: "flex items-center gap-2 text-sm text-primary hover:underline",
2944
- children: [/* @__PURE__ */ W(R, { size: 14 }), e]
2944
+ children: [/* @__PURE__ */ U(L, { size: 14 }), e]
2945
2945
  }), $ = {
2946
2946
  auth: {
2947
2947
  label: "Authentication",
@@ -3027,9 +3027,9 @@ function yt(e, t) {
3027
3027
  let n = /* @__PURE__ */ new Set();
3028
3028
  return t.filter((e) => n.has(e.resource) ? !1 : (n.add(e.resource), !0));
3029
3029
  }
3030
- var bt = ({ level: e, onChange: t }) => /* @__PURE__ */ W("div", {
3030
+ var bt = ({ level: e, onChange: t }) => /* @__PURE__ */ U("div", {
3031
3031
  className: "flex items-center gap-0.5 rounded-md border border-border-subtle bg-bg-sunken/50 p-0.5",
3032
- children: ["read", "write"].map((n) => /* @__PURE__ */ W("button", {
3032
+ children: ["read", "write"].map((n) => /* @__PURE__ */ U("button", {
3033
3033
  type: "button",
3034
3034
  onClick: () => t(n),
3035
3035
  className: `rounded px-2.5 py-1 text-xs font-medium transition-colors whitespace-nowrap ${e === n ? "bg-bg-base text-text-primary shadow-sm" : "text-text-secondary hover:text-text-primary"}`,
@@ -3065,58 +3065,58 @@ var bt = ({ level: e, onChange: t }) => /* @__PURE__ */ W("div", {
3065
3065
  } finally {
3066
3066
  m(!1);
3067
3067
  }
3068
- }, w = /* @__PURE__ */ W("div", {
3068
+ }, w = /* @__PURE__ */ U("div", {
3069
3069
  className: "rounded-lg border border-border-subtle divide-y divide-border-subtle",
3070
- children: a.map((e) => /* @__PURE__ */ G("div", {
3070
+ children: a.map((e) => /* @__PURE__ */ W("div", {
3071
3071
  className: "flex items-center gap-3 px-4 py-3 hover:bg-bg-sunken/30 transition-colors",
3072
- children: [/* @__PURE__ */ G("div", {
3072
+ children: [/* @__PURE__ */ W("div", {
3073
3073
  className: "flex-1 min-w-0",
3074
3074
  children: [
3075
- /* @__PURE__ */ W("p", {
3075
+ /* @__PURE__ */ U("p", {
3076
3076
  className: "text-sm font-medium text-text-primary",
3077
3077
  children: $[e.resource]?.label ?? e.resource
3078
3078
  }),
3079
- $[e.resource]?.description && /* @__PURE__ */ W("p", {
3079
+ $[e.resource]?.description && /* @__PURE__ */ U("p", {
3080
3080
  className: "text-xs text-text-secondary",
3081
3081
  children: $[e.resource].description
3082
3082
  }),
3083
- !$[e.resource] && /* @__PURE__ */ W("p", {
3083
+ !$[e.resource] && /* @__PURE__ */ U("p", {
3084
3084
  className: "text-xs text-text-tertiary font-mono",
3085
3085
  children: "custom scope"
3086
3086
  })
3087
3087
  ]
3088
- }), n ? /* @__PURE__ */ W("span", {
3088
+ }), n ? /* @__PURE__ */ U("span", {
3089
3089
  className: `rounded-full px-2.5 py-0.5 text-xs font-medium ${e.level === "write" ? "bg-status-warning-bg text-status-warning-text" : "bg-bg-sunken text-text-secondary"}`,
3090
3090
  children: e.level === "write" ? "Read & Write" : "Read"
3091
- }) : /* @__PURE__ */ G(U, { children: [/* @__PURE__ */ W(bt, {
3091
+ }) : /* @__PURE__ */ W(H, { children: [/* @__PURE__ */ U(bt, {
3092
3092
  level: e.level,
3093
3093
  onChange: (t) => v(e.resource, t)
3094
- }), /* @__PURE__ */ W("button", {
3094
+ }), /* @__PURE__ */ U("button", {
3095
3095
  type: "button",
3096
3096
  onClick: () => y(e.resource),
3097
3097
  title: "Remove permission",
3098
3098
  className: "p-1.5 rounded text-text-tertiary hover:text-status-error-text hover:bg-status-error-bg-subtle transition-colors",
3099
- children: /* @__PURE__ */ W(Ie, { size: 14 })
3099
+ children: /* @__PURE__ */ U(Ie, { size: 14 })
3100
3100
  })] })]
3101
3101
  }, e.resource))
3102
3102
  });
3103
- return /* @__PURE__ */ W(S, {
3103
+ return /* @__PURE__ */ U(S, {
3104
3104
  title: "Permissions",
3105
3105
  description: "These are the permissions your app requests from users. Users see exactly this list when authorizing your app.",
3106
- children: /* @__PURE__ */ W("div", {
3106
+ children: /* @__PURE__ */ U("div", {
3107
3107
  className: "space-y-4",
3108
- children: n ? /* @__PURE__ */ G(U, { children: [/* @__PURE__ */ G("div", {
3108
+ children: n ? /* @__PURE__ */ W(H, { children: [/* @__PURE__ */ W("div", {
3109
3109
  className: "rounded-lg border border-status-warning-bg bg-status-warning-bg-subtle p-3 flex gap-2 text-sm",
3110
- children: [/* @__PURE__ */ W(Se, {
3110
+ children: [/* @__PURE__ */ U(Se, {
3111
3111
  size: 15,
3112
3112
  className: "flex-shrink-0 mt-0.5 text-status-warning-text"
3113
- }), /* @__PURE__ */ G("span", {
3113
+ }), /* @__PURE__ */ W("span", {
3114
3114
  className: "text-status-warning-text",
3115
3115
  children: [
3116
- /* @__PURE__ */ W("strong", { children: "Permission changes require a new version." }),
3116
+ /* @__PURE__ */ U("strong", { children: "Permission changes require a new version." }),
3117
3117
  " Your app is live and users have already consented to the permissions below. To request new or fewer permissions, publish a new version — existing users will be shown what changed and asked to re-consent before the new version takes effect.",
3118
3118
  " ",
3119
- r && /* @__PURE__ */ W("button", {
3119
+ r && /* @__PURE__ */ U("button", {
3120
3120
  type: "button",
3121
3121
  onClick: r,
3122
3122
  className: "underline font-medium hover:opacity-80 transition-opacity",
@@ -3124,31 +3124,31 @@ var bt = ({ level: e, onChange: t }) => /* @__PURE__ */ W("div", {
3124
3124
  })
3125
3125
  ]
3126
3126
  })]
3127
- }), a.length === 0 ? /* @__PURE__ */ W("div", {
3127
+ }), a.length === 0 ? /* @__PURE__ */ U("div", {
3128
3128
  className: "rounded-lg border border-border-subtle border-dashed p-6 text-center text-sm text-text-secondary",
3129
3129
  children: "No permissions configured for this version."
3130
- }) : w] }) : /* @__PURE__ */ G(U, { children: [
3131
- a.length === 0 ? /* @__PURE__ */ G("div", {
3130
+ }) : w] }) : /* @__PURE__ */ W(H, { children: [
3131
+ a.length === 0 ? /* @__PURE__ */ W("div", {
3132
3132
  className: "rounded-lg border border-border-subtle border-dashed p-8 flex flex-col items-center gap-2 text-center text-text-secondary",
3133
3133
  children: [
3134
- /* @__PURE__ */ W(je, {
3134
+ /* @__PURE__ */ U(je, {
3135
3135
  size: 28,
3136
3136
  className: "opacity-25"
3137
3137
  }),
3138
- /* @__PURE__ */ W("p", {
3138
+ /* @__PURE__ */ U("p", {
3139
3139
  className: "text-sm font-medium text-text-primary",
3140
3140
  children: "No permissions configured"
3141
3141
  }),
3142
- /* @__PURE__ */ W("p", {
3142
+ /* @__PURE__ */ U("p", {
3143
3143
  className: "text-xs",
3144
3144
  children: "Add the permissions your app needs to request from users."
3145
3145
  })
3146
3146
  ]
3147
3147
  }) : w,
3148
- s ? /* @__PURE__ */ G("div", {
3148
+ s ? /* @__PURE__ */ W("div", {
3149
3149
  className: "rounded-lg border border-border-subtle p-3 flex items-center gap-2 flex-wrap",
3150
3150
  children: [
3151
- /* @__PURE__ */ W("input", {
3151
+ /* @__PURE__ */ U("input", {
3152
3152
  type: "text",
3153
3153
  value: l,
3154
3154
  onChange: (e) => u(e.target.value),
@@ -3160,60 +3160,60 @@ var bt = ({ level: e, onChange: t }) => /* @__PURE__ */ W("div", {
3160
3160
  autoFocus: !0,
3161
3161
  className: "flex-1 min-w-40 rounded-md border border-border-subtle bg-bg-base px-3 py-1.5 text-sm focus:outline-none focus:ring-1 focus:ring-primary"
3162
3162
  }),
3163
- /* @__PURE__ */ W("datalist", {
3163
+ /* @__PURE__ */ U("datalist", {
3164
3164
  id: "perm-resource-suggestions",
3165
- children: gt.filter((e) => !a.some((t) => t.resource === e)).map((e) => /* @__PURE__ */ W("option", {
3165
+ children: gt.filter((e) => !a.some((t) => t.resource === e)).map((e) => /* @__PURE__ */ U("option", {
3166
3166
  value: e,
3167
3167
  children: $[e].label
3168
3168
  }, e))
3169
3169
  }),
3170
- /* @__PURE__ */ W(bt, {
3170
+ /* @__PURE__ */ U(bt, {
3171
3171
  level: d,
3172
3172
  onChange: f
3173
3173
  }),
3174
- /* @__PURE__ */ W("button", {
3174
+ /* @__PURE__ */ U("button", {
3175
3175
  type: "button",
3176
3176
  onClick: x,
3177
3177
  disabled: !l.trim(),
3178
3178
  className: "px-3 py-1.5 rounded-md bg-action-primary-bg text-action-primary-text text-xs font-medium hover:bg-action-primary-bg/90 disabled:opacity-50 transition-colors",
3179
3179
  children: "Add"
3180
3180
  }),
3181
- /* @__PURE__ */ W("button", {
3181
+ /* @__PURE__ */ U("button", {
3182
3182
  type: "button",
3183
3183
  onClick: () => {
3184
3184
  c(!1), u("");
3185
3185
  },
3186
3186
  className: "p-1.5 rounded text-text-secondary hover:text-text-primary transition-colors",
3187
- children: /* @__PURE__ */ W(Ie, { size: 14 })
3187
+ children: /* @__PURE__ */ U(Ie, { size: 14 })
3188
3188
  })
3189
3189
  ]
3190
- }) : /* @__PURE__ */ G("button", {
3190
+ }) : /* @__PURE__ */ W("button", {
3191
3191
  type: "button",
3192
3192
  onClick: () => c(!0),
3193
3193
  className: "flex items-center gap-1.5 text-sm text-text-secondary hover:text-text-primary transition-colors",
3194
- children: [/* @__PURE__ */ W(B, { size: 14 }), "Add permission"]
3194
+ children: [/* @__PURE__ */ U(z, { size: 14 }), "Add permission"]
3195
3195
  }),
3196
- /* @__PURE__ */ G("div", {
3196
+ /* @__PURE__ */ W("div", {
3197
3197
  className: "rounded-lg border border-border-subtle bg-bg-sunken/30 p-3 flex gap-2 text-xs text-text-secondary",
3198
- children: [/* @__PURE__ */ W(Se, {
3198
+ children: [/* @__PURE__ */ U(Se, {
3199
3199
  size: 14,
3200
3200
  className: "flex-shrink-0 mt-0.5"
3201
- }), /* @__PURE__ */ G("span", { children: [/* @__PURE__ */ W("strong", { children: "Read & Write" }), " implies Read. Request only what your app genuinely needs — fewer permissions build more user trust."] })]
3201
+ }), /* @__PURE__ */ W("span", { children: [/* @__PURE__ */ U("strong", { children: "Read & Write" }), " implies Read. Request only what your app genuinely needs — fewer permissions build more user trust."] })]
3202
3202
  }),
3203
- /* @__PURE__ */ G("div", {
3203
+ /* @__PURE__ */ W("div", {
3204
3204
  className: "flex items-center justify-end gap-3",
3205
- children: [h && /* @__PURE__ */ G("span", {
3205
+ children: [h && /* @__PURE__ */ W("span", {
3206
3206
  className: "flex items-center gap-1.5 text-sm text-status-success-text",
3207
- children: [/* @__PURE__ */ W(he, { size: 14 }), "Saved"]
3208
- }), /* @__PURE__ */ G("button", {
3207
+ children: [/* @__PURE__ */ U(he, { size: 14 }), "Saved"]
3208
+ }), /* @__PURE__ */ W("button", {
3209
3209
  type: "button",
3210
3210
  onClick: () => void C(),
3211
3211
  disabled: p,
3212
3212
  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",
3213
- children: [p ? /* @__PURE__ */ W(z, {
3213
+ children: [p ? /* @__PURE__ */ U(R, {
3214
3214
  size: 14,
3215
3215
  className: "animate-spin"
3216
- }) : /* @__PURE__ */ W(je, { size: 14 }), "Save Permissions"]
3216
+ }) : /* @__PURE__ */ U(je, { size: 14 }), "Save Permissions"]
3217
3217
  })]
3218
3218
  })
3219
3219
  ] })