@burdenoff/fe-libs 2026.1006.1 → 2026.1007.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.
- package/dist/chrome/ContextSwitcher.d.ts.map +1 -1
- package/dist/chrome/ContextSwitcher.js +93 -89
- package/dist/chrome/GlobalSearch.d.ts.map +1 -1
- package/dist/chrome/GlobalSearch.js +94 -96
- package/dist/chrome/NotificationCenter.d.ts.map +1 -1
- package/dist/chrome/NotificationCenter.js +62 -62
- package/dist/chrome/ShortcutHelpDialog.d.ts.map +1 -1
- package/dist/chrome/ShortcutHelpDialog.js +103 -97
- package/dist/chrome/notificationCenter/NotificationPanel.d.ts.map +1 -1
- package/dist/chrome/notificationCenter/NotificationPanel.js +28 -17
- package/dist/chrome/notificationCenter/usePanelChrome.d.ts +0 -1
- package/dist/chrome/notificationCenter/usePanelChrome.d.ts.map +1 -1
- package/dist/chrome/notificationCenter/usePanelChrome.js +1 -10
- package/dist/chrome/shellOverlayLayer.d.ts +42 -0
- package/dist/chrome/shellOverlayLayer.d.ts.map +1 -0
- package/dist/chrome/shellOverlayLayer.js +4 -0
- package/dist/connections/ConnectionDialogPanel.d.ts.map +1 -1
- package/dist/connections/ConnectionDialogPanel.js +133 -126
- package/dist/connections/ConnectionFormTab.d.ts +2 -1
- package/dist/connections/ConnectionFormTab.d.ts.map +1 -1
- package/dist/connections/ConnectionFormTab.js +43 -42
- package/dist/connections/CredentialStorageSelector.d.ts +3 -1
- package/dist/connections/CredentialStorageSelector.d.ts.map +1 -1
- package/dist/connections/CredentialStorageSelector.js +73 -64
- package/dist/connections/connectionFlow.d.ts +4 -1
- package/dist/connections/connectionFlow.d.ts.map +1 -1
- package/dist/connections/connectionFlow.js +50 -18
- package/dist/connections/types.d.ts +3 -1
- package/dist/connections/types.d.ts.map +1 -1
- package/dist/shared/assistant/appControls/languageReply.d.ts +28 -0
- package/dist/shared/assistant/appControls/languageReply.d.ts.map +1 -0
- package/dist/shared/assistant/appControls/languageReply.js +17 -0
- package/dist/shared/assistant/appControls/text.d.ts +7 -1
- package/dist/shared/assistant/appControls/text.d.ts.map +1 -1
- package/dist/shared/assistant/appControls/text.js +4 -3
- package/dist/shared/assistant/conversation.d.ts +2 -0
- package/dist/shared/assistant/conversation.d.ts.map +1 -1
- package/dist/shared/assistant/displayContent.d.ts.map +1 -1
- package/dist/shared/assistant/displayContent.js +14 -11
- package/dist/shared/assistant/history/historyMapping.d.ts.map +1 -1
- package/dist/shared/assistant/history/historyMapping.js +10 -5
- package/dist/shared/assistant/index.d.ts +1 -0
- package/dist/shared/assistant/index.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AIAssistantPanel.js +8 -8
- package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantChatArea.js +1012 -939
- package/dist/shared/assistant/ui/AssistantMessageItem.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantMessageItem.js +105 -97
- package/dist/shared/assistant/ui/AssistantMoreMenu.d.ts.map +1 -1
- package/dist/shared/assistant/ui/AssistantMoreMenu.js +112 -108
- package/dist/shared/assistant/ui/composer/AssistantAttachmentButton.d.ts.map +1 -1
- package/dist/shared/assistant/ui/composer/AssistantAttachmentButton.js +66 -62
- package/dist/shared/assistant/ui/controlConfirmDialog.js +4 -4
- package/dist/shared/assistant/ui/useDropdownEscape.d.ts +8 -30
- package/dist/shared/assistant/ui/useDropdownEscape.d.ts.map +1 -1
- package/dist/shared/assistant/ui/useDropdownEscape.js +6 -20
- package/dist/shared/assistant/ui/voice/AssistantVoiceSession.js +7 -7
- package/dist/shared/assistant/uiActions/recordNames.d.ts +18 -6
- package/dist/shared/assistant/uiActions/recordNames.d.ts.map +1 -1
- package/dist/shared/assistant/uiActions/recordNames.js +42 -37
- package/dist/shared/components/EscapeLayer.d.ts +15 -0
- package/dist/shared/components/EscapeLayer.d.ts.map +1 -0
- package/dist/shared/components/EscapeLayer.js +31 -0
- package/dist/shared-assistant.js +151 -150
- package/package.json +3 -1
|
@@ -8,76 +8,76 @@ import { NotificationHeader as o } from "./notificationCenter/NotificationHeader
|
|
|
8
8
|
import { NotificationList as s } from "./notificationCenter/NotificationList.js";
|
|
9
9
|
import { NotificationPanel as c } from "./notificationCenter/NotificationPanel.js";
|
|
10
10
|
import { useNotificationCenter as l } from "./notificationCenter/useNotificationCenter.js";
|
|
11
|
-
import {
|
|
12
|
-
import { useCallback as
|
|
13
|
-
import { jsx as
|
|
11
|
+
import { useOutsideClickClose as u, usePanelChrome as d } from "./notificationCenter/usePanelChrome.js";
|
|
12
|
+
import { useCallback as f, useEffect as p, useMemo as m, useRef as h, useState as g } from "react";
|
|
13
|
+
import { jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
14
14
|
//#region src/chrome/NotificationCenter.tsx
|
|
15
|
-
var
|
|
16
|
-
let
|
|
17
|
-
t("header.notifications",
|
|
18
|
-
let { isMobile:
|
|
19
|
-
|
|
20
|
-
let { notifications:
|
|
21
|
-
client:
|
|
22
|
-
isOpen:
|
|
23
|
-
lazy:
|
|
24
|
-
filterTab:
|
|
25
|
-
typeFilter:
|
|
26
|
-
appFilter:
|
|
15
|
+
var y = ({ client: y, onViewAll: b, compact: x = !1, pollInterval: S = 3e4, lazy: C = !1 }) => {
|
|
16
|
+
let w = h(null), [T, E] = g(!1), [D, O] = g("all"), [k, A] = g("ALL"), [j, M] = g("ALL"), [N, P] = g("newest"), F = f(() => E(!1), []), I = f(() => E((e) => !e), []);
|
|
17
|
+
t("header.notifications", m(() => ({ run: () => T ? { status: "already" } : (E(!0), { status: "done" }) }), [T]));
|
|
18
|
+
let { isMobile: L } = d();
|
|
19
|
+
u(T, L, w, F);
|
|
20
|
+
let { notifications: R, unreadCount: z, countsByApp: B, totalCount: V, loading: H, error: U, fetchNotifications: W, handleMarkAsRead: G, handleMarkAllAsRead: K, handleDelete: q } = l({
|
|
21
|
+
client: y,
|
|
22
|
+
isOpen: T,
|
|
23
|
+
lazy: C,
|
|
24
|
+
filterTab: D,
|
|
25
|
+
typeFilter: k,
|
|
26
|
+
appFilter: j
|
|
27
27
|
});
|
|
28
|
-
|
|
29
|
-
e(
|
|
30
|
-
}, [
|
|
31
|
-
let
|
|
28
|
+
p(() => {
|
|
29
|
+
e(z);
|
|
30
|
+
}, [z]);
|
|
31
|
+
let J = f((e) => {
|
|
32
32
|
window.open(e, "_blank", "noopener,noreferrer");
|
|
33
|
-
}, []),
|
|
34
|
-
|
|
35
|
-
}, [
|
|
36
|
-
return /* @__PURE__ */
|
|
37
|
-
ref:
|
|
33
|
+
}, []), Y = f(() => {
|
|
34
|
+
E(!1), b?.();
|
|
35
|
+
}, [b]), X = r(R, N), Z = Object.entries(B).filter(([e]) => e && e !== "null").sort((e, t) => t[1] - e[1]);
|
|
36
|
+
return /* @__PURE__ */ v("div", {
|
|
37
|
+
ref: w,
|
|
38
38
|
className: "relative",
|
|
39
|
-
children: [/* @__PURE__ */
|
|
40
|
-
unreadCount:
|
|
41
|
-
isOpen:
|
|
42
|
-
onToggle:
|
|
43
|
-
}),
|
|
44
|
-
isMobile:
|
|
45
|
-
onClose:
|
|
46
|
-
children: /* @__PURE__ */
|
|
39
|
+
children: [/* @__PURE__ */ _(n, {
|
|
40
|
+
unreadCount: z,
|
|
41
|
+
isOpen: T,
|
|
42
|
+
onToggle: I
|
|
43
|
+
}), T && /* @__PURE__ */ _(c, {
|
|
44
|
+
isMobile: L,
|
|
45
|
+
onClose: F,
|
|
46
|
+
children: /* @__PURE__ */ v("div", {
|
|
47
47
|
className: "flex flex-col h-full",
|
|
48
48
|
children: [
|
|
49
|
-
/* @__PURE__ */
|
|
50
|
-
isMobile:
|
|
51
|
-
unreadCount:
|
|
52
|
-
onClose:
|
|
53
|
-
onMarkAllAsRead:
|
|
49
|
+
/* @__PURE__ */ _(o, {
|
|
50
|
+
isMobile: L,
|
|
51
|
+
unreadCount: z,
|
|
52
|
+
onClose: F,
|
|
53
|
+
onMarkAllAsRead: K
|
|
54
54
|
}),
|
|
55
|
-
/* @__PURE__ */
|
|
56
|
-
filterTab:
|
|
57
|
-
typeFilter:
|
|
58
|
-
appFilter:
|
|
59
|
-
sortBy:
|
|
60
|
-
appNames:
|
|
61
|
-
onFilterTabChange:
|
|
62
|
-
onTypeFilterChange:
|
|
63
|
-
onAppFilterChange:
|
|
64
|
-
onSortByChange:
|
|
55
|
+
/* @__PURE__ */ _(i, {
|
|
56
|
+
filterTab: D,
|
|
57
|
+
typeFilter: k,
|
|
58
|
+
appFilter: j,
|
|
59
|
+
sortBy: N,
|
|
60
|
+
appNames: Z,
|
|
61
|
+
onFilterTabChange: O,
|
|
62
|
+
onTypeFilterChange: A,
|
|
63
|
+
onAppFilterChange: M,
|
|
64
|
+
onSortByChange: P
|
|
65
65
|
}),
|
|
66
|
-
/* @__PURE__ */
|
|
67
|
-
loading:
|
|
68
|
-
error:
|
|
69
|
-
notifications:
|
|
70
|
-
filterTab:
|
|
71
|
-
typeFilter:
|
|
72
|
-
appFilter:
|
|
73
|
-
onRetry:
|
|
74
|
-
onMarkAsRead:
|
|
75
|
-
onDelete:
|
|
76
|
-
onRedirect:
|
|
66
|
+
/* @__PURE__ */ _(s, {
|
|
67
|
+
loading: H,
|
|
68
|
+
error: U,
|
|
69
|
+
notifications: X,
|
|
70
|
+
filterTab: D,
|
|
71
|
+
typeFilter: k,
|
|
72
|
+
appFilter: j,
|
|
73
|
+
onRetry: W,
|
|
74
|
+
onMarkAsRead: G,
|
|
75
|
+
onDelete: q,
|
|
76
|
+
onRedirect: J
|
|
77
77
|
}),
|
|
78
|
-
|
|
79
|
-
totalCount:
|
|
80
|
-
onViewAll:
|
|
78
|
+
X.length > 0 && /* @__PURE__ */ _(a, {
|
|
79
|
+
totalCount: V,
|
|
80
|
+
onViewAll: b ? Y : void 0
|
|
81
81
|
})
|
|
82
82
|
]
|
|
83
83
|
})
|
|
@@ -85,4 +85,4 @@ var b = ({ client: b, onViewAll: x, compact: S = !1, pollInterval: C = 3e4, lazy
|
|
|
85
85
|
});
|
|
86
86
|
};
|
|
87
87
|
//#endregion
|
|
88
|
-
export {
|
|
88
|
+
export { y as NotificationCenter };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShortcutHelpDialog.d.ts","sourceRoot":"","sources":["../../src/chrome/ShortcutHelpDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAqB,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAGnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ShortcutHelpDialog.d.ts","sourceRoot":"","sources":["../../src/chrome/ShortcutHelpDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAqB,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAGnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAIjE,MAAM,WAAW,uBAAuB;IACtC,iCAAiC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,wCAAwC;IACxC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,4CAA4C;IAC5C,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CA8J1D,CAAC"}
|
|
@@ -1,123 +1,129 @@
|
|
|
1
1
|
import { detectPlatform as e, getDisplayKeysForPlatform as t } from "../shared/keyboard/utils.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { EscapeLayer as n } from "../shared/components/EscapeLayer.js";
|
|
3
|
+
import { SHELL_OVERLAY_LAYER_CLASS as r } from "./shellOverlayLayer.js";
|
|
4
|
+
import { useEffect as i, useRef as a } from "react";
|
|
5
|
+
import { X as o } from "lucide-react";
|
|
6
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
5
7
|
//#region src/chrome/ShortcutHelpDialog.tsx
|
|
6
|
-
var
|
|
7
|
-
let
|
|
8
|
-
if (
|
|
9
|
-
|
|
10
|
-
}),
|
|
11
|
-
if (!
|
|
8
|
+
var l = ({ isOpen: l, onClose: u, shortcuts: d }) => {
|
|
9
|
+
let f = a(null), p = a(u);
|
|
10
|
+
if (i(() => {
|
|
11
|
+
p.current = u;
|
|
12
|
+
}), i(() => {
|
|
13
|
+
if (!l) return;
|
|
12
14
|
let e = setTimeout(() => {
|
|
13
15
|
let e = (e) => {
|
|
14
|
-
|
|
16
|
+
e.key === "?" && (e.preventDefault(), e.stopPropagation(), p.current());
|
|
15
17
|
};
|
|
16
|
-
|
|
18
|
+
f.current = e, document.addEventListener("keydown", e);
|
|
17
19
|
}, 100);
|
|
18
20
|
return () => {
|
|
19
|
-
clearTimeout(e),
|
|
21
|
+
clearTimeout(e), f.current &&= (document.removeEventListener("keydown", f.current), null);
|
|
20
22
|
};
|
|
21
|
-
}, [
|
|
22
|
-
if (
|
|
23
|
+
}, [l]), i(() => {
|
|
24
|
+
if (l) return document.body.style.overflow = "hidden", () => {
|
|
23
25
|
document.body.style.overflow = "";
|
|
24
26
|
};
|
|
25
|
-
}, [
|
|
26
|
-
let
|
|
27
|
+
}, [l]), !l) return null;
|
|
28
|
+
let m = d.reduce((e, t) => {
|
|
27
29
|
let n = t.category || "Other";
|
|
28
30
|
return e[n] || (e[n] = []), e[n].push(t), e;
|
|
29
|
-
}, {}),
|
|
31
|
+
}, {}), h = Object.keys(m).sort((e, t) => {
|
|
30
32
|
let n = {
|
|
31
33
|
Navigation: 0,
|
|
32
34
|
Actions: 1,
|
|
33
35
|
UI: 2
|
|
34
36
|
}, r = n[e] ?? 99, i = n[t] ?? 99;
|
|
35
37
|
return r === i ? e.localeCompare(t) : r - i;
|
|
36
|
-
}),
|
|
37
|
-
return /* @__PURE__ */
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"aria-hidden": "true"
|
|
43
|
-
}), /* @__PURE__ */ o("div", {
|
|
44
|
-
className: "relative bg-bg-elevated border border-border-subtle rounded-card shadow-[var(--shadow-elevation-4)] max-w-2xl w-full mx-4 max-h-[85dvh] flex flex-col animate-in fade-in-0 zoom-in-95 slide-in-from-bottom-4 duration-300",
|
|
38
|
+
}), g = e(), _ = g === "mac" ? "macOS" : g === "windows" ? "Windows" : "Linux";
|
|
39
|
+
return /* @__PURE__ */ s(n, {
|
|
40
|
+
modal: !0,
|
|
41
|
+
onDismiss: u,
|
|
42
|
+
children: /* @__PURE__ */ c("div", {
|
|
43
|
+
className: `fixed inset-0 ${r} flex items-center justify-center animate-in fade-in duration-200`,
|
|
45
44
|
role: "dialog",
|
|
46
45
|
"aria-modal": "true",
|
|
47
46
|
"aria-labelledby": "shortcut-dialog-title",
|
|
48
|
-
children: [
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
className: "
|
|
57
|
-
children: "
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
children: p.map((e) => /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h3", {
|
|
71
|
-
className: "text-sm font-semibold text-text-primary mb-3",
|
|
72
|
-
children: e
|
|
73
|
-
}), /* @__PURE__ */ a("div", {
|
|
74
|
-
className: "space-y-1",
|
|
75
|
-
children: f[e].map((e, n) => /* @__PURE__ */ o("div", {
|
|
76
|
-
className: "flex items-center justify-between py-2 px-3 rounded-button hover:bg-bg-sunken transition-all duration-200 hover:translate-x-0.5",
|
|
77
|
-
style: { animationDelay: `${n * 30}ms` },
|
|
78
|
-
children: [/* @__PURE__ */ a("span", {
|
|
79
|
-
className: "text-text-primary text-sm",
|
|
80
|
-
children: e.description
|
|
81
|
-
}), /* @__PURE__ */ a("kbd", {
|
|
82
|
-
className: "ml-4 px-2.5 py-1 bg-bg-sunken border border-border-subtle rounded text-text-secondary text-xs font-mono whitespace-nowrap transition-all duration-200 hover:scale-105",
|
|
83
|
-
children: t(e.keys)
|
|
84
|
-
})]
|
|
85
|
-
}, e.id))
|
|
86
|
-
})] }, e))
|
|
87
|
-
})
|
|
88
|
-
}),
|
|
89
|
-
/* @__PURE__ */ a("div", {
|
|
90
|
-
className: "p-4 border-t border-border-subtle bg-bg-sunken/50 rounded-b-card",
|
|
91
|
-
children: /* @__PURE__ */ o("div", {
|
|
92
|
-
className: "flex items-center justify-between text-xs",
|
|
93
|
-
children: [/* @__PURE__ */ o("p", {
|
|
94
|
-
className: "text-text-muted",
|
|
95
|
-
children: [h, " shortcuts"]
|
|
96
|
-
}), /* @__PURE__ */ o("p", {
|
|
97
|
-
className: "text-text-secondary",
|
|
98
|
-
children: [
|
|
99
|
-
"Press",
|
|
100
|
-
" ",
|
|
101
|
-
/* @__PURE__ */ a("kbd", {
|
|
102
|
-
className: "px-1.5 py-0.5 bg-bg-surface border border-border-subtle rounded font-mono",
|
|
103
|
-
children: "?"
|
|
104
|
-
}),
|
|
105
|
-
" ",
|
|
106
|
-
"or",
|
|
107
|
-
" ",
|
|
108
|
-
/* @__PURE__ */ a("kbd", {
|
|
109
|
-
className: "px-1.5 py-0.5 bg-bg-surface border border-border-subtle rounded font-mono",
|
|
110
|
-
children: "Esc"
|
|
111
|
-
}),
|
|
112
|
-
" ",
|
|
113
|
-
"to close"
|
|
114
|
-
]
|
|
47
|
+
children: [/* @__PURE__ */ s("div", {
|
|
48
|
+
className: "absolute inset-0 bg-bg-overlay backdrop-blur-sm",
|
|
49
|
+
onClick: u,
|
|
50
|
+
"aria-hidden": "true"
|
|
51
|
+
}), /* @__PURE__ */ c("div", {
|
|
52
|
+
className: "relative bg-bg-elevated border border-border-subtle rounded-card shadow-[var(--shadow-elevation-4)] max-w-2xl w-full mx-4 max-h-[85dvh] flex flex-col animate-in fade-in-0 zoom-in-95 slide-in-from-bottom-4 duration-300",
|
|
53
|
+
children: [
|
|
54
|
+
/* @__PURE__ */ c("div", {
|
|
55
|
+
className: "flex items-center justify-between p-6 border-b border-border-subtle",
|
|
56
|
+
children: [/* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("h2", {
|
|
57
|
+
id: "shortcut-dialog-title",
|
|
58
|
+
className: "text-lg font-semibold text-text-primary",
|
|
59
|
+
children: "Keyboard Shortcuts"
|
|
60
|
+
}), /* @__PURE__ */ s("p", {
|
|
61
|
+
className: "text-text-secondary text-sm mt-1",
|
|
62
|
+
children: "Quickly navigate and perform actions using your keyboard"
|
|
63
|
+
})] }), /* @__PURE__ */ s("button", {
|
|
64
|
+
type: "button",
|
|
65
|
+
onClick: u,
|
|
66
|
+
className: "p-2 hover:bg-bg-sunken rounded-button text-text-secondary transition-colors",
|
|
67
|
+
"aria-label": "Close",
|
|
68
|
+
children: /* @__PURE__ */ s(o, { className: "size-5" })
|
|
115
69
|
})]
|
|
70
|
+
}),
|
|
71
|
+
/* @__PURE__ */ s("div", {
|
|
72
|
+
className: "flex-1 overflow-y-auto p-6",
|
|
73
|
+
children: /* @__PURE__ */ s("div", {
|
|
74
|
+
className: "grid grid-cols-1 md:grid-cols-2 gap-8",
|
|
75
|
+
children: h.map((e) => /* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("h3", {
|
|
76
|
+
className: "text-sm font-semibold text-text-primary mb-3",
|
|
77
|
+
children: e
|
|
78
|
+
}), /* @__PURE__ */ s("div", {
|
|
79
|
+
className: "space-y-1",
|
|
80
|
+
children: m[e].map((e, n) => /* @__PURE__ */ c("div", {
|
|
81
|
+
className: "flex items-center justify-between py-2 px-3 rounded-button hover:bg-bg-sunken transition-all duration-200 hover:translate-x-0.5",
|
|
82
|
+
style: { animationDelay: `${n * 30}ms` },
|
|
83
|
+
children: [/* @__PURE__ */ s("span", {
|
|
84
|
+
className: "text-text-primary text-sm",
|
|
85
|
+
children: e.description
|
|
86
|
+
}), /* @__PURE__ */ s("kbd", {
|
|
87
|
+
className: "ml-4 px-2.5 py-1 bg-bg-sunken border border-border-subtle rounded text-text-secondary text-xs font-mono whitespace-nowrap transition-all duration-200 hover:scale-105",
|
|
88
|
+
children: t(e.keys)
|
|
89
|
+
})]
|
|
90
|
+
}, e.id))
|
|
91
|
+
})] }, e))
|
|
92
|
+
})
|
|
93
|
+
}),
|
|
94
|
+
/* @__PURE__ */ s("div", {
|
|
95
|
+
className: "p-4 border-t border-border-subtle bg-bg-sunken/50 rounded-b-card",
|
|
96
|
+
children: /* @__PURE__ */ c("div", {
|
|
97
|
+
className: "flex items-center justify-between text-xs",
|
|
98
|
+
children: [/* @__PURE__ */ c("p", {
|
|
99
|
+
className: "text-text-muted",
|
|
100
|
+
children: [_, " shortcuts"]
|
|
101
|
+
}), /* @__PURE__ */ c("p", {
|
|
102
|
+
className: "text-text-secondary",
|
|
103
|
+
children: [
|
|
104
|
+
"Press",
|
|
105
|
+
" ",
|
|
106
|
+
/* @__PURE__ */ s("kbd", {
|
|
107
|
+
className: "px-1.5 py-0.5 bg-bg-surface border border-border-subtle rounded font-mono",
|
|
108
|
+
children: "?"
|
|
109
|
+
}),
|
|
110
|
+
" ",
|
|
111
|
+
"or",
|
|
112
|
+
" ",
|
|
113
|
+
/* @__PURE__ */ s("kbd", {
|
|
114
|
+
className: "px-1.5 py-0.5 bg-bg-surface border border-border-subtle rounded font-mono",
|
|
115
|
+
children: "Esc"
|
|
116
|
+
}),
|
|
117
|
+
" ",
|
|
118
|
+
"to close"
|
|
119
|
+
]
|
|
120
|
+
})]
|
|
121
|
+
})
|
|
116
122
|
})
|
|
117
|
-
|
|
118
|
-
]
|
|
119
|
-
})
|
|
123
|
+
]
|
|
124
|
+
})]
|
|
125
|
+
})
|
|
120
126
|
});
|
|
121
127
|
};
|
|
122
128
|
//#endregion
|
|
123
|
-
export {
|
|
129
|
+
export { l as ShortcutHelpDialog };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationPanel.d.ts","sourceRoot":"","sources":["../../../src/chrome/notificationCenter/NotificationPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"NotificationPanel.d.ts","sourceRoot":"","sources":["../../../src/chrome/notificationCenter/NotificationPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKhD,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAmCxD,CAAC"}
|
|
@@ -1,20 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { EscapeLayer as e } from "../../shared/components/EscapeLayer.js";
|
|
2
|
+
import { SHELL_OVERLAY_LAYER_CLASS as t } from "../shellOverlayLayer.js";
|
|
3
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
4
|
+
import { createPortal as i } from "react-dom";
|
|
3
5
|
//#region src/chrome/notificationCenter/NotificationPanel.tsx
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
6
|
+
var a = ({ isMobile: a, onClose: o, children: s }) => a ? typeof document > "u" ? null : i(/* @__PURE__ */ n(e, {
|
|
7
|
+
onDismiss: o,
|
|
8
|
+
children: /* @__PURE__ */ r("div", {
|
|
9
|
+
className: `fixed inset-0 ${t}`,
|
|
10
|
+
role: "dialog",
|
|
11
|
+
"aria-label": "Notifications panel",
|
|
12
|
+
children: [/* @__PURE__ */ n("div", {
|
|
13
|
+
className: "absolute inset-0 bg-bg-overlay backdrop-blur-sm",
|
|
14
|
+
onClick: o,
|
|
15
|
+
"aria-hidden": "true"
|
|
16
|
+
}), /* @__PURE__ */ n("div", {
|
|
17
|
+
className: "absolute inset-0 bg-bg-elevated flex flex-col",
|
|
18
|
+
children: s
|
|
19
|
+
})]
|
|
20
|
+
})
|
|
21
|
+
}), document.body) : /* @__PURE__ */ n(e, {
|
|
22
|
+
onDismiss: o,
|
|
23
|
+
children: /* @__PURE__ */ n("div", {
|
|
24
|
+
className: "absolute right-0 top-full mt-2 w-[calc(100vw-1.5rem)] sm:w-[420px] max-h-[600px] bg-bg-elevated border border-border-subtle rounded-card shadow-[var(--shadow-elevation-4)] z-50 overflow-hidden flex flex-col",
|
|
25
|
+
role: "dialog",
|
|
26
|
+
"aria-label": "Notifications panel",
|
|
27
|
+
children: s
|
|
28
|
+
})
|
|
18
29
|
});
|
|
19
30
|
//#endregion
|
|
20
|
-
export {
|
|
31
|
+
export { a as NotificationPanel };
|
|
@@ -3,5 +3,4 @@ export declare function usePanelChrome(): {
|
|
|
3
3
|
isMobile: boolean;
|
|
4
4
|
};
|
|
5
5
|
export declare function useOutsideClickClose(isOpen: boolean, isMobile: boolean, containerRef: RefObject<HTMLDivElement | null>, close: () => void): void;
|
|
6
|
-
export declare function useEscapeClose(isOpen: boolean, close: () => void): void;
|
|
7
6
|
//# sourceMappingURL=usePanelChrome.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePanelChrome.d.ts","sourceRoot":"","sources":["../../../src/chrome/notificationCenter/usePanelChrome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAE5D,wBAAgB,cAAc;;EAY7B;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,EACjB,YAAY,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,EAC9C,KAAK,EAAE,MAAM,IAAI,QAYlB
|
|
1
|
+
{"version":3,"file":"usePanelChrome.d.ts","sourceRoot":"","sources":["../../../src/chrome/notificationCenter/usePanelChrome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAE5D,wBAAgB,cAAc;;EAY7B;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,EACjB,YAAY,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,EAC9C,KAAK,EAAE,MAAM,IAAI,QAYlB"}
|
|
@@ -23,14 +23,5 @@ function r(t, n, r, i) {
|
|
|
23
23
|
i
|
|
24
24
|
]);
|
|
25
25
|
}
|
|
26
|
-
function i(t, n) {
|
|
27
|
-
e(() => {
|
|
28
|
-
if (!t) return;
|
|
29
|
-
let e = (e) => {
|
|
30
|
-
e.key === "Escape" && n();
|
|
31
|
-
};
|
|
32
|
-
return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
|
|
33
|
-
}, [t, n]);
|
|
34
|
-
}
|
|
35
26
|
//#endregion
|
|
36
|
-
export {
|
|
27
|
+
export { r as useOutsideClickClose, n as usePanelChrome };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ONE paint layer for the shell's own full-surface overlays (BOFF-8677):
|
|
3
|
+
* `GlobalSearch`, `ShortcutHelpDialog` and the mobile `NotificationPanel`.
|
|
4
|
+
*
|
|
5
|
+
* The shell chrome lives in the ROOT stacking context (`AppShellLayout` adds no
|
|
6
|
+
* z-index, transform or isolation), so its raw values compete directly with
|
|
7
|
+
* every body portal:
|
|
8
|
+
*
|
|
9
|
+
* SideNavigation mobile drawer z-[109] scrim, z-[110] aside, z-[112] close strip
|
|
10
|
+
* HeaderBar z-[100]
|
|
11
|
+
* MobileTabBar z-[60] (assistant full-screen voice: z-[60])
|
|
12
|
+
* assistant panel / launcher z-50 / z-30
|
|
13
|
+
* Radix Dialog, menus, selects z-50
|
|
14
|
+
*
|
|
15
|
+
* The overlays sat at z-50 for one release and painted UNDER the header and
|
|
16
|
+
* tab bar: the bell's Close button was hidden in the header's 56px strip and the
|
|
17
|
+
* header showed through the Search / Help backdrop. Hence two rules, one class:
|
|
18
|
+
*
|
|
19
|
+
* 1. `z-[200]` — above every piece of chrome and the assistant. The SAME value
|
|
20
|
+
* for all three: each is a body portal appended in mount order, which is
|
|
21
|
+
* also Radix's DismissableLayer order, so one DOM order decides both which
|
|
22
|
+
* overlay paints on top and which one Escape closes.
|
|
23
|
+
* 2. `[&~*]:z-[200]!` — every body child appended AFTER an open shell overlay
|
|
24
|
+
* joins its layer. Radix portals with `asChild`, so a popper wrapper or a
|
|
25
|
+
* Dialog's overlay + content IS a body child, at z-50 (the popper wrapper
|
|
26
|
+
* copies it as an inline style, hence `!important`). Without this, a menu,
|
|
27
|
+
* select or tooltip opened from inside Search — or a Dialog opened on top
|
|
28
|
+
* of Help — would own Escape while painting under the overlay. At an equal
|
|
29
|
+
* layer, DOM order puts the later one on top, as Radix's stack expects.
|
|
30
|
+
* Earlier body children and the app root are untouched, and the rule
|
|
31
|
+
* vanishes with the overlay.
|
|
32
|
+
*
|
|
33
|
+
* Deliberately above this layer: the legacy `CommandPalette` (z-[9999]) and the
|
|
34
|
+
* plugin context menu (z-[220], transient). Pinned by
|
|
35
|
+
* `src/chrome/__tests__/shellOverlayLayer.test.ts`; proven in a real browser
|
|
36
|
+
* by `scripts/escape-layer-browser.checks.mjs`.
|
|
37
|
+
*
|
|
38
|
+
* ★ One literal: apps' Tailwind scans fe-libs' dist for class names, so the
|
|
39
|
+
* string must never be assembled at runtime.
|
|
40
|
+
*/
|
|
41
|
+
export declare const SHELL_OVERLAY_LAYER_CLASS = "z-[200] [&~*]:z-[200]!";
|
|
42
|
+
//# sourceMappingURL=shellOverlayLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shellOverlayLayer.d.ts","sourceRoot":"","sources":["../../src/chrome/shellOverlayLayer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,yBAAyB,2BAA2B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionDialogPanel.d.ts","sourceRoot":"","sources":["../../src/connections/ConnectionDialogPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAML,KAAK,EAAE,EAEP,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ConnectionDialogPanel.d.ts","sourceRoot":"","sources":["../../src/connections/ConnectionDialogPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAML,KAAK,EAAE,EAEP,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAkB5C,OAAO,KAAK,EACV,qBAAqB,EAErB,iBAAiB,EAElB,MAAM,SAAS,CAAC;AAKjB,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,cAAc,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,UAAU,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;IACxC,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACnD,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjD,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,iBAAiB,KAAK,SAAS,CAAC;CACpE;AAUD,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CAoXhE,CAAC"}
|