@burdenoff/microfe-organization 2026.624.2 → 2026.625.2

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 (32) hide show
  1. package/dist/organization-management/modules/members/components/BulkInviteForm.js.map +1 -1
  2. package/dist/organization-management/modules/members/pages/InviteMemberPage.js +58 -52
  3. package/dist/organization-management/modules/members/pages/InviteMemberPage.js.map +1 -1
  4. package/dist/organization-management/modules/members/pages/InvitePeoplePage.js +41 -39
  5. package/dist/organization-management/modules/members/pages/InvitePeoplePage.js.map +1 -1
  6. package/dist/organization-management/modules/members/pages/MemberDetailPage.js +70 -68
  7. package/dist/organization-management/modules/members/pages/MemberDetailPage.js.map +1 -1
  8. package/dist/organization-management/modules/members/pages/MembersListPage.js +232 -203
  9. package/dist/organization-management/modules/members/pages/MembersListPage.js.map +1 -1
  10. package/dist/organization-management/modules/members/pages/MyInvitesPage.js +38 -37
  11. package/dist/organization-management/modules/members/pages/MyInvitesPage.js.map +1 -1
  12. package/dist/organization-management/modules/members/pages/OrganizationInviteAcceptancePage.js +134 -132
  13. package/dist/organization-management/modules/members/pages/OrganizationInviteAcceptancePage.js.map +1 -1
  14. package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.js +38 -36
  15. package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.js.map +1 -1
  16. package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.js +163 -166
  17. package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.js.map +1 -1
  18. package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.js +48 -46
  19. package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.js.map +1 -1
  20. package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.js +257 -229
  21. package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.js.map +1 -1
  22. package/dist/organization-management/modules/workspaces/components/WorkspaceCard.js +43 -50
  23. package/dist/organization-management/modules/workspaces/components/WorkspaceCard.js.map +1 -1
  24. package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.js +39 -37
  25. package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.js.map +1 -1
  26. package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.js +146 -145
  27. package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.js.map +1 -1
  28. package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.js +46 -44
  29. package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.js.map +1 -1
  30. package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.js +115 -72
  31. package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.js.map +1 -1
  32. package/package.json +2 -2
@@ -3,23 +3,23 @@ import { toast as t } from "../../../../node_modules/sonner/dist/index.js";
3
3
  import { useTr as n } from "../../../shared/hooks/useTr.js";
4
4
  import { LoadingState as r } from "../../../shared/components/feedback/LoadingState.js";
5
5
  import { ErrorState as i } from "../../../shared/components/feedback/ErrorState.js";
6
- import { EmptyState as a } from "../../../shared/components/feedback/EmptyState.js";
7
- import { useConfirmDialog as o } from "../../../shared/components/dialog/ConfirmDialog.js";
8
- import { PERMISSIONS as s } from "../../../constants/permissions.js";
9
- import { MemberRoleBadge as c } from "../../members/components/MemberRoleBadge.js";
10
- import { useWorkspace as l } from "../hooks/useWorkspaces.js";
11
- import { WorkspaceStatusBadge as u } from "../components/WorkspaceStatusBadge.js";
12
- import { useRemoveWorkspaceMember as d, useWorkspaceMembers as f } from "../hooks/useWorkspaceMembers.js";
13
- import { AddWorkspaceMemberDialog as p } from "../components/AddWorkspaceMemberDialog.js";
14
- import { useMemo as m, useState as h } from "react";
15
- import { ArrowLeft as g, Briefcase as _, Edit as v, Trash2 as y, UserPlus as b, Users as x } from "lucide-react";
16
- import { ResponsiveTable as S } from "@burdenoff/fe-libs/ui";
17
- import { usePermissions as C } from "@burdenoff/fe-libs/shared/providers/shell";
6
+ import { EmptyState as ee } from "../../../shared/components/feedback/EmptyState.js";
7
+ import { useConfirmDialog as a } from "../../../shared/components/dialog/ConfirmDialog.js";
8
+ import { PERMISSIONS as o } from "../../../constants/permissions.js";
9
+ import { MemberRoleBadge as s } from "../../members/components/MemberRoleBadge.js";
10
+ import { useWorkspace as c } from "../hooks/useWorkspaces.js";
11
+ import { WorkspaceStatusBadge as l } from "../components/WorkspaceStatusBadge.js";
12
+ import { useRemoveWorkspaceMember as u, useWorkspaceMembers as d } from "../hooks/useWorkspaceMembers.js";
13
+ import { AddWorkspaceMemberDialog as f } from "../components/AddWorkspaceMemberDialog.js";
14
+ import { useMemo as p, useState as m } from "react";
15
+ import { ArrowLeft as h, Briefcase as g, Edit as _, Trash2 as v, UserPlus as te, Users as y } from "lucide-react";
16
+ import { CTAOverflowMenu as b, EmphasisPanel as x, GlassCard as S, ResponsiveTable as C } from "@burdenoff/fe-libs/ui";
17
+ import { usePermissions as ne } from "@burdenoff/fe-libs/shared/providers/shell";
18
18
  import { jsx as w, jsxs as T } from "react/jsx-runtime";
