impact-nova 2.2.8 → 2.2.9

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 (117) hide show
  1. package/dist/components/data/ag-grid-react/ag-grid-header-dom.js +6 -8
  2. package/dist/components/data/ag-grid-react/ag-grid-tooltip-overflow.d.ts +1 -1
  3. package/dist/components/data/ag-grid-react/ag-grid-tooltip-overflow.js +25 -13
  4. package/dist/components/data/ag-grid-react/headers/custom-header.js +1 -1
  5. package/dist/components/data/ag-grid-react/headers/custom-inner-header-group.js +7 -7
  6. package/dist/components/data/ag-grid-react/strip-column-min-width-constraints.d.ts +3 -0
  7. package/dist/components/data/data-table/data-table.d.ts +1 -1
  8. package/dist/components/data/data-table/data-table.js +41 -39
  9. package/dist/components/data/data-table/data-table.types.d.ts +1 -1
  10. package/dist/components/flows/filter-panel/filter-panel.js +101 -94
  11. package/dist/components/flows/guidance/adapters/ag-grid-adapter.d.ts +13 -0
  12. package/dist/components/flows/guidance/adapters/ag-grid-adapter.js +30 -0
  13. package/dist/components/flows/guidance/adapters/ag-grid.d.ts +2 -0
  14. package/dist/components/flows/guidance/adapters/ag-grid.js +6 -0
  15. package/dist/components/flows/guidance/adapters/dialog.d.ts +1 -0
  16. package/dist/components/flows/guidance/adapters/dialog.js +5 -0
  17. package/dist/components/flows/guidance/adapters/overlay-adapter.d.ts +5 -0
  18. package/dist/components/flows/guidance/adapters/overlay-adapter.js +21 -0
  19. package/dist/components/flows/guidance/engine.d.ts +1 -0
  20. package/dist/components/flows/guidance/engine.js +36 -0
  21. package/dist/components/flows/guidance/guidance-context.d.ts +29 -0
  22. package/dist/components/flows/guidance/guidance-context.js +35 -0
  23. package/dist/components/flows/guidance/guidance-error-boundary.d.ts +16 -0
  24. package/dist/components/flows/guidance/guidance-error-boundary.js +49 -0
  25. package/dist/components/flows/guidance/guidance-layer.d.ts +2 -0
  26. package/dist/components/flows/guidance/guidance-layer.js +71 -0
  27. package/dist/components/flows/guidance/guidance-provider.d.ts +3 -0
  28. package/dist/components/flows/guidance/guidance-provider.js +58 -0
  29. package/dist/components/flows/guidance/guidance-target.d.ts +7 -0
  30. package/dist/components/flows/guidance/guidance-target.js +27 -0
  31. package/dist/components/flows/guidance/guidance.types.d.ts +1 -0
  32. package/dist/components/flows/guidance/help-center/filter-help-center-guides.d.ts +7 -0
  33. package/dist/components/flows/guidance/help-center/filter-help-center-guides.js +11 -0
  34. package/dist/components/flows/guidance/help-center/guide-catalog.d.ts +3 -0
  35. package/dist/components/flows/guidance/help-center/guide-catalog.js +118 -0
  36. package/dist/components/flows/guidance/help-center/help-center-header.d.ts +3 -0
  37. package/dist/components/flows/guidance/help-center/help-center-header.js +43 -0
  38. package/dist/components/flows/guidance/help-center/help-center.constants.d.ts +5 -0
  39. package/dist/components/flows/guidance/help-center/help-center.constants.js +7 -0
  40. package/dist/components/flows/guidance/help-center/help-center.d.ts +10 -0
  41. package/dist/components/flows/guidance/help-center/help-center.js +95 -0
  42. package/dist/components/flows/guidance/help-center/help-center.story-helpers.d.ts +10 -0
  43. package/dist/components/flows/guidance/help-center/help-center.types.d.ts +39 -0
  44. package/dist/components/flows/guidance/help-center.d.ts +6 -0
  45. package/dist/components/flows/guidance/help-center.js +19 -0
  46. package/dist/components/flows/guidance/hooks/use-guidance.d.ts +19 -0
  47. package/dist/components/flows/guidance/hooks/use-guidance.js +50 -0
  48. package/dist/components/flows/guidance/hooks/use-help-center.d.ts +24 -0
  49. package/dist/components/flows/guidance/hooks/use-help-center.js +67 -0
  50. package/dist/components/flows/guidance/hooks/useGuidanceOverlayGeometry.d.ts +2 -0
  51. package/dist/components/flows/guidance/hooks/useGuidanceOverlayGeometry.js +30 -0
  52. package/dist/components/flows/guidance/index.d.ts +18 -0
  53. package/dist/components/flows/guidance/index.js +48 -0
  54. package/dist/components/flows/guidance/renderers/announcement-renderer.d.ts +3 -0
  55. package/dist/components/flows/guidance/renderers/announcement-renderer.js +40 -0
  56. package/dist/components/flows/guidance/renderers/coach-mark-renderer.d.ts +2 -0
  57. package/dist/components/flows/guidance/renderers/coach-mark-renderer.js +14 -0
  58. package/dist/components/flows/guidance/renderers/guidance-card-shared.d.ts +42 -0
  59. package/dist/components/flows/guidance/renderers/guidance-card-shared.js +213 -0
  60. package/dist/components/flows/guidance/renderers/guidance-renderer-shared.d.ts +48 -0
  61. package/dist/components/flows/guidance/renderers/guidance-renderer-shared.js +254 -0
  62. package/dist/components/flows/guidance/renderers/guidance-tour-overlay.d.ts +11 -0
  63. package/dist/components/flows/guidance/renderers/guidance-tour-overlay.js +217 -0
  64. package/dist/components/flows/guidance/renderers/renderer-registry.d.ts +6 -0
  65. package/dist/components/flows/guidance/renderers/renderer-registry.js +19 -0
  66. package/dist/components/flows/guidance/renderers/spotlight-renderer.d.ts +2 -0
  67. package/dist/components/flows/guidance/renderers/spotlight-renderer.js +14 -0
  68. package/dist/components/flows/guidance/renderers.d.ts +4 -0
  69. package/dist/components/flows/guidance/renderers.js +11 -0
  70. package/dist/components/flows/guidance/target.d.ts +3 -0
  71. package/dist/components/flows/guidance/target.js +6 -0
  72. package/dist/components/flows/guidance/triggers.d.ts +2 -0
  73. package/dist/components/flows/guidance/triggers.js +16 -0
  74. package/dist/components/flows/guidance/use-guidance-target.d.ts +5 -0
  75. package/dist/components/flows/guidance/use-guidance-target.js +16 -0
  76. package/dist/components/flows/guidance/utils/motion-settle.d.ts +2 -0
  77. package/dist/components/flows/guidance/utils/motion-settle.js +17 -0
  78. package/dist/i18n/defaultMessages.d.ts +13 -0
  79. package/dist/i18n/defaultMessages.js +23 -11
  80. package/dist/i18n/index.d.ts +1 -1
  81. package/dist/i18n/locales/de.js +12 -0
  82. package/dist/i18n/locales/es.js +12 -0
  83. package/dist/i18n/locales/hi.js +12 -0
  84. package/dist/i18n/locales/kn.js +12 -0
  85. package/dist/impact-nova-components.css +52 -10
  86. package/dist/impact-nova.css +1 -1
  87. package/dist/lib/guidance/analytics/analytics-adapter.d.ts +16 -0
  88. package/dist/lib/guidance/analytics/analytics-adapter.js +50 -0
  89. package/dist/lib/guidance/engine/guidance-engine.d.ts +74 -0
  90. package/dist/lib/guidance/engine/guidance-engine.js +384 -0
  91. package/dist/lib/guidance/engine/guide-registry.d.ts +21 -0
  92. package/dist/lib/guidance/engine/guide-registry.js +71 -0
  93. package/dist/lib/guidance/engine/manifest-validator.d.ts +4 -0
  94. package/dist/lib/guidance/engine/manifest-validator.js +102 -0
  95. package/dist/lib/guidance/engine/step-navigation.d.ts +5 -0
  96. package/dist/lib/guidance/engine/step-navigation.js +35 -0
  97. package/dist/lib/guidance/index.d.ts +12 -0
  98. package/dist/lib/guidance/storage/storage-adapter.d.ts +10 -0
  99. package/dist/lib/guidance/storage/storage-adapter.js +51 -0
  100. package/dist/lib/guidance/storage/storage-keys.d.ts +10 -0
  101. package/dist/lib/guidance/storage/storage-keys.js +23 -0
  102. package/dist/lib/guidance/targets/ref-registry.d.ts +12 -0
  103. package/dist/lib/guidance/targets/ref-registry.js +65 -0
  104. package/dist/lib/guidance/targets/target-resolver.d.ts +13 -0
  105. package/dist/lib/guidance/targets/target-resolver.js +85 -0
  106. package/dist/lib/guidance/triggers/built-in-triggers.d.ts +14 -0
  107. package/dist/lib/guidance/triggers/built-in-triggers.js +88 -0
  108. package/dist/lib/guidance/triggers/trigger-registry.d.ts +9 -0
  109. package/dist/lib/guidance/triggers/trigger-registry.js +44 -0
  110. package/dist/lib/guidance/types/guidance.types.d.ts +181 -0
  111. package/dist/lib/overflow/is-line-clamp-text-clipped.d.ts +2 -0
  112. package/dist/lib/overflow/is-line-clamp-text-clipped.js +33 -0
  113. package/dist/lib/overflow/is-text-overflowing.d.ts +1 -0
  114. package/dist/lib/overflow/is-text-overflowing.js +8 -3
  115. package/dist/llms/rules/installation.js +1 -1
  116. package/dist/llms/rules/requirements.js +1 -1
  117. package/package.json +51 -22
