@burdenoff/microfe-devportal 2026.623.5 → 2026.623.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/devportal/DevportalRoutes.js +123 -108
  2. package/dist/devportal/DevportalRoutes.js.map +1 -1
  3. package/dist/devportal/components/SectionNav.js +71 -5
  4. package/dist/devportal/components/SectionNav.js.map +1 -0
  5. package/dist/devportal/components/index.js +1 -1
  6. package/dist/devportal/hooks/useGraphQL.js +1 -1
  7. package/dist/devportal/pages/AdminReviewPage.js +39 -39
  8. package/dist/devportal/pages/AnalyticsDashboardPage.js +54 -54
  9. package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
  10. package/dist/devportal/pages/ApiKeysPage.js +53 -53
  11. package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
  12. package/dist/devportal/pages/AppLogsPage.js +9 -9
  13. package/dist/devportal/pages/ApplicationDetailPage.js +462 -462
  14. package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
  15. package/dist/devportal/pages/ApplicationVersionsPage.js +120 -120
  16. package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
  17. package/dist/devportal/pages/ApplicationsPage.js +73 -73
  18. package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
  19. package/dist/devportal/pages/CreateApiKeyPage.js +20 -20
  20. package/dist/devportal/pages/CreateApplicationPage.js +32 -32
  21. package/dist/devportal/pages/CreateOAuthClientPage.js +18 -18
  22. package/dist/devportal/pages/CreateOrganizationPage.js +12 -12
  23. package/dist/devportal/pages/CreateWebhookPage.js +23 -23
  24. package/dist/devportal/pages/DashboardPage.js +23 -23
  25. package/dist/devportal/pages/DelegationsPage.js +22 -22
  26. package/dist/devportal/pages/EditApplicationPage.js +283 -283
  27. package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
  28. package/dist/devportal/pages/ListingPreviewPage.js +9 -9
  29. package/dist/devportal/pages/OAuthClientDetailPage.js +15 -15
  30. package/dist/devportal/pages/OAuthClientsPage.js +14 -14
  31. package/dist/devportal/pages/OrganizationDetailPage.js +84 -84
  32. package/dist/devportal/pages/OrganizationMembersPage.js +260 -260
  33. package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
  34. package/dist/devportal/pages/OrganizationsPage.js +16 -16
  35. package/dist/devportal/pages/PublishPage.js +16 -16
  36. package/dist/devportal/pages/PublisherProfilePage.js +18 -18
  37. package/dist/devportal/pages/RevenueDashboardPage.js +29 -29
  38. package/dist/devportal/pages/SettingsPage.js +17 -17
  39. package/dist/devportal/pages/SetupPage.js +99 -99
  40. package/dist/devportal/pages/SetupPage.js.map +1 -1
  41. package/dist/devportal/pages/WebhookDetailPage.js +143 -143
  42. package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
  43. package/dist/devportal/pages/WebhooksPage.js +133 -133
  44. package/dist/devportal/pages/WebhooksPage.js.map +1 -1
  45. package/package.json +1 -1
@@ -1,11 +1,11 @@
1
1
  import { useDevportal as e } from "../providers/DevportalProvider.js";
2
2
  import { cn as t } from "../utils/cn.js";
3
- import { PageLayout as n, PageSection as r } from "../components/PageLayout.js";
4
- import { nativeCopyText as i, nativeImpact as a, nativeNotify as o } from "../../utils/nativeBridge.js";
5
- import { InputField as s, SelectField as c, TextareaField as l } from "../components/FormField.js";
6
- import { useCreateAuthAppMutation as u } from "../../generated/global-operations.js";
7
- import { PermissionGuard as d } from "../components/PermissionGuard.js";
8
- import { getErrorMessage as f } from "../hooks/useGraphQL.js";
3
+ import { useCreateAuthAppMutation as n } from "../../generated/global-operations.js";
4
+ import { getErrorMessage as r } from "../hooks/useGraphQL.js";
5
+ import { PageLayout as i, PageSection as a } from "../components/PageLayout.js";
6
+ import { nativeCopyText as o, nativeImpact as s, nativeNotify as c } from "../../utils/nativeBridge.js";
7
+ import { InputField as l, SelectField as u, TextareaField as d } from "../components/FormField.js";
8
+ import { PermissionGuard as f } from "../components/PermissionGuard.js";
9
9
  import "../components/index.js";
10
10
  import { DEVPORTAL_PERMISSIONS as p } from "../constants/permissions.js";
11
11
  import "../hooks/index.js";
