@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,56 @@
1
+ "use client";
2
+ import { jsxs as n, jsx as t } from "react/jsx-runtime";
3
+ import { useMessageTiming as a } from "@assistant-ui/react";
4
+ import { Tooltip as i, TooltipTrigger as l, TooltipContent as m } from "../ui/tooltip.js";
5
+ import { cn as d } from "../../lib/cn.js";
6
+ const r = (s) => s === void 0 ? "—" : s < 1e3 ? `${Math.round(s)}ms` : `${(s / 1e3).toFixed(2)}s`, g = ({ className: s, side: o = "right" }) => {
7
+ const e = a();
8
+ return (e == null ? void 0 : e.totalStreamTime) === void 0 ? null : /* @__PURE__ */ n(i, { children: [
9
+ /* @__PURE__ */ t(l, { asChild: !0, children: /* @__PURE__ */ t(
10
+ "button",
11
+ {
12
+ type: "button",
13
+ "data-slot": "message-timing-trigger",
14
+ "aria-label": "Message timing",
15
+ className: d(
16
+ "text-muted-foreground hover:bg-accent hover:text-accent-foreground flex items-center rounded-md p-1 font-mono text-xs tabular-nums transition-colors",
17
+ s
18
+ ),
19
+ children: r(e.totalStreamTime)
20
+ }
21
+ ) }),
22
+ /* @__PURE__ */ t(
23
+ m,
24
+ {
25
+ side: o,
26
+ sideOffset: 8,
27
+ "data-slot": "message-timing-popover",
28
+ className: "bg-popover text-popover-foreground rounded-lg border px-3 py-2 shadow-md [&_span>svg]:hidden!",
29
+ children: /* @__PURE__ */ n("div", { className: "grid min-w-35 gap-1.5 text-xs", children: [
30
+ e.firstTokenTime !== void 0 && /* @__PURE__ */ n("div", { className: "flex items-center justify-between gap-4", children: [
31
+ /* @__PURE__ */ t("span", { className: "text-muted-foreground", children: "First token" }),
32
+ /* @__PURE__ */ t("span", { className: "font-mono tabular-nums", children: r(e.firstTokenTime) })
33
+ ] }),
34
+ /* @__PURE__ */ n("div", { className: "flex items-center justify-between gap-4", children: [
35
+ /* @__PURE__ */ t("span", { className: "text-muted-foreground", children: "Total" }),
36
+ /* @__PURE__ */ t("span", { className: "font-mono tabular-nums", children: r(e.totalStreamTime) })
37
+ ] }),
38
+ e.tokensPerSecond !== void 0 && /* @__PURE__ */ n("div", { className: "flex items-center justify-between gap-4", children: [
39
+ /* @__PURE__ */ t("span", { className: "text-muted-foreground", children: "Speed" }),
40
+ /* @__PURE__ */ n("span", { className: "font-mono tabular-nums", children: [
41
+ e.tokensPerSecond.toFixed(1),
42
+ " tok/s"
43
+ ] })
44
+ ] }),
45
+ /* @__PURE__ */ n("div", { className: "flex items-center justify-between gap-4", children: [
46
+ /* @__PURE__ */ t("span", { className: "text-muted-foreground", children: "Chunks" }),
47
+ /* @__PURE__ */ t("span", { className: "font-mono tabular-nums", children: e.totalChunks })
48
+ ] })
49
+ ] })
50
+ }
51
+ )
52
+ ] });
53
+ };
54
+ export {
55
+ g as MessageTiming
56
+ };
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ export declare const ThreadMessage: FC;
3
+ export declare const AssistantMessage: FC;
4
+ export declare const UserMessage: FC;
@@ -0,0 +1,159 @@
1
+ "use client";
2
+ import { jsxs as s, jsx as t } from "react/jsx-runtime";
3
+ import { UserMessageAttachments as h } from "./attachment.js";
4
+ import { AssistantActionBar as T, UserActionBar as x } from "./action-bar.js";
5
+ import { BranchPicker as d } from "./branch-picker.js";
6
+ import { EditComposer as _ } from "./composer.js";
7
+ import { MessageError as A } from "./error.js";
8
+ import { QuoteBlock as b } from "./quote.js";
9
+ import { Reasoning as v, ReasoningRoot as y, ReasoningTrigger as w, ReasoningContent as R, ReasoningText as N } from "./reasoning.js";
10
+ import { SmartMessageText as C } from "./smart-message-text.js";
11
+ import { ThreadComponentsContext as p } from "./thread-context.js";
12
+ import { ToolFallback as B } from "./tool-fallback.js";
13
+ import { ToolGroupRoot as k, ToolGroupTrigger as G, ToolGroupContent as M } from "./tool-group.js";
14
+ import { cn as c } from "../../lib/cn.js";
15
+ import { MessagePrimitive as n, groupPartByType as I, useAuiState as g } from "@assistant-ui/react";
16
+ import { useContext as f } from "react";
17
+ const Y = () => {
18
+ const { AssistantMessage: a = O } = f(p), i = g((o) => o.message.role);
19
+ return g((o) => o.message.composer.isEditing) ? /* @__PURE__ */ t(_, {}) : i === "user" ? /* @__PURE__ */ t(E, {}) : /* @__PURE__ */ t(a, {});
20
+ }, O = () => {
21
+ const {
22
+ AssistantAvatar: a,
23
+ ToolFallback: i = B,
24
+ ToolGroup: l,
25
+ ReasoningGroup: o,
26
+ ChainOfThoughtGroup: m
27
+ } = f(p);
28
+ return /* @__PURE__ */ s(
29
+ n.Root,
30
+ {
31
+ "data-slot": "aui_assistant-message-root",
32
+ "data-role": "assistant",
33
+ className: c(
34
+ "fade-in slide-in-from-bottom-1 animate-in relative -mb-7.5 pb-7.5 duration-(--duration-fast) [contain-intrinsic-size:auto_200px] [content-visibility:auto]",
35
+ a && "grid grid-cols-[2rem_minmax(0,1fr)] items-start gap-x-2"
36
+ ),
37
+ children: [
38
+ a && /* @__PURE__ */ t(
39
+ "div",
40
+ {
41
+ "data-slot": "aui_assistant-message-avatar",
42
+ className: "col-start-1 row-start-1 mt-0.5 flex size-8 items-center justify-center",
43
+ children: /* @__PURE__ */ t(a, {})
44
+ }
45
+ ),
46
+ /* @__PURE__ */ s(
47
+ "div",
48
+ {
49
+ "data-slot": "aui_assistant-message-content",
50
+ className: c(
51
+ "text-foreground px-2 leading-relaxed wrap-break-word",
52
+ a && "col-start-2 row-start-1"
53
+ ),
54
+ children: [
55
+ /* @__PURE__ */ t(
56
+ n.GroupedParts,
57
+ {
58
+ groupBy: I({
59
+ reasoning: ["group-chainOfThought", "group-reasoning"],
60
+ "tool-call": ["group-chainOfThought", "group-tool"],
61
+ "standalone-tool-call": []
62
+ }),
63
+ children: ({ part: e, children: r }) => {
64
+ switch (e.type) {
65
+ case "group-chainOfThought":
66
+ return m ? /* @__PURE__ */ t(m, { group: e, children: r }) : /* @__PURE__ */ t("div", { "data-slot": "aui_chain-of-thought", children: r });
67
+ case "group-tool":
68
+ return l ? /* @__PURE__ */ t(l, { group: e, children: r }) : /* @__PURE__ */ s(k, { variant: "ghost", children: [
69
+ /* @__PURE__ */ t(
70
+ G,
71
+ {
72
+ count: e.indices.length,
73
+ active: e.status.type === "running"
74
+ }
75
+ ),
76
+ /* @__PURE__ */ t(M, { children: r })
77
+ ] });
78
+ case "group-reasoning": {
79
+ if (o)
80
+ return /* @__PURE__ */ t(o, { group: e, children: r });
81
+ const u = e.status.type === "running";
82
+ return /* @__PURE__ */ s(y, { streaming: u, children: [
83
+ /* @__PURE__ */ t(w, { active: u }),
84
+ /* @__PURE__ */ t(R, { "aria-busy": u, children: /* @__PURE__ */ t(N, { children: r }) })
85
+ ] });
86
+ }
87
+ case "text":
88
+ return /* @__PURE__ */ t(C, {});
89
+ case "reasoning":
90
+ return /* @__PURE__ */ t(v, { ...e });
91
+ case "tool-call":
92
+ return e.toolUI ?? /* @__PURE__ */ t(i, { ...e });
93
+ case "data":
94
+ return e.dataRendererUI;
95
+ case "indicator":
96
+ return /* @__PURE__ */ t(
97
+ "span",
98
+ {
99
+ "data-slot": "aui_assistant-message-indicator",
100
+ className: "animate-pulse font-sans",
101
+ "aria-label": "Assistant is working",
102
+ children: "●"
103
+ }
104
+ );
105
+ default:
106
+ return null;
107
+ }
108
+ }
109
+ }
110
+ ),
111
+ /* @__PURE__ */ t(A, {})
112
+ ]
113
+ }
114
+ ),
115
+ /* @__PURE__ */ s(
116
+ "div",
117
+ {
118
+ "data-slot": "aui_assistant-message-footer",
119
+ className: c(
120
+ "ms-2 flex items-center",
121
+ "min-h-7.5 pt-1.5",
122
+ a && "col-start-2 row-start-2"
123
+ ),
124
+ children: [
125
+ /* @__PURE__ */ t(d, {}),
126
+ /* @__PURE__ */ t(T, {})
127
+ ]
128
+ }
129
+ )
130
+ ]
131
+ }
132
+ );
133
+ }, E = () => /* @__PURE__ */ s(
134
+ n.Root,
135
+ {
136
+ "data-slot": "aui_user-message-root",
137
+ className: "fade-in slide-in-from-bottom-1 animate-in grid auto-rows-auto grid-cols-[minmax(72px,1fr)_auto] content-start gap-y-2 px-2 duration-(--duration-fast) [contain-intrinsic-size:auto_200px] [content-visibility:auto] [&:where(>*)]:col-start-2",
138
+ "data-role": "user",
139
+ children: [
140
+ /* @__PURE__ */ t(h, {}),
141
+ /* @__PURE__ */ s("div", { className: "aui-user-message-content-wrapper relative col-start-2 min-w-0", children: [
142
+ /* @__PURE__ */ t("div", { className: "aui-user-message-content peer bg-muted text-foreground rounded-xl px-4 py-2 wrap-break-word empty:hidden", children: /* @__PURE__ */ t(n.Parts, { components: { Quote: b } }) }),
143
+ /* @__PURE__ */ t("div", { className: "aui-user-action-bar-wrapper absolute start-0 top-1/2 -translate-x-full -translate-y-1/2 pe-2 peer-empty:hidden rtl:translate-x-full", children: /* @__PURE__ */ t(x, {}) })
144
+ ] }),
145
+ /* @__PURE__ */ t(
146
+ d,
147
+ {
148
+ "data-slot": "aui_user-branch-picker",
149
+ className: "col-span-full col-start-1 row-start-3 -me-1 justify-end"
150
+ }
151
+ )
152
+ ]
153
+ }
154
+ );
155
+ export {
156
+ O as AssistantMessage,
157
+ Y as ThreadMessage,
158
+ E as UserMessage
159
+ };
@@ -0,0 +1,2 @@
1
+ export { AssistantRuntimeProvider, AttachmentPrimitive, CompositeAttachmentAdapter, ComposerPrimitive, MessagePrimitive, SelectionToolbarPrimitive, SimpleImageAttachmentAdapter, ThreadPrimitive, makeAssistantToolUI, useAssistantRuntime, useAuiState, useLocalRuntime, } from '@assistant-ui/react';
2
+ export type { ChatModelAdapter, LocalRuntimeOptions, ThreadMessageLike, ToolCallMessagePartProps, } from '@assistant-ui/react';
@@ -0,0 +1,37 @@
1
+ import { ComponentProps, FC } from 'react';
2
+ import { QuoteMessagePartComponent, ComposerPrimitive } from '@assistant-ui/react';
3
+ import { Quote as QuoteIcon } from '../../lib/icons';
4
+ declare function QuoteBlockRoot({ className, ...props }: ComponentProps<"div">): import("react").JSX.Element;
5
+ declare function QuoteBlockIcon({ className, ...props }: ComponentProps<typeof QuoteIcon>): import("react").JSX.Element;
6
+ declare function QuoteBlockText({ className, ...props }: ComponentProps<"p">): import("react").JSX.Element;
7
+ declare const QuoteBlock: QuoteMessagePartComponent & {
8
+ Root: typeof QuoteBlockRoot;
9
+ Icon: typeof QuoteBlockIcon;
10
+ Text: typeof QuoteBlockText;
11
+ };
12
+ declare function ComposerQuotePreviewRoot({ className, ...props }: ComponentProps<typeof ComposerPrimitive.Quote>): import("react").JSX.Element;
13
+ declare function ComposerQuotePreviewIcon({ className, ...props }: ComponentProps<typeof QuoteIcon>): import("react").JSX.Element;
14
+ declare function ComposerQuotePreviewText({ className, ...props }: ComponentProps<typeof ComposerPrimitive.QuoteText>): import("react").JSX.Element;
15
+ declare function ComposerQuotePreviewDismiss({ className, children, ...props }: ComponentProps<typeof ComposerPrimitive.QuoteDismiss>): import("react").JSX.Element;
16
+ /**
17
+ * Quote preview inside the composer. Only renders when a quote is set.
18
+ *
19
+ * Place inside `ComposerPrimitive.Root`.
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * <ComposerPrimitive.Root>
24
+ * <ComposerQuotePreview />
25
+ * <ComposerPrimitive.Input />
26
+ * <ComposerPrimitive.Send />
27
+ * </ComposerPrimitive.Root>
28
+ * ```
29
+ */
30
+ declare const ComposerQuotePreviewImpl: FC<ComponentProps<typeof ComposerQuotePreviewRoot>>;
31
+ declare const ComposerQuotePreview: typeof ComposerQuotePreviewImpl & {
32
+ Root: typeof ComposerQuotePreviewRoot;
33
+ Icon: typeof ComposerQuotePreviewIcon;
34
+ Text: typeof ComposerQuotePreviewText;
35
+ Dismiss: typeof ComposerQuotePreviewDismiss;
36
+ };
37
+ export { QuoteBlock, QuoteBlockRoot, QuoteBlockIcon, QuoteBlockText, ComposerQuotePreview, ComposerQuotePreviewRoot, ComposerQuotePreviewIcon, ComposerQuotePreviewText, ComposerQuotePreviewDismiss, };
@@ -0,0 +1,150 @@
1
+ "use client";
2
+ import { jsxs as u, jsx as t } from "react/jsx-runtime";
3
+ import { memo as n } from "react";
4
+ import { ComposerPrimitive as i } from "@assistant-ui/react";
5
+ import { Quote as a, Close as v } from "../../lib/icons.js";
6
+ import { cn as s } from "../../lib/cn.js";
7
+ function c({ className: e, ...o }) {
8
+ return /* @__PURE__ */ t(
9
+ "div",
10
+ {
11
+ "data-slot": "quote-block",
12
+ className: s("mb-2 flex items-start gap-1.5", e),
13
+ ...o
14
+ }
15
+ );
16
+ }
17
+ function l({
18
+ className: e,
19
+ ...o
20
+ }) {
21
+ return /* @__PURE__ */ t(
22
+ a,
23
+ {
24
+ "data-slot": "quote-block-icon",
25
+ className: s(
26
+ "text-muted-foreground/60 mt-0.5 size-3 shrink-0",
27
+ e
28
+ ),
29
+ ...o
30
+ }
31
+ );
32
+ }
33
+ function d({ className: e, ...o }) {
34
+ return /* @__PURE__ */ t(
35
+ "p",
36
+ {
37
+ "data-slot": "quote-block-text",
38
+ className: s(
39
+ "text-muted-foreground/80 line-clamp-2 min-w-0 text-sm italic",
40
+ e
41
+ ),
42
+ ...o
43
+ }
44
+ );
45
+ }
46
+ const C = ({ text: e }) => /* @__PURE__ */ u(c, { children: [
47
+ /* @__PURE__ */ t(l, {}),
48
+ /* @__PURE__ */ t(d, { children: e })
49
+ ] }), m = n(
50
+ C
51
+ );
52
+ m.displayName = "QuoteBlock";
53
+ m.Root = c;
54
+ m.Icon = l;
55
+ m.Text = d;
56
+ function p({
57
+ className: e,
58
+ ...o
59
+ }) {
60
+ return /* @__PURE__ */ t(
61
+ i.Quote,
62
+ {
63
+ "data-slot": "composer-quote",
64
+ className: s(
65
+ "bg-muted/60 mx-3 mt-2 flex items-start gap-2 rounded-lg px-3 py-2",
66
+ e
67
+ ),
68
+ ...o
69
+ }
70
+ );
71
+ }
72
+ function f({
73
+ className: e,
74
+ ...o
75
+ }) {
76
+ return /* @__PURE__ */ t(
77
+ a,
78
+ {
79
+ "data-slot": "composer-quote-icon",
80
+ className: s(
81
+ "text-muted-foreground/70 mt-0.5 size-3.5 shrink-0",
82
+ e
83
+ ),
84
+ ...o
85
+ }
86
+ );
87
+ }
88
+ function x({
89
+ className: e,
90
+ ...o
91
+ }) {
92
+ return /* @__PURE__ */ t(
93
+ i.QuoteText,
94
+ {
95
+ "data-slot": "composer-quote-text",
96
+ className: s(
97
+ "text-muted-foreground line-clamp-2 min-w-0 flex-1 text-sm",
98
+ e
99
+ ),
100
+ ...o
101
+ }
102
+ );
103
+ }
104
+ function Q({
105
+ className: e,
106
+ children: o,
107
+ ...k
108
+ }) {
109
+ return /* @__PURE__ */ t(
110
+ i.QuoteDismiss,
111
+ {
112
+ "data-slot": "composer-quote-dismiss",
113
+ asChild: !0,
114
+ className: o ? e : void 0,
115
+ ...k,
116
+ children: o ?? /* @__PURE__ */ t(
117
+ "button",
118
+ {
119
+ type: "button",
120
+ "aria-label": "Dismiss quote",
121
+ className: s("shrink-0 rounded-sm p-0.5 text-muted-foreground/70 transition-colors hover:bg-accent hover:text-foreground", e),
122
+ children: /* @__PURE__ */ t(v, { className: "size-3.5" })
123
+ }
124
+ )
125
+ }
126
+ );
127
+ }
128
+ const N = ({ className: e, ...o }) => /* @__PURE__ */ u(p, { className: e, ...o, children: [
129
+ /* @__PURE__ */ t(f, {}),
130
+ /* @__PURE__ */ t(x, {}),
131
+ /* @__PURE__ */ t(Q, {})
132
+ ] }), r = n(
133
+ N
134
+ );
135
+ r.displayName = "ComposerQuotePreview";
136
+ r.Root = p;
137
+ r.Icon = f;
138
+ r.Text = x;
139
+ r.Dismiss = Q;
140
+ export {
141
+ r as ComposerQuotePreview,
142
+ Q as ComposerQuotePreviewDismiss,
143
+ f as ComposerQuotePreviewIcon,
144
+ p as ComposerQuotePreviewRoot,
145
+ x as ComposerQuotePreviewText,
146
+ m as QuoteBlock,
147
+ l as QuoteBlockIcon,
148
+ c as QuoteBlockRoot,
149
+ d as QuoteBlockText
150
+ };
@@ -0,0 +1,44 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { ReasoningMessagePartComponent } from '@assistant-ui/react';
3
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../ui/collapsible';
4
+ declare const reasoningVariants: (props?: ({
5
+ variant?: "muted" | "outline" | "ghost" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ export type ReasoningRootProps = Omit<React.ComponentProps<typeof Collapsible>, "open" | "onOpenChange"> & VariantProps<typeof reasoningVariants> & {
8
+ open?: boolean;
9
+ onOpenChange?: (open: boolean) => void;
10
+ defaultOpen?: boolean;
11
+ /**
12
+ * Whether the reasoning is currently streaming. When provided, it
13
+ * supersedes `defaultOpen`: the disclosure auto-opens while streaming
14
+ * with a bottom-pinned live preview, auto-collapses when streaming
15
+ * ends, and the first manual toggle takes over permanently.
16
+ */
17
+ streaming?: boolean;
18
+ };
19
+ declare function ReasoningRoot({ className, variant, open: controlledOpen, onOpenChange: controlledOnOpenChange, defaultOpen, streaming, children, ...props }: ReasoningRootProps): import("react").JSX.Element;
20
+ declare function ReasoningFade({ side, className, ...props }: React.ComponentProps<"div"> & {
21
+ side?: "top" | "bottom";
22
+ }): import("react").JSX.Element;
23
+ declare function ReasoningTrigger({ active, duration, className, ...props }: React.ComponentProps<typeof CollapsibleTrigger> & {
24
+ active?: boolean;
25
+ duration?: number;
26
+ }): import("react").JSX.Element;
27
+ declare function ReasoningContent({ className, children, ...props }: React.ComponentProps<typeof CollapsibleContent>): import("react").JSX.Element;
28
+ declare function ReasoningText({ className, children, ...props }: React.ComponentProps<"div">): import("react").JSX.Element;
29
+ declare const Reasoning: ReasoningMessagePartComponent & {
30
+ Root: typeof ReasoningRoot;
31
+ Trigger: typeof ReasoningTrigger;
32
+ Content: typeof ReasoningContent;
33
+ Text: typeof ReasoningText;
34
+ Fade: typeof ReasoningFade;
35
+ };
36
+ /**
37
+ * @deprecated This wrapper targets the legacy `components.ReasoningGroup`
38
+ * prop on `<MessagePrimitive.Parts>`. Use `<MessagePrimitive.GroupedParts>`
39
+ * with a `groupBy` returning `"group-reasoning"` and compose `ReasoningRoot`
40
+ * / `ReasoningTrigger` / `ReasoningContent` / `ReasoningText` directly.
41
+ * See `thread.tsx` for an example.
42
+ */
43
+ declare const ReasoningGroup: import('react').NamedExoticComponent<import('@assistant-ui/react').ReasoningGroupProps>;
44
+ export { Reasoning, ReasoningGroup, ReasoningRoot, ReasoningTrigger, ReasoningContent, ReasoningText, ReasoningFade, reasoningVariants, };