impact-nova 1.6.6 → 1.7.0

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 (29) hide show
  1. package/README.md +50 -20
  2. package/dist/components/ui/command-palette/command-palette.d.ts +3 -3
  3. package/dist/components/ui/command-palette/command-palette.js +193 -145
  4. package/dist/components/ui/data-table/data-table-column-list.js +107 -103
  5. package/dist/components/ui/data-table/data-table-column-state.d.ts +16 -0
  6. package/dist/components/ui/data-table/data-table-column-state.js +29 -0
  7. package/dist/components/ui/data-table/data-table-constants.d.ts +6 -3
  8. package/dist/components/ui/data-table/data-table-constants.js +3 -2
  9. package/dist/components/ui/data-table/data-table-view-menu.d.ts +16 -0
  10. package/dist/components/ui/data-table/data-table-view-menu.js +133 -0
  11. package/dist/components/ui/data-table/data-table.js +36 -27
  12. package/dist/components/ui/data-table/index.d.ts +1 -1
  13. package/dist/components/ui/data-table/index.js +24 -19
  14. package/dist/components/ui/dropdown-menu.js +10 -4
  15. package/dist/components/ui/filter-strip/filter-summary.js +198 -118
  16. package/dist/components/ui/sheet.js +57 -34
  17. package/dist/components/ui/tooltip.js +37 -26
  18. package/dist/i18n/defaultMessages.d.ts +2 -0
  19. package/dist/i18n/defaultMessages.js +6 -4
  20. package/dist/i18n/locales/de.js +2 -0
  21. package/dist/i18n/locales/es.js +2 -0
  22. package/dist/i18n/locales/hi.js +2 -0
  23. package/dist/i18n/locales/kn.js +2 -0
  24. package/dist/impact-nova.css +1 -1
  25. package/dist/index.d.ts +2 -2
  26. package/dist/index.js +287 -282
  27. package/package.json +1 -1
  28. package/dist/components/ui/data-table/data-table-view-options.d.ts +0 -8
  29. package/dist/components/ui/data-table/data-table-view-options.js +0 -97
@@ -1,22 +1,27 @@
1
- import { DataTable as t, DataTableContent as o, DataTableToolbar as r } from "./data-table.js";
2
- import { DATA_TABLE_SCOPED_SHEET_HOST_MIN_HEIGHT_PX as l } from "./data-table-constants.js";
3
- import { DataTableColumnList as b } from "./data-table-column-list.js";
4
- import { DataTableContext as p, useDataTable as n } from "./data-table-context.js";
5
- import { DataTableFormatOptions as f } from "./data-table-format-options.js";
6
- import { DataTableSheet as _, DataTableSheetContent as i, DataTableSheetHeader as C, DataTableSheetTrigger as E } from "./data-table-sheet.js";
7
- import { DataTableViewOptions as h } from "./data-table-view-options.js";
1
+ import { DataTable as t, DataTableContent as T, DataTableToolbar as o } from "./data-table.js";
2
+ import { DATA_TABLE_SCOPED_SHEET_HOST_MIN_HEIGHT_PX as D, TABLE_VIEWPORT_SHELL_EXPANDED_CLASS as l } from "./data-table-constants.js";
3
+ import { DataTableColumnList as n } from "./data-table-column-list.js";
4
+ import { DataTableContext as E, useDataTable as S } from "./data-table-context.js";
5
+ import { DataTableFormatOptions as m } from "./data-table-format-options.js";
6
+ import { DataTableSheet as x, DataTableSheetContent as f, DataTableSheetHeader as u, DataTableSheetTrigger as C } from "./data-table-sheet.js";
7
+ import { DataTableViewMenuContent as w, DataTableViewMenuDensity as A, DataTableViewMenuSettingsItem as H, DataTableViewMenuTrigger as L, DataTableViewMenuViewportExpand as M } from "./data-table-view-menu.js";
8
8
  export {
9
- l as DATA_TABLE_SCOPED_SHEET_HOST_MIN_HEIGHT_PX,
9
+ D as DATA_TABLE_SCOPED_SHEET_HOST_MIN_HEIGHT_PX,
10
10
  t as DataTable,
11
- b as DataTableColumnList,
12
- o as DataTableContent,
13
- p as DataTableContext,
14
- f as DataTableFormatOptions,
15
- _ as DataTableSheet,
16
- i as DataTableSheetContent,
17
- C as DataTableSheetHeader,
18
- E as DataTableSheetTrigger,
19
- r as DataTableToolbar,
20
- h as DataTableViewOptions,
21
- n as useDataTable
11
+ n as DataTableColumnList,
12
+ T as DataTableContent,
13
+ E as DataTableContext,
14
+ m as DataTableFormatOptions,
15
+ x as DataTableSheet,
16
+ f as DataTableSheetContent,
17
+ u as DataTableSheetHeader,
18
+ C as DataTableSheetTrigger,
19
+ o as DataTableToolbar,
20
+ w as DataTableViewMenuContent,
21
+ A as DataTableViewMenuDensity,
22
+ H as DataTableViewMenuSettingsItem,
23
+ L as DataTableViewMenuTrigger,
24
+ M as DataTableViewMenuViewportExpand,
25
+ l as TABLE_VIEWPORT_SHELL_EXPANDED_CLASS,
26
+ S as useDataTable
22
27
  };
