@burdenoff/microfe-devportal 2026.625.2 → 2026.625.3

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 (28) hide show
  1. package/dist/devportal/components/EmptyState.js +14 -8
  2. package/dist/devportal/components/EmptyState.js.map +1 -1
  3. package/dist/devportal/components/LoadingState.js.map +1 -1
  4. package/dist/devportal/components/PageLayout.js +39 -34
  5. package/dist/devportal/components/PageLayout.js.map +1 -1
  6. package/dist/devportal/components/StatCard.js +4 -3
  7. package/dist/devportal/components/StatCard.js.map +1 -1
  8. package/dist/devportal/components/StatusBadge.js +1 -1
  9. package/dist/devportal/components/StatusBadge.js.map +1 -1
  10. package/dist/devportal/pages/ApiKeysPage.js +1 -1
  11. package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
  12. package/dist/devportal/pages/AppLogsPage.js +85 -85
  13. package/dist/devportal/pages/AppLogsPage.js.map +1 -1
  14. package/dist/devportal/pages/ApplicationVersionsPage.js +7 -7
  15. package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
  16. package/dist/devportal/pages/DashboardPage.js +157 -151
  17. package/dist/devportal/pages/DashboardPage.js.map +1 -1
  18. package/dist/devportal/pages/DelegationsPage.js +2 -2
  19. package/dist/devportal/pages/DelegationsPage.js.map +1 -1
  20. package/dist/devportal/pages/OAuthClientsPage.js +1 -1
  21. package/dist/devportal/pages/OAuthClientsPage.js.map +1 -1
  22. package/dist/devportal/pages/OrganizationMembersPage.js +225 -225
  23. package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
  24. package/dist/devportal/pages/OrganizationsPage.js +25 -25
  25. package/dist/devportal/pages/OrganizationsPage.js.map +1 -1
  26. package/dist/devportal/pages/WebhooksPage.js +1 -1
  27. package/dist/devportal/pages/WebhooksPage.js.map +1 -1
  28. package/package.json +2 -2
@@ -1,11 +1,11 @@
1
1
  import { useDevportal as e } from "../providers/DevportalProvider.js";
2
2
  import { EmptyState as t } from "../components/EmptyState.js";
3
3
  import { useCancelInvitationMutation as n, useGetOrganizationInvitationsQuery as r, useGetOrganizationMembersQuery as ee, useGetOrganizationQuery as te, useInviteMemberMutation as ne, useReactivateMemberMutation as re, useRemoveMemberMutation as ie, useResendInvitationMutation as ae, useSuspendMemberMutation as oe, useTransferOwnershipMutation as se, useUpdateMemberRoleMutation as ce } from "../../generated/global-operations.js";
4
- import { PageLayout as i, PageSection as le } from "../components/PageLayout.js";
5
- import { ORG_ROLE_LABELS as a } from "../utils/constants.js";
6
- import { StatusBadge as o } from "../components/StatusBadge.js";
7
- import { SelectionCheckbox as s } from "../components/SelectionCheckbox.js";
8
- import { DataTable as c } from "../components/DataTable.js";
4
+ import { PageLayout as i, PageSection as a } from "../components/PageLayout.js";
5
+ import { ORG_ROLE_LABELS as o } from "../utils/constants.js";
6
+ import { StatusBadge as s } from "../components/StatusBadge.js";
7
+ import { SelectionCheckbox as c } from "../components/SelectionCheckbox.js";
8
+ import { DataTable as le } from "../components/DataTable.js";
9
9
  import { InputField as ue, SelectField as de } from "../components/FormField.js";
10
10
  import { ConfirmDialog as l } from "../components/ConfirmDialog.js";
11
11
  import { PermissionGuard as fe } from "../components/PermissionGuard.js";
@@ -16,285 +16,285 @@ import "../hooks/index.js";
16
16
  import f from "../../node_modules/date-fns/format.js";
17
17
  import { useEffect as pe, useMemo as p, useState as m } from "react";
18
18
  import { useI18n as me } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
19
- import { AlertCircle as h, Loader2 as he, Mail as ge, Plus as _e, RefreshCw as ve, Shield as ye, UserMinus as be, Users as xe } from "lucide-react";
20
- import { useParams as Se } from "react-router-dom";
19
+ import { AlertCircle as h, Loader2 as he, Mail as ge, Plus as _e, RefreshCw as ve, Shield as ye, UserMinus as be } from "lucide-react";
20
+ import { useParams as xe } from "react-router-dom";
21
21
  import { jsx as g, jsxs as _ } from "react/jsx-runtime";
22
22
  //#region src/devportal/pages/OrganizationMembersPage.tsx
