@burdenoff/fe-libs 2026.805.1 → 2026.805.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/chrome/AutoBreadcrumbs.d.ts.map +1 -1
  2. package/dist/chrome/AutoBreadcrumbs.js +2 -2
  3. package/dist/chrome/ContextSwitcher.d.ts.map +1 -1
  4. package/dist/chrome/ContextSwitcher.js +94 -93
  5. package/dist/chrome/DynamicFooter.d.ts.map +1 -1
  6. package/dist/chrome/DynamicFooter.js +77 -59
  7. package/dist/chrome/Footer.d.ts +6 -0
  8. package/dist/chrome/Footer.d.ts.map +1 -1
  9. package/dist/chrome/Footer.js +53 -48
  10. package/dist/chrome/LanguageSwitcher.d.ts.map +1 -1
  11. package/dist/chrome/LanguageSwitcher.js +40 -39
  12. package/dist/chrome/PersonaSurfaceControls.d.ts.map +1 -1
  13. package/dist/chrome/PersonaSurfaceControls.js +103 -102
  14. package/dist/chrome/ProductSideNav.d.ts.map +1 -1
  15. package/dist/chrome/ProductSideNav.js +61 -60
  16. package/dist/chrome/ProductSwitcher.d.ts.map +1 -1
  17. package/dist/chrome/ProductSwitcher.js +73 -72
  18. package/dist/chrome/SideNavigation.d.ts.map +1 -1
  19. package/dist/chrome/SideNavigation.js +75 -74
  20. package/dist/chrome/globalSearch/SearchModeBar.d.ts.map +1 -1
  21. package/dist/chrome/globalSearch/SearchModeBar.js +20 -18
  22. package/dist/shared/providers/shell/useShellLabel.d.ts +20 -0
  23. package/dist/shared/providers/shell/useShellLabel.d.ts.map +1 -0
  24. package/dist/shared/providers/shell/useShellLabel.js +12 -0
  25. package/dist/shared/tours/tourTrigger/DesktopTourDropdown.d.ts.map +1 -1
  26. package/dist/shared/tours/tourTrigger/DesktopTourDropdown.js +34 -33
  27. package/dist/shared/tours/tourTrigger/TourTriggerButton.d.ts.map +1 -1
  28. package/dist/shared/tours/tourTrigger/TourTriggerButton.js +16 -14
  29. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"AutoBreadcrumbs.d.ts","sourceRoot":"","sources":["../../src/chrome/AutoBreadcrumbs.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAYH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAE9D;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,QAElD;AAiBD,wBAAgB,eAAe,mDAmK9B"}
