@burdenoff/microfe-devportal 2026.830.1 → 2026.831.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +2 -2
@@ -9,18 +9,18 @@ import { useDevportalPermission as p } from "../hooks/usePermission.js";
9
9
  import "../hooks/index.js";
10
10
  import { DEVPORTAL_PERMISSIONS as m } from "../constants/permissions.js";
11
11
  import { useState as h } from "react";
12
- import { useI18n as g } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
13
- import { AlertCircle as _, CheckCircle as v, ChevronDown as y, ChevronUp as b, Clock as x, Download as S, Eye as C, FileJson as w, GitBranch as T, Loader2 as E, Package as D, Search as O, XCircle as k } from "lucide-react";
14
- import { jsx as A, jsxs as j } from "react/jsx-runtime";
12
+ import { AlertCircle as g, CheckCircle as _, ChevronDown as v, ChevronUp as y, Clock as b, Download as x, Eye as S, FileJson as C, GitBranch as w, Loader2 as T, Package as E, Search as D, XCircle as O } from "lucide-react";
13
+ import { jsx as k, jsxs as A } from "react/jsx-runtime";
14
+ import { useI18n as j } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
15
15
  //#region src/devportal/pages/AdminReviewPage.tsx
16
16
  var M = ({ manifest: e, tr: t }) => {
17
17
  let [n, r] = h(!1);
18
- return /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ j("button", {
18
+ return /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ A("button", {
19
19
  type: "button",
20
20
  onClick: () => r((e) => !e),
21
21
  className: "inline-flex items-center gap-1.5 text-xs text-text-secondary hover:text-text-primary",
22
- children: [/* @__PURE__ */ A(w, { size: 13 }), n ? t("devportal.hideManifest", "Hide manifest") : t("devportal.viewManifest", "View manifest.json")]
23
- }), n && /* @__PURE__ */ A("pre", {
22
+ children: [/* @__PURE__ */ k(C, { size: 13 }), n ? t("devportal.hideManifest", "Hide manifest") : t("devportal.viewManifest", "View manifest.json")]
23
+ }), n && /* @__PURE__ */ k("pre", {
24
24
  className: "mt-2 max-h-48 overflow-auto rounded-md bg-bg-sunken p-3 text-xs font-mono whitespace-pre-wrap break-all",
25
25
  children: JSON.stringify(e, null, 2)
26
26
  })] });
