@actioneer/ads 1.0.7 → 1.0.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 (87) hide show
  1. package/DESIGN.md +119 -91
  2. package/README.md +19 -1
  3. package/components/ai-elements/chart.js +20 -20
  4. package/components/ai-elements/inline-citation.js +50 -50
  5. package/components/ai-elements/message.js +1 -1
  6. package/components/ai-elements/tool.js +5 -5
  7. package/components/alert.d.ts +3 -2
  8. package/components/alert.js +25 -25
  9. package/components/answer.js +1 -1
  10. package/components/assistant-ui/action-bar.js +1 -1
  11. package/components/assistant-ui/attachment.js +68 -49
  12. package/components/assistant-ui/composer-add-context.js +1 -1
  13. package/components/assistant-ui/composer-harness.js +5 -4
  14. package/components/assistant-ui/composer-trigger-popover.js +1 -1
  15. package/components/assistant-ui/composer.js +13 -13
  16. package/components/assistant-ui/message-timing.js +6 -6
  17. package/components/assistant-ui/selection-toolbar.js +5 -5
  18. package/components/assistant-ui/sources.js +15 -15
  19. package/components/assistant-ui/tooltip-icon-button.js +18 -14
  20. package/components/audio-waveform.d.ts +21 -8
  21. package/components/audio-waveform.js +371 -94
  22. package/components/autocomplete.js +9 -9
  23. package/components/breadcrumbs.js +36 -42
  24. package/components/button.d.ts +16 -1
  25. package/components/button.js +86 -73
  26. package/components/card.js +1 -1
  27. package/components/chart.d.ts +31 -4
  28. package/components/chart.js +900 -666
  29. package/components/chip.d.ts +2 -1
  30. package/components/chip.js +56 -51
  31. package/components/command-palette.js +12 -12
  32. package/components/connector-card.d.ts +1 -2
  33. package/components/connector-card.js +17 -17
  34. package/components/date-range-picker.js +1 -2
  35. package/components/drawer.js +9 -10
  36. package/components/dropdown.js +1 -1
  37. package/components/empty-state.d.ts +2 -0
  38. package/components/empty-state.js +17 -15
  39. package/components/field.js +9 -10
  40. package/components/file-dropzone.d.ts +6 -3
  41. package/components/file-dropzone.js +72 -60
  42. package/components/filters.d.ts +37 -0
  43. package/components/filters.js +129 -0
  44. package/components/index.d.ts +1 -0
  45. package/components/index.js +447 -444
  46. package/components/infinite-canvas.js +9 -9
  47. package/components/modal.d.ts +2 -1
  48. package/components/modal.js +102 -91
  49. package/components/page-body.js +8 -8
  50. package/components/popover.d.ts +6 -1
  51. package/components/popover.js +75 -65
  52. package/components/progress-circle.d.ts +1 -1
  53. package/components/progress-circle.js +57 -48
  54. package/components/segmented.d.ts +1 -0
  55. package/components/segmented.js +34 -36
  56. package/components/select.js +2 -2
  57. package/components/selection-action-bar.js +32 -31
  58. package/components/setting-row.js +10 -10
  59. package/components/sidebar.d.ts +15 -0
  60. package/components/sidebar.js +186 -149
  61. package/components/slider.js +5 -5
  62. package/components/stepper.d.ts +1 -1
  63. package/components/stepper.js +1 -1
  64. package/components/switch.js +10 -10
  65. package/components/table.d.ts +10 -2
  66. package/components/table.js +380 -366
  67. package/components/tabs.d.ts +6 -1
  68. package/components/tabs.js +32 -29
  69. package/components/timeline.js +3 -3
  70. package/components/toast.js +53 -56
  71. package/components/ui/button.js +4 -4
  72. package/components/ui/dialog.js +1 -1
  73. package/components/viz-charts.js +263 -221
  74. package/demo/components/add-to-artifact.js +3 -2
  75. package/examples/README.md +31 -0
  76. package/examples/agents-screen.tsx +477 -0
  77. package/examples/campaign-analysis-screen.tsx +138 -0
  78. package/examples/campaigns-screen.tsx +439 -0
  79. package/examples/settings-screen.tsx +90 -0
  80. package/examples/workspace-header.tsx +71 -0
  81. package/lib/icons.d.ts +8 -0
  82. package/lib/icons.js +171 -118
  83. package/llms.txt +93 -29
  84. package/manifest.json +1660 -113
  85. package/package.json +1 -1
  86. package/styles.css +55 -68
  87. package/theme.css +50 -59