@@ -19,7 +19,7 @@ var C = () => {
19
19
  let { navigate: C, basePath: w } = e(), { t: T } = h(), E = (e, t) => {
20
20
  let n = T(e);
21
21
  return n === e ? t : n;
22
- }, [D, O] = m(""), [k, A] = m(""), [j, M] = m("CONFIDENTIAL"), [N, P] = m([]), [F, I] = m(""), [L, R] = m([]), [z, B] = m(""), [V, H] = m(null), [U, W] = m(null), [G, { loading: K, error: q }] = u(), J = (e) => {
22
+ }, [D, O] = m(""), [k, A] = m(""), [j, M] = m("CONFIDENTIAL"), [N, P] = m([]), [F, I] = m(""), [L, R] = m([]), [z, B] = m(""), [V, H] = m(null), [U, W] = m(null), [G, { loading: K, error: q }] = n(), J = (e) => {
23
23
  C?.(`${w}${e}`);
24
24
  }, Y = () => {
25
25
  let e = F.trim();
@@ -32,7 +32,7 @@ var C = () => {
32
32
  }, Q = (e) => {
33
33
  R(L.filter((t) => t !== e));
34
34
  };
35
- return V ? /* @__PURE__ */ b(n, {
35
+ return V ? /* @__PURE__ */ b(i, {
36
36
  title: E("devportal.appCreated", "App Created!"),
37
37
  description: E("devportal.appCreatedDescription", "Save the client secret below. It will not be shown again."),
38
38
  backLink: "/oauth",
@@ -56,7 +56,7 @@ var C = () => {
56
56
  children: V
57
57
  }), /* @__PURE__ */ b("button", {
58
58
  onClick: async () => {
59
- a("light"), o(await i(V) ? "success" : "error");
59
+ s("light"), c(await o(V) ? "success" : "error");
60
60
  },
61
61
  className: "rounded bg-status-success-bg-subtle px-3 py-2 text-sm font-medium text-status-success-text hover:bg-status-success-bg-subtle transition-colors",
62
62
  children: E("devportal.copy", "Copy")
@@ -80,9 +80,9 @@ var C = () => {
80
80
  })
81
81
  ]
82
82
  })
83
- }) : /* @__PURE__ */ b(d, {
83
+ }) : /* @__PURE__ */ b(f, {
84
84
  permission: p.APP_CREATE,
85
- children: /* @__PURE__ */ b(n, {
85
+ children: /* @__PURE__ */ b(i, {
86
86
  title: E("devportal.createOAuthApp", "Create OAuth App"),
87
87
  description: E("devportal.createOAuthAppDescription", "Register a new OAuth application for authentication"),
88
88
  backLink: "/oauth",
@@ -106,26 +106,26 @@ var C = () => {
106
106
  className: "rounded-lg border border-destructive/50 bg-destructive/10 p-4",
107
107
  children: /* @__PURE__ */ b("p", {
108
108
  className: "text-sm text-destructive",
109
- children: f(q)
109
+ children: r(q)
110
110
  })
111
111
  }),
112
- /* @__PURE__ */ x(r, {
112
+ /* @__PURE__ */ x(a, {
113
113
  title: E("devportal.basicInformation", "Basic Information"),
114
114
  children: [
115
- /* @__PURE__ */ b(s, {
115
+ /* @__PURE__ */ b(l, {
116
116
  label: E("devportal.appName", "App Name"),
117
117
  value: D,
118
118
  onChange: (e) => O(e.target.value),
119
119
  placeholder: E("devportal.myOAuthAppPlaceholder", "My OAuth App"),
120
120
  required: !0
121
121
  }),
122
- /* @__PURE__ */ b(l, {
122
+ /* @__PURE__ */ b(d, {
123
123
  label: E("devportal.description", "Description"),
124
124
  value: k,
125
125
  onChange: (e) => A(e.target.value),
126
126
  placeholder: E("devportal.appDescriptionPlaceholder", "Brief description of what this app does...")
127
127
  }),
128
- /* @__PURE__ */ b(c, {
128
+ /* @__PURE__ */ b(u, {
129
129
  label: E("devportal.appType", "App Type"),
130
130
  value: j,
131
131
  onChange: (e) => M(e.target.value),
@@ -157,7 +157,7 @@ var C = () => {
157
157
  /* @__PURE__ */ x(S, {
158
158
  title: E("devportal.advancedOAuthSettings", "Advanced settings"),
159
159
  description: E("devportal.advancedOAuthSettingsDescription", "Advanced grant types, PKCE-required toggles, scope tuning, and redirect URIs."),
160
- children: [/* @__PURE__ */ b(r, {
160
+ children: [/* @__PURE__ */ b(a, {
161
161
  title: E("devportal.scopes", "Scopes"),
162
162
  children: /* @__PURE__ */ x("div", {
163
163
  className: "space-y-3",
@@ -191,7 +191,7 @@ var C = () => {
191
191
  }, e))
192
192
  })]
193
193
  })
194
- }), /* @__PURE__ */ b(r, {
194
+ }), /* @__PURE__ */ b(a, {
195
195
  title: E("devportal.redirectUris", "Redirect URIs"),
196
196
  children: /* @__PURE__ */ x("div", {
197
197
  className: "space-y-3",
@@ -1,8 +1,8 @@
1
1
  import { useDevportal as e } from "../providers/DevportalProvider.js";
2
2
  import { useDevportalEventBus as t } from "../events/index.js";
3
- import { PageLayout as n, PageSection as r } from "../components/PageLayout.js";
4
- import { InputField as i, TextareaField as a } from "../components/FormField.js";
5
- import { useCreateBillingAccountMutation as o, useCreateOrganizationMutation as s, useLinkDevOrgBillingAccountMutation as c } from "../../generated/global-operations.js";
3
+ import { useCreateBillingAccountMutation as n, useCreateOrganizationMutation as r, useLinkDevOrgBillingAccountMutation as i } from "../../generated/global-operations.js";
4
+ import { PageLayout as a, PageSection as o } from "../components/PageLayout.js";
5
+ import { InputField as s, TextareaField as c } from "../components/FormField.js";
6
6
  import { PermissionGuard as l } from "../components/PermissionGuard.js";
7
7
  import "../components/index.js";
8
8
  import { DEVPORTAL_PERMISSIONS as u } from "../constants/permissions.js";
@@ -16,7 +16,7 @@ var y = () => {
16
16
  let { navigate: y, basePath: b, currentUser: x } = e(), { t: S } = f(), C = (e, t) => {
17
17
  let n = S(e);
18
18
  return n === e ? t : n;
19
- }, [w, T] = d({}), [E, { loading: D }] = s(), [O] = o(), [k] = c(), A = t(), [j, M] = d({
19
+ }, [w, T] = d({}), [E, { loading: D }] = r(), [O] = n(), [k] = i(), A = t(), [j, M] = d({
20
20
  name: "",
21
21
  slug: "",
22
22
  description: "",
@@ -49,7 +49,7 @@ var y = () => {
49
49
  };
50
50
  return /* @__PURE__ */ _(l, {
51
51
  permission: u.ORG_CREATE,
52
- children: /* @__PURE__ */ _(n, {
52
+ children: /* @__PURE__ */ _(a, {
53
53
  title: C("devportal.createOrganization", "Create Organization"),
54
54
  description: C("devportal.createOrganizationDescription", "Set up a developer organization to collaborate with your team"),
55
55
  backLink: `${b}/organizations`,
@@ -88,13 +88,13 @@ var y = () => {
88
88
  },
89
89
  className: "space-y-8 max-w-3xl",
90
90
  children: [
91
- /* @__PURE__ */ _(r, {
91
+ /* @__PURE__ */ _(o, {
92
92
  title: C("devportal.organizationDetails", "Organization Details"),
93
93
  description: C("devportal.organizationDetailsDescription", "Basic information about your organization"),
94
94
  children: /* @__PURE__ */ v("div", {
95
95
  className: "space-y-4",
96
96
  children: [
97
- /* @__PURE__ */ _(i, {
97
+ /* @__PURE__ */ _(s, {
98
98
  label: C("devportal.organizationName", "Organization Name"),
99
99
  value: j.name,
100
100
  onChange: F,
@@ -103,7 +103,7 @@ var y = () => {
103
103
  error: w.name,
104
104
  hint: C("devportal.organizationNameHint", "Your organization's display name")
105
105
  }),
106
- /* @__PURE__ */ _(i, {
106
+ /* @__PURE__ */ _(s, {
107
107
  label: C("devportal.slug", "Slug"),
108
108
  value: j.slug,
109
109
  onChange: (e) => I("slug", e.target.value.toLowerCase()),
@@ -112,14 +112,14 @@ var y = () => {
112
112
  error: w.slug,
113
113
  hint: C("devportal.slugHint", "URL-friendly identifier (auto-generated from name)")
114
114
  }),
115
- /* @__PURE__ */ _(a, {
115
+ /* @__PURE__ */ _(c, {
116
116
  label: C("devportal.description", "Description"),
117
117
  value: j.description,
118
118
  onChange: (e) => I("description", e.target.value),
119
119
  placeholder: C("devportal.orgDescriptionPlaceholder", "Tell us about your organization..."),
120
120
  rows: 3
121
121
  }),
122
- /* @__PURE__ */ _(i, {
122
+ /* @__PURE__ */ _(s, {
123
123
  label: C("devportal.websiteUrl", "Website URL"),
124
124
  type: "url",
125
125
  value: j.websiteUrl,
@@ -128,14 +128,14 @@ var y = () => {
128
128
  }),
129
129
  /* @__PURE__ */ v("div", {
130
130
  className: "grid gap-4 sm:grid-cols-2",
131
- children: [/* @__PURE__ */ _(i, {
131
+ children: [/* @__PURE__ */ _(s, {
132
132
  label: C("devportal.contactEmail", "Contact Email"),
133
133
  type: "email",
134
134
  value: j.contactEmail,
135
135
  onChange: (e) => I("contactEmail", e.target.value),
136
136
  placeholder: "contact@example.com",
137
137
  error: w.contactEmail
138
- }), /* @__PURE__ */ _(i, {
138
+ }), /* @__PURE__ */ _(s, {
139
139
  label: C("devportal.supportEmail", "Support Email"),
140
140
  type: "email",
141
141
  value: j.supportEmail,
@@ -1,11 +1,11 @@
1
1
  import { useDevportal as e } from "../providers/DevportalProvider.js";
2
2
  import { useDevportalEventBus as t } from "../events/index.js";
3
- import { PageLayout as n, PageSection as r } from "../components/PageLayout.js";
4
- import { CheckboxField as i, InputField as a, TextareaField as o } from "../components/FormField.js";
5
- import { Alert as s } from "../components/ConfirmDialog.js";
6
- import { useCreateWebhookMutation as c, useGetApplicationQuery as l, useGetApplicationsQuery as u } from "../../generated/global-operations.js";
7
- import { PermissionGuard as d } from "../components/PermissionGuard.js";
8
- import { getErrorMessage as f } from "../hooks/useGraphQL.js";
3
+ import { useCreateWebhookMutation as n, useGetApplicationQuery as r, useGetApplicationsQuery as i } from "../../generated/global-operations.js";
4
+ import { getErrorMessage as a } from "../hooks/useGraphQL.js";
5
+ import { PageLayout as o, PageSection as s } from "../components/PageLayout.js";
6
+ import { CheckboxField as c, InputField as l, TextareaField as u } from "../components/FormField.js";
7
+ import { Alert as d } from "../components/ConfirmDialog.js";
8
+ import { PermissionGuard as f } from "../components/PermissionGuard.js";
9
9
  import "../components/index.js";
10
10
  import { DEVPORTAL_PERMISSIONS as p } from "../constants/permissions.js";
11
11
  import { useDevportalPermission as m } from "../hooks/usePermission.js";
@@ -36,7 +36,7 @@ var T = {
36
36
  events: [],
37
37
  retryEnabled: !0,
38
38
  maxRetries: 3
39
- }), [A, j] = y({}), [M, N] = y(null), { data: P } = l({
39
+ }), [A, j] = y({}), [M, N] = y(null), { data: P } = r({
40
40
  variables: { id: h ?? "" },
41
41
  skip: !h,
42
42
  fetchPolicy: "cache-first"
@@ -47,11 +47,11 @@ var T = {
47
47
  let t = window.__breadcrumbRegistry;
48
48
  return t?.register(h, e), () => t?.unregister(h);
49
49
  }, [h, P?.application?.name]);
50
- let { data: F, loading: I, error: L } = u({
50
+ let { data: F, loading: I, error: L } = i({
51
51
  variables: { limit: 100 },
52
52
  skip: !!h,
53
53
  fetchPolicy: "cache-and-network"
54
- }), [R, { loading: z }] = c(), B = t(), V = g(), H = m(p.WEBHOOK_CREATE), U = v(() => F?.applications?.edges?.map((e) => e.node).map((e) => ({
54
+ }), [R, { loading: z }] = n(), B = t(), V = g(), H = m(p.WEBHOOK_CREATE), U = v(() => F?.applications?.edges?.map((e) => e.node).map((e) => ({
55
55
  id: e.id,
56
56
  name: e.name,
57
57
  slug: e.slug
@@ -79,9 +79,9 @@ var T = {
79
79
  let e = {};
80
80
  return O.applicationId || (e.applicationId = V("devportal.createWebhook.errors.appRequired", "Select an application")), O.name.trim() || (e.name = V("devportal.createWebhook.errors.nameRequired", "Name is required")), O.url.trim() ? /^https:\/\//i.test(O.url) || (e.url = V("devportal.createWebhook.errors.urlHttps", "Endpoint URL must use HTTPS")) : e.url = V("devportal.createWebhook.errors.urlRequired", "Endpoint URL is required"), O.events.length === 0 && (e.events = V("devportal.createWebhook.errors.eventsRequired", "Select at least one event")), O.retryEnabled && (O.maxRetries < 1 || O.maxRetries > 10) && (e.maxRetries = V("devportal.createWebhook.errors.retriesRange", "Retry count must be between 1 and 10")), j(e), Object.keys(e).length === 0;
81
81
  };
82
- return /* @__PURE__ */ C(d, {
82
+ return /* @__PURE__ */ C(f, {
83
83
  permission: p.WEBHOOK_CREATE,
84
- children: /* @__PURE__ */ C(n, {
84
+ children: /* @__PURE__ */ C(o, {
85
85
  title: V("devportal.createWebhook.title", "Create Webhook"),
86
86
  description: V("devportal.createWebhook.description", "Set up a real webhook endpoint to receive platform events through the public gateway"),
87
87
  backLink: O.applicationId ? `/apps/${O.applicationId}/webhooks` : "/webhooks",
@@ -111,19 +111,19 @@ var T = {
111
111
  },
112
112
  className: "space-y-6",
113
113
  children: [
114
- /* @__PURE__ */ C(s, {
114
+ /* @__PURE__ */ C(d, {
115
115
  variant: "info",
116
116
  children: V("devportal.createWebhook.info", "Webhook deliveries are signed and sent through the public global gateway. Use an HTTPS endpoint that accepts POST requests and returns a 2xx response for successful deliveries.")
117
117
  }),
118
- M && /* @__PURE__ */ C(s, {
118
+ M && /* @__PURE__ */ C(d, {
119
119
  variant: "error",
120
120
  children: M
121
121
  }),
122
- L && !h && /* @__PURE__ */ C(s, {
122
+ L && !h && /* @__PURE__ */ C(d, {
123
123
  variant: "error",
124
- children: f(L)
124
+ children: a(L)
125
125
  }),
126
- /* @__PURE__ */ C(r, {
126
+ /* @__PURE__ */ C(s, {
127
127
  title: V("devportal.createWebhook.basicInfo", "Basic Information"),
128
128
  children: /* @__PURE__ */ w("div", {
129
129
  className: "space-y-4 rounded-lg border bg-card p-4",
@@ -172,7 +172,7 @@ var T = {
172
172
  })
173
173
  ]
174
174
  }),
175
- /* @__PURE__ */ C(a, {
175
+ /* @__PURE__ */ C(l, {
176
176
  label: V("devportal.createWebhook.webhookName", "Webhook Name"),
177
177
  value: O.name,
178
178
  onChange: (e) => G("name", e.target.value),
@@ -180,14 +180,14 @@ var T = {
180
180
  error: A.name,
181
181
  required: !0
182
182
  }),
183
- /* @__PURE__ */ C(o, {
183
+ /* @__PURE__ */ C(u, {
184
184
  label: V("devportal.createWebhook.descriptionLabel", "Description"),
185
185
  value: O.description,
186
186
  onChange: (e) => G("description", e.target.value),
187
187
  placeholder: V("devportal.createWebhook.descriptionPlaceholder", "What this webhook is used for"),
188
188
  rows: 2
189
189
  }),
190
- /* @__PURE__ */ C(a, {
190
+ /* @__PURE__ */ C(l, {
191
191
  label: V("devportal.createWebhook.endpointUrl", "Endpoint URL"),
192
192
  type: "url",
193
193
  value: O.url,
@@ -200,7 +200,7 @@ var T = {
200
200
  ]
201
201
  })
202
202
  }),
203
- /* @__PURE__ */ C(r, {
203
+ /* @__PURE__ */ C(s, {
204
204
  title: V("devportal.createWebhook.subscribedEvents", "Subscribed Events"),
205
205
  children: /* @__PURE__ */ w("div", {
206
206
  className: "space-y-4 rounded-lg border bg-card p-4",
@@ -240,16 +240,16 @@ var T = {
240
240
  }, e))]
241
241
  })
242
242
  }),
243
- /* @__PURE__ */ C(r, {
243
+ /* @__PURE__ */ C(s, {
244
244
  title: V("devportal.createWebhook.retrySettings", "Retry Settings"),
245
245
  children: /* @__PURE__ */ w("div", {
246
246
  className: "space-y-4 rounded-lg border bg-card p-4",
247
- children: [/* @__PURE__ */ C(i, {
247
+ children: [/* @__PURE__ */ C(c, {
248
248
  label: V("devportal.createWebhook.enableRetries", "Enable retries"),
249
249
  description: V("devportal.createWebhook.enableRetriesDesc", "Retry failed deliveries automatically"),
250
250
  checked: O.retryEnabled,
251
251
  onChange: (e) => G("retryEnabled", e.target.checked)
252
- }), O.retryEnabled && /* @__PURE__ */ C(a, {
252
+ }), O.retryEnabled && /* @__PURE__ */ C(l, {
253
253
  label: V("devportal.createWebhook.maxRetries", "Maximum retries"),
254
254
  type: "number",
255
255
  value: O.maxRetries,
@@ -1,9 +1,9 @@
1
1
  import { useDevportal as e } from "../providers/DevportalProvider.js";
2
2
  import { EmptyState as t } from "../components/EmptyState.js";
3
- import { PageLayout as n, PageSection as r } from "../components/PageLayout.js";
4
- import { StatCard as i, StatCardGrid as a } from "../components/StatCard.js";
5
- import { AppListItem as o } from "../components/AppCard.js";
6
- import { useGetDevportalDashboardBootstrapQuery as s } from "../../generated/global-operations.js";
3
+ import { useGetDevportalDashboardBootstrapQuery as n } from "../../generated/global-operations.js";
4
+ import { PageLayout as r, PageSection as i } from "../components/PageLayout.js";
5
+ import { StatCard as a, StatCardGrid as o } from "../components/StatCard.js";
6
+ import { AppListItem as s } from "../components/AppCard.js";
7
7
  import { PermissionGuard as c } from "../components/PermissionGuard.js";
8
8
  import "../components/index.js";
9
9
  import { DEVPORTAL_PERMISSIONS as l } from "../constants/permissions.js";
@@ -17,7 +17,7 @@ var E = () => {
17
17
  let { navigate: E, basePath: k } = e(), { t: A } = d(), j = (e, t) => {
18
18
  let n = A(e);
19
19
  return n === e ? t : n;
20
- }, { data: M, loading: N } = s({ fetchPolicy: "cache-and-network" }), P = M?.myDeveloperOrganizations ?? [];
20
+ }, { data: M, loading: N } = n({ fetchPolicy: "cache-and-network" }), P = M?.myDeveloperOrganizations ?? [];
21
21
  u(() => {
22
22
  if (!(N || !M) && !(P.length > 0)) {
23
23
  try {
@@ -48,7 +48,7 @@ var E = () => {
48
48
  }, R = N, z = !R && P.length > 0;
49
49
  return /* @__PURE__ */ w(c, {
50
50
  permission: l.APP_READ,
51
- children: /* @__PURE__ */ T(n, {
51
+ children: /* @__PURE__ */ T(r, {
52
52
  title: j("devportal.developerPortal", "Developer Portal"),
53
53
  description: j("devportal.buildManageMonitor", "Build, manage, and monitor your applications"),
54
54
  actions: z ? /* @__PURE__ */ T("button", {
@@ -63,29 +63,29 @@ var E = () => {
63
63
  children: [/* @__PURE__ */ w(y, { size: 16 }), j("devportal.createOrganization", "Create Organization")]
64
64
  }),
65
65
  children: [
66
- /* @__PURE__ */ w(r, {
66
+ /* @__PURE__ */ w(i, {
67
67
  "data-tour": "devportal-dashboard-stats-overview",
68
- children: /* @__PURE__ */ T(a, {
68
+ children: /* @__PURE__ */ T(o, {
69
69
  columns: 4,
70
70
  children: [
71
- /* @__PURE__ */ w(i, {
71
+ /* @__PURE__ */ w(a, {
72
72
  title: j("devportal.totalApps", "Total Apps"),
73
73
  value: R ? /* @__PURE__ */ w(v, { className: "h-5 w-5 animate-spin" }) : I.totalApps,
74
74
  icon: /* @__PURE__ */ w(p, { size: 20 }),
75
75
  trend: void 0
76
76
  }),
77
- /* @__PURE__ */ w(i, {
77
+ /* @__PURE__ */ w(a, {
78
78
  title: j("devportal.organizations", "Organizations"),
79
79
  value: R ? /* @__PURE__ */ w(v, { className: "h-5 w-5 animate-spin" }) : I.totalOrgs,
80
80
  icon: /* @__PURE__ */ w(h, { size: 20 })
81
81
  }),
82
- /* @__PURE__ */ w(i, {
82
+ /* @__PURE__ */ w(a, {
83
83
  title: j("devportal.apiKeys", "API Keys"),
84
84
  value: I.totalApiKeys,
85
85
  icon: /* @__PURE__ */ w(_, { size: 20 }),
86
86
  description: j("devportal.activeKeys", "Active keys")
87
87
  }),
88
- /* @__PURE__ */ w(i, {
88
+ /* @__PURE__ */ w(a, {
89
89
  title: j("devportal.webhooks", "Webhooks"),
90
90
  value: I.totalWebhooks,
91
91
  icon: /* @__PURE__ */ w(C, { size: 20 }),
@@ -94,31 +94,31 @@ var E = () => {
94
94
  ]
95
95
  })
96
96
  }),
97
- /* @__PURE__ */ w(r, {
97
+ /* @__PURE__ */ w(i, {
98
98
  title: j("devportal.usageOverview", "Usage Overview"),
99
99
  "data-tour": "devportal-dashboard-usage-overview",
100
- children: /* @__PURE__ */ T(a, {
100
+ children: /* @__PURE__ */ T(o, {
101
101
  columns: 4,
102
102
  children: [
103
- /* @__PURE__ */ w(i, {
103
+ /* @__PURE__ */ w(a, {
104
104
  title: j("devportal.apiCalls", "API Calls"),
105
105
  value: R ? /* @__PURE__ */ w(v, { className: "h-5 w-5 animate-spin" }) : I.totalApiCalls > 1e6 ? `${(I.totalApiCalls / 1e6).toFixed(1)}M` : I.totalApiCalls > 1e3 ? `${(I.totalApiCalls / 1e3).toFixed(1)}K` : I.totalApiCalls.toString(),
106
106
  icon: /* @__PURE__ */ w(f, { size: 20 }),
107
107
  trend: void 0
108
108
  }),
109
- /* @__PURE__ */ w(i, {
109
+ /* @__PURE__ */ w(a, {
110
110
  title: j("devportal.activeInstalls", "Active Installs"),
111
111
  value: R ? /* @__PURE__ */ w(v, { className: "h-5 w-5 animate-spin" }) : I.activeInstalls > 1e3 ? `${(I.activeInstalls / 1e3).toFixed(1)}K` : I.activeInstalls.toString(),
112
112
  icon: /* @__PURE__ */ w(S, { size: 20 }),
113
113
  trend: void 0
114
114
  }),
115
- /* @__PURE__ */ w(i, {
115
+ /* @__PURE__ */ w(a, {
116
116
  title: j("devportal.monthlyRevenue", "Monthly Revenue"),
117
117
  value: R ? /* @__PURE__ */ w(v, { className: "h-5 w-5 animate-spin" }) : `$${I.monthlyRevenue.toLocaleString()}`,
118
118
  icon: /* @__PURE__ */ w(g, { size: 20 }),
119
119
  trend: void 0
120
120
  }),
121
- /* @__PURE__ */ w(i, {
121
+ /* @__PURE__ */ w(a, {
122
122
  title: j("devportal.errorRate", "Error Rate"),
123
123
  value: `${I.errorRate}%`,
124
124
  icon: /* @__PURE__ */ w(x, { size: 20 }),
@@ -129,7 +129,7 @@ var E = () => {
129
129
  }),
130
130
  /* @__PURE__ */ T("div", {
131
131
  className: "grid gap-6 lg:grid-cols-2",
132
- children: [/* @__PURE__ */ w(r, {
132
+ children: [/* @__PURE__ */ w(i, {
133
133
  "data-tour": "devportal-dashboard-recent-apps",
134
134
  title: j("devportal.recentApplications", "Recent Applications"),
135
135
  actions: /* @__PURE__ */ T("button", {
@@ -146,7 +146,7 @@ var E = () => {
146
146
  children: /* @__PURE__ */ w(v, { className: "h-6 w-6 animate-spin text-muted-foreground" })
147
147
  }) : F.length > 0 ? /* @__PURE__ */ w("div", {
148
148
  className: "space-y-2",
149
- children: F.slice(0, 3).map((e) => /* @__PURE__ */ w(o, {
149
+ children: F.slice(0, 3).map((e) => /* @__PURE__ */ w(s, {
150
150
  app: e,
151
151
  onClick: () => L(`/apps/${e.id}`)
152
152
  }, e.id))
@@ -164,7 +164,7 @@ var E = () => {
164
164
  children: [/* @__PURE__ */ w(y, { size: 16 }), j("devportal.createOrganization", "Create Organization")]
165
165
  })
166
166
  })
167
- }), /* @__PURE__ */ w(r, {
167
+ }), /* @__PURE__ */ w(i, {
168
168
  title: j("devportal.quickActions", "Quick Actions"),
169
169
  "data-tour": "devportal-dashboard-quick-actions",
170
170
  children: /* @__PURE__ */ T("div", {
@@ -204,14 +204,14 @@ var E = () => {
204
204
  })
205
205
  })]
206
206
  }),
207
- R ? /* @__PURE__ */ w(r, {
207
+ R ? /* @__PURE__ */ w(i, {
208
208
  "data-tour": "devportal-dashboard-organizations",
209
209
  title: j("devportal.yourOrganizations", "Your Organizations"),
210
210
  children: /* @__PURE__ */ w("div", {
211
211
  className: "flex items-center justify-center py-8",
212
212
  children: /* @__PURE__ */ w(v, { className: "h-6 w-6 animate-spin text-muted-foreground" })
213
213
  })
214
- }) : P.length > 0 ? /* @__PURE__ */ w(r, {
214
+ }) : P.length > 0 ? /* @__PURE__ */ w(i, {
215
215
  title: j("devportal.yourOrganizations", "Your Organizations"),
216
216
  actions: /* @__PURE__ */ T("button", {
217
217
  onClick: () => L("/organizations"),
@@ -1,10 +1,10 @@
1
1
  import { cn as e } from "../utils/cn.js";
2
2
  import { LoadingState as t } from "../components/LoadingState.js";
3
3
  import { EmptyState as n } from "../components/EmptyState.js";
4
- import { PageLayout as r } from "../components/PageLayout.js";
5
- import { SelectionCheckbox as i } from "../components/SelectionCheckbox.js";
6
- import { ConfirmDialog as a } from "../components/ConfirmDialog.js";
7
- import { useCurrentUserDelegationsQuery as o, useCurrentUserGrantedDelegationsQuery as s, useRevokeDelegationMutation as c } from "../../generated/global-operations.js";
4
+ import { useCurrentUserDelegationsQuery as r, useCurrentUserGrantedDelegationsQuery as i, useRevokeDelegationMutation as a } from "../../generated/global-operations.js";
5
+ import { PageLayout as o } from "../components/PageLayout.js";
6
+ import { SelectionCheckbox as s } from "../components/SelectionCheckbox.js";
7
+ import { ConfirmDialog as c } from "../components/ConfirmDialog.js";
8
8
  import { PermissionGuard as l } from "../components/PermissionGuard.js";
9
9
  import "../components/index.js";
10
10
  import { DEVPORTAL_PERMISSIONS as u } from "../constants/permissions.js";
@@ -96,13 +96,13 @@ var A = ({ type: t, className: n }) => {
96
96
  ]
97
97
  })
98
98
  });
99
- }, ae = ({ delegation: t, onRevoke: n, isRevoking: r, selected: a, onToggleSelect: o, canRevoke: s }) => {
99
+ }, ae = ({ delegation: t, onRevoke: n, isRevoking: r, selected: i, onToggleSelect: a, canRevoke: o }) => {
100
100
  let { t: c } = m(), l = (e, t) => {
101
101
  let n = c(e);
102
102
  return n === e ? t : n;
103
103
  };
104
104
  return /* @__PURE__ */ T("div", {
105
- className: e("rounded-lg border bg-card p-5 transition-colors hover:border-border/80", a && "border-primary bg-primary/5", t.status !== "ACTIVE" && "opacity-60"),
105
+ className: e("rounded-lg border bg-card p-5 transition-colors hover:border-border/80", i && "border-primary bg-primary/5", t.status !== "ACTIVE" && "opacity-60"),
106
106
  children: /* @__PURE__ */ E("div", {
107
107
  className: "flex items-start justify-between gap-4",
108
108
  children: [/* @__PURE__ */ E("div", {
@@ -110,9 +110,9 @@ var A = ({ type: t, className: n }) => {
110
110
  children: [
111
111
  t.status === "ACTIVE" && /* @__PURE__ */ T("div", {
112
112
  onClick: (e) => e.stopPropagation(),
113
- children: /* @__PURE__ */ T(i, {
114
- checked: a,
115
- onChange: o,
113
+ children: /* @__PURE__ */ T(s, {
114
+ checked: i,
115
+ onChange: a,
116
116
  ariaLabel: l("devportal.selectDelegationAriaLabel", `Select delegation ${t.app?.name ?? t.id}`),
117
117
  className: "mt-1"
118
118
  })
@@ -192,20 +192,20 @@ var A = ({ type: t, className: n }) => {
192
192
  ]
193
193
  }), t.status === "ACTIVE" && /* @__PURE__ */ E("button", {
194
194
  onClick: () => n(t),
195
- disabled: r || !s,
196
- "aria-disabled": !s,
195
+ disabled: r || !o,
196
+ "aria-disabled": !o,
197
197
  className: "inline-flex shrink-0 items-center gap-2 rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-status-error-text transition-colors hover:bg-status-error-bg-subtle disabled:cursor-not-allowed disabled:opacity-50",
198
198
  children: [r ? /* @__PURE__ */ T(b, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ T(C, { className: "h-4 w-4" }), l("devportal.revoke", "Revoke")]
199
199
  })]
200
200
  })
201
201
  });
202
- }, oe = ({ delegation: t, onRevoke: n, isRevoking: r, selected: a, onToggleSelect: o, canRevoke: s }) => {
202
+ }, oe = ({ delegation: t, onRevoke: n, isRevoking: r, selected: i, onToggleSelect: a, canRevoke: o }) => {
203
203
  let { t: c } = m(), l = (e, t) => {
204
204
  let n = c(e);
205
205
  return n === e ? t : n;
206
206
  };
207
207
  return /* @__PURE__ */ T("div", {
208
- className: e("rounded-lg border bg-card p-5 transition-colors hover:border-border/80", a && "border-primary bg-primary/5"),
208
+ className: e("rounded-lg border bg-card p-5 transition-colors hover:border-border/80", i && "border-primary bg-primary/5"),
209
209
  children: /* @__PURE__ */ E("div", {
210
210
  className: "flex items-start justify-between gap-4",
211
211
  children: [/* @__PURE__ */ E("div", {
@@ -213,9 +213,9 @@ var A = ({ type: t, className: n }) => {
213
213
  children: [
214
214
  t.status === "ACTIVE" && /* @__PURE__ */ T("div", {
215
215
  onClick: (e) => e.stopPropagation(),
216
- children: /* @__PURE__ */ T(i, {
217
- checked: a,
218
- onChange: o,
216
+ children: /* @__PURE__ */ T(s, {
217
+ checked: i,
218
+ onChange: a,
219
219
  ariaLabel: l("devportal.selectDelegationAriaLabel", `Select delegation ${t.app?.name ?? t.id}`),
220
220
  className: "mt-1"
221
221
  })
@@ -283,8 +283,8 @@ var A = ({ type: t, className: n }) => {
283
283
  ]
284
284
  }), t.status === "ACTIVE" && /* @__PURE__ */ E("button", {
285
285
  onClick: () => n(t),
286
- disabled: r || !s,
287
- "aria-disabled": !s,
286
+ disabled: r || !o,
287
+ "aria-disabled": !o,
288
288
  className: "inline-flex shrink-0 items-center gap-2 rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-status-error-text transition-colors hover:bg-status-error-bg-subtle disabled:cursor-not-allowed disabled:opacity-50",
289
289
  children: [r ? /* @__PURE__ */ T(b, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ T(C, { className: "h-4 w-4" }), l("devportal.revoke", "Revoke")]
290
290
  })]
@@ -331,7 +331,7 @@ var A = ({ type: t, className: n }) => {
331
331
  let { t: f } = m(), _ = (e, t) => {
332
332
  let n = f(e);
333
333
  return n === e ? t : n;
334
- }, { allowed: y } = ee(u.DELEGATION_REVOKE), [b, C] = p("acting-as-me"), [w, O] = p([]), [k, A] = p(null), [j, M] = p(/* @__PURE__ */ new Set()), { data: N, loading: ce, error: le, refetch: P } = o({ fetchPolicy: "cache-and-network" }), { data: F, loading: ue, error: de, refetch: I } = s({ fetchPolicy: "cache-and-network" }), [L, { loading: R }] = c(), z = (N?.currentUserDelegations?.delegations ?? []).map(D), B = (F?.currentUserGrantedDelegations?.delegations ?? []).map(D), V = z.filter((e) => e.status === "ACTIVE"), H = z.filter((e) => e.status !== "ACTIVE"), U = B.filter((e) => e.status === "ACTIVE"), W = b === "acting-as-me" ? V : U, G = te(() => W.filter((e) => j.has(e.id)), [j, W]), K = W.length > 0 && W.every((e) => j.has(e.id)), fe = W.some((e) => j.has(e.id)) && !K, q = b === "acting-as-me" ? ce : ue, J = b === "acting-as-me" ? le : de, Y = d((e) => {
334
+ }, { allowed: y } = ee(u.DELEGATION_REVOKE), [b, C] = p("acting-as-me"), [w, O] = p([]), [k, A] = p(null), [j, M] = p(/* @__PURE__ */ new Set()), { data: N, loading: ce, error: le, refetch: P } = r({ fetchPolicy: "cache-and-network" }), { data: F, loading: ue, error: de, refetch: I } = i({ fetchPolicy: "cache-and-network" }), [L, { loading: R }] = a(), z = (N?.currentUserDelegations?.delegations ?? []).map(D), B = (F?.currentUserGrantedDelegations?.delegations ?? []).map(D), V = z.filter((e) => e.status === "ACTIVE"), H = z.filter((e) => e.status !== "ACTIVE"), U = B.filter((e) => e.status === "ACTIVE"), W = b === "acting-as-me" ? V : U, G = te(() => W.filter((e) => j.has(e.id)), [j, W]), K = W.length > 0 && W.every((e) => j.has(e.id)), fe = W.some((e) => j.has(e.id)) && !K, q = b === "acting-as-me" ? ce : ue, J = b === "acting-as-me" ? le : de, Y = d((e) => {
335
335
  O([e]);
336
336
  }, []), X = d((e, t) => {
337
337
  M((n) => {
@@ -374,7 +374,7 @@ var A = ({ type: t, className: n }) => {
374
374
  }, []), Q = V.length, $ = U.length;
375
375
  return /* @__PURE__ */ T(l, {
376
376
  permission: u.INSTALLATION_READ,
377
- children: /* @__PURE__ */ E(r, {
377
+ children: /* @__PURE__ */ E(o, {
378
378
  title: _("devportal.appDelegationsTitle", "App Delegations"),
379
379
  description: _("devportal.appDelegationsDescription", "Manage which apps can act on your behalf. Revoke access at any time."),
380
380
  children: [
@@ -487,7 +487,7 @@ var A = ({ type: t, className: n }) => {
487
487
  className: "flex flex-wrap items-center gap-3",
488
488
  children: [/* @__PURE__ */ E("div", {
489
489
  className: "flex items-center gap-2",
490
- children: [/* @__PURE__ */ T(i, {
490
+ children: [/* @__PURE__ */ T(s, {
491
491
  checked: K,
492
492
  indeterminate: fe,
493
493
  onChange: pe,
@@ -579,7 +579,7 @@ var A = ({ type: t, className: n }) => {
579
579
  })] })]
580
580
  })
581
581
  }),
582
- /* @__PURE__ */ T(a, {
582
+ /* @__PURE__ */ T(c, {
583
583
  open: w.length > 0,
584
584
  onOpenChange: (e) => {
585
585
  e || O([]);