@burdenoff/microfe-workspaces 2026.1016.10 → 2026.1016.11

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.
@@ -0,0 +1,4 @@
1
+ /** A failed or incomplete read never authorizes full-list replacement. */
2
+ export declare function WorkspaceTagsEditor({ workspaceId }: {
3
+ workspaceId: string;
4
+ }): import('react').JSX.Element;
@@ -0,0 +1,128 @@
1
+ import { useTr as e } from "../../hooks/useTr.js";
2
+ import { GetWorkspaceTagsDocument as t, ReplaceWorkspaceTagsDocument as n } from "../../generated/wspace-operations.js";
3
+ import { useLayoutEffect as r, useMemo as i, useRef as a, useState as o } from "react";
4
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
5
+ import { Button as l } from "@burdenoff/fe-libs/ui";
6
+ import { TagsWidget as u } from "@burdenoff/fe-libs/tag";
7
+ import { NetworkStatus as d } from "@apollo/client";
8
+ import { useMutation as f, useQuery as p } from "@apollo/client/react";
9
+ //#region src/components/tags/WorkspaceTagsEditor.tsx
10
+ function m(e, t) {
11
+ if (!Array.isArray(e)) return !1;
12
+ let n = /* @__PURE__ */ new Set();
13
+ return e.every((e) => !e || typeof e.id != "string" || !e.id || typeof e.tagId != "string" || !e.tagId || e.entityId !== t || e.entityType !== "WORKSPACE" || n.has(e.tagId) ? !1 : (n.add(e.tagId), !0));
14
+ }
15
+ function h(e) {
16
+ let t = e.tag;
17
+ return !t || t.id !== e.tagId || typeof t.key != "string" || !t.key || typeof t.label != "string" || !t.label || ![
18
+ t.value,
19
+ t.vocabularyId,
20
+ t.parentId,
21
+ t.hierarchyPath,
22
+ t.color,
23
+ t.icon,
24
+ t.description
25
+ ].every((e) => e === null || typeof e == "string") ? null : {
26
+ id: e.tagId,
27
+ key: t.key,
28
+ label: t.label,
29
+ value: t.value,
30
+ vocabularyId: t.vocabularyId,
31
+ parentId: t.parentId,
32
+ hierarchyPath: t.hierarchyPath,
33
+ color: t.color,
34
+ icon: t.icon,
35
+ description: t.description
36
+ };
37
+ }
38
+ function g({ workspaceId: g }) {
39
+ let _ = e(), v = p(t, {
40
+ variables: { input: { entityId: g } },
41
+ skip: !g,
42
+ fetchPolicy: "network-only",
43
+ notifyOnNetworkStatusChange: !0
44
+ }), [y] = f(n), [b, x] = o(!1), [S, C] = o(!1), w = a(!1), T = a(!1);
45
+ r(() => (w.current = !0, () => {
46
+ w.current = !1;
47
+ }), []);
48
+ let E = v.data?.getWorkspaceTags ?? v.previousData?.getWorkspaceTags, D = m(E, g), O = Array.isArray(E) ? E.flatMap((e) => {
49
+ if (!m([e], g)) return [];
50
+ let t = h(e);
51
+ return t ? [t] : [];
52
+ }) : [], k = D && O.length === E.length, A = !!g && !v.loading && !v.error && v.networkStatus === d.ready && v.dataState === "complete" && k && !S && !b, j = a(null), M = i(() => ({
53
+ ready: A,
54
+ rows: E,
55
+ workspaceId: g
56
+ }), [
57
+ A,
58
+ E,
59
+ g
60
+ ]);
61
+ r(() => (j.current = M, () => {
62
+ j.current = null;
63
+ }), [M]);
64
+ async function N(e) {
65
+ if (!(!w.current || j.current !== M || !M.ready || T.current)) {
66
+ T.current = !0, C(!0);
67
+ try {
68
+ let t = await y({ variables: { input: {
69
+ entityId: g,
70
+ tagIds: e.map((e) => e.id)
71
+ } } }), n = t.data?.replaceWorkspaceTags;
72
+ if (t.error || !m(n, g) || n.length !== e.length || n.some((t) => !e.some((e) => e.id === t.tagId)) || n.some((e) => !h(e))) throw Error("Unverified tag replacement");
73
+ if (!w.current) return;
74
+ let r = await v.refetch();
75
+ if (r.error || !m(r.data?.getWorkspaceTags, g) || r.data.getWorkspaceTags.some((e) => !h(e))) throw Error("Unverified tag read");
76
+ } catch {
77
+ w.current && x(!0);
78
+ } finally {
79
+ w.current && C(!1), T.current = !1;
80
+ }
81
+ }
82
+ }
83
+ async function P() {
84
+ if (!T.current) {
85
+ C(!0);
86
+ try {
87
+ let e = await v.refetch();
88
+ w.current && !e.error && m(e.data?.getWorkspaceTags, g) && e.data.getWorkspaceTags.every((e) => h(e)) && x(!1);
89
+ } catch {} finally {
90
+ w.current && C(!1);
91
+ }
92
+ }
93
+ }
94
+ return /* @__PURE__ */ c("div", {
95
+ className: "space-y-3",
96
+ children: [!A && /* @__PURE__ */ c("div", {
97
+ role: "status",
98
+ className: "space-y-2 text-sm text-text-muted",
99
+ children: [
100
+ /* @__PURE__ */ s("p", { children: b ? _("workspaceSettings.tagsUncertain", "The tag update could not be verified. Read again before making changes.") : v.loading || S ? _("workspaceSettings.tagsVerifying", "Verifying workspace tags. Editing is unavailable.") : _("workspaceSettings.tagsUnverified", "Some workspace tags could not be verified. Known tags are shown; editing is unavailable.") }),
101
+ D && !k && /* @__PURE__ */ s("p", { children: _("workspaceSettings.tagsUnavailableCount", "{{count}} known assignment(s) have unavailable tag details.", { count: E.length - O.length }) }),
102
+ /* @__PURE__ */ s(l, {
103
+ type: "button",
104
+ variant: "outline",
105
+ disabled: v.loading || S,
106
+ onClick: () => void P(),
107
+ children: _("workspaceSettings.tagsRetryRead", "Retry read")
108
+ })
109
+ ]
110
+ }), /* @__PURE__ */ s("fieldset", {
111
+ disabled: !A,
112
+ inert: !A,
113
+ "aria-label": _("workspaceSettings.tagsFieldset", "Workspace tags"),
114
+ className: "min-w-0",
115
+ children: /* @__PURE__ */ s(u, {
116
+ entityType: "Workspace",
117
+ entityId: g,
118
+ workspaceId: g,
119
+ tags: O,
120
+ syncGraphNotifications: !1,
121
+ onAdd: (e) => N([...O, e]),
122
+ onRemove: (e) => N(O.filter((t) => t.id !== e))
123
+ }, A ? "editable" : "readonly")
124
+ })]
125
+ });
126
+ }
127
+ //#endregion
128
+ export { g as WorkspaceTagsEditor };
@@ -1,106 +1,83 @@
1
1
  import { useWorkspacesContext as e } from "../providers/WorkspacesProvider.js";
