impact-nova 1.7.20 → 1.7.22

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.
@@ -1,191 +1,205 @@
1
- import { jsx as g, jsxs as se } from "react/jsx-runtime";
2
- import re, { useMemo as A, useCallback as D } from "react";
1
+ import { jsx as v, jsxs as se } from "react/jsx-runtime";
2
+ import re, { useMemo as w, useCallback as A } from "react";
3
3
  import { SortableItem as He } from "./components/SortableItem.js";
4
- import { SelectionMode as b } from "../types/nested-list.types.js";
5
- import { useNestedListDragDrop as We } from "./hooks/useNestedListDragDrop.js";
6
- import { useNestedListSelectAll as je } from "./hooks/useNestedListSelectAll.js";
7
- import { useNestedListState as Fe } from "./hooks/useNestedListState.js";
8
- import { useNestedListHandlers as Je } from "./hooks/useNestedListHandlers.js";
4
+ import { SelectionMode as V } from "../types/nested-list.types.js";
5
+ import { useNestedListDragDrop as Je } from "./hooks/useNestedListDragDrop.js";
6
+ import { useNestedListSelectAll as We } from "./hooks/useNestedListSelectAll.js";
7
+ import { useNestedListState as je } from "./hooks/useNestedListState.js";
8
+ import { useNestedListHandlers as Fe } from "./hooks/useNestedListHandlers.js";
9
9
  import { NestedListHeader as qe } from "./components/NestedListHeader.js";
10
10
  import { NestedListCategoryFilters as Ke } from "./components/NestedListCategoryFilters.js";
11
11
  import { NestedListContent as Qe } from "./components/NestedListContent.js";
12
12
  import { NestedListApplyDiscardButtons as Xe } from "./components/NestedListApplyDiscardButtons.js";
13
13
  import { cn as Ye } from "../../../lib/utils.js";
14
14
  import { useImpactNovaI18n as Ze } from "../../../i18n/ImpactNovaI18nContext.js";
