@burdenoff/fe-libs 2026.926.4 → 2026.926.5

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.
@@ -9,7 +9,7 @@ import { ReactNode } from 'react';
9
9
  export type ThemeMode = 'light' | 'dark' | 'forest' | 'ocean' | 'sunset' | 'high-contrast' | 'system' | 'custom';
10
10
  /** The six concrete CSS themes (`data-theme` only ever receives one of these). */
11
11
  export type ThemeName = Exclude<ThemeMode, 'system' | 'custom'>;
12
- export type Brand = 'workspaces' | 'fluidgrids' | 'bigconsole' | 'botlit' | 'vibecontrols' | 'healthybowl' | 'housingvista' | 'adaptercloud' | 'artistrybase' | 'atheletebridge' | 'brainyrich' | 'buildmyiq' | 'collabkin' | 'comradecircle' | 'coolandlovely' | 'cosmicintersection' | 'crewfoundry' | 'ecoimpacthub' | 'eventfullymanaged' | 'ggnomad' | 'govcitizenhub' | 'headshotmarketing' | 'hookmovies' | 'intelwatchtower' | 'kadaikodi' | 'labsofscience' | 'manufacturedops' | 'movethewheels' | 'mybodyshield' | 'planmagnet' | 'proserviceworld' | 'semanticfed' | 'subscriberbot' | 'theculturepost' | 'theglobalfuel' | 'timecampus' | 'default';
12
+ export type Brand = 'workspaces' | 'fluidgrids' | 'bigconsole' | 'botlit' | 'botmanor' | 'vibecontrols' | 'healthybowl' | 'housingvista' | 'adaptercloud' | 'artistrybase' | 'atheletebridge' | 'brainyrich' | 'buildmyiq' | 'collabkin' | 'comradecircle' | 'coolandlovely' | 'cosmicintersection' | 'crewfoundry' | 'ecoimpacthub' | 'eventfullymanaged' | 'ggnomad' | 'govcitizenhub' | 'headshotmarketing' | 'hookmovies' | 'intelwatchtower' | 'kadaikodi' | 'labsofscience' | 'manufacturedops' | 'movethewheels' | 'mybodyshield' | 'planmagnet' | 'proserviceworld' | 'semanticfed' | 'subscriberbot' | 'theculturepost' | 'theglobalfuel' | 'timecampus' | 'default';
13
13
  export type Density = 'compact' | 'comfortable' | 'spacious';
14
14
  export type Typography = 'default' | 'large' | 'small';
15
15
  /** Glass intensity preference (drives `data-glass` → blur + opaque fallback). */
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/shell/ThemeProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/shell/ThemeProvider.tsx"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
1
  import { desktopSetTheme as e } from "../../native/desktop.js";
2
- import { createContext as t, use as n, useCallback as r, useEffect as i, useMemo as a, useState as o } from "react";
3
- import { jsx as s } from "react/jsx-runtime";
2
+ import { brandAttribute as t } from "./brandAttribute.js";
3
+ import { createContext as n, use as r, useCallback as i, useEffect as a, useMemo as o, useState as s } from "react";
4
+ import { jsx as c } from "react/jsx-runtime";
4
5
  //#region src/shared/providers/shell/ThemeProvider.tsx
