@burdenoff/fe-libs 2026.1018.1 → 2026.1019.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chrome/AccountSwitcher.js +90 -89
- package/dist/chrome/Breadcrumbs.js +1 -1
- package/dist/chrome/CommandPalette.js +91 -90
- package/dist/chrome/Footer.js +31 -8
- package/dist/chrome/GlobalSearch.js +78 -77
- package/dist/chrome/HeaderBar.js +1 -1
- package/dist/chrome/HeaderThemeSwitcher.js +48 -47
- package/dist/chrome/LanguagePickerSheet.js +23 -22
- package/dist/chrome/NavCustomizeDialog.d.ts +0 -14
- package/dist/chrome/NavCustomizeDialog.js +114 -122
- package/dist/chrome/PanelTabs.js +45 -41
- package/dist/chrome/PersonaSurfaceControls.d.ts +0 -17
- package/dist/chrome/PersonaSurfaceControls.js +115 -118
- package/dist/chrome/PluginSettingsPage.js +29 -28
- package/dist/chrome/PluginWidgetGrid.js +19 -18
- package/dist/chrome/ProductPickerSheet.js +44 -47
- package/dist/chrome/ProductSwitcher.js +2 -6
- package/dist/chrome/ProfileSwitcher.js +6 -10
- package/dist/chrome/ShortcutHelpDialog.js +60 -65
- package/dist/chrome/SideNavigation.js +2 -2
- package/dist/chrome/Sidebar.js +44 -43
- package/dist/chrome/ThemePreferences.js +289 -267
- package/dist/chrome/contextSwitcher/EmptyState.js +31 -27
- package/dist/chrome/contextSwitcher/OrganizationList.js +40 -30
- package/dist/chrome/contextSwitcher/ProjectList.js +48 -44
- package/dist/chrome/contextSwitcher/SearchInput.js +44 -40
- package/dist/chrome/contextSwitcher/TriggerButton.js +2 -2
- package/dist/chrome/contextSwitcher/WorkspaceList.js +36 -32
- package/dist/chrome/globalSearch/AdvancedFiltersPanel.js +128 -126
- package/dist/chrome/globalSearch/ResultsList.js +25 -27
- package/dist/chrome/globalSearch/SearchInput.js +16 -14
- package/dist/chrome/notificationCenter/NotificationCardItem.js +58 -47
- package/dist/chrome/notificationCenter/NotificationFilters.js +76 -62
- package/dist/chrome/notificationCenter/NotificationFooter.js +21 -21
- package/dist/chrome/notificationCenter/NotificationHeader.js +67 -63
- package/dist/chrome/notificationCenter/NotificationList.js +75 -71
- package/dist/chrome/notificationCenter/NotificationPanel.js +37 -33
- package/dist/chrome/notificationCenter/PushOptInToggle.js +33 -32
- package/dist/chrome/notificationCenter/constants.d.ts +6 -1
- package/dist/chrome/notificationCenter/constants.js +12 -11
- package/dist/chrome/useThemeOptionLabels.d.ts +33 -0
- package/dist/chrome/useThemeOptionLabels.js +39 -0
- package/dist/shared/assistant/conversation.d.ts +8 -0
- package/dist/shared/assistant/history/historyMapping.js +1 -1
- package/dist/shared/assistant/ui/AssistantMarkdownRenderer.d.ts +6 -6
- package/dist/shared/assistant/ui/AssistantMarkdownRenderer.js +86 -85
- package/dist/shared/assistant/ui/AssistantMessageItem.js +101 -96
- package/dist/shared/assistant/ui/AssistantWriteProposalCard.d.ts +2 -0
- package/dist/shared/assistant/ui/AssistantWriteProposalCard.js +93 -89
- package/dist/shared/assistant/ui/WorkflowAssistantPanel.js +152 -140
- package/dist/shared/assistant/ui/useWriteProposals.js +122 -85
- package/dist/shared/assistant/writeProposalDiscovery.d.ts +3 -1
- package/dist/shared/assistant/writeProposalDiscovery.js +2 -2
- package/dist/shared/events/sinks/RybbitSink.js +2 -2
- package/dist/shared/providers/shell/interpolateShellLabel.d.ts +3 -0
- package/dist/shared/providers/shell/interpolateShellLabel.js +11 -0
- package/dist/shared/providers/shell/useAssistantShellLabels.d.ts +45 -0
- package/dist/shared/providers/shell/useAssistantShellLabels.js +54 -0
- package/dist/shared/tours/TourPlayer.js +33 -32
- package/dist/shared/tours/TourTooltip.js +108 -109
- package/dist/shared/tours/tourTrigger/MobileTourSheet.js +98 -85
- package/dist/shared/tours/tourTrigger/TourListItemDesktop.js +20 -18
- package/dist/shared/tours/tourTrigger/TourListItemMobile.js +23 -25
- package/dist/shared-assistant.js +188 -188
- package/package.json +2 -2
|
@@ -1,75 +1,86 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { useShellLabel as e } from "../../shared/providers/shell/useShellLabel.js";
|
|
2
|
+
import { PRIORITY_CONFIG as t, TYPE_CONFIG as n, formatRelativeTime as r } from "./constants.js";
|
|
3
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
3
4
|
//#region src/chrome/notificationCenter/NotificationCardItem.tsx
|
|
4
|
-
var
|
|
5
|
-
let { id:
|
|
5
|
+
var o = ({ notification: o, onMarkAsRead: s, onDelete: c, onRedirect: l }) => {
|
|
6
|
+
let u = e(), { id: d, title: f, message: p, type: m, priority: h, appName: g, redirectUrl: _, isRead: v, createdAt: y } = o, b = {
|
|
7
|
+
URGENT: u("notifications.priority.URGENT", "Urgent"),
|
|
8
|
+
HIGH: u("notifications.priority.HIGH", "High"),
|
|
9
|
+
MEDIUM: u("notifications.priority.MEDIUM", "Medium"),
|
|
10
|
+
LOW: u("notifications.priority.LOW", "Low")
|
|
11
|
+
}, x = {
|
|
12
|
+
now: u("notifCommon.inAppJustNow", "Just now"),
|
|
13
|
+
minutes: u("activityTimeline.minutesAgo", "{{count}}m ago"),
|
|
14
|
+
hours: u("activityTimeline.hoursAgo", "{{count}}h ago"),
|
|
15
|
+
days: u("activityTimeline.daysAgo", "{{count}}d ago")
|
|
16
|
+
}, S = t[h] ?? t.MEDIUM, C = n[m] ?? {
|
|
6
17
|
icon: "🔔",
|
|
7
|
-
label:
|
|
18
|
+
label: m
|
|
8
19
|
};
|
|
9
|
-
return /* @__PURE__ */
|
|
10
|
-
className: `group relative flex gap-3 p-3 rounded-card border transition-all duration-200 ease-[var(--motion-easing-out)] cursor-pointer hover:border-border-strong ${
|
|
20
|
+
return /* @__PURE__ */ a("div", {
|
|
21
|
+
className: `group relative flex gap-3 p-3 rounded-card border transition-all duration-200 ease-[var(--motion-easing-out)] cursor-pointer hover:border-border-strong ${v ? "bg-bg-surface border-border-subtle hover:bg-bg-sunken" : "bg-[var(--color-accent-soft)] border-border-subtle shadow-elevation-1"}`,
|
|
11
22
|
onClick: () => {
|
|
12
|
-
|
|
23
|
+
v || s(d), _ && l(_);
|
|
13
24
|
},
|
|
14
25
|
role: "button",
|
|
15
26
|
tabIndex: 0,
|
|
16
27
|
onKeyDown: (e) => {
|
|
17
|
-
(e.key === "Enter" || e.key === " ") && (e.preventDefault(),
|
|
28
|
+
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), v || s(d), _ && l(_));
|
|
18
29
|
},
|
|
19
30
|
children: [
|
|
20
|
-
!
|
|
21
|
-
/* @__PURE__ */
|
|
31
|
+
!v && /* @__PURE__ */ i("div", { className: "absolute top-3 left-1.5 size-2 rounded-full bg-action-primary-bg" }),
|
|
32
|
+
/* @__PURE__ */ i("div", {
|
|
22
33
|
className: "flex-shrink-0 mt-0.5 ml-2",
|
|
23
|
-
children: /* @__PURE__ */
|
|
34
|
+
children: /* @__PURE__ */ i("span", {
|
|
24
35
|
className: "text-base",
|
|
25
36
|
"aria-hidden": "true",
|
|
26
|
-
children:
|
|
37
|
+
children: C.icon
|
|
27
38
|
})
|
|
28
39
|
}),
|
|
29
|
-
/* @__PURE__ */
|
|
40
|
+
/* @__PURE__ */ a("div", {
|
|
30
41
|
className: "flex-1 min-w-0",
|
|
31
42
|
children: [
|
|
32
|
-
/* @__PURE__ */
|
|
43
|
+
/* @__PURE__ */ a("div", {
|
|
33
44
|
className: "flex items-start justify-between gap-2",
|
|
34
|
-
children: [/* @__PURE__ */
|
|
35
|
-
className: `text-sm truncate ${
|
|
36
|
-
children:
|
|
37
|
-
}), /* @__PURE__ */
|
|
45
|
+
children: [/* @__PURE__ */ i("h4", {
|
|
46
|
+
className: `text-sm truncate ${v ? "font-normal text-text-secondary" : "font-semibold text-text-primary"}`,
|
|
47
|
+
children: f
|
|
48
|
+
}), /* @__PURE__ */ a("div", {
|
|
38
49
|
className: "flex-shrink-0 flex items-center gap-0.5 opacity-0 group-hover:opacity-100 transition-opacity",
|
|
39
|
-
children: [!
|
|
50
|
+
children: [!v && /* @__PURE__ */ i("button", {
|
|
40
51
|
type: "button",
|
|
41
52
|
onClick: (e) => {
|
|
42
|
-
e.stopPropagation(),
|
|
53
|
+
e.stopPropagation(), s(d);
|
|
43
54
|
},
|
|
44
55
|
className: "p-1 rounded hover:bg-bg-sunken text-text-muted hover:text-text-primary",
|
|
45
|
-
title: "Mark as read",
|
|
46
|
-
"aria-label": "Mark as read",
|
|
47
|
-
children: /* @__PURE__ */
|
|
56
|
+
title: u("notifications.markAsRead", "Mark as read"),
|
|
57
|
+
"aria-label": u("notifications.markAsRead", "Mark as read"),
|
|
58
|
+
children: /* @__PURE__ */ i("svg", {
|
|
48
59
|
className: "size-3.5",
|
|
49
60
|
fill: "none",
|
|
50
61
|
stroke: "currentColor",
|
|
51
62
|
viewBox: "0 0 24 24",
|
|
52
|
-
children: /* @__PURE__ */
|
|
63
|
+
children: /* @__PURE__ */ i("path", {
|
|
53
64
|
strokeLinecap: "round",
|
|
54
65
|
strokeLinejoin: "round",
|
|
55
66
|
strokeWidth: 2,
|
|
56
67
|
d: "M5 13l4 4L19 7"
|
|
57
68
|
})
|
|
58
69
|
})
|
|
59
|
-
}), /* @__PURE__ */
|
|
70
|
+
}), /* @__PURE__ */ i("button", {
|
|
60
71
|
type: "button",
|
|
61
72
|
onClick: (e) => {
|
|
62
|
-
e.stopPropagation(),
|
|
73
|
+
e.stopPropagation(), c(d);
|
|
63
74
|
},
|
|
64
75
|
className: "p-1 rounded hover:bg-bg-sunken text-text-muted hover:text-status-error-text",
|
|
65
|
-
title: "Dismiss",
|
|
66
|
-
"aria-label": "Dismiss notification",
|
|
67
|
-
children: /* @__PURE__ */
|
|
76
|
+
title: u("common.dismiss", "Dismiss"),
|
|
77
|
+
"aria-label": u("notifications.dismissNotification", "Dismiss notification"),
|
|
78
|
+
children: /* @__PURE__ */ i("svg", {
|
|
68
79
|
className: "size-3.5",
|
|
69
80
|
fill: "none",
|
|
70
81
|
stroke: "currentColor",
|
|
71
82
|
viewBox: "0 0 24 24",
|
|
72
|
-
children: /* @__PURE__ */
|
|
83
|
+
children: /* @__PURE__ */ i("path", {
|
|
73
84
|
strokeLinecap: "round",
|
|
74
85
|
strokeLinejoin: "round",
|
|
75
86
|
strokeWidth: 2,
|
|
@@ -79,38 +90,38 @@ var a = ({ notification: a, onMarkAsRead: o, onDelete: s, onRedirect: c }) => {
|
|
|
79
90
|
})]
|
|
80
91
|
})]
|
|
81
92
|
}),
|
|
82
|
-
/* @__PURE__ */
|
|
93
|
+
/* @__PURE__ */ i("p", {
|
|
83
94
|
className: "text-xs text-text-secondary line-clamp-2 mt-0.5",
|
|
84
|
-
children:
|
|
95
|
+
children: p
|
|
85
96
|
}),
|
|
86
|
-
/* @__PURE__ */
|
|
97
|
+
/* @__PURE__ */ a("div", {
|
|
87
98
|
className: "flex items-center gap-2 mt-1.5 flex-wrap",
|
|
88
99
|
children: [
|
|
89
|
-
/* @__PURE__ */
|
|
90
|
-
className: `inline-flex items-center px-1.5 py-0.5 text-[10px] font-medium rounded ${
|
|
91
|
-
children:
|
|
100
|
+
/* @__PURE__ */ i("span", {
|
|
101
|
+
className: `inline-flex items-center px-1.5 py-0.5 text-[10px] font-medium rounded ${S.bgColor} ${S.color}`,
|
|
102
|
+
children: b[h] ?? b.MEDIUM
|
|
92
103
|
}),
|
|
93
|
-
|
|
104
|
+
g && /* @__PURE__ */ i("span", {
|
|
94
105
|
className: "inline-flex items-center px-1.5 py-0.5 text-[10px] font-medium rounded bg-bg-sunken text-text-muted",
|
|
95
|
-
children:
|
|
106
|
+
children: g
|
|
96
107
|
}),
|
|
97
|
-
/* @__PURE__ */
|
|
108
|
+
/* @__PURE__ */ i("span", {
|
|
98
109
|
className: "text-[10px] text-text-muted",
|
|
99
|
-
children:
|
|
110
|
+
children: r(y, x)
|
|
100
111
|
}),
|
|
101
|
-
|
|
112
|
+
_ && /* @__PURE__ */ a("button", {
|
|
102
113
|
type: "button",
|
|
103
114
|
onClick: (e) => {
|
|
104
|
-
e.stopPropagation(),
|
|
115
|
+
e.stopPropagation(), l(_);
|
|
105
116
|
},
|
|
106
117
|
className: "inline-flex items-center gap-0.5 text-[10px] text-action-primary-bg hover:underline",
|
|
107
|
-
"aria-label": "Open link",
|
|
108
|
-
children: ["Open", /* @__PURE__ */
|
|
118
|
+
"aria-label": u("notifCommon.openLink", "Open link"),
|
|
119
|
+
children: [u("devportal.common.open", "Open"), /* @__PURE__ */ i("svg", {
|
|
109
120
|
className: "size-2.5",
|
|
110
121
|
fill: "none",
|
|
111
122
|
stroke: "currentColor",
|
|
112
123
|
viewBox: "0 0 24 24",
|
|
113
|
-
children: /* @__PURE__ */
|
|
124
|
+
children: /* @__PURE__ */ i("path", {
|
|
114
125
|
strokeLinecap: "round",
|
|
115
126
|
strokeLinejoin: "round",
|
|
116
127
|
strokeWidth: 2,
|
|
@@ -126,4 +137,4 @@ var a = ({ notification: a, onMarkAsRead: o, onDelete: s, onRedirect: c }) => {
|
|
|
126
137
|
});
|
|
127
138
|
};
|
|
128
139
|
//#endregion
|
|
129
|
-
export {
|
|
140
|
+
export { o as NotificationCardItem };
|
|
@@ -1,67 +1,81 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { useShellLabel as e } from "../../shared/providers/shell/useShellLabel.js";
|
|
2
|
+
import { FILTER_TABS as t, TYPE_CONFIG as n, TYPE_FILTERS as r } from "./constants.js";
|
|
3
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
3
4
|
//#region src/chrome/notificationCenter/NotificationFilters.tsx
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
value
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
children: [
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
})
|
|
42
|
-
]
|
|
43
|
-
})]
|
|
44
|
-
}),
|
|
45
|
-
l.length > 1 && /* @__PURE__ */ i("div", {
|
|
46
|
-
className: "flex flex-wrap gap-1",
|
|
47
|
-
children: [/* @__PURE__ */ r("button", {
|
|
48
|
-
onClick: () => f("ALL"),
|
|
49
|
-
className: `px-2 py-0.5 text-[11px] font-medium rounded-full whitespace-nowrap transition-colors ${s === "ALL" ? "bg-bg-elevated text-text-primary border border-border-default" : "text-text-muted hover:text-text-secondary hover:bg-bg-sunken"}`,
|
|
50
|
-
children: "All Apps"
|
|
51
|
-
}), l.map(([e, t]) => /* @__PURE__ */ i("button", {
|
|
52
|
-
onClick: () => f(e),
|
|
53
|
-
className: `px-2 py-0.5 text-[11px] font-medium rounded-full whitespace-nowrap transition-colors ${s === e ? "bg-bg-elevated text-text-primary border border-border-default" : "text-text-muted hover:text-text-secondary hover:bg-bg-sunken"}`,
|
|
54
|
-
children: [e, /* @__PURE__ */ i("span", {
|
|
55
|
-
className: "ml-1 text-text-muted",
|
|
5
|
+
var o = ({ filterTab: o, typeFilter: s, appFilter: c, sortBy: l, appNames: u, onFilterTabChange: d, onTypeFilterChange: f, onAppFilterChange: p, onSortByChange: m }) => {
|
|
6
|
+
let h = e(), g = {
|
|
7
|
+
all: h("notifications.filterAll", "All"),
|
|
8
|
+
unread: h("notifications.filterUnread", "Unread"),
|
|
9
|
+
read: h("notifications.filterRead", "Read")
|
|
10
|
+
}, _ = {
|
|
11
|
+
ALL: h("notifications.filterAll", "All"),
|
|
12
|
+
SYSTEM: h("notifications.topicType.SYSTEM", "System"),
|
|
13
|
+
ALERT: h("notifications.topicType.ALERT", "Alert"),
|
|
14
|
+
TRANSACTIONAL: h("notifications.typeTransactional", "Transactional"),
|
|
15
|
+
MARKETING: h("notifications.topicType.MARKETING", "Marketing")
|
|
16
|
+
};
|
|
17
|
+
return /* @__PURE__ */ a("div", {
|
|
18
|
+
className: "px-4 pt-3 pb-2 space-y-2 border-b border-border-subtle",
|
|
19
|
+
children: [
|
|
20
|
+
/* @__PURE__ */ i("div", {
|
|
21
|
+
className: "flex gap-1",
|
|
22
|
+
children: t.map((e) => /* @__PURE__ */ i("button", {
|
|
23
|
+
onClick: () => d(e.value),
|
|
24
|
+
className: `px-3 py-1 text-xs font-medium rounded-full transition-colors ${o === e.value ? "bg-action-primary-bg text-action-primary-text" : "bg-bg-sunken text-text-secondary hover:bg-bg-sunken"}`,
|
|
25
|
+
children: g[e.value]
|
|
26
|
+
}, e.value))
|
|
27
|
+
}),
|
|
28
|
+
/* @__PURE__ */ a("div", {
|
|
29
|
+
className: "flex flex-wrap items-center gap-1",
|
|
30
|
+
children: [r.map((e) => /* @__PURE__ */ a("button", {
|
|
31
|
+
onClick: () => f(e.value),
|
|
32
|
+
className: `px-2 py-0.5 text-[11px] font-medium rounded-full whitespace-nowrap transition-colors ${s === e.value ? "bg-bg-elevated text-text-primary border border-border-default" : "text-text-muted hover:text-text-secondary hover:bg-bg-sunken"}`,
|
|
33
|
+
children: [e.value !== "ALL" && n[e.value] && /* @__PURE__ */ i("span", {
|
|
34
|
+
className: "mr-0.5",
|
|
35
|
+
children: n[e.value].icon
|
|
36
|
+
}), _[e.value]]
|
|
37
|
+
}, e.value)), /* @__PURE__ */ a("select", {
|
|
38
|
+
value: l,
|
|
39
|
+
onChange: (e) => m(e.target.value),
|
|
40
|
+
className: "ml-auto text-[11px] text-text-secondary bg-transparent border-none cursor-pointer scheme-normal dark:scheme-dark focus:outline-none [&_option]:bg-bg-surface [&_option]:text-text-primary",
|
|
41
|
+
"aria-label": h("notifications.sortNotifications", "Sort notifications"),
|
|
56
42
|
children: [
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
43
|
+
/* @__PURE__ */ i("option", {
|
|
44
|
+
value: "newest",
|
|
45
|
+
children: h("notifications.newest", "Newest")
|
|
46
|
+
}),
|
|
47
|
+
/* @__PURE__ */ i("option", {
|
|
48
|
+
value: "oldest",
|
|
49
|
+
children: h("notifications.oldest", "Oldest")
|
|
50
|
+
}),
|
|
51
|
+
/* @__PURE__ */ i("option", {
|
|
52
|
+
value: "priority",
|
|
53
|
+
children: h("notifications.csv.priority", "Priority")
|
|
54
|
+
})
|
|
60
55
|
]
|
|
61
56
|
})]
|
|
62
|
-
},
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
57
|
+
}),
|
|
58
|
+
u.length > 1 && /* @__PURE__ */ a("div", {
|
|
59
|
+
className: "flex flex-wrap gap-1",
|
|
60
|
+
children: [/* @__PURE__ */ i("button", {
|
|
61
|
+
onClick: () => p("ALL"),
|
|
62
|
+
className: `px-2 py-0.5 text-[11px] font-medium rounded-full whitespace-nowrap transition-colors ${c === "ALL" ? "bg-bg-elevated text-text-primary border border-border-default" : "text-text-muted hover:text-text-secondary hover:bg-bg-sunken"}`,
|
|
63
|
+
children: h("pages.marketplace.allApps", "All Apps")
|
|
64
|
+
}), u.map(([e, t]) => /* @__PURE__ */ a("button", {
|
|
65
|
+
onClick: () => p(e),
|
|
66
|
+
className: `px-2 py-0.5 text-[11px] font-medium rounded-full whitespace-nowrap transition-colors ${c === e ? "bg-bg-elevated text-text-primary border border-border-default" : "text-text-muted hover:text-text-secondary hover:bg-bg-sunken"}`,
|
|
67
|
+
children: [e, /* @__PURE__ */ a("span", {
|
|
68
|
+
className: "ml-1 text-text-muted",
|
|
69
|
+
children: [
|
|
70
|
+
"(",
|
|
71
|
+
t,
|
|
72
|
+
")"
|
|
73
|
+
]
|
|
74
|
+
})]
|
|
75
|
+
}, e))]
|
|
76
|
+
})
|
|
77
|
+
]
|
|
78
|
+
});
|
|
79
|
+
};
|
|
66
80
|
//#endregion
|
|
67
|
-
export {
|
|
81
|
+
export { o as NotificationFilters };
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { useShellLabel as e } from "../../shared/providers/shell/useShellLabel.js";
|
|
2
|
+
import { PushOptInToggle as t } from "./PushOptInToggle.js";
|
|
3
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
3
4
|
//#region src/chrome/notificationCenter/NotificationFooter.tsx
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
className: "
|
|
8
|
-
children: [/* @__PURE__ */ n("
|
|
9
|
-
className: "
|
|
10
|
-
children: [
|
|
11
|
-
|
|
12
|
-
" notification",
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
children: "View All"
|
|
5
|
+
var i = ({ totalCount: i, onViewAll: a }) => {
|
|
6
|
+
let o = e();
|
|
7
|
+
return /* @__PURE__ */ r("div", {
|
|
8
|
+
className: "border-t border-border-subtle",
|
|
9
|
+
children: [/* @__PURE__ */ n(t, {}), /* @__PURE__ */ r("div", {
|
|
10
|
+
className: "flex items-center justify-between px-3 pb-3 pt-0",
|
|
11
|
+
children: [/* @__PURE__ */ n("span", {
|
|
12
|
+
className: "text-[11px] text-text-muted",
|
|
13
|
+
children: i === 1 ? o("notifications.countOne", "{{count}} notification", { count: i }) : o("notifications.countMany", "{{count}} notifications", { count: i })
|
|
14
|
+
}), a && /* @__PURE__ */ n("button", {
|
|
15
|
+
type: "button",
|
|
16
|
+
onClick: a,
|
|
17
|
+
className: "text-xs text-action-primary-bg hover:underline font-medium",
|
|
18
|
+
children: o("common.viewAll", "View All")
|
|
19
|
+
})]
|
|
20
20
|
})]
|
|
21
|
-
})
|
|
22
|
-
}
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
23
|
//#endregion
|
|
24
|
-
export {
|
|
24
|
+
export { i as NotificationFooter };
|
|
@@ -1,75 +1,79 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useShellLabel as e } from "../../shared/providers/shell/useShellLabel.js";
|
|
2
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
2
3
|
//#region src/chrome/notificationCenter/NotificationHeader.tsx
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
className: "flex items-center
|
|
7
|
-
children: [
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
var r = ({ isMobile: r, unreadCount: i, onClose: a, onMarkAllAsRead: o }) => {
|
|
5
|
+
let s = e();
|
|
6
|
+
return /* @__PURE__ */ n("div", {
|
|
7
|
+
className: "flex items-center justify-between p-4 border-b border-border-subtle",
|
|
8
|
+
children: [/* @__PURE__ */ n("div", {
|
|
9
|
+
className: "flex items-center gap-2",
|
|
10
|
+
children: [
|
|
11
|
+
r && /* @__PURE__ */ t("button", {
|
|
12
|
+
type: "button",
|
|
13
|
+
onClick: a,
|
|
14
|
+
className: "p-1 rounded-button hover:bg-bg-sunken text-text-primary",
|
|
15
|
+
"aria-label": s("notifications.close", "Close"),
|
|
16
|
+
children: /* @__PURE__ */ t("svg", {
|
|
17
|
+
className: "size-5",
|
|
18
|
+
fill: "none",
|
|
19
|
+
stroke: "currentColor",
|
|
20
|
+
viewBox: "0 0 24 24",
|
|
21
|
+
children: /* @__PURE__ */ t("path", {
|
|
22
|
+
strokeLinecap: "round",
|
|
23
|
+
strokeLinejoin: "round",
|
|
24
|
+
strokeWidth: 2,
|
|
25
|
+
d: "M15 19l-7-7 7-7"
|
|
26
|
+
})
|
|
27
|
+
})
|
|
28
|
+
}),
|
|
29
|
+
/* @__PURE__ */ t("svg", {
|
|
30
|
+
className: "size-5 text-text-primary",
|
|
15
31
|
fill: "none",
|
|
16
32
|
stroke: "currentColor",
|
|
17
33
|
viewBox: "0 0 24 24",
|
|
18
|
-
children: /* @__PURE__ */
|
|
34
|
+
children: /* @__PURE__ */ t("path", {
|
|
19
35
|
strokeLinecap: "round",
|
|
20
36
|
strokeLinejoin: "round",
|
|
21
37
|
strokeWidth: 2,
|
|
22
|
-
d: "M15
|
|
38
|
+
d: "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"
|
|
23
39
|
})
|
|
40
|
+
}),
|
|
41
|
+
/* @__PURE__ */ t("h2", {
|
|
42
|
+
className: "text-sm font-semibold text-text-primary",
|
|
43
|
+
children: s("notifications.bellLabel", "Notifications")
|
|
44
|
+
}),
|
|
45
|
+
i > 0 && /* @__PURE__ */ t("span", {
|
|
46
|
+
className: "inline-flex items-center justify-center min-w-[20px] h-5 px-1.5 text-xs font-semibold text-action-primary-text bg-action-primary-bg rounded-full",
|
|
47
|
+
children: i > 9 ? "9+" : i
|
|
24
48
|
})
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
children: [r > 0 && /* @__PURE__ */ e("button", {
|
|
50
|
-
type: "button",
|
|
51
|
-
onClick: a,
|
|
52
|
-
className: "text-xs text-action-primary-bg hover:underline font-medium",
|
|
53
|
-
children: "Mark all read"
|
|
54
|
-
}), !n && /* @__PURE__ */ e("button", {
|
|
55
|
-
type: "button",
|
|
56
|
-
onClick: i,
|
|
57
|
-
className: "p-1 rounded-button hover:bg-bg-sunken text-text-muted",
|
|
58
|
-
"aria-label": "Close panel",
|
|
59
|
-
children: /* @__PURE__ */ e("svg", {
|
|
60
|
-
className: "size-4",
|
|
61
|
-
fill: "none",
|
|
62
|
-
stroke: "currentColor",
|
|
63
|
-
viewBox: "0 0 24 24",
|
|
64
|
-
children: /* @__PURE__ */ e("path", {
|
|
65
|
-
strokeLinecap: "round",
|
|
66
|
-
strokeLinejoin: "round",
|
|
67
|
-
strokeWidth: 2,
|
|
68
|
-
d: "M6 18L18 6M6 6l12 12"
|
|
49
|
+
]
|
|
50
|
+
}), /* @__PURE__ */ n("div", {
|
|
51
|
+
className: "flex items-center gap-2",
|
|
52
|
+
children: [i > 0 && /* @__PURE__ */ t("button", {
|
|
53
|
+
type: "button",
|
|
54
|
+
onClick: o,
|
|
55
|
+
className: "text-xs text-action-primary-bg hover:underline font-medium",
|
|
56
|
+
children: s("notifCommon.markAllRead", "Mark all read")
|
|
57
|
+
}), !r && /* @__PURE__ */ t("button", {
|
|
58
|
+
type: "button",
|
|
59
|
+
onClick: a,
|
|
60
|
+
className: "p-1 rounded-button hover:bg-bg-sunken text-text-muted",
|
|
61
|
+
"aria-label": s("notifCommon.closePanel", "Close panel"),
|
|
62
|
+
children: /* @__PURE__ */ t("svg", {
|
|
63
|
+
className: "size-4",
|
|
64
|
+
fill: "none",
|
|
65
|
+
stroke: "currentColor",
|
|
66
|
+
viewBox: "0 0 24 24",
|
|
67
|
+
children: /* @__PURE__ */ t("path", {
|
|
68
|
+
strokeLinecap: "round",
|
|
69
|
+
strokeLinejoin: "round",
|
|
70
|
+
strokeWidth: 2,
|
|
71
|
+
d: "M6 18L18 6M6 6l12 12"
|
|
72
|
+
})
|
|
69
73
|
})
|
|
70
|
-
})
|
|
74
|
+
})]
|
|
71
75
|
})]
|
|
72
|
-
})
|
|
73
|
-
}
|
|
76
|
+
});
|
|
77
|
+
};
|
|
74
78
|
//#endregion
|
|
75
|
-
export {
|
|
79
|
+
export { r as NotificationHeader };
|