15
- const ne = (d, t) => {
16
- if (!t || typeof t != "string") return d;
17
- const c = t.toLowerCase(), o = [];
18
- return d.forEach((s) => {
19
- const l = s.label.toLowerCase().includes(c), f = s.children ? ne(s.children, t) : void 0;
20
- (l || f && f.length > 0) && o.push({
21
- ...s,
22
- children: f || s.children
15
+ const ne = (d, r) => {
16
+ if (!r || typeof r != "string") return d;
17
+ const o = r.toLowerCase(), c = [];
18
+ return d.forEach((n) => {
19
+ const l = n.label.toLowerCase().includes(o), f = n.children ? ne(n.children, r) : void 0;
20
+ (l || f && f.length > 0) && c.push({
21
+ ...n,
22
+ children: f || n.children
23
23
  });
24
- }), o;
25
- }, le = (d) => d.map((t) => {
26
- if (t.children && t.children.length > 0) {
27
- const c = le(t.children), o = c.every((s) => s.checked);
24
+ }), c;
25
+ }, le = (d) => d.map((r) => {
26
+ if (r.children && r.children.length > 0) {
27
+ const o = le(r.children), c = o.every((n) => n.checked);
28
28
  return {
29
- ...t,
30
- checked: o,
31
- children: c
29
+ ...r,
30
+ checked: c,
31
+ children: o
32
32
  };
33
33
  }
34
- return t;
35
- }), $e = (d, t) => {
36
- const c = /* @__PURE__ */ new Set(), o = (s) => {
37
- s.forEach((l) => {
38
- const f = t ? t(l) : l.category;
39
- f && c.add(f), l.children && o(l.children);
34
+ return r;
35
+ }), $e = (d, r) => {
36
+ const o = /* @__PURE__ */ new Set(), c = (n) => {
37
+ n.forEach((l) => {
38
+ const f = r ? r(l) : l.category;
39
+ f && o.add(f), l.children && c(l.children);
40
40
  });
41
41
  };
42
- return o(d), Array.from(c).sort();
43
- }, ce = (d, t, c) => {
44
- if (t.size === 0) return d;
45
- const o = [];
46
- return d.forEach((s) => {
47
- const l = c ? c(s) : s.category, f = l && t.has(l), m = s.children ? ce(s.children, t, c) : void 0;
48
- (f || m && m.length > 0) && o.push({
49
- ...s,
42
+ return c(d), Array.from(o).sort();
43
+ }, oe = (d, r, o) => {
44
+ if (r.size === 0) return d;
45
+ const c = [];
46
+ return d.forEach((n) => {
47
+ const l = o ? o(n) : n.category, f = l && r.has(l), m = n.children ? oe(n.children, r, o) : void 0;
48
+ (f || m && m.length > 0) && c.push({
49
+ ...n,
50
50
  children: m
51
51
  });
52
- }), o;
53
- }, oe = (d, t, c, o = 0) => {
54
- const s = [];
52
+ }), c;
53
+ }, ce = (d, r, o, c = 0) => {
54
+ const n = [];
55
55
  return d.forEach((l) => {
56
- s.push({ item: l, level: o }), !t[l.id] && l.children && l.children.length > 0 && l.id !== c && s.push(
57
- ...oe(l.children, t, c, o + 1)
56
+ n.push({ item: l, level: c }), !r[l.id] && l.children && l.children.length > 0 && l.id !== o && n.push(
57
+ ...ce(l.children, r, o, c + 1)
58
58
  );
59
- }), s;
59
+ }), n;
60
60
  }, ut = ({
61
61
  items: d,
62
- onChange: t,
63
- onSubmit: c,
64
- onCancel: o,
65
- onItemToggle: s,
62
+ onChange: r,
63
+ onSubmit: o,
64
+ onCancel: c,
65
+ onItemToggle: n,
66
66
  onDragEnd: l,
67
67
  enableSearch: f = !0,
68
68
  enableDragDrop: m = !0,
69
69
  enableSelectAll: de = !0,
70
70
  enableGroupBy: L = !1,
71
- getCategory: N,
71
+ getCategory: S,
72
72
  searchPlaceholder: ie,
73
73
  className: ae = "",
74
74
  groupLabel: he,
75
75
  enableApplyDiscard: p = !1,
76
- enableCollapse: F = !0,
76
+ enableCollapse: j = !0,
77
77
  enableGlobalCollapse: ue = !0,
78
78
  submitButtonLabel: fe,
79
79
  cancelButtonLabel: pe,
80
- selectionMode: S = b.CASCADE_DOWN
80
+ selectionMode: C = V.CASCADE_DOWN
81
81
  }) => {
82
- const { t: T } = Ze(), me = ie ?? T("nestedList.searchPlaceholder"), Ce = fe ?? T("nestedList.apply"), Ne = pe ?? T("nestedList.reset"), {
83
- items: a,
82
+ const { t: D } = Ze(), me = ie ?? D("nestedList.searchPlaceholder"), Ne = fe ?? D("nestedList.apply"), Se = pe ?? D("nestedList.reset"), {
83
+ items: i,
84
84
  setItems: I,
85
- savedItems: w,
86
- setSavedItems: J,
85
+ savedItems: T,
86
+ setSavedItems: F,
87
87
  isUserChangeRef: P,
88
88
  searchText: x,
89
- setSearchText: Se,
90
- collapsedItems: z,
89
+ setSearchText: Ce,
90
+ collapsedItems: O,
91
91
  setCollapsedItems: Ie,
92
- isListCollapsed: B,
93
- setIsListCollapsed: ve,
94
- activeId: v,
95
- setActiveId: U,
96
- setOverId: _,
97
- selectedCategories: O,
98
- setSelectedCategories: ge,
92
+ isListCollapsed: b,
93
+ setIsListCollapsed: ge,
94
+ activeId: g,
95
+ setActiveId: y,
96
+ setOverId: U,
97
+ selectedCategories: z,
98
+ setSelectedCategories: ve,
99
99
  itemsToBlink: q,
100
- setItemsToBlink: y,
100
+ setItemsToBlink: _,
101
101
  // Normalized state helpers (for optimized operations)
102
102
  isNormalized: Le,
103
103
  normalizedState: ke,
104
104
  batchUpdateItems: Ee
105
- } = Fe({
105
+ } = je({
106
106
  initialItems: d,
107
107
  enableApplyDiscard: p,
108
108
  // Enable normalized state for large datasets (can be made configurable via props)
109
109
  enableNormalizedState: d.length > 1e3
110
- }), [R, K] = re.useState(0), [V, Ae] = re.useState(0), {
111
- sensors: De,
112
- handleDragEnd: Te,
110
+ });
111
+ if (typeof window < "u") {
112
+ const e = i.map((t) => ({
113
+ id: t.id,
114
+ childIds: t.children?.map((s) => ({
115
+ id: s.id,
116
+ childIds: s.children?.map((a) => a.id)
117
+ }))
118
+ }));
119
+ console.log(
120
+ "[NL-internal] items state (post-render-time-block)",
121
+ JSON.stringify(e)
122
+ );
123
+ }
124
+ const [B, K] = re.useState(0), [R, we] = re.useState(0), {
125
+ sensors: Ae,
126
+ handleDragEnd: De,
113
127
  isValidDrop: Q
114
- } = We({
115
- items: a,
128
+ } = Je({
129
+ items: i,
116
130
  onDragEnd: l
117
- }), we = A(
118
- () => L ? $e(a, N) : [],
119
- [a, L, N]
120
- ), C = A(() => {
121
- let e = a;
122
- return L && O.size > 0 && (e = ce(e, O, N)), x && (e = ne(e, x)), e;
123
- }, [a, x, L, O, N]), Pe = A(
124
- () => oe(C, z, v),
125
- [C, z, v]
126
- ), { allChecked: k, someChecked: xe } = A(() => {
127
- let e = !0, r = !1;
128
- const n = (u) => {
129
- for (const h of u)
130
- if (h.children && h.children.length > 0 ? n(h.children) : h.checked ? r = !0 : e = !1, r && !e) return;
131
+ }), Te = w(
132
+ () => L ? $e(i, S) : [],
133
+ [i, L, S]
134
+ ), N = w(() => {
135
+ let e = i;
136
+ return L && z.size > 0 && (e = oe(e, z, S)), x && (e = ne(e, x)), e;
137
+ }, [i, x, L, z, S]), Pe = w(
138
+ () => ce(N, O, g),
139
+ [N, O, g]
140
+ ), { allChecked: k, someChecked: xe } = w(() => {
141
+ let e = !0, t = !1;
142
+ const s = (a) => {
143
+ for (const u of a)
144
+ if (u.children && u.children.length > 0 ? s(u.children) : u.checked ? t = !0 : e = !1, t && !e) return;
131
145
  };
132
- return n(C), { allChecked: e && r, someChecked: r };
133
- }, [C]), ze = xe && !k, H = (e, r) => {
134
- for (const n of e) {
135
- if (n.id === r) return n;
136
- if (n.children) {
137
- const u = H(n.children, r);
138
- if (u) return u;
146
+ return s(N), { allChecked: e && t, someChecked: t };
147
+ }, [N]), Oe = xe && !k, H = (e, t) => {
148
+ for (const s of e) {
149
+ if (s.id === t) return s;
150
+ if (s.children) {
151
+ const a = H(s.children, t);
152
+ if (a) return a;
139
153
  }
140
154
  }
141
155
  return null;
142
- }, Be = D(
143
- (e, r) => {
144
- if (S === b.INDEPENDENT)
156
+ }, be = A(
157
+ (e, t) => {
158
+ if (C === V.INDEPENDENT)
145
159
  return e;
146
- const n = (h, i) => h.id === i ? !0 : h.children ? h.children.some(
147
- (E) => n(E, i)
148
- ) : !1, u = (h) => h.map((i) => {
149
- if (i.id === r)
150
- return i;
151
- if (i.children && n(i, r)) {
152
- const E = u(i.children);
153
- let W;
154
- return S === b.CASCADE_UP_DOWN ? W = E.some((j) => j.checked) : W = E.every((j) => j.checked), {
155
- ...i,
156
- checked: W,
160
+ const s = (u, h) => u.id === h ? !0 : u.children ? u.children.some(
161
+ (E) => s(E, h)
162
+ ) : !1, a = (u) => u.map((h) => {
163
+ if (h.id === t)
164
+ return h;
165
+ if (h.children && s(h, t)) {
166
+ const E = a(h.children);
167
+ let J;
168
+ return C === V.CASCADE_UP_DOWN ? J = E.some((W) => W.checked) : J = E.every((W) => W.checked), {
169
+ ...h,
170
+ checked: J,
157
171
  children: E
158
172
  };
159
173
  }
160
- return i;
174
+ return h;
161
175
  });
162
- return u(e);
176
+ return a(e);
163
177
  },
164
- [S]
178
+ [C]
165
179
  ), X = (e) => {
166
- const r = [];
167
- return e.forEach((n) => {
168
- n.children && n.children.length > 0 && (r.push(n.id), r.push(...X(n.children)));
169
- }), r;
180
+ const t = [];
181
+ return e.forEach((s) => {
182
+ s.children && s.children.length > 0 && (t.push(s.id), t.push(...X(s.children)));
183
+ }), t;
170
184
  }, {
171
185
  handleToggle: Y,
172
186
  handleToggleCollapse: Z,
173
- handleCollapseAll: Oe,
174
- handleToggleCategory: Re
175
- } = Je({
187
+ handleCollapseAll: ze,
188
+ handleToggleCategory: Be
189
+ } = Fe({
176
190
  setItems: I,
177
191
  findItemById: H,
178
- updateParentsUpward: Be,
192
+ updateParentsUpward: be,
179
193
  onChange: (e) => {
180
- K((r) => r + 1), t(e);
194
+ K((t) => t + 1), r(e);
181
195
  },
182
- onItemToggle: s,
183
- getCategory: N,
196
+ onItemToggle: n,
197
+ getCategory: S,
184
198
  setCollapsedItems: Ie,
185
- setIsListCollapsed: ve,
186
- setSelectedCategories: ge,
199
+ setIsListCollapsed: ge,
200
+ setSelectedCategories: ve,
187
201
  isUserChangeRef: P,
188
- selectionMode: S,
202
+ selectionMode: C,
189
203
  // Pass normalized state helpers for optimized operations
190
204
  isNormalized: Le,
191
205
  normalizedState: ke,
@@ -195,158 +209,158 @@ const ne = (d, t) => {
195
209
  findItemsNotSelected: M,
196
210
  collectVisibleItemsForCallback: G,
197
211
  updateVisibleItems: ee
198
- } = je({
212
+ } = We({
199
213
  findItemById: H,
200
- getCategory: N
201
- }), Ve = D(() => {
214
+ getCategory: S
215
+ }), Re = A(() => {
202
216
  P.current = !0, I((e) => {
203
- const r = $(C), n = M(
204
- C,
217
+ const t = $(N), s = M(
218
+ N,
205
219
  e,
206
- r
220
+ t
207
221
  );
208
- if (n.size > 0) {
209
- const i = new Set(n);
210
- y(i), setTimeout(() => y(/* @__PURE__ */ new Set()), 600);
222
+ if (s.size > 0) {
223
+ const h = new Set(s);
224
+ _(h), setTimeout(() => _(/* @__PURE__ */ new Set()), 600);
211
225
  }
212
- const u = ee(
226
+ const a = ee(
213
227
  e,
214
- r,
228
+ t,
215
229
  !k
216
- ), h = S === b.INDEPENDENT ? u : le(u);
217
- if (t(h), s) {
218
- const i = G(
230
+ ), u = C === V.INDEPENDENT ? a : le(a);
231
+ if (r(u), n) {
232
+ const h = G(
219
233
  e,
220
- r,
234
+ t,
221
235
  !k
222
236
  );
223
- s(i);
237
+ n(h);
224
238
  }
225
- return h;
239
+ return u;
226
240
  });
227
241
  }, [
228
242
  k,
229
- t,
230
- s,
231
- C,
243
+ r,
244
+ n,
245
+ N,
232
246
  $,
233
247
  M,
234
248
  G,
235
249
  ee,
236
250
  P,
237
251
  I,
238
- y,
239
- S
240
- ]), be = D(
241
- (e, r) => {
242
- const n = v ? Q(v, e.id) : !1, u = q.has(e.id);
243
- return /* @__PURE__ */ g(
252
+ _,
253
+ C
254
+ ]), Ve = A(
255
+ (e, t) => {
256
+ const s = g ? Q(g, e.id) : !1, a = q.has(e.id);
257
+ return /* @__PURE__ */ v(
244
258
  He,
245
259
  {
246
260
  item: e,
247
- level: r,
248
- isCollapsed: z[e.id] || !1,
261
+ level: t,
262
+ isCollapsed: O[e.id] || !1,
249
263
  onToggle: Y,
250
264
  onToggleCollapse: Z,
251
- isAnyDragging: v !== null,
252
- isValidDrop: n,
265
+ isAnyDragging: g !== null,
266
+ isValidDrop: s,
253
267
  enableDragDrop: m,
254
- enableCollapse: F,
255
- shouldBlink: u
268
+ enableCollapse: j,
269
+ shouldBlink: a
256
270
  },
257
271
  e.id
258
272
  );
259
273
  },
260
274
  [
261
- z,
275
+ O,
262
276
  Y,
263
277
  Z,
264
- v,
278
+ g,
265
279
  Q,
266
280
  m,
267
281
  q,
268
- F
282
+ j
269
283
  ]
270
- ), Ue = X(a).length > 0, te = A(() => p ? a.length > 1e3 ? R !== V : JSON.stringify(a) !== JSON.stringify(w) : !1, [p, a, w, R, V]), _e = D(() => {
271
- p && (J(a), Ae(R), c?.(a));
272
- }, [p, a, c, J, R]), ye = D(() => {
273
- p && (I(w), K(V), o?.());
274
- }, [p, w, o, I, V]);
284
+ ), ye = X(i).length > 0, te = w(() => p ? i.length > 1e3 ? B !== R : JSON.stringify(i) !== JSON.stringify(T) : !1, [p, i, T, B, R]), Ue = A(() => {
285
+ p && (F(i), we(B), o?.(i));
286
+ }, [p, i, o, F, B]), _e = A(() => {
287
+ p && (I(T), K(R), c?.());
288
+ }, [p, T, c, I, R]);
275
289
  return /* @__PURE__ */ se(
276
290
  "div",
277
291
  {
278
292
  className: Ye("flex flex-col", ae),
279
293
  "data-component": "nested-list",
280
294
  "data-has-changes": te ? "" : void 0,
281
- "data-list-collapsed": B ? "" : void 0,
295
+ "data-list-collapsed": b ? "" : void 0,
282
296
  children: [
283
297
  /* @__PURE__ */ se("div", { className: "flex-shrink-0", children: [
284
- /* @__PURE__ */ g(
298
+ /* @__PURE__ */ v(
285
299
  qe,
286
300
  {
287
- hasItemsWithChildren: Ue,
288
- isListCollapsed: B,
289
- onCollapseAll: Oe,
301
+ hasItemsWithChildren: ye,
302
+ isListCollapsed: b,
303
+ onCollapseAll: ze,
290
304
  enableSearch: f,
291
305
  enableSelectAll: de,
292
306
  groupLabel: he,
293
307
  allChecked: k,
294
- isIndeterminate: ze,
295
- onSelectAll: Ve,
308
+ isIndeterminate: Oe,
309
+ onSelectAll: Re,
296
310
  searchText: x,
297
311
  onSearchChange: (e) => {
298
- Se(e.target.value);
312
+ Ce(e.target.value);
299
313
  },
300
314
  searchPlaceholder: me,
301
- selectAllLabel: T("nestedList.selectAll"),
315
+ selectAllLabel: D("nestedList.selectAll"),
302
316
  enableCollapse: ue
303
317
  }
304
318
  ),
305
- /* @__PURE__ */ g(
319
+ /* @__PURE__ */ v(
306
320
  Ke,
307
321
  {
308
- isListCollapsed: B,
322
+ isListCollapsed: b,
309
323
  enableGroupBy: L,
310
- categories: we,
311
- selectedCategories: O,
312
- onToggleCategory: Re
324
+ categories: Te,
325
+ selectedCategories: z,
326
+ onToggleCategory: Be
313
327
  }
314
328
  )
315
329
  ] }),
316
- /* @__PURE__ */ g("div", { className: "flex-1 min-h-0 overflow-hidden", children: /* @__PURE__ */ g(
330
+ /* @__PURE__ */ v("div", { className: "flex-1 min-h-0 overflow-hidden", children: /* @__PURE__ */ v(
317
331
  Qe,
318
332
  {
319
- isListCollapsed: B,
333
+ isListCollapsed: b,
320
334
  enableDragDrop: m,
321
- sensors: De,
335
+ sensors: Ae,
322
336
  items: Pe,
323
- renderItem: be,
337
+ renderItem: Ve,
324
338
  onDragStart: (e) => {
325
- U(e.active.id);
339
+ y(e.active.id);
326
340
  },
327
341
  onDragOver: (e) => {
328
- _(e.over?.id);
342
+ U(e.over?.id);
329
343
  },
330
344
  onDragEnd: (e) => {
331
- U(null), _(null), P.current = !0, Te(e, (r) => {
332
- const n = r(a);
333
- I(n), t(n);
345
+ y(null), U(null), P.current = !0, De(e, (t) => {
346
+ const s = t(i);
347
+ I(s), r(s);
334
348
  });
335
349
  },
336
350
  onDragCancel: () => {
337
- U(null), _(null);
351
+ y(null), U(null);
338
352
  }
339
353
  }
340
354
  ) }),
341
- /* @__PURE__ */ g(
355
+ /* @__PURE__ */ v(
342
356
  Xe,
343
357
  {
344
358
  enableApplyDiscard: p,
345
359
  hasChanges: te,
346
- onDiscard: ye,
347
- onApply: _e,
348
- cancelButtonLabel: Ne,
349
- submitButtonLabel: Ce
360
+ onDiscard: _e,
361
+ onApply: Ue,
362
+ cancelButtonLabel: Se,
363
+ submitButtonLabel: Ne
350
364
  }
351
365
  )
352
366
  ]
@@ -1 +1 @@
1
- export { ReportCardRoot, ReportCardContent, ReportCardIcon, ReportCardTitle, ReportCardDescription, type ReportCardRootProps, type ReportCardContentProps, } from './report-card';
1
+ export { ReportCardRoot, ReportCardRadio, ReportCardContent, ReportCardIcon, ReportCardTitle, ReportCardTitleRow, ReportCardDescription, type ReportCardRootProps, type ReportCardContentProps, type ReportCardTitleRowProps, } from './report-card';
@@ -1,8 +1,10 @@
1
- import { ReportCardContent as t, ReportCardDescription as e, ReportCardIcon as p, ReportCardRoot as C, ReportCardTitle as R } from "./report-card.js";
1
+ import { ReportCardContent as t, ReportCardDescription as e, ReportCardIcon as R, ReportCardRadio as p, ReportCardRoot as a, ReportCardTitle as d, ReportCardTitleRow as C } from "./report-card.js";
2
2
  export {
3
3
  t as ReportCardContent,
4
4
  e as ReportCardDescription,
5
- p as ReportCardIcon,
6
- C as ReportCardRoot,
7
- R as ReportCardTitle
5
+ R as ReportCardIcon,
6
+ p as ReportCardRadio,
7
+ a as ReportCardRoot,
8
+ d as ReportCardTitle,
9
+ C as ReportCardTitleRow
8
10
  };
@@ -2,15 +2,18 @@ import * as React from "react";
2
2
  export interface ReportCardRootProps extends React.HTMLAttributes<HTMLDivElement> {
3
3
  /** Whether this card is currently selected */
4
4
  selected?: boolean;
5
- /** Gradient variant: "purple" (default) or "blue" */
6
- variant?: "purple" | "blue";
7
- /** Custom gradient background. Overrides variant if provided. */
8
- gradient?: string;
9
5
  }
10
6
  declare const ReportCardRoot: React.ForwardRefExoticComponent<ReportCardRootProps & React.RefAttributes<HTMLDivElement>>;
7
+ declare const ReportCardRadio: React.FC<{
8
+ className?: string;
9
+ }>;
11
10
  export type ReportCardContentProps = React.HTMLAttributes<HTMLDivElement>;
12
11
  declare const ReportCardContent: React.ForwardRefExoticComponent<ReportCardContentProps & React.RefAttributes<HTMLDivElement>>;
13
12
  declare const ReportCardIcon: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
14
13
  declare const ReportCardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
14
+ export interface ReportCardTitleRowProps extends React.HTMLAttributes<HTMLDivElement> {
15
+ children?: React.ReactNode;
16
+ }
17
+ declare const ReportCardTitleRow: React.ForwardRefExoticComponent<ReportCardTitleRowProps & React.RefAttributes<HTMLDivElement>>;
15
18
  declare const ReportCardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
16
- export { ReportCardRoot, ReportCardContent, ReportCardIcon, ReportCardTitle, ReportCardDescription, };
19
+ export { ReportCardRoot, ReportCardRadio, ReportCardContent, ReportCardIcon, ReportCardTitle, ReportCardTitleRow, ReportCardDescription, };