@burdenoff/fe-libs 2026.1007.4 → 2026.1007.6
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.
- package/dist/chrome/AutoBreadcrumbs.d.ts.map +1 -1
- package/dist/chrome/AutoBreadcrumbs.js +65 -76
- package/dist/chrome/Breadcrumb.d.ts.map +1 -1
- package/dist/chrome/Breadcrumbs.d.ts.map +1 -1
- package/dist/chrome/Breadcrumbs.js +47 -46
- package/dist/chrome/ContextSwitcher.js +86 -86
- package/dist/chrome/HeaderBar.d.ts.map +1 -1
- package/dist/chrome/HeaderBar.js +111 -107
- package/dist/chrome/HeaderThemeSwitcher.d.ts.map +1 -1
- package/dist/chrome/HeaderThemeSwitcher.js +46 -45
- package/dist/chrome/LanguageSwitcher.js +4 -4
- package/dist/chrome/MobileTabBar.js +4 -4
- package/dist/chrome/PageHeader.d.ts.map +1 -1
- package/dist/chrome/PageHeader.js +32 -30
- package/dist/chrome/PersonaSurfaceControls.js +8 -8
- package/dist/chrome/ProductSideNav.js +6 -6
- package/dist/chrome/ProfileSwitcher.d.ts.map +1 -1
- package/dist/chrome/ProfileSwitcher.js +89 -88
- package/dist/chrome/SideNavigation.js +4 -4
- package/dist/chrome/Tabs.d.ts.map +1 -1
- package/dist/chrome/Tabs.js +30 -29
- package/dist/chrome/breadcrumbLabel.d.ts +10 -0
- package/dist/chrome/breadcrumbLabel.d.ts.map +1 -0
- package/dist/chrome/breadcrumbLabel.js +31 -0
- package/dist/chrome/contextSwitcher/TriggerButton.d.ts.map +1 -1
- package/dist/chrome/contextSwitcher/TriggerButton.js +40 -36
- package/dist/chrome/notificationCenter/BellButton.d.ts.map +1 -1
- package/dist/chrome/notificationCenter/BellButton.js +29 -25
- package/dist/chrome/shellLabelManifest.d.ts +27 -0
- package/dist/chrome/shellLabelManifest.d.ts.map +1 -0
- package/dist/chrome/sideNavigation/SidebarHeader.d.ts.map +1 -1
- package/dist/chrome/sideNavigation/SidebarHeader.js +23 -22
- package/dist/shared/assistant/api.d.ts +11 -0
- package/dist/shared/assistant/api.d.ts.map +1 -1
- package/dist/shared/assistant/api.js +6 -2
- package/dist/shared/assistant/appControls/languageReply.d.ts +6 -1
- package/dist/shared/assistant/appControls/languageReply.d.ts.map +1 -1
- package/dist/shared/assistant/conversation.d.ts +14 -0
- package/dist/shared/assistant/conversation.d.ts.map +1 -1
- package/dist/shared/assistant/createSandboxAssistantTransport.d.ts +8 -1
- package/dist/shared/assistant/createSandboxAssistantTransport.d.ts.map +1 -1
- package/dist/shared/assistant/createSandboxAssistantTransport.js +70 -51
- package/dist/shared/assistant/history/historyMapping.d.ts.map +1 -1
- package/dist/shared/assistant/history/historyMapping.js +19 -12
- package/dist/shared/assistant/i18nManifest.d.ts +26 -5
- package/dist/shared/assistant/i18nManifest.d.ts.map +1 -1
- package/dist/shared/assistant/i18nManifest.js +36 -22
- package/dist/shared/assistant/index.d.ts +7 -0
- package/dist/shared/assistant/index.d.ts.map +1 -1
- package/dist/shared/assistant/localUiCommandCopy.d.ts +23 -0
- package/dist/shared/assistant/localUiCommandCopy.d.ts.map +1 -1
- package/dist/shared/assistant/localUiCommandCopy.js +60 -23
- package/dist/shared/assistant/localUiCommands.d.ts +29 -0
- package/dist/shared/assistant/localUiCommands.d.ts.map +1 -1
- package/dist/shared/assistant/localUiCommands.js +18 -7
- package/dist/shared/assistant/productCopy.d.ts +78 -0
- package/dist/shared/assistant/productCopy.d.ts.map +1 -0
- package/dist/shared/assistant/productCopy.js +45 -0
- package/dist/shared/assistant/types.d.ts +19 -8
- package/dist/shared/assistant/types.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantChatArea.js +1479 -1140
- package/dist/shared/assistant/ui/AssistantEmptyState.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantEmptyState.js +30 -22
- package/dist/shared/assistant/ui/AssistantHeader.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantHeader.js +46 -45
- package/dist/shared/assistant/ui/AssistantMarkdownRenderer.d.ts +18 -3
- package/dist/shared/assistant/ui/AssistantMarkdownRenderer.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantMarkdownRenderer.js +1 -1
- package/dist/shared/assistant/ui/AssistantMessageItem.d.ts +5 -0
- package/dist/shared/assistant/ui/AssistantMessageItem.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantMessageItem.js +89 -84
- package/dist/shared/assistant/ui/AssistantMessageList.d.ts +5 -0
- package/dist/shared/assistant/ui/AssistantMessageList.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantMessageList.js +26 -25
- package/dist/shared/assistant/ui/AssistantUiOfferLink.d.ts +45 -0
- package/dist/shared/assistant/ui/AssistantUiOfferLink.d.ts.map +1 -0
- package/dist/shared/assistant/ui/AssistantUiOfferLink.js +56 -0
- package/dist/shared/assistant/ui/assistantOverlayState.d.ts +9 -0
- package/dist/shared/assistant/ui/assistantOverlayState.d.ts.map +1 -1
- package/dist/shared/assistant/ui/assistantOverlayState.js +37 -28
- package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.d.ts.map +1 -1
- package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.js +1 -1
- package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts +5 -0
- package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts.map +1 -1
- package/dist/shared/assistant/ui/voice/AssistantVoiceSession.js +12 -11
- package/dist/shared/assistant/ui/voice/VoiceConversationView.d.ts +6 -1
- package/dist/shared/assistant/ui/voice/VoiceConversationView.d.ts.map +1 -1
- package/dist/shared/assistant/ui/voice/VoiceConversationView.js +7 -7
- package/dist/shared/assistant/ui/voice/VoiceTranscriptDrawer.d.ts +6 -1
- package/dist/shared/assistant/ui/voice/VoiceTranscriptDrawer.d.ts.map +1 -1
- package/dist/shared/assistant/ui/voice/VoiceTranscriptDrawer.js +15 -12
- package/dist/shared/assistant/uiActions/actOnResolve.d.ts +108 -0
- package/dist/shared/assistant/uiActions/actOnResolve.d.ts.map +1 -0
- package/dist/shared/assistant/uiActions/actOnResolve.js +51 -0
- package/dist/shared/assistant/uiActions/linkContext.d.ts +29 -0
- package/dist/shared/assistant/uiActions/linkContext.d.ts.map +1 -1
- package/dist/shared/assistant/uiActions/linkContext.js +37 -10
- package/dist/shared/assistant/uiActions/navIntent.d.ts +58 -0
- package/dist/shared/assistant/uiActions/navIntent.d.ts.map +1 -0
- package/dist/shared/assistant/uiActions/navIntent.js +79 -0
- package/dist/shared/assistant/uiActions/navigateAction.d.ts +6 -1
- package/dist/shared/assistant/uiActions/navigateAction.d.ts.map +1 -1
- package/dist/shared/assistant/uiActions/navigateAction.js +18 -14
- package/dist/shared/assistant/uiActions/navigationOutcome.d.ts +16 -2
- package/dist/shared/assistant/uiActions/navigationOutcome.d.ts.map +1 -1
- package/dist/shared/assistant/uiActions/navigationOutcome.js +6 -2
- package/dist/shared/assistant/uiActions/offerYesOnSurface.d.ts +39 -0
- package/dist/shared/assistant/uiActions/offerYesOnSurface.d.ts.map +1 -0
- package/dist/shared/assistant/uiActions/offerYesOnSurface.js +34 -0
- package/dist/shared/assistant/uiActions/uiCatalogue.d.ts +14 -0
- package/dist/shared/assistant/uiActions/uiCatalogue.d.ts.map +1 -1
- package/dist/shared/assistant/uiActions/uiCatalogue.js +23 -3
- package/dist/shared/assistant/uiActions/uiOffers.d.ts +249 -0
- package/dist/shared/assistant/uiActions/uiOffers.d.ts.map +1 -0
- package/dist/shared/assistant/uiActions/uiOffers.js +195 -0
- package/dist/shared/assistant/writeProposals.d.ts +6 -0
- package/dist/shared/assistant/writeProposals.d.ts.map +1 -1
- package/dist/shared/assistant/writeReplyBinder.d.ts +40 -0
- package/dist/shared/assistant/writeReplyBinder.d.ts.map +1 -1
- package/dist/shared/assistant/writeReplyBinder.js +100 -83
- package/dist/shared/assistant/writeReplySend.d.ts +14 -0
- package/dist/shared/assistant/writeReplySend.d.ts.map +1 -1
- package/dist/shared/assistant/writeReplySend.js +32 -29
- package/dist/shared/components/ContextConversationWidget.js +1 -1
- package/dist/shared/events/sinks/RybbitSink.d.ts.map +1 -1
- package/dist/shared/events/sinks/RybbitSink.js +66 -69
- package/dist/shared/hooks/index.d.ts +2 -0
- package/dist/shared/hooks/index.d.ts.map +1 -1
- package/dist/shared/navigation/unsavedChanges.d.ts +83 -0
- package/dist/shared/navigation/unsavedChanges.d.ts.map +1 -0
- package/dist/shared/navigation/unsavedChanges.js +46 -0
- package/dist/shared/providers/AppShellProvider.d.ts +17 -0
- package/dist/shared/providers/AppShellProvider.d.ts.map +1 -1
- package/dist/shared/providers/AppShellProvider.js +188 -180
- package/dist/shared/providers/shell/I18nProvider.d.ts +92 -4
- package/dist/shared/providers/shell/I18nProvider.d.ts.map +1 -1
- package/dist/shared/providers/shell/I18nProvider.js +187 -79
- package/dist/shared/providers/shell/ProfileI18nBridge.d.ts +18 -2
- package/dist/shared/providers/shell/ProfileI18nBridge.d.ts.map +1 -1
- package/dist/shared/providers/shell/ProfileI18nBridge.js +55 -41
- package/dist/shared/providers/shell/directionMode.d.ts +25 -0
- package/dist/shared/providers/shell/directionMode.d.ts.map +1 -0
- package/dist/shared/providers/shell/directionMode.js +34 -0
- package/dist/shared/providers/shell/index.d.ts +4 -2
- package/dist/shared/providers/shell/index.d.ts.map +1 -1
- package/dist/shared/providers/shell/translationLayers.d.ts +30 -0
- package/dist/shared/providers/shell/translationLayers.d.ts.map +1 -0
- package/dist/shared/providers/shell/translationLayers.js +35 -0
- package/dist/shared/providers/shell/translationStore.d.ts +55 -0
- package/dist/shared/providers/shell/translationStore.d.ts.map +1 -0
- package/dist/shared/providers/shell/translationStore.js +100 -0
- package/dist/shared/providers/shell/useShellLabel.d.ts +13 -1
- package/dist/shared/providers/shell/useShellLabel.d.ts.map +1 -1
- package/dist/shared/providers/shell/useShellLabel.js +10 -9
- package/dist/shared-assistant.js +244 -237
- package/dist/shared-hooks.js +10 -9
- package/dist/shared-providers-shell.js +20 -19
- package/dist/shared.js +20 -19
- package/dist/ui/boff-ui2.d.ts.map +1 -1
- package/dist/ui/cta-overflow-menu.d.ts.map +1 -1
- package/dist/ui/cta-overflow-menu.js +20 -18
- package/dist/ui/guidance.d.ts +1 -1
- package/dist/ui/guidance.d.ts.map +1 -1
- package/dist/ui/guidance.js +53 -52
- package/package.json +3 -2
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { useShellLabel as e } from "../../providers/shell/useShellLabel.js";
|
|
3
|
+
import { useEventBus as t } from "../../../shared-events.js";
|
|
4
|
+
import { useEffect as n, useRef as r, useState as i } from "react";
|
|
5
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
5
6
|
//#region src/shared/events/sinks/RybbitSink.tsx
|
|
6
|
-
var
|
|
7
|
+
var s = /* @__PURE__ */ "nav.route.changed,auth.signed_in,auth.signed_out,support.ticket.created,support.ticket.closed,support.ticket.reopened,support.kb.article_rated,notification.item.opened,notification.preference.updated,notification.admin.sent,notification.template.saved,notification.schedule.updated,bigconsole.dashboard.import_clicked,bigconsole.dashboard.imported,bigconsole.dashboard.share_clicked,bigconsole.dashboard.shared,bigconsole.data_sink.import_clicked,bigconsole.data_sink.imported,bigconsole.widget.create_clicked,bigconsole.widget.created,bigconsole.widget.duplicate_clicked,bigconsole.widget.duplicated,bigconsole.ai.generate_clicked,bigconsole.ai.dashboard_generated,bigconsole.ai.create_dashboard_clicked,bigconsole.ai.dashboard_created".split(","), c = /(token|password|secret|authorization|cookie|session|email|name|stack|message|subject|description|query|search|prompt|formula|reason|body|content)/i, l = /(^id$|Id$|_id$|_ID$)/, u = [
|
|
7
8
|
"ticketId",
|
|
8
9
|
"categoryId",
|
|
9
10
|
"workspaceId"
|
|
10
|
-
],
|
|
11
|
-
"support.ticket.created":
|
|
12
|
-
"support.ticket.closed":
|
|
13
|
-
"support.ticket.reopened":
|
|
11
|
+
], d = ["workspaceId"], f = {
|
|
12
|
+
"support.ticket.created": u,
|
|
13
|
+
"support.ticket.closed": u,
|
|
14
|
+
"support.ticket.reopened": u,
|
|
14
15
|
"support.kb.article_rated": ["articleId"],
|
|
15
16
|
"bigconsole.dashboard.imported": ["dashboardId"],
|
|
16
17
|
"bigconsole.dashboard.share_clicked": ["dashboardId"],
|
|
@@ -36,54 +37,54 @@ var o = /* @__PURE__ */ "nav.route.changed,auth.signed_in,auth.signed_out,suppor
|
|
|
36
37
|
"bigconsole.ai.dashboard_generated": ["generationId"],
|
|
37
38
|
"bigconsole.ai.create_dashboard_clicked": ["generationId"],
|
|
38
39
|
"bigconsole.ai.dashboard_created": ["dashboardId", "generationId"],
|
|
39
|
-
"healthybowl.farm.created":
|
|
40
|
-
"healthybowl.crop.created":
|
|
41
|
-
"healthybowl.crop.updated":
|
|
42
|
-
"healthybowl.harvest.recorded":
|
|
43
|
-
},
|
|
40
|
+
"healthybowl.farm.created": d,
|
|
41
|
+
"healthybowl.crop.created": d,
|
|
42
|
+
"healthybowl.crop.updated": d,
|
|
43
|
+
"healthybowl.harvest.recorded": d
|
|
44
|
+
}, p = {
|
|
44
45
|
"auth.signed_out": ["reason"],
|
|
45
46
|
"psw.search.performed": ["queryLength"]
|
|
46
|
-
},
|
|
47
|
-
function
|
|
47
|
+
}, m = {}, h = "bf-analytics-consent", g = "burdenoff:analytics-consent";
|
|
48
|
+
function _() {
|
|
48
49
|
return navigator.globalPrivacyControl === !0;
|
|
49
50
|
}
|
|
50
|
-
function
|
|
51
|
+
function v() {
|
|
51
52
|
if (typeof window > "u") return null;
|
|
52
|
-
let e = window.localStorage.getItem(
|
|
53
|
+
let e = window.localStorage.getItem(h);
|
|
53
54
|
return e === "granted" || e === "denied" ? e : null;
|
|
54
55
|
}
|
|
55
|
-
function
|
|
56
|
-
return typeof window > "u" ||
|
|
56
|
+
function y() {
|
|
57
|
+
return typeof window > "u" || _() ? !1 : v() === "granted";
|
|
57
58
|
}
|
|
58
|
-
function
|
|
59
|
-
typeof window > "u" || (window.localStorage.setItem(
|
|
59
|
+
function b(e) {
|
|
60
|
+
typeof window > "u" || (window.localStorage.setItem(h, e ? "granted" : "denied"), window.dispatchEvent(new CustomEvent(g, { detail: { granted: e } })));
|
|
60
61
|
}
|
|
61
|
-
function
|
|
62
|
+
function x() {
|
|
62
63
|
let e = window;
|
|
63
64
|
return navigator.doNotTrack === "1" || e.doNotTrack === "1";
|
|
64
65
|
}
|
|
65
|
-
function
|
|
66
|
+
function S(e) {
|
|
66
67
|
let t = 2166136261;
|
|
67
68
|
for (let n = 0; n < e.length; n += 1) t ^= e.charCodeAt(n), t = Math.imul(t, 16777619);
|
|
68
69
|
return `u_${(t >>> 0).toString(16).padStart(8, "0")}`;
|
|
69
70
|
}
|
|
70
|
-
async function
|
|
71
|
+
async function C(e) {
|
|
71
72
|
if (crypto.subtle) {
|
|
72
73
|
let t = new TextEncoder().encode(e), n = await crypto.subtle.digest("SHA-256", t);
|
|
73
74
|
return Array.from(new Uint8Array(n), (e) => e.toString(16).padStart(2, "0")).join("");
|
|
74
75
|
}
|
|
75
|
-
return
|
|
76
|
-
}
|
|
77
|
-
function C(e, t) {
|
|
78
|
-
return s.test(e) ? !(f[t] ?? []).includes(e) : c.test(e) ? !(d[t] ?? []).includes(e) : !1;
|
|
76
|
+
return S(e);
|
|
79
77
|
}
|
|
80
78
|
function w(e, t) {
|
|
79
|
+
return c.test(e) ? !(p[t] ?? []).includes(e) : l.test(e) ? !(f[t] ?? []).includes(e) : !1;
|
|
80
|
+
}
|
|
81
|
+
function T(e, t) {
|
|
81
82
|
if (!e || typeof e != "object" || Array.isArray(e)) return {};
|
|
82
83
|
let n = {};
|
|
83
|
-
for (let [r, i] of Object.entries(e))
|
|
84
|
+
for (let [r, i] of Object.entries(e)) w(r, t) || (typeof i == "string" || typeof i == "number" || typeof i == "boolean") && (n[r] = i);
|
|
84
85
|
return n;
|
|
85
86
|
}
|
|
86
|
-
function
|
|
87
|
+
function E(e) {
|
|
87
88
|
let t = {};
|
|
88
89
|
for (let [n, r] of Object.entries(e)) {
|
|
89
90
|
let e = {
|
|
@@ -95,39 +96,39 @@ function T(e) {
|
|
|
95
96
|
}
|
|
96
97
|
return t;
|
|
97
98
|
}
|
|
98
|
-
function
|
|
99
|
-
let u =
|
|
100
|
-
return
|
|
101
|
-
let e = () =>
|
|
102
|
-
t.key ===
|
|
99
|
+
function D({ siteId: e, scriptUrl: a = "https://app.rybbit.io/api/script.js", rename: o = m, allowlist: c = s, identifyOn: l = "auth.signed_in" }) {
|
|
100
|
+
let u = t(), d = r(!1), [f, p] = i(y);
|
|
101
|
+
return n(() => {
|
|
102
|
+
let e = () => p(y()), t = (t) => {
|
|
103
|
+
t.key === h && e();
|
|
103
104
|
};
|
|
104
|
-
return window.addEventListener(
|
|
105
|
-
window.removeEventListener(
|
|
105
|
+
return window.addEventListener(g, e), window.addEventListener("storage", t), () => {
|
|
106
|
+
window.removeEventListener(g, e), window.removeEventListener("storage", t);
|
|
106
107
|
};
|
|
107
|
-
}, []),
|
|
108
|
-
if (!
|
|
108
|
+
}, []), n(() => {
|
|
109
|
+
if (!e || !f || _() || d.current) return;
|
|
109
110
|
d.current = !0;
|
|
110
|
-
let
|
|
111
|
-
return
|
|
112
|
-
document.head.removeChild(
|
|
111
|
+
let t = document.createElement("script");
|
|
112
|
+
return t.src = a, t.defer = !0, t.dataset.siteId = e, document.head.appendChild(t), () => {
|
|
113
|
+
document.head.removeChild(t);
|
|
113
114
|
};
|
|
114
115
|
}, [
|
|
115
|
-
|
|
116
|
+
e,
|
|
116
117
|
a,
|
|
117
118
|
f
|
|
118
|
-
]),
|
|
119
|
-
if (!(!
|
|
120
|
-
if (
|
|
119
|
+
]), n(() => {
|
|
120
|
+
if (!(!e || !f || _())) return u.onAny((e) => {
|
|
121
|
+
if (x()) return;
|
|
121
122
|
let t = window;
|
|
122
123
|
if (!t.rybbit || !c.includes(e.name)) return;
|
|
123
|
-
let n =
|
|
124
|
+
let n = E({
|
|
124
125
|
route: e.metadata.route.pathname,
|
|
125
126
|
env: e.metadata.app.env,
|
|
126
|
-
...
|
|
127
|
+
...T(e.payload, e.name)
|
|
127
128
|
});
|
|
128
129
|
if (e.name === l) {
|
|
129
130
|
let r = e.payload, i = r?.userId ?? r?.actorId ?? r?.id;
|
|
130
|
-
i &&
|
|
131
|
+
i && C(i).then((e) => {
|
|
131
132
|
t.rybbit?.identify(e, n);
|
|
132
133
|
});
|
|
133
134
|
}
|
|
@@ -135,50 +136,46 @@ function E({ siteId: i, scriptUrl: a = "https://app.rybbit.io/api/script.js", re
|
|
|
135
136
|
t.rybbit.pageview();
|
|
136
137
|
return;
|
|
137
138
|
}
|
|
138
|
-
let r =
|
|
139
|
+
let r = o[e.name] ?? e.name;
|
|
139
140
|
t.rybbit.event(r, n);
|
|
140
141
|
});
|
|
141
142
|
}, [
|
|
142
143
|
u,
|
|
143
|
-
|
|
144
|
+
e,
|
|
144
145
|
c,
|
|
145
146
|
l,
|
|
146
|
-
|
|
147
|
+
o,
|
|
147
148
|
f
|
|
148
149
|
]), null;
|
|
149
150
|
}
|
|
150
|
-
function
|
|
151
|
-
let [
|
|
152
|
-
return !
|
|
151
|
+
function O({ productName: t = "this product" }) {
|
|
152
|
+
let [n, r] = i(() => v() === null), s = e();
|
|
153
|
+
return !n || _() ? null : /* @__PURE__ */ o("aside", {
|
|
153
154
|
className: "fixed bottom-4 left-4 z-[100] w-[calc(100%-2rem)] max-w-sm rounded-xl border border-border-seam bg-bg-surface p-4 text-text-primary shadow-pop",
|
|
154
|
-
"aria-label": "Privacy choices",
|
|
155
|
+
"aria-label": s("privacyConsent.ariaLabel", "Privacy choices"),
|
|
155
156
|
"data-testid": "analytics-consent-banner",
|
|
156
157
|
children: [/* @__PURE__ */ a("p", {
|
|
157
158
|
className: "text-sm",
|
|
158
|
-
children:
|
|
159
|
-
|
|
160
|
-
e,
|
|
161
|
-
"? Essential product operation works either way."
|
|
162
|
-
]
|
|
163
|
-
}), /* @__PURE__ */ a("div", {
|
|
159
|
+
children: s("privacyConsent.message", "Allow optional analytics to help improve {{productName}}? Essential product operation works either way.", { productName: t })
|
|
160
|
+
}), /* @__PURE__ */ o("div", {
|
|
164
161
|
className: "mt-3 flex gap-2",
|
|
165
|
-
children: [/* @__PURE__ */
|
|
162
|
+
children: [/* @__PURE__ */ a("button", {
|
|
166
163
|
type: "button",
|
|
167
164
|
className: "rounded-md border border-border-seam px-3 py-2 text-sm",
|
|
168
165
|
onClick: () => {
|
|
169
|
-
|
|
166
|
+
b(!1), r(!1);
|
|
170
167
|
},
|
|
171
|
-
children: "Reject optional"
|
|
172
|
-
}), /* @__PURE__ */
|
|
168
|
+
children: s("privacyConsent.reject", "Reject optional")
|
|
169
|
+
}), /* @__PURE__ */ a("button", {
|
|
173
170
|
type: "button",
|
|
174
171
|
className: "rounded-md bg-action-primary-bg px-3 py-2 text-sm text-action-primary-text",
|
|
175
172
|
onClick: () => {
|
|
176
|
-
|
|
173
|
+
b(!0), r(!1);
|
|
177
174
|
},
|
|
178
|
-
children: "Allow analytics"
|
|
175
|
+
children: s("privacyConsent.allow", "Allow analytics")
|
|
179
176
|
})]
|
|
180
177
|
})]
|
|
181
178
|
});
|
|
182
179
|
}
|
|
183
180
|
//#endregion
|
|
184
|
-
export {
|
|
181
|
+
export { O as AnalyticsConsentBanner, D as RybbitSink, y as readAnalyticsConsent, v as readAnalyticsConsentChoice, b as setAnalyticsConsent };
|
|
@@ -38,4 +38,6 @@ export type { UseQuotaErrorToastOptions, QuotaExhaustedEventDetail } from './use
|
|
|
38
38
|
export { useUpgradePrompt, publishPlanUsageSnapshot, PLAN_USAGE_SNAPSHOT_EVENT, } from './useUpgradePrompt';
|
|
39
39
|
export type { UseUpgradePromptOptions, UseUpgradePromptResult, PlanUsageEntry, PlanUsageSnapshot, } from './useUpgradePrompt';
|
|
40
40
|
export { useCurrentContextSearchParams, appendContextToPath, } from './useCurrentContextSearchParams';
|
|
41
|
+
export { useUnsavedChanges, listUnsavedChanges, registerUnsavedChange, unsavedChangesBlocking, UNSAVED_CHANGE_LABEL_MAX, } from '../navigation/unsavedChanges';
|
|
42
|
+
export type { UnsavedChange, UseUnsavedChangesOptions, NavigationInitiator, } from '../navigation/unsavedChanges';
|
|
41
43
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAc,MAAM,OAAO,CAAC;AACnC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,oBAAoB,8CAA2D,CAAC;AAE7F;;GAEG;AACH,wBAAgB,uBAAuB,2BAMtC;AAOD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAG9E,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC;AAG1B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,kBAAkB,EAClB,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAGjG,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,EACd,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAc,MAAM,OAAO,CAAC;AACnC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,oBAAoB,8CAA2D,CAAC;AAE7F;;GAEG;AACH,wBAAgB,uBAAuB,2BAMtC;AAOD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAG9E,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC;AAG1B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,kBAAkB,EAClB,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAGjG,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,EACd,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,aAAa,EACb,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ★ BOFF-8060 (N4, C9): the leave-page guard.
|
|
3
|
+
*
|
|
4
|
+
* A page that holds work the person has not saved — an editor with changes, a
|
|
5
|
+
* half-filled form — says so here, in its own words, for as long as it holds
|
|
6
|
+
* it. The assistant reads the list before it moves the person anywhere:
|
|
7
|
+
*
|
|
8
|
+
* - an assistant-initiated navigation (a typed or spoken "take me to…", "go
|
|
9
|
+
* back", "take me there", a "yes" to an offer, act-on-resolve) is REFUSED
|
|
10
|
+
* while anything is listed (`createAssistantNavigate`), and the panel says
|
|
11
|
+
* "You have unsaved changes in {label}. Save or discard them, then ask
|
|
12
|
+
* again." The draft is never lost to the assistant;
|
|
13
|
+
* - act-on-resolve's guard R5 passes only when the list is empty;
|
|
14
|
+
* - the person's own navigation (the sidebar, a link they click, an "Open
|
|
15
|
+
* {page}" link they tap) is not touched: it stays at sidebar parity.
|
|
16
|
+
*
|
|
17
|
+
* Page-scoped: an entry lives exactly as long as the component that registered
|
|
18
|
+
* it is mounted AND reports itself dirty. Unmounting (leaving the page) or
|
|
19
|
+
* going clean (saved, discarded) removes it. Nothing is persisted.
|
|
20
|
+
*
|
|
21
|
+
* ★★ One registry per page, not per copy of this module: a product microfe and
|
|
22
|
+
* the assistant overlay can end up with two copies of fe-libs in one bundle
|
|
23
|
+
* (a local-source plugin, a duplicate install), and a registry held in module
|
|
24
|
+
* scope would then leave the assistant reading an empty list while the editor
|
|
25
|
+
* wrote to the other one. The registry lives on `globalThis` under a
|
|
26
|
+
* registered symbol, so every copy reads and writes the same one.
|
|
27
|
+
*/
|
|
28
|
+
/** One unsaved change: where it is, in the product's own (translated) words. */
|
|
29
|
+
export interface UnsavedChange {
|
|
30
|
+
/** Stable id of what holds the change, e.g. `dashboard-editor`. */
|
|
31
|
+
id: string;
|
|
32
|
+
/** What the person calls it, e.g. "the dashboard editor". Shown in the reply. */
|
|
33
|
+
label: string;
|
|
34
|
+
}
|
|
35
|
+
export interface UseUnsavedChangesOptions {
|
|
36
|
+
/** Stable id of what holds the change. Two registrations with one id are listed once. */
|
|
37
|
+
id: string;
|
|
38
|
+
/** What the person calls it, translated by the product. */
|
|
39
|
+
label: string;
|
|
40
|
+
/** Does it hold unsaved changes right now? */
|
|
41
|
+
dirty: boolean;
|
|
42
|
+
}
|
|
43
|
+
/** Longest label kept: it is quoted in a one-line reply. */
|
|
44
|
+
export declare const UNSAVED_CHANGE_LABEL_MAX = 80;
|
|
45
|
+
/**
|
|
46
|
+
* Register one unsaved change. Returns the function that removes it; call it
|
|
47
|
+
* when the change is saved or discarded, or when its holder goes away.
|
|
48
|
+
*
|
|
49
|
+
* ★ A registration is never dropped for a poor label: an empty label still
|
|
50
|
+
* counts as unsaved (the reply then names "this page"). Losing a guard over a
|
|
51
|
+
* missing word would be the expensive mistake.
|
|
52
|
+
*/
|
|
53
|
+
export declare function registerUnsavedChange(change: UnsavedChange): () => void;
|
|
54
|
+
/**
|
|
55
|
+
* The unsaved changes on the page right now, oldest registration first, one
|
|
56
|
+
* per id. Empty when nothing is unsaved.
|
|
57
|
+
*/
|
|
58
|
+
export declare function listUnsavedChanges(): UnsavedChange[];
|
|
59
|
+
/**
|
|
60
|
+
* Report a page's unsaved changes for as long as `dirty` is true and the
|
|
61
|
+
* calling component is mounted.
|
|
62
|
+
*
|
|
63
|
+
* ```tsx
|
|
64
|
+
* useUnsavedChanges({
|
|
65
|
+
* id: "dashboard-editor",
|
|
66
|
+
* label: t("dashboards.editor.unsavedLabel", "the dashboard editor"),
|
|
67
|
+
* dirty: hasChanges,
|
|
68
|
+
* });
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare function useUnsavedChanges({ id, label, dirty }: UseUnsavedChangesOptions): void;
|
|
72
|
+
/** Who started a navigation: the person (a link, the sidebar) or the assistant. */
|
|
73
|
+
export type NavigationInitiator = "person" | "assistant";
|
|
74
|
+
/**
|
|
75
|
+
* Should a navigation be refused for unsaved changes? Only one the ASSISTANT
|
|
76
|
+
* started, and only while something is unsaved; the person's own navigation
|
|
77
|
+
* never is. Returns the changes to name in the refusal, or null to go ahead.
|
|
78
|
+
*
|
|
79
|
+
* ★ Anything but an explicit `"person"` counts as the assistant's, so a caller
|
|
80
|
+
* that forgets to say is guarded rather than let through.
|
|
81
|
+
*/
|
|
82
|
+
export declare function unsavedChangesBlocking(initiator: NavigationInitiator | undefined): UnsavedChange[] | null;
|
|
83
|
+
//# sourceMappingURL=unsavedChanges.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsavedChanges.d.ts","sourceRoot":"","sources":["../../../src/shared/navigation/unsavedChanges.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,gFAAgF;AAChF,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,yFAAyF;IACzF,EAAE,EAAE,MAAM,CAAC;IACX,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,4DAA4D;AAC5D,eAAO,MAAM,wBAAwB,KAAK,CAAC;AA6B3C;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,IAAI,CAMvE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,aAAa,EAAE,CASpD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,wBAAwB,GAAG,IAAI,CAKtF;AAED,mFAAmF;AACnF,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEzD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,mBAAmB,GAAG,SAAS,GACzC,aAAa,EAAE,GAAG,IAAI,CAIxB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { useEffect as e } from "react";
|
|
2
|
+
//#region src/shared/navigation/unsavedChanges.ts
|
|
3
|
+
var t = 80, n = Symbol.for("burdenoff.fe-libs.unsavedChanges.v1");
|
|
4
|
+
function r() {
|
|
5
|
+
let e = globalThis, t = e[n];
|
|
6
|
+
if (t instanceof Map) return t;
|
|
7
|
+
let r = /* @__PURE__ */ new Map();
|
|
8
|
+
return e[n] = r, r;
|
|
9
|
+
}
|
|
10
|
+
function i(e) {
|
|
11
|
+
let t = e.replace(/\s+/g, " ").trim();
|
|
12
|
+
return t.length <= 80 ? t : `${t.slice(0, 79).trimEnd()}…`;
|
|
13
|
+
}
|
|
14
|
+
function a(e) {
|
|
15
|
+
let t = Symbol(e.id);
|
|
16
|
+
return r().set(t, {
|
|
17
|
+
id: e.id,
|
|
18
|
+
label: i(e.label)
|
|
19
|
+
}), () => {
|
|
20
|
+
r().delete(t);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function o() {
|
|
24
|
+
let e = /* @__PURE__ */ new Set(), t = [];
|
|
25
|
+
for (let n of r().values()) e.has(n.id) || (e.add(n.id), t.push({ ...n }));
|
|
26
|
+
return t;
|
|
27
|
+
}
|
|
28
|
+
function s({ id: t, label: n, dirty: r }) {
|
|
29
|
+
e(() => {
|
|
30
|
+
if (r) return a({
|
|
31
|
+
id: t,
|
|
32
|
+
label: n
|
|
33
|
+
});
|
|
34
|
+
}, [
|
|
35
|
+
t,
|
|
36
|
+
n,
|
|
37
|
+
r
|
|
38
|
+
]);
|
|
39
|
+
}
|
|
40
|
+
function c(e) {
|
|
41
|
+
if (e === "person") return null;
|
|
42
|
+
let t = o();
|
|
43
|
+
return t.length > 0 ? t : null;
|
|
44
|
+
}
|
|
45
|
+
//#endregion
|
|
46
|
+
export { t as UNSAVED_CHANGE_LABEL_MAX, o as listUnsavedChanges, a as registerUnsavedChange, c as unsavedChangesBlocking, s as useUnsavedChanges };
|
|
@@ -13,6 +13,23 @@ export interface AppShellConfig {
|
|
|
13
13
|
domain?: string;
|
|
14
14
|
/** Product ID for i18n translations service */
|
|
15
15
|
i18nProductId: string;
|
|
16
|
+
/**
|
|
17
|
+
* The platform dictionary layered UNDER the product's: fallback < platform <
|
|
18
|
+
* product (BOFF-8060). Default `workspaces`, where the platform screens and
|
|
19
|
+
* the shared chrome keep their keys. `null` loads the product dictionary
|
|
20
|
+
* alone. Ignored by the Workspaces app itself (same id).
|
|
21
|
+
*/
|
|
22
|
+
platformI18nProductId?: string | null;
|
|
23
|
+
/**
|
|
24
|
+
* Right-to-left support (BOFF-8060, F6). `enabled` (default false) lets
|
|
25
|
+
* `dir` follow the locale (Arabic RTL); leave it off until the product's UI
|
|
26
|
+
* uses logical CSS properties. `preview` (default true) honours the QA
|
|
27
|
+
* override `?dir=rtl` / `?dir=locale` / `?dir=off`.
|
|
28
|
+
*/
|
|
29
|
+
rtl?: {
|
|
30
|
+
enabled?: boolean;
|
|
31
|
+
preview?: boolean;
|
|
32
|
+
};
|
|
16
33
|
/** Resolved gateway URLs */
|
|
17
34
|
gatewayUrls: {
|
|
18
35
|
workspaceBaseUrl: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShellProvider.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/AppShellProvider.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"AppShellProvider.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/AppShellProvider.tsx"],"names":[],"mappings":"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"}
|