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