@@ -93,10 +93,16 @@ const w = l.forwardRef(({ className: a, children: n, checked: o, description: s,
93
93
  onSelect: (p) => p.preventDefault(),
94
94
  ...i,
95
95
  children: [
96
- /* @__PURE__ */ t("span", { className: "absolute left-3 flex h-4 w-4 items-center justify-center", children: /* @__PURE__ */ t("div", { className: r(
97
- "flex h-4 w-4 items-center justify-center rounded-[4px] border border-stroke transition-colors",
98
- o && "bg-brand border-brand text-brand-foreground"
99
- ), children: /* @__PURE__ */ t(e.ItemIndicator, { children: /* @__PURE__ */ t(f, { className: "h-3 w-3", strokeWidth: 3 }) }) }) }),
96
+ /* @__PURE__ */ t("span", { className: "absolute left-3 flex h-4 w-4 items-center justify-center", children: /* @__PURE__ */ t(
97
+ "div",
98
+ {
99
+ className: r(
100
+ "flex h-4 w-4 items-center justify-center rounded-[4px] border border-stroke transition-colors",
101
+ o && "bg-brand border-brand text-brand-foreground"
102
+ ),
103
+ children: /* @__PURE__ */ t(e.ItemIndicator, { children: /* @__PURE__ */ t(f, { className: "h-3 w-3", strokeWidth: 3 }) })
104
+ }
105
+ ) }),
100
106
  /* @__PURE__ */ c("div", { className: "flex items-center gap-2", children: [
101
107
  d && /* @__PURE__ */ t("span", { className: "flex-shrink-0 text-content-secondary [&>svg]:size-4", children: d }),
102
108
  /* @__PURE__ */ c("div", { className: "flex flex-col gap-0.5 justify-center", children: [
@@ -1,85 +1,85 @@
1
- import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
- import * as s from "react";
3
- import { ChevronDown as F, Search as V } from "lucide-react";
4
- import { cn as b } from "../../../lib/utils.js";
5
- import { Popover as Y, PopoverTrigger as q, PopoverContent as H } from "../popover.js";
6
- import { Tooltip as v, TooltipTrigger as g, TooltipContent as y } from "../tooltip.js";
7
- import { Button as S } from "../button.js";
8
- import { Separator as w } from "../separator.js";
9
- import { Tabs as J, TabsList as K, TabsTrigger as N } from "../tabs.js";
10
- import { Input as U } from "../input.js";
11
- import { Badge as W } from "../badge.js";
12
- import { Skeleton as X } from "../skeleton.js";
13
- import { useImpactNovaI18n as Z } from "../../../i18n/ImpactNovaI18nContext.js";
14
- const he = ({
15
- selectedFilter: c,
16
- onSelectedFilterChange: C,
17
- savedFilters: T,
18
- recentFilters: m,
19
- onApplySavedFilter: k,
20
- onSavedFilterSearch: p,
21
- onSavedFiltersScroll: P,
22
- onDropdownOpenChange: A,
23
- isLoadingFilterPreferencesList: j = !1,
24
- onEditSavedFilter: $,
25
- onDeleteSavedFilter: ee,
26
- onSetDefaultSavedFilter: te
1
+ import { jsxs as l, jsx as e, Fragment as K } from "react/jsx-runtime";
2
+ import * as i from "react";
3
+ import { ChevronDown as U, Search as W, Trash2 as X, Pencil as Z, Star as ee } from "lucide-react";
4
+ import { cn as c } from "../../../lib/utils.js";
5
+ import { Popover as te, PopoverTrigger as ae, PopoverContent as le } from "../popover.js";
6
+ import { Tooltip as p, TooltipTrigger as f, TooltipContent as h } from "../tooltip.js";
7
+ import { Button as M } from "../button.js";
8
+ import { Separator as I } from "../separator.js";
9
+ import { Tabs as re, TabsList as ne, TabsTrigger as j } from "../tabs.js";
10
+ import { Input as ie } from "../input.js";
11
+ import { Badge as se } from "../badge.js";
12
+ import { Skeleton as oe } from "../skeleton.js";
13
+ import { useImpactNovaI18n as ce } from "../../../i18n/ImpactNovaI18nContext.js";
14
+ const Ce = ({
15
+ selectedFilter: m,
16
+ onSelectedFilterChange: O,
17
+ savedFilters: $,
18
+ recentFilters: C,
19
+ onApplySavedFilter: B,
20
+ onSavedFilterSearch: y,
21
+ onSavedFiltersScroll: G,
22
+ onDropdownOpenChange: L,
23
+ isLoadingFilterPreferencesList: Q = !1,
24
+ onEditSavedFilter: w,
25
+ onDeleteSavedFilter: S,
26
+ onSetDefaultSavedFilter: k
27
27
  }) => {
28
- const { t: r } = Z(), [d, h] = s.useState(!1), I = (a) => {
29
- h(a), A?.(a);
30
- }, [u, M] = s.useState(""), [f, O] = s.useState(""), [n, D] = s.useState("All"), [i, x] = s.useState(null);
31
- s.useEffect(() => {
28
+ const { t: r } = ce(), [u, T] = i.useState(!1), _ = (a) => {
29
+ T(a), L?.(a);
30
+ }, [P, D] = i.useState(""), [b, E] = i.useState(""), [n, F] = i.useState("All"), [s, A] = i.useState(null);
31
+ i.useEffect(() => {
32
32
  const a = setTimeout(() => {
33
- O(u);
33
+ E(P);
34
34
  }, 300);
35
35
  return () => clearTimeout(a);
36
- }, [u]), s.useEffect(() => {
37
- p && p(
38
- f,
36
+ }, [P]), i.useEffect(() => {
37
+ y && y(
38
+ b,
39
39
  n === "All" ? void 0 : n
40
40
  );
41
- }, [f, n, p]), s.useEffect(() => {
42
- d && x({ label: c });
43
- }, [d, c]);
44
- const E = (a) => {
45
- M(a.target.value);
46
- }, G = () => {
47
- i && (C?.(i.label), i.savedItem && k?.(i.savedItem), h(!1));
48
- }, L = () => {
49
- h(!1);
50
- }, Q = () => !m || m.length === 0 ? null : /* @__PURE__ */ l("div", { className: "flex flex-col", children: [
41
+ }, [b, n, y]), i.useEffect(() => {
42
+ u && A({ label: m });
43
+ }, [u, m]);
44
+ const z = (a) => {
45
+ D(a.target.value);
46
+ }, R = () => {
47
+ s && (O?.(s.label), s.savedItem && B?.(s.savedItem), T(!1));
48
+ }, V = () => {
49
+ T(!1);
50
+ }, Y = () => !C || C.length === 0 ? null : /* @__PURE__ */ l("div", { className: "flex flex-col", children: [
51
51
  /* @__PURE__ */ e("div", { className: "px-1 py-[6px] text-xs font-medium text-[#60697d] font-['Manrope']", children: "Recent" }),
52
- /* @__PURE__ */ e("div", { className: "mb-[6px] flex flex-col", children: m.map((a, t) => {
53
- const o = a.map((z) => z.label).join(", "), B = i?.label === o;
52
+ /* @__PURE__ */ e("div", { className: "mb-[6px] flex flex-col", children: C.map((a, d) => {
53
+ const o = a.map((N) => N.label).join(", "), x = s?.label === o;
54
54
  return /* @__PURE__ */ e(
55
55
  "button",
56
56
  {
57
57
  type: "button",
58
- className: b(
58
+ className: c(
59
59
  "flex cursor-pointer flex-row px-3 py-2 rounded-lg hover:bg-[#f5f6fa] w-full text-left bg-transparent border-none",
60
- B && "bg-[#edf0ff]"
60
+ x && "bg-[#edf0ff]"
61
61
  ),
62
- onClick: () => x({ label: o }),
63
- children: /* @__PURE__ */ l(v, { children: [
64
- /* @__PURE__ */ e(g, { asChild: !0, children: /* @__PURE__ */ e("span", { className: "text-sm font-['Manrope'] truncate text-[#1f2b4d]", children: o }) }),
65
- /* @__PURE__ */ e(y, { variant: "tertiary", side: "right", children: o })
62
+ onClick: () => A({ label: o }),
63
+ children: /* @__PURE__ */ l(p, { children: [
64
+ /* @__PURE__ */ e(f, { asChild: !0, children: /* @__PURE__ */ e("span", { className: "text-sm font-['Manrope'] truncate text-[#1f2b4d]", children: o }) }),
65
+ /* @__PURE__ */ e(h, { variant: "tertiary", side: "right", children: o })
66
66
  ] })
67
67
  },
68
- t
68
+ d
69
69
  );
70
70
  }) }),
71
- /* @__PURE__ */ e(w, { className: "mb-2" })
72
- ] }), _ = () => {
73
- if (j)
74
- return /* @__PURE__ */ e("div", { className: "flex max-h-[160px] flex-col overflow-y-auto px-3 py-2 space-y-2", children: [1, 2, 3, 4, 5].map((t) => /* @__PURE__ */ e(X, { className: "h-9 w-full rounded-lg" }, t)) });
75
- let a = T?.filter(
71
+ /* @__PURE__ */ e(I, { className: "mb-2" })
72
+ ] }), q = () => {
73
+ if (Q)
74
+ return /* @__PURE__ */ e("div", { className: "flex max-h-[160px] flex-col overflow-y-auto px-3 py-2 space-y-2", children: [1, 2, 3, 4, 5].map((t) => /* @__PURE__ */ e(oe, { className: "h-9 w-full rounded-lg" }, t)) });
75
+ let a = $?.filter(
76
76
  (t) => n === "All" || t.type === n
77
77
  );
78
- if (!p && f && (a = a?.filter(
79
- (t) => t.label.toLowerCase().includes(f.toLowerCase())
78
+ if (!y && b && (a = a?.filter(
79
+ (t) => t.label.toLowerCase().includes(b.toLowerCase())
80
80
  )), !a || a.length === 0) {
81
81
  let t = "No saved filters found";
82
- if (!!f)
82
+ if (!!b)
83
83
  switch (n) {
84
84
  case "Personal":
85
85
  t = "No personal filters match your search";
@@ -103,118 +103,198 @@ const he = ({
103
103
  }
104
104
  return /* @__PURE__ */ e("div", { className: "flex flex-col items-center justify-center py-8 text-center min-h-[100px] px-6", children: /* @__PURE__ */ e("span", { className: "text-sm text-[#60697d] font-['Manrope'] leading-relaxed", children: t }) });
105
105
  }
106
- return /* @__PURE__ */ e(
107
- "div",
108
- {
109
- className: "flex max-h-[160px] flex-col gap-1 overflow-y-auto px-1",
110
- onScroll: P,
111
- children: a.map((t) => {
112
- const o = i?.label === t.label;
113
- return /* @__PURE__ */ e(
114
- "button",
115
- {
116
- type: "button",
117
- className: b(
118
- "flex justify-between cursor-pointer rounded-lg px-3 py-2 text-sm font-medium font-['Manrope'] hover:bg-[#f5f6fa] w-full text-left bg-transparent border-none",
119
- o ? "bg-[#edf0ff]" : "text-[#1f2b4d]"
120
- ),
121
- onClick: () => x({ label: t.label, savedItem: t }),
122
- children: /* @__PURE__ */ l(v, { children: [
123
- /* @__PURE__ */ e(g, { asChild: !0, children: /* @__PURE__ */ e("span", { className: "truncate", children: t.label }) }),
124
- /* @__PURE__ */ e(y, { variant: "tertiary", side: "right", children: t.label })
106
+ const d = w || S || k, o = a.find((t) => t.isDefault), x = a.filter((t) => !t.isDefault), N = (t, g = !1) => {
107
+ const J = s?.label === t.label;
108
+ return /* @__PURE__ */ l(
109
+ "button",
110
+ {
111
+ type: "button",
112
+ className: c(
113
+ "group mb-1 flex items-center justify-between cursor-pointer rounded-lg px-3 py-2 text-sm font-medium font-['Manrope'] hover:bg-[#f5f6fa] w-full text-left bg-transparent border-none",
114
+ J ? "bg-[#edf0ff]" : "text-[#1f2b4d]"
115
+ ),
116
+ onClick: () => A({ label: t.label, savedItem: t }),
117
+ children: [
118
+ /* @__PURE__ */ l(p, { children: [
119
+ /* @__PURE__ */ e(f, { asChild: !0, children: /* @__PURE__ */ e("span", { className: "truncate flex-1 min-w-0", children: t.label }) }),
120
+ /* @__PURE__ */ e(h, { variant: "tertiary", side: "right", children: t.label })
121
+ ] }),
122
+ d && /* @__PURE__ */ l("div", { className: c(
123
+ "flex items-center gap-1 ml-2 transition-opacity shrink-0",
124
+ g ? "opacity-100" : "opacity-0 pointer-events-none group-hover:opacity-100 group-hover:pointer-events-auto"
125
+ ), children: [
126
+ S && /* @__PURE__ */ l(p, { children: [
127
+ /* @__PURE__ */ e(f, { asChild: !0, children: /* @__PURE__ */ e(
128
+ "button",
129
+ {
130
+ type: "button",
131
+ tabIndex: -1,
132
+ "aria-label": `${r("filterStrip.deleteFilter")} ${t.label}`,
133
+ className: c(
134
+ "p-1 rounded transition-colors hover:bg-[#e6e8f0]",
135
+ g && "opacity-0 group-hover:opacity-100"
136
+ ),
137
+ onClick: (v) => {
138
+ v.stopPropagation(), S(t);
139
+ },
140
+ children: /* @__PURE__ */ e(X, { className: "h-3.5 w-3.5 text-[#60697d]" })
141
+ }
142
+ ) }),
143
+ /* @__PURE__ */ e(h, { variant: "tertiary", side: "top", children: r("filterStrip.deleteFilter") })
144
+ ] }),
145
+ w && /* @__PURE__ */ l(p, { children: [
146
+ /* @__PURE__ */ e(f, { asChild: !0, children: /* @__PURE__ */ e(
147
+ "button",
148
+ {
149
+ type: "button",
150
+ tabIndex: -1,
151
+ "aria-label": `${r("filterStrip.editFilter")} ${t.label}`,
152
+ className: c(
153
+ "p-1 rounded transition-colors hover:bg-[#e6e8f0]",
154
+ g && "opacity-0 group-hover:opacity-100"
155
+ ),
156
+ onClick: (v) => {
157
+ v.stopPropagation(), w(t);
158
+ },
159
+ children: /* @__PURE__ */ e(Z, { className: "h-3.5 w-3.5 text-[#60697d]" })
160
+ }
161
+ ) }),
162
+ /* @__PURE__ */ e(h, { variant: "tertiary", side: "top", children: r("filterStrip.editFilter") })
163
+ ] }),
164
+ k && /* @__PURE__ */ l(p, { children: [
165
+ /* @__PURE__ */ e(f, { asChild: !0, children: /* @__PURE__ */ e(
166
+ "button",
167
+ {
168
+ type: "button",
169
+ tabIndex: g ? 0 : -1,
170
+ "aria-label": `${t.isDefault ? r("filterStrip.defaultFilter") : r("filterStrip.setAsDefault")} ${t.label}`,
171
+ className: "p-1 rounded hover:bg-[#e6e8f0] transition-colors",
172
+ onClick: (v) => {
173
+ v.stopPropagation(), k(t);
174
+ },
175
+ children: /* @__PURE__ */ e(
176
+ ee,
177
+ {
178
+ className: c(
179
+ "h-3.5 w-3.5",
180
+ t.isDefault ? "text-[#E1BC29] fill-[#E1BC29]" : "text-[#60697d]"
181
+ )
182
+ }
183
+ )
184
+ }
185
+ ) }),
186
+ /* @__PURE__ */ e(h, { variant: "tertiary", side: "top", children: t.isDefault ? r("filterStrip.defaultFilter") : r("filterStrip.setAsDefault") })
125
187
  ] })
126
- },
127
- t.id
128
- );
129
- })
130
- }
131
- );
132
- }, R = i?.label !== c;
133
- return /* @__PURE__ */ l(Y, { open: d, onOpenChange: I, children: [
134
- /* @__PURE__ */ e(q, { asChild: !0, children: /* @__PURE__ */ l(
188
+ ] })
189
+ ]
190
+ },
191
+ t.id
192
+ );
193
+ };
194
+ return /* @__PURE__ */ l("div", { className: "flex flex-col", children: [
195
+ o && /* @__PURE__ */ l(K, { children: [
196
+ N(o, !0),
197
+ x.length > 0 && /* @__PURE__ */ e(I, { className: "my-1" })
198
+ ] }),
199
+ x.length > 0 && /* @__PURE__ */ e(
200
+ "div",
201
+ {
202
+ className: "flex max-h-[160px] flex-col overflow-y-auto",
203
+ onScroll: G,
204
+ children: x.map((t) => N(t, !1))
205
+ }
206
+ )
207
+ ] });
208
+ }, H = s?.label !== m;
209
+ return /* @__PURE__ */ l(te, { open: u, onOpenChange: _, children: [
210
+ /* @__PURE__ */ e(ae, { asChild: !0, children: /* @__PURE__ */ l(
135
211
  "button",
136
212
  {
137
213
  type: "button",
138
214
  className: "flex cursor-pointer items-center gap-2 bg-transparent border-none p-0",
139
215
  "aria-label": r("filterStrip.selectFilter"),
140
- "aria-expanded": d,
216
+ "aria-expanded": u,
141
217
  "aria-haspopup": "dialog",
142
218
  children: [
143
219
  /* @__PURE__ */ e("span", { className: "text-sm font-medium text-[#60697d] font-['Manrope']", children: r("filterStrip.filtersApplied") }),
144
- /* @__PURE__ */ l(v, { children: [
145
- /* @__PURE__ */ e(g, { asChild: !0, children: /* @__PURE__ */ e(
146
- W,
220
+ /* @__PURE__ */ l(p, { children: [
221
+ /* @__PURE__ */ e(f, { asChild: !0, children: /* @__PURE__ */ e(
222
+ se,
147
223
  {
148
224
  color: "primary",
149
225
  variant: "outline",
150
- className: "font-['Manrope'] max-w-[140px]",
151
- children: c || r("filterStrip.notSelected")
226
+ className: "font-['Manrope'] max-w-[140px] inline-block",
227
+ children: /* @__PURE__ */ e("span", { className: "block truncate", children: m || r("filterStrip.notSelected") })
152
228
  }
153
229
  ) }),
154
- /* @__PURE__ */ e(y, { variant: "tertiary", side: "top", children: c || r("filterStrip.notSelected") })
230
+ /* @__PURE__ */ e(h, { variant: "tertiary", side: "top", children: m || r("filterStrip.notSelected") })
155
231
  ] }),
156
232
  /* @__PURE__ */ e(
157
233
  "div",
158
234
  {
159
- className: b(
235
+ className: c(
160
236
  "flex h-8 w-8 items-center justify-center rounded-lg bg-[#f5f6fa] transition-transform duration-200",
161
- d && "rotate-180"
237
+ u && "rotate-180"
162
238
  ),
163
239
  "aria-hidden": "true",
164
- children: /* @__PURE__ */ e(F, { className: "h-4 w-4 text-[#1f2b4d]" })
240
+ children: /* @__PURE__ */ e(U, { className: "h-4 w-4 text-[#1f2b4d]" })
165
241
  }
166
242
  )
167
243
  ]
168
244
  }
169
245
  ) }),
170
246
  /* @__PURE__ */ e(
171
- H,
247
+ le,
172
248
  {
173
249
  align: "start",
174
250
  className: "w-[280px] p-0 shadow-[0_0_4px_0_rgba(0,0,0,0.12)] overflow-visible",
175
251
  sideOffset: 8,
252
+ onInteractOutside: (a) => {
253
+ const d = a.target;
254
+ (d.closest('[role="dialog"]') || d.closest("[data-radix-dialog-content]")) && a.preventDefault();
255
+ },
176
256
  children: /* @__PURE__ */ l("div", { className: "flex w-full flex-col py-[8px] px-[6px]", children: [
177
- Q(),
257
+ Y(),
178
258
  /* @__PURE__ */ l("div", { className: "flex flex-col", children: [
179
259
  /* @__PURE__ */ e("div", { className: "px-1 py-[6px] text-xs font-medium text-[#60697d] font-['Manrope']", children: r("filterStrip.savedFilters") }),
180
260
  /* @__PURE__ */ l(
181
- J,
261
+ re,
182
262
  {
183
263
  value: n,
184
- onValueChange: (a) => D(a),
264
+ onValueChange: (a) => F(a),
185
265
  variant: "outline",
186
266
  size: "sm",
187
267
  className: "w-full px-1",
188
268
  children: [
189
- /* @__PURE__ */ e("div", { className: "py-[8px]", children: /* @__PURE__ */ l(K, { children: [
190
- /* @__PURE__ */ e(N, { value: "All", children: "All" }),
191
- /* @__PURE__ */ e(N, { value: "Global", children: "Global" }),
192
- /* @__PURE__ */ e(N, { value: "Personal", children: "Personal" })
269
+ /* @__PURE__ */ e("div", { className: "py-[8px]", children: /* @__PURE__ */ l(ne, { children: [
270
+ /* @__PURE__ */ e(j, { value: "All", children: "All" }),
271
+ /* @__PURE__ */ e(j, { value: "Global", children: "Global" }),
272
+ /* @__PURE__ */ e(j, { value: "Personal", children: "Personal" })
193
273
  ] }) }),
194
274
  /* @__PURE__ */ e("div", { className: "pb-[8px]", children: /* @__PURE__ */ e(
195
- U,
275
+ ie,
196
276
  {
197
- prefix: /* @__PURE__ */ e(V, { className: "h-4 w-4 text-gray-500" }),
277
+ prefix: /* @__PURE__ */ e(W, { className: "h-4 w-4 text-gray-500" }),
198
278
  placeholder: r("filterStrip.searchFiltersPlaceholder"),
199
- value: u,
200
- onChange: E,
279
+ value: P,
280
+ onChange: z,
201
281
  className: "h-9 px-1 border-none shadow-none focus-visible:ring-0"
202
282
  }
203
283
  ) }),
204
- /* @__PURE__ */ e("div", { className: "mt-0", children: _() })
284
+ /* @__PURE__ */ e("div", { className: "mt-0", children: q() })
205
285
  ]
206
286
  }
207
287
  )
208
288
  ] }),
209
- /* @__PURE__ */ e(w, { className: "my-2" }),
289
+ /* @__PURE__ */ e(I, { className: "my-2" }),
210
290
  /* @__PURE__ */ l("div", { className: "flex justify-end gap-2 px-3 pb-1", children: [
211
- /* @__PURE__ */ e(S, { variant: "secondary", onClick: L, children: r("prompt.cancel") }),
291
+ /* @__PURE__ */ e(M, { variant: "secondary", onClick: V, children: r("prompt.cancel") }),
212
292
  /* @__PURE__ */ e(
213
- S,
293
+ M,
214
294
  {
215
295
  variant: "default",
216
- onClick: G,
217
- disabled: !R,
296
+ onClick: R,
297
+ disabled: !H,
218
298
  children: r("filterStrip.applyFilter")
219
299
  }
220
300
  )
@@ -225,5 +305,5 @@ const he = ({
225
305
  ] });
226
306
  };
227
307
  export {
228
- he as FilterSummary
308
+ Ce as FilterSummary
229
309
  };
@@ -37,32 +37,53 @@ const R = S(
37
37
  side: "right"
38
38
  }
39
39
  }
40
- ), L = n.forwardRef(({ side: t = "right", className: a, children: s, expandable: c = !1, defaultExpanded: l = !1, onOpenAutoFocus: f, ...u }, g) => {
41
- const [d, p] = n.useState(l), m = n.useCallback(() => {
42
- p((h) => !h);
43
- }, []);
44
- return /* @__PURE__ */ e(N.Provider, { value: { isExpanded: d, onExpandToggle: m, expandable: c, side: t || void 0 }, children: /* @__PURE__ */ i(E, { children: [
45
- /* @__PURE__ */ e(v, {}),
46
- /* @__PURE__ */ e(
47
- o.Content,
40
+ ), L = n.forwardRef(
41
+ ({
42
+ side: t = "right",
43
+ className: a,
44
+ children: s,
45
+ expandable: c = !1,
46
+ defaultExpanded: l = !1,
47
+ onOpenAutoFocus: f,
48
+ ...u
49
+ }, g) => {
50
+ const [d, p] = n.useState(l), m = n.useCallback(() => {
51
+ p((h) => !h);
52
+ }, []);
53
+ return /* @__PURE__ */ e(
54
+ N.Provider,
48
55
  {
49
- ref: g,
50
- "data-component": "sheet-content",
51
- onOpenAutoFocus: (h) => {
52
- h.preventDefault(), f?.(h);
56
+ value: {
57
+ isExpanded: d,
58
+ onExpandToggle: m,
59
+ expandable: c,
60
+ side: t || void 0
53
61
  },
54
- className: r(
55
- R({ side: t }),
56
- "flex flex-col p-0 transition-all duration-300",
57
- t === "bottom" && (d ? "h-[96vh]" : "h-[40vh]"),
58
- a
59
- ),
60
- ...u,
61
- children: s
62
+ children: /* @__PURE__ */ i(E, { children: [
63
+ /* @__PURE__ */ e(v, {}),
64
+ /* @__PURE__ */ e(
65
+ o.Content,
66
+ {
67
+ ref: g,
68
+ "data-component": "sheet-content",
69
+ onOpenAutoFocus: (h) => {
70
+ h.preventDefault(), f?.(h);
71
+ },
72
+ className: r(
73
+ R({ side: t }),
74
+ "flex flex-col p-0 transition-all duration-300",
75
+ t === "bottom" && (d ? "h-[96vh]" : "h-[40vh]"),
76
+ a
77
+ ),
78
+ ...u,
79
+ children: s
80
+ }
81
+ )
82
+ ] })
62
83
  }
63
- )
64
- ] }) });
65
- });
84
+ );
85
+ }
86
+ );
66
87
  L.displayName = o.Content.displayName;
67
88
  const j = ({
68
89
  className: t,
@@ -100,10 +121,18 @@ const j = ({
100
121
  /* @__PURE__ */ e(y, { variant: "tertiary", side: "top", children: l ? m : p })
101
122
  ] }),
102
123
  /* @__PURE__ */ i(x, { children: [
103
- /* @__PURE__ */ e(b, { asChild: !0, children: /* @__PURE__ */ i(D, { "data-component": "sheet-close", className: "rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none", "aria-label": d, children: [
104
- /* @__PURE__ */ e(T, { className: "h-4 w-4" }),
105
- /* @__PURE__ */ e("span", { className: "sr-only", children: d })
106
- ] }) }),
124
+ /* @__PURE__ */ e(b, { asChild: !0, children: /* @__PURE__ */ i(
125
+ D,
126
+ {
127
+ "data-component": "sheet-close",
128
+ className: "rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",
129
+ "aria-label": d,
130
+ children: [
131
+ /* @__PURE__ */ e(T, { className: "h-4 w-4" }),
132
+ /* @__PURE__ */ e("span", { className: "sr-only", children: d })
133
+ ]
134
+ }
135
+ ) }),
107
136
  /* @__PURE__ */ e(y, { variant: "tertiary", side: "top", children: d })
108
137
  ] })
109
138
  ] })
@@ -115,13 +144,7 @@ j.displayName = "SheetHeader";
115
144
  const O = ({
116
145
  className: t,
117
146
  ...a
118
- }) => /* @__PURE__ */ e(
119
- "div",
120
- {
121
- className: r("flex-1 overflow-y-auto p-4", t),
122
- ...a
123
- }
124
- );
147
+ }) => /* @__PURE__ */ e("div", { className: r("flex-1 overflow-y-auto p-4", t), ...a });
125
148
  O.displayName = "SheetBody";
126
149
  const P = ({
127
150
  className: t,