@burdenoff/microfe-devportal 2026.801.1 → 2026.802.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 (70) hide show
  1. package/dist/devportal/AdminDevportalRoutes.js +14 -14
  2. package/dist/devportal/DevportalRoutes.js +115 -115
  3. package/dist/devportal/DevportalRoutes.js.map +1 -1
  4. package/dist/devportal/components/SectionNav.js +1 -0
  5. package/dist/devportal/components/SectionNav.js.map +1 -1
  6. package/dist/devportal/components/TelemetryErrorBoundary.js +7 -7
  7. package/dist/devportal/pages/AnalyticsDashboardPage.js +41 -41
  8. package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
  9. package/dist/devportal/pages/AppLogsPage.js +27 -27
  10. package/dist/devportal/pages/ApplicationDetailPage.js +929 -929
  11. package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
  12. package/dist/devportal/pages/ApplicationVersionsPage.js +39 -39
  13. package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
  14. package/dist/devportal/pages/CreateWebhookPage.js +55 -55
  15. package/dist/devportal/pages/EditApplicationPage.js +36 -36
  16. package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
  17. package/dist/devportal/pages/EditPhysicalItemPage.js +40 -40
  18. package/dist/devportal/pages/InvitationDecisionPage.js +25 -25
  19. package/dist/devportal/pages/ListingPreviewPage.js +36 -36
  20. package/dist/devportal/pages/OAuthCallbackPage.js +10 -10
  21. package/dist/devportal/pages/OAuthClientDetailPage.js +27 -27
  22. package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
  23. package/dist/devportal/pages/OrganizationDetailPage.js +329 -329
  24. package/dist/devportal/pages/OrganizationDetailPage.js.map +1 -1
  25. package/dist/devportal/pages/OrganizationMembersPage.js +181 -181
  26. package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
  27. package/dist/devportal/pages/PublishPage.js +43 -43
  28. package/dist/devportal/pages/PublishPage.js.map +1 -1
  29. package/dist/devportal/pages/RevenueDashboardPage.js +65 -65
  30. package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -1
  31. package/dist/devportal/pages/StoreSubmissionPage.js +126 -126
  32. package/dist/devportal/pages/StoreSubmissionPage.js.map +1 -1
  33. package/dist/devportal/pages/WebhookDetailPage.js +28 -28
  34. package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
  35. package/dist/devportal/pages/WebhooksPage.js +47 -47
  36. package/dist/devportal/pages/WebhooksPage.js.map +1 -1
  37. package/dist/devportal/providers/DevportalProvider.js +12 -12
  38. package/package.json +1 -1
  39. package/dist/node_modules/react-router/dist/production/lib/components.js +0 -124
  40. package/dist/node_modules/react-router/dist/production/lib/components.js.map +0 -1
  41. package/dist/node_modules/react-router/dist/production/lib/context.js +0 -32
  42. package/dist/node_modules/react-router/dist/production/lib/context.js.map +0 -1
  43. package/dist/node_modules/react-router/dist/production/lib/dom/dom.js +0 -83
  44. package/dist/node_modules/react-router/dist/production/lib/dom/dom.js.map +0 -1
  45. package/dist/node_modules/react-router/dist/production/lib/dom/lib.js +0 -358
  46. package/dist/node_modules/react-router/dist/production/lib/dom/lib.js.map +0 -1
  47. package/dist/node_modules/react-router/dist/production/lib/dom/ssr/components.js +0 -188
  48. package/dist/node_modules/react-router/dist/production/lib/dom/ssr/components.js.map +0 -1
  49. package/dist/node_modules/react-router/dist/production/lib/dom/ssr/invariant.js +0 -8
  50. package/dist/node_modules/react-router/dist/production/lib/dom/ssr/invariant.js.map +0 -1
  51. package/dist/node_modules/react-router/dist/production/lib/dom/ssr/links.js +0 -75
  52. package/dist/node_modules/react-router/dist/production/lib/dom/ssr/links.js.map +0 -1
  53. package/dist/node_modules/react-router/dist/production/lib/dom/ssr/markup.js +0 -15
  54. package/dist/node_modules/react-router/dist/production/lib/dom/ssr/markup.js.map +0 -1
  55. package/dist/node_modules/react-router/dist/production/lib/dom/ssr/routeModules.js +0 -18
  56. package/dist/node_modules/react-router/dist/production/lib/dom/ssr/routeModules.js.map +0 -1
  57. package/dist/node_modules/react-router/dist/production/lib/dom/ssr/single-fetch.js +0 -10
  58. package/dist/node_modules/react-router/dist/production/lib/dom/ssr/single-fetch.js.map +0 -1
  59. package/dist/node_modules/react-router/dist/production/lib/errors.js +0 -19
  60. package/dist/node_modules/react-router/dist/production/lib/errors.js.map +0 -1
  61. package/dist/node_modules/react-router/dist/production/lib/hooks.js +0 -296
  62. package/dist/node_modules/react-router/dist/production/lib/hooks.js.map +0 -1
  63. package/dist/node_modules/react-router/dist/production/lib/router/history.js +0 -166
  64. package/dist/node_modules/react-router/dist/production/lib/router/history.js.map +0 -1
  65. package/dist/node_modules/react-router/dist/production/lib/router/router.js +0 -33
  66. package/dist/node_modules/react-router/dist/production/lib/router/router.js.map +0 -1
  67. package/dist/node_modules/react-router/dist/production/lib/router/url.js +0 -9
  68. package/dist/node_modules/react-router/dist/production/lib/router/url.js.map +0 -1
  69. package/dist/node_modules/react-router/dist/production/lib/router/utils.js +0 -236
  70. package/dist/node_modules/react-router/dist/production/lib/router/utils.js.map +0 -1
