@burdenoff/microfe-organization 2026.625.3 → 2026.731.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/organization-management/modules/members/pages/InviteMemberPage.js +58 -53
  2. package/dist/organization-management/modules/members/pages/InviteMemberPage.js.map +1 -1
  3. package/dist/organization-management/modules/members/pages/InvitePeoplePage.js +47 -40
  4. package/dist/organization-management/modules/members/pages/InvitePeoplePage.js.map +1 -1
  5. package/dist/organization-management/modules/members/pages/MemberDetailPage.js +72 -68
  6. package/dist/organization-management/modules/members/pages/MemberDetailPage.js.map +1 -1
  7. package/dist/organization-management/modules/members/pages/MembersListPage.js +216 -208
  8. package/dist/organization-management/modules/members/pages/MembersListPage.js.map +1 -1
  9. package/dist/organization-management/modules/members/pages/MyInvitesPage.js +164 -158
  10. package/dist/organization-management/modules/members/pages/MyInvitesPage.js.map +1 -1
  11. package/dist/organization-management/modules/members/pages/OrganizationInviteAcceptancePage.js +132 -128
  12. package/dist/organization-management/modules/members/pages/OrganizationInviteAcceptancePage.js.map +1 -1
  13. package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.js +42 -37
  14. package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.js.map +1 -1
  15. package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.js +310 -258
  16. package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.js.map +1 -1
  17. package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.js +52 -47
  18. package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.js.map +1 -1
  19. package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.js +66 -59
  20. package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.js.map +1 -1
  21. package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.js +43 -38
  22. package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.js.map +1 -1
  23. package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.js +315 -258
  24. package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.js.map +1 -1
  25. package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.js +50 -45
  26. package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.js.map +1 -1
  27. package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.js +246 -238
  28. package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.js.map +1 -1
  29. package/package.json +7 -7
@@ -10,12 +10,12 @@ import { useWorkspacesByOrganization as c } from "../../workspaces/hooks/useWork
10
10
  import { WorkspaceCard as l } from "../../workspaces/components/WorkspaceCard.js";
11
11
  import { useMemo as u, useState as d } from "react";
12
12
  import { ArrowLeft as f, Briefcase as p, Building as m, Edit as h, UserPlus as g, Users as _ } from "lucide-react";
13
- import { CTAOverflowMenu as v, EmphasisPanel as y, GlassCard as b, IllustratedEmptyState as x } from "@burdenoff/fe-libs/ui";
14
- import { usePermissions as S } from "@burdenoff/fe-libs/shared/providers/shell";
15
- import { jsx as C, jsxs as w } from "react/jsx-runtime";
16
- import { useParams as T } from "react-router-dom";
13
+ import { CTAOverflowMenu as v, EmphasisPanel as y, GlassCard as b, IllustratedEmptyState as x, NextSteps as S, PagePurpose as C } from "@burdenoff/fe-libs/ui";
14
+ import { usePermissions as w } from "@burdenoff/fe-libs/shared/providers/shell";
15
+ import { jsx as T, jsxs as E } from "react/jsx-runtime";
16
+ import { useParams as D } from "react-router-dom";
17
17
  //#region src/organization-management/modules/organizations/pages/OrganizationDetailPage.tsx
