@actioneer/ads 0.1.0

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 (231) hide show
  1. package/LICENSE +21 -0
  2. package/bin/ads-init.mjs +314 -0
  3. package/components/accordion.d.ts +13 -0
  4. package/components/accordion.js +91 -0
  5. package/components/agents-ui/agent-audio-visualizer-aura.d.ts +11 -0
  6. package/components/agents-ui/agent-audio-visualizer-aura.js +277 -0
  7. package/components/agents-ui/agent-audio-visualizer-wave.d.ts +12 -0
  8. package/components/agents-ui/agent-audio-visualizer-wave.js +203 -0
  9. package/components/agents-ui/react-shader-toy.d.ts +87 -0
  10. package/components/agents-ui/react-shader-toy.js +531 -0
  11. package/components/ai-elements/chain-of-thought.d.ts +30 -0
  12. package/components/ai-elements/chain-of-thought.js +182 -0
  13. package/components/ai-elements/index.d.ts +11 -0
  14. package/components/ai-elements/inline-citation.d.ts +44 -0
  15. package/components/ai-elements/inline-citation.js +314 -0
  16. package/components/ai-elements/message.d.ts +96 -0
  17. package/components/ai-elements/message.js +308 -0
  18. package/components/ai-elements/queue.d.ts +60 -0
  19. package/components/ai-elements/queue.js +193 -0
  20. package/components/ai-elements/reasoning.d.ts +26 -0
  21. package/components/ai-elements/reasoning.js +131 -0
  22. package/components/ai-elements/shimmer.d.ts +25 -0
  23. package/components/ai-elements/shimmer.js +44 -0
  24. package/components/ai-elements/speech-input.d.ts +16 -0
  25. package/components/ai-elements/speech-input.js +151 -0
  26. package/components/ai-elements/task-progress.d.ts +41 -0
  27. package/components/ai-elements/task-progress.js +211 -0
  28. package/components/ai-elements/task.d.ts +35 -0
  29. package/components/ai-elements/task.js +73 -0
  30. package/components/ai-elements/tool.d.ts +53 -0
  31. package/components/ai-elements/tool.js +116 -0
  32. package/components/ai-elements/voice.d.ts +74 -0
  33. package/components/ai-elements/voice.js +875 -0
  34. package/components/alert.d.ts +21 -0
  35. package/components/alert.js +76 -0
  36. package/components/answer.d.ts +984 -0
  37. package/components/answer.js +543 -0
  38. package/components/assistant-ui/action-bar.d.ts +3 -0
  39. package/components/assistant-ui/action-bar.js +57 -0
  40. package/components/assistant-ui/answer-tool-ui.d.ts +5 -0
  41. package/components/assistant-ui/answer-tool-ui.js +42 -0
  42. package/components/assistant-ui/attachment.d.ts +50 -0
  43. package/components/assistant-ui/attachment.js +353 -0
  44. package/components/assistant-ui/badge.d.ts +11 -0
  45. package/components/assistant-ui/badge.js +54 -0
  46. package/components/assistant-ui/branch-picker.d.ts +3 -0
  47. package/components/assistant-ui/branch-picker.js +36 -0
  48. package/components/assistant-ui/chain-of-thought.d.ts +46 -0
  49. package/components/assistant-ui/composer-add-context.d.ts +50 -0
  50. package/components/assistant-ui/composer-add-context.js +209 -0
  51. package/components/assistant-ui/composer-deep-research.d.ts +16 -0
  52. package/components/assistant-ui/composer-deep-research.js +38 -0
  53. package/components/assistant-ui/composer-harness.d.ts +18 -0
  54. package/components/assistant-ui/composer-harness.js +186 -0
  55. package/components/assistant-ui/composer-trigger-popover.d.ts +47 -0
  56. package/components/assistant-ui/composer-trigger-popover.js +147 -0
  57. package/components/assistant-ui/composer.d.ts +8 -0
  58. package/components/assistant-ui/composer.js +276 -0
  59. package/components/assistant-ui/directive-text.d.ts +16 -0
  60. package/components/assistant-ui/directive-text.js +40 -0
  61. package/components/assistant-ui/error.d.ts +6 -0
  62. package/components/assistant-ui/error.js +39 -0
  63. package/components/assistant-ui/file.d.ts +37 -0
  64. package/components/assistant-ui/file.js +159 -0
  65. package/components/assistant-ui/follow-up-suggestions.d.ts +7 -0
  66. package/components/assistant-ui/follow-up-suggestions.js +44 -0
  67. package/components/assistant-ui/image.d.ts +46 -0
  68. package/components/assistant-ui/image.js +351 -0
  69. package/components/assistant-ui/index.d.ts +28 -0
  70. package/components/assistant-ui/markdown-text.d.ts +1 -0
  71. package/components/assistant-ui/markdown-text.js +242 -0
  72. package/components/assistant-ui/message-timing.d.ts +25 -0
  73. package/components/assistant-ui/message-timing.js +56 -0
  74. package/components/assistant-ui/message.d.ts +4 -0
  75. package/components/assistant-ui/message.js +159 -0
  76. package/components/assistant-ui/primitives.d.ts +2 -0
  77. package/components/assistant-ui/quote.d.ts +37 -0
  78. package/components/assistant-ui/quote.js +150 -0
  79. package/components/assistant-ui/reasoning.d.ts +44 -0
  80. package/components/assistant-ui/reasoning.js +261 -0
  81. package/components/assistant-ui/selection-toolbar.d.ts +29 -0
  82. package/components/assistant-ui/selection-toolbar.js +91 -0
  83. package/components/assistant-ui/smart-message-text.d.ts +15 -0
  84. package/components/assistant-ui/smart-message-text.js +29 -0
  85. package/components/assistant-ui/sources.d.ts +17 -0
  86. package/components/assistant-ui/sources.js +121 -0
  87. package/components/assistant-ui/suggestions.d.ts +7 -0
  88. package/components/assistant-ui/suggestions.js +19 -0
  89. package/components/assistant-ui/thread-context.d.ts +37 -0
  90. package/components/assistant-ui/thread-context.js +8 -0
  91. package/components/assistant-ui/thread.d.ts +5 -0
  92. package/components/assistant-ui/thread.js +77 -0
  93. package/components/assistant-ui/tool-fallback.d.ts +36 -0
  94. package/components/assistant-ui/tool-fallback.js +428 -0
  95. package/components/assistant-ui/tool-group.d.ts +33 -0
  96. package/components/assistant-ui/tool-group.js +173 -0
  97. package/components/assistant-ui/tooltip-icon-button.d.ts +7 -0
  98. package/components/assistant-ui/tooltip-icon-button.js +31 -0
  99. package/components/assistant-ui/voice.d.ts +18 -0
  100. package/components/autocomplete.d.ts +18 -0
  101. package/components/autocomplete.js +162 -0
  102. package/components/avatar.d.ts +26 -0
  103. package/components/avatar.js +92 -0
  104. package/components/badge.d.ts +10 -0
  105. package/components/badge.js +83 -0
  106. package/components/brand-loader.d.ts +16 -0
  107. package/components/brand-loader.js +64 -0
  108. package/components/breadcrumbs.d.ts +8 -0
  109. package/components/breadcrumbs.js +58 -0
  110. package/components/button.d.ts +13 -0
  111. package/components/button.js +100 -0
  112. package/components/card.d.ts +19 -0
  113. package/components/card.js +82 -0
  114. package/components/carousel.d.ts +31 -0
  115. package/components/carousel.js +351 -0
  116. package/components/chart.d.ts +165 -0
  117. package/components/chart.js +841 -0
  118. package/components/checkbox.d.ts +13 -0
  119. package/components/checkbox.js +84 -0
  120. package/components/chip.d.ts +13 -0
  121. package/components/chip.js +112 -0
  122. package/components/collapsible.d.ts +5 -0
  123. package/components/collapsible.js +31 -0
  124. package/components/connector-card.d.ts +62 -0
  125. package/components/connector-card.js +154 -0
  126. package/components/divider.d.ts +23 -0
  127. package/components/divider.js +69 -0
  128. package/components/drawer.d.ts +45 -0
  129. package/components/drawer.js +234 -0
  130. package/components/dropdown.d.ts +33 -0
  131. package/components/dropdown.js +198 -0
  132. package/components/empty-state.d.ts +8 -0
  133. package/components/empty-state.js +30 -0
  134. package/components/field.d.ts +20 -0
  135. package/components/field.js +74 -0
  136. package/components/index.d.ts +56 -0
  137. package/components/index.js +444 -0
  138. package/components/input-field.d.ts +22 -0
  139. package/components/input-field.js +91 -0
  140. package/components/input.d.ts +8 -0
  141. package/components/input.js +61 -0
  142. package/components/kbd.d.ts +6 -0
  143. package/components/kbd.js +26 -0
  144. package/components/link.d.ts +14 -0
  145. package/components/link.js +72 -0
  146. package/components/modal.d.ts +18 -0
  147. package/components/modal.js +156 -0
  148. package/components/navbar.d.ts +15 -0
  149. package/components/navbar.js +68 -0
  150. package/components/number-field.d.ts +11 -0
  151. package/components/number-field.js +89 -0
  152. package/components/pagination.d.ts +28 -0
  153. package/components/pagination.js +179 -0
  154. package/components/panel.d.ts +14 -0
  155. package/components/panel.js +71 -0
  156. package/components/pixel-blast-svg.d.ts +22 -0
  157. package/components/pixel-blast-svg.js +154 -0
  158. package/components/popover.d.ts +20 -0
  159. package/components/popover.js +101 -0
  160. package/components/progress-circle.d.ts +11 -0
  161. package/components/progress-circle.js +75 -0
  162. package/components/progress.d.ts +22 -0
  163. package/components/progress.js +66 -0
  164. package/components/radio.d.ts +16 -0
  165. package/components/radio.js +101 -0
  166. package/components/segmented.d.ts +16 -0
  167. package/components/segmented.js +103 -0
  168. package/components/select.d.ts +28 -0
  169. package/components/select.js +180 -0
  170. package/components/selection-action-bar.d.ts +11 -0
  171. package/components/selection-action-bar.js +59 -0
  172. package/components/sidebar.d.ts +118 -0
  173. package/components/sidebar.js +375 -0
  174. package/components/skeleton.d.ts +6 -0
  175. package/components/skeleton.js +26 -0
  176. package/components/slider.d.ts +11 -0
  177. package/components/slider.js +62 -0
  178. package/components/spinner.d.ts +11 -0
  179. package/components/spinner.js +62 -0
  180. package/components/switch.d.ts +7 -0
  181. package/components/switch.js +61 -0
  182. package/components/table.d.ts +59 -0
  183. package/components/table.js +254 -0
  184. package/components/tabs.d.ts +29 -0
  185. package/components/tabs.js +371 -0
  186. package/components/textarea.d.ts +5 -0
  187. package/components/textarea.js +24 -0
  188. package/components/timeline.d.ts +7 -0
  189. package/components/timeline.js +47 -0
  190. package/components/toast.d.ts +74 -0
  191. package/components/toast.js +211 -0
  192. package/components/tooltip.d.ts +11 -0
  193. package/components/tooltip.js +143 -0
  194. package/components/tree.d.ts +42 -0
  195. package/components/tree.js +86 -0
  196. package/components/typography.d.ts +33 -0
  197. package/components/typography.js +65 -0
  198. package/components/ui/avatar.d.ts +11 -0
  199. package/components/ui/avatar.js +56 -0
  200. package/components/ui/button.d.ts +10 -0
  201. package/components/ui/button.js +57 -0
  202. package/components/ui/collapsible.d.ts +5 -0
  203. package/components/ui/collapsible.js +35 -0
  204. package/components/ui/dialog.d.ts +17 -0
  205. package/components/ui/dialog.js +93 -0
  206. package/components/ui/tabs.d.ts +22 -0
  207. package/components/ui/tooltip.d.ts +7 -0
  208. package/components/ui/tooltip.js +56 -0
  209. package/fonts/aribau-grotesk-400.otf +0 -0
  210. package/fonts/aribau-grotesk-700.otf +0 -0
  211. package/fonts.css +21 -0
  212. package/hooks/agents-ui/use-agent-audio-visualizer-aura.d.ts +8 -0
  213. package/hooks/agents-ui/use-agent-audio-visualizer-aura.js +62 -0
  214. package/hooks/agents-ui/use-agent-audio-visualizer-wave.d.ts +7 -0
  215. package/hooks/agents-ui/use-agent-audio-visualizer-wave.js +60 -0
  216. package/hooks/agents-ui/voice-visualizer-types.d.ts +9 -0
  217. package/lib/cn.d.ts +3 -0
  218. package/lib/cn.js +9 -0
  219. package/lib/icons.d.ts +378 -0
  220. package/lib/icons.js +119 -0
  221. package/lib/interactive.d.ts +24 -0
  222. package/lib/interactive.js +36 -0
  223. package/lib/motion.d.ts +58 -0
  224. package/lib/motion.js +70 -0
  225. package/lib/router.d.ts +3 -0
  226. package/lib/utils.d.ts +6 -0
  227. package/llms.txt +537 -0
  228. package/manifest.json +5085 -0
  229. package/package.json +60 -0
  230. package/styles.css +653 -0
  231. package/theme.css +273 -0
