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