@burdenoff/fe-libs 2026.522.4 → 2026.524.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ContextConversationWidget.d.ts","sourceRoot":"","sources":["../../../src/shared/components/ContextConversationWidget.tsx"],"names":[],"mappings":"AAuWA,MAAM,WAAW,8BAA8B;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA0GD,wBAAgB,yBAAyB,CAAC,EACxC,SAAS,EACT,SAAS,EAAE,iBAAiB,GAC7B,EAAE,8BAA8B,kDAu3BhC"}
1
+ {"version":3,"file":"ContextConversationWidget.d.ts","sourceRoot":"","sources":["../../../src/shared/components/ContextConversationWidget.tsx"],"names":[],"mappings":"AAuWA,MAAM,WAAW,8BAA8B;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA0GD,wBAAgB,yBAAyB,CAAC,EACxC,SAAS,EACT,SAAS,EAAE,iBAAiB,GAC7B,EAAE,8BAA8B,kDA23BhC"}
@@ -517,7 +517,7 @@ function x({ className: p, widgetKey: y }) {
517
517
  children: w.entityType && w.entityId ? `${w.entityType} · ${w.entityId}` : w.pagePath
518
518
  })]
519
519
  }), /* @__PURE__ */ f("div", {
520
- className: "flex flex-wrap items-center gap-2",
520
+ className: "flex flex-wrap items-center gap-2 md:justify-end",
521
521
  children: [
522
522
  /* @__PURE__ */ f(e, {
523
523
  type: "button",
@@ -535,6 +535,7 @@ function x({ className: p, widgetKey: y }) {
535
535
  }),
536
536
  /* @__PURE__ */ d(e, {
537
537
  type: "button",
538
+ "data-tour": "page-discussion-open-full",
538
539
  variant: "outline",
539
540
  size: "sm",
540
541
  onClick: () => {
@@ -586,7 +587,7 @@ function x({ className: p, widgetKey: y }) {
586
587
  return /* @__PURE__ */ d("div", {
587
588
  className: `flex ${n ? "justify-end" : "justify-start"}`,
588
589
  children: /* @__PURE__ */ f("div", {
589
- className: `w-full max-w-[92%] rounded-xl border px-3 py-2 text-sm shadow-sm ${n ? "border-primary/20 bg-primary/5" : "border-border bg-background"}`,
590
+ className: `w-full max-w-full rounded-xl border px-3 py-2 text-sm shadow-sm sm:max-w-[92%] ${n ? "border-primary/20 bg-primary/5" : "border-border bg-background"}`,
590
591
  children: [
591
592
  /* @__PURE__ */ f("div", {
592
593
  className: "mb-1 flex items-center justify-between gap-2",
@@ -607,7 +608,7 @@ function x({ className: p, widgetKey: y }) {
607
608
  let n = t.reactions.filter((t) => t.emoji === e).length;
608
609
  return /* @__PURE__ */ f("button", {
609
610
  type: "button",
610
- className: `rounded-full px-2 py-1 text-xs transition-colors ${t.reactions.some((t) => t.emoji === e && t.userId === G) ? "bg-primary text-primary-foreground" : "bg-muted text-muted-foreground hover:bg-muted/80"}`,
611
+ className: `min-h-9 rounded-full px-2.5 py-1 text-xs transition-colors ${t.reactions.some((t) => t.emoji === e && t.userId === G) ? "bg-primary text-primary-foreground" : "bg-muted text-muted-foreground hover:bg-muted/80"}`,
611
612
  onClick: () => void mt(t, e),
612
613
  children: [e, n > 0 ? ` ${n}` : ""]
613
614
  }, `${t.id}-${e}`);
@@ -621,7 +622,7 @@ function x({ className: p, widgetKey: y }) {
621
622
  onChange: (e) => R(e.target.value),
622
623
  rows: 3
623
624
  }), /* @__PURE__ */ f("div", {
624
- className: "flex items-center justify-end gap-2",
625
+ className: "flex flex-wrap items-center justify-end gap-2",
625
626
  children: [/* @__PURE__ */ d(e, {
626
627
  type: "button",
627
628
  variant: "outline",
@@ -747,6 +748,7 @@ function x({ className: p, widgetKey: y }) {
747
748
  }, e.fileId))
748
749
  }) : null,
749
750
  /* @__PURE__ */ f("div", {
751
+ "data-tour": "page-discussion-composer",
750
752
  className: "space-y-3 rounded-lg border border-border bg-background/80 p-3",
751
753
  children: [
752
754
  /* @__PURE__ */ d(te, {
@@ -14,28 +14,6 @@
14
14
  export declare function shouldSkipSSORedirect(returnPath?: string): boolean;
15
15
  export declare function hasRecentSSORedirectAttempt(relayOrigin: string, returnTo: string): boolean;
16
16
  export declare function markSSORedirectAttempt(relayOrigin: string, returnTo: string): void;
17
- /**
18
- * Check if an SSO redirect should be initiated.
19
- * Returns the redirect URL if SSO should happen, null otherwise.
20
- *
21
- * Call this from ProtectedRoute or LandingOrDashboardRedirect
22
- * before showing login page.
23
- *
24
- * Two discovery paths:
25
- * 1. `bf-sso` cookie on the current origin pointing at a different
26
- * product origin (set during a previous same-origin login). Used when
27
- * the cookie can travel cross-subdomain (e.g. *.local.burdenoff.com).
28
- * Falls through silently otherwise.
29
- * 2. Central bridge host (alphaapp/app.burdenoff.com) fallback: cross
30
- * eTLD+1 product hostnames can't share cookies with each other, so we
31
- * optimistically redirect to the bridge host's `/auth/sso-relay`. The
32
- * bridge host reads ITS own (first-party, unpartitioned) localStorage
33
- * — which receives tokens from every product login via the deposit
34
- * flow — and bounces them back to the original product origin via
35
- * `/auth/sso-callback#sso=...`. On no central session the bridge
36
- * bounces back with `?sso_failed=1` and `isAutoSSOSuppressed` keeps
37
- * the user on the login screen.
38
- */
39
17
  export declare function getSSORedirectUrl(returnPath?: string): string | null;
40
18
  /**
41
19
  * Check if Single Logout (SLO) has occurred on another shell.
@@ -1 +1 @@
1
- {"version":3,"file":"SSORedirectGuard.d.ts","sourceRoot":"","sources":["../../../src/shared/components/SSORedirectGuard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAqGH,wBAAgB,qBAAqB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAGlE;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAM1F;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAiBlF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqCpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CA6BlC;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyC9F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CA6B1C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,4CAMjC"}
1
+ {"version":3,"file":"SSORedirectGuard.d.ts","sourceRoot":"","sources":["../../../src/shared/components/SSORedirectGuard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAqGH,wBAAgB,qBAAqB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAGlE;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAM1F;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAiBlF;AAoDD,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsCpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CA6BlC;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyC9F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CA6B1C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,4CAMjC"}
@@ -76,7 +76,16 @@ function y(e, t) {
76
76
  sessionStorage.setItem(s, JSON.stringify(e));
77
77
  } catch {}
78
78
  }
79
- function b(t) {
79
+ function b() {
80
+ if (typeof window > "u") return !1;
81
+ try {
82
+ let e = window.Capacitor;
83
+ if (typeof e?.isNativePlatform == "function" && e.isNativePlatform()) return !0;
84
+ } catch {}
85
+ return !!(typeof navigator < "u" && /Electron/i.test(navigator.userAgent || ""));
86
+ }
87
+ function x(t) {
88
+ if (b()) return null;
80
89
  try {
81
90
  let n = u(t);
82
91
  if (!n || p(n)) return null;
@@ -94,16 +103,16 @@ function b(t) {
94
103
  return null;
95
104
  }
96
105
  }
97
- function x() {
106
+ function S() {
98
107
  try {
99
108
  if (a()) return !1;
100
109
  let e = sessionStorage.getItem("bf-active-profile");
101
- return !e || !localStorage.getItem(`bf-p-${e}-tokens`) || !r() ? !1 : (C(), !0);
110
+ return !e || !localStorage.getItem(`bf-p-${e}-tokens`) || !r() ? !1 : (w(), !0);
102
111
  } catch {
103
112
  return !1;
104
113
  }
105
114
  }
106
- async function S(e, t) {
115
+ async function C(e, t) {
107
116
  try {
108
117
  let n = await fetch(e, {
109
118
  method: "POST",
@@ -120,7 +129,7 @@ async function S(e, t) {
120
129
  return !1;
121
130
  }
122
131
  }
123
- function C() {
132
+ function w() {
124
133
  try {
125
134
  let e = localStorage.getItem("bf-profiles");
126
135
  if (e) {
@@ -131,11 +140,11 @@ function C() {
131
140
  localStorage.removeItem("bf-profiles"), localStorage.removeItem("auth-storage"), sessionStorage.removeItem("bf-active-profile"), t(), n(), window.dispatchEvent(new Event("bf-auth-state-cleared")), window.dispatchEvent(new Event("bf-profile-storage-change"));
132
141
  } catch {}
133
142
  }
134
- function w() {
143
+ function T() {
135
144
  return /* @__PURE__ */ o("div", {
136
145
  className: "flex items-center justify-center min-h-screen",
137
146
  children: /* @__PURE__ */ o("div", { className: "animate-spin rounded-full h-8 w-8 border-2 border-action-primary-bg border-t-transparent" })
138
147
  });
139
148
  }
140
149
  //#endregion
141
- export { w as SSORedirectSpinner, S as checkRemoteSLO, x as checkSLO, C as clearLocalAuthState, b as getSSORedirectUrl, v as hasRecentSSORedirectAttempt, y as markSSORedirectAttempt, _ as shouldSkipSSORedirect };
150
+ export { T as SSORedirectSpinner, C as checkRemoteSLO, S as checkSLO, w as clearLocalAuthState, x as getSSORedirectUrl, v as hasRecentSSORedirectAttempt, y as markSSORedirectAttempt, _ as shouldSkipSSORedirect };
@@ -1 +1 @@
1
- {"version":3,"file":"routeCatalog.d.ts","sourceRoot":"","sources":["../../../src/shared/tours/routeCatalog.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACnC;AAqLD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,OAAO,EAAE,SAAS,qBAAqB,EAAE,GACxC,MAAM,IAAI,CA+BZ;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,qBAAqB,EAAE,CAQjG;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,qBAAqB,EAAE,CAejG;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,mBAAmB,EAAE,CAWvB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAuBjF;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAqBT;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAK/F"}
1
+ {"version":3,"file":"routeCatalog.d.ts","sourceRoot":"","sources":["../../../src/shared/tours/routeCatalog.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACnC;AAgQD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,OAAO,EAAE,SAAS,qBAAqB,EAAE,GACxC,MAAM,IAAI,CA+BZ;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,qBAAqB,EAAE,CAQjG;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,qBAAqB,EAAE,CAejG;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,mBAAmB,EAAE,CAWvB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAuBjF;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAqBT;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAK/F"}
@@ -155,6 +155,81 @@ var e = { vibecontrols: [
155
155
  pageLabel: "Sandbox",
156
156
  path: "/sandbox",
157
157
  isModuleHome: !0
158
+ },
159
+ {
160
+ productId: "vibecontrols",
161
+ moduleId: "support",
162
+ moduleLabel: "Support",
163
+ pageId: "tickets",
164
+ pageLabel: "Tickets",
165
+ path: "/support/tickets",
166
+ isModuleHome: !0
167
+ },
168
+ {
169
+ productId: "vibecontrols",
170
+ moduleId: "support",
171
+ moduleLabel: "Support",
172
+ pageId: "knowledge-base",
173
+ pageLabel: "Knowledge Base",
174
+ path: "/support/kb"
175
+ },
176
+ {
177
+ productId: "vibecontrols",
178
+ moduleId: "notifications",
179
+ moduleLabel: "Notifications",
180
+ pageId: "center",
181
+ pageLabel: "Notification Center",
182
+ path: "/notifications/center",
183
+ isModuleHome: !0
184
+ },
185
+ {
186
+ productId: "vibecontrols",
187
+ moduleId: "notifications",
188
+ moduleLabel: "Notifications",
189
+ pageId: "history",
190
+ pageLabel: "History",
191
+ path: "/notifications/history"
192
+ },
193
+ {
194
+ productId: "vibecontrols",
195
+ moduleId: "notifications",
196
+ moduleLabel: "Notifications",
197
+ pageId: "preferences",
198
+ pageLabel: "Preferences",
199
+ path: "/notifications/preferences"
200
+ },
201
+ {
202
+ productId: "vibecontrols",
203
+ moduleId: "conversations",
204
+ moduleLabel: "Conversations",
205
+ pageId: "home",
206
+ pageLabel: "All Conversations",
207
+ path: "/conversations",
208
+ isModuleHome: !0
209
+ },
210
+ {
211
+ productId: "vibecontrols",
212
+ moduleId: "conversations",
213
+ moduleLabel: "Conversations",
214
+ pageId: "list",
215
+ pageLabel: "Conversation List",
216
+ path: "/conversations/list"
217
+ },
218
+ {
219
+ productId: "vibecontrols",
220
+ moduleId: "conversations",
221
+ moduleLabel: "Conversations",
222
+ pageId: "new",
223
+ pageLabel: "New Conversation",
224
+ path: "/conversations/new"
225
+ },
226
+ {
227
+ productId: "vibecontrols",
228
+ moduleId: "conversations",
229
+ moduleLabel: "Conversations",
230
+ pageId: "settings",
231
+ pageLabel: "Settings",
232
+ path: "/conversations/settings"
158
233
  }
159
234
  ] }, t = /* @__PURE__ */ new Map();
160
235
  function n(e) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fe-libs",
3
- "version": "2026.522.4",
3
+ "version": "2026.524.1",
4
4
  "description": "Burdenoff frontend primitives and domain libraries",
5
5
  "type": "module",
6
6
  "imports": {