impact-nova 1.5.13 → 1.5.15

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 (39) hide show
  1. package/dist/components/ui/badge.d.ts +1 -1
  2. package/dist/components/ui/badge.js +12 -11
  3. package/dist/components/ui/breadcrumb.js +25 -20
  4. package/dist/components/ui/command-palette/command-palette-layout.d.ts +28 -0
  5. package/dist/components/ui/command-palette/command-palette-layout.js +59 -0
  6. package/dist/components/ui/command-palette/command-palette.d.ts +5 -2
  7. package/dist/components/ui/command-palette/command-palette.js +271 -264
  8. package/dist/components/ui/command-palette/index.d.ts +1 -1
  9. package/dist/components/ui/command-palette/index.js +42 -41
  10. package/dist/components/ui/command-palette/shortcut-settings.d.ts +3 -3
  11. package/dist/components/ui/command-palette/shortcut-settings.js +112 -107
  12. package/dist/components/ui/command-palette/utils.d.ts +6 -1
  13. package/dist/components/ui/command-palette/utils.js +81 -74
  14. package/dist/components/ui/data-table/data-table.js +51 -40
  15. package/dist/components/ui/dialog.js +2 -5
  16. package/dist/components/ui/empty-container.js +72 -65
  17. package/dist/components/ui/filter-panel/filter-panel.d.ts +2 -2
  18. package/dist/components/ui/filter-panel/filter-panel.js +154 -76
  19. package/dist/components/ui/filter-strip/filter-summary.js +30 -32
  20. package/dist/components/ui/header.d.ts +7 -3
  21. package/dist/components/ui/header.js +46 -44
  22. package/dist/components/ui/horizontal-scroller/horizontal-scroller.js +1 -1
  23. package/dist/components/ui/select/select.js +84 -88
  24. package/dist/components/ui/sidebar.js +341 -305
  25. package/dist/components/ui/types/filter-panel.types.d.ts +3 -0
  26. package/dist/components/ui/types/horizontal-scroller.types.d.ts +1 -1
  27. package/dist/i18n/defaultMessages.d.ts +1 -0
  28. package/dist/i18n/defaultMessages.js +1 -0
  29. package/dist/i18n/locales/de.js +1 -0
  30. package/dist/i18n/locales/es.js +1 -0
  31. package/dist/i18n/locales/hi.js +1 -0
  32. package/dist/i18n/locales/kn.js +1 -0
  33. package/dist/icons/assets/clock.svg.js +5 -0
  34. package/dist/icons/index.d.ts +1 -0
  35. package/dist/icons/index.js +159 -157
  36. package/dist/impact-nova.css +1 -1
  37. package/dist/index.js +106 -105
  38. package/package.json +1 -1
  39. package/tailwind.config.js +14 -1
@@ -2,23 +2,46 @@ import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
2
  import b from "react";
3
3
  import { Sheet as g, SheetContent as v, SheetDescription as y, SheetTitle as w, SheetClose as N } from "../sheet.js";
4
4
  import { cn as n } from "../../../lib/utils.js";
5
- import { MultiColorFilter as C, Cross as F, Info as m } from "../../../icons/index.js";
6
- import { Button as P } from "../button.js";
5
+ import { MultiColorFilter as C, Cross as k, Info as m } from "../../../icons/index.js";
6
+ import { Button as F } from "../button.js";
7
7
  import { Tooltip as d, TooltipTrigger as h, TooltipContent as f } from "../tooltip.js";
8
- import { Kbd as k } from "../command-palette/kbd.js";
8
+ import { Kbd as P } from "../command-palette/kbd.js";
9
9
  import { useImpactNovaI18n as u } from "../../../i18n/ImpactNovaI18nContext.js";
