@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.
- package/dist/organization-management/modules/members/components/InviteStatusBadge.js +6 -2
- package/dist/organization-management/modules/members/components/InviteStatusBadge.js.map +1 -1
- package/dist/organization-management/modules/members/pages/InviteMemberPage.js +58 -53
- package/dist/organization-management/modules/members/pages/InviteMemberPage.js.map +1 -1
- package/dist/organization-management/modules/members/pages/InvitePeoplePage.js +56 -52
- package/dist/organization-management/modules/members/pages/InvitePeoplePage.js.map +1 -1
- package/dist/organization-management/modules/members/pages/MemberDetailPage.js +72 -68
- package/dist/organization-management/modules/members/pages/MemberDetailPage.js.map +1 -1
- package/dist/organization-management/modules/members/pages/MembersListPage.js +232 -225
- package/dist/organization-management/modules/members/pages/MembersListPage.js.map +1 -1
- package/dist/organization-management/modules/members/pages/MyInvitesPage.js +172 -182
- package/dist/organization-management/modules/members/pages/MyInvitesPage.js.map +1 -1
- package/dist/organization-management/modules/members/pages/OrganizationInviteAcceptancePage.js +132 -128
- package/dist/organization-management/modules/members/pages/OrganizationInviteAcceptancePage.js.map +1 -1
- package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.js +5 -1
- package/dist/organization-management/modules/organizations/components/OrganizationStatusBadge.js.map +1 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.js +42 -37
- package/dist/organization-management/modules/organizations/pages/OrganizationCreatePage.js.map +1 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.js +316 -266
- package/dist/organization-management/modules/organizations/pages/OrganizationDetailPage.js.map +1 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.js +52 -47
- package/dist/organization-management/modules/organizations/pages/OrganizationEditPage.js.map +1 -1
- package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.js +108 -96
- package/dist/organization-management/modules/organizations/pages/OrganizationsListPage.js.map +1 -1
- package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.js +5 -1
- package/dist/organization-management/modules/workspaces/components/WorkspaceStatusBadge.js.map +1 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.js +43 -38
- package/dist/organization-management/modules/workspaces/pages/WorkspaceCreatePage.js.map +1 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.js +341 -286
- package/dist/organization-management/modules/workspaces/pages/WorkspaceDetailPage.js.map +1 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.js +50 -45
- package/dist/organization-management/modules/workspaces/pages/WorkspaceEditPage.js.map +1 -1
- package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.js +219 -209
- package/dist/organization-management/modules/workspaces/pages/WorkspacesListPage.js.map +1 -1
- package/package.json +2 -2
- package/dist/organization-management/shared/components/feedback/EmptyState.js +0 -31
- 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 {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
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
|
|
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
|
|
29
|
-
let
|
|
30
|
-
|
|
31
|
-
let { navigate:
|
|
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:
|
|
32
|
+
label: k("organizations.detail.tab.overview", "Overview")
|
|
34
33
|
}, {
|
|
35
34
|
id: "workspaces",
|
|
36
|
-
label: `${
|
|
35
|
+
label: `${k("organizations.detail.tab.workspaces", "Workspaces")} (${R === "workspaces" ? B.length : F?.workspaceCount ?? 0})`
|
|
37
36
|
}], [
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
R,
|
|
38
|
+
F?.workspaceCount,
|
|
39
|
+
k,
|
|
40
|
+
B.length
|
|
42
41
|
]);
|
|
43
|
-
return
|
|
42
|
+
return P ? /* @__PURE__ */ T("div", {
|
|
44
43
|
className: "min-h-full bg-[var(--color-bg-canvas)] p-6",
|
|
45
|
-
children: /* @__PURE__ */
|
|
46
|
-
}) :
|
|
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__ */
|
|
49
|
-
}) :
|
|
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__ */
|
|
52
|
-
message:
|
|
50
|
+
children: /* @__PURE__ */ T(a, {
|
|
51
|
+
message: L?.message || k("organizations.detail.notFound", "Organization not found"),
|
|
53
52
|
action: {
|
|
54
|
-
label:
|
|
55
|
-
onClick: () =>
|
|
53
|
+
label: k("organizations.create.back", "Back to Organizations"),
|
|
54
|
+
onClick: () => j(M)
|
|
56
55
|
}
|
|
57
56
|
})
|
|
58
|
-
}) : /* @__PURE__ */
|
|
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__ */
|
|
59
|
+
children: /* @__PURE__ */ E("div", {
|
|
61
60
|
className: "mx-auto flex w-full max-w-7xl flex-col gap-6",
|
|
62
|
-
children: [
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
-
|
|
100
|
-
|
|
101
|
-
children: N.description
|
|
102
|
-
}) : null
|
|
103
|
-
]
|
|
131
|
+
onSelect: () => j(`${M}/${A}/members/invite`)
|
|
132
|
+
}] : []]
|
|
104
133
|
})]
|
|
105
|
-
})
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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
|
-
|
|
113
|
-
} :
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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
|
-
|
|
121
|
-
}] : [],
|
|
122
|
-
|
|
123
|
-
|
|
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
|
-
|
|
128
|
-
}] : []
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
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:
|
|
195
|
-
}), /* @__PURE__ */
|
|
196
|
-
className: "mt-1
|
|
197
|
-
children:
|
|
198
|
-
|
|
199
|
-
|
|
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:
|
|
211
|
-
}), /* @__PURE__ */
|
|
212
|
-
className: "mt-1
|
|
213
|
-
children:
|
|
214
|
-
})]
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
className: "
|
|
260
|
-
children:
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
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
|
-
})
|
|
271
|
-
className: "
|
|
272
|
-
children: /* @__PURE__ */
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
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
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
}
|
|
289
|
-
},
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
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__ */
|
|
359
|
+
}) : /* @__PURE__ */ T("div", {
|
|
310
360
|
className: "min-h-full bg-[var(--color-bg-canvas)] p-6",
|
|
311
|
-
children: /* @__PURE__ */
|
|
361
|
+
children: /* @__PURE__ */ T("div", {
|
|
312
362
|
className: "p-8 text-center text-[var(--color-text-secondary)]",
|
|
313
|
-
children:
|
|
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 {
|
|
368
|
+
export { k as OrganizationDetailPage };
|
|
319
369
|
|
|
320
370
|
//# sourceMappingURL=OrganizationDetailPage.js.map
|