19
- import { useParams as ee } from "react-router-dom";
20
- import { ActorIdentity as E, buildActorFallback as D, useActorProfiles as O } from "@burdenoff/fe-libs/shared";
19
+ import { useParams as E } from "react-router-dom";
20
+ import { ActorIdentity as D, buildActorFallback as O, useActorProfiles as k } from "@burdenoff/fe-libs/shared";
21
21
  //#region src/organization-management/modules/workspaces/pages/WorkspaceDetailPage.tsx
22
- function k(e) {
22
+ function A(e) {
23
23
  return new Date(e).toLocaleDateString("en-US", {
24
24
  year: "numeric",
25
25
  month: "long",
@@ -28,46 +28,46 @@ function k(e) {
28
28
  minute: "2-digit"
29
29
  });
30
30
  }
31
- function A() {
32
- let A = n(), { id: j } = ee(), { navigate: M, basePath: N = "/organizations", apiGatewayUrl: P, authToken: F } = e(), { hasPermission: I, isLoading: L } = C(), { workspace: R, loading: z, error: B } = l(j ?? ""), [V, H] = h("overview"), [U, W] = h(!1), { openConfirmDialog: G, ConfirmDialog: K } = o(), { members: q, loading: J, error: Y, refetch: X } = f(V === "members" && j ? j ?? "" : "", 50, 0), { removeWorkspaceMember: Z, loading: Q } = d(), $ = q.length > 0 || V === "members" ? q.length : R?.memberCount ?? 0, te = O(m(() => q.map((e) => ({
31
+ function j() {
32
+ let j = n(), { id: M } = E(), { navigate: N, basePath: P = "/organizations", apiGatewayUrl: F, authToken: I } = e(), { hasPermission: L, isLoading: R } = ne(), { workspace: z, loading: B, error: V } = c(M ?? ""), [H, U] = m("overview"), [W, G] = m(!1), { openConfirmDialog: K, ConfirmDialog: q } = a(), { members: J, loading: Y, error: X, refetch: Z } = d(H === "members" && M ? M ?? "" : "", 50, 0), { removeWorkspaceMember: Q, loading: re } = u(), $ = J.length > 0 || H === "members" ? J.length : z?.memberCount ?? 0, ie = k(p(() => J.map((e) => ({
33
33
  actorId: e.userId,
34
34
  actorType: "user"
35
- })), [q]), {
36
- apiGatewayUrl: P,
37
- authToken: F,
38
- orgId: R?.organizationId,
39
- workspaceId: j
40
- }), ne = m(() => [{
35
+ })), [J]), {
36
+ apiGatewayUrl: F,
37
+ authToken: I,
38
+ orgId: z?.organizationId,
39
+ workspaceId: M
40
+ }), ae = p(() => [{
41
41
  id: "overview",
42
- label: A("workspaces.detail.tab.overview", "Overview")
42
+ label: j("workspaces.detail.tab.overview", "Overview")
43
43
  }, {
44
44
  id: "members",
45
- label: `${A("workspaces.detail.tab.members", "Members")} (${$})`
46
- }], [$, A]), re = (e) => {
47
- j && G({
48
- title: A("workspaces.removeMember.title", "Remove workspace member"),
49
- description: `${A("workspaces.removeMember.prefix", "Remove")} ${e} ${A("workspaces.removeMember.suffix", "from this workspace? They will keep their organization membership.")}`,
50
- confirmText: A("common.remove", "Remove"),
45
+ label: `${j("workspaces.detail.tab.members", "Members")} (${$})`
46
+ }], [$, j]), oe = (e) => {
47
+ M && K({
48
+ title: j("workspaces.removeMember.title", "Remove workspace member"),
49
+ description: `${j("workspaces.removeMember.prefix", "Remove")} ${e} ${j("workspaces.removeMember.suffix", "from this workspace? They will keep their organization membership.")}`,
50
+ confirmText: j("common.remove", "Remove"),
51
51
  variant: "danger",
52
52
  onConfirm: () => {
53
53
  (async () => {
54
54
  try {
55
- let n = await Z(j, e);
56
- if (n.errors?.length) throw Error(n.errors[0]?.message ?? A("workspaces.removeMember.failed", "Failed to remove workspace member"));
57
- await X(), t.success(A("workspaces.removeMember.success", "Workspace member removed successfully"));
55
+ let n = await Q(M, e);
56
+ if (n.errors?.length) throw Error(n.errors[0]?.message ?? j("workspaces.removeMember.failed", "Failed to remove workspace member"));
57
+ await Z(), t.success(j("workspaces.removeMember.success", "Workspace member removed successfully"));
58
58
  } catch (e) {
59
- t.error(e instanceof Error ? e.message : A("workspaces.removeMember.failed", "Failed to remove workspace member"));
59
+ t.error(e instanceof Error ? e.message : j("workspaces.removeMember.failed", "Failed to remove workspace member"));
60
60
  }
61
61
  })();
62
62
  }
63
63
  });
64
- }, ie = [
64
+ }, se = [
65
65
  {
66
66
  key: "user",
67
- header: A("members.detail.userId", "User ID"),
67
+ header: j("members.detail.userId", "User ID"),
68
68
  priority: "primary",
69
- cell: (e) => /* @__PURE__ */ w(E, {
70
- profile: te[e.userId] ?? D({
69
+ cell: (e) => /* @__PURE__ */ w(D, {
70
+ profile: ie[e.userId] ?? O({
71
71
  actorId: e.userId,
72
72
  actorType: "user"
73
73
  }),
@@ -76,22 +76,22 @@ function A() {
76
76
  },
77
77
  {
78
78
  key: "role",
79
- header: A("members.list.column.role", "Role"),
79
+ header: j("members.list.column.role", "Role"),
80
80
  priority: "secondary",
81
- cell: (e) => /* @__PURE__ */ w(c, { role: e.role })
81
+ cell: (e) => /* @__PURE__ */ w(s, { role: e.role })
82
82
  },
83
83
  {
84
84
  key: "joined",
85
- header: A("members.list.joined", "Joined"),
85
+ header: j("members.list.joined", "Joined"),
86
86
  priority: "secondary",
87
87
  cell: (e) => /* @__PURE__ */ w("span", {
88
88
  className: "text-sm text-[var(--color-text-secondary)]",
89
- children: k(e.joinedAt)
89
+ children: A(e.joinedAt)
90
90
  })
91
91
  },
92
92
  {
93
93
  key: "invitedBy",
94
- header: A("members.list.invitedBy", "Invited by"),
94
+ header: j("members.list.invitedBy", "Invited by"),
95
95
  priority: "secondary",
96
96
  cell: (e) => /* @__PURE__ */ w("span", {
97
97
  className: "break-all font-mono text-sm text-[var(--color-text-secondary)]",
@@ -99,19 +99,19 @@ function A() {
99
99
  })
100
100
  }
101
101
  ];
102
- return L ? /* @__PURE__ */ w("div", {
102
+ return R ? /* @__PURE__ */ w("div", {
103
103
  className: "min-h-full bg-[var(--color-bg-canvas)] p-6",
104
- children: /* @__PURE__ */ w(r, { message: A("common.loadingPermissions", "Loading permissions...") })
105
- }) : I(s.WORKSPACE_READ) ? z ? /* @__PURE__ */ w("div", {
104
+ children: /* @__PURE__ */ w(r, { message: j("common.loadingPermissions", "Loading permissions...") })
105
+ }) : L(o.WORKSPACE_READ) ? B ? /* @__PURE__ */ w("div", {
106
106
  className: "min-h-full bg-[var(--color-bg-canvas)] px-4 py-6 sm:px-6",
107
- children: /* @__PURE__ */ w(r, { message: A("workspaces.detail.loading", "Loading workspace details...") })
108
- }) : B || !R ? /* @__PURE__ */ w("div", {
107
+ children: /* @__PURE__ */ w(r, { message: j("workspaces.detail.loading", "Loading workspace details...") })
108
+ }) : V || !z ? /* @__PURE__ */ w("div", {
109
109
  className: "min-h-full bg-[var(--color-bg-canvas)] px-4 py-6 sm:px-6",
110
110
  children: /* @__PURE__ */ w(i, {
111
- message: B?.message || A("workspaces.detail.notFound", "Workspace not found"),
111
+ message: V?.message || j("workspaces.detail.notFound", "Workspace not found"),
112
112
  action: {
113
- label: A("workspaces.create.backToWorkspaces", "Back to Workspaces"),
114
- onClick: () => M(`${N}/workspaces`)
113
+ label: j("workspaces.create.backToWorkspaces", "Back to Workspaces"),
114
+ onClick: () => N(`${P}/workspaces`)
115
115
  }
116
116
  })
117
117
  }) : /* @__PURE__ */ T("div", {
@@ -123,22 +123,22 @@ function A() {
123
123
  className: "space-y-4",
124
124
  children: [/* @__PURE__ */ T("button", {
125
125
  type: "button",
126
- onClick: () => M(`${N}/workspaces`),
126
+ onClick: () => N(`${P}/workspaces`),
127
127
  className: "inline-flex min-h-10 items-center gap-2 text-[var(--color-text-secondary)] transition-all duration-200 hover:text-[var(--color-text-primary)]",
128
- children: [/* @__PURE__ */ w(g, {
128
+ children: [/* @__PURE__ */ w(h, {
129
129
  size: 20,
130
130
  "aria-hidden": "true"
131
131
  }), /* @__PURE__ */ w("span", {
132
132
  className: "text-sm font-medium",
133
- children: A("workspaces.create.backToWorkspaces", "Back to Workspaces")
133
+ children: j("workspaces.create.backToWorkspaces", "Back to Workspaces")
134
134
  })]
135
- }), /* @__PURE__ */ T("div", {
136
- className: "flex flex-col gap-4 rounded-xl border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] p-5 shadow-[var(--shadow-elevation-1)] lg:flex-row lg:items-start lg:justify-between",
135
+ }), /* @__PURE__ */ T(x, {
136
+ className: "flex flex-col gap-4 p-5 lg:flex-row lg:items-start lg:justify-between",
137
137
  children: [/* @__PURE__ */ T("div", {
138
138
  className: "flex min-w-0 items-start gap-4",
139
139
  children: [/* @__PURE__ */ w("div", {
140
140
  className: "flex size-16 items-center justify-center rounded-xl bg-[var(--color-status-info-bgSubtle)] text-[var(--color-status-info-text)]",
141
- children: /* @__PURE__ */ w(_, {
141
+ children: /* @__PURE__ */ w(g, {
142
142
  size: 28,
143
143
  "aria-hidden": "true"
144
144
  })
@@ -148,45 +148,44 @@ function A() {
148
148
  className: "flex flex-wrap items-start gap-2",
149
149
  children: [/* @__PURE__ */ w("h1", {
150
150
  className: "text-3xl font-bold text-[var(--color-text-primary)]",
151
- children: R.name
152
- }), /* @__PURE__ */ w(u, { status: R.status })]
151
+ children: z.name
152
+ }), /* @__PURE__ */ w(l, { status: z.status })]
153
153
  }), /* @__PURE__ */ T("p", {
154
154
  className: "break-all font-mono text-sm text-[var(--color-text-secondary)]",
155
- children: ["/", R.slug]
155
+ children: ["/", z.slug]
156
156
  })]
157
157
  })]
158
- }), /* @__PURE__ */ T("div", {
159
- className: "flex flex-col gap-3 sm:flex-row",
160
- children: [/* @__PURE__ */ T("button", {
161
- type: "button",
162
- onClick: () => M(`${N}/${R.organizationId}`),
163
- className: "inline-flex min-h-11 items-center justify-center gap-2 rounded-lg border border-[var(--color-border-default)] px-4 py-2.5 text-[var(--color-text-primary)] transition-all duration-200 hover:bg-[var(--color-bg-subtle)]",
164
- children: [/* @__PURE__ */ w(x, {
158
+ }), /* @__PURE__ */ w(b, {
159
+ primary: L(o.WORKSPACE_UPDATE) ? {
160
+ label: j("workspaces.edit.title", "Edit Workspace"),
161
+ icon: /* @__PURE__ */ w(_, {
165
162
  size: 16,
166
163
  "aria-hidden": "true"
167
- }), /* @__PURE__ */ w("span", { children: A("workspaces.detail.viewOrganization", "View Organization") })]
168
- }), I(s.WORKSPACE_UPDATE) && /* @__PURE__ */ T("button", {
169
- type: "button",
170
- onClick: () => M(`${N}/workspaces/${j}/edit`),
171
- className: "inline-flex min-h-11 items-center justify-center gap-2 rounded-lg bg-[var(--color-action-primary-bg)] px-4 py-2.5 text-[var(--color-action-primary-text)] transition-all duration-200 hover:opacity-90",
172
- children: [/* @__PURE__ */ w(v, {
164
+ }),
165
+ onSelect: () => N(`${P}/workspaces/${M}/edit`)
166
+ } : void 0,
167
+ actions: [{
168
+ label: j("workspaces.detail.viewOrganization", "View Organization"),
169
+ icon: /* @__PURE__ */ w(y, {
173
170
  size: 16,
174
171
  "aria-hidden": "true"
175
- }), /* @__PURE__ */ w("span", { children: A("workspaces.edit.title", "Edit Workspace") })]
176
- })]
172
+ }),
173
+ onSelect: () => N(`${P}/${z.organizationId}`)
174
+ }]
177
175
  })]
178
176
  })]
179
- }), /* @__PURE__ */ T("div", {
180
- className: "rounded-xl border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] shadow-[var(--shadow-elevation-1)]",
177
+ }), /* @__PURE__ */ T(S, {
178
+ treatment: "plain",
179
+ className: "border-border-seam p-0",
181
180
  children: [/* @__PURE__ */ w("div", {
182
- className: "overflow-x-auto border-b border-[var(--color-border-default)]",
181
+ className: "overflow-x-auto border-b border-[var(--color-border-seam)]",
183
182
  children: /* @__PURE__ */ w("div", {
184
183
  className: "flex min-w-max gap-2 px-4 pt-4 sm:px-6",
185
- children: ne.map((e) => {
186
- let t = V === e.id;
184
+ children: ae.map((e) => {
185
+ let t = H === e.id;
187
186
  return /* @__PURE__ */ w("button", {
188
187
  type: "button",
189
- onClick: () => H(e.id),
188
+ onClick: () => U(e.id),
190
189
  className: `inline-flex min-h-11 items-center rounded-t-lg border-b-2 px-4 py-3 text-sm font-medium transition-colors ${t ? "border-[var(--color-action-primary-bg)] text-[var(--color-action-primary-bg)]" : "border-transparent text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)]"}`,
191
190
  "aria-pressed": t,
192
191
  children: e.label
@@ -195,94 +194,96 @@ function A() {
195
194
  })
196
195
  }), /* @__PURE__ */ w("div", {
197
196
  className: "p-4 sm:p-6",
198
- children: V === "overview" ? /* @__PURE__ */ T("div", {
197
+ children: H === "overview" ? /* @__PURE__ */ T("div", {
199
198
  className: "grid grid-cols-1 gap-6 xl:grid-cols-[minmax(0,1fr)_320px]",
200
- children: [/* @__PURE__ */ T("section", {
201
- className: "rounded-xl border border-[var(--color-border-default)] bg-[var(--color-bg-canvas)] p-5",
199
+ children: [/* @__PURE__ */ T(S, {
200
+ treatment: "plain",
201
+ className: "border-border-seam bg-[var(--color-bg-canvas)] p-5",
202
202
  children: [/* @__PURE__ */ w("h2", {
203
203
  className: "text-lg font-semibold text-[var(--color-text-primary)]",
204
- children: A("workspaces.detail.detailsSection", "Workspace details")
204
+ children: j("workspaces.detail.detailsSection", "Workspace details")
205
205
  }), /* @__PURE__ */ T("dl", {
206
206
  className: "mt-5 grid grid-cols-1 gap-4 sm:grid-cols-2",
207
207
  children: [
208
208
  /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("dt", {
209
209
  className: "text-sm font-medium text-[var(--color-text-secondary)]",
210
- children: A("common.name", "Name")
210
+ children: j("common.name", "Name")
211
211
  }), /* @__PURE__ */ w("dd", {
212
212
  className: "mt-1 text-sm text-[var(--color-text-primary)]",
213
- children: R.name
213
+ children: z.name
214
214
  })] }),
215
215
  /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("dt", {
216
216
  className: "text-sm font-medium text-[var(--color-text-secondary)]",
217
- children: A("common.slug", "Slug")
217
+ children: j("common.slug", "Slug")
218
218
  }), /* @__PURE__ */ w("dd", {
219
219
  className: "mt-1 break-all font-mono text-sm text-[var(--color-text-primary)]",
220
- children: R.slug
220
+ children: z.slug
221
221
  })] }),
222
222
  /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("dt", {
223
223
  className: "text-sm font-medium text-[var(--color-text-secondary)]",
224
- children: A("common.status", "Status")
224
+ children: j("common.status", "Status")
225
225
  }), /* @__PURE__ */ w("dd", {
226
226
  className: "mt-1",
227
- children: /* @__PURE__ */ w(u, { status: R.status })
227
+ children: /* @__PURE__ */ w(l, { status: z.status })
228
228
  })] }),
229
229
  /* @__PURE__ */ T("div", {
230
230
  className: "sm:col-span-2",
231
231
  children: [/* @__PURE__ */ w("dt", {
232
232
  className: "text-sm font-medium text-[var(--color-text-secondary)]",
233
- children: A("members.detail.orgId", "Organization ID")
233
+ children: j("members.detail.orgId", "Organization ID")
234
234
  }), /* @__PURE__ */ w("dd", {
235
235
  className: "mt-1 break-all font-mono text-sm text-[var(--color-text-primary)]",
236
- children: R.organizationId
236
+ children: z.organizationId
237
237
  })]
238
238
  }),
239
- R.endpoint ? /* @__PURE__ */ T("div", {
239
+ z.endpoint ? /* @__PURE__ */ T("div", {
240
240
  className: "sm:col-span-2",
241
241
  children: [/* @__PURE__ */ w("dt", {
242
242
  className: "text-sm font-medium text-[var(--color-text-secondary)]",
243
- children: A("workspaces.detail.endpoint", "Endpoint")
243
+ children: j("workspaces.detail.endpoint", "Endpoint")
244
244
  }), /* @__PURE__ */ w("dd", {
245
245
  className: "mt-1 break-all font-mono text-sm text-[var(--color-text-primary)]",
246
- children: R.endpoint
246
+ children: z.endpoint
247
247
  })]
248
248
  }) : null
249
249
  ]
250
250
  })]
251
- }), /* @__PURE__ */ T("aside", {
252
- className: "rounded-xl border border-[var(--color-border-default)] bg-[var(--color-bg-canvas)] p-5",
251
+ }), /* @__PURE__ */ T(S, {
252
+ treatment: "plain",
253
+ className: "border-border-seam bg-[var(--color-bg-canvas)] p-5 xl:sticky xl:top-6 xl:self-start",
253
254
  children: [/* @__PURE__ */ w("h2", {
254
255
  className: "text-lg font-semibold text-[var(--color-text-primary)]",
255
- children: A("common.metadata", "Metadata")
256
+ children: j("common.metadata", "Metadata")
256
257
  }), /* @__PURE__ */ T("dl", {
257
258
  className: "mt-5 space-y-4",
258
259
  children: [
259
260
  /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("dt", {
260
261
  className: "text-sm font-medium text-[var(--color-text-secondary)]",
261
- children: A("workspaces.list.members", "Members")
262
+ children: j("workspaces.list.members", "Members")
262
263
  }), /* @__PURE__ */ w("dd", {
263
264
  className: "mt-1 text-sm text-[var(--color-text-primary)]",
264
265
  children: $
265
266
  })] }),
266
267
  /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("dt", {
267
268
  className: "text-sm font-medium text-[var(--color-text-secondary)]",
268
- children: A("common.created", "Created")
269
+ children: j("common.created", "Created")
269
270
  }), /* @__PURE__ */ w("dd", {
270
271
  className: "mt-1 text-sm text-[var(--color-text-primary)]",
271
- children: k(R.createdAt)
272
+ children: A(z.createdAt)
272
273
  })] }),
273
274
  /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("dt", {
274
275
  className: "text-sm font-medium text-[var(--color-text-secondary)]",
275
- children: A("common.lastUpdated", "Last updated")
276
+ children: j("common.lastUpdated", "Last updated")
276
277
  }), /* @__PURE__ */ w("dd", {
277
278
  className: "mt-1 text-sm text-[var(--color-text-primary)]",
278
- children: k(R.updatedAt)
279
+ children: A(z.updatedAt)
279
280
  })] }),
280
- R.region ? /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("dt", {
281
+ z.region ? /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("dt", {
281
282
  className: "text-sm font-medium text-[var(--color-text-secondary)]",
282
- children: A("workspaces.detail.region", "Region")
283
+ children: j("workspaces.detail.region", "Region")
283
284
  }), /* @__PURE__ */ w("dd", {
284
285
  className: "mt-1 text-sm text-[var(--color-text-primary)]",
285
- children: R.region
286
+ children: z.region
286
287
  })] }) : null
287
288
  ]
288
289
  })]
@@ -293,44 +294,44 @@ function A() {
293
294
  className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",
294
295
  children: [/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("h2", {
295
296
  className: "text-lg font-semibold text-[var(--color-text-primary)]",
296
- children: A("workspaces.detail.membersTitle", "Workspace members")
297
+ children: j("workspaces.detail.membersTitle", "Workspace members")
297
298
  }), /* @__PURE__ */ w("p", {
298
299
  className: "text-sm text-[var(--color-text-secondary)]",
299
- children: A("workspaces.detail.membersSubtitle", "Add organization members to this workspace and manage access.")
300
- })] }), I(s.MEMBER_INVITE) && /* @__PURE__ */ T("button", {
300
+ children: j("workspaces.detail.membersSubtitle", "Add organization members to this workspace and manage access.")
301
+ })] }), L(o.MEMBER_INVITE) && /* @__PURE__ */ T("button", {
301
302
  type: "button",
302
- onClick: () => W(!0),
303
+ onClick: () => G(!0),
303
304
  className: "inline-flex min-h-11 items-center justify-center gap-2 rounded-lg bg-[var(--color-action-primary-bg)] px-4 py-2.5 text-[var(--color-action-primary-text)] transition-all duration-200 hover:opacity-90",
304
- children: [/* @__PURE__ */ w(b, {
305
+ children: [/* @__PURE__ */ w(te, {
305
306
  size: 16,
306
307
  "aria-hidden": "true"
307
- }), /* @__PURE__ */ w("span", { children: A("workspaces.detail.addMember", "Add Member") })]
308
+ }), /* @__PURE__ */ w("span", { children: j("workspaces.detail.addMember", "Add Member") })]
308
309
  })]
309
- }), J ? /* @__PURE__ */ w("div", {
310
+ }), Y ? /* @__PURE__ */ w("div", {
310
311
  className: "py-8",
311
- children: /* @__PURE__ */ w(r, { message: A("workspaces.detail.loadingMembers", "Loading workspace members...") })
312
- }) : Y ? /* @__PURE__ */ w(i, {
313
- message: Y.message,
312
+ children: /* @__PURE__ */ w(r, { message: j("workspaces.detail.loadingMembers", "Loading workspace members...") })
313
+ }) : X ? /* @__PURE__ */ w(i, {
314
+ message: X.message,
314
315
  action: {
315
- label: A("common.retry", "Retry"),
316
+ label: j("common.retry", "Retry"),
316
317
  onClick: () => {
317
- X();
318
+ Z();
318
319
  }
319
320
  }
320
- }) : q.length > 0 ? /* @__PURE__ */ w("div", {
321
- className: "overflow-hidden rounded-xl border border-[var(--color-border-default)] bg-[var(--color-bg-canvas)] md:p-2",
322
- children: /* @__PURE__ */ w(S, {
323
- columns: ie,
324
- data: q,
321
+ }) : J.length > 0 ? /* @__PURE__ */ w("div", {
322
+ className: "overflow-hidden rounded-xl border border-[var(--color-border-seam)] bg-[var(--color-bg-canvas)] md:p-2",
323
+ children: /* @__PURE__ */ w(C, {
324
+ columns: se,
325
+ data: J,
325
326
  rowKey: (e) => e.id,
326
327
  rowActions: (e) => /* @__PURE__ */ w("button", {
327
328
  type: "button",
328
- onClick: () => re(e.userId),
329
- disabled: Q,
329
+ onClick: () => oe(e.userId),
330
+ disabled: re,
330
331
  className: "rounded-lg p-2 text-[var(--color-status-error-text)] transition-all duration-200 hover:bg-[var(--color-status-error-bgSubtle)] disabled:cursor-not-allowed disabled:opacity-50",
331
- "aria-label": `${A("workspaces.removeMember.ariaPrefix", "Remove")} ${e.userId} ${A("workspaces.removeMember.ariaSuffix", "from workspace")}`,
332
- title: `${A("workspaces.removeMember.ariaPrefix", "Remove")} ${e.userId} ${A("workspaces.removeMember.ariaSuffix", "from workspace")}`,
333
- children: /* @__PURE__ */ w(y, {
332
+ "aria-label": `${j("workspaces.removeMember.ariaPrefix", "Remove")} ${e.userId} ${j("workspaces.removeMember.ariaSuffix", "from workspace")}`,
333
+ title: `${j("workspaces.removeMember.ariaPrefix", "Remove")} ${e.userId} ${j("workspaces.removeMember.ariaSuffix", "from workspace")}`,
334
+ children: /* @__PURE__ */ w(v, {
334
335
  size: 18,
335
336
  "aria-hidden": "true"
336
337
  })
@@ -338,16 +339,16 @@ function A() {
338
339
  })
339
340
  }) : /* @__PURE__ */ w("div", {
340
341
  className: "rounded-xl border border-[var(--color-border-default)] bg-[var(--color-bg-canvas)] p-6",
341
- children: /* @__PURE__ */ w(a, {
342
- icon: /* @__PURE__ */ w(x, {
342
+ children: /* @__PURE__ */ w(ee, {
343
+ icon: /* @__PURE__ */ w(y, {
343
344
  size: 40,
344
345
  "aria-hidden": "true"
345
346
  }),
346
- title: A("workspaces.detail.emptyMembersTitle", "No workspace members yet"),
347
- description: A("workspaces.detail.emptyMembersDescription", "Add people from the parent organization to grant workspace access."),
347
+ title: j("workspaces.detail.emptyMembersTitle", "No workspace members yet"),
348
+ description: j("workspaces.detail.emptyMembersDescription", "Add people from the parent organization to grant workspace access."),
348
349
  action: {
349
- label: A("workspaces.detail.addMember", "Add Member"),
350
- onClick: () => W(!0)
350
+ label: j("workspaces.detail.addMember", "Add Member"),
351
+ onClick: () => G(!0)
351
352
  }
352
353
  })
353
354
  })]
@@ -355,25 +356,25 @@ function A() {
355
356
  })]
356
357
  })]
357
358
  }),
358
- /* @__PURE__ */ w(p, {
359
- open: U,
360
- onOpenChange: W,
361
- workspaceId: R.id,
362
- organizationId: R.organizationId,
363
- existingMembers: q,
364
- onInviteOrganizationMember: () => M(`${N}/${R.organizationId}/members/invite`)
359
+ /* @__PURE__ */ w(f, {
360
+ open: W,
361
+ onOpenChange: G,
362
+ workspaceId: z.id,
363
+ organizationId: z.organizationId,
364
+ existingMembers: J,
365
+ onInviteOrganizationMember: () => N(`${P}/${z.organizationId}/members/invite`)
365
366
  }),
366
- K
367
+ q
367
368
  ]
368
369
  }) : /* @__PURE__ */ w("div", {
369
370
  className: "min-h-full bg-[var(--color-bg-canvas)] p-6",
370
371
  children: /* @__PURE__ */ w("div", {
371
372
  className: "p-8 text-center text-[var(--color-text-secondary)]",
372
- children: A("workspaces.detail.noPermission", "You don't have permission to view this workspace.")
373
+ children: j("workspaces.detail.noPermission", "You don't have permission to view this workspace.")
373
374
  })
374
375
  });
375
376
  }
376
377
  //#endregion
377
- export { A as WorkspaceDetailPage };
378
+ export { j as WorkspaceDetailPage };
378
379
 
379
380
  //# sourceMappingURL=WorkspaceDetailPage.js.map