18
- function E(e) {
18
+ function O(e) {
19
19
  return new Date(e).toLocaleDateString("en-US", {
20
20
  year: "numeric",
21
21
  month: "long",
@@ -24,295 +24,347 @@ function E(e) {
24
24
  minute: "2-digit"
25
25
  });
26
26
  }
27
- function D() {
28
- let D = r(), { id: O } = T();
29
- s("organizations.detail", { organizationId: O });
30
- let { navigate: k, basePath: A = "/organizations" } = e(), { hasPermission: j, isLoading: M } = S(), { organization: N, loading: P, error: F } = t(O ?? ""), [I, L] = d("overview"), { workspaces: R, loading: z, error: B, refetch: V } = c(I === "workspaces" && O ? O ?? "" : "", 50, 0), H = u(() => [{
27
+ function k() {
28
+ let k = r(), { id: A } = D();
29
+ s("organizations.detail", { organizationId: A });
30
+ let { navigate: j, basePath: M = "/organizations" } = e(), { hasPermission: N, isLoading: P } = w(), { organization: F, loading: I, error: L } = t(A ?? ""), [R, z] = d("overview"), { workspaces: B, loading: V, error: H, refetch: U } = c(R === "workspaces" && A ? A ?? "" : "", 50, 0), W = u(() => [{
31
31
  id: "overview",
32
- label: D("organizations.detail.tab.overview", "Overview")
32
+ label: k("organizations.detail.tab.overview", "Overview")
33
33
  }, {
34
34
  id: "workspaces",
35
- label: `${D("organizations.detail.tab.workspaces", "Workspaces")} (${I === "workspaces" ? R.length : N?.workspaceCount ?? 0})`
35
+ label: `${k("organizations.detail.tab.workspaces", "Workspaces")} (${R === "workspaces" ? B.length : F?.workspaceCount ?? 0})`
36
36
  }], [
37
- I,
38
- N?.workspaceCount,
39
- D,
40
- R.length
37
+ R,
38
+ F?.workspaceCount,
39
+ k,
40
+ B.length
41
41
  ]);
42
- return M ? /* @__PURE__ */ C("div", {
42
+ return P ? /* @__PURE__ */ T("div", {
43
43
  className: "min-h-full bg-[var(--color-bg-canvas)] p-6",
44
- children: /* @__PURE__ */ C(i, { message: D("common.loadingPermissions", "Loading permissions...") })
45
- }) : j(o.ORG_READ) ? P ? /* @__PURE__ */ C("div", {
44
+ children: /* @__PURE__ */ T(i, { message: k("common.loadingPermissions", "Loading permissions...") })
45
+ }) : N(o.ORG_READ) ? I ? /* @__PURE__ */ T("div", {
46
46
  className: "min-h-full bg-[var(--color-bg-canvas)] px-4 py-6 sm:px-6",
47
- children: /* @__PURE__ */ C(i, { message: D("organizations.detail.loading", "Loading organization details...") })
48
- }) : F || !N ? /* @__PURE__ */ C("div", {
47
+ children: /* @__PURE__ */ T(i, { message: k("organizations.detail.loading", "Loading organization details...") })
48
+ }) : L || !F ? /* @__PURE__ */ T("div", {
49
49
  className: "min-h-full bg-[var(--color-bg-canvas)] px-4 py-6 sm:px-6",
50
- children: /* @__PURE__ */ C(a, {
51
- message: F?.message || D("organizations.detail.notFound", "Organization not found"),
50
+ children: /* @__PURE__ */ T(a, {
51
+ message: L?.message || k("organizations.detail.notFound", "Organization not found"),
52
52
  action: {
53
- label: D("organizations.create.back", "Back to Organizations"),
54
- onClick: () => k(A)
53
+ label: k("organizations.create.back", "Back to Organizations"),
54
+ onClick: () => j(M)
55
55
  }
56
56
  })
57
- }) : /* @__PURE__ */ C("div", {
57
+ }) : /* @__PURE__ */ T("div", {
58
58
  className: "min-h-full bg-[var(--color-bg-canvas)] px-4 py-6 sm:px-6 animate-in fade-in duration-200",
59
- children: /* @__PURE__ */ w("div", {
59
+ children: /* @__PURE__ */ E("div", {
60
60
  className: "mx-auto flex w-full max-w-7xl flex-col gap-6",
61
- children: [/* @__PURE__ */ w("div", {
62
- className: "space-y-4",
63
- children: [/* @__PURE__ */ w("button", {
64
- type: "button",
65
- onClick: () => k(A),
66
- 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)]",
67
- children: [/* @__PURE__ */ C(f, {
68
- size: 20,
69
- "aria-hidden": "true"
70
- }), /* @__PURE__ */ C("span", {
71
- className: "text-sm font-medium",
72
- children: D("organizations.create.back", "Back to Organizations")
73
- })]
74
- }), /* @__PURE__ */ w(y, {
75
- className: "flex flex-col gap-4 p-5 lg:flex-row lg:items-start lg:justify-between",
76
- children: [/* @__PURE__ */ w("div", {
77
- className: "flex min-w-0 items-start gap-4",
78
- children: [/* @__PURE__ */ C("div", {
79
- className: "flex size-16 items-center justify-center rounded-xl bg-[var(--color-status-info-bgSubtle)] text-[var(--color-status-info-text)]",
80
- children: /* @__PURE__ */ C(m, {
81
- size: 28,
82
- "aria-hidden": "true"
83
- })
84
- }), /* @__PURE__ */ w("div", {
85
- className: "min-w-0 space-y-2",
86
- children: [
87
- /* @__PURE__ */ w("div", {
88
- className: "flex flex-wrap items-start gap-3",
89
- children: [/* @__PURE__ */ C("h1", {
90
- className: "text-3xl font-bold text-[var(--color-text-primary)]",
91
- children: N.name
92
- }), /* @__PURE__ */ C(n, { status: N.status })]
61
+ children: [
62
+ /* @__PURE__ */ E("div", {
63
+ className: "space-y-4",
64
+ children: [/* @__PURE__ */ E("button", {
65
+ type: "button",
66
+ onClick: () => j(M),
67
+ 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)]",
68
+ children: [/* @__PURE__ */ T(f, {
69
+ size: 20,
70
+ "aria-hidden": "true"
71
+ }), /* @__PURE__ */ T("span", {
72
+ className: "text-sm font-medium",
73
+ children: k("organizations.create.back", "Back to Organizations")
74
+ })]
75
+ }), /* @__PURE__ */ E(y, {
76
+ className: "flex flex-col gap-4 p-5 lg:flex-row lg:items-start lg:justify-between",
77
+ children: [/* @__PURE__ */ E("div", {
78
+ className: "flex min-w-0 items-start gap-4",
79
+ children: [/* @__PURE__ */ T("div", {
80
+ className: "flex size-16 items-center justify-center rounded-xl bg-[var(--color-status-info-bgSubtle)] text-[var(--color-status-info-text)]",
81
+ children: /* @__PURE__ */ T(m, {
82
+ size: 28,
83
+ "aria-hidden": "true"
84
+ })
85
+ }), /* @__PURE__ */ E("div", {
86
+ className: "min-w-0 space-y-2",
87
+ children: [
88
+ /* @__PURE__ */ E("div", {
89
+ className: "flex flex-wrap items-start gap-3",
90
+ children: [/* @__PURE__ */ T("h1", {
91
+ className: "text-3xl font-bold text-[var(--color-text-primary)]",
92
+ children: F.name
93
+ }), /* @__PURE__ */ T(n, { status: F.status })]
94
+ }),
95
+ /* @__PURE__ */ E("p", {
96
+ className: "break-all font-mono text-sm text-[var(--color-text-secondary)]",
97
+ children: ["/", F.slug]
98
+ }),
99
+ F.description ? /* @__PURE__ */ T("p", {
100
+ className: "max-w-2xl text-sm text-[var(--color-text-secondary)]",
101
+ children: F.description
102
+ }) : null,
103
+ /* @__PURE__ */ T(C, {
104
+ className: "max-w-2xl",
105
+ children: k("organizations.detail.purpose", "This is the home for one organization — review its profile and metadata here, jump into the Workspaces tab to see where teams collaborate, or manage who belongs. Use this page to keep an organization healthy and growing.")
106
+ })
107
+ ]
108
+ })]
109
+ }), /* @__PURE__ */ T(v, {
110
+ primary: N(o.ORG_UPDATE) ? {
111
+ label: k("organizations.edit.title", "Edit Organization"),
112
+ icon: /* @__PURE__ */ T(h, {
113
+ size: 16,
114
+ "aria-hidden": "true"
93
115
  }),
94
- /* @__PURE__ */ w("p", {
95
- className: "break-all font-mono text-sm text-[var(--color-text-secondary)]",
96
- children: ["/", N.slug]
116
+ onSelect: () => j(`${M}/${A}/edit`)
117
+ } : void 0,
118
+ actions: [...N(o.MEMBER_LIST) ? [{
119
+ label: N(o.MEMBER_INVITE) ? k("organizations.detail.manageMembers", "Manage Members") : k("organizations.detail.viewMembers", "View Members"),
120
+ icon: /* @__PURE__ */ T(_, {
121
+ size: 16,
122
+ "aria-hidden": "true"
123
+ }),
124
+ onSelect: () => j(`${M}/${A}/members`)
125
+ }] : [], ...N(o.MEMBER_INVITE) ? [{
126
+ label: k("members.invite.button", "Invite Member"),
127
+ icon: /* @__PURE__ */ T(g, {
128
+ size: 16,
129
+ "aria-hidden": "true"
97
130
  }),
98
- N.description ? /* @__PURE__ */ C("p", {
99
- className: "max-w-2xl text-sm text-[var(--color-text-secondary)]",
100
- children: N.description
101
- }) : null
102
- ]
131
+ onSelect: () => j(`${M}/${A}/members/invite`)
132
+ }] : []]
103
133
  })]
104
- }), /* @__PURE__ */ C(v, {
105
- primary: j(o.ORG_UPDATE) ? {
106
- label: D("organizations.edit.title", "Edit Organization"),
107
- icon: /* @__PURE__ */ C(h, {
134
+ })]
135
+ }),
136
+ /* @__PURE__ */ T(S, {
137
+ storageKey: "organization-org-detail",
138
+ steps: [
139
+ ...N(o.MEMBER_INVITE) ? [{
140
+ id: "invite",
141
+ label: k("organizations.detail.next.invite", "Invite a member"),
142
+ description: k("organizations.detail.next.inviteDesc", "Bring people into this organization so they can access its workspaces."),
143
+ icon: /* @__PURE__ */ T(g, {
108
144
  size: 16,
109
145
  "aria-hidden": "true"
110
146
  }),
111
- onSelect: () => k(`${A}/${O}/edit`)
112
- } : void 0,
113
- actions: [...j(o.MEMBER_LIST) ? [{
114
- label: j(o.MEMBER_INVITE) ? D("organizations.detail.manageMembers", "Manage Members") : D("organizations.detail.viewMembers", "View Members"),
115
- icon: /* @__PURE__ */ C(_, {
147
+ onClick: () => j(`${M}/${A}/members/invite`)
148
+ }] : [],
149
+ ...N(o.WORKSPACE_CREATE) ? [{
150
+ id: "workspace",
151
+ label: k("organizations.detail.next.workspace", "Create a workspace"),
152
+ description: k("organizations.detail.next.workspaceDesc", "Give a team or project its own space to collaborate in."),
153
+ icon: /* @__PURE__ */ T(p, {
116
154
  size: 16,
117
155
  "aria-hidden": "true"
118
156
  }),
119
- onSelect: () => k(`${A}/${O}/members`)
120
- }] : [], ...j(o.MEMBER_INVITE) ? [{
121
- label: D("members.invite.button", "Invite Member"),
122
- icon: /* @__PURE__ */ C(g, {
157
+ onClick: () => j(`${M}/workspaces/new?organizationId=${A}`)
158
+ }] : [],
159
+ ...N(o.MEMBER_LIST) ? [{
160
+ id: "members",
161
+ label: k("organizations.detail.next.members", "Review members"),
162
+ description: k("organizations.detail.next.membersDesc", "See who belongs to this organization and manage their roles."),
163
+ icon: /* @__PURE__ */ T(_, {
123
164
  size: 16,
124
165
  "aria-hidden": "true"
125
166
  }),
126
- onSelect: () => k(`${A}/${O}/members/invite`)
127
- }] : []]
128
- })]
129
- })]
130
- }), /* @__PURE__ */ w(b, {
131
- treatment: "plain",
132
- className: "border-border-seam p-0",
133
- children: [/* @__PURE__ */ C("div", {
134
- className: "overflow-x-auto border-b border-[var(--color-border-seam)]",
135
- children: /* @__PURE__ */ C("div", {
136
- className: "flex min-w-max gap-2 px-4 pt-4 sm:px-6",
137
- children: H.map((e) => {
138
- let t = I === e.id;
139
- return /* @__PURE__ */ C("button", {
140
- type: "button",
141
- onClick: () => L(e.id),
142
- 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)]"}`,
143
- "aria-pressed": t,
144
- children: e.label
145
- }, e.id);
167
+ onClick: () => j(`${M}/${A}/members`)
168
+ }] : [],
169
+ ...N(o.ORG_UPDATE) ? [{
170
+ id: "edit",
171
+ label: k("organizations.detail.next.edit", "Edit organization profile"),
172
+ description: k("organizations.detail.next.editDesc", "Update the name, slug, website, or description."),
173
+ icon: /* @__PURE__ */ T(h, {
174
+ size: 16,
175
+ "aria-hidden": "true"
176
+ }),
177
+ onClick: () => j(`${M}/${A}/edit`)
178
+ }] : []
179
+ ]
180
+ }),
181
+ /* @__PURE__ */ E(b, {
182
+ treatment: "plain",
183
+ className: "border-border-seam p-0",
184
+ children: [/* @__PURE__ */ T("div", {
185
+ className: "overflow-x-auto border-b border-[var(--color-border-seam)]",
186
+ children: /* @__PURE__ */ T("div", {
187
+ className: "flex min-w-max gap-2 px-4 pt-4 sm:px-6",
188
+ children: W.map((e) => {
189
+ let t = R === e.id;
190
+ return /* @__PURE__ */ T("button", {
191
+ type: "button",
192
+ onClick: () => z(e.id),
193
+ 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)]"}`,
194
+ "aria-pressed": t,
195
+ children: e.label
196
+ }, e.id);
197
+ })
146
198
  })
147
- })
148
- }), /* @__PURE__ */ C("div", {
149
- className: "p-4 sm:p-6",
150
- children: I === "overview" ? /* @__PURE__ */ w("div", {
151
- className: "grid grid-cols-1 gap-6 xl:grid-cols-[minmax(0,1fr)_320px]",
152
- children: [/* @__PURE__ */ w(b, {
153
- treatment: "plain",
154
- className: "border-border-seam bg-[var(--color-bg-canvas)] p-5",
155
- children: [/* @__PURE__ */ C("h2", {
156
- className: "text-lg font-semibold text-[var(--color-text-primary)]",
157
- children: D("organizations.detail.detailsSection", "Organization details")
158
- }), /* @__PURE__ */ w("dl", {
159
- className: "mt-5 grid grid-cols-1 gap-4 sm:grid-cols-2",
160
- children: [
161
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
162
- className: "text-sm font-medium text-[var(--color-text-secondary)]",
163
- children: D("common.name", "Name")
164
- }), /* @__PURE__ */ C("dd", {
165
- className: "mt-1 text-sm text-[var(--color-text-primary)]",
166
- children: N.name
167
- })] }),
168
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
169
- className: "text-sm font-medium text-[var(--color-text-secondary)]",
170
- children: D("common.slug", "Slug")
171
- }), /* @__PURE__ */ C("dd", {
172
- className: "mt-1 break-all font-mono text-sm text-[var(--color-text-primary)]",
173
- children: N.slug
174
- })] }),
175
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
176
- className: "text-sm font-medium text-[var(--color-text-secondary)]",
177
- children: D("common.status", "Status")
178
- }), /* @__PURE__ */ C("dd", {
179
- className: "mt-1",
180
- children: /* @__PURE__ */ C(n, { status: N.status })
181
- })] }),
182
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
183
- className: "text-sm font-medium text-[var(--color-text-secondary)]",
184
- children: D("organizations.detail.workspaceCount", "Workspace count")
185
- }), /* @__PURE__ */ C("dd", {
186
- className: "mt-1 text-sm text-[var(--color-text-primary)]",
187
- children: N.workspaceCount ?? 0
188
- })] }),
189
- N.website ? /* @__PURE__ */ w("div", {
190
- className: "sm:col-span-2",
191
- children: [/* @__PURE__ */ C("dt", {
199
+ }), /* @__PURE__ */ T("div", {
200
+ className: "p-4 sm:p-6",
201
+ children: R === "overview" ? /* @__PURE__ */ E("div", {
202
+ className: "grid grid-cols-1 gap-6 xl:grid-cols-[minmax(0,1fr)_320px]",
203
+ children: [/* @__PURE__ */ E(b, {
204
+ treatment: "plain",
205
+ className: "border-border-seam bg-[var(--color-bg-canvas)] p-5",
206
+ children: [/* @__PURE__ */ T("h2", {
207
+ className: "text-lg font-semibold text-[var(--color-text-primary)]",
208
+ children: k("organizations.detail.detailsSection", "Organization details")
209
+ }), /* @__PURE__ */ E("dl", {
210
+ className: "mt-5 grid grid-cols-1 gap-4 sm:grid-cols-2",
211
+ children: [
212
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("dt", {
192
213
  className: "text-sm font-medium text-[var(--color-text-secondary)]",
193
- children: D("organizations.detail.website", "Website")
194
- }), /* @__PURE__ */ C("dd", {
195
- className: "mt-1 break-all text-sm",
196
- children: /* @__PURE__ */ C("a", {
197
- href: N.website,
198
- target: "_blank",
199
- rel: "noreferrer",
200
- className: "text-[var(--color-action-primary-bg)] underline-offset-2 hover:underline",
201
- children: N.website
202
- })
203
- })]
204
- }) : null,
205
- N.description ? /* @__PURE__ */ w("div", {
206
- className: "sm:col-span-2",
207
- children: [/* @__PURE__ */ C("dt", {
214
+ children: k("common.name", "Name")
215
+ }), /* @__PURE__ */ T("dd", {
216
+ className: "mt-1 text-sm text-[var(--color-text-primary)]",
217
+ children: F.name
218
+ })] }),
219
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("dt", {
208
220
  className: "text-sm font-medium text-[var(--color-text-secondary)]",
209
- children: D("common.description", "Description")
210
- }), /* @__PURE__ */ C("dd", {
211
- className: "mt-1 text-sm leading-6 text-[var(--color-text-primary)]",
212
- children: N.description
213
- })]
214
- }) : null
215
- ]
216
- })]
217
- }), /* @__PURE__ */ w(b, {
218
- treatment: "plain",
219
- className: "border-border-seam bg-[var(--color-bg-canvas)] p-5 xl:sticky xl:top-6 xl:self-start",
220
- children: [/* @__PURE__ */ C("h2", {
221
- className: "text-lg font-semibold text-[var(--color-text-primary)]",
222
- children: D("common.metadata", "Metadata")
223
- }), /* @__PURE__ */ w("dl", {
224
- className: "mt-5 space-y-4",
225
- children: [
226
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
227
- className: "text-sm font-medium text-[var(--color-text-secondary)]",
228
- children: D("common.created", "Created")
229
- }), /* @__PURE__ */ C("dd", {
230
- className: "mt-1 text-sm text-[var(--color-text-primary)]",
231
- children: E(N.createdAt)
232
- })] }),
233
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
234
- className: "text-sm font-medium text-[var(--color-text-secondary)]",
235
- children: D("common.lastUpdated", "Last updated")
236
- }), /* @__PURE__ */ C("dd", {
237
- className: "mt-1 text-sm text-[var(--color-text-primary)]",
238
- children: E(N.updatedAt)
239
- })] }),
240
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("dt", {
241
- className: "text-sm font-medium text-[var(--color-text-secondary)]",
242
- children: D("organizations.detail.tenantId", "Tenant ID")
243
- }), /* @__PURE__ */ C("dd", {
244
- className: "mt-1 break-all font-mono text-sm text-[var(--color-text-primary)]",
245
- children: N.tenantId
246
- })] })
247
- ]
248
- })]
249
- })]
250
- }) : /* @__PURE__ */ w("section", {
251
- className: "space-y-4",
252
- children: [/* @__PURE__ */ w("div", {
253
- className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",
254
- children: [/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("h2", {
255
- className: "text-lg font-semibold text-[var(--color-text-primary)]",
256
- children: D("organizations.detail.workspacesTitle", "Organization workspaces")
257
- }), /* @__PURE__ */ C("p", {
258
- className: "text-sm text-[var(--color-text-secondary)]",
259
- children: D("organizations.detail.workspacesSubtitle", "Create and manage workspaces for this organization.")
260
- })] }), j(o.WORKSPACE_CREATE) && /* @__PURE__ */ w("button", {
261
- type: "button",
262
- onClick: () => k(`${A}/workspaces/new?organizationId=${O}`),
263
- 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",
264
- children: [/* @__PURE__ */ C(p, {
265
- size: 16,
266
- "aria-hidden": "true"
267
- }), /* @__PURE__ */ C("span", { children: D("workspaces.create.button", "Create Workspace") })]
221
+ children: k("common.slug", "Slug")
222
+ }), /* @__PURE__ */ T("dd", {
223
+ className: "mt-1 break-all font-mono text-sm text-[var(--color-text-primary)]",
224
+ children: F.slug
225
+ })] }),
226
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("dt", {
227
+ className: "text-sm font-medium text-[var(--color-text-secondary)]",
228
+ children: k("common.status", "Status")
229
+ }), /* @__PURE__ */ T("dd", {
230
+ className: "mt-1",
231
+ children: /* @__PURE__ */ T(n, { status: F.status })
232
+ })] }),
233
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("dt", {
234
+ className: "text-sm font-medium text-[var(--color-text-secondary)]",
235
+ children: k("organizations.detail.workspaceCount", "Workspace count")
236
+ }), /* @__PURE__ */ T("dd", {
237
+ className: "mt-1 text-sm text-[var(--color-text-primary)]",
238
+ children: F.workspaceCount ?? 0
239
+ })] }),
240
+ F.website ? /* @__PURE__ */ E("div", {
241
+ className: "sm:col-span-2",
242
+ children: [/* @__PURE__ */ T("dt", {
243
+ className: "text-sm font-medium text-[var(--color-text-secondary)]",
244
+ children: k("organizations.detail.website", "Website")
245
+ }), /* @__PURE__ */ T("dd", {
246
+ className: "mt-1 break-all text-sm",
247
+ children: /* @__PURE__ */ T("a", {
248
+ href: F.website,
249
+ target: "_blank",
250
+ rel: "noreferrer",
251
+ className: "text-[var(--color-action-primary-bg)] underline-offset-2 hover:underline",
252
+ children: F.website
253
+ })
254
+ })]
255
+ }) : null,
256
+ F.description ? /* @__PURE__ */ E("div", {
257
+ className: "sm:col-span-2",
258
+ children: [/* @__PURE__ */ T("dt", {
259
+ className: "text-sm font-medium text-[var(--color-text-secondary)]",
260
+ children: k("common.description", "Description")
261
+ }), /* @__PURE__ */ T("dd", {
262
+ className: "mt-1 text-sm leading-6 text-[var(--color-text-primary)]",
263
+ children: F.description
264
+ })]
265
+ }) : null
266
+ ]
267
+ })]
268
+ }), /* @__PURE__ */ E(b, {
269
+ treatment: "plain",
270
+ className: "border-border-seam bg-[var(--color-bg-canvas)] p-5 xl:sticky xl:top-6 xl:self-start",
271
+ children: [/* @__PURE__ */ T("h2", {
272
+ className: "text-lg font-semibold text-[var(--color-text-primary)]",
273
+ children: k("common.metadata", "Metadata")
274
+ }), /* @__PURE__ */ E("dl", {
275
+ className: "mt-5 space-y-4",
276
+ children: [
277
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("dt", {
278
+ className: "text-sm font-medium text-[var(--color-text-secondary)]",
279
+ children: k("common.created", "Created")
280
+ }), /* @__PURE__ */ T("dd", {
281
+ className: "mt-1 text-sm text-[var(--color-text-primary)]",
282
+ children: O(F.createdAt)
283
+ })] }),
284
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("dt", {
285
+ className: "text-sm font-medium text-[var(--color-text-secondary)]",
286
+ children: k("common.lastUpdated", "Last updated")
287
+ }), /* @__PURE__ */ T("dd", {
288
+ className: "mt-1 text-sm text-[var(--color-text-primary)]",
289
+ children: O(F.updatedAt)
290
+ })] }),
291
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("dt", {
292
+ className: "text-sm font-medium text-[var(--color-text-secondary)]",
293
+ children: k("organizations.detail.tenantId", "Tenant ID")
294
+ }), /* @__PURE__ */ T("dd", {
295
+ className: "mt-1 break-all font-mono text-sm text-[var(--color-text-primary)]",
296
+ children: F.tenantId
297
+ })] })
298
+ ]
299
+ })]
268
300
  })]