2
- import { GetWorkspaceTagsDocument as t, ReplaceWorkspaceTagsDocument as n } from "../generated/wspace-operations.js";
3
- import { useWorkspace as r } from "../hooks/useWorkspaces.js";
4
- import { WORKSPACE_PERMISSIONS as i } from "../constants/permissions.js";
5
- import { tWithFallback as a } from "../utils/i18n.js";
6
- import { useWorkspacesPageView as o } from "../hooks/useWorkspacesPageView.js";
7
- import { useUpdateWorkspace as s } from "../hooks/useWorkspaceMutations.js";
8
- import { useMemo as c } from "react";
9
- import { ArrowLeft as l, Save as u } from "lucide-react";
10
- import { jsx as d, jsxs as f } from "react/jsx-runtime";
11
- import { Button as p, CardContent as m, CardHeader as h, CardTitle as g, GlassCard as _, OptionalFields as v, PagePurpose as y } from "@burdenoff/fe-libs/ui";
12
- import { useI18n as b } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
13
- import { useNavigate as x, useParams as S } from "react-router";
14
- import { AccessDenied as C, PermissionGate as w } from "@burdenoff/fe-libs/shared/components";
15
- import { Form as T, FormControl as E, FormField as D, FormItem as O, FormLabel as k, FormMessage as A, Input as j, z as M } from "@burdenoff/fe-libs/form";
16
- import { TagsWidget as N } from "@burdenoff/fe-libs/tag";
17
- import { useMutation as P, useQuery as F } from "@apollo/client/react";
2
+ import { useWorkspace as t } from "../hooks/useWorkspaces.js";
3
+ import { WORKSPACE_PERMISSIONS as n } from "../constants/permissions.js";
4
+ import { tWithFallback as r } from "../utils/i18n.js";
5
+ import { useWorkspacesPageView as i } from "../hooks/useWorkspacesPageView.js";
6
+ import { useUpdateWorkspace as a } from "../hooks/useWorkspaceMutations.js";
7
+ import { WorkspaceTagsEditor as o } from "../components/tags/WorkspaceTagsEditor.js";
8
+ import { ArrowLeft as s, Save as c } from "lucide-react";
9
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
10
+ import { Button as d, CardContent as f, CardHeader as p, CardTitle as m, GlassCard as h, OptionalFields as g, PagePurpose as _ } from "@burdenoff/fe-libs/ui";
11
+ import { useI18n as v } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
12
+ import { useNavigate as y, useParams as b } from "react-router";
13
+ import { AccessDenied as x, PermissionGate as S } from "@burdenoff/fe-libs/shared/components";
14
+ import { Form as C, FormControl as w, FormField as T, FormItem as E, FormLabel as D, FormMessage as O, Input as k, z as A } from "@burdenoff/fe-libs/form";
18
15
  //#region src/pages/WorkspaceSettingsPage.tsx