@@ -1,42 +1,42 @@
1
- import { useParams as e } from "../../node_modules/react-router/dist/production/lib/hooks.js";
2
- import { useDevportal as t } from "../providers/DevportalProvider.js";
3
- import { EmptyState as n } from "../components/EmptyState.js";
4
- import { useAcceptInvitationMutation as r, useGetInvitationByTokenQuery as i, useRejectInvitationMutation as a } from "../../generated/global-operations.js";
5
- import { PageLayout as o, PageSection as s } from "../components/PageLayout.js";
1
+ import { useDevportal as e } from "../providers/DevportalProvider.js";
2
+ import { EmptyState as t } from "../components/EmptyState.js";
3
+ import { useAcceptInvitationMutation as n, useGetInvitationByTokenQuery as r, useRejectInvitationMutation as i } from "../../generated/global-operations.js";
4
+ import { PageLayout as a, PageSection as o } from "../components/PageLayout.js";
6
5
  import "../hooks/index.js";
7
- import { CheckCircle as c, Loader2 as l, Mail as u, Shield as d, XCircle as f } from "lucide-react";
6
+ import { CheckCircle as s, Loader2 as c, Mail as l, Shield as u, XCircle as d } from "lucide-react";
7
+ import { useParams as f } from "react-router";
8
8
  import { jsx as p, jsxs as m } from "react/jsx-runtime";
9
9
  //#region src/devportal/pages/InvitationDecisionPage.tsx