23
23
  var v = () => {
24
- let { orgId: v } = Se(), { currentUser: y } = e(), { allowed: Ce } = d(u.ORG_INVITATION_CREATE), { allowed: we } = d(u.ORG_MEMBER_UPDATE), { allowed: b } = d(u.ORG_MEMBER_DELETE), { allowed: x } = d(u.ORG_MEMBER_ACTIVATE), { allowed: S } = d(u.ORG_MEMBER_DEACTIVATE), C = (e) => e.email ? e.email : y?.id === e.userId && y.email ? y.email : e.userId, { t: Te } = me(), w = (e, t) => {
25
- let n = Te(e);
24
+ let { orgId: v } = xe(), { currentUser: y } = e(), { allowed: Se } = d(u.ORG_INVITATION_CREATE), { allowed: b } = d(u.ORG_MEMBER_UPDATE), { allowed: x } = d(u.ORG_MEMBER_DELETE), { allowed: S } = d(u.ORG_MEMBER_ACTIVATE), { allowed: C } = d(u.ORG_MEMBER_DEACTIVATE), w = (e) => e.email ? e.email : y?.id === e.userId && y.email ? y.email : e.userId, { t: Ce } = me(), T = (e, t) => {
25
+ let n = Ce(e);
26
26
  return n === e ? t : n;
27
- }, [T, E] = m(!1), [D, O] = m(""), [k, A] = m("DEVELOPER"), [Ee, De] = m(""), [j, M] = m(null), [N, P] = m(null), [F, I] = m(/* @__PURE__ */ new Set()), [L, R] = m(/* @__PURE__ */ new Set()), [Oe, z] = m(!1), [ke, B] = m(!1), [V, H] = m(null), { data: Ae } = te({
27
+ }, [we, E] = m(!1), [D, Te] = m(""), [Ee, De] = m("DEVELOPER"), [Oe, ke] = m(""), [Ae, O] = m(null), [je, k] = m(null), [A, j] = m(/* @__PURE__ */ new Set()), [M, N] = m(/* @__PURE__ */ new Set()), [Me, P] = m(!1), [Ne, F] = m(!1), [I, L] = m(null), { data: Pe } = te({
28
28
  variables: { id: v ?? "" },
29
29
  skip: !v,
30
30
  fetchPolicy: "cache-first"
31
31
  });
32
32
  pe(() => {
33
- let e = Ae?.developerOrganization?.name;
33
+ let e = Pe?.developerOrganization?.name;
34
34
  if (!v || !e) return;
35
35
  let t = window.__breadcrumbRegistry;
36
36
  return t?.register(v, e), () => t?.unregister(v);
37
- }, [v, Ae?.developerOrganization?.name]);
38
- let { data: U, loading: je, error: Me } = ee({
37
+ }, [v, Pe?.developerOrganization?.name]);
38
+ let { data: R, loading: Fe, error: z } = ee({
39
39
  variables: { organizationId: v },
40
40
  skip: !v,
41
41
  fetchPolicy: "cache-and-network"
42
- }), { data: W, loading: Ne, error: Pe } = r({
42
+ }), { data: B, loading: Ie, error: V } = r({
43
43
  variables: {
44
44
  organizationId: v,
45
45
  status: "PENDING"
46
46
  },
47
47
  skip: !v,
48
48
  fetchPolicy: "cache-and-network"
49
- }), [Fe, { loading: Ie }] = ne({ refetchQueries: ["GetOrganizationInvitations"] }), [Le] = ie({ refetchQueries: ["GetOrganizationMembers"] }), [Re] = oe({ refetchQueries: ["GetOrganizationMembers"] }), [ze] = re({ refetchQueries: ["GetOrganizationMembers"] }), [Be] = ce({ refetchQueries: ["GetOrganizationMembers", "GetOrganization"] }), [Ve] = se({ refetchQueries: ["GetOrganizationMembers", "GetOrganization"] }), [He] = n({ refetchQueries: ["GetOrganizationInvitations"] }), [Ue] = ae(), G = p(() => U?.developerOrgMembers?.edges?.map((e) => e.node) ?? [], [U?.developerOrgMembers?.edges]), K = p(() => W?.developerOrgInvitations?.edges?.map((e) => e.node) ?? [], [W?.developerOrgInvitations?.edges]), We = U?.developerOrgMembers?.totalCount ?? 0, Ge = W?.developerOrgInvitations?.totalCount ?? 0, q = p(() => G.filter((e) => F.has(e.id)), [G, F]), J = p(() => K.filter((e) => L.has(e.id)), [K, L]), Y = G.filter((e) => e.role !== "OWNER"), Ke = Y.length > 0 && Y.every((e) => F.has(e.id)), qe = Y.some((e) => F.has(e.id)) && !Ke, X = K.length > 0 && K.every((e) => L.has(e.id)), Je = K.some((e) => L.has(e.id)) && !X, Z = q.filter((e) => e.role !== "OWNER" && !e.isSuspended), Q = q.filter((e) => e.isSuspended), $ = q.filter((e) => e.role !== "OWNER"), Ye = async () => {
49
+ }), [Le, { loading: Re }] = ne({ refetchQueries: ["GetOrganizationInvitations"] }), [H] = ie({ refetchQueries: ["GetOrganizationMembers"] }), [U] = oe({ refetchQueries: ["GetOrganizationMembers"] }), [W] = re({ refetchQueries: ["GetOrganizationMembers"] }), [ze] = ce({ refetchQueries: ["GetOrganizationMembers", "GetOrganization"] }), [Be] = se({ refetchQueries: ["GetOrganizationMembers", "GetOrganization"] }), [G] = n({ refetchQueries: ["GetOrganizationInvitations"] }), [Ve] = ae(), K = p(() => R?.developerOrgMembers?.edges?.map((e) => e.node) ?? [], [R?.developerOrgMembers?.edges]), q = p(() => B?.developerOrgInvitations?.edges?.map((e) => e.node) ?? [], [B?.developerOrgInvitations?.edges]), He = R?.developerOrgMembers?.totalCount ?? 0, Ue = B?.developerOrgInvitations?.totalCount ?? 0, J = p(() => K.filter((e) => A.has(e.id)), [K, A]), Y = p(() => q.filter((e) => M.has(e.id)), [q, M]), X = K.filter((e) => e.role !== "OWNER"), We = X.length > 0 && X.every((e) => A.has(e.id)), Ge = X.some((e) => A.has(e.id)) && !We, Ke = q.length > 0 && q.every((e) => M.has(e.id)), qe = q.some((e) => M.has(e.id)) && !Ke, Z = J.filter((e) => e.role !== "OWNER" && !e.isSuspended), Q = J.filter((e) => e.isSuspended), $ = J.filter((e) => e.role !== "OWNER"), Je = async () => {
50
50
  if (!(!v || !D.trim())) {
51
- M(null);
51
+ O(null);
52
52
  try {
53
- await Fe({ variables: {
53
+ await Le({ variables: {
54
54
  organizationId: v,
55
55
  input: {
56
56
  email: D,
57
- role: k,
58
- message: Ee || void 0
57
+ role: Ee,
58
+ message: Oe || void 0
59
59
  }
60
- } }), E(!1), O(""), A("DEVELOPER"), De("");
60
+ } }), E(!1), Te(""), De("DEVELOPER"), ke("");
61
61
  } catch (e) {
62
- M(e instanceof Error ? e.message : w("devportal.failedToSendInvitation", "Failed to send invitation"));
62
+ O(e instanceof Error ? e.message : T("devportal.failedToSendInvitation", "Failed to send invitation"));
63
63
  }
64
64
  }
65
- }, Xe = async (e) => {
66
- M(null);
65
+ }, Ye = async (e) => {
66
+ O(null);
67
67
  try {
68
- await Le({ variables: { id: e } });
68
+ await H({ variables: { id: e } });
69
69
  } catch (e) {
70
- M(e instanceof Error ? e.message : w("devportal.failedToRemoveMember", "Failed to remove member"));
70
+ O(e instanceof Error ? e.message : T("devportal.failedToRemoveMember", "Failed to remove member"));
71
71
  }
72
- }, Ze = async (e, t) => {
73
- M(null);
72
+ }, Xe = async (e, t) => {
73
+ O(null);
74
74
  try {
75
- await Re({ variables: {
75
+ await U({ variables: {
76
76
  id: e,
77
77
  reason: t || void 0
78
78
  } });
79
79
  } catch (e) {
80
- M(e instanceof Error ? e.message : w("devportal.failedToSuspendMember", "Failed to suspend member"));
80
+ O(e instanceof Error ? e.message : T("devportal.failedToSuspendMember", "Failed to suspend member"));
81
81
  }
82
- }, Qe = async (e) => {
83
- M(null);
82
+ }, Ze = async (e) => {
83
+ O(null);
84
84
  try {
85
- await ze({ variables: { id: e } });
85
+ await W({ variables: { id: e } });
86
86
  } catch (e) {
87
- M(e instanceof Error ? e.message : w("devportal.failedToReactivateMember", "Failed to reactivate member"));
87
+ O(e instanceof Error ? e.message : T("devportal.failedToReactivateMember", "Failed to reactivate member"));
88
88
  }
89
- }, $e = async (e, t) => {
90
- M(null);
89
+ }, Qe = async (e, t) => {
90
+ O(null);
91
91
  try {
92
- await Be({ variables: {
92
+ await ze({ variables: {
93
93
  id: e,
94
94
  role: t,
95
95
  permissions: void 0
96
- } }), P(w("devportal.memberRoleUpdated", "Member role updated successfully"));
96
+ } }), k(T("devportal.memberRoleUpdated", "Member role updated successfully"));
97
97
  } catch (e) {
98
- M(e instanceof Error ? e.message : w("devportal.failedToUpdateMemberRole", "Failed to update member role"));
98
+ O(e instanceof Error ? e.message : T("devportal.failedToUpdateMemberRole", "Failed to update member role"));
99
99
  }
100
- }, et = async () => {
101
- let e = V;
100
+ }, $e = async () => {
101
+ let e = I;
102
102
  if (!(!v || !e)) {
103
- M(null);
103
+ O(null);
104
104
  try {
105
- await Ve({ variables: {
105
+ await Be({ variables: {
106
106
  organizationId: v,
107
107
  newOwnerId: e.userId
108
- } }), H(null), P(w("devportal.organizationOwnershipTransferred", "Organization ownership transferred successfully"));
108
+ } }), L(null), k(T("devportal.organizationOwnershipTransferred", "Organization ownership transferred successfully"));
109
109
  } catch (e) {
110
- M(e instanceof Error ? e.message : w("devportal.failedToTransferOwnership", "Failed to transfer organization ownership"));
110
+ O(e instanceof Error ? e.message : T("devportal.failedToTransferOwnership", "Failed to transfer organization ownership"));
111
111
  }
112
112
  }
113
- }, tt = async (e) => {
114
- M(null);
113
+ }, et = async (e) => {
114
+ O(null);
115
115
  try {
116
- await He({ variables: { id: e } });
116
+ await G({ variables: { id: e } });
117
117
  } catch (e) {
118
- M(e instanceof Error ? e.message : w("devportal.failedToCancelInvitation", "Failed to cancel invitation"));
118
+ O(e instanceof Error ? e.message : T("devportal.failedToCancelInvitation", "Failed to cancel invitation"));
119
119
  }
120
- }, nt = async (e) => {
121
- M(null);
120
+ }, tt = async (e) => {
121
+ O(null);
122
122
  try {
123
- await Ue({ variables: { id: e } });
123
+ await Ve({ variables: { id: e } });
124
124
  } catch (e) {
125
- M(e instanceof Error ? e.message : w("devportal.failedToResendInvitation", "Failed to resend invitation"));
125
+ O(e instanceof Error ? e.message : T("devportal.failedToResendInvitation", "Failed to resend invitation"));
126
126
  }
127
- }, rt = () => {
128
- I(/* @__PURE__ */ new Set()), R(/* @__PURE__ */ new Set());
129
- }, it = (e, t) => {
130
- I((n) => {
127
+ }, nt = () => {
128
+ j(/* @__PURE__ */ new Set()), N(/* @__PURE__ */ new Set());
129
+ }, rt = (e, t) => {
130
+ j((n) => {
131
131
  let r = new Set(n);
132
132
  return t ? r.add(e) : r.delete(e), r;
133
133
  });
134
- }, at = (e) => {
135
- I((t) => {
134
+ }, it = (e) => {
135
+ j((t) => {
136
136
  let n = new Set(t);
137
- return Y.forEach((t) => {
137
+ return X.forEach((t) => {
138
138
  e ? n.add(t.id) : n.delete(t.id);
139
139
  }), n;
140
140
  });
141
- }, ot = (e, t) => {
142
- R((n) => {
141
+ }, at = (e, t) => {
142
+ N((n) => {
143
143
  let r = new Set(n);
144
144
  return t ? r.add(e) : r.delete(e), r;
145
145
  });
146
146
  };
147
- return (je || Ne) && !U && !W ? /* @__PURE__ */ g(i, {
148
- title: w("devportal.teamMembers", "Team Members"),
149
- description: w("devportal.manageYourOrganizationsTeam", "Manage your organization's team"),
147
+ return (Fe || Ie) && !R && !B ? /* @__PURE__ */ g(i, {
148
+ title: T("devportal.teamMembers", "Team Members"),
149
+ description: T("devportal.manageYourOrganizationsTeam", "Manage your organization's team"),
150
150
  backLink: `/organizations/${v}`,
151
- backLabel: w("devportal.backToOrganization", "Back to Organization"),
151
+ backLabel: T("devportal.backToOrganization", "Back to Organization"),
152
152
  children: /* @__PURE__ */ g("div", {
153
153
  className: "flex items-center justify-center py-16",
154
154
  children: /* @__PURE__ */ g(he, { className: "h-8 w-8 animate-spin text-text-secondary" })
155
155
  })
156
- }) : (Me || Pe) && !U && !W ? /* @__PURE__ */ g(i, {
157
- title: w("devportal.teamMembers", "Team Members"),
158
- description: w("devportal.manageYourOrganizationsTeam", "Manage your organization's team"),
156
+ }) : (z || V) && !R && !B ? /* @__PURE__ */ g(i, {
157
+ title: T("devportal.teamMembers", "Team Members"),
158
+ description: T("devportal.manageYourOrganizationsTeam", "Manage your organization's team"),
159
159
  backLink: `/organizations/${v}`,
160
- backLabel: w("devportal.backToOrganization", "Back to Organization"),
160
+ backLabel: T("devportal.backToOrganization", "Back to Organization"),
161
161
  children: /* @__PURE__ */ g(t, {
162
162
  icon: /* @__PURE__ */ g(h, {
163
163
  size: 32,
164
164
  className: "text-status-error-text"
165
165
  }),
166
- title: w("devportal.failedToLoadMembers", "Failed to load members"),
167
- description: Me?.message || Pe?.message || w("devportal.anErrorOccurredWhileLoadingTeamData", "An error occurred while loading team data")
166
+ title: T("devportal.failedToLoadMembers", "Failed to load members"),
167
+ description: z?.message || V?.message || T("devportal.anErrorOccurredWhileLoadingTeamData", "An error occurred while loading team data")
168
168
  })
169
169
  }) : /* @__PURE__ */ g(fe, {
170
170
  permission: u.ORG_MEMBER_READ,
171
171
  children: /* @__PURE__ */ _(i, {
172
- title: w("devportal.teamMembers", "Team Members"),
173
- description: w("devportal.manageYourOrganizationsTeam", "Manage your organization's team"),
172
+ title: T("devportal.teamMembers", "Team Members"),
173
+ description: T("devportal.manageYourOrganizationsTeam", "Manage your organization's team"),
174
174
  backLink: `/organizations/${v}`,
175
- backLabel: w("devportal.backToOrganization", "Back to Organization"),
175
+ backLabel: T("devportal.backToOrganization", "Back to Organization"),
176
176
  actions: /* @__PURE__ */ _("button", {
177
177
  onClick: () => E(!0),
178
- disabled: !Ce,
179
- "aria-disabled": !Ce,
178
+ disabled: !Se,
179
+ "aria-disabled": !Se,
180
180
  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",
181
- children: [/* @__PURE__ */ g(_e, { size: 16 }), w("devportal.inviteMember", "Invite Member")]
181
+ children: [/* @__PURE__ */ g(_e, { size: 16 }), T("devportal.inviteMember", "Invite Member")]
182
182
  }),
183
183
  children: [
184
- j && /* @__PURE__ */ _("div", {
184
+ Ae && /* @__PURE__ */ _("div", {
185
185
  className: "rounded-lg border border-border-subtle bg-status-error-bg-subtle p-3 flex items-center gap-2 text-sm text-status-error-text",
186
186
  children: [
187
187
  /* @__PURE__ */ g(h, {
188
188
  size: 16,
189
189
  className: "flex-shrink-0"
190
190
  }),
191
- j,
191
+ Ae,
192
192
  /* @__PURE__ */ g("button", {
193
- onClick: () => M(null),
193
+ onClick: () => O(null),
194
194
  className: "ml-auto text-status-error-text hover:text-status-error-text",
195
- children: w("devportal.dismiss", "Dismiss")
195
+ children: T("devportal.dismiss", "Dismiss")
196
196
  })
197
197
  ]
198
198
  }),
199
- N && /* @__PURE__ */ _("div", {
199
+ je && /* @__PURE__ */ _("div", {
200
200
  className: "rounded-lg border border-border-subtle bg-status-success-bg-subtle p-3 flex items-center gap-2 text-sm text-status-success-text",
201
201
  children: [
202
202
  /* @__PURE__ */ g(h, {
203
203
  size: 16,
204
204
  className: "flex-shrink-0"
205
205
  }),
206
- N,
206
+ je,
207
207
  /* @__PURE__ */ g("button", {
208
- onClick: () => P(null),
208
+ onClick: () => k(null),
209
209
  className: "ml-auto text-status-success-text hover:text-status-success-text",
210
- children: w("devportal.dismiss", "Dismiss")
210
+ children: T("devportal.dismiss", "Dismiss")
211
211
  })
212
212
  ]
213
213
  }),
214
- (F.size > 0 || L.size > 0) && /* @__PURE__ */ _("div", {
214
+ (A.size > 0 || M.size > 0) && /* @__PURE__ */ _("div", {
215
215
  className: "flex flex-wrap items-center gap-3 rounded-card border border-border-seam bg-bg-surface p-4",
216
216
  children: [/* @__PURE__ */ _("span", {
217
217
  className: "rounded-full bg-bg-sunken px-3 py-1 text-sm font-medium text-text-secondary",
218
218
  children: [
219
- F.size + L.size,
219
+ A.size + M.size,
220
220
  " ",
221
- w("devportal.selected", "selected")
221
+ T("devportal.selected", "selected")
222
222
  ]
223
223
  }), /* @__PURE__ */ g("button", {
224
- onClick: rt,
224
+ onClick: nt,
225
225
  className: "text-sm text-text-secondary hover:text-text-primary",
226
- children: w("devportal.clearAllSelections", "Clear all selections")
226
+ children: T("devportal.clearAllSelections", "Clear all selections")
227
227
  })]
228
228
  }),
229
- /* @__PURE__ */ g(le, {
230
- title: `${w("devportal.members", "Members")} (${We})`,
231
- actions: G.length > 0 ? /* @__PURE__ */ _("div", {
229
+ /* @__PURE__ */ g(a, {
230
+ title: `${T("devportal.members", "Members")} (${He})`,
231
+ actions: K.length > 0 ? /* @__PURE__ */ _("div", {
232
232
  className: "flex flex-wrap items-center gap-2",
233
233
  children: [
234
234
  /* @__PURE__ */ _("button", {
235
235
  onClick: async () => {
236
236
  if (Z.length === 0) return;
237
- M(null);
238
- let e = await Promise.allSettled(Z.map((e) => Re({ variables: {
237
+ O(null);
238
+ let e = await Promise.allSettled(Z.map((e) => U({ variables: {
239
239
  id: e.id,
240
240
  reason: void 0
241
241
  } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
242
- P(`${w("devportal.suspended", "Suspended")} ${t} ${t === 1 ? w("devportal.memberLower", "member") : w("devportal.membersLower", "members")}${n > 0 ? ` • ${n} ${w("devportal.failed", "failed")}` : ""}`), I(/* @__PURE__ */ new Set());
242
+ k(`${T("devportal.suspended", "Suspended")} ${t} ${t === 1 ? T("devportal.memberLower", "member") : T("devportal.membersLower", "members")}${n > 0 ? ` • ${n} ${T("devportal.failed", "failed")}` : ""}`), j(/* @__PURE__ */ new Set());
243
243
  },
244
- disabled: Z.length === 0 || !S,
245
- "aria-disabled": !S,
244
+ disabled: Z.length === 0 || !C,
245
+ "aria-disabled": !C,
246
246
  className: "rounded-md border border-status-warning-bg px-3 py-2 text-sm font-medium text-status-warning-text hover:bg-status-warning-bg-subtle disabled:cursor-not-allowed disabled:opacity-50",
247
- children: [w("devportal.suspendSelected", "Suspend Selected"), Z.length > 0 ? ` (${Z.length})` : ""]
247
+ children: [T("devportal.suspendSelected", "Suspend Selected"), Z.length > 0 ? ` (${Z.length})` : ""]
248
248
  }),
249
249
  /* @__PURE__ */ _("button", {
250
250
  onClick: async () => {
251
251
  if (Q.length === 0) return;
252
- M(null);
253
- let e = await Promise.allSettled(Q.map((e) => ze({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
254
- P(`${w("devportal.reactivated", "Reactivated")} ${t} ${t === 1 ? w("devportal.memberLower", "member") : w("devportal.membersLower", "members")}${n > 0 ? ` • ${n} ${w("devportal.failed", "failed")}` : ""}`), I(/* @__PURE__ */ new Set());
252
+ O(null);
253
+ let e = await Promise.allSettled(Q.map((e) => W({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
254
+ k(`${T("devportal.reactivated", "Reactivated")} ${t} ${t === 1 ? T("devportal.memberLower", "member") : T("devportal.membersLower", "members")}${n > 0 ? ` • ${n} ${T("devportal.failed", "failed")}` : ""}`), j(/* @__PURE__ */ new Set());
255
255
  },
256
- disabled: Q.length === 0 || !x,
257
- "aria-disabled": !x,
256
+ disabled: Q.length === 0 || !S,
257
+ "aria-disabled": !S,
258
258
  className: "rounded-md border border-status-success-bg px-3 py-2 text-sm font-medium text-status-success-text hover:bg-status-success-bg-subtle disabled:cursor-not-allowed disabled:opacity-50",
259
- children: [w("devportal.reactivateSelected", "Reactivate Selected"), Q.length > 0 ? ` (${Q.length})` : ""]
259
+ children: [T("devportal.reactivateSelected", "Reactivate Selected"), Q.length > 0 ? ` (${Q.length})` : ""]
260
260
  }),
261
261
  /* @__PURE__ */ _("button", {
262
- onClick: () => z(!0),
263
- disabled: $.length === 0 || !b,
264
- "aria-disabled": !b,
262
+ onClick: () => P(!0),
263
+ disabled: $.length === 0 || !x,
264
+ "aria-disabled": !x,
265
265
  className: "rounded-md border border-status-error-bg px-3 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg-subtle disabled:cursor-not-allowed disabled:opacity-50",
266
- children: [w("devportal.removeSelected", "Remove Selected"), $.length > 0 ? ` (${$.length})` : ""]
266
+ children: [T("devportal.removeSelected", "Remove Selected"), $.length > 0 ? ` (${$.length})` : ""]
267
267
  })
268
268
  ]
269
269
  }) : null,
270
- children: G.length > 0 ? /* @__PURE__ */ g(c, {
271
- data: G,
270
+ children: K.length > 0 ? /* @__PURE__ */ g(le, {
271
+ data: K,
272
272
  keyField: "id",
273
273
  columns: [
274
274
  {
275
275
  key: "select",
276
- header: /* @__PURE__ */ g(s, {
277
- checked: Ke,
278
- indeterminate: qe,
279
- onChange: at,
280
- ariaLabel: w("devportal.selectAllMembers", "Select all members")
276
+ header: /* @__PURE__ */ g(c, {
277
+ checked: We,
278
+ indeterminate: Ge,
279
+ onChange: it,
280
+ ariaLabel: T("devportal.selectAllMembers", "Select all members")
281
281
  }),
282
282
  className: "w-12",
283
283
  render: (e) => /* @__PURE__ */ g("div", {
284
284
  onClick: (e) => e.stopPropagation(),
285
- children: /* @__PURE__ */ g(s, {
286
- checked: F.has(e.id),
285
+ children: /* @__PURE__ */ g(c, {
286
+ checked: A.has(e.id),
287
287
  disabled: e.role === "OWNER",
288
- onChange: (t) => it(e.id, t),
289
- ariaLabel: `Select member ${C(e)}`
288
+ onChange: (t) => rt(e.id, t),
289
+ ariaLabel: `Select member ${w(e)}`
290
290
  })
291
291
  })
292
292
  },
293
293
  {
294
294
  key: "email",
295
- header: w("devportal.memberColumn", "Member"),
295
+ header: T("devportal.memberColumn", "Member"),
296
296
  render: (e) => {
297
- let t = C(e);
297
+ let t = w(e);
298
298
  return /* @__PURE__ */ _("div", {
299
299
  className: "flex items-center gap-3",
300
300
  children: [/* @__PURE__ */ g("div", {
@@ -306,7 +306,7 @@ var v = () => {
306
306
  }), /* @__PURE__ */ _("p", {
307
307
  className: "text-xs text-text-secondary",
308
308
  children: [
309
- w("devportal.joined", "Joined"),
309
+ T("devportal.joined", "Joined"),
310
310
  " ",
311
311
  f(new Date(e.joinedAt), "MMM d, yyyy")
312
312
  ]
@@ -316,17 +316,17 @@ var v = () => {
316
316
  },
317
317
  {
318
318
  key: "role",
319
- header: w("devportal.roleColumn", "Role"),
319
+ header: T("devportal.roleColumn", "Role"),
320
320
  render: (e) => /* @__PURE__ */ _("div", {
321
321
  className: "flex items-center gap-2",
322
322
  children: [/* @__PURE__ */ g(ye, {
323
323
  size: 14,
324
324
  className: "text-text-secondary"
325
- }), e.role === "OWNER" ? /* @__PURE__ */ g("span", { children: a[e.role] ?? e.role }) : /* @__PURE__ */ g("select", {
325
+ }), e.role === "OWNER" ? /* @__PURE__ */ g("span", { children: o[e.role] ?? e.role }) : /* @__PURE__ */ g("select", {
326
326
  value: e.role,
327
- onChange: (t) => void $e(e.id, t.target.value),
327
+ onChange: (t) => void Qe(e.id, t.target.value),
328
328
  className: "rounded-md border border-border-subtle bg-bg-surface px-2 py-1 text-xs text-text-primary",
329
- children: Object.entries(a).filter(([e]) => e !== "OWNER").map(([e, t]) => /* @__PURE__ */ g("option", {
329
+ children: Object.entries(o).filter(([e]) => e !== "OWNER").map(([e, t]) => /* @__PURE__ */ g("option", {
330
330
  value: e,
331
331
  children: t
332
332
  }, e))
@@ -335,14 +335,14 @@ var v = () => {
335
335
  },
336
336
  {
337
337
  key: "status",
338
- header: w("devportal.statusColumn", "Status"),
339
- render: (e) => e.isSuspended ? /* @__PURE__ */ g(o, {
338
+ header: T("devportal.statusColumn", "Status"),
339
+ render: (e) => e.isSuspended ? /* @__PURE__ */ g(s, {
340
340
  status: "SUSPENDED",
341
341
  type: "app"
342
- }) : e.isActive ? /* @__PURE__ */ g(o, {
342
+ }) : e.isActive ? /* @__PURE__ */ g(s, {
343
343
  status: "ACTIVE",
344
344
  type: "app"
345
- }) : /* @__PURE__ */ g(o, {
345
+ }) : /* @__PURE__ */ g(s, {
346
346
  status: "INACTIVE",
347
347
  type: "app"
348
348
  })
@@ -356,98 +356,98 @@ var v = () => {
356
356
  children: [
357
357
  e.isSuspended ? /* @__PURE__ */ g("button", {
358
358
  className: "text-xs text-status-success-text hover:underline disabled:opacity-50",
359
- disabled: !x,
360
- "aria-disabled": !x,
361
- title: w("devportal.reactivateMember", "Reactivate member"),
362
- onClick: () => Qe(e.id),
363
- children: w("devportal.reactivate", "Reactivate")
364
- }) : /* @__PURE__ */ g("button", {
365
- className: "text-xs text-status-warning-text hover:underline disabled:opacity-50",
366
359
  disabled: !S,
367
360
  "aria-disabled": !S,
368
- title: w("devportal.suspendMember", "Suspend member"),
361
+ title: T("devportal.reactivateMember", "Reactivate member"),
369
362
  onClick: () => Ze(e.id),
370
- children: w("devportal.suspend", "Suspend")
363
+ children: T("devportal.reactivate", "Reactivate")
364
+ }) : /* @__PURE__ */ g("button", {
365
+ className: "text-xs text-status-warning-text hover:underline disabled:opacity-50",
366
+ disabled: !C,
367
+ "aria-disabled": !C,
368
+ title: T("devportal.suspendMember", "Suspend member"),
369
+ onClick: () => Xe(e.id),
370
+ children: T("devportal.suspend", "Suspend")
371
371
  }),
372
372
  /* @__PURE__ */ g("button", {
373
373
  className: "text-xs text-status-error-text hover:underline disabled:opacity-50",
374
- disabled: !b,
375
- "aria-disabled": !b,
376
- title: w("devportal.removeMember", "Remove member"),
377
- onClick: () => Xe(e.id),
378
- children: w("devportal.remove", "Remove")
374
+ disabled: !x,
375
+ "aria-disabled": !x,
376
+ title: T("devportal.removeMember", "Remove member"),
377
+ onClick: () => Ye(e.id),
378
+ children: T("devportal.remove", "Remove")
379
379
  }),
380
380
  /* @__PURE__ */ g("button", {
381
381
  className: "text-xs text-primary hover:underline disabled:opacity-50",
382
- disabled: !we,
383
- "aria-disabled": !we,
384
- title: w("devportal.transferOwnership", "Transfer ownership"),
385
- onClick: () => H(e),
386
- children: w("devportal.makeOwner", "Make Owner")
382
+ disabled: !b,
383
+ "aria-disabled": !b,
384
+ title: T("devportal.transferOwnership", "Transfer ownership"),
385
+ onClick: () => L(e),
386
+ children: T("devportal.makeOwner", "Make Owner")
387
387
  })
388
388
  ]
389
389
  })
390
390
  }
391
391
  ]
392
392
  }) : /* @__PURE__ */ g(t, {
393
- icon: /* @__PURE__ */ g(xe, { size: 24 }),
394
- title: w("devportal.noMembers", "No members"),
395
- description: w("devportal.inviteTeamMembersToCollaborate", "Invite team members to collaborate")
393
+ illustration: "empty-people",
394
+ title: T("devportal.noMembers", "No members"),
395
+ description: T("devportal.inviteTeamMembersToCollaborate", "Invite team members to collaborate")
396
396
  })
397
397
  }),
398
- K.length > 0 && /* @__PURE__ */ g(le, {
399
- title: `${w("devportal.pendingInvitations", "Pending Invitations")} (${Ge})`,
398
+ q.length > 0 && /* @__PURE__ */ g(a, {
399
+ title: `${T("devportal.pendingInvitations", "Pending Invitations")} (${Ue})`,
400
400
  actions: /* @__PURE__ */ _("div", {
401
401
  className: "flex flex-wrap items-center gap-2",
402
402
  children: [/* @__PURE__ */ _("button", {
403
403
  onClick: async () => {
404
- if (J.length === 0) return;
405
- M(null);
406
- let e = await Promise.allSettled(J.map((e) => Ue({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
407
- P(`${w("devportal.resent", "Resent")} ${t} ${t === 1 ? w("devportal.invitationLower", "invitation") : w("devportal.invitationsLower", "invitations")}${n > 0 ? ` • ${n} ${w("devportal.failed", "failed")}` : ""}`), R(/* @__PURE__ */ new Set());
404
+ if (Y.length === 0) return;
405
+ O(null);
406
+ let e = await Promise.allSettled(Y.map((e) => Ve({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
407
+ k(`${T("devportal.resent", "Resent")} ${t} ${t === 1 ? T("devportal.invitationLower", "invitation") : T("devportal.invitationsLower", "invitations")}${n > 0 ? ` • ${n} ${T("devportal.failed", "failed")}` : ""}`), N(/* @__PURE__ */ new Set());
408
408
  },
409
- disabled: J.length === 0,
409
+ disabled: Y.length === 0,
410
410
  className: "rounded-md border border-primary/30 px-3 py-2 text-sm font-medium text-primary hover:bg-action-primary-bg/5 disabled:cursor-not-allowed disabled:opacity-50",
411
- children: [w("devportal.resendSelected", "Resend Selected"), J.length > 0 ? ` (${J.length})` : ""]
411
+ children: [T("devportal.resendSelected", "Resend Selected"), Y.length > 0 ? ` (${Y.length})` : ""]
412
412
  }), /* @__PURE__ */ _("button", {
413
- onClick: () => B(!0),
414
- disabled: J.length === 0,
413
+ onClick: () => F(!0),
414
+ disabled: Y.length === 0,
415
415
  className: "rounded-md border border-status-error-bg px-3 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg-subtle disabled:cursor-not-allowed disabled:opacity-50",
416
- children: [w("devportal.cancelSelected", "Cancel Selected"), J.length > 0 ? ` (${J.length})` : ""]
416
+ children: [T("devportal.cancelSelected", "Cancel Selected"), Y.length > 0 ? ` (${Y.length})` : ""]
417
417
  })]
418
418
  }),
419
- children: /* @__PURE__ */ g(c, {
420
- data: K,
419
+ children: /* @__PURE__ */ g(le, {
420
+ data: q,
421
421
  keyField: "id",
422
422
  columns: [
423
423
  {
424
424
  key: "select",
425
- header: /* @__PURE__ */ g(s, {
426
- checked: X,
427
- indeterminate: Je,
425
+ header: /* @__PURE__ */ g(c, {
426
+ checked: Ke,
427
+ indeterminate: qe,
428
428
  onChange: (e) => {
429
- R((t) => {
429
+ N((t) => {
430
430
  let n = new Set(t);
431
- return K.forEach((t) => {
431
+ return q.forEach((t) => {
432
432
  e ? n.add(t.id) : n.delete(t.id);
433
433
  }), n;
434
434
  });
435
435
  },
436
- ariaLabel: w("devportal.selectAllInvitations", "Select all invitations")
436
+ ariaLabel: T("devportal.selectAllInvitations", "Select all invitations")
437
437
  }),
438
438
  className: "w-12",
439
439
  render: (e) => /* @__PURE__ */ g("div", {
440
440
  onClick: (e) => e.stopPropagation(),
441
- children: /* @__PURE__ */ g(s, {
442
- checked: L.has(e.id),
443
- onChange: (t) => ot(e.id, t),
441
+ children: /* @__PURE__ */ g(c, {
442
+ checked: M.has(e.id),
443
+ onChange: (t) => at(e.id, t),
444
444
  ariaLabel: `Select invitation ${e.invitedEmail}`
445
445
  })
446
446
  })
447
447
  },
448
448
  {
449
449
  key: "invitedEmail",
450
- header: w("devportal.emailColumn", "Email"),
450
+ header: T("devportal.emailColumn", "Email"),
451
451
  render: (e) => /* @__PURE__ */ _("div", {
452
452
  className: "flex items-center gap-2",
453
453
  children: [/* @__PURE__ */ g(ge, {
@@ -458,20 +458,20 @@ var v = () => {
458
458
  },
459
459
  {
460
460
  key: "role",
461
- header: w("devportal.invitedRoleColumn", "Invited Role"),
462
- render: (e) => a[e.role] ?? e.role
461
+ header: T("devportal.invitedRoleColumn", "Invited Role"),
462
+ render: (e) => o[e.role] ?? e.role
463
463
  },
464
464
  {
465
465
  key: "status",
466
- header: w("devportal.statusColumn", "Status"),
467
- render: (e) => /* @__PURE__ */ g(o, {
466
+ header: T("devportal.statusColumn", "Status"),
467
+ render: (e) => /* @__PURE__ */ g(s, {
468
468
  status: e.status,
469
469
  type: "invitation"
470
470
  })
471
471
  },
472
472
  {
473
473
  key: "expiresAt",
474
- header: w("devportal.expiresColumn", "Expires"),
474
+ header: T("devportal.expiresColumn", "Expires"),
475
475
  render: (e) => f(new Date(e.expiresAt), "MMM d, yyyy")
476
476
  },
477
477
  {
@@ -482,13 +482,13 @@ var v = () => {
482
482
  className: "flex gap-1",
483
483
  children: [/* @__PURE__ */ g("button", {
484
484
  className: "rounded p-1 hover:bg-bg-sunken",
485
- title: w("devportal.resend", "Resend"),
486
- onClick: () => nt(e.id),
485
+ title: T("devportal.resend", "Resend"),
486
+ onClick: () => tt(e.id),
487
487
  children: /* @__PURE__ */ g(ve, { size: 14 })
488
488
  }), /* @__PURE__ */ g("button", {
489
489
  className: "rounded p-1 hover:bg-bg-sunken text-status-error-text",
490
- title: w("devportal.cancel", "Cancel"),
491
- onClick: () => tt(e.id),
490
+ title: T("devportal.cancel", "Cancel"),
491
+ onClick: () => et(e.id),
492
492
  children: /* @__PURE__ */ g(be, { size: 14 })
493
493
  })]
494
494
  })
@@ -496,38 +496,38 @@ var v = () => {
496
496
  ]
497
497
  })
498
498
  }),
499
- T && /* @__PURE__ */ g(l, {
500
- open: T,
499
+ we && /* @__PURE__ */ g(l, {
500
+ open: we,
501
501
  onOpenChange: E,
502
- onConfirm: Ye,
503
- title: w("devportal.inviteTeamMember", "Invite Team Member"),
504
- confirmLabel: Ie ? w("devportal.sendingDots", "Sending...") : w("devportal.sendInvitation", "Send Invitation"),
502
+ onConfirm: Je,
503
+ title: T("devportal.inviteTeamMember", "Invite Team Member"),
504
+ confirmLabel: Re ? T("devportal.sendingDots", "Sending...") : T("devportal.sendInvitation", "Send Invitation"),
505
505
  children: /* @__PURE__ */ _("div", {
506
506
  className: "space-y-4",
507
507
  children: [/* @__PURE__ */ g(ue, {
508
- label: w("devportal.emailAddress", "Email Address"),
508
+ label: T("devportal.emailAddress", "Email Address"),
509
509
  type: "email",
510
510
  value: D,
511
- onChange: (e) => O(e.target.value),
511
+ onChange: (e) => Te(e.target.value),
512
512
  placeholder: "colleague@example.com",
513
- hint: w("devportal.mustBeExistingVerifiedUser", "Must be an existing verified user"),
513
+ hint: T("devportal.mustBeExistingVerifiedUser", "Must be an existing verified user"),
514
514
  required: !0
515
515
  }), /* @__PURE__ */ g(de, {
516
- label: w("devportal.roleColumn", "Role"),
517
- value: k,
518
- onChange: (e) => A(e.target.value),
516
+ label: T("devportal.roleColumn", "Role"),
517
+ value: Ee,
518
+ onChange: (e) => De(e.target.value),
519
519
  options: [
520
520
  {
521
521
  value: "ADMIN",
522
- label: w("devportal.adminFullAccess", "Admin - Full access")
522
+ label: T("devportal.adminFullAccess", "Admin - Full access")
523
523
  },
524
524
  {
525
525
  value: "DEVELOPER",
526
- label: w("devportal.developerCreateAndManageApps", "Developer - Create and manage apps")
526
+ label: T("devportal.developerCreateAndManageApps", "Developer - Create and manage apps")
527
527
  },
528
528
  {
529
529
  value: "VIEWER",
530
- label: w("devportal.viewerReadOnlyAccess", "Viewer - Read-only access")
530
+ label: T("devportal.viewerReadOnlyAccess", "Viewer - Read-only access")
531
531
  }
532
532
  ],
533
533
  required: !0
@@ -535,45 +535,45 @@ var v = () => {
535
535
  })
536
536
  }),
537
537
  /* @__PURE__ */ g(l, {
538
- open: Oe,
539
- onOpenChange: z,
538
+ open: Me,
539
+ onOpenChange: P,
540
540
  onConfirm: async () => {
541
541
  if ($.length === 0) return;
542
- M(null);
543
- let e = await Promise.allSettled($.map((e) => Le({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
544
- P(`${w("devportal.removed", "Removed")} ${t} ${t === 1 ? w("devportal.memberLower", "member") : w("devportal.membersLower", "members")}${n > 0 ? ` • ${n} ${w("devportal.failed", "failed")}` : ""}`), z(!1), I(/* @__PURE__ */ new Set());
542
+ O(null);
543
+ let e = await Promise.allSettled($.map((e) => H({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
544
+ k(`${T("devportal.removed", "Removed")} ${t} ${t === 1 ? T("devportal.memberLower", "member") : T("devportal.membersLower", "members")}${n > 0 ? ` • ${n} ${T("devportal.failed", "failed")}` : ""}`), P(!1), j(/* @__PURE__ */ new Set());
545
545
  },
546
- title: w("devportal.removeSelectedMembers", "Remove selected members"),
547
- description: `${w("devportal.removeNSelectedMembers", "Remove")} ${$.length} ${w("devportal.selectedMembersFromOrg", "selected member(s) from this organization? This action cannot be undone.")}`,
548
- confirmLabel: w("devportal.removeMembers", "Remove Members"),
549
- cancelLabel: w("devportal.cancel", "Cancel"),
546
+ title: T("devportal.removeSelectedMembers", "Remove selected members"),
547
+ description: `${T("devportal.removeNSelectedMembers", "Remove")} ${$.length} ${T("devportal.selectedMembersFromOrg", "selected member(s) from this organization? This action cannot be undone.")}`,
548
+ confirmLabel: T("devportal.removeMembers", "Remove Members"),
549
+ cancelLabel: T("devportal.cancel", "Cancel"),
550
550
  variant: "danger"
551
551
  }),
552
552
  /* @__PURE__ */ g(l, {
553
- open: ke,
554
- onOpenChange: B,
553
+ open: Ne,
554
+ onOpenChange: F,
555
555
  onConfirm: async () => {
556
- if (J.length === 0) return;
557
- M(null);
558
- let e = await Promise.allSettled(J.map((e) => He({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
559
- P(`${w("devportal.cancelled", "Cancelled")} ${t} ${t === 1 ? w("devportal.invitationLower", "invitation") : w("devportal.invitationsLower", "invitations")}${n > 0 ? ` • ${n} ${w("devportal.failed", "failed")}` : ""}`), B(!1), R(/* @__PURE__ */ new Set());
556
+ if (Y.length === 0) return;
557
+ O(null);
558
+ let e = await Promise.allSettled(Y.map((e) => G({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
559
+ k(`${T("devportal.cancelled", "Cancelled")} ${t} ${t === 1 ? T("devportal.invitationLower", "invitation") : T("devportal.invitationsLower", "invitations")}${n > 0 ? ` • ${n} ${T("devportal.failed", "failed")}` : ""}`), F(!1), N(/* @__PURE__ */ new Set());
560
560
  },
561
- title: w("devportal.cancelSelectedInvitations", "Cancel selected invitations"),
562
- description: `${w("devportal.cancelNPendingInvitations", "Cancel")} ${J.length} ${w("devportal.pendingInvitationsQuestion", "pending invitation(s)?")}`,
563
- confirmLabel: w("devportal.cancelInvitations", "Cancel Invitations"),
564
- cancelLabel: w("devportal.keepInvitations", "Keep Invitations"),
561
+ title: T("devportal.cancelSelectedInvitations", "Cancel selected invitations"),
562
+ description: `${T("devportal.cancelNPendingInvitations", "Cancel")} ${Y.length} ${T("devportal.pendingInvitationsQuestion", "pending invitation(s)?")}`,
563
+ confirmLabel: T("devportal.cancelInvitations", "Cancel Invitations"),
564
+ cancelLabel: T("devportal.keepInvitations", "Keep Invitations"),
565
565
  variant: "danger"
566
566
  }),
567
567
  /* @__PURE__ */ g(l, {
568
- open: V !== null,
568
+ open: I !== null,
569
569
  onOpenChange: (e) => {
570
- e || H(null);
570
+ e || L(null);
571
571
  },
572
- onConfirm: et,
573
- title: w("devportal.transferOwnership", "Transfer ownership"),
574
- description: V ? w("devportal.transferOwnershipConfirmation", `Transfer organization ownership to ${C(V)}?`) : void 0,
575
- confirmLabel: w("devportal.makeOwner", "Make Owner"),
576
- cancelLabel: w("devportal.cancel", "Cancel"),
572
+ onConfirm: $e,
573
+ title: T("devportal.transferOwnership", "Transfer ownership"),
574
+ description: I ? T("devportal.transferOwnershipConfirmation", `Transfer organization ownership to ${w(I)}?`) : void 0,
575
+ confirmLabel: T("devportal.makeOwner", "Make Owner"),
576
+ cancelLabel: T("devportal.cancel", "Cancel"),
577
577
  variant: "warning"
578
578
  })
579
579
  ]