@@ -1,11 +1,9 @@
1
- const E = "ag-grid-header-label-cluster", _ = ".ag-header-group-cell-label", L = ".ag-header-cell-label", l = `.${E}`;
2
- function r(e) {
3
- return e === "group" ? _ : L;
1
+ const l = ".ag-header-group-cell-label", r = ".ag-header-cell-label";
2
+ function E(e) {
3
+ return e === "group" ? l : r;
4
4
  }
5
5
  export {
6
- L as AG_GRID_HEADER_CELL_LABEL_SELECTOR,
7
- _ as AG_GRID_HEADER_GROUP_LABEL_SELECTOR,
8
- E as AG_GRID_HEADER_LABEL_CLUSTER_CLASS,
9
- l as AG_GRID_HEADER_LABEL_CLUSTER_SELECTOR,
10
- r as resolveAgGridHeaderLabelShellSelector
6
+ r as AG_GRID_HEADER_CELL_LABEL_SELECTOR,
7
+ l as AG_GRID_HEADER_GROUP_LABEL_SELECTOR,
8
+ E as resolveAgGridHeaderLabelShellSelector
11
9
  };
@@ -3,5 +3,5 @@ import { AgGridHeaderTooltipKind } from './ag-grid-header-dom';
3
3
  export type AgGridTooltipOverflowMode = TextOverflowMode;
4
4
  /** Matches AG Grid `_isElementOverflowingCallback` (horizontal or vertical). */
5
5
  export declare function isAgGridTextOverflowing(element: HTMLElement, mode?: AgGridTooltipOverflowMode): boolean;
6
- /** Header label tooltips: ellipsis on the text node, else content wider than the label shell. */
6
+ /** Header label tooltips: text-node overflow only; shell fallback ignores info-icon cluster width. */
7
7
  export declare function isAgGridHeaderLabelTooltipOverflowing(element: HTMLElement, headerKind: AgGridHeaderTooltipKind): boolean;
@@ -1,18 +1,30 @@
1
- import { isTextOverflowing as o } from "../../../lib/overflow/is-text-overflowing.js";
2
- import { resolveAgGridHeaderLabelShellSelector as n, AG_GRID_HEADER_LABEL_CLUSTER_SELECTOR as c } from "./ag-grid-header-dom.js";
3
- function h(t, l = "line-clamp") {
4
- return o(t, l);
1
+ import { isLineClampTextVisuallyClipped as o } from "../../../lib/overflow/is-line-clamp-text-clipped.js";
2
+ import { isTextOverflowing as n, TEXT_OVERFLOW_EPSILON_PX as t } from "../../../lib/overflow/is-text-overflowing.js";
3
+ import { resolveAgGridHeaderLabelShellSelector as c } from "./ag-grid-header-dom.js";
4
+ const s = 16;
5
+ function l(r, i) {
6
+ return r - i > t;
5
7
  }
6
- function u(t, l) {
7
- if (t.clientWidth < t.scrollWidth)
8
- return !0;
9
- const e = t.closest(n(l));
10
- if (!e || typeof e.clientWidth != "number")
8
+ function f(r) {
9
+ const i = r.scrollHeight - r.clientHeight;
10
+ if (i <= t)
11
11
  return !1;
12
- const i = e, r = t.closest(c);
13
- return (r && typeof r.scrollWidth == "number" ? r.scrollWidth : t.scrollWidth) > i.clientWidth;
12
+ const e = parseFloat(getComputedStyle(r).lineHeight) || s;
13
+ return i > e + t;
14
+ }
15
+ function p(r, i = "line-clamp") {
16
+ return n(r, i);
17
+ }
18
+ function g(r, i) {
19
+ if (l(r.scrollWidth, r.clientWidth) || f(r) || o(r))
20
+ return !0;
21
+ const e = r.closest(c(i));
22
+ return !e || typeof e.clientWidth != "number" ? !1 : l(
23
+ r.scrollWidth,
24
+ e.clientWidth
25
+ );
14
26
  }
15
27
  export {
16
- u as isAgGridHeaderLabelTooltipOverflowing,
17
- h as isAgGridTextOverflowing
28
+ g as isAgGridHeaderLabelTooltipOverflowing,
29
+ p as isAgGridTextOverflowing
18
30
  };
@@ -128,7 +128,7 @@ const ce = ({ api: r }) => {
128
128
  enableBooleanParsing: O,
129
129
  enableDateParsing: U
130
130
  } = r, I = M(null);
131
- re(h, t ?? "", I, "ellipsis", "leaf");
131
+ re(h, t ?? "", I, "line-clamp", "leaf");
132
132
  const u = $(), { t: S } = R(), i = l.getColDef(), m = l.getColId(), [de, K] = F(0);
133
133
  L(() => ie(() => {
134
134
  K((b) => b + 1);
@@ -1,19 +1,19 @@
1
1
  import { jsxs as d, jsx as o } from "react/jsx-runtime";
2
- import { useRef as p } from "react";
3
- import { HeaderInfo as m } from "./components/header-info.js";
2
+ import { useRef as m } from "react";
3
+ import { HeaderInfo as p } from "./components/header-info.js";
4
4
  import { useAgGridTruncationTooltip as c } from "../use-ag-grid-truncation-tooltip.js";
5
5
  import { ColumnGroupSettingsMenu as f } from "./column-menu/column-header-settings-menu.js";
6
6
  function I(t) {
7
- const { displayName: a, setTooltip: l, showInfoIcon: s = !1, columnGroup: i, api: u } = t, r = p(null), e = a || "";
8
- if (c(l, e, r, "ellipsis", "group"), !e && s === !1)
7
+ const { displayName: a, setTooltip: l, showInfoIcon: s = !1, columnGroup: u, api: i } = t, r = m(null), e = a || "";
8
+ if (c(l, e, r, "line-clamp", "group"), !e && s === !1)
9
9
  return null;
10
- const n = i?.getGroupId();
10
+ const n = u?.getGroupId();
11
11
  return /* @__PURE__ */ d("div", { className: "ag-grid-header-label-cluster", children: [
12
12
  n ? /* @__PURE__ */ o(
13
13
  f,
14
14
  {
15
15
  columnGroupId: n,
16
- gridApi: u,
16
+ gridApi: i,
17
17
  headerLabelRef: r,
18
18
  children: e
19
19
  }
@@ -26,7 +26,7 @@ function I(t) {
26
26
  children: e
27
27
  }
28
28
  ),
29
- /* @__PURE__ */ o(m, { ...t, className: "shrink-0" })
29
+ /* @__PURE__ */ o(p, { ...t, className: "shrink-0" })
30
30
  ] });
31
31
  }
32
32
  export {
@@ -0,0 +1,3 @@
1
+ import { ColDef, ColGroupDef } from 'ag-grid-community';
2
+ export type ColumnDefTree = ColDef | ColGroupDef;
3
+ export declare function stripColumnMinWidthConstraints(columnDefinitions: ColumnDefTree[]): ColumnDefTree[];
@@ -13,4 +13,4 @@ export declare function DataTableContent<TData>(props: DataTableContentProps<TDa
13
13
  /**
14
14
  * Top bar above the grid. Optional — omit to remove the toolbar from the DOM.
15
15
  */
16
- export declare const DataTableToolbar: ({ children, className, }: DataTableToolbarProps) => import("react/jsx-runtime").JSX.Element;
16
+ export declare const DataTableToolbar: ({ children, className, ...rest }: DataTableToolbarProps) => import("react/jsx-runtime").JSX.Element;
@@ -13,27 +13,27 @@ const R = {
13
13
  comfort: 52
14
14
  }, re = ({
15
15
  children: a,
16
- className: o
16
+ className: r
17
17
  }) => {
18
- const [r, e] = h(null), [t, s] = h("medium"), [n, m] = h("full"), [l, c] = h("default"), u = p(() => L(), []), d = b((f) => {
18
+ const [t, e] = h(null), [o, s] = h("medium"), [n, m] = h("full"), [l, c] = h("default"), u = p(() => L(), []), d = b((f) => {
19
19
  u.registerScopedSheetDepth(f);
20
20
  }, [u]), g = b((f) => {
21
21
  e(f);
22
22
  }, []);
23
23
  D(() => {
24
- if (r)
25
- return k(r);
26
- }, [r]);
24
+ if (t)
25
+ return k(t);
26
+ }, [t]);
27
27
  const T = {
28
28
  small: "12px",
29
29
  medium: "14px",
30
30
  large: "16px"
31
- }[t], H = `${R[l]}px`, x = p(
31
+ }[o], H = `${R[l]}px`, x = p(
32
32
  () => ({
33
- gridApi: r,
33
+ gridApi: t,
34
34
  registerApi: g,
35
35
  registerScopedSheetDepth: d,
36
- fontSize: t,
36
+ fontSize: o,
37
37
  setFontSize: s,
38
38
  numericFormat: n,
39
39
  setNumericFormat: m,
@@ -41,10 +41,10 @@ const R = {
41
41
  setRowHeight: c
42
42
  }),
43
43
  [
44
- r,
44
+ t,
45
45
  g,
46
46
  d,
47
- t,
47
+ o,
48
48
  n,
49
49
  l
50
50
  ]
@@ -59,7 +59,7 @@ const R = {
59
59
  "data-component": "data-table",
60
60
  className: _(
61
61
  "flex flex-col w-full min-h-0 rounded-[inherit]",
62
- o
62
+ r
63
63
  ),
64
64
  style: {
65
65
  "--ag-font-size": T,
@@ -77,21 +77,21 @@ const R = {
77
77
  b: "bil",
78
78
  full_precision: "full_precision"
79
79
  }, V = A(function() {
80
- const { setSheetTarget: o } = P();
80
+ const { setSheetTarget: r } = P();
81
81
  return /* @__PURE__ */ i(
82
82
  "div",
83
83
  {
84
- ref: o,
84
+ ref: r,
85
85
  className: "absolute inset-0 pointer-events-none z-[39] flex overflow-hidden"
86
86
  }
87
87
  );
88
88
  }), Y = A(function({
89
- className: o,
90
- children: r
89
+ className: r,
90
+ children: t
91
91
  }) {
92
- const { scopedSheetOpen: e } = P(), t = O(null), [s, n] = h(!1);
92
+ const { scopedSheetOpen: e } = P(), o = O(null), [s, n] = h(!1);
93
93
  !e && s && n(!1), N(() => {
94
- if (!e || (t.current?.clientHeight ?? 0) >= v)
94
+ if (!e || (o.current?.clientHeight ?? 0) >= v)
95
95
  return;
96
96
  const c = window.setTimeout(() => {
97
97
  n(!0);
@@ -104,23 +104,23 @@ const R = {
104
104
  return /* @__PURE__ */ I(
105
105
  "div",
106
106
  {
107
- ref: t,
107
+ ref: o,
108
108
  className: _(
109
109
  "relative flex-1 min-h-0 w-full bg-canvas-elevated rounded-b-[inherit] grid-rounded-bottom",
110
- o
110
+ r
111
111
  ),
112
112
  style: m ? { minHeight: v } : void 0,
113
113
  children: [
114
- r,
114
+ t,
115
115
  /* @__PURE__ */ i(V, {})
116
116
  ]
117
117
  }
118
118
  );
119
119
  }), $ = A(function({
120
- resolvedRowHeight: o,
121
- mergedContext: r,
120
+ resolvedRowHeight: r,
121
+ mergedContext: t,
122
122
  onGridReady: e,
123
- columnDefs: t,
123
+ columnDefs: o,
124
124
  maintainColumnOrder: s = !0,
125
125
  ...n
126
126
  }) {
@@ -128,20 +128,20 @@ const R = {
128
128
  M,
129
129
  {
130
130
  ...n,
131
- columnDefs: t,
132
- rowHeight: o,
131
+ columnDefs: o,
132
+ rowHeight: r,
133
133
  onGridReady: e,
134
- context: r,
134
+ context: t,
135
135
  maintainColumnOrder: s
136
136
  }
137
137
  );
138
138
  });
139
139
  function ne(a) {
140
140
  const {
141
- registerApi: o,
142
- rowHeight: r,
141
+ registerApi: r,
142
+ rowHeight: t,
143
143
  gridApi: e,
144
- numericFormat: t
144
+ numericFormat: o
145
145
  } = B(), {
146
146
  className: s,
147
147
  onGridReady: n,
@@ -152,7 +152,7 @@ function ne(a) {
152
152
  suppressInitialRuntimeState: d,
153
153
  maintainColumnOrder: g = !0,
154
154
  ...T
155
- } = a, H = R[r], x = m ?? H, { runtimeColumnDefs: f, extractedRuntimeDefaults: w } = p(
155
+ } = a, H = R[t], x = m ?? H, { runtimeColumnDefs: f, extractedRuntimeDefaults: w } = p(
156
156
  () => W(c ?? void 0),
157
157
  [c]
158
158
  ), C = p(
@@ -165,26 +165,26 @@ function ne(a) {
165
165
  ), E = p(
166
166
  () => ({
167
167
  ...l,
168
- formatType: y[t]
168
+ formatType: y[o]
169
169
  }),
170
- [l, t]
170
+ [l, o]
171
171
  );
172
172
  D(() => {
173
173
  e?.resetRowHeights();
174
- }, [r, e]), D(() => {
174
+ }, [t, e]), D(() => {
175
175
  if (e) {
176
176
  const S = e.getGridOption("context") || {};
177
177
  e.setGridOption("context", {
178
178
  ...S,
179
- formatType: y[t]
179
+ formatType: y[o]
180
180
  }), e.refreshCells({ force: !0 });
181
181
  }
182
- }, [t, e]);
182
+ }, [o, e]);
183
183
  const G = b(
184
184
  (S) => {
185
- o(S.api), n?.(S);
185
+ r(S.api), n?.(S);
186
186
  },
187
- [o, n]
187
+ [r, n]
188
188
  );
189
189
  return /* @__PURE__ */ i(Y, { className: s, children: /* @__PURE__ */ i(
190
190
  $,
@@ -201,15 +201,17 @@ function ne(a) {
201
201
  }
202
202
  const ie = ({
203
203
  children: a,
204
- className: o
204
+ className: r,
205
+ ...t
205
206
  }) => /* @__PURE__ */ i(
206
207
  "div",
207
208
  {
208
209
  "data-component": "data-table-toolbar",
209
210
  className: _(
210
211
  "flex items-center justify-between px-4 py-3 shrink-0 bg-canvas-elevated rounded-t-[inherit]",
211
- o
212
+ r
212
213
  ),
214
+ ...t,
213
215
  children: a
214
216
  }
215
217
  );
@@ -31,7 +31,7 @@ export type DataTableToolbarProps = {
31
31
  children: React.ReactNode;
32
32
  /** Extra classes on the toolbar root (`data-component="data-table-toolbar"`). */
33
33
  className?: string;
34
- };
34
+ } & Omit<React.ComponentPropsWithoutRef<'div'>, 'children' | 'className'>;
35
35
  /**
36
36
  * Scoped settings panel state. Renders inside the `DataTable` container (not a viewport modal).
37
37
  *
@@ -5,7 +5,7 @@ import { createCompoundPart as C } from "../../../lib/primitives/create-compound
5
5
  import { cn as o } from "../../../lib/utils.js";
6
6
  import { MultiColorFilter as F, Cross as P, InfoBadge as u } from "impact-nova-icons";
7
7
  import { Button as D } from "../../primitives/button/button.js";
8
- import { Tooltip as d, TooltipTrigger as f, TooltipContent as h } from "../../feedback/tooltip/tooltip.js";
8
+ import { Tooltip as c, TooltipTrigger as f, TooltipContent as h } from "../../feedback/tooltip/tooltip.js";
9
9
  import { Kbd as S } from "../../primitives/kbd/kbd.js";
10
10
  import { OverflowTooltip as j } from "../../feedback/tooltip/overflow-tooltip.js";
11
11
  import { useImpactNovaI18n as v } from "../../../i18n/use-impact-nova-i18n.js";
@@ -16,7 +16,7 @@ const O = ({
16
16
  children: n,
17
17
  className: l
18
18
  }) => {
19
- const { t: c } = v();
19
+ const { t: d } = v();
20
20
  return /* @__PURE__ */ a(
21
21
  "div",
22
22
  {
@@ -45,7 +45,7 @@ const O = ({
45
45
  variant: "secondary",
46
46
  size: "icon",
47
47
  tabIndex: -1,
48
- "aria-label": c("aria.close"),
48
+ "aria-label": d("aria.close"),
49
49
  "data-component": "filter-panel-close",
50
50
  children: /* @__PURE__ */ e(P, { className: "h-3 w-3" })
51
51
  }
@@ -58,7 +58,7 @@ const O = ({
58
58
  open: i,
59
59
  onOpenChange: n,
60
60
  title: l = "Filter panel",
61
- children: c,
61
+ children: d,
62
62
  header: s,
63
63
  sidebar: p,
64
64
  className: m,
@@ -86,7 +86,7 @@ const O = ({
86
86
  s || /* @__PURE__ */ e(O, { title: l }),
87
87
  /* @__PURE__ */ a("div", { className: "flex flex-1 overflow-hidden", children: [
88
88
  p,
89
- /* @__PURE__ */ e("div", { className: "flex flex-col flex-1 overflow-hidden", children: c })
89
+ /* @__PURE__ */ e("div", { className: "flex flex-col flex-1 overflow-hidden", children: d })
90
90
  ] })
91
91
  ] })
92
92
  ]
@@ -95,7 +95,7 @@ const O = ({
95
95
  items: i,
96
96
  activeTab: n,
97
97
  onTabChange: l,
98
- className: c
98
+ className: d
99
99
  }) => {
100
100
  const { t: s } = v(), p = I(), m = (t) => {
101
101
  t !== n && p(), l(t);
@@ -106,97 +106,104 @@ const O = ({
106
106
  "data-component": "filter-panel-sidebar",
107
107
  className: o(
108
108
  "flex w-[200px] shrink-0 flex-col border-r bg-navigation-canvas",
109
- c
109
+ d
110
110
  ),
111
- children: /* @__PURE__ */ e("div", { className: "flex flex-1 flex-col py-2 gap-1 overflow-y-auto", children: i.map((t) => {
112
- const r = n === t.id;
113
- return /* @__PURE__ */ a(b.Fragment, { children: [
114
- t.separator && /* @__PURE__ */ e("div", { className: "my-2 h-px bg-stroke-hairline" }),
115
- /* @__PURE__ */ a(
116
- "button",
117
- {
118
- type: "button",
119
- autoFocus: r,
120
- onClick: () => m(t.id),
121
- "data-component": "filter-panel-sidebar-item",
122
- "data-active": r ? "true" : "false",
123
- "data-tab": t.id,
124
- "data-shortcut-id": t.shortcutId,
125
- className: o(
126
- "group flex items-center justify-between px-3 py-[6px] mx-2 rounded-lg text-left text-sm font-medium transition-colors",
127
- r ? "bg-canvas-accent text-brand" : "text-content-secondary hover:bg-canvas-accent"
128
- ),
129
- children: [
130
- /* @__PURE__ */ a("div", { className: "flex items-center gap-2 min-w-0 flex-1", children: [
131
- /* @__PURE__ */ e(
132
- "span",
133
- {
134
- className: o(
135
- "shrink-0",
136
- r ? "text-brand" : "text-content-secondary"
137
- ),
138
- children: t.icon
139
- }
111
+ children: /* @__PURE__ */ e(
112
+ "div",
113
+ {
114
+ "data-component": "filter-panel-sidebar-nav",
115
+ className: "flex max-h-full min-h-0 flex-col gap-1 overflow-y-auto py-2",
116
+ children: i.map((t) => {
117
+ const r = n === t.id;
118
+ return /* @__PURE__ */ a(b.Fragment, { children: [
119
+ t.separator && /* @__PURE__ */ e("div", { className: "my-2 h-px bg-stroke-hairline" }),
120
+ /* @__PURE__ */ a(
121
+ "button",
122
+ {
123
+ type: "button",
124
+ autoFocus: r,
125
+ onClick: () => m(t.id),
126
+ "data-component": "filter-panel-sidebar-item",
127
+ "data-active": r ? "true" : "false",
128
+ "data-tab": t.id,
129
+ "data-shortcut-id": t.shortcutId,
130
+ className: o(
131
+ "group flex items-center justify-between px-3 py-[6px] mx-2 rounded-lg text-left text-sm font-medium transition-colors",
132
+ r ? "bg-canvas-accent text-brand" : "text-content-secondary hover:bg-canvas-accent"
140
133
  ),
141
- /* @__PURE__ */ a("div", { className: "flex items-center gap-1 min-w-0", children: [
142
- /* @__PURE__ */ e(
143
- j,
144
- {
145
- triggerClassName: "truncate font-['Manrope'] block min-w-0",
146
- content: t.tooltipKeybinding ? /* @__PURE__ */ a("span", { className: "flex items-center gap-2", children: [
147
- t.label,
148
- " ",
149
- /* @__PURE__ */ e(
150
- S,
151
- {
152
- keybinding: t.tooltipKeybinding,
153
- size: "sm"
154
- }
155
- )
156
- ] }) : t.label,
157
- side: "right",
158
- variant: "tertiary",
159
- children: t.label
160
- }
161
- ),
162
- t.isRequired && /* @__PURE__ */ e("span", { className: "shrink-0 text-danger", children: "*" })
163
- ] })
164
- ] }),
165
- /* @__PURE__ */ a("div", { className: "flex items-center gap-1 shrink-0 ml-1", children: [
166
- t.count !== void 0 && t.count > 0 && /* @__PURE__ */ a(d, { children: [
167
- /* @__PURE__ */ e(f, { asChild: !0, children: /* @__PURE__ */ e(
168
- "span",
169
- {
170
- className: o(
171
- "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",
172
- r ? "bg-canvas-elevated text-brand border border-stroke-subtle" : "bg-brand-tint border border-stroke-subtle"
134
+ children: [
135
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-2 min-w-0 flex-1", children: [
136
+ /* @__PURE__ */ e(
137
+ "span",
138
+ {
139
+ className: o(
140
+ "shrink-0",
141
+ r ? "text-brand" : "text-content-secondary"
142
+ ),
143
+ children: t.icon
144
+ }
145
+ ),
146
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-1 min-w-0", children: [
147
+ /* @__PURE__ */ e(
148
+ j,
149
+ {
150
+ triggerClassName: "truncate font-['Manrope'] block min-w-0",
151
+ content: t.tooltipKeybinding ? /* @__PURE__ */ a("span", { className: "flex items-center gap-2", children: [
152
+ t.label,
153
+ " ",
154
+ /* @__PURE__ */ e(
155
+ S,
156
+ {
157
+ keybinding: t.tooltipKeybinding,
158
+ size: "sm"
159
+ }
160
+ )
161
+ ] }) : t.label,
162
+ side: "right",
163
+ variant: "tertiary",
164
+ children: t.label
165
+ }
173
166
  ),
174
- children: t.count
175
- }
176
- ) }),
177
- /* @__PURE__ */ e(h, { variant: "tertiary", side: "top", children: s(
178
- t.countBadgeContext === "savedFiltersTotal" ? "filterPanel.savedFiltersAvailableCount" : "filterPanel.filtersAppliedCount",
179
- { count: t.count }
180
- ) })
181
- ] }),
182
- t.hasError && /* @__PURE__ */ a(d, { children: [
183
- /* @__PURE__ */ e(f, { asChild: !0, children: /* @__PURE__ */ e(u, { className: "h-5 w-5 shrink-0 text-danger" }) }),
184
- /* @__PURE__ */ e(h, { variant: "tertiary", children: s("filterPanel.tabContainsErrors") })
185
- ] }),
186
- t.hasWarning && /* @__PURE__ */ a(d, { children: [
187
- /* @__PURE__ */ e(f, { asChild: !0, children: /* @__PURE__ */ e(u, { className: "h-5 w-5 shrink-0 text-warning" }) }),
188
- /* @__PURE__ */ e(h, { variant: "tertiary", children: s("filterPanel.tabHasWarnings") })
189
- ] }),
190
- t.hasInfo && /* @__PURE__ */ a(d, { children: [
191
- /* @__PURE__ */ e(f, { asChild: !0, children: /* @__PURE__ */ e(u, { className: "h-5 w-5 shrink-0 text-content-icon" }) }),
192
- /* @__PURE__ */ e(h, { variant: "tertiary", children: s("filterPanel.additionalInfoAvailable") })
193
- ] })
194
- ] })
195
- ]
196
- }
197
- )
198
- ] }, t.id);
199
- }) })
167
+ t.isRequired && /* @__PURE__ */ e("span", { className: "shrink-0 text-danger", children: "*" })
168
+ ] })
169
+ ] }),
170
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-1 shrink-0 ml-1", children: [
171
+ t.count !== void 0 && t.count > 0 && /* @__PURE__ */ a(c, { children: [
172
+ /* @__PURE__ */ e(f, { asChild: !0, children: /* @__PURE__ */ e(
173
+ "span",
174
+ {
175
+ className: o(
176
+ "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",
177
+ r ? "bg-canvas-elevated text-brand border border-stroke-subtle" : "bg-brand-tint border border-stroke-subtle"
178
+ ),
179
+ children: t.count
180
+ }
181
+ ) }),
182
+ /* @__PURE__ */ e(h, { variant: "tertiary", side: "top", children: s(
183
+ t.countBadgeContext === "savedFiltersTotal" ? "filterPanel.savedFiltersAvailableCount" : "filterPanel.filtersAppliedCount",
184
+ { count: t.count }
185
+ ) })
186
+ ] }),
187
+ t.hasError && /* @__PURE__ */ a(c, { children: [
188
+ /* @__PURE__ */ e(f, { asChild: !0, children: /* @__PURE__ */ e(u, { className: "h-5 w-5 shrink-0 text-danger" }) }),
189
+ /* @__PURE__ */ e(h, { variant: "tertiary", children: s("filterPanel.tabContainsErrors") })
190
+ ] }),
191
+ t.hasWarning && /* @__PURE__ */ a(c, { children: [
192
+ /* @__PURE__ */ e(f, { asChild: !0, children: /* @__PURE__ */ e(u, { className: "h-5 w-5 shrink-0 text-warning" }) }),
193
+ /* @__PURE__ */ e(h, { variant: "tertiary", children: s("filterPanel.tabHasWarnings") })
194
+ ] }),
195
+ t.hasInfo && /* @__PURE__ */ a(c, { children: [
196
+ /* @__PURE__ */ e(f, { asChild: !0, children: /* @__PURE__ */ e(u, { className: "h-5 w-5 shrink-0 text-content-icon" }) }),
197
+ /* @__PURE__ */ e(h, { variant: "tertiary", children: s("filterPanel.additionalInfoAvailable") })
198
+ ] })
199
+ ] })
200
+ ]
201
+ }
202
+ )
203
+ ] }, t.id);
204
+ })
205
+ }
206
+ )
200
207
  }
201
208
  );
202
209
  }, Q = C("filter-panel", {
@@ -0,0 +1,13 @@
1
+ import { GuidancePlugin } from '../../../../lib/guidance';
2
+ export interface AgGridTargetConfig {
3
+ gridApi: {
4
+ ensureIndexVisible: (rowIndex: number, position?: string) => void;
5
+ };
6
+ rowIndex?: number;
7
+ columnId?: string;
8
+ }
9
+ export declare function createAgGridTargetAdapter(): GuidancePlugin<AgGridTargetConfig>;
10
+ export declare function createAgGridReadyTriggerPlugin(): GuidancePlugin<{
11
+ gridId: string;
12
+ }>;
13
+ export declare function emitAgGridReady(emit: (eventName: string) => void, gridId: string): void;
@@ -0,0 +1,30 @@
1
+ function a() {
2
+ return {
3
+ type: "adapter.ag-grid",
4
+ resolve: (r, e) => {
5
+ if (e.rowIndex !== void 0 && e.gridApi.ensureIndexVisible(e.rowIndex, "middle"), typeof document > "u")
6
+ return null;
7
+ const d = e.columnId ? `[col-id="${e.columnId}"]` : `[data-guidance-target="${r.targetDescriptor.targetId}"]`, t = document.querySelector(d);
8
+ return {
9
+ targetId: r.targetDescriptor.targetId,
10
+ element: t,
11
+ rect: t?.getBoundingClientRect() ?? null,
12
+ source: "adapter"
13
+ };
14
+ }
15
+ };
16
+ }
17
+ function i() {
18
+ return {
19
+ type: "trigger.ag-grid-ready",
20
+ evaluate: (r, e) => r.customEvents.has(`ag-grid.ready.${e.gridId}`)
21
+ };
22
+ }
23
+ function n(r, e) {
24
+ r(`ag-grid.ready.${e}`);
25
+ }
26
+ export {
27
+ i as createAgGridReadyTriggerPlugin,
28
+ a as createAgGridTargetAdapter,
29
+ n as emitAgGridReady
30
+ };
@@ -0,0 +1,2 @@
1
+ export { createAgGridTargetAdapter, createAgGridReadyTriggerPlugin, emitAgGridReady, } from './ag-grid-adapter';
2
+ export type { AgGridTargetConfig } from './ag-grid-adapter';
@@ -0,0 +1,6 @@
1
+ import { createAgGridReadyTriggerPlugin as g, createAgGridTargetAdapter as a, emitAgGridReady as d } from "./ag-grid-adapter.js";
2
+ export {
3
+ g as createAgGridReadyTriggerPlugin,
4
+ a as createAgGridTargetAdapter,
5
+ d as emitAgGridReady
6
+ };