10
10
  var h = () => {
11
- let { token: h } = e(), { navigate: g, basePath: _ } = t(), { data: v, loading: y, error: b } = i({
11
+ let { token: h } = f(), { navigate: g, basePath: _ } = e(), { data: v, loading: y, error: b } = r({
12
12
  variables: { token: h ?? "" },
13
13
  skip: !h,
14
14
  fetchPolicy: "cache-and-network"
15
- }), [x, { loading: S, data: C }] = r(), [w, { loading: T, data: E }] = a(), D = v?.developerOrgInvitationByToken, O = C?.acceptDeveloperOrgInvitation, k = E?.rejectDeveloperOrgInvitation, A = async () => {
15
+ }), [x, { loading: S, data: C }] = n(), [w, { loading: T, data: E }] = i(), D = v?.developerOrgInvitationByToken, O = C?.acceptDeveloperOrgInvitation, k = E?.rejectDeveloperOrgInvitation, A = async () => {
16
16
  h && await x({ variables: { token: h } });
17
17
  }, j = async () => {
18
18
  h && await w({ variables: { token: h } });
19
19
  };
20
- return y && !D ? /* @__PURE__ */ p(o, {
20
+ return y && !D ? /* @__PURE__ */ p(a, {
21
21
  title: "Developer Team Invitation",
22
22
  children: /* @__PURE__ */ p("div", {
23
23
  className: "flex items-center justify-center py-16 text-text-secondary",
24
- children: /* @__PURE__ */ p(l, { className: "h-8 w-8 animate-spin" })
24
+ children: /* @__PURE__ */ p(c, { className: "h-8 w-8 animate-spin" })
25
25
  })
26
- }) : b || !D ? /* @__PURE__ */ p(o, {
26
+ }) : b || !D ? /* @__PURE__ */ p(a, {
27
27
  title: "Developer Team Invitation",
28
- children: /* @__PURE__ */ p(n, {
29
- icon: /* @__PURE__ */ p(f, {
28
+ children: /* @__PURE__ */ p(t, {
29
+ icon: /* @__PURE__ */ p(d, {
30
30
  size: 32,
31
31
  className: "text-status-error-text"
32
32
  }),
33
33
  title: "Invitation not available",
34
34
  description: b?.message || "This invitation is invalid, expired, or not available to your signed-in account."
35
35
  })
36
- }) : O ? /* @__PURE__ */ p(o, {
36
+ }) : O ? /* @__PURE__ */ p(a, {
37
37
  title: "Invitation accepted",
38
- children: /* @__PURE__ */ p(n, {
39
- icon: /* @__PURE__ */ p(c, {
38
+ children: /* @__PURE__ */ p(t, {
39
+ icon: /* @__PURE__ */ p(s, {
40
40
  size: 32,
41
41
  className: "text-status-success-text"
42
42
  }),
@@ -49,10 +49,10 @@ var h = () => {
49
49
  children: "Open organization"
50
50
  })
51
51
  })
52
- }) : k ? /* @__PURE__ */ p(o, {
52
+ }) : k ? /* @__PURE__ */ p(a, {
53
53
  title: "Invitation declined",
54
- children: /* @__PURE__ */ p(n, {
55
- icon: /* @__PURE__ */ p(f, {
54
+ children: /* @__PURE__ */ p(t, {
55
+ icon: /* @__PURE__ */ p(d, {
56
56
  size: 32,
57
57
  className: "text-status-warning-text"
58
58
  }),
@@ -65,12 +65,12 @@ var h = () => {
65
65
  children: "Return to Devportal"
66
66
  })
67
67
  })
68
- }) : /* @__PURE__ */ p(o, {
68
+ }) : /* @__PURE__ */ p(a, {
69
69
  title: "Developer Team Invitation",
70
70
  description: "Review your invitation to join a developer organization",
71
71
  children: /* @__PURE__ */ m("div", {
72
72
  className: "mx-auto max-w-2xl space-y-6",
73
- children: [/* @__PURE__ */ p(s, {
73
+ children: [/* @__PURE__ */ p(o, {
74
74
  title: "Invitation details",
75
75
  children: /* @__PURE__ */ m("div", {
76
76
  className: "rounded-card border border-border-seam bg-bg-surface p-6 space-y-4",
@@ -89,13 +89,13 @@ var h = () => {
89
89
  children: "Invited email"
90
90
  }), /* @__PURE__ */ m("p", {
91
91
  className: "flex items-center gap-2 text-text-primary",
92
- children: [/* @__PURE__ */ p(u, { size: 14 }), D.invitedEmail]
92
+ children: [/* @__PURE__ */ p(l, { size: 14 }), D.invitedEmail]
93
93
  })] }), /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
94
94
  className: "text-sm text-text-secondary",
95
95
  children: "Role"
96
96
  }), /* @__PURE__ */ m("p", {
97
97
  className: "flex items-center gap-2 text-text-primary",
98
- children: [/* @__PURE__ */ p(d, { size: 14 }), D.role]
98
+ children: [/* @__PURE__ */ p(u, { size: 14 }), D.role]
99
99
  })] })]
100
100
  }),
101
101
  D.message ? /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
@@ -118,7 +118,7 @@ var h = () => {
118
118
  onClick: () => void j(),
119
119
  disabled: S || T,
120
120
  className: "inline-flex items-center gap-2 rounded-md border border-border-seam px-4 py-2 text-sm font-medium hover:bg-bg-sunken disabled:opacity-50",
121
- children: [T ? /* @__PURE__ */ p(l, {
121
+ children: [T ? /* @__PURE__ */ p(c, {
122
122
  size: 14,
123
123
  className: "animate-spin"
124
124
  }) : null, "Decline"]
@@ -127,7 +127,7 @@ var h = () => {
127
127
  onClick: () => void A(),
128
128
  disabled: S || T,
129
129
  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 disabled:opacity-50",
130
- children: [S ? /* @__PURE__ */ p(l, {
130
+ children: [S ? /* @__PURE__ */ p(c, {
131
131
  size: 14,
132
132
  className: "animate-spin"
133
133
  }) : null, "Accept invitation"]
@@ -1,14 +1,14 @@
1
- import { useParams as e } from "../../node_modules/react-router/dist/production/lib/hooks.js";
2
- import { useDevportal as t } from "../providers/DevportalProvider.js";
3
- import { useGetApplicationQuery as n } from "../../generated/global-operations.js";
4
- import { PageLayout as r, PageSection as i } from "../components/PageLayout.js";
5
- import { Alert as a } from "../components/ConfirmDialog.js";
6
- import { PermissionGuard as o } from "../components/PermissionGuard.js";
1
+ import { useDevportal as e } from "../providers/DevportalProvider.js";
2
+ import { useGetApplicationQuery as t } from "../../generated/global-operations.js";
3
+ import { PageLayout as n, PageSection as r } from "../components/PageLayout.js";
4
+ import { Alert as i } from "../components/ConfirmDialog.js";
5
+ import { PermissionGuard as a } from "../components/PermissionGuard.js";
7
6
  import "../components/index.js";
8
- import { useEffect as s } from "react";
9
- import { Markdown as c } from "@burdenoff/fe-libs/shared/components";
10
- import { useI18n as l } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
11
- import { CheckCircle as u, Download as d, ExternalLink as f, Eye as p, FileText as m, Globe as h, Loader2 as g, Shield as _, Star as v, Tag as y } from "lucide-react";
7
+ import { useEffect as o } from "react";
8
+ import { Markdown as s } from "@burdenoff/fe-libs/shared/components";
9
+ import { useI18n as c } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
10
+ import { CheckCircle as l, Download as u, ExternalLink as d, Eye as f, FileText as p, Globe as m, Loader2 as h, Shield as g, Star as _, Tag as v } from "lucide-react";
11
+ import { useParams as y } from "react-router";
12
12
  import { jsx as b, jsxs as x } from "react/jsx-runtime";
13
13
  //#region src/devportal/pages/ListingPreviewPage.tsx
14
14
  var S = {
@@ -35,44 +35,44 @@ var S = {
35
35
  CLI_TOOL: "CLI Tool",
36
36
  SERVICE: "Service"
37
37
  }, w = () => {
38
- let { appId: w } = e(), { navigate: T, basePath: E } = t(), { t: D } = l(), O = (e, t) => {
38
+ let { appId: w } = y(), { navigate: T, basePath: E } = e(), { t: D } = c(), O = (e, t) => {
39
39
  let n = D(e);
40
40
  return n === e ? t : n;
41
- }, { data: k, loading: A, error: j } = n({
41
+ }, { data: k, loading: A, error: j } = t({
42
42
  variables: { id: w },
43
43
  skip: !w,
44
44
  fetchPolicy: "cache-and-network"
45
45
  }), M = k?.application;
46
- if (s(() => {
46
+ if (o(() => {
47
47
  let e = M?.name;
48
48
  if (!w || !e) return;
49
49
  let t = window.__breadcrumbRegistry;
50
50
  return t?.register(w, e), () => t?.unregister(w);
51
- }, [w, M?.name]), A) return /* @__PURE__ */ b(r, {
51
+ }, [w, M?.name]), A) return /* @__PURE__ */ b(n, {
52
52
  title: O("devportal.marketplacePreview", "Marketplace Preview"),
53
53
  description: O("devportal.loading", "Loading..."),
54
54
  backLink: `/apps/${w}`,
55
55
  backLabel: O("devportal.backToApplication", "Back to Application"),
56
56
  children: /* @__PURE__ */ b("div", {
57
57
  className: "flex items-center justify-center py-12",
58
- children: /* @__PURE__ */ b(g, { className: "h-8 w-8 animate-spin text-text-secondary" })
58
+ children: /* @__PURE__ */ b(h, { className: "h-8 w-8 animate-spin text-text-secondary" })
59
59
  })
60
60
  });
61
- if (j || !M) return /* @__PURE__ */ b(r, {
61
+ if (j || !M) return /* @__PURE__ */ b(n, {
62
62
  title: O("devportal.marketplacePreview", "Marketplace Preview"),
63
63
  description: O("devportal.couldNotLoadApplication", "Could not load application"),
64
64
  backLink: `/apps/${w}`,
65
65
  backLabel: O("devportal.backToApplication", "Back to Application"),
66
- children: /* @__PURE__ */ b(a, {
66
+ children: /* @__PURE__ */ b(i, {
67
67
  variant: "error",
68
68
  title: O("devportal.failedToLoadApplication", "Failed to load application"),
69
69
  children: j?.message ?? O("devportal.applicationNotFound", "Application not found")
70
70
  })
71
71
  });
72
72
  let N = Array.isArray(M.screenshots) ? M.screenshots : [], P = M.status === "PUBLISHED";
73
- return /* @__PURE__ */ b(o, {
73
+ return /* @__PURE__ */ b(a, {
74
74
  authOnly: !0,
75
- children: /* @__PURE__ */ x(r, {
75
+ children: /* @__PURE__ */ x(n, {
76
76
  title: O("devportal.marketplacePreview", "Marketplace Preview"),
77
77
  description: O("devportal.marketplacePreviewDescription", "Preview how your app will appear in the marketplace"),
78
78
  purpose: O("devportal.marketplacePreviewPurpose", "See exactly how shoppers will experience your store listing — icon, screenshots, description, and pricing — before it goes live. Use it to catch missing assets or typos, then submit for review when the listing looks right."),
@@ -81,12 +81,12 @@ var S = {
81
81
  actions: P ? void 0 : /* @__PURE__ */ x("button", {
82
82
  onClick: () => T?.(`${E}/apps/${w}/publish`),
83
83
  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",
84
- children: [/* @__PURE__ */ b(p, { size: 16 }), O("devportal.submitForReview", "Submit for Review")]
84
+ children: [/* @__PURE__ */ b(f, { size: 16 }), O("devportal.submitForReview", "Submit for Review")]
85
85
  }),
86
86
  children: [
87
87
  /* @__PURE__ */ x("div", {
88
88
  className: "flex items-center gap-2 rounded-lg border border-border-subtle bg-status-warning-bg-subtle px-4 py-3 text-sm text-status-warning-text",
89
- children: [/* @__PURE__ */ b(p, {
89
+ children: [/* @__PURE__ */ b(f, {
90
90
  size: 16,
91
91
  className: "flex-shrink-0"
92
92
  }), /* @__PURE__ */ b("span", { children: O("devportal.previewBannerText", "This is a preview of your marketplace listing. It shows how your app will appear to users after publication.") })]
@@ -129,7 +129,7 @@ var S = {
129
129
  className: "text-2xl font-bold",
130
130
  children: M.name
131
131
  }),
132
- M.isVerified && /* @__PURE__ */ b(u, {
132
+ M.isVerified && /* @__PURE__ */ b(l, {
133
133
  size: 20,
134
134
  className: "text-primary"
135
135
  }),
@@ -149,7 +149,7 @@ var S = {
149
149
  M.averageRating != null && /* @__PURE__ */ x("div", {
150
150
  className: "flex items-center gap-1",
151
151
  children: [
152
- /* @__PURE__ */ b(v, {
152
+ /* @__PURE__ */ b(_, {
153
153
  size: 14,
154
154
  className: "text-status-warning-text fill-status-warning-text"
155
155
  }),
@@ -168,7 +168,7 @@ var S = {
168
168
  }),
169
169
  /* @__PURE__ */ x("div", {
170
170
  className: "flex items-center gap-1",
171
- children: [/* @__PURE__ */ b(d, { size: 14 }), /* @__PURE__ */ x("span", { children: [
171
+ children: [/* @__PURE__ */ b(u, { size: 14 }), /* @__PURE__ */ x("span", { children: [
172
172
  (M.installCount ?? 0).toLocaleString(),
173
173
  " ",
174
174
  O("devportal.installs", "installs")
@@ -227,7 +227,7 @@ var S = {
227
227
  children: [/* @__PURE__ */ b("h2", {
228
228
  className: "text-base font-semibold mb-2",
229
229
  children: O("devportal.about", "About")
230
- }), M.description || M.shortDescription ? /* @__PURE__ */ b(c, {
230
+ }), M.description || M.shortDescription ? /* @__PURE__ */ b(s, {
231
231
  className: "text-sm text-text-secondary",
232
232
  children: M.description ?? M.shortDescription ?? ""
233
233
  }) : /* @__PURE__ */ b("p", {
@@ -241,7 +241,7 @@ var S = {
241
241
  className: "flex flex-wrap gap-2",
242
242
  children: M.tags.map((e) => /* @__PURE__ */ x("span", {
243
243
  className: "inline-flex items-center gap-1 rounded-full border px-3 py-1 text-xs text-text-secondary",
244
- children: [/* @__PURE__ */ b(y, { size: 10 }), e]
244
+ children: [/* @__PURE__ */ b(v, { size: 10 }), e]
245
245
  }, e))
246
246
  })
247
247
  }),
@@ -254,9 +254,9 @@ var S = {
254
254
  rel: "noopener noreferrer",
255
255
  className: "flex items-center gap-2 text-primary hover:underline",
256
256
  children: [
257
- /* @__PURE__ */ b(h, { size: 14 }),
257
+ /* @__PURE__ */ b(m, { size: 14 }),
258
258
  O("devportal.website", "Website"),
259
- /* @__PURE__ */ b(f, { size: 12 })
259
+ /* @__PURE__ */ b(d, { size: 12 })
260
260
  ]
261
261
  }),
262
262
  M.documentationUrl && /* @__PURE__ */ x("a", {
@@ -265,9 +265,9 @@ var S = {
265
265
  rel: "noopener noreferrer",
266
266
  className: "flex items-center gap-2 text-primary hover:underline",
267
267
  children: [
268
- /* @__PURE__ */ b(m, { size: 14 }),
268
+ /* @__PURE__ */ b(p, { size: 14 }),
269
269
  O("devportal.documentation", "Documentation"),
270
- /* @__PURE__ */ b(f, { size: 12 })
270
+ /* @__PURE__ */ b(d, { size: 12 })
271
271
  ]
272
272
  }),
273
273
  M.privacyPolicyUrl && /* @__PURE__ */ x("a", {
@@ -276,9 +276,9 @@ var S = {
276
276
  rel: "noopener noreferrer",
277
277
  className: "flex items-center gap-2 text-primary hover:underline",
278
278
  children: [
279
- /* @__PURE__ */ b(_, { size: 14 }),
279
+ /* @__PURE__ */ b(g, { size: 14 }),
280
280
  O("devportal.privacyPolicy", "Privacy Policy"),
281
- /* @__PURE__ */ b(f, { size: 12 })
281
+ /* @__PURE__ */ b(d, { size: 12 })
282
282
  ]
283
283
  }),
284
284
  M.termsOfServiceUrl && /* @__PURE__ */ x("a", {
@@ -287,16 +287,16 @@ var S = {
287
287
  rel: "noopener noreferrer",
288
288
  className: "flex items-center gap-2 text-primary hover:underline",
289
289
  children: [
290
- /* @__PURE__ */ b(m, { size: 14 }),
290
+ /* @__PURE__ */ b(p, { size: 14 }),
291
291
  O("devportal.termsOfService", "Terms of Service"),
292
- /* @__PURE__ */ b(f, { size: 12 })
292
+ /* @__PURE__ */ b(d, { size: 12 })
293
293
  ]
294
294
  })
295
295
  ]
296
296
  })
297
297
  ]
298
298
  }),
299
- /* @__PURE__ */ x(i, {
299
+ /* @__PURE__ */ x(r, {
300
300
  title: O("devportal.listingCompleteness", "Listing Completeness"),
301
301
  children: [/* @__PURE__ */ b("div", {
302
302
  className: "space-y-2",
@@ -339,7 +339,7 @@ var S = {
339
339
  }
340
340
  ].map(({ label: e, ok: t }) => /* @__PURE__ */ x("div", {
341
341
  className: "flex items-center gap-3 text-sm",
342
- children: [t ? /* @__PURE__ */ b(u, {
342
+ children: [t ? /* @__PURE__ */ b(l, {
343
343
  size: 16,
344
344
  className: "text-status-success-text flex-shrink-0"
345
345
  }) : /* @__PURE__ */ b("div", { className: "h-4 w-4 rounded-full border-2 border-muted-foreground flex-shrink-0" }), /* @__PURE__ */ b("span", {
@@ -1,13 +1,13 @@
1
- import { useSearchParams as e } from "../../node_modules/react-router/dist/production/lib/dom/lib.js";
2
- import { useDevportal as t } from "../providers/DevportalProvider.js";
3
- import { useCompleteAppOAuthMutation as n } from "../../generated/global-operations.js";
4
- import { useEffect as r, useState as i } from "react";
5
- import { CheckCircle as a, Loader2 as o, XCircle as s } from "lucide-react";
1
+ import { useDevportal as e } from "../providers/DevportalProvider.js";
2
+ import { useCompleteAppOAuthMutation as t } from "../../generated/global-operations.js";
3
+ import { useEffect as n, useState as r } from "react";
4
+ import { CheckCircle as i, Loader2 as a, XCircle as o } from "lucide-react";
5
+ import { useSearchParams as s } from "react-router";
6
6
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
7
7
  //#region src/devportal/pages/OAuthCallbackPage.tsx
8
8
  var u = () => {
9
- let [u] = e(), { navigate: d, basePath: f } = t(), [p, m] = i("loading"), [h, g] = i(""), [_] = n();
10
- return r(() => {
9
+ let [u] = s(), { navigate: d, basePath: f } = e(), [p, m] = r("loading"), [h, g] = r(""), [_] = t();
10
+ return n(() => {
11
11
  let e = u.get("code"), t = u.get("state"), n = localStorage.getItem("oauth_pending");
12
12
  if (!n || !e || !t) {
13
13
  m("error"), g("Missing OAuth parameters.");
@@ -33,20 +33,20 @@ var u = () => {
33
33
  });
34
34
  }, []), p === "loading" ? /* @__PURE__ */ l("div", {
35
35
  className: "flex flex-col items-center justify-center min-h-[60vh] gap-4",
36
- children: [/* @__PURE__ */ c(o, { className: "h-8 w-8 animate-spin text-primary" }), /* @__PURE__ */ c("p", {
36
+ children: [/* @__PURE__ */ c(a, { className: "h-8 w-8 animate-spin text-primary" }), /* @__PURE__ */ c("p", {
37
37
  className: "text-sm text-muted-foreground",
38
38
  children: "Completing authorization…"
39
39
  })]
40
40
  }) : p === "success" ? /* @__PURE__ */ l("div", {
41
41
  className: "flex flex-col items-center justify-center min-h-[60vh] gap-4",
42
- children: [/* @__PURE__ */ c(a, { className: "h-8 w-8 text-status-success-text" }), /* @__PURE__ */ c("p", {
42
+ children: [/* @__PURE__ */ c(i, { className: "h-8 w-8 text-status-success-text" }), /* @__PURE__ */ c("p", {
43
43
  className: "text-sm font-medium",
44
44
  children: "Authorization successful! Redirecting…"
45
45
  })]
46
46
  }) : /* @__PURE__ */ l("div", {
47
47
  className: "flex flex-col items-center justify-center min-h-[60vh] gap-4",
48
48
  children: [
49
- /* @__PURE__ */ c(s, { className: "h-8 w-8 text-status-error-text" }),
49
+ /* @__PURE__ */ c(o, { className: "h-8 w-8 text-status-error-text" }),
50
50
  /* @__PURE__ */ c("p", {
51
51
  className: "text-sm font-medium text-status-error-text",
52
52
  children: "Authorization failed"
@@ -1,29 +1,29 @@
1
- import { useParams as e } from "../../node_modules/react-router/dist/production/lib/hooks.js";
2
- import { useDevportal as t } from "../providers/DevportalProvider.js";
3
- import { cn as n } from "../utils/cn.js";
4
- import { useDeactivateAppMutation as r, useGetAuthAppQuery as i, useRotateAppSecretMutation as a, useUpdateAuthAppMutation as ee } from "../../generated/global-operations.js";
5
- import { getErrorMessage as o } from "../hooks/useGraphQL.js";
6
- import { PageLayout as s } from "../components/PageLayout.js";
1
+ import { useDevportal as e } from "../providers/DevportalProvider.js";
2
+ import { cn as t } from "../utils/cn.js";
3
+ import { useDeactivateAppMutation as n, useGetAuthAppQuery as r, useRotateAppSecretMutation as i, useUpdateAuthAppMutation as a } from "../../generated/global-operations.js";
4
+ import { getErrorMessage as ee } from "../hooks/useGraphQL.js";
5
+ import { PageLayout as o } from "../components/PageLayout.js";
7
6
  import { ActiveIndicator as te } from "../components/StatusBadge.js";
8
- import { nativeCopyText as ne, nativeImpact as c, nativeNotify as l } from "../../utils/nativeBridge.js";
9
- import { PermissionGuard as u } from "../components/PermissionGuard.js";
7
+ import { nativeCopyText as s, nativeImpact as c, nativeNotify as l } from "../../utils/nativeBridge.js";
8
+ import { PermissionGuard as ne } from "../components/PermissionGuard.js";
10
9
  import "../components/index.js";
11
10
  import "../hooks/index.js";
12
- import { useState as d } from "react";
11
+ import { useState as u } from "react";
13
12
  import { useI18n as re } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
14
- import { AlertCircle as ie, ArrowLeft as ae, Copy as f, Eye as p, EyeOff as m, Loader2 as h, RefreshCw as g, Trash2 as _ } from "lucide-react";
13
+ import { AlertCircle as ie, ArrowLeft as ae, Copy as d, Eye as f, EyeOff as p, Loader2 as m, RefreshCw as h, Trash2 as g } from "lucide-react";
14
+ import { useParams as _ } from "react-router";
15
15
  import { jsx as v, jsxs as y } from "react/jsx-runtime";
16
16
  import { AlertDialog as b, AlertDialogAction as x, AlertDialogCancel as S, AlertDialogContent as C, AlertDialogDescription as w, AlertDialogFooter as T, AlertDialogHeader as E, AlertDialogTitle as D, CTAOverflowMenu as O, GlassCard as k } from "@burdenoff/fe-libs/ui";
17
17
  //#region src/devportal/pages/OAuthClientDetailPage.tsx
18
18
  var A = () => {
19
- let { clientId: A } = e(), { navigate: j, basePath: M } = t(), { t: N } = re(), P = (e, t) => {
19
+ let { clientId: A } = _(), { navigate: j, basePath: M } = e(), { t: N } = re(), P = (e, t) => {
20
20
  let n = N(e);
21
21
  return n === e ? t : n;
22
- }, [F, I] = d(!1), [L, R] = d(null), [z, B] = d(!1), [V, H] = d(!1), { data: U, loading: W, error: G, refetch: K } = i({
22
+ }, [F, I] = u(!1), [L, R] = u(null), [z, B] = u(!1), [V, H] = u(!1), { data: U, loading: W, error: G, refetch: K } = r({
23
23
  variables: { id: A || "" },
24
24
  skip: !A,
25
25
  fetchPolicy: "cache-and-network"
26
- }), [q, { loading: J }] = a(), [Y, { loading: X }] = r(), [oe] = ee(), Z = U?.app ? {
26
+ }), [q, { loading: J }] = i(), [Y, { loading: X }] = n(), [oe] = a(), Z = U?.app ? {
27
27
  id: U.app.id,
28
28
  name: U.app.name,
29
29
  description: U.app.description ?? void 0,
@@ -39,7 +39,7 @@ var A = () => {
39
39
  } : null, Q = (e) => {
40
40
  j?.(`${M}${e}`);
41
41
  }, $ = async (e) => {
42
- c("light"), l(await ne(e) ? "success" : "error");
42
+ c("light"), l(await s(e) ? "success" : "error");
43
43
  }, se = async () => {
44
44
  if (A) try {
45
45
  let e = (await q({ variables: { id: A } })).data?.rotateAppSecret?.clientSecret;
@@ -50,16 +50,16 @@ var A = () => {
50
50
  await Y({ variables: { id: A } }), B(!1), Q("/oauth");
51
51
  } catch {}
52
52
  };
53
- return W && !U ? /* @__PURE__ */ v(s, {
53
+ return W && !U ? /* @__PURE__ */ v(o, {
54
54
  title: P("devportal.appDetails", "App Details"),
55
55
  description: P("devportal.loadingDots", "Loading..."),
56
56
  backLink: "/oauth",
57
57
  backLabel: P("devportal.backToApps", "Back to Apps"),
58
58
  children: /* @__PURE__ */ v("div", {
59
59
  className: "flex items-center justify-center py-12",
60
- children: /* @__PURE__ */ v(h, { className: "h-8 w-8 animate-spin text-text-secondary" })
60
+ children: /* @__PURE__ */ v(m, { className: "h-8 w-8 animate-spin text-text-secondary" })
61
61
  })
62
- }) : G || !Z ? /* @__PURE__ */ v(s, {
62
+ }) : G || !Z ? /* @__PURE__ */ v(o, {
63
63
  title: P("devportal.appDetails", "App Details"),
64
64
  description: P("devportal.failedToLoad", "Failed to load"),
65
65
  backLink: "/oauth",
@@ -74,7 +74,7 @@ var A = () => {
74
74
  }),
75
75
  G && /* @__PURE__ */ v("p", {
76
76
  className: "mt-1 text-sm text-text-secondary",
77
- children: o(G)
77
+ children: ee(G)
78
78
  }),
79
79
  /* @__PURE__ */ y("button", {
80
80
  onClick: () => Q("/oauth"),
@@ -83,9 +83,9 @@ var A = () => {
83
83
  })
84
84
  ]
85
85
  })
86
- }) : /* @__PURE__ */ v(u, {
86
+ }) : /* @__PURE__ */ v(ne, {
87
87
  authOnly: !0,
88
- children: /* @__PURE__ */ y(s, {
88
+ children: /* @__PURE__ */ y(o, {
89
89
  title: Z.name,
90
90
  description: Z.description || P("devportal.oauthAppDetailsAndCredentials", "OAuth App details and credentials"),
91
91
  purpose: P("devportal.oauthAppDetailPurpose", "These are this OAuth app's credentials and the scopes it may request. Copy the client ID for your integration, rotate the secret if it leaks, and keep scopes minimal so users only grant what the app truly needs."),
@@ -107,7 +107,7 @@ var A = () => {
107
107
  },
108
108
  actions: [{
109
109
  label: P("devportal.delete", "Delete"),
110
- icon: /* @__PURE__ */ v(_, { size: 16 }),
110
+ icon: /* @__PURE__ */ v(g, { size: 16 }),
111
111
  intent: "destructive",
112
112
  onSelect: () => B(!0)
113
113
  }]
@@ -142,7 +142,7 @@ var A = () => {
142
142
  className: "text-sm text-text-secondary",
143
143
  children: P("devportal.type", "Type")
144
144
  }), /* @__PURE__ */ v("span", {
145
- className: n("rounded px-2 py-0.5 text-xs font-medium", Z.type === "SERVICE" ? "bg-accent-purple-subtle text-accent-purple" : Z.type === "INTEGRATION" || Z.type === "API_INTEGRATION" ? "bg-status-info-bg-subtle text-status-info-text" : "bg-status-success-bg-subtle text-status-success-text"),
145
+ className: t("rounded px-2 py-0.5 text-xs font-medium", Z.type === "SERVICE" ? "bg-accent-purple-subtle text-accent-purple" : Z.type === "INTEGRATION" || Z.type === "API_INTEGRATION" ? "bg-status-info-bg-subtle text-status-info-text" : "bg-status-success-bg-subtle text-status-success-text"),
146
146
  children: Z.type
147
147
  })]
148
148
  }),
@@ -180,7 +180,7 @@ var A = () => {
180
180
  onClick: () => $(Z.clientId),
181
181
  className: "rounded p-1.5 hover:bg-bg-sunken transition-colors",
182
182
  title: "Copy",
183
- children: /* @__PURE__ */ v(f, { size: 14 })
183
+ children: /* @__PURE__ */ v(d, { size: 14 })
184
184
  })]
185
185
  })] }),
186
186
  L && /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
@@ -196,12 +196,12 @@ var A = () => {
196
196
  /* @__PURE__ */ v("button", {
197
197
  onClick: () => I(!F),
198
198
  className: "rounded p-1.5 hover:bg-bg-sunken transition-colors",
199
- children: v(F ? m : p, { size: 14 })
199
+ children: v(F ? p : f, { size: 14 })
200
200
  }),
201
201
  /* @__PURE__ */ v("button", {
202
202
  onClick: () => $(L),
203
203
  className: "rounded p-1.5 hover:bg-bg-sunken transition-colors",
204
- children: /* @__PURE__ */ v(f, { size: 14 })
204
+ children: /* @__PURE__ */ v(d, { size: 14 })
205
205
  })
206
206
  ]
207
207
  })] }),
@@ -209,7 +209,7 @@ var A = () => {
209
209
  onClick: () => H(!0),
210
210
  disabled: J,
211
211
  className: "mt-2 inline-flex items-center gap-2 rounded-md bg-status-warning-bg-subtle px-3 py-1.5 text-sm font-medium text-status-warning-text hover:bg-status-warning-bg-subtle transition-colors disabled:opacity-50",
212
- children: [/* @__PURE__ */ v(g, {
212
+ children: [/* @__PURE__ */ v(h, {
213
213
  size: 14,
214
214
  className: J ? "animate-spin" : ""
215
215
  }), P("devportal.rotateSecret", "Rotate Secret")]
@@ -259,7 +259,7 @@ var A = () => {
259
259
  }), /* @__PURE__ */ v("button", {
260
260
  onClick: () => $(e),
261
261
  className: "rounded p-1 hover:bg-bg-sunken transition-colors",
262
- children: /* @__PURE__ */ v(f, { size: 12 })
262
+ children: /* @__PURE__ */ v(d, { size: 12 })
263
263
  })]
264
264
  }, e))
265
265
  }) : /* @__PURE__ */ v("p", {