@burdenoff/fe-libs 2026.623.8 → 2026.624.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderBar.d.ts","sourceRoot":"","sources":["../../src/chrome/HeaderBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,oBAAoB;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gEAAgE;IAChE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAEhB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB,0BAA0B;IAC1B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B,2BAA2B;IAC3B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAE3B,8BAA8B;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,qGAAqG;IACrG,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,kGAAkG;IAClG,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAElC,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAE/B,yBAAyB;IACzB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE7B,2BAA2B;IAC3B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAE3B,wBAAwB;IACxB,IAAI,CAAC,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF,8BAA8B;IAC9B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAE7B,iDAAiD;IACjD,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB,yDAAyD;IACzD,eAAe,CAAC,EAAE,SAAS,CAAC;IAE5B,iCAAiC;IACjC,eAAe,CAAC,EAAE,SAAS,CAAC;IAE5B,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAE7B,mCAAmC;IACnC,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAE9B,iCAAiC;IACjC,eAAe,CAAC,EAAE,SAAS,CAAC;IAE5B,uCAAuC;IACvC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtC,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAiPxC,CAAC"}
1
+ {"version":3,"file":"HeaderBar.d.ts","sourceRoot":"","sources":["../../src/chrome/HeaderBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG3C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,IAAI,EAAE,SAAS,CAAC;IAChB,oBAAoB;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gEAAgE;IAChE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAEhB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB,0BAA0B;IAC1B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B,2BAA2B;IAC3B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAE3B,8BAA8B;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,qGAAqG;IACrG,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,kGAAkG;IAClG,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAElC,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAE/B,yBAAyB;IACzB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE7B,2BAA2B;IAC3B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAE3B,wBAAwB;IACxB,IAAI,CAAC,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF,8BAA8B;IAC9B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAE7B,iDAAiD;IACjD,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB,yDAAyD;IACzD,eAAe,CAAC,EAAE,SAAS,CAAC;IAE5B,iCAAiC;IACjC,eAAe,CAAC,EAAE,SAAS,CAAC;IAE5B,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAE7B,mCAAmC;IACnC,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAE9B,iCAAiC;IACjC,eAAe,CAAC,EAAE,SAAS,CAAC;IAE5B,uCAAuC;IACvC,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtC,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CA6MxC,CAAC"}
@@ -1,69 +1,70 @@
1
- import { jsx as e, jsxs as t } from "react/jsx-runtime";
1
+ import { HeaderThemeSwitcher as e } from "./HeaderThemeSwitcher.js";
2
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
2
3
  //#region src/chrome/HeaderBar.tsx
3
- var n = ({ logo: n, appName: r, onLogoClick: i, onMenuToggle: a, onSearchClick: o, searchPlaceholder: s = "Search...", searchShortcut: c = "⌘K", unreadNotifications: l = 0, onNotificationsClick: u, notificationCenter: d, colorMode: f = "light", onThemeToggle: p, user: m, onUserMenuClick: h, actions: g, contextSwitcher: _, productSwitcher: v, languageSwitcher: y, geographySwitcher: b, profileSwitcher: x, onKeyboardShortcutsClick: S, mobileOptimized: C = !0 }) => /* @__PURE__ */ t("header", {
4
+ var r = ({ logo: r, appName: i, onLogoClick: a, onMenuToggle: o, onSearchClick: s, searchPlaceholder: c = "Search...", searchShortcut: l = "⌘K", unreadNotifications: u = 0, onNotificationsClick: d, notificationCenter: f, colorMode: p = "light", onThemeToggle: m, user: h, onUserMenuClick: g, actions: _, contextSwitcher: v, productSwitcher: y, languageSwitcher: b, geographySwitcher: x, profileSwitcher: S, onKeyboardShortcutsClick: C, mobileOptimized: w = !0 }) => /* @__PURE__ */ n("header", {
4
5
  className: "relative z-[100] h-14 bg-[var(--color-surface-glass)] backdrop-blur-[var(--blur-glass)] border-b border-[var(--color-border-glass)] flex items-center px-3 md:px-card-padding justify-between",
5
- children: [/* @__PURE__ */ t("div", {
6
+ children: [/* @__PURE__ */ n("div", {
6
7
  className: "flex items-center gap-2 md:gap-control-gap",
7
- children: [a && /* @__PURE__ */ e("button", {
8
+ children: [o && /* @__PURE__ */ t("button", {
8
9
  type: "button",
9
- onClick: a,
10
+ onClick: o,
10
11
  className: "p-2 hover:bg-bg-sunken rounded-button text-text-primary transition-colors",
11
12
  "aria-label": "Toggle sidebar",
12
- children: /* @__PURE__ */ e("svg", {
13
+ children: /* @__PURE__ */ t("svg", {
13
14
  className: "w-icon-md h-icon-md",
14
15
  fill: "none",
15
16
  stroke: "currentColor",
16
17
  viewBox: "0 0 24 24",
17
- children: /* @__PURE__ */ e("path", {
18
+ children: /* @__PURE__ */ t("path", {
18
19
  strokeLinecap: "round",
19
20
  strokeLinejoin: "round",
20
21
  strokeWidth: 2,
21
22
  d: "M4 6h16M4 12h16M4 18h16"
22
23
  })
23
24
  })
24
- }), n && /* @__PURE__ */ e("div", {
25
- className: `w-8 h-8 bg-action-primary-bg rounded-md flex items-center justify-center ${i ? "cursor-pointer hover:opacity-80 transition-opacity" : ""}`,
26
- onClick: i,
27
- role: i ? "button" : void 0,
28
- tabIndex: i ? 0 : void 0,
29
- onKeyDown: i ? (e) => {
30
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), i());
25
+ }), r && /* @__PURE__ */ t("div", {
26
+ className: `w-8 h-8 bg-action-primary-bg rounded-md flex items-center justify-center ${a ? "cursor-pointer hover:opacity-80 transition-opacity" : ""}`,
27
+ onClick: a,
28
+ role: a ? "button" : void 0,
29
+ tabIndex: a ? 0 : void 0,
30
+ onKeyDown: a ? (e) => {
31
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), a());
31
32
  } : void 0,
32
- "aria-label": i ? "Go to home" : void 0,
33
- children: typeof n == "string" ? /* @__PURE__ */ e("span", {
33
+ "aria-label": a ? "Go to home" : void 0,
34
+ children: typeof r == "string" ? /* @__PURE__ */ t("span", {
34
35
  className: "text-action-primary-text font-bold text-sm",
35
- children: n
36
- }) : n
36
+ children: r
37
+ }) : r
37
38
  })]
38
- }), /* @__PURE__ */ t("div", {
39
+ }), /* @__PURE__ */ n("div", {
39
40
  className: "flex items-center gap-1 md:gap-control-gap",
40
41
  children: [
41
- _,
42
- v && /* @__PURE__ */ e("div", {
43
- className: C ? "hidden md:block empty:hidden" : "empty:hidden",
44
- children: v
45
- }),
46
- y && /* @__PURE__ */ e("div", {
47
- className: C ? "hidden md:block empty:hidden" : "empty:hidden",
42
+ v,
43
+ y && /* @__PURE__ */ t("div", {
44
+ className: w ? "hidden md:block empty:hidden" : "empty:hidden",
48
45
  children: y
49
46
  }),
50
- b && /* @__PURE__ */ e("div", {
51
- className: C ? "hidden md:block empty:hidden" : "empty:hidden",
47
+ b && /* @__PURE__ */ t("div", {
48
+ className: w ? "hidden md:block empty:hidden" : "empty:hidden",
52
49
  children: b
53
50
  }),
54
- (_ || v || y || b) && /* @__PURE__ */ e("div", { className: "hidden md:block h-6 w-px bg-border-subtle" }),
55
- S && /* @__PURE__ */ e("button", {
51
+ x && /* @__PURE__ */ t("div", {
52
+ className: w ? "hidden md:block empty:hidden" : "empty:hidden",
53
+ children: x
54
+ }),
55
+ (v || y || b || x) && /* @__PURE__ */ t("div", { className: "hidden md:block h-6 w-px bg-border-subtle" }),
56
+ C && /* @__PURE__ */ t("button", {
56
57
  type: "button",
57
- onClick: S,
58
- className: `p-2 hover:bg-bg-sunken rounded-button text-text-primary transition-colors ${C ? "hidden md:block" : ""}`,
58
+ onClick: C,
59
+ className: `p-2 hover:bg-bg-sunken rounded-button text-text-primary transition-colors ${w ? "hidden md:block" : ""}`,
59
60
  "aria-label": "Keyboard shortcuts",
60
61
  title: "Keyboard shortcuts (Ctrl+/ or Cmd+/)",
61
- children: /* @__PURE__ */ e("svg", {
62
+ children: /* @__PURE__ */ t("svg", {
62
63
  className: "w-icon-md h-icon-md",
63
64
  fill: "none",
64
65
  stroke: "currentColor",
65
66
  viewBox: "0 0 24 24",
66
- children: /* @__PURE__ */ e("path", {
67
+ children: /* @__PURE__ */ t("path", {
67
68
  strokeLinecap: "round",
68
69
  strokeLinejoin: "round",
69
70
  strokeWidth: 2,
@@ -71,18 +72,18 @@ var n = ({ logo: n, appName: r, onLogoClick: i, onMenuToggle: a, onSearchClick:
71
72
  })
72
73
  })
73
74
  }),
74
- o && /* @__PURE__ */ e("button", {
75
+ s && /* @__PURE__ */ t("button", {
75
76
  type: "button",
76
- onClick: o,
77
+ onClick: s,
77
78
  className: "p-2 hover:bg-bg-sunken rounded-button text-text-primary transition-colors",
78
79
  "aria-label": "Search",
79
- title: `Search (${c})`,
80
- children: /* @__PURE__ */ e("svg", {
80
+ title: `Search (${l})`,
81
+ children: /* @__PURE__ */ t("svg", {
81
82
  className: "w-icon-md h-icon-md",
82
83
  fill: "none",
83
84
  stroke: "currentColor",
84
85
  viewBox: "0 0 24 24",
85
- children: /* @__PURE__ */ e("path", {
86
+ children: /* @__PURE__ */ t("path", {
86
87
  strokeLinecap: "round",
87
88
  strokeLinejoin: "round",
88
89
  strokeWidth: 2,
@@ -90,57 +91,29 @@ var n = ({ logo: n, appName: r, onLogoClick: i, onMenuToggle: a, onSearchClick:
90
91
  })
91
92
  })
92
93
  }),
93
- g,
94
- d || (u ? /* @__PURE__ */ t("button", {
94
+ _,
95
+ f || (d ? /* @__PURE__ */ n("button", {
95
96
  type: "button",
96
- onClick: u,
97
+ onClick: d,
97
98
  className: "relative p-2 hover:bg-bg-sunken rounded-button text-text-primary transition-colors",
98
99
  "aria-label": "Notifications",
99
- children: [/* @__PURE__ */ e("svg", {
100
+ children: [/* @__PURE__ */ t("svg", {
100
101
  className: "w-icon-md h-icon-md",
101
102
  fill: "none",
102
103
  stroke: "currentColor",
103
104
  viewBox: "0 0 24 24",
104
- children: /* @__PURE__ */ e("path", {
105
+ children: /* @__PURE__ */ t("path", {
105
106
  strokeLinecap: "round",
106
107
  strokeLinejoin: "round",
107
108
  strokeWidth: 2,
108
109
  d: "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"
109
110
  })
110
- }), l > 0 && /* @__PURE__ */ e("span", { className: "absolute top-1 right-1 size-2 bg-status-error-bg rounded-full border border-bg-elevated" })]
111
+ }), u > 0 && /* @__PURE__ */ t("span", { className: "absolute top-1 right-1 size-2 bg-status-error-bg rounded-full border border-bg-elevated" })]
111
112
  }) : null),
112
- p && /* @__PURE__ */ e("button", {
113
- type: "button",
114
- onClick: p,
115
- className: `p-2 hover:bg-bg-sunken rounded-button text-text-primary transition-colors ${C ? "hidden md:block" : ""}`,
116
- "aria-label": "Toggle theme",
117
- children: f === "light" ? /* @__PURE__ */ e("svg", {
118
- className: "w-icon-md h-icon-md",
119
- fill: "none",
120
- stroke: "currentColor",
121
- viewBox: "0 0 24 24",
122
- children: /* @__PURE__ */ e("path", {
123
- strokeLinecap: "round",
124
- strokeLinejoin: "round",
125
- strokeWidth: 2,
126
- d: "M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"
127
- })
128
- }) : /* @__PURE__ */ e("svg", {
129
- className: "w-icon-md h-icon-md",
130
- fill: "none",
131
- stroke: "currentColor",
132
- viewBox: "0 0 24 24",
133
- children: /* @__PURE__ */ e("path", {
134
- strokeLinecap: "round",
135
- strokeLinejoin: "round",
136
- strokeWidth: 2,
137
- d: "M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"
138
- })
139
- })
140
- }),
141
- x
113
+ m && /* @__PURE__ */ t(e, { mobileOptimized: w }),
114
+ S
142
115
  ]
143
116
  })]
144
117
  });
145
118
  //#endregion
146
- export { n as HeaderBar };
119
+ export { r as HeaderBar };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Shared 6-theme switcher for the app-shell header. Rendered by HeaderBar so
3
+ * EVERY product shell exposes the full Boff UI theme picker (not just a binary
4
+ * light/dark toggle). Drives the fe-libs ThemeProvider directly via `setMode`.
5
+ */
6
+ export declare function HeaderThemeSwitcher({ mobileOptimized }: {
7
+ mobileOptimized?: boolean;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=HeaderThemeSwitcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderThemeSwitcher.d.ts","sourceRoot":"","sources":["../../src/chrome/HeaderThemeSwitcher.tsx"],"names":[],"mappings":"AAgCA;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,eAAsB,EAAE,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,2CAiD5F"}
@@ -0,0 +1,111 @@
1
+ import { DropdownMenu as e, DropdownMenuContent as t, DropdownMenuItem as n, DropdownMenuLabel as r, DropdownMenuSeparator as i, DropdownMenuTrigger as a } from "../ui/dropdown-menu.js";
2
+ import { useTheme as o } from "../shared/providers/shell/ThemeProvider.js";
3
+ import { useExclusiveMenu as s } from "../shared/hooks/useExclusiveMenu.js";
4
+ import { cn as c } from "../utils/cn.js";
5
+ import "../utils/index.js";
6
+ import { useCallback as l, useState as u } from "react";
7
+ import { Check as d, Contrast as f, Monitor as p, Moon as m, Palette as h, Sun as g, Sunset as _, Trees as v, Waves as y } from "lucide-react";
8
+ import { jsx as b, jsxs as x } from "react/jsx-runtime";
9
+ //#region src/chrome/HeaderThemeSwitcher.tsx
10
+ var S = {
11
+ light: g,
12
+ dark: m,
13
+ forest: v,
14
+ ocean: y,
15
+ sunset: _,
16
+ "high-contrast": f
17
+ }, C = [
18
+ {
19
+ value: "light",
20
+ label: "Light"
21
+ },
22
+ {
23
+ value: "dark",
24
+ label: "Dark"
25
+ },
26
+ {
27
+ value: "forest",
28
+ label: "Forest"
29
+ },
30
+ {
31
+ value: "ocean",
32
+ label: "Ocean"
33
+ },
34
+ {
35
+ value: "sunset",
36
+ label: "Sunset"
37
+ },
38
+ {
39
+ value: "high-contrast",
40
+ label: "High contrast"
41
+ }
42
+ ];
43
+ function w({ mobileOptimized: n = !0 }) {
44
+ let [d, f] = u(!1);
45
+ s("header-theme", d, l(() => f(!1), []));
46
+ let { mode: _, setMode: v, resolvedTheme: y } = o(), w = y === "dark" ? m : g, E = l((e) => v(e), [v]);
47
+ return /* @__PURE__ */ x(e, {
48
+ open: d,
49
+ onOpenChange: f,
50
+ children: [/* @__PURE__ */ b(a, {
51
+ asChild: !0,
52
+ children: /* @__PURE__ */ b("button", {
53
+ type: "button",
54
+ "aria-label": "Theme",
55
+ title: "Theme",
56
+ className: c("flex size-9 items-center justify-center rounded-button text-text-primary transition-colors", "hover:bg-bg-sunken focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]", n ? "hidden md:flex" : ""),
57
+ children: /* @__PURE__ */ b(w, {
58
+ className: "size-5",
59
+ "aria-hidden": "true"
60
+ })
61
+ })
62
+ }), /* @__PURE__ */ x(t, {
63
+ align: "end",
64
+ className: "w-56",
65
+ children: [
66
+ /* @__PURE__ */ x(r, {
67
+ className: "flex items-center gap-2 text-text-secondary",
68
+ children: [/* @__PURE__ */ b(h, {
69
+ className: "size-4",
70
+ "aria-hidden": "true"
71
+ }), "Appearance"]
72
+ }),
73
+ /* @__PURE__ */ b(i, {}),
74
+ /* @__PURE__ */ b(T, {
75
+ active: _ === "system",
76
+ icon: p,
77
+ label: "System",
78
+ onSelect: () => E("system")
79
+ }),
80
+ C.map((e) => /* @__PURE__ */ b(T, {
81
+ active: _ === e.value,
82
+ icon: S[e.value],
83
+ label: e.label,
84
+ onSelect: () => E(e.value)
85
+ }, e.value))
86
+ ]
87
+ })]
88
+ });
89
+ }
90
+ function T({ active: e, icon: t, label: r, onSelect: i }) {
91
+ return /* @__PURE__ */ x(n, {
92
+ onSelect: i,
93
+ className: c("gap-2", e && "bg-[var(--color-accent-soft)] text-text-primary"),
94
+ children: [
95
+ /* @__PURE__ */ b(t, {
96
+ className: "size-4 text-text-secondary",
97
+ "aria-hidden": "true"
98
+ }),
99
+ /* @__PURE__ */ b("span", {
100
+ className: "flex-1",
101
+ children: r
102
+ }),
103
+ e && /* @__PURE__ */ b(d, {
104
+ className: "size-4 text-action-primary-bg",
105
+ "aria-hidden": "true"
106
+ })
107
+ ]
108
+ });
109
+ }
110
+ //#endregion
111
+ export { w as HeaderThemeSwitcher };
@@ -1 +1 @@
1
- {"version":3,"file":"gatewayUrls.d.ts","sourceRoot":"","sources":["../../../src/shared/config/gatewayUrls.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAoBD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,UAkC/B,CAAC;AAEF,eAAO,MAAM,UAAU,aAGrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,aAOtB,CAAC;AAEH,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AA8BD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,IAAI,kBAAkB,CA6BvD"}
1
+ {"version":3,"file":"gatewayUrls.d.ts","sourceRoot":"","sources":["../../../src/shared/config/gatewayUrls.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAoBD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,UAwC/B,CAAC;AAEF,eAAO,MAAM,UAAU,aAGrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,aAOtB,CAAC;AAEH,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AA8BD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,IAAI,kBAAkB,CA6BvD"}
@@ -11,7 +11,7 @@ var e = {
11
11
  workspaceBaseUrl: "https://gw-wspace.local.burdenoff.com",
12
12
  globalBaseUrl: "https://gw-global.local.burdenoff.com",
13
13
  publicStoreBaseUrl: "https://gw-global.local.burdenoff.com"
14
- }, r = /* @__PURE__ */ "burdenoff.com,vibecontrols.com,fluidgrids.com,botlit.ai,bigconsole.com,gethealthybowl.com,headshotmarketing.com,timecampus.com,ggnomad.com,movethewheels.com,crewfoundry.com,planmagnet.com,eventfullymanaged.com,kadaikodi.com,assethandler.com,technospam.com,semanticfed.com,manufacturedops.com,theglobalfuel.com,housingvista.com,proserviceworld.com,mybodyshield.com,artistrybase.com,collabkin.com,brainyrich.com,theculturepost.com,comradecircle.com,cosmicintersection.com,govcitizenhub.com,intelwatchtower.com,ecoimpacthub.com,buildmyiq.com,fluidgrids.ai".split(","), i = new Set([...r.map((e) => `app.${e}`), "admin.burdenoff.com"]), a = new Set([...r.map((e) => `alphaapp.${e}`), "alphaadmin.burdenoff.com"]);
14
+ }, r = /* @__PURE__ */ "burdenoff.com,vibecontrols.com,fluidgrids.com,botlit.ai,bigconsole.com,gethealthybowl.com,headshotmarketing.com,timecampus.com,ggnomad.com,movethewheels.com,crewfoundry.com,planmagnet.com,eventfullymanaged.com,kadaikodi.com,assethandler.com,technospam.com,semanticfed.com,manufacturedops.com,theglobalfuel.com,housingvista.com,proserviceworld.com,mybodyshield.com,artistrybase.com,collabkin.com,brainyrich.com,theculturepost.com,comradecircle.com,cosmicintersection.com,govcitizenhub.com,intelwatchtower.com,ecoimpacthub.com,buildmyiq.com,fluidgrids.ai,atheletebridge.com,adaptercloud.com,coolandlovely.com,subscriberbot.com,labsofscience.com,hookmovies.com".split(","), i = new Set([...r.map((e) => `app.${e}`), "admin.burdenoff.com"]), a = new Set([...r.map((e) => `alphaapp.${e}`), "alphaadmin.burdenoff.com"]);
15
15
  function o() {
16
16
  return typeof window > "u" ? "" : window.location.hostname.toLowerCase();
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useAuthActions.d.ts","sourceRoot":"","sources":["../../../../../src/shared/providers/shell/authProvider/useAuthActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EAchB,MAAM,0BAA0B,CAAC;AAMlC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,oBAAoB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,cAAc,EACV,CAAC,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;QACjC,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC,GACH,SAAS,CAAC;IACd,cAAc,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACzC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5C,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,mBAAmB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACpD,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACtE,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,UAAU,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpF,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,WAAW,EACX,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,EAAE,eAAe,GAAG,WAAW,CAyS/B"}
1
+ {"version":3,"file":"useAuthActions.d.ts","sourceRoot":"","sources":["../../../../../src/shared/providers/shell/authProvider/useAuthActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EAchB,MAAM,0BAA0B,CAAC;AAqClC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,oBAAoB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,cAAc,EACV,CAAC,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;QACjC,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC,GACH,SAAS,CAAC;IACd,cAAc,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACzC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5C,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,mBAAmB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACpD,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACtE,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,UAAU,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpF,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,WAAW,EACX,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,EAAE,eAAe,GAAG,WAAW,CAmT/B"}
@@ -1,22 +1,38 @@
1
- import { addProfile as e, getProfileTokens as t, getProfileUser as n, getProfileWorkspaceToken as r, getProfiles as i, loginProfile as a, logoutAllProfiles as o, removeProfile as s, resolveActiveProfileId as c, setProfileTokens as l, setProfileUser as u, setProfileWorkspaceToken as d, switchProfile as f } from "../ProfileStorageManager.js";
2
- import { clearShellSsoCookies as p, setShellSsoCookies as m } from "../../../utils/authCookie.js";
3
- import { getAuthBridge as h } from "../AuthBridgeClient.js";
4
- import { getCrossOriginLogoutUrl as g } from "./ssoRelay.js";
5
- import { getJwtExpiry as _ } from "./jwt.js";
6
- import { useCallback as v } from "react";
1
+ import { resolveGatewayUrls as e } from "../../../config/gatewayUrls.js";
2
+ import { addProfile as t, getProfileTokens as n, getProfileUser as r, getProfileWorkspaceToken as i, getProfiles as a, loginProfile as o, logoutAllProfiles as s, removeProfile as c, resolveActiveProfileId as l, setProfileTokens as u, setProfileUser as d, setProfileWorkspaceToken as f, switchProfile as p } from "../ProfileStorageManager.js";
3
+ import { clearShellSsoCookies as m, setShellSsoCookies as h } from "../../../utils/authCookie.js";
4
+ import { getAuthBridge as g } from "../AuthBridgeClient.js";
5
+ import { getCrossOriginLogoutUrl as _ } from "./ssoRelay.js";
6
+ import { getJwtExpiry as v } from "./jwt.js";
7
+ import { useCallback as y } from "react";
7
8
  //#region src/shared/providers/shell/authProvider/useAuthActions.ts
8
- function y({ user: y, tokens: b, activeId: x, bridgeSyncInProgress: S, onRefreshToken: C, onTokenExpired: w, setActiveId: T, setUser: E, setTokens: D, setWorkspaceTokenLocal: O, setMfaRequiredState: k, setMfaChallengeIdState: A, setIsLoading: j, clearAccounts: M, refreshAccounts: N }) {
9
- let P = v((e, t, n) => {
10
- let r = _(t) ?? Date.now() + 3600 * 1e3, o = {
9
+ function b(t) {
10
+ if (t) try {
11
+ let { globalBaseUrl: n } = e();
12
+ if (!n) return;
13
+ fetch(`${n}/global/graphql`, {
14
+ method: "POST",
15
+ headers: {
16
+ "content-type": "application/json",
17
+ authorization: `Bearer ${t}`
18
+ },
19
+ body: JSON.stringify({ query: "mutation SignOut { signOut }" }),
20
+ keepalive: !0
21
+ }).catch(() => {});
22
+ } catch {}
23
+ }
24
+ function x({ user: e, tokens: x, activeId: S, bridgeSyncInProgress: C, onRefreshToken: w, onTokenExpired: T, setActiveId: E, setUser: D, setTokens: O, setWorkspaceTokenLocal: k, setMfaRequiredState: A, setMfaChallengeIdState: j, setIsLoading: M, clearAccounts: N, refreshAccounts: P }) {
25
+ let F = y((e, t, n) => {
26
+ let r = v(t) ?? Date.now() + 3600 * 1e3, i = {
11
27
  accessToken: t,
12
28
  refreshToken: n,
13
29
  expiresAt: r
14
- }, s = a(e, o);
15
- T(s), E(e), D(o), O(null), k(!1), A(null), N();
30
+ }, s = o(e, i);
31
+ E(s), D(e), O(i), k(null), A(!1), j(null), P();
16
32
  try {
17
- m(s, window.location.origin);
33
+ h(s, window.location.origin);
18
34
  } catch {}
19
- S.current || h()?.notifyLogin({
35
+ C.current || g()?.notifyLogin({
20
36
  user: e,
21
37
  tokens: {
22
38
  accessToken: t,
@@ -25,142 +41,143 @@ function y({ user: y, tokens: b, activeId: x, bridgeSyncInProgress: S, onRefresh
25
41
  },
26
42
  activeAccountId: s,
27
43
  activeProfileId: s,
28
- profiles: i()
44
+ profiles: a()
29
45
  });
30
46
  }, [
31
- N,
32
- S,
33
- T,
47
+ P,
48
+ C,
34
49
  E,
35
50
  D,
36
51
  O,
37
52
  k,
38
- A
39
- ]), F = v(() => {
40
- x && s(x);
41
- let e = c();
42
- e ? (T(e), E(n(e)), D(t(e)), O(r(e))) : (T(null), E(null), D(null), O(null)), k(!1), A(null), N();
53
+ A,
54
+ j
55
+ ]), I = y(() => {
56
+ C.current || b(x?.accessToken ?? (S ? n(S)?.accessToken : void 0)), S && c(S);
57
+ let e = l();
58
+ e ? (E(e), D(r(e)), O(n(e)), k(i(e))) : (E(null), D(null), O(null), k(null)), A(!1), j(null), P();
43
59
  try {
44
- p();
60
+ m();
45
61
  } catch {}
46
- S.current || h()?.notifyLogout();
47
- let i = g();
48
- i && !S.current && window.location.replace(i);
62
+ C.current || g()?.notifyLogout();
63
+ let t = _();
64
+ t && !C.current && window.location.replace(t);
49
65
  }, [
50
- x,
51
- N,
52
66
  S,
53
- T,
67
+ x,
68
+ P,
69
+ C,
54
70
  E,
55
71
  D,
56
72
  O,
57
73
  k,
58
- A
59
- ]), I = v((t) => {
60
- if (!y || !x) return;
61
- let n = {
62
- ...y,
63
- ...t
74
+ A,
75
+ j
76
+ ]), L = y((n) => {
77
+ if (!e || !S) return;
78
+ let r = {
79
+ ...e,
80
+ ...n
64
81
  };
65
- E(n), u(x, n), e({
66
- id: x,
67
- email: n.email,
68
- name: n.name ?? `${n.firstName ?? ""} ${n.lastName ?? ""}`.trim(),
69
- avatar: n.avatar,
82
+ D(r), d(S, r), t({
83
+ id: S,
84
+ email: r.email,
85
+ name: r.name ?? `${r.firstName ?? ""} ${r.lastName ?? ""}`.trim(),
86
+ avatar: r.avatar,
70
87
  lastLogin: (/* @__PURE__ */ new Date()).toISOString()
71
- }), N();
88
+ }), P();
72
89
  }, [
73
- y,
74
- x,
75
- N,
76
- E
77
- ]), L = v(async () => {
78
- if (!C || !x) return;
79
- let e = b?.refreshToken ?? t(x)?.refreshToken ?? void 0;
90
+ e,
91
+ S,
92
+ P,
93
+ D
94
+ ]), R = y(async () => {
95
+ if (!w || !S) return;
96
+ let e = x?.refreshToken ?? n(S)?.refreshToken ?? void 0;
80
97
  if (e) {
81
- j(!0);
98
+ M(!0);
82
99
  try {
83
- let t = await C(e), n = _(t.accessToken), r = t.expiresAt ?? n ?? Date.now() + 1440 * 60 * 1e3, i = {
100
+ let t = await w(e), n = v(t.accessToken), r = t.expiresAt ?? n ?? Date.now() + 1440 * 60 * 1e3, i = {
84
101
  accessToken: t.accessToken,
85
102
  refreshToken: t.refreshToken ?? e,
86
103
  expiresAt: r
87
104
  };
88
- D(i), l(x, i), S.current || h()?.notifyTokenRefresh({
105
+ O(i), u(S, i), C.current || g()?.notifyTokenRefresh({
89
106
  accessToken: i.accessToken,
90
107
  refreshToken: i.refreshToken,
91
108
  expiresAt: i.expiresAt
92
109
  });
93
110
  } catch (e) {
94
- console.error("Failed to refresh token:", e), b?.expiresAt && b.expiresAt - Date.now() > 0 || (F(), w?.());
111
+ console.error("Failed to refresh token:", e), x?.expiresAt && x.expiresAt - Date.now() > 0 || (I(), T?.());
95
112
  } finally {
96
- j(!1);
113
+ M(!1);
97
114
  }
98
115
  }
99
116
  }, [
100
- b,
101
- C,
102
117
  x,
103
- F,
104
118
  w,
105
119
  S,
106
- D,
107
- j
108
- ]), R = v((e) => y?.permissions ? y.permissions.includes(e) || y.permissions.includes("*") : !1, [y]), z = v((e) => {
109
- O(e), x && d(x, e);
110
- }, [x, O]), B = v((e, t) => {
111
- k(e), A(t ?? null);
112
- }, [k, A]), V = v((e) => {
113
- if (!f(e)) {
120
+ I,
121
+ T,
122
+ C,
123
+ O,
124
+ M
125
+ ]), z = y((t) => e?.permissions ? e.permissions.includes(t) || e.permissions.includes("*") : !1, [e]), B = y((e) => {
126
+ k(e), S && f(S, e);
127
+ }, [S, k]), V = y((e, t) => {
128
+ A(e), j(t ?? null);
129
+ }, [A, j]), H = y((e) => {
130
+ if (!p(e)) {
114
131
  console.error(`Profile ${e} not found`);
115
132
  return;
116
133
  }
117
- T(e), E(n(e)), D(t(e)), O(r(e)), k(!1), A(null), N(), S.current || h()?.notifyAccountSwitch(e);
134
+ E(e), D(r(e)), O(n(e)), k(i(e)), A(!1), j(null), P(), C.current || g()?.notifyAccountSwitch(e);
118
135
  }, [
119
- N,
120
- S,
121
- T,
136
+ P,
137
+ C,
122
138
  E,
123
139
  D,
124
140
  O,
125
141
  k,
126
- A
127
- ]), H = P, U = v((e) => {
128
- if (e === x) {
142
+ A,
143
+ j
144
+ ]), U = F, W = y((e) => {
145
+ if (e === S) {
129
146
  console.error("Cannot remove active account — logout first");
130
147
  return;
131
148
  }
132
- s(e), N();
133
- }, [x, N]);
149
+ c(e), P();
150
+ }, [S, P]);
134
151
  return {
135
- login: P,
136
- logout: F,
137
- logoutAll: v(() => {
138
- o(), T(null), E(null), D(null), O(null), k(!1), A(null), M();
152
+ login: F,
153
+ logout: I,
154
+ logoutAll: y(() => {
155
+ s(), E(null), D(null), O(null), k(null), A(!1), j(null), N();
139
156
  try {
140
- p();
157
+ m();
141
158
  } catch {}
142
- S.current || h()?.notifyLogoutAll();
143
- let e = g();
144
- e && !S.current && window.location.replace(e);
159
+ C.current || g()?.notifyLogoutAll();
160
+ let e = _();
161
+ e && !C.current && window.location.replace(e);
145
162
  }, [
146
- S,
147
- T,
163
+ C,
148
164
  E,
149
165
  D,
150
166
  O,
151
167
  k,
152
168
  A,
153
- M
169
+ j,
170
+ N
154
171
  ]),
155
- updateUser: I,
156
- refreshAccessToken: L,
157
- hasPermission: R,
158
- setWorkspaceToken: z,
159
- setMfaState: B,
160
- switchAccount: V,
161
- addAccount: H,
162
- removeAccount: U
172
+ updateUser: L,
173
+ refreshAccessToken: R,
174
+ hasPermission: z,
175
+ setWorkspaceToken: B,
176
+ setMfaState: V,
177
+ switchAccount: H,
178
+ addAccount: U,
179
+ removeAccount: W
163
180
  };
164
181
  }
165
182
  //#endregion
166
- export { y as useAuthActions };
183
+ export { x as useAuthActions };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fe-libs",
3
- "version": "2026.623.8",
3
+ "version": "2026.624.2",
4
4
  "description": "Burdenoff frontend primitives and domain libraries",
5
5
  "type": "module",
6
6
  "imports": {