@@ -0,0 +1,13 @@
1
+ import * as React from "react";
2
+ export interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size"> {
3
+ indeterminate?: boolean;
4
+ size?: "sm" | "md";
5
+ }
6
+ export declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>;
7
+ export interface CheckboxGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
8
+ label?: React.ReactNode;
9
+ description?: React.ReactNode;
10
+ error?: React.ReactNode;
11
+ orientation?: "vertical" | "horizontal";
12
+ }
13
+ export declare const CheckboxGroup: React.ForwardRefExoticComponent<CheckboxGroupProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,84 @@
1
+ "use client";
2
+ import { jsxs as p, jsx as e } from "react/jsx-runtime";
3
+ import * as s from "react";
4
+ import { Minus as u, Check as f } from "../lib/icons.js";
5
+ import { cn as l } from "../lib/cn.js";
6
+ import { Field as m } from "./field.js";
7
+ const b = {
8
+ sm: "size-4 [&_svg]:size-3",
9
+ md: "size-4.5 [&_svg]:size-3.5"
10
+ }, x = s.forwardRef(
11
+ ({ className: i, children: t, indeterminate: o = !1, size: a = "md", disabled: n, ...c }, d) => {
12
+ const r = s.useRef(null);
13
+ return s.useImperativeHandle(d, () => r.current), s.useEffect(() => {
14
+ r.current && (r.current.indeterminate = o);
15
+ }, [o]), /* @__PURE__ */ p(
16
+ "label",
17
+ {
18
+ className: l(
19
+ "group inline-flex items-center gap-2 text-xs text-foreground select-none",
20
+ n ? "cursor-not-allowed opacity-50" : "cursor-pointer",
21
+ i
22
+ ),
23
+ children: [
24
+ /* @__PURE__ */ e(
25
+ "input",
26
+ {
27
+ ref: r,
28
+ type: "checkbox",
29
+ disabled: n,
30
+ className: "peer sr-only",
31
+ ...c
32
+ }
33
+ ),
34
+ /* @__PURE__ */ e(
35
+ "span",
36
+ {
37
+ "aria-hidden": !0,
38
+ className: l(
39
+ "flex shrink-0 items-center justify-center rounded-sm border border-input bg-elevated text-brand-foreground",
40
+ "transition-[background,border,box-shadow] duration-(--duration-fast)",
41
+ "peer-checked:border-brand peer-checked:bg-brand",
42
+ "peer-indeterminate:border-brand peer-indeterminate:bg-brand",
43
+ "peer-focus-visible:ring-3 peer-focus-visible:ring-ring",
44
+ b[a]
45
+ ),
46
+ children: o ? /* @__PURE__ */ e(u, { strokeWidth: 3 }) : /* @__PURE__ */ e(f, { className: "opacity-0 group-has-[:checked]:opacity-100", strokeWidth: 3 })
47
+ }
48
+ ),
49
+ t && /* @__PURE__ */ e("span", { children: t })
50
+ ]
51
+ }
52
+ );
53
+ }
54
+ );
55
+ x.displayName = "Checkbox";
56
+ const h = s.forwardRef(
57
+ ({ className: i, label: t, description: o, error: a, orientation: n = "vertical", children: c, ...d }, r) => /* @__PURE__ */ e(
58
+ m,
59
+ {
60
+ ref: r,
61
+ label: t,
62
+ description: o,
63
+ error: a,
64
+ role: "group",
65
+ className: i,
66
+ ...d,
67
+ children: /* @__PURE__ */ e(
68
+ "div",
69
+ {
70
+ className: l(
71
+ "flex gap-3",
72
+ n === "vertical" ? "flex-col" : "flex-row flex-wrap"
73
+ ),
74
+ children: c
75
+ }
76
+ )
77
+ }
78
+ )
79
+ );
80
+ h.displayName = "CheckboxGroup";
81
+ export {
82
+ x as Checkbox,
83
+ h as CheckboxGroup
84
+ };
@@ -0,0 +1,13 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from "react";
3
+ declare const chipVariants: (props?: ({
4
+ variant?: "soft" | "solid" | "outline" | "dot" | null | undefined;
5
+ color?: "success" | "warning" | "danger" | "info" | "default" | "primary" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ export interface ChipProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "color">, VariantProps<typeof chipVariants> {
8
+ onClose?: () => void;
9
+ startContent?: React.ReactNode;
10
+ avatar?: React.ReactNode;
11
+ }
12
+ export declare const Chip: React.ForwardRefExoticComponent<ChipProps & React.RefAttributes<HTMLSpanElement>>;
13
+ export {};
@@ -0,0 +1,112 @@
1
+ "use client";
2
+ import { jsxs as g, jsx as r } from "react/jsx-runtime";
3
+ import * as f from "react";
4
+ import { cva as u } from "class-variance-authority";
5
+ import { Close as m } from "../lib/icons.js";
6
+ import { cn as o } from "../lib/cn.js";
7
+ const b = u(
8
+ "inline-flex items-center gap-1.5 rounded-full px-3 py-1 text-xs font-medium whitespace-nowrap",
9
+ {
10
+ variants: {
11
+ variant: {
12
+ solid: "",
13
+ soft: "",
14
+ outline: "bg-transparent border",
15
+ dot: "bg-transparent border border-border text-foreground"
16
+ },
17
+ color: {
18
+ default: "",
19
+ primary: "",
20
+ success: "",
21
+ warning: "",
22
+ danger: "",
23
+ info: ""
24
+ }
25
+ },
26
+ compoundVariants: [
27
+ // solid
28
+ { variant: "solid", color: "default", className: "bg-fill text-fill-foreground" },
29
+ { variant: "solid", color: "primary", className: "bg-brand text-brand-foreground" },
30
+ { variant: "solid", color: "success", className: "bg-success text-success-foreground" },
31
+ { variant: "solid", color: "warning", className: "bg-warning text-warning-foreground" },
32
+ { variant: "solid", color: "danger", className: "bg-danger text-danger-foreground" },
33
+ { variant: "solid", color: "info", className: "bg-info text-info-foreground" },
34
+ // soft
35
+ { variant: "soft", color: "default", className: "bg-muted text-muted-foreground" },
36
+ { variant: "soft", color: "primary", className: "bg-fill text-fill-foreground" },
37
+ { variant: "soft", color: "success", className: "bg-success-50 text-success-700" },
38
+ { variant: "soft", color: "warning", className: "bg-warning-50 text-warning-700" },
39
+ { variant: "soft", color: "danger", className: "bg-danger-50 text-danger-700" },
40
+ { variant: "soft", color: "info", className: "bg-info-50 text-info-700" },
41
+ // outline
42
+ { variant: "outline", color: "default", className: "border-border-strong text-foreground" },
43
+ { variant: "outline", color: "primary", className: "border-border-strong text-foreground" },
44
+ { variant: "outline", color: "success", className: "border-success-100 text-success-700" },
45
+ { variant: "outline", color: "warning", className: "border-warning-100 text-warning-700" },
46
+ { variant: "outline", color: "danger", className: "border-danger-100 text-danger-700" },
47
+ { variant: "outline", color: "info", className: "border-info-100 text-info-700" }
48
+ ],
49
+ defaultVariants: { variant: "soft", color: "default" }
50
+ }
51
+ ), p = {
52
+ default: "bg-muted-foreground",
53
+ primary: "bg-brand",
54
+ success: "bg-success",
55
+ warning: "bg-warning",
56
+ danger: "bg-danger",
57
+ info: "bg-info"
58
+ }, x = f.forwardRef(
59
+ ({
60
+ className: i,
61
+ variant: n = "soft",
62
+ color: s = "default",
63
+ onClose: e,
64
+ startContent: t,
65
+ avatar: a,
66
+ children: l,
67
+ ...c
68
+ }, d) => /* @__PURE__ */ g(
69
+ "span",
70
+ {
71
+ ref: d,
72
+ className: o(
73
+ b({ variant: n, color: s }),
74
+ a && "pl-1",
75
+ e && "pr-1.5",
76
+ i
77
+ ),
78
+ ...c,
79
+ children: [
80
+ a && /* @__PURE__ */ r("span", { className: "-ml-0.5 inline-flex shrink-0", children: a }),
81
+ n === "dot" && /* @__PURE__ */ r(
82
+ "span",
83
+ {
84
+ "aria-hidden": !0,
85
+ className: o("size-2 rounded-dot", p[s ?? "default"])
86
+ }
87
+ ),
88
+ t && /* @__PURE__ */ r("span", { className: "inline-flex shrink-0 [&_svg]:size-4", children: t }),
89
+ l,
90
+ e && /* @__PURE__ */ r(
91
+ "button",
92
+ {
93
+ type: "button",
94
+ "aria-label": "Remove",
95
+ onClick: e,
96
+ className: o(
97
+ "inline-flex size-4 shrink-0 items-center justify-center rounded-full",
98
+ "opacity-60 transition-opacity hover:opacity-100",
99
+ "outline-none focus-visible:ring-3 focus-visible:ring-ring",
100
+ "[&_svg]:size-3"
101
+ ),
102
+ children: /* @__PURE__ */ r(m, { "aria-hidden": !0 })
103
+ }
104
+ )
105
+ ]
106
+ }
107
+ )
108
+ );
109
+ x.displayName = "Chip";
110
+ export {
111
+ x as Chip
112
+ };
@@ -0,0 +1,5 @@
1
+ import { Collapsible as CollapsiblePrimitive } from 'radix-ui';
2
+ import * as React from "react";
3
+ export declare const Collapsible: React.ForwardRefExoticComponent<Omit<CollapsiblePrimitive.CollapsibleProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ export declare const CollapsibleTrigger: React.ForwardRefExoticComponent<Omit<CollapsiblePrimitive.CollapsibleTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
5
+ export declare const CollapsibleContent: React.ForwardRefExoticComponent<Omit<CollapsiblePrimitive.CollapsibleContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,31 @@
1
+ "use client";
2
+ import { jsx as e } from "react/jsx-runtime";
3
+ import * as s from "react";
4
+ import { Collapsible as t } from "radix-ui";
5
+ const i = s.forwardRef(({ children: l, ...o }, a) => /* @__PURE__ */ e(t.Root, { ref: a, "data-slot": "collapsible", ...o, children: l }));
6
+ i.displayName = "Collapsible";
7
+ const r = s.forwardRef(({ children: l, ...o }, a) => /* @__PURE__ */ e(
8
+ t.CollapsibleTrigger,
9
+ {
10
+ ref: a,
11
+ "data-slot": "collapsible-trigger",
12
+ ...o,
13
+ children: l
14
+ }
15
+ ));
16
+ r.displayName = "CollapsibleTrigger";
17
+ const p = s.forwardRef(({ children: l, ...o }, a) => /* @__PURE__ */ e(
18
+ t.CollapsibleContent,
19
+ {
20
+ ref: a,
21
+ "data-slot": "collapsible-content",
22
+ ...o,
23
+ children: l
24
+ }
25
+ ));
26
+ p.displayName = "CollapsibleContent";
27
+ export {
28
+ i as Collapsible,
29
+ p as CollapsibleContent,
30
+ r as CollapsibleTrigger
31
+ };
@@ -0,0 +1,62 @@
1
+ import * as React from "react";
2
+ /**
3
+ * ConnectorCard — a single data source / destination card for an integrations
4
+ * screen. Structure: identity row (logo + name + schema + connection status),
5
+ * a tinted health strip, and a recessed footer with a usage metric + action.
6
+ *
7
+ * On-principle: elevation marks actionability — the card carries
8
+ * `shadow-elevation` only when clickable (`onOpen`); otherwise it sits flat,
9
+ * delineated by fill. The health strip uses a soft status tint and the footer
10
+ * steps down to `bg-muted`.
11
+ */
12
+ /**
13
+ * ConnectorTint — collapsed to two states: `issue` (red — anything the agent
14
+ * can't rely on: stale data, dropped rows, disconnected source) and `healthy`
15
+ * (green — everything is available). We deliberately don't grade issues into
16
+ * major/minor tiers; an issue is an issue.
17
+ */
18
+ export type ConnectorTint = "issue" | "healthy";
19
+ export interface ConnectorStrip {
20
+ tint: ConnectorTint;
21
+ message: string;
22
+ }
23
+ export interface ConnectorFooter {
24
+ text: string;
25
+ /** Dim the footer text (e.g. a disconnected source with nothing available). */
26
+ faint?: boolean;
27
+ }
28
+ export interface ConnectorAction {
29
+ label: string;
30
+ /** "reconnect" turns the action red for a down source. */
31
+ tone?: "default" | "reconnect";
32
+ }
33
+ export interface ConnectorCardData {
34
+ id: string;
35
+ name: string;
36
+ schema?: string;
37
+ logo?: string;
38
+ connected?: boolean;
39
+ /** When the source last synced. Rendered as "Last sync at …" / "… from … ago". */
40
+ lastSync?: Date;
41
+ strip: ConnectorStrip;
42
+ footer: ConnectorFooter;
43
+ action?: ConnectorAction;
44
+ }
45
+ export interface ConnectorCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onClick"> {
46
+ card: ConnectorCardData;
47
+ /** When supplied, the whole card becomes clickable. */
48
+ onOpen?: (card: ConnectorCardData) => void;
49
+ }
50
+ export interface ConnectionStatusProps {
51
+ connected?: boolean;
52
+ lastSync?: Date;
53
+ /** Override the computed label (e.g. when the sync time is a string). */
54
+ label?: string;
55
+ }
56
+ /**
57
+ * Square status dot + muted sync label — the connection-state language of
58
+ * the connector cards. Exported so detail screens render the same status
59
+ * the same way.
60
+ */
61
+ export declare function ConnectionStatus({ connected, lastSync, label: labelOverride, }: ConnectionStatusProps): React.JSX.Element;
62
+ export declare const ConnectorCard: React.ForwardRefExoticComponent<ConnectorCardProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,154 @@
1
+ "use client";
2
+ import { jsxs as r, Fragment as g, jsx as t } from "react/jsx-runtime";
3
+ import * as h from "react";
4
+ import { Database as x, ChevronRight as b } from "../lib/icons.js";
5
+ import { cn as o } from "../lib/cn.js";
6
+ const u = {
7
+ issue: { band: "bg-linear-to-r from-danger-50 to-danger-50/0" },
8
+ healthy: { band: "bg-linear-to-r from-success-50 to-success-50/0" }
9
+ };
10
+ function p(s) {
11
+ const e = /* @__PURE__ */ new Date();
12
+ if (s.toDateString() === e.toDateString())
13
+ return `Last sync at ${s.toLocaleTimeString("en-US", { hour: "numeric", minute: "2-digit" })}`;
14
+ const n = Math.max(1, Math.floor((e.getTime() - s.getTime()) / 864e5));
15
+ if (n === 1) return "Last sync yesterday";
16
+ let a;
17
+ if (n < 7) a = `${n} days ago`;
18
+ else if (n < 30) {
19
+ const i = Math.round(n / 7);
20
+ a = `${i} week${i > 1 ? "s" : ""} ago`;
21
+ } else {
22
+ const i = Math.round(n / 30);
23
+ a = `${i} month${i > 1 ? "s" : ""} ago`;
24
+ }
25
+ return `Last sync from ${a}`;
26
+ }
27
+ function y({
28
+ connected: s,
29
+ lastSync: e,
30
+ label: n
31
+ }) {
32
+ const a = n ?? (s ? e ? p(e) : "Connected" : "Disconnected");
33
+ return /* @__PURE__ */ r("span", { className: "inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap text-xs text-tertiary", children: [
34
+ /* @__PURE__ */ t(
35
+ "span",
36
+ {
37
+ "aria-hidden": !0,
38
+ className: o(
39
+ "size-2 rounded-dot",
40
+ s ? "bg-success" : "bg-danger"
41
+ )
42
+ }
43
+ ),
44
+ a
45
+ ] });
46
+ }
47
+ function N({ strip: s }) {
48
+ const e = u[s.tint] ?? u.issue;
49
+ return /* @__PURE__ */ t(
50
+ "div",
51
+ {
52
+ className: o(
53
+ "flex min-w-0 items-center gap-2 rounded-md px-3.5 py-2.5",
54
+ e.band
55
+ ),
56
+ children: /* @__PURE__ */ t(
57
+ "span",
58
+ {
59
+ className: o(
60
+ "min-w-0 flex-1 truncate text-xs text-foreground"
61
+ ),
62
+ children: s.message
63
+ }
64
+ )
65
+ }
66
+ );
67
+ }
68
+ const v = h.forwardRef(
69
+ ({ className: s, card: e, onOpen: n, ...a }, i) => {
70
+ var m;
71
+ const c = !!n, f = ((m = e.action) == null ? void 0 : m.tone) === "reconnect", l = /* @__PURE__ */ r(g, { children: [
72
+ /* @__PURE__ */ r("div", { className: "rounded-t-xl p-[var(--card-padding)]", children: [
73
+ /* @__PURE__ */ r("div", { className: "mb-5 flex items-center gap-3.5", children: [
74
+ e.logo ? /* @__PURE__ */ t(
75
+ "img",
76
+ {
77
+ src: e.logo,
78
+ alt: "",
79
+ className: "size-10 shrink-0 rounded-md object-contain"
80
+ }
81
+ ) : /* @__PURE__ */ t("span", { className: "grid size-10 shrink-0 place-items-center rounded-md bg-muted text-secondary", children: /* @__PURE__ */ t(x, { className: "size-5", "aria-hidden": !0 }) }),
82
+ /* @__PURE__ */ r("div", { className: "min-w-0 flex-1", children: [
83
+ /* @__PURE__ */ r("div", { className: "flex items-baseline justify-between gap-3", children: [
84
+ /* @__PURE__ */ t("div", { className: "min-w-0 truncate text-base font-semibold leading-tight text-foreground", children: e.name }),
85
+ /* @__PURE__ */ t(
86
+ y,
87
+ {
88
+ connected: e.connected,
89
+ lastSync: e.lastSync
90
+ }
91
+ )
92
+ ] }),
93
+ e.schema && /* @__PURE__ */ t("div", { className: "mt-0.5 truncate text-xs tabular-nums text-tertiary", children: e.schema })
94
+ ] })
95
+ ] }),
96
+ /* @__PURE__ */ t(N, { strip: e.strip })
97
+ ] }),
98
+ /* @__PURE__ */ r("div", { className: "flex items-center justify-between gap-3 rounded-b-xl bg-muted px-[var(--card-padding)] py-3", children: [
99
+ /* @__PURE__ */ t(
100
+ "span",
101
+ {
102
+ className: o(
103
+ "min-w-0 truncate text-xs",
104
+ e.footer.faint ? "text-tertiary/70" : "text-secondary"
105
+ ),
106
+ children: e.footer.text
107
+ }
108
+ ),
109
+ e.action && /* @__PURE__ */ r(
110
+ "span",
111
+ {
112
+ className: o(
113
+ "inline-flex shrink-0 items-center gap-0.5 text-xs font-medium",
114
+ f ? "text-danger" : "text-foreground"
115
+ ),
116
+ children: [
117
+ e.action.label,
118
+ /* @__PURE__ */ t(b, { strokeWidth: 2, className: "size-3.5" })
119
+ ]
120
+ }
121
+ )
122
+ ] })
123
+ ] }), d = o(
124
+ // Each region shapes its own corners: top body carries rounded-t-xl,
125
+ // footer carries rounded-b-xl. Layer promoted with translateZ(0) so
126
+ // the rounded edges rasterize on their own GPU layer (subpixel corner
127
+ // aliasing under transform is a real browser gotcha; forcing a
128
+ // compositor layer fixes it deterministically).
129
+ "rounded-xl bg-card text-card-foreground transform-gpu [will-change:transform] [backface-visibility:hidden]",
130
+ c && "shadow-elevation transition-[transform,box-shadow] duration-(--duration-fast) ease-out motion-reduce:transition-none",
131
+ s
132
+ );
133
+ return c ? /* @__PURE__ */ t(
134
+ "button",
135
+ {
136
+ ref: i,
137
+ type: "button",
138
+ onClick: () => n == null ? void 0 : n(e),
139
+ className: o(
140
+ d,
141
+ "w-full cursor-pointer text-left hover:-translate-y-0.5",
142
+ "outline-none focus-visible:ring-3 focus-visible:ring-ring active:translate-y-0"
143
+ ),
144
+ ...a,
145
+ children: l
146
+ }
147
+ ) : /* @__PURE__ */ t("div", { ref: i, className: d, ...a, children: l });
148
+ }
149
+ );
150
+ v.displayName = "ConnectorCard";
151
+ export {
152
+ y as ConnectionStatus,
153
+ v as ConnectorCard
154
+ };
@@ -0,0 +1,23 @@
1
+ import * as React from "react";
2
+ export interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ orientation?: "horizontal" | "vertical";
4
+ /**
5
+ * `primary` — a solid line (default). `secondary` — a dashed line, used to
6
+ * separate related-but-optional content or to imply a soft break.
7
+ */
8
+ variant?: "primary" | "secondary";
9
+ /**
10
+ * When true, the line fades from full opacity on the leading edge (left in
11
+ * horizontal, top in vertical) to zero on the trailing edge. Useful when the
12
+ * divider marks the end of a section and shouldn't hard-terminate it.
13
+ */
14
+ fade?: boolean;
15
+ /** Centered label with a line on each side (horizontal only). */
16
+ label?: React.ReactNode;
17
+ }
18
+ /**
19
+ * A rule that separates content — one of the few sanctioned strokes in ADS
20
+ * (principle 1). Two variants (`primary` solid / `secondary` dashed) and an
21
+ * optional `fade` modifier that lets the line trail off on its far edge.
22
+ */
23
+ export declare const Divider: React.ForwardRefExoticComponent<DividerProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,69 @@
1
+ "use client";
2
+ import { jsx as r, jsxs as f } from "react/jsx-runtime";
3
+ import * as k from "react";
4
+ import { cn as e } from "../lib/cn.js";
5
+ const p = "linear-gradient(to right, black, transparent)", g = "linear-gradient(to bottom, black, transparent)", u = k.forwardRef(
6
+ ({
7
+ className: n,
8
+ orientation: m = "horizontal",
9
+ variant: b = "primary",
10
+ fade: c = !1,
11
+ label: d,
12
+ style: o,
13
+ ...i
14
+ }, s) => {
15
+ const x = b === "secondary", a = m === "vertical", t = x ? a ? "w-px [background-image:linear-gradient(to_bottom,var(--color-border)_50%,transparent_50%)] [background-size:1px_12px] [background-repeat:repeat-y]" : "h-px [background-image:linear-gradient(to_right,var(--color-border)_50%,transparent_50%)] [background-size:12px_1px] [background-repeat:repeat-x]" : a ? "w-px bg-border" : "h-px bg-border", l = c ? {
16
+ WebkitMaskImage: a ? g : p,
17
+ maskImage: a ? g : p
18
+ } : void 0;
19
+ return a ? /* @__PURE__ */ r(
20
+ "div",
21
+ {
22
+ ref: s,
23
+ role: "separator",
24
+ "aria-orientation": "vertical",
25
+ className: e("h-full self-stretch", t, n),
26
+ style: { ...l, ...o },
27
+ ...i
28
+ }
29
+ ) : d != null ? /* @__PURE__ */ f(
30
+ "div",
31
+ {
32
+ ref: s,
33
+ role: "separator",
34
+ "aria-orientation": "horizontal",
35
+ className: e("flex items-center gap-3 w-full", n),
36
+ style: o,
37
+ ...i,
38
+ children: [
39
+ /* @__PURE__ */ r("span", { className: e("flex-1", t), style: l }),
40
+ /* @__PURE__ */ r("span", { className: "text-xs text-muted-foreground whitespace-nowrap", children: d }),
41
+ /* @__PURE__ */ r(
42
+ "span",
43
+ {
44
+ className: e("flex-1", t),
45
+ style: c ? {
46
+ WebkitMaskImage: "linear-gradient(to left, black, transparent)",
47
+ maskImage: "linear-gradient(to left, black, transparent)"
48
+ } : void 0
49
+ }
50
+ )
51
+ ]
52
+ }
53
+ ) : /* @__PURE__ */ r(
54
+ "div",
55
+ {
56
+ ref: s,
57
+ role: "separator",
58
+ "aria-orientation": "horizontal",
59
+ className: e("w-full", t, n),
60
+ style: { ...l, ...o },
61
+ ...i
62
+ }
63
+ );
64
+ }
65
+ );
66
+ u.displayName = "Divider";
67
+ export {
68
+ u as Divider
69
+ };
@@ -0,0 +1,45 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from "react";
3
+ declare const panelVariants: (props?: ({
4
+ side?: "left" | "right" | "bottom" | null | undefined;
5
+ size?: "sm" | "md" | "lg" | "xl" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ export interface DrawerProps extends VariantProps<typeof panelVariants> {
8
+ open: boolean;
9
+ onOpenChange: (open: boolean) => void;
10
+ /** Accessible label for the drawer landmark. */
11
+ "aria-label": string;
12
+ className?: string;
13
+ children: React.ReactNode;
14
+ }
15
+ /**
16
+ * ModalDrawer — legacy portaled drawer. Kept for the demo product's
17
+ * answer-sources / citation-preview / voice-campaigns screens where a blocking
18
+ * side panel over the whole viewport is the intended pattern. New code should
19
+ * prefer `Drawer` (the inline variant) — it doesn't leave the page while it's
20
+ * open, so users can keep referencing content beside it.
21
+ */
22
+ export interface ModalDrawerProps extends VariantProps<typeof panelVariants> {
23
+ open: boolean;
24
+ onOpenChange: (open: boolean) => void;
25
+ className?: string;
26
+ children: React.ReactNode;
27
+ }
28
+ export declare function ModalDrawer({ open, onOpenChange, side: sideProp, size, className, children, }: ModalDrawerProps): React.ReactPortal;
29
+ /**
30
+ * Drawer — an in-flow side panel that slides in beside content instead of
31
+ * portaling over the whole page. No backdrop, no scroll lock; the surrounding
32
+ * page stays visible and interactive while it's open. This is the canonical
33
+ * Drawer in ADS. Use `ModalDrawer` when a page-blocking overlay is genuinely
34
+ * required.
35
+ */
36
+ export declare function Drawer({ open, onOpenChange, side: sideProp, size, className, children, "aria-label": ariaLabel, }: DrawerProps): React.JSX.Element;
37
+ /** @deprecated Alias for `Drawer` — the canonical drawer is now the inline
38
+ * variant. Kept for any code still importing `InlineDrawer`. */
39
+ export declare const InlineDrawer: typeof Drawer;
40
+ export type InlineDrawerProps = DrawerProps;
41
+ export declare const DrawerHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
42
+ export declare const DrawerTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
43
+ export declare const DrawerBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
44
+ export declare const DrawerFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
45
+ export {};