@@ -29,26 +29,26 @@ var M = ({ manifest: e, tr: t }) => {
29
29
  WORKFLOW: "Workflow bundle"
30
30
  }, P = ({ appType: e, packageUrl: t, packageSize: n, tr: r }) => {
31
31
  let i = N[e];
32
- return i ? /* @__PURE__ */ j("div", {
32
+ return i ? /* @__PURE__ */ A("div", {
33
33
  className: "rounded-lg border border-status-warning-bg bg-status-warning-bg-subtle p-3 space-y-2",
34
- children: [/* @__PURE__ */ j("div", {
34
+ children: [/* @__PURE__ */ A("div", {
35
35
  className: "flex items-center gap-2 text-xs font-medium text-status-warning-text",
36
- children: [/* @__PURE__ */ A(D, {
36
+ children: [/* @__PURE__ */ k(E, {
37
37
  size: 13,
38
38
  className: "flex-shrink-0"
39
39
  }), r("devportal.zipVerificationRequired", "ZIP verification required — download and test before approving")]
40
- }), t ? /* @__PURE__ */ j("a", {
40
+ }), t ? /* @__PURE__ */ A("a", {
41
41
  href: t,
42
42
  download: !0,
43
43
  target: "_blank",
44
44
  rel: "noopener noreferrer",
45
45
  className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-3 py-1.5 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors",
46
46
  children: [
47
- /* @__PURE__ */ A(S, { size: 14 }),
47
+ /* @__PURE__ */ k(x, { size: 14 }),
48
48
  r("devportal.download", "Download"),
49
49
  " ",
50
50
  i,
51
- n && /* @__PURE__ */ j("span", {
51
+ n && /* @__PURE__ */ A("span", {
52
52
  className: "opacity-70 text-xs",
53
53
  children: [
54
54
  "(",
@@ -57,61 +57,61 @@ var M = ({ manifest: e, tr: t }) => {
57
57
  ]
58
58
  })
59
59
  ]
60
- }) : /* @__PURE__ */ j("p", {
60
+ }) : /* @__PURE__ */ A("p", {
61
61
  className: "text-xs text-status-error-text flex items-center gap-1.5",
62
- children: [/* @__PURE__ */ A(_, { size: 12 }), r("devportal.noZipUploaded", "No ZIP uploaded — developer must upload before this can be approved")]
62
+ children: [/* @__PURE__ */ k(g, { size: 12 }), r("devportal.noZipUploaded", "No ZIP uploaded — developer must upload before this can be approved")]
63
63
  })]
64
64
  }) : null;
65
65
  }, F = ({ app: t, onApprove: n, onReject: r, processing: a, hasPendingVersions: o }) => {
66
- let { navigate: s, basePath: c } = e(), { t: l } = g(), u = (e, t) => {
66
+ let { navigate: s, basePath: c } = e(), { t: l } = j(), u = (e, t) => {
67
67
  let n = l(e);
68
68
  return n === e ? t : n;
69
- }, [d, f] = h(!1), [_, x] = h(""), w = p(m.APP_APPROVE), D = p(m.APP_REJECT), { data: O } = i({
69
+ }, [d, f] = h(!1), [g, b] = h(""), C = p(m.APP_APPROVE), E = p(m.APP_REJECT), { data: D } = i({
70
70
  variables: { id: t.id },
71
71
  skip: !d,
72
72
  fetchPolicy: "cache-first"
73
- }), F = O?.application?.versions?.edges?.[0]?.node;
74
- return /* @__PURE__ */ j("div", {
73
+ }), F = D?.application?.versions?.edges?.[0]?.node;
74
+ return /* @__PURE__ */ A("div", {
75
75
  className: "rounded-card border border-border-seam bg-bg-surface overflow-hidden",
76
- children: [/* @__PURE__ */ j("div", {
76
+ children: [/* @__PURE__ */ A("div", {
77
77
  className: "flex items-center gap-4 p-4",
78
78
  children: [
79
- t.iconUrl ? /* @__PURE__ */ A("img", {
79
+ t.iconUrl ? /* @__PURE__ */ k("img", {
80
80
  src: t.iconUrl,
81
81
  alt: t.name,
82
82
  className: "h-12 w-12 rounded-lg object-cover flex-shrink-0"
83
- }) : /* @__PURE__ */ A("div", {
83
+ }) : /* @__PURE__ */ k("div", {
84
84
  className: "h-12 w-12 rounded-lg bg-bg-sunken flex items-center justify-center flex-shrink-0",
85
- children: /* @__PURE__ */ A("span", {
85
+ children: /* @__PURE__ */ k("span", {
86
86
  className: "text-lg font-bold text-text-secondary",
87
87
  children: t.name.charAt(0).toUpperCase()
88
88
  })
89
89
  }),
90
- /* @__PURE__ */ j("div", {
90
+ /* @__PURE__ */ A("div", {
91
91
  className: "flex-1 min-w-0",
92
92
  children: [
93
- /* @__PURE__ */ j("div", {
93
+ /* @__PURE__ */ A("div", {
94
94
  className: "flex items-center gap-2",
95
95
  children: [
96
- /* @__PURE__ */ A("h3", {
96
+ /* @__PURE__ */ k("h3", {
97
97
  className: "font-semibold truncate",
98
98
  children: t.name
99
99
  }),
100
- /* @__PURE__ */ A("span", {
100
+ /* @__PURE__ */ k("span", {
101
101
  className: "inline-flex items-center rounded-full bg-status-warning-bg-subtle px-2 py-0.5 text-xs font-medium text-status-warning-text",
102
102
  children: t.status
103
103
  }),
104
- /* @__PURE__ */ A("span", {
104
+ /* @__PURE__ */ k("span", {
105
105
  className: "inline-flex items-center rounded-full bg-bg-sunken px-2 py-0.5 text-xs text-text-secondary",
106
106
  children: t.appType.replace(/_/g, " ")
107
107
  })
108
108
  ]
109
109
  }),
110
- /* @__PURE__ */ A("p", {
110
+ /* @__PURE__ */ k("p", {
111
111
  className: "text-sm text-text-secondary truncate",
112
112
  children: t.shortDescription ?? t.description ?? u("devportal.noDescription", "No description")
113
113
  }),
114
- /* @__PURE__ */ j("p", {
114
+ /* @__PURE__ */ A("p", {
115
115
  className: "text-xs text-text-secondary mt-0.5",
116
116
  children: [
117
117
  u("devportal.submitted", "Submitted"),
@@ -126,130 +126,130 @@ var M = ({ manifest: e, tr: t }) => {
126
126
  })
127
127
  ]
128
128
  }),
129
- /* @__PURE__ */ j("div", {
129
+ /* @__PURE__ */ A("div", {
130
130
  className: "flex items-center gap-2 flex-shrink-0",
131
- children: [/* @__PURE__ */ j("button", {
131
+ children: [/* @__PURE__ */ A("button", {
132
132
  onClick: () => s?.(`${c}/apps/${t.id}`),
133
133
  className: "inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken",
134
134
  title: u("devportal.viewAppDetails", "View app details"),
135
- children: [/* @__PURE__ */ A(C, { size: 14 }), u("devportal.view", "View")]
136
- }), /* @__PURE__ */ j("button", {
135
+ children: [/* @__PURE__ */ k(S, { size: 14 }), u("devportal.view", "View")]
136
+ }), /* @__PURE__ */ A("button", {
137
137
  onClick: () => f((e) => !e),
138
138
  className: "inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken",
139
- children: [A(d ? b : y, { size: 14 }), u("devportal.review", "Review")]
139
+ children: [k(d ? y : v, { size: 14 }), u("devportal.review", "Review")]
140
140
  })]
141
141
  })
142
142
  ]
143
- }), d && /* @__PURE__ */ j("div", {
143
+ }), d && /* @__PURE__ */ A("div", {
144
144
  className: "border-t bg-bg-sunken/30 p-4 space-y-4",
145
145
  children: [
146
- o && /* @__PURE__ */ j("div", {
146
+ o && /* @__PURE__ */ A("div", {
147
147
  className: "flex items-start gap-2 rounded-md border border-status-warning-bg bg-status-warning-bg-subtle px-3 py-2.5 text-xs text-status-warning-text",
148
- children: [/* @__PURE__ */ A(T, {
148
+ children: [/* @__PURE__ */ k(w, {
149
149
  size: 14,
150
150
  className: "mt-0.5 shrink-0",
151
151
  "aria-hidden": "true"
152
- }), /* @__PURE__ */ j("span", { children: [
152
+ }), /* @__PURE__ */ A("span", { children: [
153
153
  "This app has a pending version. Approve the version in the",
154
154
  " ",
155
- /* @__PURE__ */ A("strong", { children: "Version Updates" }),
155
+ /* @__PURE__ */ k("strong", { children: "Version Updates" }),
156
156
  " section below before approving the app — the version must be live before the app can go public."
157
157
  ] })]
158
158
  }),
159
- t.reviewNotes && /* @__PURE__ */ j("div", {
159
+ t.reviewNotes && /* @__PURE__ */ A("div", {
160
160
  className: "rounded-md border bg-bg-surface p-3",
161
- children: [/* @__PURE__ */ A("p", {
161
+ children: [/* @__PURE__ */ k("p", {
162
162
  className: "text-xs font-medium text-text-secondary mb-1",
163
163
  children: u("devportal.developerNotes", "Developer Notes")
164
- }), /* @__PURE__ */ A("p", {
164
+ }), /* @__PURE__ */ k("p", {
165
165
  className: "text-sm",
166
166
  children: t.reviewNotes
167
167
  })]
168
168
  }),
169
- /* @__PURE__ */ j("div", {
169
+ /* @__PURE__ */ A("div", {
170
170
  className: "grid grid-cols-2 gap-3 text-sm",
171
171
  children: [
172
- /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ j("span", {
172
+ /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ A("span", {
173
173
  className: "text-text-secondary",
174
174
  children: [
175
175
  u("devportal.category", "Category"),
176
176
  ":",
177
177
  " "
178
178
  ]
179
- }), /* @__PURE__ */ A("span", { children: t.category ?? "—" })] }),
180
- /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ j("span", {
179
+ }), /* @__PURE__ */ k("span", { children: t.category ?? "—" })] }),
180
+ /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ A("span", {
181
181
  className: "text-text-secondary",
182
182
  children: [
183
183
  u("devportal.pricing", "Pricing"),
184
184
  ":",
185
185
  " "
186
186
  ]
187
- }), /* @__PURE__ */ A("span", { children: t.pricingType ?? "FREE" })] }),
188
- /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ j("span", {
187
+ }), /* @__PURE__ */ k("span", { children: t.pricingType ?? "FREE" })] }),
188
+ /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ A("span", {
189
189
  className: "text-text-secondary",
190
190
  children: [
191
191
  u("devportal.website", "Website"),
192
192
  ":",
193
193
  " "
194
194
  ]
195
- }), t.websiteUrl ? /* @__PURE__ */ A("a", {
195
+ }), t.websiteUrl ? /* @__PURE__ */ k("a", {
196
196
  href: t.websiteUrl,
197
197
  target: "_blank",
198
198
  rel: "noopener noreferrer",
199
199
  className: "text-primary underline hover:no-underline",
200
200
  children: u("devportal.link", "Link")
201
- }) : /* @__PURE__ */ A("span", { children: "—" })] }),
202
- /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ j("span", {
201
+ }) : /* @__PURE__ */ k("span", { children: "—" })] }),
202
+ /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ A("span", {
203
203
  className: "text-text-secondary",
204
204
  children: [
205
205
  u("devportal.privacyPolicy", "Privacy Policy"),
206
206
  ":",
207
207
  " "
208
208
  ]
209
- }), t.privacyPolicyUrl ? /* @__PURE__ */ A("a", {
209
+ }), t.privacyPolicyUrl ? /* @__PURE__ */ k("a", {
210
210
  href: t.privacyPolicyUrl,
211
211
  target: "_blank",
212
212
  rel: "noopener noreferrer",
213
213
  className: "text-primary underline hover:no-underline",
214
214
  children: u("devportal.link", "Link")
215
- }) : /* @__PURE__ */ A("span", {
215
+ }) : /* @__PURE__ */ k("span", {
216
216
  className: "text-status-error-text",
217
217
  children: u("devportal.missing", "Missing")
218
218
  })] })
219
219
  ]
220
220
  }),
221
- F && /* @__PURE__ */ j("div", {
221
+ F && /* @__PURE__ */ A("div", {
222
222
  className: "rounded-md border bg-bg-surface p-3 space-y-3",
223
223
  children: [
224
- /* @__PURE__ */ j("p", {
224
+ /* @__PURE__ */ A("p", {
225
225
  className: "text-xs font-medium text-text-secondary",
226
226
  children: [
227
227
  u("devportal.latestVersion", "Latest Version"),
228
228
  ":",
229
229
  " ",
230
- /* @__PURE__ */ A("span", {
230
+ /* @__PURE__ */ k("span", {
231
231
  className: "font-mono text-text-primary",
232
232
  children: F.version
233
233
  })
234
234
  ]
235
235
  }),
236
- N[t.appType] ? /* @__PURE__ */ A(P, {
236
+ N[t.appType] ? /* @__PURE__ */ k(P, {
237
237
  appType: t.appType,
238
238
  packageUrl: F.packageUrl,
239
239
  packageSize: F.packageSize,
240
240
  tr: u
241
- }) : F.packageUrl && /* @__PURE__ */ A("div", {
241
+ }) : F.packageUrl && /* @__PURE__ */ k("div", {
242
242
  className: "flex flex-wrap gap-2",
243
- children: /* @__PURE__ */ j("a", {
243
+ children: /* @__PURE__ */ A("a", {
244
244
  href: F.packageUrl,
245
245
  download: !0,
246
246
  target: "_blank",
247
247
  rel: "noopener noreferrer",
248
248
  className: "inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken",
249
249
  children: [
250
- /* @__PURE__ */ A(S, { size: 14 }),
250
+ /* @__PURE__ */ k(x, { size: 14 }),
251
251
  u("devportal.downloadPackage", "Download Package"),
252
- F.packageSize && /* @__PURE__ */ j("span", {
252
+ F.packageSize && /* @__PURE__ */ A("span", {
253
253
  className: "text-text-secondary text-xs ml-1",
254
254
  children: [
255
255
  "(",
@@ -260,49 +260,49 @@ var M = ({ manifest: e, tr: t }) => {
260
260
  ]
261
261
  })
262
262
  }),
263
- F.manifest && /* @__PURE__ */ A(M, {
263
+ F.manifest && /* @__PURE__ */ k(M, {
264
264
  manifest: F.manifest,
265
265
  tr: u
266
266
  })
267
267
  ]
268
268
  }),
269
- /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("label", {
269
+ /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("label", {
270
270
  className: "text-sm font-medium",
271
271
  children: u("devportal.reviewNotes", "Review Notes")
272
- }), /* @__PURE__ */ A("textarea", {
273
- value: _,
274
- onChange: (e) => x(e.target.value),
272
+ }), /* @__PURE__ */ k("textarea", {
273
+ value: g,
274
+ onChange: (e) => b(e.target.value),
275
275
  placeholder: u("devportal.reviewNotesPlaceholder", "Add feedback for the developer (required for rejection)..."),
276
276
  rows: 3,
277
277
  className: "mt-1 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm ring-offset-background placeholder:text-text-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] resize-none"
278
278
  })] }),
279
- /* @__PURE__ */ j("div", {
279
+ /* @__PURE__ */ A("div", {
280
280
  className: "flex gap-3",
281
- children: [/* @__PURE__ */ j("button", {
282
- onClick: () => n(t.id, _),
283
- disabled: a || !w.allowed,
284
- "aria-disabled": a || !w.allowed,
285
- title: w.allowed ? void 0 : u("devportal.common.noPermission", "You do not have permission to perform this action"),
281
+ children: [/* @__PURE__ */ A("button", {
282
+ onClick: () => n(t.id, g),
283
+ disabled: a || !C.allowed,
284
+ "aria-disabled": a || !C.allowed,
285
+ title: C.allowed ? void 0 : u("devportal.common.noPermission", "You do not have permission to perform this action"),
286
286
  className: "inline-flex items-center gap-2 rounded-md bg-status-success-bg px-4 py-2 text-sm font-medium text-white hover:bg-status-success-bg/90 disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",
287
- children: [a ? /* @__PURE__ */ A(E, {
287
+ children: [a ? /* @__PURE__ */ k(T, {
288
288
  size: 14,
289
289
  className: "animate-spin",
290
290
  "aria-hidden": "true"
291
- }) : /* @__PURE__ */ A(v, {
291
+ }) : /* @__PURE__ */ k(_, {
292
292
  size: 14,
293
293
  "aria-hidden": "true"
294
294
  }), u("devportal.approve", "Approve")]
295
- }), /* @__PURE__ */ j("button", {
296
- onClick: () => r(t.id, _),
297
- disabled: a || !_.trim() || !D.allowed,
298
- "aria-disabled": a || !_.trim() || !D.allowed,
295
+ }), /* @__PURE__ */ A("button", {
296
+ onClick: () => r(t.id, g),
297
+ disabled: a || !g.trim() || !E.allowed,
298
+ "aria-disabled": a || !g.trim() || !E.allowed,
299
299
  className: "inline-flex items-center gap-2 rounded-md bg-status-error-bg px-4 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg/90 disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",
300
- title: D.allowed ? _.trim() ? void 0 : u("devportal.notesRequiredForRejection", "Notes required for rejection") : u("devportal.common.noPermission", "You do not have permission to perform this action"),
301
- children: [a ? /* @__PURE__ */ A(E, {
300
+ title: E.allowed ? g.trim() ? void 0 : u("devportal.notesRequiredForRejection", "Notes required for rejection") : u("devportal.common.noPermission", "You do not have permission to perform this action"),
301
+ children: [a ? /* @__PURE__ */ k(T, {
302
302
  size: 14,
303
303
  className: "animate-spin",
304
304
  "aria-hidden": "true"
305
- }) : /* @__PURE__ */ A(k, {
305
+ }) : /* @__PURE__ */ k(O, {
306
306
  size: 14,
307
307
  "aria-hidden": "true"
308
308
  }), u("devportal.reject", "Reject")]
@@ -312,34 +312,34 @@ var M = ({ manifest: e, tr: t }) => {
312
312
  })]
313
313
  });
314
314
  }, I = ({ app: t, onApproveVersion: n, onRejectVersion: r, processingVersionIds: i }) => {
315
- let { navigate: a, basePath: o } = e(), { t: s } = g(), c = (e, t) => {
315
+ let { navigate: a, basePath: o } = e(), { t: s } = j(), c = (e, t) => {
316
316
  let n = s(e);
317
317
  return n === e ? t : n;
318
318
  }, [l, u] = h(!1), d = t.versions.edges.map((e) => e.node).filter((e) => e.status === "pending_review");
319
- return d.length === 0 ? null : /* @__PURE__ */ j("div", {
319
+ return d.length === 0 ? null : /* @__PURE__ */ A("div", {
320
320
  className: "rounded-card border border-border-seam bg-bg-surface overflow-hidden",
321
- children: [/* @__PURE__ */ j("div", {
321
+ children: [/* @__PURE__ */ A("div", {
322
322
  className: "flex items-center gap-4 p-4",
323
323
  children: [
324
- t.iconUrl ? /* @__PURE__ */ A("img", {
324
+ t.iconUrl ? /* @__PURE__ */ k("img", {
325
325
  src: t.iconUrl,
326
326
  alt: t.name,
327
327
  className: "h-12 w-12 rounded-lg object-cover flex-shrink-0"
328
- }) : /* @__PURE__ */ A("div", {
328
+ }) : /* @__PURE__ */ k("div", {
329
329
  className: "h-12 w-12 rounded-lg bg-bg-sunken flex items-center justify-center flex-shrink-0",
330
- children: /* @__PURE__ */ A("span", {
330
+ children: /* @__PURE__ */ k("span", {
331
331
  className: "text-lg font-bold text-text-secondary",
332
332
  children: t.name.charAt(0).toUpperCase()
333
333
  })
334
334
  }),
335
- /* @__PURE__ */ j("div", {
335
+ /* @__PURE__ */ A("div", {
336
336
  className: "flex-1 min-w-0",
337
- children: [/* @__PURE__ */ j("div", {
337
+ children: [/* @__PURE__ */ A("div", {
338
338
  className: "flex items-center gap-2",
339
- children: [/* @__PURE__ */ A("h3", {
339
+ children: [/* @__PURE__ */ k("h3", {
340
340
  className: "font-semibold truncate",
341
341
  children: t.name
342
- }), /* @__PURE__ */ j("span", {
342
+ }), /* @__PURE__ */ A("span", {
343
343
  className: "inline-flex items-center rounded-full bg-status-info-bg-subtle px-2 py-0.5 text-xs font-medium text-status-info-text",
344
344
  children: [
345
345
  d.length,
@@ -348,27 +348,27 @@ var M = ({ manifest: e, tr: t }) => {
348
348
  " pending"
349
349
  ]
350
350
  })]
351
- }), /* @__PURE__ */ A("p", {
351
+ }), /* @__PURE__ */ k("p", {
352
352
  className: "text-sm text-text-secondary truncate",
353
353
  children: t.shortDescription ?? t.description ?? c("devportal.noDescription", "No description")
354
354
  })]
355
355
  }),
356
- /* @__PURE__ */ j("div", {
356
+ /* @__PURE__ */ A("div", {
357
357
  className: "flex items-center gap-2 flex-shrink-0",
358
- children: [/* @__PURE__ */ j("button", {
358
+ children: [/* @__PURE__ */ A("button", {
359
359
  onClick: () => a?.(`${o}/apps/${t.id}`),
360
360
  className: "inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken",
361
- children: [/* @__PURE__ */ A(C, { size: 14 }), c("devportal.view", "View")]
362
- }), /* @__PURE__ */ j("button", {
361
+ children: [/* @__PURE__ */ k(S, { size: 14 }), c("devportal.view", "View")]
362
+ }), /* @__PURE__ */ A("button", {
363
363
  onClick: () => u((e) => !e),
364
364
  className: "inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken",
365
- children: [A(l ? b : y, { size: 14 }), c("devportal.review", "Review")]
365
+ children: [k(l ? y : v, { size: 14 }), c("devportal.review", "Review")]
366
366
  })]
367
367
  })
368
368
  ]
369
- }), l && /* @__PURE__ */ A("div", {
369
+ }), l && /* @__PURE__ */ k("div", {
370
370
  className: "border-t bg-bg-sunken/30 p-4 space-y-4",
371
- children: d.map((e) => /* @__PURE__ */ A(L, {
371
+ children: d.map((e) => /* @__PURE__ */ k(L, {
372
372
  version: e,
373
373
  appId: t.id,
374
374
  appType: t.appType,
@@ -381,25 +381,25 @@ var M = ({ manifest: e, tr: t }) => {
381
381
  });
382
382
  }, L = ({ version: e, appId: t, appType: n, onApprove: r, onReject: i, processing: a, tr: o }) => {
383
383
  let [s, c] = h(""), l = p(m.APP_APPROVE), u = p(m.APP_REJECT);
384
- return /* @__PURE__ */ j("div", {
384
+ return /* @__PURE__ */ A("div", {
385
385
  className: "rounded-md border bg-bg-surface p-4 space-y-3",
386
386
  children: [
387
- /* @__PURE__ */ j("div", {
387
+ /* @__PURE__ */ A("div", {
388
388
  className: "flex items-center gap-3",
389
389
  children: [
390
- /* @__PURE__ */ A(T, {
390
+ /* @__PURE__ */ k(w, {
391
391
  size: 14,
392
392
  className: "text-text-secondary flex-shrink-0"
393
393
  }),
394
- /* @__PURE__ */ A("span", {
394
+ /* @__PURE__ */ k("span", {
395
395
  className: "font-mono font-semibold text-sm",
396
396
  children: e.version
397
397
  }),
398
- e.isLatest && /* @__PURE__ */ A("span", {
398
+ e.isLatest && /* @__PURE__ */ k("span", {
399
399
  className: "inline-flex items-center rounded-full bg-bg-sunken px-2 py-0.5 text-xs text-text-secondary",
400
400
  children: "Latest"
401
401
  }),
402
- /* @__PURE__ */ j("span", {
402
+ /* @__PURE__ */ A("span", {
403
403
  className: "text-xs text-text-secondary ml-auto",
404
404
  children: [
405
405
  o("devportal.submitted", "Submitted"),
@@ -414,27 +414,27 @@ var M = ({ manifest: e, tr: t }) => {
414
414
  })
415
415
  ]
416
416
  }),
417
- e.releaseNotes && /* @__PURE__ */ A("p", {
417
+ e.releaseNotes && /* @__PURE__ */ k("p", {
418
418
  className: "text-sm text-text-secondary",
419
419
  children: e.releaseNotes
420
420
  }),
421
- N[n] ? /* @__PURE__ */ A(P, {
421
+ N[n] ? /* @__PURE__ */ k(P, {
422
422
  appType: n,
423
423
  packageUrl: e.packageUrl,
424
424
  packageSize: e.packageSize,
425
425
  tr: o
426
- }) : e.packageUrl && /* @__PURE__ */ A("div", {
426
+ }) : e.packageUrl && /* @__PURE__ */ k("div", {
427
427
  className: "flex flex-wrap gap-2",
428
- children: /* @__PURE__ */ j("a", {
428
+ children: /* @__PURE__ */ A("a", {
429
429
  href: e.packageUrl,
430
430
  download: !0,
431
431
  target: "_blank",
432
432
  rel: "noopener noreferrer",
433
433
  className: "inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken",
434
434
  children: [
435
- /* @__PURE__ */ A(S, { size: 14 }),
435
+ /* @__PURE__ */ k(x, { size: 14 }),
436
436
  o("devportal.downloadPackage", "Download Package"),
437
- e.packageSize && /* @__PURE__ */ j("span", {
437
+ e.packageSize && /* @__PURE__ */ A("span", {
438
438
  className: "text-text-secondary text-xs ml-1",
439
439
  children: [
440
440
  "(",
@@ -445,52 +445,52 @@ var M = ({ manifest: e, tr: t }) => {
445
445
  ]
446
446
  })
447
447
  }),
448
- e.manifest && /* @__PURE__ */ A(M, {
448
+ e.manifest && /* @__PURE__ */ k(M, {
449
449
  manifest: e.manifest,
450
450
  tr: o
451
451
  }),
452
- /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("label", {
452
+ /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("label", {
453
453
  className: "text-sm font-medium",
454
454
  children: o("devportal.reviewNotes", "Review Notes")
455
- }), /* @__PURE__ */ A("textarea", {
455
+ }), /* @__PURE__ */ k("textarea", {
456
456
  value: s,
457
457
  onChange: (e) => c(e.target.value),
458
458
  placeholder: o("devportal.reviewNotesPlaceholder", "Add feedback for the developer (required for rejection)..."),
459
459
  rows: 2,
460
460
  className: "mt-1 w-full rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm ring-offset-background placeholder:text-text-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] resize-none"
461
461
  })] }),
462
- /* @__PURE__ */ j("div", {
462
+ /* @__PURE__ */ A("div", {
463
463
  className: "flex gap-3",
464
- children: [/* @__PURE__ */ j("button", {
464
+ children: [/* @__PURE__ */ A("button", {
465
465
  onClick: () => r(e.id, t, s),
466
466
  disabled: a || !l.allowed,
467
467
  "aria-disabled": a || !l.allowed,
468
468
  className: "inline-flex items-center gap-2 rounded-md bg-status-success-bg px-4 py-2 text-sm font-medium text-white hover:bg-status-success-bg/90 disabled:opacity-50 disabled:cursor-not-allowed",
469
- children: [a ? /* @__PURE__ */ A(E, {
469
+ children: [a ? /* @__PURE__ */ k(T, {
470
470
  size: 14,
471
471
  className: "animate-spin"
472
- }) : /* @__PURE__ */ A(v, { size: 14 }), o("devportal.approveVersion", "Approve Version")]
473
- }), /* @__PURE__ */ j("button", {
472
+ }) : /* @__PURE__ */ k(_, { size: 14 }), o("devportal.approveVersion", "Approve Version")]
473
+ }), /* @__PURE__ */ A("button", {
474
474
  onClick: () => i(e.id, t, s),
475
475
  disabled: a || !s.trim() || !u.allowed,
476
476
  "aria-disabled": a || !s.trim() || !u.allowed,
477
477
  className: "inline-flex items-center gap-2 rounded-md bg-status-error-bg px-4 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg/90 disabled:opacity-50 disabled:cursor-not-allowed",
478
- children: [a ? /* @__PURE__ */ A(E, {
478
+ children: [a ? /* @__PURE__ */ k(T, {
479
479
  size: 14,
480
480
  className: "animate-spin"
481
- }) : /* @__PURE__ */ A(k, { size: 14 }), o("devportal.rejectVersion", "Reject Version")]
481
+ }) : /* @__PURE__ */ k(O, { size: 14 }), o("devportal.rejectVersion", "Reject Version")]
482
482
  })]
483
483
  })
484
484
  ]
485
485
  });
486
486
  }, R = () => {
487
- let { t: e } = g(), i = (t, n) => {
487
+ let { t: e } = j(), i = (t, n) => {
488
488
  let r = e(t);
489
489
  return r === t ? n : r;
490
- }, [p, y] = h(""), [b, S] = h(/* @__PURE__ */ new Set()), [C, w] = h(/* @__PURE__ */ new Set()), [D, k] = h(null), [M, N] = h(null), P = (e) => S((t) => new Set(t).add(e)), L = (e) => S((t) => {
490
+ }, [p, v] = h(""), [y, x] = h(/* @__PURE__ */ new Set()), [S, C] = h(/* @__PURE__ */ new Set()), [E, O] = h(null), [M, N] = h(null), P = (e) => x((t) => new Set(t).add(e)), L = (e) => x((t) => {
491
491
  let n = new Set(t);
492
492
  return n.delete(e), n;
493
- }), R = (e) => w((t) => new Set(t).add(e)), z = (e) => w((t) => {
493
+ }), R = (e) => C((t) => new Set(t).add(e)), z = (e) => C((t) => {
494
494
  let n = new Set(t);
495
495
  return n.delete(e), n;
496
496
  }), { data: B, loading: V, error: H, refetch: U } = a({
@@ -503,7 +503,7 @@ var M = ({ manifest: e, tr: t }) => {
503
503
  variables: { limit: 100 },
504
504
  fetchPolicy: "cache-and-network"
505
505
  }), [K] = n(), [q] = s(), [J] = r(), [Y] = c(), X = B?.applications?.edges?.map((e) => e.node) ?? [], Z = W?.applicationsWithPendingVersions?.edges?.map((e) => e.node) ?? [], Q = new Set(Z.map((e) => e.id)), $ = p ? X.filter((e) => e.name.toLowerCase().includes(p.toLowerCase()) || (e.shortDescription ?? "").toLowerCase().includes(p.toLowerCase())) : X, ee = async (e, t) => {
506
- P(e), k(null), N(null);
506
+ P(e), O(null), N(null);
507
507
  try {
508
508
  let n = await K({ variables: {
509
509
  id: e,
@@ -512,13 +512,13 @@ var M = ({ manifest: e, tr: t }) => {
512
512
  if (n.error) throw n.error;
513
513
  N(i("devportal.applicationApprovedSuccess", "Application approved successfully.")), await U();
514
514
  } catch (e) {
515
- k(e instanceof Error ? e.message : i("devportal.failedToApproveApplication", "Failed to approve application"));
515
+ O(e instanceof Error ? e.message : i("devportal.failedToApproveApplication", "Failed to approve application"));
516
516
  } finally {
517
517
  L(e);
518
518
  }
519
519
  }, te = async (e, t) => {
520
520
  if (t.trim()) {
521
- P(e), k(null), N(null);
521
+ P(e), O(null), N(null);
522
522
  try {
523
523
  let n = await q({ variables: {
524
524
  id: e,
@@ -527,13 +527,13 @@ var M = ({ manifest: e, tr: t }) => {
527
527
  if (n.error) throw n.error;
528
528
  N(i("devportal.applicationRejected", "Application rejected.")), await U();
529
529
  } catch (e) {
530
- k(e instanceof Error ? e.message : i("devportal.failedToRejectApplication", "Failed to reject application"));
530
+ O(e instanceof Error ? e.message : i("devportal.failedToRejectApplication", "Failed to reject application"));
531
531
  } finally {
532
532
  L(e);
533
533
  }
534
534
  }
535
535
  }, ne = async (e, t, n) => {
536
- R(e), k(null), N(null);
536
+ R(e), O(null), N(null);
537
537
  try {
538
538
  let t = await J({ variables: {
539
539
  id: e,
@@ -542,13 +542,13 @@ var M = ({ manifest: e, tr: t }) => {
542
542
  if (t.error) throw t.error;
543
543
  N(i("devportal.versionApprovedSuccess", "Version approved and published.")), await G();
544
544
  } catch (e) {
545
- k(e instanceof Error ? e.message : i("devportal.failedToApproveVersion", "Failed to approve version"));
545
+ O(e instanceof Error ? e.message : i("devportal.failedToApproveVersion", "Failed to approve version"));
546
546
  } finally {
547
547
  z(e);
548
548
  }
549
549
  }, re = async (e, t, n) => {
550
550
  if (n.trim()) {
551
- R(e), k(null), N(null);
551
+ R(e), O(null), N(null);
552
552
  try {
553
553
  let t = await Y({ variables: {
554
554
  id: e,
@@ -557,44 +557,44 @@ var M = ({ manifest: e, tr: t }) => {
557
557
  if (t.error) throw t.error;
558
558
  N(i("devportal.versionRejectedSuccess", "Version rejected and returned to draft.")), await G();
559
559
  } catch (e) {
560
- k(e instanceof Error ? e.message : i("devportal.failedToRejectVersion", "Failed to reject version"));
560
+ O(e instanceof Error ? e.message : i("devportal.failedToRejectVersion", "Failed to reject version"));
561
561
  } finally {
562
562
  z(e);
563
563
  }
564
564
  }
565
565
  };
566
- return V && !B ? /* @__PURE__ */ A(u, {
566
+ return V && !B ? /* @__PURE__ */ k(u, {
567
567
  title: i("devportal.appReviewQueue", "App Review Queue"),
568
568
  description: i("devportal.appReviewQueueDescription", "Review submitted applications for approval"),
569
- children: /* @__PURE__ */ A("div", {
569
+ children: /* @__PURE__ */ k("div", {
570
570
  className: "flex items-center justify-center py-12",
571
- children: /* @__PURE__ */ A(E, { className: "h-8 w-8 animate-spin text-text-secondary" })
571
+ children: /* @__PURE__ */ k(T, { className: "h-8 w-8 animate-spin text-text-secondary" })
572
572
  })
573
- }) : H ? /* @__PURE__ */ A(u, {
573
+ }) : H ? /* @__PURE__ */ k(u, {
574
574
  title: i("devportal.appReviewQueue", "App Review Queue"),
575
575
  description: i("devportal.appReviewQueueDescription", "Review submitted applications for approval"),
576
- children: /* @__PURE__ */ j("div", {
576
+ children: /* @__PURE__ */ A("div", {
577
577
  className: "rounded-lg border border-status-error-border/50 bg-status-error-bg/10 p-6 text-center",
578
578
  children: [
579
- /* @__PURE__ */ A(_, { className: "mx-auto h-8 w-8 text-status-error-text" }),
580
- /* @__PURE__ */ A("p", {
579
+ /* @__PURE__ */ k(g, { className: "mx-auto h-8 w-8 text-status-error-text" }),
580
+ /* @__PURE__ */ k("p", {
581
581
  className: "mt-2 text-sm text-text-secondary",
582
582
  children: l(H)
583
583
  }),
584
- /* @__PURE__ */ A("button", {
584
+ /* @__PURE__ */ k("button", {
585
585
  onClick: () => U(),
586
586
  className: "mt-4 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90",
587
587
  children: i("devportal.retry", "Retry")
588
588
  })
589
589
  ]
590
590
  })
591
- }) : /* @__PURE__ */ A(f, {
591
+ }) : /* @__PURE__ */ k(f, {
592
592
  permission: m.REVIEW_MANAGE,
593
- children: /* @__PURE__ */ j(u, {
593
+ children: /* @__PURE__ */ A(u, {
594
594
  title: i("devportal.appReviewQueue", "App Review Queue"),
595
595
  description: i("devportal.appReviewQueueFullDescription", "Review submitted applications for approval or rejection"),
596
596
  purpose: i("devportal.appReviewQueuePurpose", "The moderation queue for apps developers have submitted to the marketplace. Open each submission to check its listing, permissions, and behaviour against the guidelines, then approve it to go live or reject it with feedback."),
597
- actions: /* @__PURE__ */ A("button", {
597
+ actions: /* @__PURE__ */ k("button", {
598
598
  onClick: () => {
599
599
  U(), G();
600
600
  },
@@ -602,15 +602,15 @@ var M = ({ manifest: e, tr: t }) => {
602
602
  children: i("devportal.refresh", "Refresh")
603
603
  }),
604
604
  children: [
605
- /* @__PURE__ */ j("div", {
605
+ /* @__PURE__ */ A("div", {
606
606
  className: "flex items-center gap-6 rounded-card border border-border-seam bg-bg-surface p-4",
607
607
  children: [
608
- /* @__PURE__ */ j("div", {
608
+ /* @__PURE__ */ A("div", {
609
609
  className: "flex items-center gap-2",
610
- children: [/* @__PURE__ */ A(x, {
610
+ children: [/* @__PURE__ */ k(b, {
611
611
  size: 18,
612
612
  className: "text-status-warning-text"
613
- }), /* @__PURE__ */ j("span", {
613
+ }), /* @__PURE__ */ A("span", {
614
614
  className: "text-sm font-medium",
615
615
  children: [
616
616
  X.length,
@@ -619,12 +619,12 @@ var M = ({ manifest: e, tr: t }) => {
619
619
  ]
620
620
  })]
621
621
  }),
622
- Z.length > 0 && /* @__PURE__ */ j("div", {
622
+ Z.length > 0 && /* @__PURE__ */ A("div", {
623
623
  className: "flex items-center gap-2",
624
- children: [/* @__PURE__ */ A(T, {
624
+ children: [/* @__PURE__ */ k(w, {
625
625
  size: 18,
626
626
  className: "text-status-info-text"
627
- }), /* @__PURE__ */ j("span", {
627
+ }), /* @__PURE__ */ A("span", {
628
628
  className: "text-sm font-medium",
629
629
  children: [
630
630
  Z.length,
@@ -633,68 +633,68 @@ var M = ({ manifest: e, tr: t }) => {
633
633
  ]
634
634
  })]
635
635
  }),
636
- (b.size > 0 || C.size > 0) && /* @__PURE__ */ j("div", {
636
+ (y.size > 0 || S.size > 0) && /* @__PURE__ */ A("div", {
637
637
  className: "flex items-center gap-2 text-sm text-text-secondary",
638
- children: [/* @__PURE__ */ A(E, {
638
+ children: [/* @__PURE__ */ k(T, {
639
639
  size: 14,
640
640
  className: "animate-spin"
641
641
  }), i("devportal.processing", "Processing...")]
642
642
  })
643
643
  ]
644
644
  }),
645
- M && /* @__PURE__ */ j("div", {
645
+ M && /* @__PURE__ */ A("div", {
646
646
  className: "flex items-center gap-2 rounded-lg border border-border-subtle bg-status-success-bg-subtle px-4 py-3 text-sm text-status-success-text",
647
- children: [/* @__PURE__ */ A(v, { size: 16 }), M]
647
+ children: [/* @__PURE__ */ k(_, { size: 16 }), M]
648
648
  }),
649
- D && /* @__PURE__ */ j("div", {
649
+ E && /* @__PURE__ */ A("div", {
650
650
  className: "flex items-center gap-2 rounded-lg border border-status-error-border/50 bg-status-error-bg/10 px-4 py-3 text-sm text-status-error-text",
651
- children: [/* @__PURE__ */ A(_, { size: 16 }), D]
651
+ children: [/* @__PURE__ */ k(g, { size: 16 }), E]
652
652
  }),
653
- X.length > 0 && /* @__PURE__ */ j("div", {
653
+ X.length > 0 && /* @__PURE__ */ A("div", {
654
654
  className: "relative max-w-sm",
655
- children: [/* @__PURE__ */ A(O, {
655
+ children: [/* @__PURE__ */ k(D, {
656
656
  size: 14,
657
657
  className: "absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary"
658
- }), /* @__PURE__ */ A("input", {
658
+ }), /* @__PURE__ */ k("input", {
659
659
  type: "text",
660
660
  placeholder: i("devportal.searchSubmittedApps", "Search submitted apps..."),
661
661
  value: p,
662
- onChange: (e) => y(e.target.value),
662
+ onChange: (e) => v(e.target.value),
663
663
  className: "w-full rounded-md border bg-bg-surface pl-9 pr-4 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary"
664
664
  })]
665
665
  }),
666
- /* @__PURE__ */ A(d, {
666
+ /* @__PURE__ */ k(d, {
667
667
  title: i("devportal.newAppSubmissions", "New App Submissions"),
668
- children: $.length === 0 ? /* @__PURE__ */ A(t, {
668
+ children: $.length === 0 ? /* @__PURE__ */ k(t, {
669
669
  illustration: "empty-data",
670
- icon: /* @__PURE__ */ A(v, { size: 32 }),
670
+ icon: /* @__PURE__ */ k(_, { size: 32 }),
671
671
  title: i("devportal.noAppsPendingReview", "No apps pending review"),
672
672
  description: p ? i("devportal.noAppsMatchSearch", "No apps match your search") : i("devportal.allApplicationsReviewed", "All submitted applications have been reviewed")
673
- }) : /* @__PURE__ */ A("div", {
673
+ }) : /* @__PURE__ */ k("div", {
674
674
  className: "space-y-3",
675
- children: $.map((e) => /* @__PURE__ */ A(F, {
675
+ children: $.map((e) => /* @__PURE__ */ k(F, {
676
676
  app: e,
677
677
  onApprove: ee,
678
678
  onReject: te,
679
- processing: b.has(e.id),
679
+ processing: y.has(e.id),
680
680
  hasPendingVersions: Q.has(e.id)
681
681
  }, e.id))
682
682
  })
683
683
  }),
684
- /* @__PURE__ */ A(d, {
684
+ /* @__PURE__ */ k(d, {
685
685
  title: i("devportal.versionUpdates", "Version Updates (Published Apps)"),
686
- children: Z.length === 0 ? /* @__PURE__ */ A(t, {
686
+ children: Z.length === 0 ? /* @__PURE__ */ k(t, {
687
687
  illustration: "empty-data",
688
- icon: /* @__PURE__ */ A(T, { size: 32 }),
688
+ icon: /* @__PURE__ */ k(w, { size: 32 }),
689
689
  title: i("devportal.noPendingVersions", "No pending version updates"),
690
690
  description: i("devportal.allVersionsReviewed", "All version updates from published apps have been reviewed")
691
- }) : /* @__PURE__ */ A("div", {
691
+ }) : /* @__PURE__ */ k("div", {
692
692
  className: "space-y-3",
693
- children: Z.map((e) => /* @__PURE__ */ A(I, {
693
+ children: Z.map((e) => /* @__PURE__ */ k(I, {
694
694
  app: e,
695
695
  onApproveVersion: ne,
696
696
  onRejectVersion: re,
697
- processingVersionIds: C
697
+ processingVersionIds: S
698
698
  }, e.id))
699
699
  })
700
700
  })