5
- var c = new Set([
6
+ var l = new Set([
6
7
  "dark",
7
8
  "forest",
8
9
  "ocean",
9
10
  "sunset",
10
11
  "high-contrast"
11
- ]), l = [
12
+ ]), u = [
12
13
  {
13
14
  value: "light",
14
15
  label: "Light",
@@ -39,8 +40,8 @@ var c = new Set([
39
40
  label: "High Contrast",
40
41
  family: "dark"
41
42
  }
42
- ], u = (e) => c.has(e) ? "dark" : "light";
43
- function d(e) {
43
+ ], d = (e) => l.has(e) ? "dark" : "light";
44
+ function f(e) {
44
45
  let t = /^#?([0-9a-f]{6})$/i.exec(e.trim());
45
46
  if (!t) return 0;
46
47
  let n = parseInt(t[1], 16), r = [
@@ -53,8 +54,8 @@ function d(e) {
53
54
  });
54
55
  return .2126 * r[0] + .7152 * r[1] + .0722 * r[2];
55
56
  }
56
- var f = (e) => d(e) > .45;
57
- function ee(e, t) {
57
+ var p = (e) => f(e) > .45;
58
+ function m(e, t) {
58
59
  if (typeof window > "u") return t;
59
60
  try {
60
61
  let n = localStorage.getItem(e);
@@ -63,75 +64,75 @@ function ee(e, t) {
63
64
  return t;
64
65
  }
65
66
  }
66
- var p = t(null);
67
- function m({ children: t, defaultMode: n = "system", defaultBrand: c = "default", defaultDensity: l = "comfortable", defaultTypography: d = "default", defaultGlass: m = "full", storageKey: h = "burdenoff-theme" }) {
68
- let g = (e, t) => typeof window > "u" ? t : localStorage.getItem(`${h}-${e}`) || t, [_, v] = o(() => g("mode", n)), [y, b] = o(() => g("brand", c)), [x, S] = o(() => g("density", l)), [C, w] = o(() => g("typography", d)), [T, E] = o(() => g("glass", m)), [D, O] = o(() => g("reduce-motion", "") === "1"), [k, A] = o(() => ee(`${h}-custom-list`, [])), [j, M] = o(() => g("active-custom", "") || null), N = a(() => _ === "custom" ? k.find((e) => e.id === j) ?? null : null, [
69
- _,
67
+ var h = n(null);
68
+ function g({ children: n, defaultMode: r = "system", defaultBrand: l = "default", defaultDensity: u = "comfortable", defaultTypography: f = "default", defaultGlass: g = "full", storageKey: _ = "burdenoff-theme" }) {
69
+ let v = (e, t) => typeof window > "u" ? t : localStorage.getItem(`${_}-${e}`) || t, [y, b] = s(() => v("mode", r)), [x, S] = s(() => v("brand", l)), [ee, te] = s(() => v("density", u)), [C, w] = s(() => v("typography", f)), [T, E] = s(() => v("glass", g)), [D, O] = s(() => v("reduce-motion", "") === "1"), [k, A] = s(() => m(`${_}-custom-list`, [])), [j, M] = s(() => v("active-custom", "") || null), N = o(() => y === "custom" ? k.find((e) => e.id === j) ?? null : null, [
70
+ y,
70
71
  k,
71
72
  j
72
- ]), [P, F] = o(() => _ === "custom" ? "light" : _ === "system" ? typeof window > "u" ? "light" : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : _);
73
- i(() => {
74
- if (_ === "system") {
73
+ ]), [P, F] = s(() => y === "custom" ? "light" : y === "system" ? typeof window > "u" ? "light" : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : y);
74
+ a(() => {
75
+ if (y === "system") {
75
76
  let e = window.matchMedia("(prefers-color-scheme: dark)"), t = (e) => F(e.matches ? "dark" : "light");
76
77
  return e.addEventListener("change", t), F(e.matches ? "dark" : "light"), () => e.removeEventListener("change", t);
77
78
  }
78
- F(_ === "custom" ? N?.base ?? "light" : _);
79
- }, [_, N]);
80
- let I = u(P), L = N?.density ?? x, R = N?.typography ?? C, z = N?.glass ?? T, B = N?.reduceMotion ?? D;
81
- i(() => {
82
- let t = document.documentElement;
83
- if (t.setAttribute("data-theme", P), t.setAttribute("data-brand", y), t.setAttribute("data-density", L), t.setAttribute("data-typography", R), t.setAttribute("data-glass", z), t.toggleAttribute("data-reduce-motion", B), I === "dark" ? t.classList.add("dark") : t.classList.remove("dark"), N) {
79
+ F(y === "custom" ? N?.base ?? "light" : y);
80
+ }, [y, N]);
81
+ let I = d(P), L = N?.density ?? ee, R = N?.typography ?? C, z = N?.glass ?? T, B = N?.reduceMotion ?? D;
82
+ a(() => {
83
+ let n = document.documentElement;
84
+ if (n.setAttribute("data-theme", P), n.setAttribute("data-brand", t(x)), n.setAttribute("data-density", L), n.setAttribute("data-typography", R), n.setAttribute("data-glass", z), n.toggleAttribute("data-reduce-motion", B), I === "dark" ? n.classList.add("dark") : n.classList.remove("dark"), N) {
84
85
  let e = N.accent;
85
- t.style.setProperty("--color-action-primary-bg", e), t.style.setProperty("--color-action-primary-bgHover", `color-mix(in oklab, ${e} 84%, black)`), t.style.setProperty("--color-action-primary-bgActive", `color-mix(in oklab, ${e} 70%, black)`), f(e) ? t.style.setProperty("--color-action-primary-text", "#0a0a0a") : t.style.removeProperty("--color-action-primary-text");
86
- } else t.style.removeProperty("--color-action-primary-bg"), t.style.removeProperty("--color-action-primary-bgHover"), t.style.removeProperty("--color-action-primary-bgActive"), t.style.removeProperty("--color-action-primary-text");
87
- let n = () => {
88
- let n = getComputedStyle(t).getPropertyValue("--color-bg-canvas").trim();
86
+ n.style.setProperty("--color-action-primary-bg", e), n.style.setProperty("--color-action-primary-bgHover", `color-mix(in oklab, ${e} 84%, black)`), n.style.setProperty("--color-action-primary-bgActive", `color-mix(in oklab, ${e} 70%, black)`), p(e) ? n.style.setProperty("--color-action-primary-text", "#0a0a0a") : n.style.removeProperty("--color-action-primary-text");
87
+ } else n.style.removeProperty("--color-action-primary-bg"), n.style.removeProperty("--color-action-primary-bgHover"), n.style.removeProperty("--color-action-primary-bgActive"), n.style.removeProperty("--color-action-primary-text");
88
+ let r = () => {
89
+ let t = getComputedStyle(n).getPropertyValue("--color-bg-canvas").trim();
89
90
  e({
90
91
  scheme: I === "dark" ? "dark" : "light",
91
- backgroundColor: n || void 0
92
+ backgroundColor: t || void 0
92
93
  });
93
94
  };
94
95
  if (typeof requestAnimationFrame == "function") {
95
- let e = requestAnimationFrame(n);
96
+ let e = requestAnimationFrame(r);
96
97
  return () => cancelAnimationFrame(e);
97
98
  }
98
- n();
99
+ r();
99
100
  }, [
100
101
  P,
101
102
  I,
102
- y,
103
+ x,
103
104
  L,
104
105
  R,
105
106
  z,
106
107
  B,
107
108
  N
108
109
  ]);
109
- let V = r((e, t) => localStorage.setItem(`${h}-${e}`, t), [h]), H = r((e) => {
110
- v(e), V("mode", e);
111
- }, [V]), U = r((e) => {
112
- b(e), V("brand", e);
113
- }, [V]), W = r((e) => {
114
- S(e), V("density", e);
115
- }, [V]), G = r((e) => {
110
+ let V = i((e, t) => localStorage.setItem(`${_}-${e}`, t), [_]), H = i((e) => {
111
+ b(e), V("mode", e);
112
+ }, [V]), U = i((e) => {
113
+ S(e), V("brand", e);
114
+ }, [V]), W = i((e) => {
115
+ te(e), V("density", e);
116
+ }, [V]), G = i((e) => {
116
117
  w(e), V("typography", e);
117
- }, [V]), K = r((e) => {
118
+ }, [V]), K = i((e) => {
118
119
  E(e), V("glass", e);
119
- }, [V]), q = r((e) => {
120
+ }, [V]), q = i((e) => {
120
121
  O(e), V("reduce-motion", e ? "1" : "0");
121
- }, [V]), J = r((e) => {
122
- A(e), localStorage.setItem(`${h}-custom-list`, JSON.stringify(e));
123
- }, [h]), Y = r((e) => {
122
+ }, [V]), J = i((e) => {
123
+ A(e), localStorage.setItem(`${_}-custom-list`, JSON.stringify(e));
124
+ }, [_]), Y = i((e) => {
124
125
  let t = typeof crypto < "u" && crypto.randomUUID ? crypto.randomUUID() : `ct-${Date.now()}-${Math.floor(performance.now())}`, n = {
125
126
  ...e,
126
127
  id: t
127
128
  };
128
129
  return J([...k, n]), n;
129
- }, [k, J]), X = r((e, t) => {
130
+ }, [k, J]), X = i((e, t) => {
130
131
  J(k.map((n) => n.id === e ? {
131
132
  ...n,
132
133
  ...t
133
134
  } : n));
134
- }, [k, J]), Z = r((e) => {
135
+ }, [k, J]), Z = i((e) => {
135
136
  J(k.filter((t) => t.id !== e)), j === e && (M(null), V("active-custom", ""), H("system"));
136
137
  }, [
137
138
  k,
@@ -139,13 +140,13 @@ function m({ children: t, defaultMode: n = "system", defaultBrand: c = "default"
139
140
  j,
140
141
  V,
141
142
  H
142
- ]), Q = r((e) => {
143
+ ]), Q = i((e) => {
143
144
  M(e), V("active-custom", e), H("custom");
144
- }, [V, H]), $ = r(() => {
145
+ }, [V, H]), $ = i(() => {
145
146
  H(I === "light" ? "dark" : "light");
146
- }, [I, H]), te = a(() => ({
147
- mode: _,
148
- brand: y,
147
+ }, [I, H]), ne = o(() => ({
148
+ mode: y,
149
+ brand: x,
149
150
  density: L,
150
151
  typography: R,
151
152
  glass: z,
@@ -167,8 +168,8 @@ function m({ children: t, defaultMode: n = "system", defaultBrand: c = "default"
167
168
  colorMode: I,
168
169
  toggleColorMode: $
169
170
  }), [
170
- _,
171
171
  y,
172
+ x,
172
173
  L,
173
174
  R,
174
175
  z,
@@ -189,18 +190,18 @@ function m({ children: t, defaultMode: n = "system", defaultBrand: c = "default"
189
190
  Q,
190
191
  $
191
192
  ]);
192
- return /* @__PURE__ */ s(p.Provider, {
193
- value: te,
194
- children: t
193
+ return /* @__PURE__ */ c(h.Provider, {
194
+ value: ne,
195
+ children: n
195
196
  });
196
197
  }
197
- function h() {
198
- let e = n(p);
198
+ function _() {
199
+ let e = r(h);
199
200
  if (!e) throw Error("useTheme must be used within a ThemeProvider");
200
201
  return e;
201
202
  }
202
- function g() {
203
- return n(p);
203
+ function v() {
204
+ return r(h);
204
205
  }
205
206
  //#endregion
206
- export { l as THEME_OPTIONS, m as ThemeProvider, h as useTheme, g as useThemeOrNull };
207
+ export { u as THEME_OPTIONS, g as ThemeProvider, _ as useTheme, v as useThemeOrNull };
@@ -0,0 +1,11 @@
1
+ import { Brand } from './ThemeProvider';
2
+ /**
3
+ * The `data-brand` attribute value for a brand. Both spellings of a renamed
4
+ * product (`botlit` / `botmanor`) resolve to ONE brand token, so they always
5
+ * get the same theme; every other brand is emitted unchanged.
6
+ *
7
+ * Lives outside ThemeProvider.tsx so that file only exports components/types
8
+ * (React Fast Refresh).
9
+ */
10
+ export declare function brandAttribute(brand: Brand): string;
11
+ //# sourceMappingURL=brandAttribute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brandAttribute.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/shell/brandAttribute.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAEnD"}
@@ -0,0 +1,7 @@
1
+ import { emitProductSlug as e } from "../../config/productSlug.js";
2
+ //#region src/shared/providers/shell/brandAttribute.ts
3
+ function t(t) {
4
+ return e(t);
5
+ }
6
+ //#endregion
7
+ export { t as brandAttribute };
@@ -1,9 +1,10 @@
1
1
  import { resolveGatewayUrls as e } from "./shared/config/gatewayUrls.js";
2
2
  import { resolveAuthBridgeConfig as t, resolveShellAuthBridgeConfig as n } from "./shared/config/authBridgeUrls.js";
3
- import { PRODUCTS as r, PRODUCT_URLS as i, getProductUrl as a, getProductsWithUrls as o } from "./shared/config/products.js";
4
- import { COMMON_SHELL_LESS_ROUTES as s, DEFAULT_SHELL_CONFIG as c, getShellConfig as l, isShellLessRoute as u, shouldShowBreadcrumb as d, shouldShowSidebar as f } from "./shared/config/shellRoutes.js";
3
+ import { PRODUCT_SLUG_EMIT as r, PRODUCT_SLUG_RENAMES as i, emitProductSlug as a, isSameProductSlug as o, legacyProductSlug as s, normalizeProductSlug as c } from "./shared/config/productSlug.js";
4
+ import { BOTMANOR_PRODUCT_SLUG as l, PRODUCTS as u, PRODUCT_URLS as d, findProductConfig as f, getProductUrl as p, getProductsWithUrls as m } from "./shared/config/products.js";
5
+ import { COMMON_SHELL_LESS_ROUTES as h, DEFAULT_SHELL_CONFIG as g, getShellConfig as _, isShellLessRoute as v, shouldShowBreadcrumb as y, shouldShowSidebar as b } from "./shared/config/shellRoutes.js";
5
6
  //#region src/shared/config/index.ts
6
- var p = 20, m = {
7
+ var x = 20, S = {
7
8
  workspace: {
8
9
  defaultBaseUrl: "https://gw-wspace.local.burdenoff.com",
9
10
  graphql: "/workspaces/graphql",
@@ -16,18 +17,18 @@ var p = 20, m = {
16
17
  ws: "/global/graphql/ws"
17
18
  }
18
19
  };
19
- function h(e, t) {
20
+ function C(e, t) {
20
21
  let n = e.endsWith("/") ? e.slice(0, -1) : e;
21
22
  return t === "workspaces" ? `${n}/workspaces/graphql` : `${n}/global/graphql`;
22
23
  }
23
- function g(e) {
24
- return m[e];
24
+ function w(e) {
25
+ return S[e];
25
26
  }
26
- function _(e, t) {
27
- let n = m[t], r = e || v(t) || n.defaultBaseUrl;
27
+ function T(e, t) {
28
+ let n = S[t], r = e || E(t) || n.defaultBaseUrl;
28
29
  return `${r.endsWith("/") ? r.slice(0, -1) : r}${n.graphql}`;
29
30
  }
30
- function v(t) {
31
+ function E(t) {
31
32
  try {
32
33
  let n = e();
33
34
  return t === "workspace" ? n.workspaceBaseUrl : n.globalBaseUrl;
@@ -36,4 +37,4 @@ function v(t) {
36
37
  }
37
38
  }
38
39
  //#endregion
39
- export { s as COMMON_SHELL_LESS_ROUTES, p as DEFAULT_PAGE_SIZE, c as DEFAULT_SHELL_CONFIG, m as GATEWAYS, r as PRODUCTS, i as PRODUCT_URLS, g as getGatewayConfig, _ as getGatewayUrl, h as getGraphQLEndpoint, a as getProductUrl, o as getProductsWithUrls, l as getShellConfig, u as isShellLessRoute, t as resolveAuthBridgeConfig, e as resolveGatewayUrls, n as resolveShellAuthBridgeConfig, d as shouldShowBreadcrumb, f as shouldShowSidebar };
40
+ export { l as BOTMANOR_PRODUCT_SLUG, h as COMMON_SHELL_LESS_ROUTES, x as DEFAULT_PAGE_SIZE, g as DEFAULT_SHELL_CONFIG, S as GATEWAYS, u as PRODUCTS, r as PRODUCT_SLUG_EMIT, i as PRODUCT_SLUG_RENAMES, d as PRODUCT_URLS, a as emitProductSlug, f as findProductConfig, w as getGatewayConfig, T as getGatewayUrl, C as getGraphQLEndpoint, p as getProductUrl, m as getProductsWithUrls, _ as getShellConfig, o as isSameProductSlug, v as isShellLessRoute, s as legacyProductSlug, c as normalizeProductSlug, t as resolveAuthBridgeConfig, e as resolveGatewayUrls, n as resolveShellAuthBridgeConfig, y as shouldShowBreadcrumb, b as shouldShowSidebar };