impact-nova 2.0.2 → 2.0.3

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 (40) hide show
  1. package/dist/components/ui/accordion.d.ts +13 -0
  2. package/dist/components/ui/accordion.js +50 -33
  3. package/dist/components/ui/ag-grid-react/cell-renderers/percent-progress-display-renderer.js +24 -23
  4. package/dist/components/ui/ag-grid-react/headers/components/header-info.d.ts +8 -6
  5. package/dist/components/ui/ag-grid-react/headers/components/header-info.js +69 -60
  6. package/dist/components/ui/ag-grid-react/headers/custom-header.js +23 -22
  7. package/dist/components/ui/ag-grid-react/headers/header-search-input.js +43 -35
  8. package/dist/components/ui/ag-grid-react/index.js +44 -42
  9. package/dist/components/ui/breadcrumb.d.ts +5 -1
  10. package/dist/components/ui/breadcrumb.js +59 -51
  11. package/dist/components/ui/date-picker/date-picker.js +14 -14
  12. package/dist/components/ui/date-picker/date-range-picker.js +25 -25
  13. package/dist/components/ui/date-picker/month-picker.js +4 -4
  14. package/dist/components/ui/date-picker/month-range-picker.js +7 -7
  15. package/dist/components/ui/date-picker/multi-date-picker.js +9 -9
  16. package/dist/components/ui/date-picker/multi-month-picker.js +29 -29
  17. package/dist/components/ui/date-picker/multi-week-picker.js +20 -20
  18. package/dist/components/ui/date-picker/week-picker.js +31 -31
  19. package/dist/components/ui/date-picker/week-range-picker.js +22 -22
  20. package/dist/components/ui/dynamic-layout.d.ts +1 -1
  21. package/dist/components/ui/empty-container.js +58 -49
  22. package/dist/components/ui/filter-strip/filter-summary.js +28 -29
  23. package/dist/components/ui/filter-strip/filter-tag-list.js +87 -96
  24. package/dist/components/ui/radio-group.js +19 -19
  25. package/dist/components/ui/select/select.js +29 -28
  26. package/dist/components/ui/sidebar.d.ts +2 -1
  27. package/dist/components/ui/sidebar.js +212 -202
  28. package/dist/components/ui/tag.d.ts +3 -1
  29. package/dist/components/ui/tag.js +65 -44
  30. package/dist/components/ui/types/empty-container.types.d.ts +2 -0
  31. package/dist/i18n/defaultMessages.d.ts +1 -0
  32. package/dist/i18n/defaultMessages.js +1 -0
  33. package/dist/i18n/locales/de.js +1 -0
  34. package/dist/i18n/locales/es.js +1 -0
  35. package/dist/i18n/locales/hi.js +1 -0
  36. package/dist/i18n/locales/kn.js +1 -0
  37. package/dist/impact-nova-components.css +4 -0
  38. package/dist/impact-nova.css +1 -1
  39. package/dist/index.js +441 -439
  40. package/package.json +1 -1