19
- var I = M.object({
20
- name: M.string().min(2).max(100),
21
- contactEmail: M.string().email().optional().or(M.literal("")),
22
- domain: M.string().optional(),
23
- website: M.string().url().optional().or(M.literal(""))
16
+ var j = A.object({
17
+ name: A.string().min(2).max(100),
18
+ contactEmail: A.string().email().optional().or(A.literal("")),
19
+ domain: A.string().optional(),
20
+ website: A.string().url().optional().or(A.literal(""))
24
21
  });
25
- function L() {
26
- let { t: M } = b(), { workspaceId: L } = S();
27
- o("workspaces.settings", {
28
- workspaceId: L,
22
+ function M() {
23
+ let { t: A } = v(), { workspaceId: M } = b();
24
+ i("workspaces.settings", {
25
+ workspaceId: M,
29
26
  requireParams: !0
30
27
  });
31
- let R = x(), { basePath: z = "/" } = e(), { data: B, isLoading: V } = r(L || ""), { mutate: H, isPending: U } = s(), { data: W, refetch: G } = F(t, {
32
- variables: { input: { entityId: L ?? "" } },
33
- skip: !L,
34
- fetchPolicy: "cache-and-network"
35
- }), [K, { loading: q }] = P(n), J = c(() => (W?.getWorkspaceTags ?? []).flatMap((e) => e.tag ? [{
36
- id: e.tagId,
37
- key: e.tag.key,
38
- label: e.tag.label,
39
- value: e.tag.value ?? null,
40
- vocabularyId: e.tag.vocabularyId ?? null,
41
- parentId: e.tag.parentId ?? null,
42
- hierarchyPath: e.tag.hierarchyPath ?? null,
43
- color: e.tag.color ?? null,
44
- icon: e.tag.icon ?? null,
45
- description: e.tag.description ?? null
46
- }] : []), [W?.getWorkspaceTags]), Y = async (e) => {
47
- L && (await K({ variables: { input: {
48
- entityId: L,
49
- tagIds: e.map((e) => e.id)
50
- } } }), await G());
51
- };
52
- return V ? /* @__PURE__ */ d("div", {
28
+ let N = y(), { basePath: P = "/" } = e(), { data: F, isLoading: I } = t(M || ""), { mutate: L, isPending: R } = a();
29
+ return I ? /* @__PURE__ */ l("div", {
53
30
  className: "p-6",
54
- children: a(M, "workspaceSettings.loading", "Loading...")
55
- }) : B ? /* @__PURE__ */ d(w, {
56
- permission: i.WORKSPACE_UPDATE,
57
- fallback: /* @__PURE__ */ f("div", {
31
+ children: r(A, "workspaceSettings.loading", "Loading...")
32
+ }) : F ? /* @__PURE__ */ l(S, {
33
+ permission: n.WORKSPACE_UPDATE,
34
+ fallback: /* @__PURE__ */ u("div", {
58
35
  className: "p-6",
59
- children: [/* @__PURE__ */ f(p, {
36
+ children: [/* @__PURE__ */ u(d, {
60
37
  variant: "ghost",
61
- onClick: () => R(`${z}/${L}`),
38
+ onClick: () => N(`${P}/${M}`),
62
39
  className: "gap-2 mb-6 -ml-2",
63
- children: [/* @__PURE__ */ d(l, { size: 20 }), a(M, "workspaceSettings.backToWorkspace", "Back to Workspace")]
64
- }), /* @__PURE__ */ d(C, {
40
+ children: [/* @__PURE__ */ l(s, { size: 20 }), r(A, "workspaceSettings.backToWorkspace", "Back to Workspace")]
41
+ }), /* @__PURE__ */ l(x, {
65
42
  variant: "card",
66
- title: a(M, "workspaceSettings.permissionRequired", "Permission Required"),
67
- description: a(M, "workspaceSettings.permissionRequiredDesc", "You don't have permission to edit workspace settings."),
68
- details: a(M, "workspaceSettings.permissionRequiredDetails", "Required: workspace:update"),
43
+ title: r(A, "workspaceSettings.permissionRequired", "Permission Required"),
44
+ description: r(A, "workspaceSettings.permissionRequiredDesc", "You don't have permission to edit workspace settings."),
45
+ details: r(A, "workspaceSettings.permissionRequiredDetails", "Required: workspace:update"),
69
46
  primaryAction: {
70
- label: a(M, "workspaceSettings.goBack", "Go Back"),
71
- onClick: () => R(`${z}/${L}`)
47
+ label: r(A, "workspaceSettings.goBack", "Go Back"),
48
+ onClick: () => N(`${P}/${M}`)
72
49
  }
73
50
  })]
74
51
  }),
75
- children: /* @__PURE__ */ f("div", {
52
+ children: /* @__PURE__ */ u("div", {
76
53
  className: "space-y-4 sm:space-y-6 p-3 sm:p-6",
77
54
  children: [
78
- /* @__PURE__ */ f("div", { children: [
79
- /* @__PURE__ */ f(p, {
55
+ /* @__PURE__ */ u("div", { children: [
56
+ /* @__PURE__ */ u(d, {
80
57
  variant: "ghost",
81
- onClick: () => R(`${z}/${L}`),
58
+ onClick: () => N(`${P}/${M}`),
82
59
  className: "gap-2 mb-2 -ml-2",
83
- children: [/* @__PURE__ */ d(l, { size: 20 }), a(M, "workspaceSettings.backToWorkspace", "Back to Workspace")]
60
+ children: [/* @__PURE__ */ l(s, { size: 20 }), r(A, "workspaceSettings.backToWorkspace", "Back to Workspace")]
84
61
  }),
85
- /* @__PURE__ */ d("h1", {
62
+ /* @__PURE__ */ l("h1", {
86
63
  className: "text-2xl sm:text-3xl font-bold",
87
- children: a(M, "workspaceSettings.title", "Workspace Settings")
64
+ children: r(A, "workspaceSettings.title", "Workspace Settings")
88
65
  }),
89
- /* @__PURE__ */ d("p", {
66
+ /* @__PURE__ */ l("p", {
90
67
  className: "text-text-secondary",
91
- children: a(M, "workspaceSettings.subtitle", "Manage workspace configuration")
68
+ children: r(A, "workspaceSettings.subtitle", "Manage workspace configuration")
92
69
  })
93
70
  ] }),
94
- /* @__PURE__ */ d(y, { children: a(M, "workspaceSettings.purpose", "This is where you control how the workspace presents itself and how it's organised — its display name, a contact email, an optional custom domain and website, and the tags used to classify and filter it. Update these to keep the workspace's identity accurate as your team grows.") }),
95
- /* @__PURE__ */ f(_, {
71
+ /* @__PURE__ */ l(_, { children: r(A, "workspaceSettings.purpose", "This is where you control how the workspace presents itself and how it's organised — its display name, a contact email, an optional custom domain and website, and the tags used to classify and filter it. Update these to keep the workspace's identity accurate as your team grows.") }),
72
+ /* @__PURE__ */ u(h, {
96
73
  treatment: "glass",
97
74
  glow: !0,
98
75
  className: "border-border-seam",
99
- children: [/* @__PURE__ */ d(h, { children: /* @__PURE__ */ d(g, { children: a(M, "workspaceSettings.generalSettings", "General Settings") }) }), /* @__PURE__ */ d(m, { children: /* @__PURE__ */ d(T, {
100
- schema: I,
76
+ children: [/* @__PURE__ */ l(p, { children: /* @__PURE__ */ l(m, { children: r(A, "workspaceSettings.generalSettings", "General Settings") }) }), /* @__PURE__ */ l(f, { children: /* @__PURE__ */ l(C, {
77
+ schema: j,
101
78
  onSubmit: (e) => {
102
- L && H({
103
- id: L,
79
+ M && L({
80
+ id: M,
104
81
  input: {
105
82
  ...e,
106
83
  contactEmail: e.contactEmail || void 0,
@@ -108,107 +85,98 @@ function L() {
108
85
  website: e.website || void 0
109
86
  }
110
87
  }, { onSuccess: () => {
111
- R(`${z}/${L}`);
88
+ N(`${P}/${M}`);
112
89
  } });
113
90
  },
114
91
  formOptions: { defaultValues: {
115
- name: B?.name || "",
116
- contactEmail: B?.contactEmail || "",
117
- domain: B?.domain || "",
118
- website: B?.website || ""
92
+ name: F?.name || "",
93
+ contactEmail: F?.contactEmail || "",
94
+ domain: F?.domain || "",
95
+ website: F?.website || ""
119
96
  } },
120
- children: (e) => /* @__PURE__ */ f("div", {
97
+ children: (e) => /* @__PURE__ */ u("div", {
121
98
  className: "space-y-4",
122
99
  children: [
123
- /* @__PURE__ */ d(D, {
100
+ /* @__PURE__ */ l(T, {
124
101
  control: e.control,
125
102
  name: "name",
126
- render: ({ field: e }) => /* @__PURE__ */ f(O, { children: [
127
- /* @__PURE__ */ d(k, { children: a(M, "workspaceSettings.workspaceName", "Workspace Name") }),
128
- /* @__PURE__ */ d(E, { children: /* @__PURE__ */ d(j, { ...e }) }),
129
- /* @__PURE__ */ d(A, {})
103
+ render: ({ field: e }) => /* @__PURE__ */ u(E, { children: [
104
+ /* @__PURE__ */ l(D, { children: r(A, "workspaceSettings.workspaceName", "Workspace Name") }),
105
+ /* @__PURE__ */ l(w, { children: /* @__PURE__ */ l(k, { ...e }) }),
106
+ /* @__PURE__ */ l(O, {})
130
107
  ] })
131
108
  }),
132
- /* @__PURE__ */ d(D, {
109
+ /* @__PURE__ */ l(T, {
133
110
  control: e.control,
134
111
  name: "contactEmail",
135
- render: ({ field: e }) => /* @__PURE__ */ f(O, { children: [
136
- /* @__PURE__ */ d(k, { children: a(M, "workspaceSettings.contactEmail", "Contact Email") }),
137
- /* @__PURE__ */ d(E, { children: /* @__PURE__ */ d(j, {
112
+ render: ({ field: e }) => /* @__PURE__ */ u(E, { children: [
113
+ /* @__PURE__ */ l(D, { children: r(A, "workspaceSettings.contactEmail", "Contact Email") }),
114
+ /* @__PURE__ */ l(w, { children: /* @__PURE__ */ l(k, {
138
115
  type: "email",
139
116
  ...e
140
117
  }) }),
141
- /* @__PURE__ */ d(A, {})
118
+ /* @__PURE__ */ l(O, {})
142
119
  ] })
143
120
  }),
144
- /* @__PURE__ */ f(v, {
145
- title: a(M, "workspaceSettings.advancedTitle", "Advanced settings"),
146
- description: a(M, "workspaceSettings.advancedDescription", "Custom domain + website. Most workspaces leave these blank."),
147
- children: [/* @__PURE__ */ d(D, {
121
+ /* @__PURE__ */ u(g, {
122
+ title: r(A, "workspaceSettings.advancedTitle", "Advanced settings"),
123
+ description: r(A, "workspaceSettings.advancedDescription", "Custom domain + website. Most workspaces leave these blank."),
124
+ children: [/* @__PURE__ */ l(T, {
148
125
  control: e.control,
149
126
  name: "domain",
150
- render: ({ field: e }) => /* @__PURE__ */ f(O, { children: [
151
- /* @__PURE__ */ d(k, { children: a(M, "workspaceSettings.domain", "Domain") }),
152
- /* @__PURE__ */ d(E, { children: /* @__PURE__ */ d(j, { ...e }) }),
153
- /* @__PURE__ */ d(A, {})
127
+ render: ({ field: e }) => /* @__PURE__ */ u(E, { children: [
128
+ /* @__PURE__ */ l(D, { children: r(A, "workspaceSettings.domain", "Domain") }),
129
+ /* @__PURE__ */ l(w, { children: /* @__PURE__ */ l(k, { ...e }) }),
130
+ /* @__PURE__ */ l(O, {})
154
131
  ] })
155
- }), /* @__PURE__ */ d(D, {
132
+ }), /* @__PURE__ */ l(T, {
156
133
  control: e.control,
157
134
  name: "website",
158
- render: ({ field: e }) => /* @__PURE__ */ f(O, { children: [
159
- /* @__PURE__ */ d(k, { children: a(M, "workspaceSettings.website", "Website") }),
160
- /* @__PURE__ */ d(E, { children: /* @__PURE__ */ d(j, {
135
+ render: ({ field: e }) => /* @__PURE__ */ u(E, { children: [
136
+ /* @__PURE__ */ l(D, { children: r(A, "workspaceSettings.website", "Website") }),
137
+ /* @__PURE__ */ l(w, { children: /* @__PURE__ */ l(k, {
161
138
  type: "url",
162
139
  ...e
163
140
  }) }),
164
- /* @__PURE__ */ d(A, {})
141
+ /* @__PURE__ */ l(O, {})
165
142
  ] })
166
143
  })]
167
144
  }),
168
- /* @__PURE__ */ f("div", {
145
+ /* @__PURE__ */ u("div", {
169
146
  className: "flex gap-2",
170
- children: [/* @__PURE__ */ f(p, {
147
+ children: [/* @__PURE__ */ u(d, {
171
148
  type: "submit",
172
- disabled: U,
149
+ disabled: R,
173
150
  className: "gap-2",
174
- children: [/* @__PURE__ */ d(u, { size: 20 }), U ? a(M, "workspaceSettings.saving", "Saving...") : a(M, "workspaceSettings.saveChanges", "Save Changes")]
175
- }), /* @__PURE__ */ d(p, {
151
+ children: [/* @__PURE__ */ l(c, { size: 20 }), R ? r(A, "workspaceSettings.saving", "Saving...") : r(A, "workspaceSettings.saveChanges", "Save Changes")]
152
+ }), /* @__PURE__ */ l(d, {
176
153
  type: "button",
177
154
  variant: "outline",
178
- onClick: () => R(`${z}/${L}`),
179
- children: a(M, "workspaceSettings.cancel", "Cancel")
155
+ onClick: () => N(`${P}/${M}`),
156
+ children: r(A, "workspaceSettings.cancel", "Cancel")
180
157
  })]
181
158
  })
182
159
  ]
183
160
  })
184
161
  }) })]
185
162
  }),
186
- L && /* @__PURE__ */ f(_, {
163
+ M && /* @__PURE__ */ u(h, {
187
164
  treatment: "plain",
188
165
  className: "border-border-seam",
189
- children: [/* @__PURE__ */ d(h, { children: /* @__PURE__ */ d(g, { children: a(M, "workspaceSettings.tags", "Tags") }) }), /* @__PURE__ */ f(m, {
166
+ children: [/* @__PURE__ */ l(p, { children: /* @__PURE__ */ l(m, { children: r(A, "workspaceSettings.tags", "Tags") }) }), /* @__PURE__ */ u(f, {
190
167
  className: "space-y-3",
191
- children: [/* @__PURE__ */ d("p", {
168
+ children: [/* @__PURE__ */ l("p", {
192
169
  className: "text-sm text-text-muted",
193
- children: a(M, "workspaceSettings.tagsDescription", "Use universal tags to classify and filter this workspace.")
194
- }), /* @__PURE__ */ d(N, {
195
- entityType: "Workspace",
196
- entityId: L,
197
- workspaceId: L,
198
- tags: J,
199
- onAdd: (e) => Y([...J, e]),
200
- onRemove: (e) => Y(J.filter((t) => t.id !== e)),
201
- syncGraphNotifications: !1,
202
- className: q ? "pointer-events-none opacity-75" : void 0
203
- })]
170
+ children: r(A, "workspaceSettings.tagsDescription", "Use universal tags to classify and filter this workspace.")
171
+ }), /* @__PURE__ */ l(o, { workspaceId: M ?? "" }, M)]
204
172
  })]
205
173
  })
206
174
  ]
207
175
  })
208
- }) : /* @__PURE__ */ d("div", {
176
+ }) : /* @__PURE__ */ l("div", {
209
177
  className: "p-6",
210
- children: a(M, "workspaceSettings.notFound", "Workspace not found")
178
+ children: r(A, "workspaceSettings.notFound", "Workspace not found")
211
179
  });
212
180
  }
213
181
  //#endregion
214
- export { L as WorkspaceSettingsPage };
182
+ export { M as WorkspaceSettingsPage };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-workspaces",
3
- "version": "2026.1016.10",
3
+ "version": "2026.1016.11",
4
4
  "description": "Workspaces microfrontend for Burdenoff products",
5
5
  "type": "module",
6
6
  "files": [
@@ -48,7 +48,7 @@
48
48
  },
49
49
  "dependencies": {
50
50
  "@apollo/client": "^4.0.11",
51
- "@burdenoff/fe-libs": "2026.801.1",
51
+ "@burdenoff/fe-libs": "2026.1016.1",
52
52
  "@radix-ui/react-icons": "^1.3.2",
53
53
  "@tanstack/react-query": "^5.62.13",
54
54
  "axios": "^1.20.0",