@@ -1,69 +1,78 @@
1
1
  "use client";
2
- import { jsx as o, jsxs as v } from "react/jsx-runtime";
3
- import * as x from "react";
4
- import { MotionConfig as w, motion as y } from "motion/react";
5
- import { cn as l } from "../lib/cn.js";
6
- import { springProgress as M } from "../lib/motion.js";
7
- const N = x.forwardRef(
2
+ import { jsx as i, jsxs as x } from "react/jsx-runtime";
3
+ import * as p from "react";
4
+ import { MotionConfig as L, motion as N } from "motion/react";
5
+ import { cn as u } from "../lib/cn.js";
6
+ import { springProgress as b } from "../lib/motion.js";
7
+ const M = 4, g = 96;
8
+ function w(s, e) {
9
+ const t = [];
10
+ for (let o = 0; o <= g; o++) {
11
+ const n = -Math.PI / 2 + o / g * Math.PI * 2, a = Math.cos(n), r = Math.sin(n), c = s + e * Math.sign(a) * Math.abs(a) ** (2 / M), l = s + e * Math.sign(r) * Math.abs(r) ** (2 / M);
12
+ t.push(`${c.toFixed(2)},${l.toFixed(2)}`);
13
+ }
14
+ return `M${t.join(" L")} Z`;
15
+ }
16
+ const j = p.forwardRef(
8
17
  ({
9
- className: m,
10
- value: f = 0,
11
- max: e = 100,
12
- size: r = 40,
13
- strokeWidth: i = 4,
14
- isIndeterminate: n = !1,
15
- label: d,
16
- ...p
17
- }, h) => {
18
- const c = Math.min(Math.max(f, 0), e), u = e > 0 ? c / e : 0, s = (r - i) / 2, t = 2 * Math.PI * s, g = n ? t * 0.75 : t * (1 - u), a = r / 2;
19
- return /* @__PURE__ */ o(
18
+ className: s,
19
+ value: e = 0,
20
+ max: t = 100,
21
+ size: o = 40,
22
+ strokeWidth: n = 4,
23
+ isIndeterminate: a = !1,
24
+ label: r,
25
+ ...c
26
+ }, l) => {
27
+ const h = Math.min(Math.max(e, 0), t), v = t > 0 ? h / t : 0, m = o / 2, d = (o - n) / 2, f = p.useMemo(() => w(m, d), [m, d]), P = a ? 75 : 100 - v * 100;
28
+ return /* @__PURE__ */ i(
20
29
  "div",
21
30
  {
22
- ref: h,
31
+ ref: l,
23
32
  role: "progressbar",
24
- "aria-label": d,
33
+ "aria-label": r,
25
34
  "aria-valuemin": 0,
26
- "aria-valuemax": e,
27
- "aria-valuenow": n ? void 0 : c,
28
- className: l("inline-flex", m),
29
- style: { width: r, height: r },
30
- ...p,
31
- children: /* @__PURE__ */ v(
35
+ "aria-valuemax": t,
36
+ "aria-valuenow": a ? void 0 : h,
37
+ className: u("inline-flex", s),
38
+ style: { width: o, height: o },
39
+ ...c,
40
+ children: /* @__PURE__ */ x(
32
41
  "svg",
33
42
  {
34
- width: r,
35
- height: r,
36
- viewBox: `0 0 ${r} ${r}`,
37
- className: l(
38
- "-rotate-90",
39
- n && "animate-[ads-spin_800ms_linear_infinite]"
43
+ width: o,
44
+ height: o,
45
+ viewBox: `0 0 ${o} ${o}`,
46
+ "aria-hidden": "true",
47
+ className: u(
48
+ "overflow-visible",
49
+ a && "animate-[ads-spin_800ms_linear_infinite] motion-reduce:animate-none"
40
50
  ),
41
51
  children: [
42
- /* @__PURE__ */ o(
43
- "circle",
52
+ /* @__PURE__ */ i(
53
+ "path",
44
54
  {
45
55
  className: "stroke-muted",
46
56
  fill: "none",
47
- cx: a,
48
- cy: a,
49
- r: s,
50
- strokeWidth: i
57
+ d: f,
58
+ strokeWidth: n,
59
+ strokeLinejoin: "round"
51
60
  }
52
61
  ),
53
- /* @__PURE__ */ o(w, { reducedMotion: "user", children: /* @__PURE__ */ o(
54
- y.circle,
62
+ /* @__PURE__ */ i(L, { reducedMotion: "user", children: /* @__PURE__ */ i(
63
+ N.path,
55
64
  {
56
65
  className: "stroke-brand",
57
66
  fill: "none",
58
- cx: a,
59
- cy: a,
60
- r: s,
61
- strokeWidth: i,
67
+ d: f,
68
+ pathLength: 100,
69
+ strokeWidth: n,
62
70
  strokeLinecap: "round",
63
- strokeDasharray: t,
71
+ strokeLinejoin: "round",
72
+ strokeDasharray: "100 100",
64
73
  initial: !1,
65
- animate: { strokeDashoffset: g },
66
- transition: M
74
+ animate: { strokeDashoffset: P },
75
+ transition: b
67
76
  }
68
77
  ) })
69
78
  ]
@@ -73,7 +82,7 @@ const N = x.forwardRef(
73
82
  );
74
83
  }
75
84
  );
76
- N.displayName = "ProgressCircle";
85
+ j.displayName = "ProgressCircle";
77
86
  export {
78
- N as ProgressCircle
87
+ j as ProgressCircle
79
88
  };
@@ -14,6 +14,7 @@ export interface SegmentedControlProps extends Omit<React.HTMLAttributes<HTMLDiv
14
14
  options: SegmentedOption[];
15
15
  value: string;
16
16
  onChange: (value: string) => void;
17
+ /** @deprecated No effect: the active thumb is always flat (ADS 1.0.8). */
17
18
  elevated?: boolean;
18
19
  }
19
20
  export declare const SegmentedControl: React.ForwardRefExoticComponent<SegmentedControlProps & React.RefAttributes<HTMLDivElement>>;
@@ -1,15 +1,14 @@
1
1
  "use client";
2
- import { jsx as n, jsxs as x } from "react/jsx-runtime";
2
+ import { jsx as n, jsxs as h } from "react/jsx-runtime";
3
3
  import * as l from "react";
4
- import { MotionConfig as v, motion as w } from "motion/react";
4
+ import { MotionConfig as v, motion as x } from "motion/react";
5
5
  import { cva as c } from "class-variance-authority";
6
- import { cn as o } from "../lib/cn.js";
7
- import { springControl as y } from "../lib/motion.js";
8
- const D = c(
9
- // Borderless recessed track on ink-200 (bg-surface) — matches the Tabs
10
- // primary track (the selected segment provides the definition; a stroke around the
11
- // track read as a second, heavier control).
12
- "inline-flex items-center gap-1 bg-surface p-1",
6
+ import { cn as a } from "../lib/cn.js";
7
+ import { springControl as w } from "../lib/motion.js";
8
+ const y = c(
9
+ // Soft WG2 track with a WG4 edge; the selected option is a White thumb with
10
+ // its own WG4 edge, so the control reads as one quiet, premium switcher.
11
+ "inline-flex items-center gap-0.5 border border-border bg-background p-0.5",
13
12
  {
14
13
  variants: {
15
14
  size: {
@@ -21,10 +20,10 @@ const D = c(
21
20
  defaultVariants: { size: "md" }
22
21
  }
23
22
  ), k = c(
24
- o(
23
+ a(
25
24
  // The active segment is a shared motion thumb that SLIDES between options
26
25
  // (layoutId), so the option itself only carries text color.
27
- "relative inline-flex items-center justify-center whitespace-nowrap text-m font-normal select-none",
26
+ "relative inline-flex items-center justify-center whitespace-nowrap text-m select-none",
28
27
  "transition-colors duration-150 cursor-pointer",
29
28
  "outline-none focus-visible:ring-3 focus-visible:ring-ring",
30
29
  "disabled:pointer-events-none disabled:opacity-50"
@@ -32,44 +31,44 @@ const D = c(
32
31
  {
33
32
  variants: {
34
33
  size: {
35
- sm: "h-6 rounded-sm px-2.5",
36
- md: "h-8 rounded-md px-3",
37
- lg: "h-9 rounded-md px-4"
34
+ sm: "h-6 rounded-xs px-2.5",
35
+ md: "h-7.5 rounded-sm px-3",
36
+ lg: "h-8.5 rounded-sm px-4"
38
37
  },
39
38
  selected: {
40
- true: "text-brand-foreground",
41
- false: "text-muted-foreground hover:text-brand-text"
39
+ true: "font-medium text-foreground",
40
+ false: "font-normal text-muted-foreground hover:text-foreground"
42
41
  }
43
42
  },
44
43
  defaultVariants: { size: "md", selected: !1 }
45
44
  }
46
- ), I = l.forwardRef(({ options: t, value: a, onChange: s, size: i, className: m, elevated: u = !0, ...f }, b) => {
47
- const p = l.useId(), d = (e) => {
48
- const r = t.findIndex((h) => h.value === a), g = ((r < 0 ? 0 : r) + e + t.length) % t.length;
45
+ ), D = l.forwardRef(({ options: t, value: o, onChange: s, size: d, className: m, elevated: I, ...u }, f) => {
46
+ const b = l.useId(), i = (e) => {
47
+ const r = t.findIndex((p) => p.value === o), g = ((r < 0 ? 0 : r) + e + t.length) % t.length;
49
48
  s(t[g].value);
50
49
  };
51
50
  return /* @__PURE__ */ n(
52
51
  "div",
53
52
  {
54
- ref: b,
53
+ ref: f,
55
54
  role: "radiogroup",
56
55
  onKeyDown: (e) => {
57
56
  switch (e.key) {
58
57
  case "ArrowRight":
59
58
  case "ArrowDown":
60
- e.preventDefault(), d(1);
59
+ e.preventDefault(), i(1);
61
60
  break;
62
61
  case "ArrowLeft":
63
62
  case "ArrowUp":
64
- e.preventDefault(), d(-1);
63
+ e.preventDefault(), i(-1);
65
64
  break;
66
65
  }
67
66
  },
68
- className: o(D({ size: i }), m),
69
- ...f,
67
+ className: a(y({ size: d }), m),
68
+ ...u,
70
69
  children: /* @__PURE__ */ n(v, { reducedMotion: "user", children: t.map((e) => {
71
- const r = e.value === a;
72
- return /* @__PURE__ */ x(
70
+ const r = e.value === o;
71
+ return /* @__PURE__ */ h(
73
72
  "button",
74
73
  {
75
74
  type: "button",
@@ -78,18 +77,17 @@ const D = c(
78
77
  "aria-label": e.ariaLabel,
79
78
  tabIndex: r ? 0 : -1,
80
79
  onClick: () => s(e.value),
81
- className: k({ size: i, selected: r }),
80
+ className: k({ size: d, selected: r }),
82
81
  children: [
83
82
  r && /* @__PURE__ */ n(
84
- w.span,
83
+ x.span,
85
84
  {
86
- layoutId: p,
85
+ layoutId: b,
87
86
  "aria-hidden": !0,
88
- layoutDependency: a,
89
- transition: y,
90
- className: o(
91
- "absolute inset-0 rounded-[inherit] bg-brand",
92
- u && "shadow-elevation"
87
+ layoutDependency: o,
88
+ transition: w,
89
+ className: a(
90
+ "absolute inset-0 rounded-[inherit] border border-border bg-card"
93
91
  )
94
92
  }
95
93
  ),
@@ -102,7 +100,7 @@ const D = c(
102
100
  }
103
101
  );
104
102
  });
105
- I.displayName = "SegmentedControl";
103
+ D.displayName = "SegmentedControl";
106
104
  export {
107
- I as SegmentedControl
105
+ D as SegmentedControl
108
106
  };
@@ -61,7 +61,7 @@ const te = G(
61
61
  },
62
62
  className: b(
63
63
  "pointer-events-auto min-w-[280px] max-h-60 overflow-auto p-1",
64
- "rounded-md border border-input bg-elevated shadow-elevation",
64
+ "rounded-md border border-input bg-elevated",
65
65
  $
66
66
  ),
67
67
  children: [
@@ -220,7 +220,7 @@ const re = n.forwardRef(
220
220
  },
221
221
  className: b(
222
222
  "pointer-events-auto max-h-60 overflow-auto p-1",
223
- "rounded-md border border-border bg-elevated shadow-elevation",
223
+ "rounded-md border border-border bg-elevated",
224
224
  m ? "fixed" : b(
225
225
  "absolute z-50 w-full",
226
226
  x === "top" ? "bottom-full mb-1.5" : "top-full mt-1.5"
@@ -1,36 +1,36 @@
1
1
  "use client";
2
- import { jsxs as c, jsx as a } from "react/jsx-runtime";
3
- import * as i from "react";
2
+ import { jsxs as o, jsx as n } from "react/jsx-runtime";
3
+ import * as c from "react";
4
4
  import { cn as s } from "../lib/cn.js";
5
- import { Button as g } from "./button.js";
6
- const p = i.forwardRef(
5
+ import { Button as p } from "./button.js";
6
+ const b = c.forwardRef(
7
7
  ({
8
- className: r,
9
- selectedCount: o,
10
- selectedLabel: t,
11
- actions: n,
8
+ className: t,
9
+ selectedCount: a,
10
+ selectedLabel: i,
11
+ actions: r,
12
12
  onClear: e,
13
- clearLabel: l = "Clear",
13
+ clearLabel: d = "Clear",
14
14
  ...m
15
- }, f) => /* @__PURE__ */ c(
15
+ }, h) => /* @__PURE__ */ o(
16
16
  "div",
17
17
  {
18
- ref: f,
18
+ ref: h,
19
19
  className: s(
20
- "flex items-center gap-3 rounded-lg bg-brand px-3 py-2 text-s text-brand-foreground",
21
- r
20
+ "flex items-center gap-3 rounded-lg bg-wg12 px-3 py-2 text-s text-white",
21
+ t
22
22
  ),
23
23
  ...m,
24
24
  children: [
25
- /* @__PURE__ */ a("span", { className: "font-normal tabular-nums", children: t ?? `${o} selected` }),
26
- /* @__PURE__ */ c("div", { className: "ml-auto flex items-center gap-1", children: [
27
- n,
28
- e && /* @__PURE__ */ a(
29
- d,
25
+ /* @__PURE__ */ n("span", { className: "font-normal tabular-nums", children: i ?? `${a} selected` }),
26
+ /* @__PURE__ */ o("div", { className: "ml-auto flex items-center gap-1", children: [
27
+ r,
28
+ e && /* @__PURE__ */ n(
29
+ l,
30
30
  {
31
31
  onClick: e,
32
- className: "text-brand-foreground",
33
- children: l
32
+ className: "text-white",
33
+ children: d
34
34
  }
35
35
  )
36
36
  ] })
@@ -38,22 +38,23 @@ const p = i.forwardRef(
38
38
  }
39
39
  )
40
40
  );
41
- p.displayName = "SelectionActionBar";
42
- const d = i.forwardRef(({ className: r, variant: o = "ghost", size: t = "xs", ...n }, e) => /* @__PURE__ */ a(
43
- g,
41
+ b.displayName = "SelectionActionBar";
42
+ const l = c.forwardRef(({ className: t, variant: a = "ghost", size: i = "xs", ...r }, e) => /* @__PURE__ */ n(
43
+ p,
44
44
  {
45
45
  ref: e,
46
- variant: o,
47
- size: t,
46
+ variant: a,
47
+ size: i,
48
48
  className: s(
49
- "text-brand-foreground hover:bg-brand-hover hover:text-brand-foreground focus-visible:ring-brand-foreground",
50
- r
49
+ // Neutral black dock: actions wash 12% White on hover, no outline.
50
+ "text-white enabled:hover:border-transparent enabled:hover:bg-white/12 enabled:hover:text-white enabled:active:border-transparent enabled:active:bg-white/12 focus-visible:ring-white",
51
+ t
51
52
  ),
52
- ...n
53
+ ...r
53
54
  }
54
55
  ));
55
- d.displayName = "SelectionActionBarAction";
56
+ l.displayName = "SelectionActionBarAction";
56
57
  export {
57
- p as SelectionActionBar,
58
- d as SelectionActionBarAction
58
+ b as SelectionActionBar,
59
+ l as SelectionActionBarAction
59
60
  };
@@ -1,9 +1,9 @@
1
1
  "use client";
2
- import { jsxs as d, jsx as e } from "react/jsx-runtime";
3
- import * as f from "react";
4
- import { cva as p } from "class-variance-authority";
2
+ import { jsxs as f, jsx as e } from "react/jsx-runtime";
3
+ import * as d from "react";
4
+ import { cva as u } from "class-variance-authority";
5
5
  import { cn as s } from "../lib/cn.js";
6
- const g = p(
6
+ const g = u(
7
7
  [
8
8
  "relative flex w-full items-center gap-3 rounded-md bg-transparent px-4 py-3 text-left",
9
9
  "after:pointer-events-none after:absolute after:inset-x-4 after:bottom-0 after:z-20",
@@ -18,10 +18,10 @@ const g = p(
18
18
  },
19
19
  defaultVariants: { isPressable: !1 }
20
20
  }
21
- ), v = f.forwardRef(
21
+ ), v = d.forwardRef(
22
22
  ({ className: a, icon: r, label: t, description: n, action: i, onSelect: o, ...c }, m) => {
23
23
  const l = !!o;
24
- return /* @__PURE__ */ d(
24
+ return /* @__PURE__ */ f(
25
25
  "div",
26
26
  {
27
27
  ref: m,
@@ -38,7 +38,7 @@ const g = p(
38
38
  className: s(
39
39
  "absolute inset-0 rounded-md outline-none",
40
40
  "transition-[background-color,transform] duration-150 ease-out",
41
- "hover:bg-muted focus-visible:ring-3 focus-visible:ring-ring",
41
+ "hover:bg-wg2 focus-visible:ring-3 focus-visible:ring-ring",
42
42
  "active:scale-[0.97] motion-reduce:transition-none"
43
43
  )
44
44
  }
@@ -51,7 +51,7 @@ const g = p(
51
51
  children: r
52
52
  }
53
53
  ),
54
- /* @__PURE__ */ d("div", { className: "relative z-10 flex min-w-0 flex-1 flex-col gap-0.5 pointer-events-none", children: [
54
+ /* @__PURE__ */ f("div", { className: "relative z-10 flex min-w-0 flex-1 flex-col gap-0.5 pointer-events-none", children: [
55
55
  /* @__PURE__ */ e("div", { className: "min-w-0 text-base text-foreground wrap-break-word", children: t }),
56
56
  n && /* @__PURE__ */ e("div", { className: "min-w-0 text-xs text-tertiary", children: n })
57
57
  ] }),
@@ -61,7 +61,7 @@ const g = p(
61
61
  "span",
62
62
  {
63
63
  className: "relative z-20 shrink-0",
64
- onClick: (u) => u.stopPropagation(),
64
+ onClick: (p) => p.stopPropagation(),
65
65
  children: i
66
66
  }
67
67
  )
@@ -71,7 +71,7 @@ const g = p(
71
71
  }
72
72
  );
73
73
  v.displayName = "SettingRow";
74
- const x = f.forwardRef(
74
+ const x = d.forwardRef(
75
75
  ({ className: a, ...r }, t) => /* @__PURE__ */ e(
76
76
  "div",
77
77
  {
@@ -63,6 +63,21 @@ export interface SidebarBrandProps extends React.HTMLAttributes<HTMLDivElement>
63
63
  * `SidebarHeader`.
64
64
  */
65
65
  export declare function SidebarBrand({ logo, href, label, showTrigger, children, className, ...props }: SidebarBrandProps): React.JSX.Element;
66
+ export interface SidebarWorkspaceProps extends React.HTMLAttributes<HTMLSpanElement> {
67
+ /** Customer workspace name. Also the logo's alt text and the tile initial. */
68
+ name: string;
69
+ /** Customer logo URL. Without it, a WG12 letter tile shows the initial. */
70
+ logoSrc?: string;
71
+ /** Show the name beside the mark. Always hidden in the collapsed rail. Default true. */
72
+ showName?: boolean;
73
+ }
74
+ /**
75
+ * Customer workspace branding for the rail's top-left brand slot: a 32px
76
+ * customer logo (or a WG12 letter tile when no logo is given) and the
77
+ * workspace name, which truncates and hides in the collapsed rail. Pass it as
78
+ * `SidebarBrand`'s `logo`.
79
+ */
80
+ export declare const SidebarWorkspace: React.ForwardRefExoticComponent<SidebarWorkspaceProps & React.RefAttributes<HTMLSpanElement>>;
66
81
  export declare const SidebarHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
67
82
  export declare const SidebarNav: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>>;
68
83
  export interface SidebarSectionProps extends React.HTMLAttributes<HTMLDivElement> {