@@ -43,7 +43,7 @@ const kt = ({
43
43
  dateDisplayFormat: y
44
44
  }), [K, Q] = te(null), [Ye, D] = te(!1), S = (e) => Ye && K && K[e] !== void 0 ? K[e] : fe[e], X = S("searchText"), R = S("dateDisplayString"), pe = S("selectedDate"), he = S("selectedMonth"), me = S("selectedWeek"), A = (e) => {
45
45
  Q((t) => ({ ...fe, ...t, ...e }));
46
- }, x = () => D(!0), F = () => {
46
+ }, x = () => D(!0), b = () => {
47
47
  D(!1), Q(null);
48
48
  }, N = (e, t) => {
49
49
  const a = (l) => l.replace(/[^0-9.\-+eE]/g, ""), s = (l, z) => {
@@ -59,20 +59,20 @@ const kt = ({
59
59
  parsed: w
60
60
  }), w.conditions.length === 0) return null;
61
61
  const we = (u) => {
62
- let b = Ie(u.operator);
62
+ let F = Ie(u.operator);
63
63
  if (z === "number") {
64
64
  const ke = parseFloat(a(u.value));
65
65
  return ["contains", "notContains", "startsWith", "endsWith"].includes(
66
- b
67
- ) && (b = b === "notContains" ? "notEqual" : "equals"), u.operator === "inRange" ? {
68
- type: b,
66
+ F
67
+ ) && (F = F === "notContains" ? "notEqual" : "equals"), u.operator === "inRange" ? {
68
+ type: F,
69
69
  filter: parseFloat(a(u.value)) || 0,
70
70
  filterTo: parseFloat(a(u.valueTo || "")) || 0,
71
71
  filterType: "number"
72
- } : isNaN(ke) ? null : { type: b, filter: ke, filterType: "number" };
72
+ } : isNaN(ke) ? null : { type: F, filter: ke, filterType: "number" };
73
73
  }
74
74
  return {
75
- type: b,
75
+ type: F,
76
76
  filter: u.value,
77
77
  filterTo: u.valueTo,
78
78
  filterType: "text"
@@ -82,7 +82,7 @@ const kt = ({
82
82
  if (w.conditions.length === 1)
83
83
  B = we(w.conditions[0]);
84
84
  else {
85
- const u = w.conditions.map(we).filter((b) => b !== null);
85
+ const u = w.conditions.map(we).filter((F) => F !== null);
86
86
  u.length === 0 ? B = null : u.length === 1 ? B = u[0] : B = {
87
87
  filterType: z,
88
88
  operator: w.logic,
@@ -187,20 +187,20 @@ const kt = ({
187
187
  v.setFilterModel(s), v.onFilterChanged();
188
188
  },
189
189
  [v, d, n]
190
- ), Fe = re(
190
+ ), be = re(
191
191
  (e) => {
192
192
  const t = n.filter === "agMultiColumnFilter" ? I(n).date : 0;
193
193
  $(e, t);
194
194
  },
195
195
  [n, $]
196
- ), be = (e) => {
196
+ ), Fe = (e) => {
197
197
  const t = e.target.value.replace(/[^0-9/\-!=><+,~]/g, "");
198
198
  if (A({ dateDisplayString: t }), !t.trim()) {
199
- Fe(null);
199
+ be(null);
200
200
  return;
201
201
  }
202
202
  const a = Ge(t);
203
- a && Fe(a);
203
+ a && be(a);
204
204
  }, ee = () => {
205
205
  Q(null), Z(""), oe && oe();
206
206
  }, j = (e) => {
@@ -298,18 +298,18 @@ const kt = ({
298
298
  onClearAll: Ve,
299
299
  isLoading: de,
300
300
  onFocus: x,
301
- onBlur: F
301
+ onBlur: b
302
302
  }
303
303
  ) : h === "date" && Ne ? R ? /* @__PURE__ */ r(
304
304
  G,
305
305
  {
306
306
  value: R,
307
- onChange: be,
307
+ onChange: Fe,
308
308
  placeholder: i("filter.search"),
309
309
  className: "w-full bg-canvas-elevated",
310
310
  autoFocus: !0,
311
311
  onFocus: x,
312
- onBlur: F,
312
+ onBlur: b,
313
313
  suffix: /* @__PURE__ */ r(
314
314
  "button",
315
315
  {
@@ -350,7 +350,7 @@ const kt = ({
350
350
  className: "w-full bg-canvas-elevated",
351
351
  showFooter: !1,
352
352
  onFocus: x,
353
- onBlur: F
353
+ onBlur: b
354
354
  }
355
355
  ) : /* @__PURE__ */ r(
356
356
  Se,
@@ -364,7 +364,7 @@ const kt = ({
364
364
  className: "w-full bg-canvas-elevated",
365
365
  weekStartsOn: c?.weekStartsOn,
366
366
  onFocus: x,
367
- onBlur: F
367
+ onBlur: b
368
368
  }
369
369
  ) : /* @__PURE__ */ r(
370
370
  G,
@@ -376,7 +376,7 @@ const kt = ({
376
376
  autoFocus: !0,
377
377
  ref: J,
378
378
  onFocus: x,
379
- onBlur: F,
379
+ onBlur: b,
380
380
  suffix: X && /* @__PURE__ */ r(
381
381
  "button",
382
382
  {
@@ -391,19 +391,27 @@ const kt = ({
391
391
  ),
392
392
  /* @__PURE__ */ g("div", { className: "flex items-center gap-1.5 shrink-0", children: [
393
393
  P && /* @__PURE__ */ g(et, { children: [
394
- /* @__PURE__ */ r(tt, { asChild: !0, children: /* @__PURE__ */ g("div", { className: "relative group p-1 hover:bg-brand-tint rounded-md transition-colors cursor-pointer", children: [
395
- /* @__PURE__ */ r(
396
- Ze,
397
- {
398
- size: "md",
399
- className: $e(
400
- "text-content-tertiary group-hover:text-brand-variant-hover",
401
- Pe && "text-brand-variant-hover"
402
- )
403
- }
404
- ),
405
- Pe && /* @__PURE__ */ r("span", { className: "absolute top-0.5 right-0.5 w-2 h-2 rounded-full bg-brand border border-white shadow-sm" })
406
- ] }) }),
394
+ /* @__PURE__ */ r(tt, { asChild: !0, children: /* @__PURE__ */ g(
395
+ "button",
396
+ {
397
+ type: "button",
398
+ "aria-label": i("gridHeader.activeFilters"),
399
+ className: "relative group p-1 hover:bg-brand-tint rounded-md transition-colors cursor-pointer bg-transparent border-none",
400
+ children: [
401
+ /* @__PURE__ */ r(
402
+ Ze,
403
+ {
404
+ size: "md",
405
+ className: $e(
406
+ "text-content-tertiary group-hover:text-brand-variant-hover",
407
+ Pe && "text-brand-variant-hover"
408
+ )
409
+ }
410
+ ),
411
+ Pe && /* @__PURE__ */ r("span", { className: "absolute top-0.5 right-0.5 w-2 h-2 rounded-full bg-brand border border-white shadow-sm" })
412
+ ]
413
+ }
414
+ ) }),
407
415
  /* @__PURE__ */ g(rt, { align: "end", className: "w-[300px]", children: [
408
416
  /* @__PURE__ */ r(lt, { children: /* @__PURE__ */ r(nt, { children: i("gridHeader.activeFilters") }) }),
409
417
  /* @__PURE__ */ g(at, { className: "flex flex-col gap-4", children: [
@@ -444,10 +452,10 @@ const kt = ({
444
452
  G,
445
453
  {
446
454
  value: R,
447
- onChange: be,
455
+ onChange: Fe,
448
456
  className: "w-full bg-canvas-elevated",
449
457
  onFocus: x,
450
- onBlur: F,
458
+ onBlur: b,
451
459
  suffix: /* @__PURE__ */ r(
452
460
  "button",
453
461
  {
@@ -482,7 +490,7 @@ const kt = ({
482
490
  className: "w-full bg-canvas-elevated",
483
491
  showFooter: !1,
484
492
  onFocus: x,
485
- onBlur: F
493
+ onBlur: b
486
494
  }
487
495
  ) : /* @__PURE__ */ r(
488
496
  Se,
@@ -493,7 +501,7 @@ const kt = ({
493
501
  className: "w-full bg-canvas-elevated",
494
502
  weekStartsOn: c?.weekStartsOn,
495
503
  onFocus: x,
496
- onBlur: F
504
+ onBlur: b
497
505
  }
498
506
  )
499
507
  ] })
@@ -1,27 +1,27 @@
1
1
  import { jsxs as fe, jsx as v } from "react/jsx-runtime";
2
- import { lazy as me, useRef as F, useState as T, useCallback as f, useMemo as y, useEffect as ge, Suspense as he } from "react";
2
+ import { lazy as me, useRef as S, useState as w, useCallback as f, useMemo as y, useEffect as ge, Suspense as he } from "react";
3
3
  import { ModuleRegistry as Ce, AllCommunityModule as ye, ValidationModule as ve } from "ag-grid-community";
4
4
  import { AllEnterpriseModule as be } from "ag-grid-enterprise";
5
5
  import { AgGridReact as xe } from "ag-grid-react";
6
- import { customAgGridTheme as Fe } from "./theme.js";
7
- import { CustomHeader as Se } from "./headers/custom-header.js";
6
+ import { customAgGridTheme as Se } from "./theme.js";
7
+ import { CustomHeader as Fe } from "./headers/custom-header.js";
8
8
  import { CustomHeaderGroup as Me } from "./headers/custom-header-group.js";
9
9
  import { DefaultTextCellRenderer as Ee } from "./cell-renderers/default-text-cell-renderer.js";
10
10
  import { GridHeaderContext as Ae } from "./headers/context/grid-header-context.js";
11
- import { convertToAgGridFilterModel as Ge, getMultiFilterIndices as Re, convertFromAgGridFilterModel as ke } from "./headers/utils/filter-utils.js";
11
+ import { convertToAgGridFilterModel as Re, getMultiFilterIndices as Ge, convertFromAgGridFilterModel as ke } from "./headers/utils/filter-utils.js";
12
12
  import { ColumnSettingsMenu as je } from "./headers/column-menu/column-settings-menu.js";
13
- import { AG_GRID_VALUE_FORMATTERS as Te } from "./value-formatters.js";
14
- import { useGridAutoSizeStrategyOnResize as we } from "./useGridAutoSizeStrategyOnResize.js";
13
+ import { AG_GRID_VALUE_FORMATTERS as we } from "./value-formatters.js";
14
+ import { useGridAutoSizeStrategyOnResize as Te } from "./useGridAutoSizeStrategyOnResize.js";
15
15
  /* empty css */
16
16
  import { refreshGridAutoSizeStrategy as et } from "./refreshGridAutoSizeStrategy.js";
17
17
  import { subscribeGridApiEvent as rt, subscribeGridApiEvents as nt } from "./grid-api-event-subscription.js";
18
18
  const Pe = me(() => import("./headers/advanced-filter/advanced-filter-dialog.js"));
19
19
  Ce.registerModules([ye, be, ve]);
20
- const S = "", H = "";
21
- function U(i) {
20
+ const F = "", O = "";
21
+ function K(i) {
22
22
  return i.getColumns()?.some((n) => n.getColDef().headerCheckboxSelection) ?? !1;
23
23
  }
24
- const W = (i) => {
24
+ const U = (i) => {
25
25
  if (!i) return;
26
26
  const n = i.cellRendererParams?.splits;
27
27
  if (Array.isArray(n) && n.length > 0) return n;
@@ -79,13 +79,13 @@ function Qe({
79
79
  onFilterChanged: b,
80
80
  onSelectionChanged: C,
81
81
  onModelUpdated: M,
82
- ensureDomOrder: w = !0,
82
+ ensureDomOrder: T = !0,
83
83
  autoSizeStrategy: P,
84
84
  ...g
85
85
  }) {
86
- const u = F(null), I = F(null), [D, L] = T(null);
87
- we(D, I, P);
88
- const [J, N] = T(!1), [X, _] = T(null), [B, V] = T(!1), E = F(null), O = F(null), A = F(null), Q = f(() => [], []), Y = y(() => ({
86
+ const u = S(null), I = S(null), [D, L] = w(null);
87
+ Te(D, I, P);
88
+ const [J, N] = w(!1), [X, _] = w(null), [B, V] = w(!1), E = S(null), H = S(null), A = S(null), Q = f(() => [], []), Y = y(() => ({
89
89
  numericColumn: {
90
90
  cellClass: "ag-right-aligned-cell",
91
91
  headerClass: "ag-right-aligned-header",
@@ -106,7 +106,7 @@ function Qe({
106
106
  dateColumn: {
107
107
  filter: "agDateColumnFilter"
108
108
  }
109
- }), []), G = y(() => ({
109
+ }), []), R = y(() => ({
110
110
  openSearch: (e) => {
111
111
  if (!u.current) return;
112
112
  const t = u.current.getGridOption("context") || {};
@@ -125,14 +125,14 @@ function Qe({
125
125
  },
126
126
  applyAdvancedFilter: (e) => {
127
127
  if (!u.current) return;
128
- const t = Ge(e);
128
+ const t = Re(e);
129
129
  u.current.setFilterModel(t), u.current.onFilterChanged(), u.current.refreshHeader();
130
130
  },
131
131
  openMenu: (e, t, o = "column") => {
132
- E.current = e, O.current = t, A.current = o, V(!0);
132
+ E.current = e, H.current = t, A.current = o, V(!0);
133
133
  },
134
134
  closeMenu: () => {
135
- E.current = null, O.current = null, A.current = null, V(!1);
135
+ E.current = null, H.current = null, A.current = null, V(!1);
136
136
  },
137
137
  // Getters read from refs - O(1) per header, no memory allocation
138
138
  get activeMenuColumnId() {
@@ -157,12 +157,12 @@ function Qe({
157
157
  [b]
158
158
  ), re = f(
159
159
  (e) => {
160
- U(e.api) && e.api.refreshHeader(), C?.(e);
160
+ K(e.api) && e.api.refreshHeader(), C?.(e);
161
161
  },
162
162
  [C]
163
163
  ), ne = f(
164
164
  (e) => {
165
- e.api.getGridOption("rowModelType") !== "serverSide" && U(e.api) && e.api.refreshHeader(), M?.(e);
165
+ e.api.getGridOption("rowModelType") !== "serverSide" && K(e.api) && e.api.refreshHeader(), M?.(e);
166
166
  },
167
167
  [M]
168
168
  );
@@ -181,7 +181,7 @@ function Qe({
181
181
  return e.addEventListener("keydown", t, !0), () => e.removeEventListener("keydown", t, !0);
182
182
  }, []);
183
183
  const oe = y(() => ({
184
- headerComponent: Se,
184
+ headerComponent: Fe,
185
185
  // Default cell renderer wraps text in a span so display:flex centering
186
186
  // and text-overflow:ellipsis both work (ellipsis doesn't work on
187
187
  // anonymous flex text nodes, but works on flex child elements).
@@ -211,7 +211,7 @@ function Qe({
211
211
  ...l?.headerGroupComponentParams
212
212
  }
213
213
  }), [l]), ie = y(() => ({
214
- ...Te,
214
+ ...we,
215
215
  // Always available - value formatters
216
216
  ...g.components,
217
217
  // User components override
@@ -220,17 +220,17 @@ function Qe({
220
220
  }), [m, g.components]), se = f((e) => {
221
221
  const t = e.value;
222
222
  if (t == null || typeof t != "object") return t;
223
- const o = W(e.column?.getColDef());
223
+ const o = U(e.column?.getColDef());
224
224
  if (o && o.length > 0) {
225
225
  const r = z(t, o);
226
226
  if (o.length === 1) {
227
227
  const d = o[0]?.field?.split(".").pop(), x = d ? t[d] : void 0;
228
228
  return x && typeof x == "object" && "value" in x ? x.value ?? "" : r[0];
229
229
  }
230
- return H + r.join(S);
230
+ return O + r.join(F);
231
231
  }
232
232
  const s = Object.entries(t).map(([, r]) => r && typeof r == "object" && "value" in r ? r.value : typeof r != "object" && typeof r < "u" ? r : null).filter((r) => r != null);
233
- return s.length === 0 ? "" : s.length === 1 ? s[0] : s.join(S);
233
+ return s.length === 0 ? "" : s.length === 1 ? s[0] : s.join(F);
234
234
  }, []), ue = f((e) => {
235
235
  if (typeof e.value == "string") {
236
236
  const t = e.value.trim();
@@ -244,7 +244,7 @@ function Qe({
244
244
  return e.value;
245
245
  }, []), ae = f((e) => {
246
246
  const t = e?.data ?? "";
247
- if (!t.includes(S) && !t.includes(H)) {
247
+ if (!t.includes(F) && !t.includes(O)) {
248
248
  $(t);
249
249
  return;
250
250
  }
@@ -256,23 +256,23 @@ function Qe({
256
256
  o.push("");
257
257
  continue;
258
258
  }
259
- const k = d.split(" ").map((p) => p.startsWith(H) ? { isSplit: !0, slots: p.slice(1).split(S) } : { isSplit: !1, slots: p.split(S) }), K = Math.max(1, ...k.map((p) => p.slots.length));
260
- if (K === 1) {
259
+ const k = d.split(" ").map((p) => p.startsWith(O) ? { isSplit: !0, slots: p.slice(1).split(F) } : { isSplit: !1, slots: p.split(F) }), W = Math.max(1, ...k.map((p) => p.slots.length));
260
+ if (W === 1) {
261
261
  o.push(k.map((p) => p.slots[0] ?? "").join(" "));
262
262
  continue;
263
263
  }
264
- for (let p = 0; p < K; p++) {
264
+ for (let p = 0; p < W; p++) {
265
265
  const pe = k.map((j) => !j.isSplit && j.slots.length === 1 ? j.slots[0] : j.slots[p] ?? "");
266
266
  o.push(pe.join(" "));
267
267
  }
268
268
  }
269
269
  $(o.join(`
270
270
  `));
271
- }, []), R = f((e) => {
271
+ }, []), G = f((e) => {
272
272
  const t = e.value;
273
273
  if (t == null) return "";
274
274
  if (typeof t != "object") return String(t);
275
- const o = W(e.column?.getColDef());
275
+ const o = U(e.column?.getColDef());
276
276
  if (o && o.length > 0) {
277
277
  const r = z(t, o);
278
278
  return o.length === 1 ? r[0] : r.join(`
@@ -291,17 +291,17 @@ function Qe({
291
291
  return s.length === 0 ? "" : s.length === 1 ? s[0] : s.join(`
292
292
  `);
293
293
  }, []), ce = y(() => ({
294
- processCellCallback: R,
294
+ processCellCallback: G,
295
295
  ...g.defaultCsvExportParams ?? {}
296
- }), [R, g.defaultCsvExportParams]), de = y(() => ({
297
- processCellCallback: R,
296
+ }), [G, g.defaultCsvExportParams]), de = y(() => ({
297
+ processCellCallback: G,
298
298
  ...g.defaultExcelExportParams ?? {}
299
- }), [R, g.defaultExcelExportParams]);
300
- return /* @__PURE__ */ fe(Ae.Provider, { value: G, children: [
299
+ }), [G, g.defaultExcelExportParams]);
300
+ return /* @__PURE__ */ fe(Ae.Provider, { value: R, children: [
301
301
  /* @__PURE__ */ v("div", { ref: I, style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ v(
302
302
  xe,
303
303
  {
304
- theme: Fe,
304
+ theme: Se,
305
305
  defaultColDef: oe,
306
306
  columnDefs: h,
307
307
  cellSelection: !0,
@@ -315,10 +315,12 @@ function Qe({
315
315
  processCellForClipboard: se,
316
316
  processCellFromClipboard: ue,
317
317
  sendToClipboard: ae,
318
- ensureDomOrder: w,
318
+ ensureDomOrder: T,
319
319
  suppressHeaderFocus: !1,
320
320
  suppressFocusAfterRefresh: !0,
321
321
  suppressGroupRowsSticky: !0,
322
+ hidePaddedHeaderRows: !0,
323
+ suppressServerSideFullWidthLoadingRow: !0,
322
324
  columnTypes: Y,
323
325
  autoSizeStrategy: P,
324
326
  ...g,
@@ -334,8 +336,8 @@ function Qe({
334
336
  isOpen: J,
335
337
  columnId: X,
336
338
  gridApi: D,
337
- onClose: G.closeAdvancedFilter,
338
- onApply: G.applyAdvancedFilter
339
+ onClose: R.closeAdvancedFilter,
340
+ onApply: R.applyAdvancedFilter
339
341
  }
340
342
  ),
341
343
  /* @__PURE__ */ v(
@@ -344,9 +346,9 @@ function Qe({
344
346
  isOpen: B,
345
347
  columnId: E.current,
346
348
  gridApi: D,
347
- anchor: O.current,
349
+ anchor: H.current,
348
350
  variant: A.current,
349
- onClose: G.closeMenu
351
+ onClose: R.closeMenu
350
352
  }
351
353
  )
352
354
  ] });
@@ -361,7 +363,7 @@ function Ie({
361
363
  if (!i || !n || !l) return null;
362
364
  const a = l.getColumn(n);
363
365
  if (!a) return null;
364
- const c = a.getColDef(), b = c.headerComponentParams, C = Re(c), M = C.text !== -1 || C.number !== -1 || C.date !== -1, w = C.set !== -1, g = c.filter === "agMultiColumnFilter" && (M || w) ? "multi" : c.filter === "agNumberColumnFilter" ? "number" : c.filter === "agDateColumnFilter" ? "date" : c.filter === "agSetColumnFilter" || b?.selectOptions ? "select" : "text", u = ke(l.getFilterModel());
366
+ const c = a.getColDef(), b = c.headerComponentParams, C = Ge(c), M = C.text !== -1 || C.number !== -1 || C.date !== -1, T = C.set !== -1, g = c.filter === "agMultiColumnFilter" && (M || T) ? "multi" : c.filter === "agNumberColumnFilter" ? "number" : c.filter === "agDateColumnFilter" ? "date" : c.filter === "agSetColumnFilter" || b?.selectOptions ? "select" : "text", u = ke(l.getFilterModel());
365
367
  return /* @__PURE__ */ v(he, { fallback: null, children: /* @__PURE__ */ v(
366
368
  Pe,
367
369
  {
@@ -13,6 +13,10 @@ declare const BreadcrumbLink: React.ForwardRefExoticComponent<Omit<React.Detaile
13
13
  asChild?: boolean;
14
14
  maxWords?: number;
15
15
  } & React.RefAttributes<HTMLAnchorElement>>;
16
+ declare const BreadcrumbHomeLink: React.ForwardRefExoticComponent<Omit<Omit<Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & {
17
+ asChild?: boolean;
18
+ maxWords?: number;
19
+ } & React.RefAttributes<HTMLAnchorElement>, "ref">, "children"> & React.RefAttributes<HTMLAnchorElement>>;
16
20
  declare const BreadcrumbPage: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
17
21
  maxWords?: number;
18
22
  } & React.RefAttributes<HTMLSpanElement>>;
@@ -25,5 +29,5 @@ declare const BreadcrumbEllipsis: {
25
29
  displayName: string;
26
30
  };
27
31
  declare const BreadcrumbHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
28
- export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis, BreadcrumbHeader, HomeIcon, BreadcrumbArrowSeparator, };
32
+ export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbHomeLink, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis, BreadcrumbHeader, HomeIcon, BreadcrumbArrowSeparator, };
29
33
  declare const BreadcrumbArrowSeparator: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>;
@@ -1,15 +1,15 @@
1
1
  import { jsx as a, jsxs as f } from "react/jsx-runtime";
2
2
  import * as s from "react";
3
- import { Slot as y } from "@radix-ui/react-slot";
4
- import { ThreeDots as v } from "impact-nova-icons";
5
- import { ClickMeArrow as H } from "./local-raster-icons/rasterIcons.js";
6
- import { Tooltip as C, TooltipTrigger as w, TooltipContent as b } from "./tooltip.js";
3
+ import { Slot as v } from "@radix-ui/react-slot";
4
+ import { ThreeDots as H } from "impact-nova-icons";
5
+ import { ClickMeArrow as L } from "./local-raster-icons/rasterIcons.js";
6
+ import { Tooltip as b, TooltipTrigger as w, TooltipContent as g } from "./tooltip.js";
7
7
  import { cn as n } from "../../lib/utils.js";
8
- import { useImpactNovaI18n as g } from "../../i18n/ImpactNovaI18nContext.js";
9
- const x = s.createContext({}), N = (e, t) => {
8
+ import { useImpactNovaI18n as h } from "../../i18n/ImpactNovaI18nContext.js";
9
+ const x = s.createContext({}), B = (e, t) => {
10
10
  const r = e.split(/\s+/);
11
11
  return r.length <= t ? e : r.slice(0, t).join(" ") + "...";
12
- }, q = ({ className: e }) => /* @__PURE__ */ a(
12
+ }, R = ({ className: e }) => /* @__PURE__ */ a(
13
13
  "svg",
14
14
  {
15
15
  width: "13",
@@ -17,6 +17,8 @@ const x = s.createContext({}), N = (e, t) => {
17
17
  viewBox: "0 0 12 13",
18
18
  fill: "none",
19
19
  xmlns: "http://www.w3.org/2000/svg",
20
+ "aria-hidden": "true",
21
+ focusable: "false",
20
22
  className: n("h-3.5 w-3.5", e),
21
23
  children: /* @__PURE__ */ a(
22
24
  "path",
@@ -26,12 +28,12 @@ const x = s.createContext({}), N = (e, t) => {
26
28
  }
27
29
  )
28
30
  }
29
- ), L = s.forwardRef(({ ...e }, t) => {
30
- const { t: r } = g();
31
+ ), W = s.forwardRef(({ ...e }, t) => {
32
+ const { t: r } = h();
31
33
  return /* @__PURE__ */ a("nav", { ref: t, "aria-label": r("aria.breadcrumb"), ...e });
32
34
  });
33
- L.displayName = "Breadcrumb";
34
- const W = s.forwardRef(({ className: e, maxWords: t, ...r }, o) => /* @__PURE__ */ a(x.Provider, { value: { maxWords: t }, children: /* @__PURE__ */ a(
35
+ W.displayName = "Breadcrumb";
36
+ const V = s.forwardRef(({ className: e, maxWords: t, ...r }, o) => /* @__PURE__ */ a(x.Provider, { value: { maxWords: t }, children: /* @__PURE__ */ a(
35
37
  "ol",
36
38
  {
37
39
  ref: o,
@@ -42,8 +44,8 @@ const W = s.forwardRef(({ className: e, maxWords: t, ...r }, o) => /* @__PURE__
42
44
  ...r
43
45
  }
44
46
  ) }));
45
- W.displayName = "BreadcrumbList";
46
- const R = s.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
47
+ V.displayName = "BreadcrumbList";
48
+ const S = s.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
47
49
  "li",
48
50
  {
49
51
  ref: r,
@@ -51,33 +53,38 @@ const R = s.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
51
53
  ...t
52
54
  }
53
55
  ));
54
- R.displayName = "BreadcrumbItem";
55
- const V = s.forwardRef(
56
- ({ asChild: e, className: t, maxWords: r, children: o, ...p }, u) => {
57
- const i = e ? y : "a", { maxWords: d } = s.useContext(x), c = r ?? d, l = typeof o == "string", m = l && c ? N(o, c) : o, B = l && c && o.split(/\s+/).length > c, h = /* @__PURE__ */ a(
56
+ S.displayName = "BreadcrumbItem";
57
+ const N = s.forwardRef(
58
+ ({ asChild: e, className: t, maxWords: r, children: o, ...u }, p) => {
59
+ const i = e ? v : "a", { maxWords: d } = s.useContext(x), c = r ?? d, l = typeof o == "string", m = l && c ? B(o, c) : o, y = l && c && o.split(/\s+/).length > c, C = /* @__PURE__ */ a(
58
60
  i,
59
61
  {
60
- ref: u,
62
+ ref: p,
61
63
  className: n(
62
64
  "transition-colors text-brand hover:text-brand-strong font-medium",
63
65
  t
64
66
  ),
65
- ...p,
67
+ ...u,
66
68
  children: m
67
69
  }
68
70
  );
69
- return B ? /* @__PURE__ */ f(C, { children: [
70
- /* @__PURE__ */ a(w, { asChild: !0, children: h }),
71
- /* @__PURE__ */ a(b, { side: "top", variant: "tertiary", children: o })
72
- ] }) : h;
71
+ return y ? /* @__PURE__ */ f(b, { children: [
72
+ /* @__PURE__ */ a(w, { asChild: !0, children: C }),
73
+ /* @__PURE__ */ a(g, { side: "top", variant: "tertiary", children: o })
74
+ ] }) : C;
73
75
  }
74
76
  );
75
- V.displayName = "BreadcrumbLink";
76
- const S = s.forwardRef(({ className: e, maxWords: t, children: r, ...o }, p) => {
77
- const { maxWords: u } = s.useContext(x), i = t ?? u, d = typeof r == "string", c = d && i ? N(r, i) : r, l = d && i && r.split(/\s+/).length > i, m = /* @__PURE__ */ a(
77
+ N.displayName = "BreadcrumbLink";
78
+ const T = s.forwardRef(({ ...e }, t) => {
79
+ const { t: r } = h();
80
+ return /* @__PURE__ */ a(N, { ref: t, "aria-label": r("aria.home"), ...e, children: /* @__PURE__ */ a(R, {}) });
81
+ });
82
+ T.displayName = "BreadcrumbHomeLink";
83
+ const k = s.forwardRef(({ className: e, maxWords: t, children: r, ...o }, u) => {
84
+ const { maxWords: p } = s.useContext(x), i = t ?? p, d = typeof r == "string", c = d && i ? B(r, i) : r, l = d && i && r.split(/\s+/).length > i, m = /* @__PURE__ */ a(
78
85
  "span",
79
86
  {
80
- ref: p,
87
+ ref: u,
81
88
  role: "link",
82
89
  "aria-disabled": "true",
83
90
  "aria-current": "page",
@@ -87,13 +94,13 @@ const S = s.forwardRef(({ className: e, maxWords: t, children: r, ...o }, p) =>
87
94
  children: c
88
95
  }
89
96
  );
90
- return l ? /* @__PURE__ */ f(C, { children: [
97
+ return l ? /* @__PURE__ */ f(b, { children: [
91
98
  /* @__PURE__ */ a(w, { asChild: !0, children: m }),
92
- /* @__PURE__ */ a(b, { side: "top", variant: "tertiary", children: r })
99
+ /* @__PURE__ */ a(g, { side: "top", variant: "tertiary", children: r })
93
100
  ] }) : m;
94
101
  });
95
- S.displayName = "BreadcrumbPage";
96
- const T = ({
102
+ k.displayName = "BreadcrumbPage";
103
+ const M = ({
97
104
  children: e,
98
105
  className: t,
99
106
  ...r
@@ -127,12 +134,12 @@ const T = ({
127
134
  )
128
135
  }
129
136
  );
130
- T.displayName = "BreadcrumbSeparator";
131
- const M = ({
137
+ M.displayName = "BreadcrumbSeparator";
138
+ const j = ({
132
139
  className: e,
133
140
  ...t
134
141
  }) => {
135
- const { t: r } = g(), o = r("aria.more");
142
+ const { t: r } = h(), o = r("aria.more");
136
143
  return /* @__PURE__ */ f(
137
144
  "span",
138
145
  {
@@ -141,14 +148,14 @@ const M = ({
141
148
  className: n("flex h-9 w-9 items-center justify-center", e),
142
149
  ...t,
143
150
  children: [
144
- /* @__PURE__ */ a(v, { className: "h-4 w-4" }),
151
+ /* @__PURE__ */ a(H, { className: "h-4 w-4" }),
145
152
  /* @__PURE__ */ a("span", { className: "sr-only", children: o })
146
153
  ]
147
154
  }
148
155
  );
149
156
  };
150
- M.displayName = "BreadcrumbElipssis";
151
- const j = s.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
157
+ j.displayName = "BreadcrumbElipssis";
158
+ const I = s.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
152
159
  "div",
153
160
  {
154
161
  ref: r,
@@ -156,8 +163,8 @@ const j = s.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
156
163
  ...t
157
164
  }
158
165
  ));
159
- j.displayName = "BreadcrumbHeader";
160
- const I = s.forwardRef(({ className: e, style: t, ...r }, o) => /* @__PURE__ */ a(
166
+ I.displayName = "BreadcrumbHeader";
167
+ const A = s.forwardRef(({ className: e, style: t, ...r }, o) => /* @__PURE__ */ a(
161
168
  "li",
162
169
  {
163
170
  ref: o,
@@ -166,19 +173,20 @@ const I = s.forwardRef(({ className: e, style: t, ...r }, o) => /* @__PURE__ */
166
173
  className: n("inline-flex items-center", e),
167
174
  style: t,
168
175
  ...r,
169
- children: /* @__PURE__ */ a(H, { size: 12 })
176
+ children: /* @__PURE__ */ a(L, { size: 12 })
170
177
  }
171
178
  ));
172
- I.displayName = "BreadcrumbArrowSeparator";
179
+ A.displayName = "BreadcrumbArrowSeparator";
173
180
  export {
174
- L as Breadcrumb,
175
- I as BreadcrumbArrowSeparator,
176
- M as BreadcrumbEllipsis,
177
- j as BreadcrumbHeader,
178
- R as BreadcrumbItem,
179
- V as BreadcrumbLink,
180
- W as BreadcrumbList,
181
- S as BreadcrumbPage,
182
- T as BreadcrumbSeparator,
183
- q as HomeIcon
181
+ W as Breadcrumb,
182
+ A as BreadcrumbArrowSeparator,
183
+ j as BreadcrumbEllipsis,
184
+ I as BreadcrumbHeader,
185
+ T as BreadcrumbHomeLink,
186
+ S as BreadcrumbItem,
187
+ N as BreadcrumbLink,
188
+ V as BreadcrumbList,
189
+ k as BreadcrumbPage,
190
+ M as BreadcrumbSeparator,
191
+ R as HomeIcon
184
192
  };