@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.
Files changed (65) hide show
  1. package/dist/chrome/AccountSwitcher.js +90 -89
  2. package/dist/chrome/Breadcrumbs.js +1 -1
  3. package/dist/chrome/CommandPalette.js +91 -90
  4. package/dist/chrome/Footer.js +31 -8
  5. package/dist/chrome/GlobalSearch.js +78 -77
  6. package/dist/chrome/HeaderBar.js +1 -1
  7. package/dist/chrome/HeaderThemeSwitcher.js +48 -47
  8. package/dist/chrome/LanguagePickerSheet.js +23 -22
  9. package/dist/chrome/NavCustomizeDialog.d.ts +0 -14
  10. package/dist/chrome/NavCustomizeDialog.js +114 -122
  11. package/dist/chrome/PanelTabs.js +45 -41
  12. package/dist/chrome/PersonaSurfaceControls.d.ts +0 -17
  13. package/dist/chrome/PersonaSurfaceControls.js +115 -118
  14. package/dist/chrome/PluginSettingsPage.js +29 -28
  15. package/dist/chrome/PluginWidgetGrid.js +19 -18
  16. package/dist/chrome/ProductPickerSheet.js +44 -47
  17. package/dist/chrome/ProductSwitcher.js +2 -6
  18. package/dist/chrome/ProfileSwitcher.js +6 -10
  19. package/dist/chrome/ShortcutHelpDialog.js +60 -65
  20. package/dist/chrome/SideNavigation.js +2 -2
  21. package/dist/chrome/Sidebar.js +44 -43
  22. package/dist/chrome/ThemePreferences.js +289 -267
  23. package/dist/chrome/contextSwitcher/EmptyState.js +31 -27
  24. package/dist/chrome/contextSwitcher/OrganizationList.js +40 -30
  25. package/dist/chrome/contextSwitcher/ProjectList.js +48 -44
  26. package/dist/chrome/contextSwitcher/SearchInput.js +44 -40
  27. package/dist/chrome/contextSwitcher/TriggerButton.js +2 -2
  28. package/dist/chrome/contextSwitcher/WorkspaceList.js +36 -32
  29. package/dist/chrome/globalSearch/AdvancedFiltersPanel.js +128 -126
  30. package/dist/chrome/globalSearch/ResultsList.js +25 -27
  31. package/dist/chrome/globalSearch/SearchInput.js +16 -14
  32. package/dist/chrome/notificationCenter/NotificationCardItem.js +58 -47
  33. package/dist/chrome/notificationCenter/NotificationFilters.js +76 -62
  34. package/dist/chrome/notificationCenter/NotificationFooter.js +21 -21
  35. package/dist/chrome/notificationCenter/NotificationHeader.js +67 -63
  36. package/dist/chrome/notificationCenter/NotificationList.js +75 -71
  37. package/dist/chrome/notificationCenter/NotificationPanel.js +37 -33
  38. package/dist/chrome/notificationCenter/PushOptInToggle.js +33 -32
  39. package/dist/chrome/notificationCenter/constants.d.ts +6 -1
  40. package/dist/chrome/notificationCenter/constants.js +12 -11
  41. package/dist/chrome/useThemeOptionLabels.d.ts +33 -0
  42. package/dist/chrome/useThemeOptionLabels.js +39 -0
  43. package/dist/shared/assistant/conversation.d.ts +8 -0
  44. package/dist/shared/assistant/history/historyMapping.js +1 -1
  45. package/dist/shared/assistant/ui/AssistantMarkdownRenderer.d.ts +6 -6
  46. package/dist/shared/assistant/ui/AssistantMarkdownRenderer.js +86 -85
  47. package/dist/shared/assistant/ui/AssistantMessageItem.js +101 -96
  48. package/dist/shared/assistant/ui/AssistantWriteProposalCard.d.ts +2 -0
  49. package/dist/shared/assistant/ui/AssistantWriteProposalCard.js +93 -89
  50. package/dist/shared/assistant/ui/WorkflowAssistantPanel.js +152 -140
  51. package/dist/shared/assistant/ui/useWriteProposals.js +122 -85
  52. package/dist/shared/assistant/writeProposalDiscovery.d.ts +3 -1
  53. package/dist/shared/assistant/writeProposalDiscovery.js +2 -2
  54. package/dist/shared/events/sinks/RybbitSink.js +2 -2
  55. package/dist/shared/providers/shell/interpolateShellLabel.d.ts +3 -0
  56. package/dist/shared/providers/shell/interpolateShellLabel.js +11 -0
  57. package/dist/shared/providers/shell/useAssistantShellLabels.d.ts +45 -0
  58. package/dist/shared/providers/shell/useAssistantShellLabels.js +54 -0
  59. package/dist/shared/tours/TourPlayer.js +33 -32
  60. package/dist/shared/tours/TourTooltip.js +108 -109
  61. package/dist/shared/tours/tourTrigger/MobileTourSheet.js +98 -85
  62. package/dist/shared/tours/tourTrigger/TourListItemDesktop.js +20 -18
  63. package/dist/shared/tours/tourTrigger/TourListItemMobile.js +23 -25
  64. package/dist/shared-assistant.js +188 -188
  65. package/package.json +2 -2