1
+ {"version":3,"file":"AutoBreadcrumbs.d.ts","sourceRoot":"","sources":["../../src/chrome/AutoBreadcrumbs.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAYH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAE9D;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,QAElD;AAiBD,wBAAgB,eAAe,mDA2L9B"}
@@ -33,8 +33,8 @@ function _() {
33
33
  let i = r === t.length - 1, a;
34
34
  if (p.test(e)) a = m.get(e.toLowerCase()) || `${e.slice(0, 8)}...`;
35
35
  else {
36
- let t = e.replace(/-([a-z])/g, (e, t) => t.toUpperCase()), n = _(`nav.${t}`);
37
- a = n === `nav.${t}` ? e.split("-").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join(" ") : n;
36
+ let t = (e) => e.replace(/-([a-z])/g, (e, t) => t.toUpperCase()), r = `nav.${n.slice(1).replace(/\//g, "-")}`, i = `nav.${t(e)}`, o = _(r), s = o === r ? _(i) : null;
37
+ a = o === r ? s !== null && s !== i ? s : e.split("-").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join(" ") : o;
38
38
  }
39
39
  return {
40
40
  label: a,
@@ -1 +1 @@
1
- {"version":3,"file":"ContextSwitcher.d.ts","sourceRoot":"","sources":["../../src/chrome/ContextSwitcher.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAa,MAAM,OAAO,CAAC;AAQ3C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAW,MAAM,yBAAyB,CAAC;AAEzF,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEhF,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IACnD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IACnD,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CA2MpD,CAAC"}
1
+ {"version":3,"file":"ContextSwitcher.d.ts","sourceRoot":"","sources":["../../src/chrome/ContextSwitcher.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAa,MAAM,OAAO,CAAC;AAQ3C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAW,MAAM,yBAAyB,CAAC;AAGzF,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEhF,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IACnD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IACnD,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CA8MpD,CAAC"}
@@ -1,150 +1,151 @@
1
1
  import { Sheet as e, SheetContent as t, SheetHeader as n, SheetTitle as r } from "../ui/sheet.js";
2
- import { useIsMobile as i } from "./contextSwitcher/useIsMobile.js";
3
- import { TabButton as a } from "./contextSwitcher/TabButton.js";
4
- import { OrganizationList as o } from "./contextSwitcher/OrganizationList.js";
5
- import { WorkspaceList as s } from "./contextSwitcher/WorkspaceList.js";
6
- import { ProjectList as c } from "./contextSwitcher/ProjectList.js";
7
- import { TriggerButton as l } from "./contextSwitcher/TriggerButton.js";
8
- import { useCallback as u, useEffect as d, useRef as f, useState as p } from "react";
9
- import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
2
+ import { useShellLabel as i } from "../shared/providers/shell/useShellLabel.js";
3
+ import { useIsMobile as a } from "./contextSwitcher/useIsMobile.js";
4
+ import { TabButton as o } from "./contextSwitcher/TabButton.js";
5
+ import { OrganizationList as s } from "./contextSwitcher/OrganizationList.js";
6
+ import { WorkspaceList as c } from "./contextSwitcher/WorkspaceList.js";
7
+ import { ProjectList as l } from "./contextSwitcher/ProjectList.js";
8
+ import { TriggerButton as u } from "./contextSwitcher/TriggerButton.js";
9
+ import { useCallback as d, useEffect as f, useRef as p, useState as m } from "react";
10
+ import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
10
11
  //#region src/chrome/ContextSwitcher.tsx
11
- var _ = ({ organizations: _, workspaces: v, projects: y, currentOrganizationId: b, currentWorkspaceId: x, currentProjectId: S, onOrganizationChange: C, onWorkspaceChange: w, onProjectChange: T, compact: E = !1 }) => {
12
- let [D, O] = p(!1), [k, A] = p(() => b ? "workspace" : "org"), [j, M] = p({
12
+ var v = ({ organizations: v, workspaces: y, projects: b, currentOrganizationId: x, currentWorkspaceId: S, currentProjectId: C, onOrganizationChange: w, onWorkspaceChange: T, onProjectChange: E, compact: D = !1 }) => {
13
+ let O = i(), [k, A] = m(!1), [j, M] = m(() => x ? "workspace" : "org"), [N, P] = m({
13
14
  org: "",
14
15
  workspace: "",
15
16
  project: ""
16
- }), N = i(), P = f(null), F = f(null), I = f(b);
17
- I.current = b;
18
- let L = _.find((e) => e.id === b), R = v.find((e) => e.id === x), z = y.find((e) => e.id === S), B = v.filter((e) => e.organizationId === b), V = y.filter((e) => e.workspaceId === x), H = u((e, t) => {
17
+ }), F = a(), I = p(null), L = p(null), R = p(x);
18
+ R.current = x;
19
+ let z = v.find((e) => e.id === x), B = y.find((e) => e.id === S), V = b.find((e) => e.id === C), H = y.filter((e) => e.organizationId === x), U = b.filter((e) => e.workspaceId === S), W = d((e, t) => {
19
20
  if (!t.trim()) return e;
20
21
  let n = t.toLowerCase().trim();
21
22
  return e.filter((e) => e.name.toLowerCase().includes(n));
22
- }, []), U = H(_, j.org), W = H(B, j.workspace), G = H(V, j.project), K = u((e, t) => {
23
- M((n) => ({
23
+ }, []), G = W(v, N.org), K = W(H, N.workspace), q = W(U, N.project), J = d((e, t) => {
24
+ P((n) => ({
24
25
  ...n,
25
26
  [e]: t
26
27
  }));
27
- }, []), q = u((e) => {
28
- A(e), M({
28
+ }, []), Y = d((e) => {
29
+ M(e), P({
29
30
  org: "",
30
31
  workspace: "",
31
32
  project: ""
32
33
  }), setTimeout(() => {
33
- F.current?.focus();
34
+ L.current?.focus();
34
35
  }, 50);
35
36
  }, []);
36
- d(() => {
37
- if (N) return;
37
+ f(() => {
38
+ if (F) return;
38
39
  let e = (e) => {
39
- P.current && !P.current.contains(e.target) && O(!1);
40
+ I.current && !I.current.contains(e.target) && A(!1);
40
41
  };
41
- if (D) return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
42
- }, [D, N]), d(() => {
43
- if (D) {
44
- A(I.current ? "workspace" : "org");
42
+ if (k) return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
43
+ }, [k, F]), f(() => {
44
+ if (k) {
45
+ M(R.current ? "workspace" : "org");
45
46
  let e = setTimeout(() => {
46
- F.current?.focus();
47
+ L.current?.focus();
47
48
  }, 100);
48
49
  return () => clearTimeout(e);
49
50
  }
50
- M({
51
+ P({
51
52
  org: "",
52
53
  workspace: "",
53
54
  project: ""
54
55
  });
55
- }, [D]);
56
- let J = (e) => {
57
- C && C(e);
58
- }, Y = (e) => {
56
+ }, [k]);
57
+ let X = (e) => {
59
58
  w && w(e);
60
- }, X = (e) => {
61
- T && T(e), O(!1);
62
- }, Z = () => /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ g("div", {
59
+ }, Z = (e) => {
60
+ T && T(e);
61
+ }, ee = (e) => {
62
+ E && E(e), A(!1);
63
+ }, Q = () => /* @__PURE__ */ _(h, { children: [/* @__PURE__ */ _("div", {
63
64
  className: "flex items-stretch border-b border-[var(--color-border-subtle)] bg-[var(--color-bg-surface)]",
64
65
  children: [
65
- /* @__PURE__ */ h(a, {
66
- label: "Organization",
67
- isActive: k === "org",
68
- onClick: () => q("org")
66
+ /* @__PURE__ */ g(o, {
67
+ label: O("contextSwitcher.organization", "Organization"),
68
+ isActive: j === "org",
69
+ onClick: () => Y("org")
69
70
  }),
70
- /* @__PURE__ */ h(a, {
71
- label: "Workspace",
72
- isActive: k === "workspace",
73
- onClick: () => q("workspace")
71
+ /* @__PURE__ */ g(o, {
72
+ label: O("contextSwitcher.workspace", "Workspace"),
73
+ isActive: j === "workspace",
74
+ onClick: () => Y("workspace")
74
75
  }),
75
- /* @__PURE__ */ h(a, {
76
- label: "Project",
77
- isActive: k === "project",
78
- onClick: () => q("project")
76
+ /* @__PURE__ */ g(o, {
77
+ label: O("contextSwitcher.project", "Project"),
78
+ isActive: j === "project",
79
+ onClick: () => Y("project")
79
80
  })
80
81
  ]
81
- }), /* @__PURE__ */ g("div", {
82
+ }), /* @__PURE__ */ _("div", {
82
83
  className: "flex-1 overflow-hidden",
83
84
  children: [
84
- k === "org" && /* @__PURE__ */ h(o, {
85
- organizations: _,
86
- searchedOrganizations: U,
87
- currentOrganizationId: b,
88
- searchQuery: j.org,
89
- onSearchChange: (e) => K("org", e),
90
- onSelect: J,
91
- searchInputRef: F
85
+ j === "org" && /* @__PURE__ */ g(s, {
86
+ organizations: v,
87
+ searchedOrganizations: G,
88
+ currentOrganizationId: x,
89
+ searchQuery: N.org,
90
+ onSearchChange: (e) => J("org", e),
91
+ onSelect: X,
92
+ searchInputRef: L
92
93
  }),
93
- k === "workspace" && /* @__PURE__ */ h(s, {
94
- filteredWorkspaces: B,
95
- searchedWorkspaces: W,
96
- currentWorkspaceId: x,
97
- searchQuery: j.workspace,
98
- onSearchChange: (e) => K("workspace", e),
99
- onSelect: Y,
100
- searchInputRef: F
94
+ j === "workspace" && /* @__PURE__ */ g(c, {
95
+ filteredWorkspaces: H,
96
+ searchedWorkspaces: K,
97
+ currentWorkspaceId: S,
98
+ searchQuery: N.workspace,
99
+ onSearchChange: (e) => J("workspace", e),
100
+ onSelect: Z,
101
+ searchInputRef: L
101
102
  }),
102
- k === "project" && /* @__PURE__ */ h(c, {
103
- filteredProjects: V,
104
- searchedProjects: G,
105
- currentProjectId: S,
106
- searchQuery: j.project,
107
- onSearchChange: (e) => K("project", e),
108
- onSelect: X,
109
- searchInputRef: F
103
+ j === "project" && /* @__PURE__ */ g(l, {
104
+ filteredProjects: U,
105
+ searchedProjects: q,
106
+ currentProjectId: C,
107
+ searchQuery: N.project,
108
+ onSearchChange: (e) => J("project", e),
109
+ onSelect: ee,
110
+ searchInputRef: L
110
111
  })
111
112
  ]
112
- })] }), Q = /* @__PURE__ */ h(l, {
113
- isOpen: D,
114
- compact: E,
115
- currentOrg: L,
116
- currentWorkspace: R,
117
- currentProject: z,
118
- onToggle: () => O(!D)
113
+ })] }), $ = /* @__PURE__ */ g(u, {
114
+ isOpen: k,
115
+ compact: D,
116
+ currentOrg: z,
117
+ currentWorkspace: B,
118
+ currentProject: V,
119
+ onToggle: () => A(!k)
119
120
  });
120
- return N ? /* @__PURE__ */ g("div", {
121
+ return F ? /* @__PURE__ */ _("div", {
121
122
  className: "relative",
122
- children: [Q, /* @__PURE__ */ h(e, {
123
- open: D,
124
- onOpenChange: O,
125
- children: /* @__PURE__ */ g(t, {
123
+ children: [$, /* @__PURE__ */ g(e, {
124
+ open: k,
125
+ onOpenChange: A,
126
+ children: /* @__PURE__ */ _(t, {
126
127
  side: "bottom",
127
128
  className: "h-[70vh] flex flex-col p-0",
128
- children: [/* @__PURE__ */ h(n, {
129
+ children: [/* @__PURE__ */ g(n, {
129
130
  className: "px-4 pt-4 pb-2 border-b border-[var(--color-border-subtle)]",
130
- children: /* @__PURE__ */ h(r, {
131
+ children: /* @__PURE__ */ g(r, {
131
132
  className: "text-[var(--color-text-primary)]",
132
- children: "Switch Context"
133
+ children: O("contextSwitcher.title", "Switch Context")
133
134
  })
134
- }), /* @__PURE__ */ h("div", {
135
+ }), /* @__PURE__ */ g("div", {
135
136
  className: "flex-1 flex flex-col overflow-hidden",
136
- children: Z()
137
+ children: Q()
137
138
  })]
138
139
  })
139
140
  })]
140
- }) : /* @__PURE__ */ g("div", {
141
+ }) : /* @__PURE__ */ _("div", {
141
142
  className: "relative",
142
- ref: P,
143
- children: [Q, D && /* @__PURE__ */ h("div", {
143
+ ref: I,
144
+ children: [$, k && /* @__PURE__ */ g("div", {
144
145
  className: "absolute right-0 mt-2 w-[calc(100vw-2rem)] sm:w-[26rem] bg-[var(--color-bg-elevated)] border border-[var(--color-border-subtle)] rounded-card shadow-[var(--shadow-elevation-4)] z-50 flex flex-col max-h-[400px] overflow-hidden animate-in fade-in-0 zoom-in-95 slide-in-from-top-2 duration-200",
145
- children: Z()
146
+ children: Q()
146
147
  })]
147
148
  });
148
149
  };
149
150
  //#endregion
150
- export { _ as ContextSwitcher };
151
+ export { v as ContextSwitcher };
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicFooter.d.ts","sourceRoot":"","sources":["../../src/chrome/DynamicFooter.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AA+DzD,MAAM,WAAW,kBAAkB;IACjC,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,kDAAkD;IAClD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,4DAA4D;IAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,EAC5B,WAAW,EACX,WAAW,EACX,OAAO,EACP,OAAkB,EAClB,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,iBAAiB,EAC9B,cAAiC,EACjC,eAAuB,GACxB,EAAE,kBAAkB,2CAiJpB"}
1
+ {"version":3,"file":"DynamicFooter.d.ts","sourceRoot":"","sources":["../../src/chrome/DynamicFooter.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AA4EzD,MAAM,WAAW,kBAAkB;IACjC,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,kDAAkD;IAClD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,4DAA4D;IAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,EAC5B,WAAW,EACX,WAAW,EACX,OAAO,EACP,OAAkB,EAClB,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,iBAAiB,EAC9B,cAAiC,EACjC,eAAuB,GACxB,EAAE,kBAAkB,2CAkKpB"}
@@ -1,15 +1,16 @@
1
1
  import { useGatewayClient as e } from "../shared/graphql/GatewayContext.js";
2
2
  import "../shared-graphql.js";
3
3
  import { useActiveContext as t } from "../shared/providers/shell/ActiveContextProvider.js";
4
- import { DEFAULT_FOOTER_COLUMNS as n, DEFAULT_SOCIAL_LINKS as r, Footer as i } from "./Footer.js";
5
- import { BrandMark as a } from "./BrandMark.js";
6
- import { useEffect as o, useMemo as s, useState as c } from "react";
7
- import { Github as l, Globe as u, Linkedin as d, MessageCircle as f, Twitter as p, Youtube as m } from "lucide-react";
8
- import { jsx as h } from "react/jsx-runtime";
9
- import { gql as g } from "@apollo/client/core";
10
- import { Link as _ } from "react-router";
4
+ import { useI18n as n } from "../shared/providers/shell/I18nProvider.js";
5
+ import { DEFAULT_FOOTER_COLUMNS as r, DEFAULT_SOCIAL_LINKS as i, Footer as a } from "./Footer.js";
6
+ import { BrandMark as o } from "./BrandMark.js";
7
+ import { useEffect as s, useMemo as c, useState as l } from "react";
8
+ import { Github as u, Globe as d, Linkedin as f, MessageCircle as p, Twitter as m, Youtube as h } from "lucide-react";
9
+ import { jsx as g } from "react/jsx-runtime";
10
+ import { gql as _ } from "@apollo/client/core";
11
+ import { Link as v } from "react-router";
11
12
  //#region src/chrome/DynamicFooter.tsx
12
- var v = g`
13
+ var y = _`
13
14
  query GetFooterContentPages($filter: ContentPageFilterInput, $limit: Int) {
14
15
  contentPages(filter: $filter, limit: $limit) {
15
16
  items {
@@ -21,14 +22,14 @@ var v = g`
21
22
  }
22
23
  }
23
24
  }
24
- `, y = g`
25
+ `, b = _`
25
26
  query GetFooterProduct($slug: String!) {
26
27
  platformProductBySlug(slug: $slug) {
27
28
  id
28
29
  socialLinks
29
30
  }
30
31
  }
31
- `, b = {
32
+ `, x = {
32
33
  "privacy-policy": "privacy",
33
34
  "terms-of-service": "terms",
34
35
  "cookie-policy": "cookies",
@@ -39,14 +40,14 @@ var v = g`
39
40
  compliance: "compliance",
40
41
  about: "about",
41
42
  contact: "contact"
42
- }, x = {
43
- twitter: /* @__PURE__ */ h(p, { className: "size-5" }),
44
- x: /* @__PURE__ */ h(p, { className: "size-5" }),
45
- github: /* @__PURE__ */ h(l, { className: "size-5" }),
46
- discord: /* @__PURE__ */ h(f, { className: "size-5" }),
47
- linkedin: /* @__PURE__ */ h(d, { className: "size-5" }),
48
- youtube: /* @__PURE__ */ h(m, { className: "size-5" })
49
- }, S = [
43
+ }, S = {
44
+ twitter: /* @__PURE__ */ g(m, { className: "size-5" }),
45
+ x: /* @__PURE__ */ g(m, { className: "size-5" }),
46
+ github: /* @__PURE__ */ g(u, { className: "size-5" }),
47
+ discord: /* @__PURE__ */ g(p, { className: "size-5" }),
48
+ linkedin: /* @__PURE__ */ g(f, { className: "size-5" }),
49
+ youtube: /* @__PURE__ */ g(h, { className: "size-5" })
50
+ }, C = [
50
51
  "terms-of-service",
51
52
  "privacy-policy",
52
53
  "security",
@@ -56,13 +57,16 @@ var v = g`
56
57
  "sla",
57
58
  "refund-policy"
58
59
  ];
59
- function C({ productSlug: l, productName: d, tagline: f, version: p = "v1.0.0", columns: m, socialLinks: g, legalPageOrder: C = S, deferRemoteData: w = !1 }) {
60
- let { workspaceId: T, projectId: E } = t(), D = e("global"), [O, k] = c(null), [A, j] = c(null);
61
- o(() => {
62
- if (!D || w) return;
60
+ function w(e) {
61
+ return e.trim().replace(/[^A-Za-z0-9 ]/g, "").split(/\s+/).map((e, t) => t === 0 ? e.toLowerCase() : e.charAt(0).toUpperCase() + e.slice(1).toLowerCase()).join("");
62
+ }
63
+ function T({ productSlug: u, productName: f, tagline: p, version: m = "v1.0.0", columns: h, socialLinks: _, legalPageOrder: T = C, deferRemoteData: E = !1 }) {
64
+ let { workspaceId: D, projectId: O } = t(), k = e("global"), { t: A } = n(), [j, M] = l(null), [N, P] = l(null);
65
+ s(() => {
66
+ if (!k || E) return;
63
67
  let e = !1;
64
- return D.query({
65
- query: v,
68
+ return k.query({
69
+ query: y,
66
70
  variables: {
67
71
  filter: { isPublished: !0 },
68
72
  limit: 50
@@ -71,25 +75,25 @@ function C({ productSlug: l, productName: d, tagline: f, version: p = "v1.0.0",
71
75
  }).then((t) => {
72
76
  let n = t.data;
73
77
  if (e || !n?.contentPages?.items) return;
74
- let r = n.contentPages.items, i = C.map((e) => r.find((t) => t.slug === e)).filter((e) => e != null).map((e) => ({
78
+ let r = n.contentPages.items, i = T.map((e) => r.find((t) => t.slug === e)).filter((e) => e != null).map((e) => ({
75
79
  id: e.slug,
76
80
  label: e.title,
77
- href: `/legal/${b[e.slug] || e.slug}`
81
+ href: `/legal/${x[e.slug] || e.slug}`
78
82
  }));
79
- i.length > 0 && k(i);
83
+ i.length > 0 && M(i);
80
84
  }).catch(() => {}), () => {
81
85
  e = !0;
82
86
  };
83
87
  }, [
84
- w,
85
- D,
86
- C
87
- ]), o(() => {
88
- if (!D || g || w) return;
88
+ E,
89
+ k,
90
+ T
91
+ ]), s(() => {
92
+ if (!k || _ || E) return;
89
93
  let e = !1;
90
- return D.query({
91
- query: y,
92
- variables: { slug: l },
94
+ return k.query({
95
+ query: b,
96
+ variables: { slug: u },
93
97
  fetchPolicy: "cache-first"
94
98
  }).then((t) => {
95
99
  if (e) return;
@@ -99,43 +103,57 @@ function C({ productSlug: l, productName: d, tagline: f, version: p = "v1.0.0",
99
103
  id: e,
100
104
  label: e.charAt(0).toUpperCase() + e.slice(1),
101
105
  href: t,
102
- icon: x[e.toLowerCase()] || /* @__PURE__ */ h(u, { className: "size-5" })
106
+ icon: S[e.toLowerCase()] || /* @__PURE__ */ g(d, { className: "size-5" })
103
107
  }));
104
- r.length > 0 && j(r);
108
+ r.length > 0 && P(r);
105
109
  }).catch(() => {}), () => {
106
110
  e = !0;
107
111
  };
108
112
  }, [
109
- g,
110
- w,
111
- D,
112
- l
113
+ _,
114
+ E,
115
+ k,
116
+ u
113
117
  ]);
114
- let M = s(() => {
115
- let e = m ?? n;
116
- return O ? e.map((e) => e.title === "Legal" ? {
118
+ let F = c(() => {
119
+ let e = h ?? r, t = j ? e.map((e) => e.title === "Legal" ? {
117
120
  ...e,
118
- links: O
119
- } : e) : e;
120
- }, [O, m]);
121
- return /* @__PURE__ */ h(i, {
122
- logo: /* @__PURE__ */ h(a, { size: "sidenav" }),
123
- productName: d,
124
- tagline: f,
125
- columns: M,
126
- socialLinks: g ?? A ?? r,
127
- version: p,
121
+ links: j
122
+ } : e) : e, n = (e, t) => {
123
+ let n = A(e);
124
+ return n === e ? t : n;
125
+ };
126
+ return t.map((e) => ({
127
+ ...e,
128
+ title: n(`footer.columns.${w(e.title)}`, e.title),
129
+ links: e.links.map((e) => e.brand ? e : {
130
+ ...e,
131
+ label: n(`footer.links.${e.id}`, e.label)
132
+ })
133
+ }));
134
+ }, [
135
+ j,
136
+ h,
137
+ A
138
+ ]);
139
+ return /* @__PURE__ */ g(a, {
140
+ logo: /* @__PURE__ */ g(o, { size: "sidenav" }),
141
+ productName: f,
142
+ tagline: p,
143
+ columns: F,
144
+ socialLinks: _ ?? N ?? i,
145
+ version: m,
128
146
  context: {
129
- workspace: T ?? void 0,
130
- project: E ?? void 0
147
+ workspace: D ?? void 0,
148
+ project: O ?? void 0
131
149
  },
132
- renderLink: ({ href: e, external: t, children: n, className: r }) => t ? /* @__PURE__ */ h("a", {
150
+ renderLink: ({ href: e, external: t, children: n, className: r }) => t ? /* @__PURE__ */ g("a", {
133
151
  href: e,
134
152
  target: "_blank",
135
153
  rel: "noopener noreferrer",
136
154
  className: r,
137
155
  children: n
138
- }) : /* @__PURE__ */ h(_, {
156
+ }) : /* @__PURE__ */ g(v, {
139
157
  to: e,
140
158
  className: r,
141
159
  children: n
@@ -143,4 +161,4 @@ function C({ productSlug: l, productName: d, tagline: f, version: p = "v1.0.0",
143
161
  });
144
162
  }
145
163
  //#endregion
146
- export { C as DynamicFooter };
164
+ export { T as DynamicFooter };
@@ -11,6 +11,12 @@ export interface FooterLink {
11
11
  href: string;
12
12
  /** Whether it's an external link */
13
13
  external?: boolean;
14
+ /**
15
+ * Brand/product name — never translated. `DynamicFooter` runs every other
16
+ * label through the i18n service; names like "FluidGrids" or "Botlit" must
17
+ * render identically in every locale.
18
+ */
19
+ brand?: boolean;
14
20
  /** Custom icon */
15
21
  icon?: ReactNode;
16
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../src/chrome/Footer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAYjE;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU;IACV,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,2BAA2B;IAC3B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,yBAAyB;IACzB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;KACnC,CAAC;IACF,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,SAAS,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,KAAK,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,YAAY,EAgDhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAAU,EAmB5C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CA+IlC,CAAC"}
1
+ {"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../src/chrome/Footer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAK3C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAYjE;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU;IACV,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,2BAA2B;IAC3B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,yBAAyB;IACzB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;KACnC,CAAC;IACF,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,SAAS,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,KAAK,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,YAAY,EAwDhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAAU,EAmB5C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CAwJlC,CAAC"}