269
- }), z ? /* @__PURE__ */ C("div", {
270
- className: "py-8",
271
- children: /* @__PURE__ */ C(i, { message: D("workspaces.list.loading", "Loading workspaces...") })
272
- }) : B ? /* @__PURE__ */ C(a, {
273
- message: B.message,
274
- action: {
275
- label: D("common.retry", "Retry"),
276
- onClick: () => {
277
- V();
278
- }
279
- }
280
- }) : R.length > 0 ? /* @__PURE__ */ C("div", {
281
- className: "grid grid-cols-1 gap-4 xl:grid-cols-2",
282
- children: R.map((e) => /* @__PURE__ */ C(l, {
283
- workspace: e,
284
- showActions: !1,
285
- onClick: (e) => {
286
- k(`${A}/workspaces/${e.id}`);
287
- }
288
- }, e.id))
289
- }) : /* @__PURE__ */ C("div", {
290
- className: "rounded-xl border border-[var(--color-border-default)] bg-[var(--color-bg-canvas)] p-6",
291
- children: /* @__PURE__ */ C(x, {
292
- illustration: "empty-data",
293
- title: D("workspaces.list.emptyTitle", "No workspaces yet"),
294
- description: j(o.WORKSPACE_CREATE) ? D("workspaces.list.emptyDescription", "Create a workspace when this organization is ready to collaborate with teams or projects.") : D("workspaces.list.emptyDescriptionViewer", "No workspaces have been created in this organization yet."),
295
- action: j(o.WORKSPACE_CREATE) ? /* @__PURE__ */ C("button", {
301
+ }) : /* @__PURE__ */ E("section", {
302
+ className: "space-y-4",
303
+ children: [/* @__PURE__ */ E("div", {
304
+ className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",
305
+ children: [/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("h2", {
306
+ className: "text-lg font-semibold text-[var(--color-text-primary)]",
307
+ children: k("organizations.detail.workspacesTitle", "Organization workspaces")
308
+ }), /* @__PURE__ */ T("p", {
309
+ className: "text-sm text-[var(--color-text-secondary)]",
310
+ children: k("organizations.detail.workspacesSubtitle", "Create and manage workspaces for this organization.")
311
+ })] }), N(o.WORKSPACE_CREATE) && /* @__PURE__ */ E("button", {
296
312
  type: "button",
297
- onClick: () => k(`${A}/workspaces/new?organizationId=${O}`),
298
- className: "inline-flex min-h-11 items-center justify-center gap-2 rounded-lg bg-[var(--color-action-primary-bg)] px-4 py-2 font-medium text-[var(--color-action-primary-text)] transition-all duration-200 hover:bg-[var(--color-action-primary-bgHover)]",
299
- children: D("workspaces.create.button", "Create Workspace")
300
- }) : void 0
301
- })
302
- })]
303
- })
304
- })]
305
- })]
313
+ onClick: () => j(`${M}/workspaces/new?organizationId=${A}`),
314
+ 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",
315
+ children: [/* @__PURE__ */ T(p, {
316
+ size: 16,
317
+ "aria-hidden": "true"
318
+ }), /* @__PURE__ */ T("span", { children: k("workspaces.create.button", "Create Workspace") })]
319
+ })]
320
+ }), V ? /* @__PURE__ */ T("div", {
321
+ className: "py-8",
322
+ children: /* @__PURE__ */ T(i, { message: k("workspaces.list.loading", "Loading workspaces...") })
323
+ }) : H ? /* @__PURE__ */ T(a, {
324
+ message: H.message,
325
+ action: {
326
+ label: k("common.retry", "Retry"),
327
+ onClick: () => {
328
+ U();
329
+ }
330
+ }
331
+ }) : B.length > 0 ? /* @__PURE__ */ T("div", {
332
+ className: "grid grid-cols-1 gap-4 xl:grid-cols-2",
333
+ children: B.map((e) => /* @__PURE__ */ T(l, {
334
+ workspace: e,
335
+ showActions: !1,
336
+ onClick: (e) => {
337
+ j(`${M}/workspaces/${e.id}`);
338
+ }
339
+ }, e.id))
340
+ }) : /* @__PURE__ */ T("div", {
341
+ className: "rounded-xl border border-[var(--color-border-default)] bg-[var(--color-bg-canvas)] p-6",
342
+ children: /* @__PURE__ */ T(x, {
343
+ illustration: "empty-data",
344
+ title: k("workspaces.list.emptyTitle", "No workspaces yet"),
345
+ description: N(o.WORKSPACE_CREATE) ? k("workspaces.list.emptyDescription", "Create a workspace when this organization is ready to collaborate with teams or projects.") : k("workspaces.list.emptyDescriptionViewer", "No workspaces have been created in this organization yet."),
346
+ action: N(o.WORKSPACE_CREATE) ? /* @__PURE__ */ T("button", {
347
+ type: "button",
348
+ onClick: () => j(`${M}/workspaces/new?organizationId=${A}`),
349
+ className: "inline-flex min-h-11 items-center justify-center gap-2 rounded-lg bg-[var(--color-action-primary-bg)] px-4 py-2 font-medium text-[var(--color-action-primary-text)] transition-all duration-200 hover:bg-[var(--color-action-primary-bgHover)]",
350
+ children: k("workspaces.create.button", "Create Workspace")
351
+ }) : void 0
352
+ })
353
+ })]
354
+ })
355
+ })]
356
+ })
357
+ ]
306
358
  })
307
- }) : /* @__PURE__ */ C("div", {
359
+ }) : /* @__PURE__ */ T("div", {
308
360
  className: "min-h-full bg-[var(--color-bg-canvas)] p-6",
309
- children: /* @__PURE__ */ C("div", {
361
+ children: /* @__PURE__ */ T("div", {
310
362
  className: "p-8 text-center text-[var(--color-text-secondary)]",
311
- children: D("organizations.detail.noPermission", "You don't have permission to view this organization.")
363
+ children: k("organizations.detail.noPermission", "You don't have permission to view this organization.")
312
364
  })
313
365
  });
314
366
  }
315
367
  //#endregion
316
- export { D as OrganizationDetailPage };
368
+ export { k as OrganizationDetailPage };
317
369
 
318
370
  //# sourceMappingURL=OrganizationDetailPage.js.map