impact-nova 2.0.2 → 2.0.4

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 +49 -48
  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
@@ -8,7 +8,7 @@ import { LoadingSpinner as Nt, Cross as kt, ChevronRight as Re, Search as Pt, In
8
8
  import { Checkbox as He } from "../checkbox.js";
9
9
  import { Button as Dt } from "../button.js";
10
10
  import { cn as y } from "../../../lib/utils.js";
11
- import { isInvertedSelection as z, isOptionArray as V, isSelected as Ot, getSequence as Ct, getLeafOptions as At } from "./utils/select.js";
11
+ import { isInvertedSelection as z, isOptionArray as N, isSelected as Ot, getSequence as Ct, getLeafOptions as At } from "./utils/select.js";
12
12
  import { useFlattenOptions as It } from "./hooks/useFlattenOptions.js";
13
13
  import { useSelectionModel as Tt } from "./hooks/useSelectionModel.js";
14
14
  import { useVisibleStats as Et } from "./hooks/useVisibleStats.js";
@@ -20,7 +20,7 @@ const zt = (Ne) => {
20
20
  defaultValue: _e,
21
21
  onChange: u,
22
22
  isMulti: p,
23
- isDisabled: k,
23
+ isDisabled: S,
24
24
  isLoading: T,
25
25
  isClearable: qe = !0,
26
26
  isSearchable: $ = !0,
@@ -94,14 +94,14 @@ const zt = (Ne) => {
94
94
  filterOption: rt,
95
95
  enableSubMenus: w,
96
96
  enableGroups: D
97
- }), S = Tt(f, p ?? !1), { stats: B, getGroupStats: ve } = Et(
97
+ }), V = Tt(f, p ?? !1), { stats: B, getGroupStats: ve } = Et(
98
98
  m,
99
99
  $e,
100
100
  q,
101
- S,
101
+ V,
102
102
  f,
103
103
  p ?? !1
104
- ), N = wt({
104
+ ), k = wt({
105
105
  count: m.length,
106
106
  getScrollElement: () => ee.current,
107
107
  estimateSize: () => 34,
@@ -144,21 +144,21 @@ const zt = (Ne) => {
144
144
  }, [q]), C(() => {
145
145
  if (!d) return;
146
146
  const e = requestAnimationFrame(() => {
147
- N.measure();
147
+ k.measure();
148
148
  });
149
149
  return () => cancelAnimationFrame(e);
150
- }, [d, N]), C(() => {
150
+ }, [d, k]), C(() => {
151
151
  if (d && ke && !I && m.length > 0) {
152
- const e = m.findIndex((t) => p ? S.mode === "exclude" ? !S.set.has(t.value) : S.set.has(t.value) : f?.value === t.value);
152
+ const e = m.findIndex((t) => p ? V.mode === "exclude" ? !V.set.has(t.value) : V.set.has(t.value) : f?.value === t.value);
153
153
  if (e !== -1) {
154
154
  const t = setTimeout(() => {
155
- N.scrollToIndex(e, { align: "center" });
155
+ k.scrollToIndex(e, { align: "center" });
156
156
  }, 50);
157
157
  return () => clearTimeout(t);
158
158
  }
159
159
  }
160
- }, [d, ke, I, m.length, p, S.mode, S.set, f, N]);
161
- const K = M(null), Fe = N.getVirtualItems(), ye = Fe[Fe.length - 1], te = yt.useCallback(() => {
160
+ }, [d, ke, I, m.length, p, V.mode, V.set, f, k]);
161
+ const K = M(null), Fe = k.getVirtualItems(), ye = Fe[Fe.length - 1], te = yt.useCallback(() => {
162
162
  T || I || K.current || F && (F(), K.current = setTimeout(() => {
163
163
  K.current = null;
164
164
  }, 500));
@@ -190,11 +190,11 @@ const zt = (Ne) => {
190
190
  te
191
191
  ]);
192
192
  const E = (e) => {
193
- if (!k)
193
+ if (!(S && e))
194
194
  if (Me(e), e)
195
195
  et?.();
196
196
  else {
197
- const t = f, n = p && V(f) ? f.map((s) => s.value) : void 0;
197
+ const t = f, n = p && N(f) ? f.map((s) => s.value) : void 0;
198
198
  Ae?.(t, n), Z(""), he(null);
199
199
  }
200
200
  };
@@ -209,7 +209,7 @@ const zt = (Ne) => {
209
209
  };
210
210
  }, [d]);
211
211
  const ne = (e) => {
212
- if (!(k || h || e.isDisabled || ("children" in e || "options" in e) && e.isParentSelectable === !1))
212
+ if (!(S || h || e.isDisabled || ("children" in e || "options" in e) && e.isParentSelectable === !1))
213
213
  if (p) {
214
214
  const n = f || [];
215
215
  if ("children" in e || "options" in e) {
@@ -236,7 +236,7 @@ const zt = (Ne) => {
236
236
  action: "select-option",
237
237
  option: e
238
238
  });
239
- } else if (V(n)) {
239
+ } else if (N(n)) {
240
240
  const i = n, r = l.every(
241
241
  (o) => i.some((x) => x.value === o.value)
242
242
  );
@@ -264,8 +264,8 @@ const zt = (Ne) => {
264
264
  action: l ? "select-option" : "deselect-option",
265
265
  option: e
266
266
  });
267
- } else if (V(n)) {
268
- const s = n, l = p ? S.mode === "exclude" ? !S.set.has(e.value) : S.set.has(e.value) : f?.value === e.value;
267
+ } else if (N(n)) {
268
+ const s = n, l = p ? V.mode === "exclude" ? !V.set.has(e.value) : V.set.has(e.value) : f?.value === e.value;
269
269
  let i = [];
270
270
  if (l)
271
271
  i = s.filter((r) => r.value !== e.value);
@@ -285,7 +285,7 @@ const zt = (Ne) => {
285
285
  option: e
286
286
  }), Ke && (Me(!1), Ae?.(e, void 0), Z(""));
287
287
  }, we = async () => {
288
- if (!(!p || k || h)) {
288
+ if (!(!p || S || h)) {
289
289
  if (L.length > 3e3) {
290
290
  try {
291
291
  const e = await ft(
@@ -325,7 +325,7 @@ const zt = (Ne) => {
325
325
  excludedValues: r
326
326
  };
327
327
  v(c), u && u(c, { action: "select-option" });
328
- } else if (V(t)) {
328
+ } else if (N(t)) {
329
329
  const n = t, { totalVisible: s, selectedVisible: l } = B, i = s > 0 && s === l;
330
330
  let r = [...n];
331
331
  if (i) {
@@ -343,13 +343,13 @@ const zt = (Ne) => {
343
343
  v(r), u && u(r, { action: "select-option" });
344
344
  }
345
345
  } else if (b) {
346
- const e = f, { totalVisible: t } = B, n = V(e) ? e.length : 0, s = Math.min(t, b);
347
- if (V(e) && n >= s && n > 0) {
346
+ const e = f, { totalVisible: t } = B, n = N(e) ? e.length : 0, s = Math.min(t, b);
347
+ if (N(e) && n >= s && n > 0) {
348
348
  const l = e.filter((i) => i.isDisabled);
349
349
  v(l), u && u(l, {
350
350
  action: "select-option"
351
351
  });
352
- } else if (V(e)) {
352
+ } else if (N(e)) {
353
353
  const l = e.filter(
354
354
  (r) => r.isDisabled
355
355
  );
@@ -365,7 +365,7 @@ const zt = (Ne) => {
365
365
  const e = f, t = z(e) && e.excludedValues.length === 0;
366
366
  if (Ne.enableInvertedSelection)
367
367
  if (t) {
368
- const n = V(e) ? e.filter((s) => s.isDisabled) : [];
368
+ const n = N(e) ? e.filter((s) => s.isDisabled) : [];
369
369
  v(n), u && u(n, {
370
370
  action: "select-option"
371
371
  });
@@ -373,7 +373,7 @@ const zt = (Ne) => {
373
373
  const s = {
374
374
  isAllSelected: !0,
375
375
  excludedValues: m.filter(
376
- (l) => l.isDisabled && (V(e) ? !e.some((i) => i.value === l.value) : !0)
376
+ (l) => l.isDisabled && (N(e) ? !e.some((i) => i.value === l.value) : !0)
377
377
  ).map((l) => l.value)
378
378
  };
379
379
  v(s), u && u(s, { action: "select-option" });
@@ -381,12 +381,12 @@ const zt = (Ne) => {
381
381
  else {
382
382
  const { totalVisible: n, selectedVisible: s } = B;
383
383
  if (n > 0 && n === s) {
384
- const l = V(e) ? e.filter((i) => i.isDisabled) : [];
384
+ const l = N(e) ? e.filter((i) => i.isDisabled) : [];
385
385
  v(l), u && u(l, {
386
386
  action: "select-option"
387
387
  });
388
388
  } else {
389
- const l = V(e) ? e.filter((i) => i.isDisabled) : [];
389
+ const l = N(e) ? e.filter((i) => i.isDisabled) : [];
390
390
  for (const i of m)
391
391
  !i.isGroup && !i.isSubmenuParent && !i.isDisabled && l.push(i);
392
392
  v(l), u && u(l, {
@@ -412,7 +412,7 @@ const zt = (Ne) => {
412
412
  continue;
413
413
  }
414
414
  const r = i;
415
- r.isDisabled && (S.mode === "exclude" ? !S.set.has(r.value) : S.set.has(r.value)) && t.push(r);
415
+ r.isDisabled && (V.mode === "exclude" ? !V.set.has(r.value) : V.set.has(r.value)) && t.push(r);
416
416
  }
417
417
  };
418
418
  n(L);
@@ -462,7 +462,7 @@ const zt = (Ne) => {
462
462
  !n.isGroup && !(w && n.isSubmenuParent) && !n.isDisabled && e.push(s);
463
463
  }), e;
464
464
  }, ht = (e) => {
465
- if (k || h) return;
465
+ if (S || h) return;
466
466
  if (e.key === "Tab") {
467
467
  d && E(!1);
468
468
  return;
@@ -481,11 +481,11 @@ const zt = (Ne) => {
481
481
  if (e.key === "ArrowDown") {
482
482
  e.preventDefault();
483
483
  const s = n < t.length - 1 ? n + 1 : 0, l = t[s];
484
- A(l), l >= 0 && N.scrollToIndex(l, { align: "auto" });
484
+ A(l), l >= 0 && k.scrollToIndex(l, { align: "auto" });
485
485
  } else if (e.key === "ArrowUp") {
486
486
  e.preventDefault();
487
487
  const s = n > 0 ? n - 1 : t.length - 1, l = t[s];
488
- A(l), l >= 0 && N.scrollToIndex(l, { align: "auto" });
488
+ A(l), l >= 0 && k.scrollToIndex(l, { align: "auto" });
489
489
  } else if (e.key === "Enter" || e.key === " ") {
490
490
  if (e.preventDefault(), O === J)
491
491
  we();
@@ -496,10 +496,10 @@ const zt = (Ne) => {
496
496
  } else if (e.key === "Escape")
497
497
  e.preventDefault(), E(!1), ge.current?.focus();
498
498
  else if (e.key === "Home")
499
- e.preventDefault(), t.length > 0 && (A(t[0]), t[0] >= 0 && N.scrollToIndex(t[0], { align: "auto" }));
499
+ e.preventDefault(), t.length > 0 && (A(t[0]), t[0] >= 0 && k.scrollToIndex(t[0], { align: "auto" }));
500
500
  else if (e.key === "End" && (e.preventDefault(), t.length > 0)) {
501
501
  const s = t[t.length - 1];
502
- A(s), s >= 0 && N.scrollToIndex(s, { align: "auto" });
502
+ A(s), s >= 0 && k.scrollToIndex(s, { align: "auto" });
503
503
  }
504
504
  }, xt = (e) => {
505
505
  const t = Ge();
@@ -508,11 +508,11 @@ const zt = (Ne) => {
508
508
  if (e.key === "ArrowDown") {
509
509
  e.preventDefault();
510
510
  const s = n < t.length - 1 ? n + 1 : 0, l = t[s];
511
- A(l), l >= 0 && N.scrollToIndex(l, { align: "auto" });
511
+ A(l), l >= 0 && k.scrollToIndex(l, { align: "auto" });
512
512
  } else if (e.key === "ArrowUp") {
513
513
  e.preventDefault();
514
514
  const s = n > 0 ? n - 1 : t.length - 1, l = t[s];
515
- A(l), l >= 0 && N.scrollToIndex(l, { align: "auto" });
515
+ A(l), l >= 0 && k.scrollToIndex(l, { align: "auto" });
516
516
  } else if (e.key === "Enter") {
517
517
  if (e.preventDefault(), O === J)
518
518
  we();
@@ -525,10 +525,10 @@ const zt = (Ne) => {
525
525
  if (p) {
526
526
  const e = f || [];
527
527
  let t = 0;
528
- return z(e) ? t = Math.max(0, (typeof De == "number" ? De : $e) - e.excludedValues.length) : V(e) && (t = e.length), t === 0 ? null : t === 1 && V(e) ? /* @__PURE__ */ a("span", { className: y("text-[14px] font-medium truncate min-w-0 block", k ? "text-disabled-foreground" : "text-[#1f2b4d]"), children: le(e[0]) }) : /* @__PURE__ */ a("span", { className: y("text-[14px] font-medium truncate min-w-0 block", k ? "text-disabled-foreground" : "text-[#1f2b4d]"), children: Y("select.selectedCount", { count: t }) });
528
+ return z(e) ? t = Math.max(0, (typeof De == "number" ? De : $e) - e.excludedValues.length) : N(e) && (t = e.length), t === 0 ? null : t === 1 && N(e) ? /* @__PURE__ */ a("span", { className: y("text-[14px] font-medium truncate min-w-0 block", S ? "text-disabled-foreground" : "text-[#1f2b4d]"), children: le(e[0]) }) : /* @__PURE__ */ a("span", { className: y("text-[14px] font-medium truncate min-w-0 block", S ? "text-disabled-foreground" : "text-[#1f2b4d]"), children: Y("select.selectedCount", { count: t }) });
529
529
  } else {
530
530
  const e = f;
531
- return e ? /* @__PURE__ */ a("span", { className: y("text-[14px] font-medium truncate min-w-0 block", k ? "text-disabled-foreground" : "text-[#1f2b4d]"), children: le(e) }) : null;
531
+ return e ? /* @__PURE__ */ a("span", { className: y("text-[14px] font-medium truncate min-w-0 block", S ? "text-disabled-foreground" : "text-[#1f2b4d]"), children: le(e) }) : null;
532
532
  }
533
533
  };
534
534
  return /* @__PURE__ */ g(
@@ -564,7 +564,7 @@ const zt = (Ne) => {
564
564
  X && ue === "absolute" && "relative"
565
565
  ),
566
566
  children: [
567
- /* @__PURE__ */ g(re.Root, { open: d, onOpenChange: E, children: [
567
+ /* @__PURE__ */ g(re.Root, { open: d && !S, onOpenChange: E, children: [
568
568
  /* @__PURE__ */ a(re.Trigger, { asChild: !0, children: /* @__PURE__ */ a(
569
569
  "div",
570
570
  {
@@ -572,22 +572,23 @@ const zt = (Ne) => {
572
572
  className: y(
573
573
  "relative h-[32px] w-full cursor-pointer rounded-[8px] border border-solid px-3 py-1 text-left shadow-sm sm:text-sm transition-all flex items-center overflow-hidden",
574
574
  ce ? "border-[#e15554] focus-visible:ring-[#e15554]" : "border-[#c3c8d4] hover:border-gray-400 focus-visible:border-indigo-500 focus-visible:ring-1 focus-visible:ring-indigo-500",
575
- k ? "bg-[#f2f4fb] cursor-not-allowed opacity-75" : "",
575
+ S ? "bg-[#f2f4fb] cursor-not-allowed opacity-75" : "",
576
576
  h ? "cursor-default bg-[#f2f4fb]" : "",
577
577
  d ? "ring-1 ring-indigo-500 border-indigo-500" : "",
578
- !k && !h && "bg-white",
578
+ !S && !h && "bg-white",
579
579
  Ye
580
580
  ),
581
581
  id: P,
582
- tabIndex: k ? -1 : 0,
582
+ tabIndex: S ? -1 : 0,
583
583
  onFocus: ot,
584
584
  onBlur: ct,
585
585
  role: "combobox",
586
586
  "aria-expanded": d,
587
587
  "aria-haspopup": "listbox",
588
588
  "aria-label": H ? String(H) : me,
589
+ "aria-disabled": S || void 0,
589
590
  "data-component": "select-trigger",
590
- "data-disabled": k || void 0,
591
+ "data-disabled": S || void 0,
591
592
  "data-state": d ? "open" : "closed",
592
593
  onKeyDown: ht,
593
594
  onClick: (e) => {
@@ -631,9 +632,9 @@ const zt = (Ne) => {
631
632
  }
632
633
  ),
633
634
  /* @__PURE__ */ a("div", { className: "flex items-center gap-1 text-gray-400 shrink-0", children: !d && (T || I) ? /* @__PURE__ */ a(Nt, { size: "14px" }) : /* @__PURE__ */ g(vt, { children: [
634
- qe && !h && !k && (p && (z(
635
+ qe && !h && !S && (p && (z(
635
636
  f
636
- ) && f.isAllSelected || V(f) && f.length > 0) || !p && f) && /* @__PURE__ */ a(
637
+ ) && f.isAllSelected || N(f) && f.length > 0) || !p && f) && /* @__PURE__ */ a(
637
638
  "div",
638
639
  {
639
640
  role: "button",
@@ -767,7 +768,7 @@ const zt = (Ne) => {
767
768
  const n = b ? Math.min(e, b) : e;
768
769
  return t > 0 && t < n ? "indeterminate" : t >= n;
769
770
  })(),
770
- disabled: k || h,
771
+ disabled: S || h,
771
772
  onChange: () => {
772
773
  },
773
774
  "data-testid": `select-select-all-checkbox-${P || "default"}`
@@ -836,19 +837,19 @@ const zt = (Ne) => {
836
837
  "div",
837
838
  {
838
839
  style: {
839
- height: `${N.getTotalSize()}px`,
840
+ height: `${k.getTotalSize()}px`,
840
841
  width: "100%",
841
842
  position: "relative"
842
843
  },
843
- children: N.getVirtualItems().map((e) => {
844
- const t = m[e.index], n = p ? S.mode === "exclude" ? !S.set.has(t.value) : S.set.has(t.value) : f?.value === t.value, s = f || [], l = p && b ? z(s) ? !1 : V(s) && s.length >= b : !1, i = t.isDisabled || l && !n && !(D && t.isGroup) && !(w && t.isSubmenuParent), r = D && t.isGroup || w && t.isSubmenuParent ? ve(t.original) : void 0, c = r?.selected || 0, o = r?.total || 0, x = c > 0 && c < o, se = t.isParentSelectable !== !1, Se = P || "default", ie = String(t.value || ""), Ve = le(
844
+ children: k.getVirtualItems().map((e) => {
845
+ const t = m[e.index], n = p ? V.mode === "exclude" ? !V.set.has(t.value) : V.set.has(t.value) : f?.value === t.value, s = f || [], l = p && b ? z(s) ? !1 : N(s) && s.length >= b : !1, i = t.isDisabled || l && !n && !(D && t.isGroup) && !(w && t.isSubmenuParent), r = D && t.isGroup || w && t.isSubmenuParent ? ve(t.original) : void 0, c = r?.selected || 0, o = r?.total || 0, x = c > 0 && c < o, se = t.isParentSelectable !== !1, Se = P || "default", ie = String(t.value || ""), Ve = le(
845
846
  t
846
847
  ), bt = typeof Ve == "string" ? Ve : ie;
847
848
  return /* @__PURE__ */ g(
848
849
  "div",
849
850
  {
850
851
  "data-index": e.index,
851
- ref: N.measureElement,
852
+ ref: k.measureElement,
852
853
  className: "absolute left-0 w-full pb-[2px]",
853
854
  style: {
854
855
  transform: `translateY(${e.start}px)`,
@@ -70,6 +70,7 @@ declare const SidebarMenuButton: React.ForwardRefExoticComponent<Omit<React.Clas
70
70
  variant?: "default" | "outline";
71
71
  size?: "default" | "sm" | "lg";
72
72
  } & import('class-variance-authority/types').ClassProp) => string>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
73
+ declare const SidebarMenuLabel: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
73
74
  declare const SidebarLogout: React.ForwardRefExoticComponent<Omit<Omit<React.ClassAttributes<HTMLButtonElement> & React.ButtonHTMLAttributes<HTMLButtonElement> & {
74
75
  asChild?: boolean;
75
76
  isActive?: boolean;
@@ -95,4 +96,4 @@ declare const SidebarMenuSubButton: React.ForwardRefExoticComponent<Omit<React.C
95
96
  size?: "sm" | "md";
96
97
  isActive?: boolean;
97
98
  }, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
98
- export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuCollapsible, SidebarLogout, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar, };
99
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuCollapsible, SidebarMenuLabel, SidebarLogout, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar, };