@@ -1,75 +1,86 @@
1
- import { PRIORITY_CONFIG as e, TYPE_CONFIG as t, formatRelativeTime as n } from "./constants.js";
2
- import { jsx as r, jsxs as i } from "react/jsx-runtime";
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 a = ({ notification: a, onMarkAsRead: o, onDelete: s, onRedirect: c }) => {
5
- let { id: l, title: u, message: d, type: f, priority: p, appName: m, redirectUrl: h, isRead: g, createdAt: _ } = a, v = e[p] ?? e.MEDIUM, y = t[f] ?? {
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: f
18
+ label: m
8
19
  };
9
- return /* @__PURE__ */ i("div", {
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 ${g ? "bg-bg-surface border-border-subtle hover:bg-bg-sunken" : "bg-[var(--color-accent-soft)] border-border-subtle shadow-elevation-1"}`,
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
- g || o(l), h && c(h);
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(), g || o(l), h && c(h));
28
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), v || s(d), _ && l(_));
18
29
  },
19
30
  children: [
20
- !g && /* @__PURE__ */ r("div", { className: "absolute top-3 left-1.5 size-2 rounded-full bg-action-primary-bg" }),
21
- /* @__PURE__ */ r("div", {
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__ */ r("span", {
34
+ children: /* @__PURE__ */ i("span", {
24
35
  className: "text-base",
25
36
  "aria-hidden": "true",
26
- children: y.icon
37
+ children: C.icon
27
38
  })
28
39
  }),
29
- /* @__PURE__ */ i("div", {
40
+ /* @__PURE__ */ a("div", {
30
41
  className: "flex-1 min-w-0",
31
42
  children: [
32
- /* @__PURE__ */ i("div", {
43
+ /* @__PURE__ */ a("div", {
33
44
  className: "flex items-start justify-between gap-2",
34
- children: [/* @__PURE__ */ r("h4", {
35
- className: `text-sm truncate ${g ? "font-normal text-text-secondary" : "font-semibold text-text-primary"}`,
36
- children: u
37
- }), /* @__PURE__ */ i("div", {
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: [!g && /* @__PURE__ */ r("button", {
50
+ children: [!v && /* @__PURE__ */ i("button", {
40
51
  type: "button",
41
52
  onClick: (e) => {
42
- e.stopPropagation(), o(l);
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__ */ r("svg", {
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__ */ r("path", {
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__ */ r("button", {
70
+ }), /* @__PURE__ */ i("button", {
60
71
  type: "button",
61
72
  onClick: (e) => {
62
- e.stopPropagation(), s(l);
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__ */ r("svg", {
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__ */ r("path", {
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__ */ r("p", {
93
+ /* @__PURE__ */ i("p", {
83
94
  className: "text-xs text-text-secondary line-clamp-2 mt-0.5",
84
- children: d
95
+ children: p
85
96
  }),
86
- /* @__PURE__ */ i("div", {
97
+ /* @__PURE__ */ a("div", {
87
98
  className: "flex items-center gap-2 mt-1.5 flex-wrap",
88
99
  children: [
89
- /* @__PURE__ */ r("span", {
90
- className: `inline-flex items-center px-1.5 py-0.5 text-[10px] font-medium rounded ${v.bgColor} ${v.color}`,
91
- children: v.label
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
- m && /* @__PURE__ */ r("span", {
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: m
106
+ children: g
96
107
  }),
97
- /* @__PURE__ */ r("span", {
108
+ /* @__PURE__ */ i("span", {
98
109
  className: "text-[10px] text-text-muted",
99
- children: n(_)
110
+ children: r(y, x)
100
111
  }),
101
- h && /* @__PURE__ */ i("button", {
112
+ _ && /* @__PURE__ */ a("button", {
102
113
  type: "button",
103
114
  onClick: (e) => {
104
- e.stopPropagation(), c(h);
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__ */ r("svg", {
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__ */ r("path", {
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 { a as NotificationCardItem };
140
+ export { o as NotificationCardItem };
@@ -1,67 +1,81 @@
1
- import { FILTER_TABS as e, TYPE_CONFIG as t, TYPE_FILTERS as n } from "./constants.js";
2
- import { jsx as r, jsxs as i } from "react/jsx-runtime";
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 a = ({ filterTab: a, typeFilter: o, appFilter: s, sortBy: c, appNames: l, onFilterTabChange: u, onTypeFilterChange: d, onAppFilterChange: f, onSortByChange: p }) => /* @__PURE__ */ i("div", {
5
- className: "px-4 pt-3 pb-2 space-y-2 border-b border-border-subtle",
6
- children: [
7
- /* @__PURE__ */ r("div", {
8
- className: "flex gap-1",
9
- children: e.map((e) => /* @__PURE__ */ r("button", {
10
- onClick: () => u(e.value),
11
- className: `px-3 py-1 text-xs font-medium rounded-full transition-colors ${a === e.value ? "bg-action-primary-bg text-action-primary-text" : "bg-bg-sunken text-text-secondary hover:bg-bg-sunken"}`,
12
- children: e.label
13
- }, e.value))
14
- }),
15
- /* @__PURE__ */ i("div", {
16
- className: "flex flex-wrap items-center gap-1",
17
- children: [n.map((e) => /* @__PURE__ */ i("button", {
18
- onClick: () => d(e.value),
19
- className: `px-2 py-0.5 text-[11px] font-medium rounded-full whitespace-nowrap transition-colors ${o === e.value ? "bg-bg-elevated text-text-primary border border-border-default" : "text-text-muted hover:text-text-secondary hover:bg-bg-sunken"}`,
20
- children: [e.value !== "ALL" && t[e.value] && /* @__PURE__ */ r("span", {
21
- className: "mr-0.5",
22
- children: t[e.value].icon
23
- }), e.label]
24
- }, e.value)), /* @__PURE__ */ i("select", {
25
- value: c,
26
- onChange: (e) => p(e.target.value),
27
- 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",
28
- "aria-label": "Sort notifications",
29
- children: [
30
- /* @__PURE__ */ r("option", {
31
- value: "newest",
32
- children: "Newest"
33
- }),
34
- /* @__PURE__ */ r("option", {
35
- value: "oldest",
36
- children: "Oldest"
37
- }),
38
- /* @__PURE__ */ r("option", {
39
- value: "priority",
40
- children: "Priority"
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
- t,
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
- }, e))]
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 { a as NotificationFilters };
81
+ export { o as NotificationFilters };
@@ -1,24 +1,24 @@
1
- import { PushOptInToggle as e } from "./PushOptInToggle.js";
2
- import { jsx as t, jsxs as n } from "react/jsx-runtime";
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 r = ({ totalCount: r, onViewAll: i }) => /* @__PURE__ */ n("div", {
5
- className: "border-t border-border-subtle",
6
- children: [/* @__PURE__ */ t(e, {}), /* @__PURE__ */ n("div", {
7
- className: "flex items-center justify-between px-3 pb-3 pt-0",
8
- children: [/* @__PURE__ */ n("span", {
9
- className: "text-[11px] text-text-muted",
10
- children: [
11
- r,
12
- " notification",
13
- r === 1 ? "" : "s"
14
- ]
15
- }), i && /* @__PURE__ */ t("button", {
16
- type: "button",
17
- onClick: i,
18
- className: "text-xs text-action-primary-bg hover:underline font-medium",
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 { r as NotificationFooter };
24
+ export { i as NotificationFooter };
@@ -1,75 +1,79 @@
1
- import { jsx as e, jsxs as t } from "react/jsx-runtime";
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 n = ({ isMobile: n, unreadCount: r, onClose: i, onMarkAllAsRead: a }) => /* @__PURE__ */ t("div", {
4
- className: "flex items-center justify-between p-4 border-b border-border-subtle",
5
- children: [/* @__PURE__ */ t("div", {
6
- className: "flex items-center gap-2",
7
- children: [
8
- n && /* @__PURE__ */ e("button", {
9
- type: "button",
10
- onClick: i,
11
- className: "p-1 rounded-button hover:bg-bg-sunken text-text-primary",
12
- "aria-label": "Close",
13
- children: /* @__PURE__ */ e("svg", {
14
- className: "size-5",
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__ */ e("path", {
34
+ children: /* @__PURE__ */ t("path", {
19
35
  strokeLinecap: "round",
20
36
  strokeLinejoin: "round",
21
37
  strokeWidth: 2,
22
- d: "M15 19l-7-7 7-7"
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
- /* @__PURE__ */ e("svg", {
27
- className: "size-5 text-text-primary",
28
- fill: "none",
29
- stroke: "currentColor",
30
- viewBox: "0 0 24 24",
31
- children: /* @__PURE__ */ e("path", {
32
- strokeLinecap: "round",
33
- strokeLinejoin: "round",
34
- strokeWidth: 2,
35
- 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"
36
- })
37
- }),
38
- /* @__PURE__ */ e("h2", {
39
- className: "text-sm font-semibold text-text-primary",
40
- children: "Notifications"
41
- }),
42
- r > 0 && /* @__PURE__ */ e("span", {
43
- 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",
44
- children: r > 9 ? "9+" : r
45
- })
46
- ]
47
- }), /* @__PURE__ */ t("div", {
48
- className: "flex items-center gap-2",
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 { n as NotificationHeader };
79
+ export { r as NotificationHeader };