10
- const j = ({ title: l, children: a, className: i }) => {
10
+ const j = ({
11
+ title: l,
12
+ children: a,
13
+ className: i
14
+ }) => {
11
15
  const { t: c } = u();
12
- return /* @__PURE__ */ t("div", { "data-component": "filter-panel-header", className: n("flex shrink-0 flex-row items-center justify-between border-b px-4 py-3 bg-white", i), children: [
13
- /* @__PURE__ */ t("div", { className: "flex items-center gap-3", children: [
14
- /* @__PURE__ */ e("div", { className: "flex h-6 w-6 items-center justify-center", children: /* @__PURE__ */ e(C, { className: "h-5 w-5" }) }),
15
- /* @__PURE__ */ e(w, { className: "text-lg font-bold text-[#1f2b4d]", children: l })
16
- ] }),
17
- /* @__PURE__ */ t("div", { className: "flex items-center gap-2", children: [
18
- a,
19
- /* @__PURE__ */ e(N, { asChild: !0, children: /* @__PURE__ */ e(P, { variant: "secondary", size: "icon", "aria-label": c("aria.close"), "data-component": "filter-panel-close", children: /* @__PURE__ */ e(F, { className: "h-3 w-3" }) }) })
20
- ] })
21
- ] });
16
+ return /* @__PURE__ */ t(
17
+ "div",
18
+ {
19
+ "data-component": "filter-panel-header",
20
+ className: n(
21
+ "flex shrink-0 flex-row items-center justify-between border-b px-4 py-3 bg-white",
22
+ i
23
+ ),
24
+ children: [
25
+ /* @__PURE__ */ t("div", { className: "flex items-center gap-3", children: [
26
+ /* @__PURE__ */ e("div", { className: "flex h-6 w-6 items-center justify-center", children: /* @__PURE__ */ e(C, { className: "h-5 w-5" }) }),
27
+ /* @__PURE__ */ e(w, { className: "text-lg font-bold text-[#1f2b4d]", children: l })
28
+ ] }),
29
+ /* @__PURE__ */ t("div", { className: "flex items-center gap-2", children: [
30
+ a,
31
+ /* @__PURE__ */ e(N, { asChild: !0, children: /* @__PURE__ */ e(
32
+ F,
33
+ {
34
+ variant: "secondary",
35
+ size: "icon",
36
+ "aria-label": c("aria.close"),
37
+ "data-component": "filter-panel-close",
38
+ children: /* @__PURE__ */ e(k, { className: "h-3 w-3" })
39
+ }
40
+ ) })
41
+ ] })
42
+ ]
43
+ }
44
+ );
22
45
  }, H = ({
23
46
  open: l,
24
47
  onOpenChange: a,
@@ -60,69 +83,124 @@ const j = ({ title: l, children: a, className: i }) => {
60
83
  className: c
61
84
  }) => {
62
85
  const { t: s } = u();
63
- return /* @__PURE__ */ e("div", { "data-component": "filter-panel-sidebar", className: n("flex w-[200px] shrink-0 flex-col border-r bg-sidebar-light", c), children: /* @__PURE__ */ e("div", { className: "flex flex-1 flex-col py-2 gap-1 overflow-y-auto", children: l.map((r) => {
64
- const o = a === r.id;
65
- return /* @__PURE__ */ t(b.Fragment, { children: [
66
- r.separator && /* @__PURE__ */ e("div", { className: "my-2 h-px bg-gray-200" }),
67
- /* @__PURE__ */ t(
68
- "button",
69
- {
70
- onClick: () => i(r.id),
71
- "data-component": "filter-panel-sidebar-item",
72
- "data-active": o ? "true" : "false",
73
- "data-tab": r.id,
74
- className: n(
75
- "group flex items-center justify-between px-3 py-[6px] mx-2 rounded-lg text-left text-sm font-medium transition-colors",
76
- o ? "bg-active-blue text-primary" : "text-text-secondary hover:bg-active-blue"
77
- ),
78
- children: [
79
- /* @__PURE__ */ t("div", { className: "flex items-center gap-2 min-w-0 flex-1", children: [
80
- /* @__PURE__ */ e("span", { className: n(
81
- "shrink-0",
82
- o ? "text-primary" : "text-text-secondary"
83
- ), children: r.icon }),
84
- /* @__PURE__ */ t("div", { className: "flex items-center gap-1 min-w-0", children: [
85
- /* @__PURE__ */ t(d, { children: [
86
- /* @__PURE__ */ e(h, { asChild: !0, children: /* @__PURE__ */ e("span", { className: "truncate font-['Manrope']", children: r.label }) }),
87
- /* @__PURE__ */ e(f, { variant: "tertiary", side: "right", children: r.tooltipKeybinding ? /* @__PURE__ */ t("span", { className: "flex items-center gap-2", children: [
88
- r.label,
89
- " ",
90
- /* @__PURE__ */ e(k, { keybinding: r.tooltipKeybinding, size: "sm" })
91
- ] }) : r.label })
86
+ return /* @__PURE__ */ e(
87
+ "div",
88
+ {
89
+ "data-component": "filter-panel-sidebar",
90
+ className: n(
91
+ "flex w-[200px] shrink-0 flex-col border-r bg-sidebar-light",
92
+ c
93
+ ),
94
+ children: /* @__PURE__ */ e("div", { className: "flex flex-1 flex-col py-2 gap-1 overflow-y-auto", children: l.map((r) => {
95
+ const o = a === r.id;
96
+ return /* @__PURE__ */ t(b.Fragment, { children: [
97
+ r.separator && /* @__PURE__ */ e("div", { className: "my-2 h-px bg-gray-200" }),
98
+ /* @__PURE__ */ t(
99
+ "button",
100
+ {
101
+ onClick: () => i(r.id),
102
+ "data-component": "filter-panel-sidebar-item",
103
+ "data-active": o ? "true" : "false",
104
+ "data-tab": r.id,
105
+ className: n(
106
+ "group flex items-center justify-between px-3 py-[6px] mx-2 rounded-lg text-left text-sm font-medium transition-colors",
107
+ o ? "bg-active-blue text-primary" : "text-text-secondary hover:bg-active-blue"
108
+ ),
109
+ children: [
110
+ /* @__PURE__ */ t("div", { className: "flex items-center gap-2 min-w-0 flex-1", children: [
111
+ /* @__PURE__ */ e(
112
+ "span",
113
+ {
114
+ className: n(
115
+ "shrink-0",
116
+ o ? "text-primary" : "text-text-secondary"
117
+ ),
118
+ children: r.icon
119
+ }
120
+ ),
121
+ /* @__PURE__ */ t("div", { className: "flex items-center gap-1 min-w-0", children: [
122
+ /* @__PURE__ */ t(d, { children: [
123
+ /* @__PURE__ */ e(h, { asChild: !0, children: /* @__PURE__ */ e("span", { className: "truncate font-['Manrope']", children: r.label }) }),
124
+ /* @__PURE__ */ e(f, { variant: "tertiary", side: "right", children: r.tooltipKeybinding ? /* @__PURE__ */ t("span", { className: "flex items-center gap-2", children: [
125
+ r.label,
126
+ " ",
127
+ /* @__PURE__ */ e(
128
+ P,
129
+ {
130
+ keybinding: r.tooltipKeybinding,
131
+ size: "sm"
132
+ }
133
+ )
134
+ ] }) : r.label })
135
+ ] }),
136
+ r.isRequired && /* @__PURE__ */ e("span", { className: "shrink-0 text-error", children: "*" })
137
+ ] })
92
138
  ] }),
93
- r.isRequired && /* @__PURE__ */ e("span", { className: "shrink-0 text-error", children: "*" })
94
- ] })
95
- ] }),
96
- /* @__PURE__ */ t("div", { className: "flex items-center gap-1 shrink-0 ml-1", children: [
97
- r.count !== void 0 && r.count > 0 && /* @__PURE__ */ t(d, { children: [
98
- /* @__PURE__ */ e(h, { asChild: !0, children: /* @__PURE__ */ e("span", { className: n(
99
- "flex h-5 items-center justify-center rounded-full px-2 text-[11px]",
100
- o ? "bg-white text-[#4259ee] border border-gray-100" : "bg-white border border-gray-100"
101
- ), children: r.count }) }),
102
- /* @__PURE__ */ e(f, { variant: "tertiary", side: "top", children: s("filterPanel.filtersAppliedCount", { count: r.count }) })
103
- ] }),
104
- r.hasError && /* @__PURE__ */ t(d, { children: [
105
- /* @__PURE__ */ e(h, { asChild: !0, children: /* @__PURE__ */ e(m, { className: "h-4 w-4 text-error" }) }),
106
- /* @__PURE__ */ e(f, { variant: "tertiary", children: s("filterPanel.tabContainsErrors") })
107
- ] }),
108
- r.hasWarning && /* @__PURE__ */ t(d, { children: [
109
- /* @__PURE__ */ e(h, { asChild: !0, children: /* @__PURE__ */ e(m, { className: "h-4 w-4 text-warning" }) }),
110
- /* @__PURE__ */ e(f, { variant: "tertiary", children: s("filterPanel.tabHasWarnings") })
111
- ] }),
112
- r.hasInfo && /* @__PURE__ */ t(d, { children: [
113
- /* @__PURE__ */ e(h, { asChild: !0, children: /* @__PURE__ */ e(m, { className: "h-4 w-4 text-icon-gray" }) }),
114
- /* @__PURE__ */ e(f, { variant: "tertiary", children: s("filterPanel.additionalInfoAvailable") })
115
- ] })
116
- ] })
117
- ]
118
- }
119
- )
120
- ] }, r.id);
121
- }) }) });
122
- }, R = ({ children: l, className: a }) => /* @__PURE__ */ e("div", { "data-component": "filter-panel-body", className: n("flex flex-1 flex-col overflow-auto bg-white p-4", a), children: l }), W = ({ children: l, className: a, leftAction: i }) => /* @__PURE__ */ t("div", { "data-component": "filter-panel-footer", className: n("flex items-center justify-between border-t bg-white px-4 py-3 shrink-0", a), children: [
123
- /* @__PURE__ */ e("div", { children: i && i }),
124
- /* @__PURE__ */ e("div", { className: "flex items-center gap-3", children: l })
125
- ] });
139
+ /* @__PURE__ */ t("div", { className: "flex items-center gap-1 shrink-0 ml-1", children: [
140
+ r.count !== void 0 && r.count > 0 && /* @__PURE__ */ t(d, { children: [
141
+ /* @__PURE__ */ e(h, { asChild: !0, children: /* @__PURE__ */ e(
142
+ "span",
143
+ {
144
+ className: n(
145
+ "inline-flex h-5 min-w-5 items-center justify-center rounded-full px-1.5 text-[11px] font-medium tabular-nums leading-none shrink-0",
146
+ o ? "bg-white text-[#4259ee] border border-gray-100" : "bg-[#ECEEFD] border border-gray-100"
147
+ ),
148
+ children: r.count
149
+ }
150
+ ) }),
151
+ /* @__PURE__ */ e(f, { variant: "tertiary", side: "top", children: s(
152
+ r.countBadgeContext === "savedFiltersTotal" ? "filterPanel.savedFiltersAvailableCount" : "filterPanel.filtersAppliedCount",
153
+ { count: r.count }
154
+ ) })
155
+ ] }),
156
+ r.hasError && /* @__PURE__ */ t(d, { children: [
157
+ /* @__PURE__ */ e(h, { asChild: !0, children: /* @__PURE__ */ e(m, { className: "h-5 w-5 shrink-0 text-error" }) }),
158
+ /* @__PURE__ */ e(f, { variant: "tertiary", children: s("filterPanel.tabContainsErrors") })
159
+ ] }),
160
+ r.hasWarning && /* @__PURE__ */ t(d, { children: [
161
+ /* @__PURE__ */ e(h, { asChild: !0, children: /* @__PURE__ */ e(m, { className: "h-5 w-5 shrink-0 text-warning" }) }),
162
+ /* @__PURE__ */ e(f, { variant: "tertiary", children: s("filterPanel.tabHasWarnings") })
163
+ ] }),
164
+ r.hasInfo && /* @__PURE__ */ t(d, { children: [
165
+ /* @__PURE__ */ e(h, { asChild: !0, children: /* @__PURE__ */ e(m, { className: "h-5 w-5 shrink-0 text-icon-gray" }) }),
166
+ /* @__PURE__ */ e(f, { variant: "tertiary", children: s("filterPanel.additionalInfoAvailable") })
167
+ ] })
168
+ ] })
169
+ ]
170
+ }
171
+ )
172
+ ] }, r.id);
173
+ }) })
174
+ }
175
+ );
176
+ }, R = ({ children: l, className: a }) => /* @__PURE__ */ e(
177
+ "div",
178
+ {
179
+ "data-component": "filter-panel-body",
180
+ className: n(
181
+ "flex flex-1 flex-col overflow-auto bg-white p-4",
182
+ a
183
+ ),
184
+ children: l
185
+ }
186
+ ), W = ({
187
+ children: l,
188
+ className: a,
189
+ leftAction: i
190
+ }) => /* @__PURE__ */ t(
191
+ "div",
192
+ {
193
+ "data-component": "filter-panel-footer",
194
+ className: n(
195
+ "flex items-center justify-between border-t bg-white px-4 py-3 shrink-0",
196
+ a
197
+ ),
198
+ children: [
199
+ /* @__PURE__ */ e("div", { children: i && i }),
200
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-3", children: l })
201
+ ]
202
+ }
203
+ );
126
204
  export {
127
205
  H as FilterPanel,
128
206
  R as FilterPanelBody,
@@ -1,4 +1,4 @@
1
- import { jsxs as t, jsx as e } from "react/jsx-runtime";
1
+ import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
2
  import * as s from "react";
3
3
  import { ChevronDown as V, Search as Y } from "lucide-react";
4
4
  import { cn as y } from "../../../lib/utils.js";
@@ -22,7 +22,7 @@ const fe = ({
22
22
  onDropdownOpenChange: A,
23
23
  isLoadingFilterPreferencesList: j = !1
24
24
  }) => {
25
- const { t: r } = $(), [p, v] = s.useState(!1), I = (a) => {
25
+ const { t } = $(), [p, v] = s.useState(!1), I = (a) => {
26
26
  v(a), A?.(a);
27
27
  }, [b, M] = s.useState(""), [d, O] = s.useState(""), [n, G] = s.useState("All"), [i, g] = s.useState(null);
28
28
  s.useEffect(() => {
@@ -31,7 +31,10 @@ const fe = ({
31
31
  }, 300);
32
32
  return () => clearTimeout(a);
33
33
  }, [b]), s.useEffect(() => {
34
- f && f(d, n === "All" ? void 0 : n);
34
+ f && f(
35
+ d,
36
+ n === "All" ? void 0 : n
37
+ );
35
38
  }, [d, n, f]), s.useEffect(() => {
36
39
  p && g({ label: c });
37
40
  }, [p, c]);
@@ -41,7 +44,7 @@ const fe = ({
41
44
  i && (w?.(i.label), i.savedItem && k?.(i.savedItem), v(!1));
42
45
  }, _ = () => {
43
46
  v(!1);
44
- }, E = () => !x || x.length === 0 ? null : /* @__PURE__ */ t("div", { className: "flex flex-col", children: [
47
+ }, E = () => !x || x.length === 0 ? null : /* @__PURE__ */ r("div", { className: "flex flex-col", children: [
45
48
  /* @__PURE__ */ e("div", { className: "px-1 py-[6px] text-xs font-medium text-[#60697d] font-['Manrope']", children: "Recent" }),
46
49
  /* @__PURE__ */ e("div", { className: "mb-[6px] flex flex-col", children: x.map((a, l) => {
47
50
  const o = a.map((z) => z.label).join(", "), D = i?.label === o;
@@ -53,7 +56,7 @@ const fe = ({
53
56
  D && "bg-[#edf0ff]"
54
57
  ),
55
58
  onClick: () => g({ label: o }),
56
- children: /* @__PURE__ */ t(m, { children: [
59
+ children: /* @__PURE__ */ r(m, { children: [
57
60
  /* @__PURE__ */ e(h, { asChild: !0, children: /* @__PURE__ */ e("span", { className: "text-sm font-['Manrope'] truncate text-[#1f2b4d]", children: o }) }),
58
61
  /* @__PURE__ */ e(u, { variant: "tertiary", side: "right", children: o })
59
62
  ] })
@@ -68,7 +71,9 @@ const fe = ({
68
71
  let a = T?.filter(
69
72
  (l) => n === "All" || l.type === n
70
73
  );
71
- if (!f && d && (a = a?.filter((l) => l.label.toLowerCase().includes(d.toLowerCase()))), !a || a.length === 0) {
74
+ if (!f && d && (a = a?.filter(
75
+ (l) => l.label.toLowerCase().includes(d.toLowerCase())
76
+ )), !a || a.length === 0) {
72
77
  let l = "No saved filters found";
73
78
  if (!!d)
74
79
  switch (n) {
@@ -109,7 +114,7 @@ const fe = ({
109
114
  o ? "bg-[#edf0ff]" : "text-[#1f2b4d]"
110
115
  ),
111
116
  onClick: () => g({ label: l.label, savedItem: l }),
112
- children: /* @__PURE__ */ t(m, { children: [
117
+ children: /* @__PURE__ */ r(m, { children: [
113
118
  /* @__PURE__ */ e(h, { asChild: !0, children: /* @__PURE__ */ e("span", { className: "truncate", children: l.label }) }),
114
119
  /* @__PURE__ */ e(u, { variant: "tertiary", side: "right", children: l.label })
115
120
  ] })
@@ -120,22 +125,22 @@ const fe = ({
120
125
  }
121
126
  );
122
127
  }, B = i?.label !== c;
123
- return /* @__PURE__ */ t(q, { open: p, onOpenChange: I, children: [
124
- /* @__PURE__ */ e(H, { asChild: !0, children: /* @__PURE__ */ t("div", { className: "flex cursor-pointer items-center gap-2", children: [
125
- /* @__PURE__ */ e("span", { className: "text-sm font-medium text-[#60697d] font-['Manrope']", children: r("filterStrip.filtersApplied") }),
126
- /* @__PURE__ */ t(m, { children: [
128
+ return /* @__PURE__ */ r(q, { open: p, onOpenChange: I, children: [
129
+ /* @__PURE__ */ e(H, { asChild: !0, children: /* @__PURE__ */ r("div", { className: "flex cursor-pointer items-center gap-2", children: [
130
+ /* @__PURE__ */ e("span", { className: "text-sm font-medium text-[#60697d] font-['Manrope']", children: t("filterStrip.filtersApplied") }),
131
+ /* @__PURE__ */ r(m, { children: [
127
132
  /* @__PURE__ */ e(h, { asChild: !0, children: /* @__PURE__ */ e(
128
133
  X,
129
134
  {
130
135
  color: "primary",
131
136
  variant: "outline",
132
- className: "font-['Manrope'] max-w-[140px] truncate",
133
- children: c || r("filterStrip.notSelected")
137
+ className: "font-['Manrope'] max-w-[140px]",
138
+ children: c || t("filterStrip.notSelected")
134
139
  }
135
140
  ) }),
136
- /* @__PURE__ */ e(u, { variant: "tertiary", side: "top", children: c || r("filterStrip.notSelected") })
141
+ /* @__PURE__ */ e(u, { variant: "tertiary", side: "top", children: c || t("filterStrip.notSelected") })
137
142
  ] }),
138
- /* @__PURE__ */ t(m, { children: [
143
+ /* @__PURE__ */ r(m, { children: [
139
144
  /* @__PURE__ */ e(h, { asChild: !0, children: /* @__PURE__ */ e(
140
145
  "div",
141
146
  {
@@ -146,7 +151,7 @@ const fe = ({
146
151
  children: /* @__PURE__ */ e(V, { className: "h-4 w-4 text-[#1f2b4d]" })
147
152
  }
148
153
  ) }),
149
- /* @__PURE__ */ e(u, { variant: "tertiary", side: "top", children: r("filterStrip.selectFilter") })
154
+ /* @__PURE__ */ e(u, { variant: "tertiary", side: "top", children: t("filterStrip.selectFilter") })
150
155
  ] })
151
156
  ] }) }),
152
157
  /* @__PURE__ */ e(
@@ -155,11 +160,11 @@ const fe = ({
155
160
  align: "start",
156
161
  className: "w-[280px] p-0 shadow-[0_0_4px_0_rgba(0,0,0,0.12)]",
157
162
  sideOffset: 8,
158
- children: /* @__PURE__ */ t("div", { className: "flex w-full flex-col py-[8px] px-[6px]", children: [
163
+ children: /* @__PURE__ */ r("div", { className: "flex w-full flex-col py-[8px] px-[6px]", children: [
159
164
  E(),
160
- /* @__PURE__ */ t("div", { className: "flex flex-col", children: [
161
- /* @__PURE__ */ e("div", { className: "px-1 py-[6px] text-xs font-medium text-[#60697d] font-['Manrope']", children: r("filterStrip.savedFilters") }),
162
- /* @__PURE__ */ t(
165
+ /* @__PURE__ */ r("div", { className: "flex flex-col", children: [
166
+ /* @__PURE__ */ e("div", { className: "px-1 py-[6px] text-xs font-medium text-[#60697d] font-['Manrope']", children: t("filterStrip.savedFilters") }),
167
+ /* @__PURE__ */ r(
163
168
  K,
164
169
  {
165
170
  value: n,
@@ -168,7 +173,7 @@ const fe = ({
168
173
  size: "sm",
169
174
  className: "w-full px-1",
170
175
  children: [
171
- /* @__PURE__ */ e("div", { className: "py-[8px]", children: /* @__PURE__ */ t(U, { children: [
176
+ /* @__PURE__ */ e("div", { className: "py-[8px]", children: /* @__PURE__ */ r(U, { children: [
172
177
  /* @__PURE__ */ e(N, { value: "All", children: "All" }),
173
178
  /* @__PURE__ */ e(N, { value: "Global", children: "Global" }),
174
179
  /* @__PURE__ */ e(N, { value: "Personal", children: "Personal" })
@@ -177,7 +182,7 @@ const fe = ({
177
182
  W,
178
183
  {
179
184
  prefix: /* @__PURE__ */ e(Y, { className: "h-4 w-4 text-gray-500" }),
180
- placeholder: r("filterStrip.searchFiltersPlaceholder"),
185
+ placeholder: t("filterStrip.searchFiltersPlaceholder"),
181
186
  value: b,
182
187
  onChange: L,
183
188
  className: "h-9 px-1 border-none shadow-none focus-visible:ring-0"
@@ -189,22 +194,15 @@ const fe = ({
189
194
  )
190
195
  ] }),
191
196
  /* @__PURE__ */ e(C, { className: "my-2" }),
192
- /* @__PURE__ */ t("div", { className: "flex justify-end gap-2 px-3 pb-1", children: [
193
- /* @__PURE__ */ e(
194
- S,
195
- {
196
- variant: "secondary",
197
- onClick: _,
198
- children: r("prompt.cancel")
199
- }
200
- ),
197
+ /* @__PURE__ */ r("div", { className: "flex justify-end gap-2 px-3 pb-1", children: [
198
+ /* @__PURE__ */ e(S, { variant: "secondary", onClick: _, children: t("prompt.cancel") }),
201
199
  /* @__PURE__ */ e(
202
200
  S,
203
201
  {
204
202
  variant: "default",
205
203
  onClick: Q,
206
204
  disabled: !B,
207
- children: r("filterStrip.applyFilter")
205
+ children: t("filterStrip.applyFilter")
208
206
  }
209
207
  )
210
208
  ] })
@@ -1,3 +1,4 @@
1
+ import { KeyBinding } from './command-palette/utils';
1
2
  import * as React from "react";
2
3
  declare const Header: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>>;
3
4
  declare const HeaderLeft: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
@@ -5,11 +6,14 @@ declare const HeaderRight: React.ForwardRefExoticComponent<React.HTMLAttributes<
5
6
  declare const HeaderLogo: React.ForwardRefExoticComponent<React.AnchorHTMLAttributes<HTMLAnchorElement> & React.RefAttributes<HTMLAnchorElement>>;
6
7
  declare const HeaderSeparator: React.ForwardRefExoticComponent<Omit<Omit<import('@radix-ui/react-separator').SeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
8
  declare const HeaderTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
8
- interface HeaderBotButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
9
- }
9
+ type HeaderBotButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement>;
10
10
  declare const HeaderBotButton: React.ForwardRefExoticComponent<HeaderBotButtonProps & React.RefAttributes<HTMLButtonElement>>;
11
- interface NotificationIconButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
11
+ interface NotificationIconButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "children"> {
12
12
  showIndicator?: boolean;
13
+ /** Passed through to the underlying icon `Button` tooltip. */
14
+ tooltipSide?: "top" | "bottom" | "left" | "right";
15
+ /** Keyboard shortcut shown in the tooltip next to the label (requires `aria-label`). */
16
+ tooltipKeybinding?: KeyBinding;
13
17
  }
14
18
  declare const NotificationIconButton: React.ForwardRefExoticComponent<NotificationIconButtonProps & React.RefAttributes<HTMLButtonElement>>;
15
19
  export { Header, HeaderLeft, HeaderRight, HeaderLogo, HeaderSeparator, HeaderTitle, HeaderBotButton, NotificationIconButton, };
@@ -1,12 +1,12 @@
1
- import { jsx as i, jsxs as c, Fragment as l } from "react/jsx-runtime";
2
- import * as o from "react";
1
+ import { jsx as o, jsxs as c, Fragment as f } from "react/jsx-runtime";
2
+ import * as i from "react";
3
3
  import { cn as s } from "../../lib/utils.js";
4
- import { Button as f } from "./button.js";
5
- import { Separator as m } from "./separator.js";
6
- import { Alan as p, IA as x, Bell as h } from "../../icons/index.js";
4
+ import { Button as m } from "./button.js";
5
+ import { Separator as p } from "./separator.js";
6
+ import { Alan as x, IA as h, Bell as N } from "../../icons/index.js";
7
7
  /* empty css */
8
- import { useImpactNovaI18n as N } from "../../i18n/ImpactNovaI18nContext.js";
9
- const u = o.forwardRef(({ className: t, children: e, ...a }, r) => /* @__PURE__ */ i(
8
+ import { useImpactNovaI18n as u } from "../../i18n/ImpactNovaI18nContext.js";
9
+ const w = i.forwardRef(({ className: t, children: e, ...a }, r) => /* @__PURE__ */ o(
10
10
  "header",
11
11
  {
12
12
  ref: r,
@@ -18,8 +18,8 @@ const u = o.forwardRef(({ className: t, children: e, ...a }, r) => /* @__PURE__
18
18
  children: e
19
19
  }
20
20
  ));
21
- u.displayName = "Header";
22
- const w = o.forwardRef(({ className: t, children: e, ...a }, r) => /* @__PURE__ */ i(
21
+ w.displayName = "Header";
22
+ const g = i.forwardRef(({ className: t, children: e, ...a }, r) => /* @__PURE__ */ o(
23
23
  "div",
24
24
  {
25
25
  ref: r,
@@ -28,8 +28,8 @@ const w = o.forwardRef(({ className: t, children: e, ...a }, r) => /* @__PURE__
28
28
  children: e
29
29
  }
30
30
  ));
31
- w.displayName = "HeaderLeft";
32
- const g = o.forwardRef(({ className: t, children: e, ...a }, r) => /* @__PURE__ */ i(
31
+ g.displayName = "HeaderLeft";
32
+ const y = i.forwardRef(({ className: t, children: e, ...a }, r) => /* @__PURE__ */ o(
33
33
  "div",
34
34
  {
35
35
  ref: r,
@@ -38,20 +38,20 @@ const g = o.forwardRef(({ className: t, children: e, ...a }, r) => /* @__PURE__
38
38
  children: e
39
39
  }
40
40
  ));
41
- g.displayName = "HeaderRight";
42
- const y = o.forwardRef(({ className: t, children: e, href: a = "/", ...r }, n) => /* @__PURE__ */ i(
41
+ y.displayName = "HeaderRight";
42
+ const v = i.forwardRef(({ className: t, children: e, href: a = "/", ...r }, n) => /* @__PURE__ */ o(
43
43
  "a",
44
44
  {
45
45
  href: a,
46
46
  ref: n,
47
47
  className: s("h-9 flex items-center justify-center cursor-pointer", t),
48
48
  ...r,
49
- children: e || /* @__PURE__ */ i(x, { width: 91, height: 36 })
49
+ children: e || /* @__PURE__ */ o(h, { width: 91, height: 36 })
50
50
  }
51
51
  ));
52
- y.displayName = "HeaderLogo";
53
- const v = o.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ i(
54
- m,
52
+ v.displayName = "HeaderLogo";
53
+ const H = i.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ o(
54
+ p,
55
55
  {
56
56
  ref: a,
57
57
  orientation: "vertical",
@@ -59,8 +59,8 @@ const v = o.forwardRef(({ className: t, ...e }, a) => /* @__PURE__ */ i(
59
59
  ...e
60
60
  }
61
61
  ));
62
- v.displayName = "HeaderSeparator";
63
- const H = o.forwardRef(({ className: t, children: e, ...a }, r) => /* @__PURE__ */ i(
62
+ H.displayName = "HeaderSeparator";
63
+ const b = i.forwardRef(({ className: t, children: e, ...a }, r) => /* @__PURE__ */ o(
64
64
  "h1",
65
65
  {
66
66
  ref: r,
@@ -72,9 +72,9 @@ const H = o.forwardRef(({ className: t, children: e, ...a }, r) => /* @__PURE__
72
72
  children: e
73
73
  }
74
74
  ));
75
- H.displayName = "HeaderTitle";
76
- const L = o.forwardRef(
77
- ({ className: t, children: e, ...a }, r) => /* @__PURE__ */ i(
75
+ b.displayName = "HeaderTitle";
76
+ const S = i.forwardRef(
77
+ ({ className: t, children: e, ...a }, r) => /* @__PURE__ */ o(
78
78
  "button",
79
79
  {
80
80
  ref: r,
@@ -84,47 +84,49 @@ const L = o.forwardRef(
84
84
  t
85
85
  ),
86
86
  ...a,
87
- children: e || /* @__PURE__ */ c(l, { children: [
88
- /* @__PURE__ */ i(p, { size: 20, className: "text-white" }),
89
- /* @__PURE__ */ i("span", { className: "text-sm font-semibold leading-[20px] text-white whitespace-nowrap", children: "Ask Alan" })
87
+ children: e || /* @__PURE__ */ c(f, { children: [
88
+ /* @__PURE__ */ o(x, { size: 20, className: "text-white" }),
89
+ /* @__PURE__ */ o("span", { className: "text-sm font-semibold leading-[20px] text-white whitespace-nowrap", children: "Ask Alan" })
90
90
  ] })
91
91
  }
92
92
  )
93
- ), b = o.forwardRef(
94
- ({ className: t, showIndicator: e, children: a, ...r }, n) => {
95
- const { t: d } = N();
93
+ ), R = i.forwardRef(
94
+ ({ className: t, showIndicator: e, tooltipSide: a = "top", tooltipKeybinding: r, ...n }, d) => {
95
+ const { t: l } = u();
96
96
  return /* @__PURE__ */ c(
97
- f,
97
+ m,
98
98
  {
99
99
  variant: "ghost",
100
100
  size: "icon",
101
- ref: n,
102
- "aria-label": d("notificationPanel.title"),
101
+ ref: d,
102
+ "aria-label": l("notificationPanel.title"),
103
+ tooltipSide: a,
104
+ tooltipKeybinding: r,
103
105
  "data-indicator": e ? "" : void 0,
104
106
  className: s(
105
107
  "text-gray-500 relative [&_svg]:size-6 hover:text-gray-900",
106
108
  t
107
109
  ),
108
- ...r,
110
+ ...n,
109
111
  children: [
110
- /* @__PURE__ */ i(h, { size: 24 }),
112
+ /* @__PURE__ */ o(N, { size: 24 }),
111
113
  e && /* @__PURE__ */ c("div", { className: "notification-indicator", children: [
112
- /* @__PURE__ */ i("div", { className: "notification-pulse" }),
113
- /* @__PURE__ */ i("div", { className: "notification-dot" })
114
+ /* @__PURE__ */ o("div", { className: "notification-pulse" }),
115
+ /* @__PURE__ */ o("div", { className: "notification-dot" })
114
116
  ] })
115
117
  ]
116
118
  }
117
119
  );
118
120
  }
119
121
  );
120
- b.displayName = "NotificationIconButton";
122
+ R.displayName = "NotificationIconButton";
121
123
  export {
122
- u as Header,
123
- L as HeaderBotButton,
124
- w as HeaderLeft,
125
- y as HeaderLogo,
126
- g as HeaderRight,
127
- v as HeaderSeparator,
128
- H as HeaderTitle,
129
- b as NotificationIconButton
124
+ w as Header,
125
+ S as HeaderBotButton,
126
+ g as HeaderLeft,
127
+ v as HeaderLogo,
128
+ y as HeaderRight,
129
+ H as HeaderSeparator,
130
+ b as HeaderTitle,
131
+ R as NotificationIconButton
130
132
  };
@@ -11,7 +11,7 @@ const F = a.forwardRef(
11
11
  items: u,
12
12
  renderItem: R,
13
13
  scrollStep: g = 200,
14
- hideScrollbar: p = !1,
14
+ hideScrollbar: p = !0,
15
15
  controlsPosition: s = "right",
16
16
  renderPrevious: v,
17
17
  renderNext: x,