@assistant-ui/react 0.7.91 → 0.8.1

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 (304) hide show
  1. package/dist/cloud/auiV0.js.map +1 -1
  2. package/dist/cloud/auiV0.mjs.map +1 -1
  3. package/dist/index.d.ts +0 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -3
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +0 -1
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/internal.d.ts +0 -1
  10. package/dist/internal.d.ts.map +1 -1
  11. package/dist/internal.js +0 -3
  12. package/dist/internal.js.map +1 -1
  13. package/dist/internal.mjs +0 -2
  14. package/dist/internal.mjs.map +1 -1
  15. package/dist/model-context/ModelContextTypes.d.ts +11 -0
  16. package/dist/model-context/ModelContextTypes.d.ts.map +1 -1
  17. package/dist/model-context/ModelContextTypes.js.map +1 -1
  18. package/dist/model-context/ModelContextTypes.mjs.map +1 -1
  19. package/dist/model-context/makeAssistantVisible.d.ts.map +1 -1
  20. package/dist/model-context/makeAssistantVisible.js +4 -2
  21. package/dist/model-context/makeAssistantVisible.js.map +1 -1
  22. package/dist/model-context/makeAssistantVisible.mjs +4 -2
  23. package/dist/model-context/makeAssistantVisible.mjs.map +1 -1
  24. package/dist/primitives/contentPart/index.d.ts +0 -1
  25. package/dist/primitives/contentPart/index.d.ts.map +1 -1
  26. package/dist/primitives/contentPart/index.js +0 -3
  27. package/dist/primitives/contentPart/index.js.map +1 -1
  28. package/dist/primitives/contentPart/index.mjs +0 -2
  29. package/dist/primitives/contentPart/index.mjs.map +1 -1
  30. package/dist/primitives/index.d.ts +0 -1
  31. package/dist/primitives/index.d.ts.map +1 -1
  32. package/dist/primitives/index.js +0 -3
  33. package/dist/primitives/index.js.map +1 -1
  34. package/dist/primitives/index.mjs +0 -2
  35. package/dist/primitives/index.mjs.map +1 -1
  36. package/dist/primitives/message/MessageContent.d.ts +1 -2
  37. package/dist/primitives/message/MessageContent.d.ts.map +1 -1
  38. package/dist/primitives/message/MessageContent.js +2 -7
  39. package/dist/primitives/message/MessageContent.js.map +1 -1
  40. package/dist/primitives/message/MessageContent.mjs +2 -7
  41. package/dist/primitives/message/MessageContent.mjs.map +1 -1
  42. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.d.ts.map +1 -1
  43. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.js +1 -3
  44. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.js.map +1 -1
  45. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.mjs +1 -3
  46. package/dist/runtimes/composer/DefaultEditComposerRuntimeCore.mjs.map +1 -1
  47. package/dist/runtimes/edge/converters/toCoreMessages.d.ts.map +1 -1
  48. package/dist/runtimes/edge/converters/toCoreMessages.js +1 -6
  49. package/dist/runtimes/edge/converters/toCoreMessages.js.map +1 -1
  50. package/dist/runtimes/edge/converters/toCoreMessages.mjs +1 -6
  51. package/dist/runtimes/edge/converters/toCoreMessages.mjs.map +1 -1
  52. package/dist/runtimes/edge/converters/toLanguageModelMessages.js.map +1 -1
  53. package/dist/runtimes/edge/converters/toLanguageModelMessages.mjs.map +1 -1
  54. package/dist/runtimes/external-store/ThreadMessageLike.d.ts +2 -2
  55. package/dist/runtimes/external-store/ThreadMessageLike.d.ts.map +1 -1
  56. package/dist/runtimes/external-store/ThreadMessageLike.js +0 -3
  57. package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
  58. package/dist/runtimes/external-store/ThreadMessageLike.mjs +0 -3
  59. package/dist/runtimes/external-store/ThreadMessageLike.mjs.map +1 -1
  60. package/dist/runtimes/remote-thread-list/adapter/cloud.d.ts.map +1 -1
  61. package/dist/runtimes/remote-thread-list/adapter/cloud.js +1 -7
  62. package/dist/runtimes/remote-thread-list/adapter/cloud.js.map +1 -1
  63. package/dist/runtimes/remote-thread-list/adapter/cloud.mjs +1 -7
  64. package/dist/runtimes/remote-thread-list/adapter/cloud.mjs.map +1 -1
  65. package/dist/types/AssistantTypes.d.ts +3 -7
  66. package/dist/types/AssistantTypes.d.ts.map +1 -1
  67. package/dist/types/AssistantTypes.js.map +1 -1
  68. package/dist/types/ContentPartComponentTypes.d.ts +1 -3
  69. package/dist/types/ContentPartComponentTypes.d.ts.map +1 -1
  70. package/dist/types/ContentPartComponentTypes.js.map +1 -1
  71. package/dist/types/index.d.ts +1 -1
  72. package/dist/types/index.d.ts.map +1 -1
  73. package/dist/types/index.js.map +1 -1
  74. package/package.json +1 -21
  75. package/src/cloud/auiV0.ts +1 -1
  76. package/src/index.ts +0 -1
  77. package/src/internal.ts +0 -1
  78. package/src/model-context/ModelContextTypes.ts +19 -0
  79. package/src/model-context/makeAssistantVisible.tsx +4 -2
  80. package/src/primitives/contentPart/index.ts +0 -1
  81. package/src/primitives/index.ts +0 -1
  82. package/src/primitives/message/MessageContent.tsx +0 -9
  83. package/src/runtimes/composer/DefaultEditComposerRuntimeCore.tsx +1 -3
  84. package/src/runtimes/edge/converters/toCoreMessages.ts +11 -14
  85. package/src/runtimes/edge/converters/toLanguageModelMessages.ts +2 -2
  86. package/src/runtimes/external-store/ThreadMessageLike.tsx +0 -6
  87. package/src/runtimes/remote-thread-list/adapter/cloud.tsx +4 -13
  88. package/src/types/AssistantTypes.ts +4 -9
  89. package/src/types/ContentPartComponentTypes.tsx +0 -4
  90. package/src/types/index.ts +0 -2
  91. package/dist/primitives/contentPart/ContentPartDisplay.d.ts +0 -9
  92. package/dist/primitives/contentPart/ContentPartDisplay.d.ts.map +0 -1
  93. package/dist/primitives/contentPart/ContentPartDisplay.js +0 -37
  94. package/dist/primitives/contentPart/ContentPartDisplay.js.map +0 -1
  95. package/dist/primitives/contentPart/ContentPartDisplay.mjs +0 -13
  96. package/dist/primitives/contentPart/ContentPartDisplay.mjs.map +0 -1
  97. package/dist/primitives/contentPart/useContentPartDisplay.d.ts +0 -8
  98. package/dist/primitives/contentPart/useContentPartDisplay.d.ts.map +0 -1
  99. package/dist/primitives/contentPart/useContentPartDisplay.js +0 -42
  100. package/dist/primitives/contentPart/useContentPartDisplay.js.map +0 -1
  101. package/dist/primitives/contentPart/useContentPartDisplay.mjs +0 -18
  102. package/dist/primitives/contentPart/useContentPartDisplay.mjs.map +0 -1
  103. package/dist/styles/index.css +0 -1261
  104. package/dist/styles/index.css.map +0 -1
  105. package/dist/styles/modal.css +0 -143
  106. package/dist/styles/modal.css.map +0 -1
  107. package/dist/styles/tailwindcss/base-components.css +0 -69
  108. package/dist/styles/tailwindcss/base-components.css.json +0 -48
  109. package/dist/styles/tailwindcss/modal.css +0 -29
  110. package/dist/styles/tailwindcss/modal.css.json +0 -26
  111. package/dist/styles/tailwindcss/thread.css +0 -262
  112. package/dist/styles/tailwindcss/thread.css.json +0 -183
  113. package/dist/styles/themes/default.css +0 -64
  114. package/dist/styles/themes/default.css.json +0 -46
  115. package/dist/styles/themes/shadcn-extras.css +0 -4
  116. package/dist/styles/themes/shadcn-extras.css.json +0 -5
  117. package/dist/tailwindcss/index.d.ts +0 -49
  118. package/dist/tailwindcss/index.d.ts.map +0 -1
  119. package/dist/tailwindcss/index.js +0 -189
  120. package/dist/tailwindcss/index.js.map +0 -1
  121. package/dist/tailwindcss/index.mjs +0 -181
  122. package/dist/tailwindcss/index.mjs.map +0 -1
  123. package/dist/ui/assistant-action-bar.d.ts +0 -24
  124. package/dist/ui/assistant-action-bar.d.ts.map +0 -1
  125. package/dist/ui/assistant-action-bar.js +0 -193
  126. package/dist/ui/assistant-action-bar.js.map +0 -1
  127. package/dist/ui/assistant-action-bar.mjs +0 -181
  128. package/dist/ui/assistant-action-bar.mjs.map +0 -1
  129. package/dist/ui/assistant-message.d.ts +0 -13
  130. package/dist/ui/assistant-message.d.ts.map +0 -1
  131. package/dist/ui/assistant-message.js +0 -107
  132. package/dist/ui/assistant-message.js.map +0 -1
  133. package/dist/ui/assistant-message.mjs +0 -77
  134. package/dist/ui/assistant-message.mjs.map +0 -1
  135. package/dist/ui/assistant-modal.d.ts +0 -23
  136. package/dist/ui/assistant-modal.d.ts.map +0 -1
  137. package/dist/ui/assistant-modal.js +0 -126
  138. package/dist/ui/assistant-modal.js.map +0 -1
  139. package/dist/ui/assistant-modal.mjs +0 -99
  140. package/dist/ui/assistant-modal.mjs.map +0 -1
  141. package/dist/ui/attachment-ui.d.ts +0 -12
  142. package/dist/ui/attachment-ui.d.ts.map +0 -1
  143. package/dist/ui/attachment-ui.js +0 -170
  144. package/dist/ui/attachment-ui.js.map +0 -1
  145. package/dist/ui/attachment-ui.mjs +0 -160
  146. package/dist/ui/attachment-ui.mjs.map +0 -1
  147. package/dist/ui/base/CircleStopIcon.d.ts +0 -3
  148. package/dist/ui/base/CircleStopIcon.d.ts.map +0 -1
  149. package/dist/ui/base/CircleStopIcon.js +0 -45
  150. package/dist/ui/base/CircleStopIcon.js.map +0 -1
  151. package/dist/ui/base/CircleStopIcon.mjs +0 -20
  152. package/dist/ui/base/CircleStopIcon.mjs.map +0 -1
  153. package/dist/ui/base/avatar.d.ts +0 -12
  154. package/dist/ui/base/avatar.d.ts.map +0 -1
  155. package/dist/ui/base/avatar.js +0 -69
  156. package/dist/ui/base/avatar.js.map +0 -1
  157. package/dist/ui/base/avatar.mjs +0 -31
  158. package/dist/ui/base/avatar.mjs.map +0 -1
  159. package/dist/ui/base/button.d.ts +0 -16
  160. package/dist/ui/base/button.d.ts.map +0 -1
  161. package/dist/ui/base/button.js +0 -66
  162. package/dist/ui/base/button.js.map +0 -1
  163. package/dist/ui/base/button.mjs +0 -40
  164. package/dist/ui/base/button.mjs.map +0 -1
  165. package/dist/ui/base/dialog.d.ts +0 -9
  166. package/dist/ui/base/dialog.d.ts.map +0 -1
  167. package/dist/ui/base/dialog.js +0 -80
  168. package/dist/ui/base/dialog.js.map +0 -1
  169. package/dist/ui/base/dialog.mjs +0 -40
  170. package/dist/ui/base/dialog.mjs.map +0 -1
  171. package/dist/ui/base/index.d.ts +0 -6
  172. package/dist/ui/base/index.d.ts.map +0 -1
  173. package/dist/ui/base/index.js +0 -55
  174. package/dist/ui/base/index.js.map +0 -1
  175. package/dist/ui/base/index.mjs +0 -25
  176. package/dist/ui/base/index.mjs.map +0 -1
  177. package/dist/ui/base/tooltip-icon-button.d.ts +0 -17
  178. package/dist/ui/base/tooltip-icon-button.d.ts.map +0 -1
  179. package/dist/ui/base/tooltip-icon-button.js +0 -44
  180. package/dist/ui/base/tooltip-icon-button.js.map +0 -1
  181. package/dist/ui/base/tooltip-icon-button.mjs +0 -19
  182. package/dist/ui/base/tooltip-icon-button.mjs.map +0 -1
  183. package/dist/ui/base/tooltip.d.ts +0 -6
  184. package/dist/ui/base/tooltip.d.ts.map +0 -1
  185. package/dist/ui/base/tooltip.js +0 -57
  186. package/dist/ui/base/tooltip.js.map +0 -1
  187. package/dist/ui/base/tooltip.mjs +0 -20
  188. package/dist/ui/base/tooltip.mjs.map +0 -1
  189. package/dist/ui/branch-picker.d.ts +0 -15
  190. package/dist/ui/branch-picker.d.ts.map +0 -1
  191. package/dist/ui/branch-picker.js +0 -89
  192. package/dist/ui/branch-picker.js.map +0 -1
  193. package/dist/ui/branch-picker.mjs +0 -69
  194. package/dist/ui/branch-picker.mjs.map +0 -1
  195. package/dist/ui/composer.d.ts +0 -25
  196. package/dist/ui/composer.d.ts.map +0 -1
  197. package/dist/ui/composer.js +0 -168
  198. package/dist/ui/composer.js.map +0 -1
  199. package/dist/ui/composer.mjs +0 -138
  200. package/dist/ui/composer.mjs.map +0 -1
  201. package/dist/ui/content-part.d.ts +0 -7
  202. package/dist/ui/content-part.d.ts.map +0 -1
  203. package/dist/ui/content-part.js +0 -61
  204. package/dist/ui/content-part.js.map +0 -1
  205. package/dist/ui/content-part.mjs +0 -27
  206. package/dist/ui/content-part.mjs.map +0 -1
  207. package/dist/ui/edit-composer.d.ts +0 -22
  208. package/dist/ui/edit-composer.d.ts.map +0 -1
  209. package/dist/ui/edit-composer.js +0 -77
  210. package/dist/ui/edit-composer.js.map +0 -1
  211. package/dist/ui/edit-composer.mjs +0 -57
  212. package/dist/ui/edit-composer.mjs.map +0 -1
  213. package/dist/ui/index.d.ts +0 -75
  214. package/dist/ui/index.d.ts.map +0 -1
  215. package/dist/ui/index.js +0 -86
  216. package/dist/ui/index.js.map +0 -1
  217. package/dist/ui/index.mjs +0 -38
  218. package/dist/ui/index.mjs.map +0 -1
  219. package/dist/ui/thread-config.d.ts +0 -162
  220. package/dist/ui/thread-config.d.ts.map +0 -1
  221. package/dist/ui/thread-config.js +0 -63
  222. package/dist/ui/thread-config.js.map +0 -1
  223. package/dist/ui/thread-config.mjs +0 -41
  224. package/dist/ui/thread-config.mjs.map +0 -1
  225. package/dist/ui/thread-list-item.d.ts +0 -13
  226. package/dist/ui/thread-list-item.d.ts.map +0 -1
  227. package/dist/ui/thread-list-item.js +0 -94
  228. package/dist/ui/thread-list-item.js.map +0 -1
  229. package/dist/ui/thread-list-item.mjs +0 -64
  230. package/dist/ui/thread-list-item.mjs.map +0 -1
  231. package/dist/ui/thread-list.d.ts +0 -27
  232. package/dist/ui/thread-list.d.ts.map +0 -1
  233. package/dist/ui/thread-list.js +0 -91
  234. package/dist/ui/thread-list.js.map +0 -1
  235. package/dist/ui/thread-list.mjs +0 -61
  236. package/dist/ui/thread-list.mjs.map +0 -1
  237. package/dist/ui/thread-welcome.d.ts +0 -21
  238. package/dist/ui/thread-welcome.d.ts.map +0 -1
  239. package/dist/ui/thread-welcome.js +0 -101
  240. package/dist/ui/thread-welcome.js.map +0 -1
  241. package/dist/ui/thread-welcome.mjs +0 -81
  242. package/dist/ui/thread-welcome.mjs.map +0 -1
  243. package/dist/ui/thread.d.ts +0 -30
  244. package/dist/ui/thread.d.ts.map +0 -1
  245. package/dist/ui/thread.js +0 -152
  246. package/dist/ui/thread.js.map +0 -1
  247. package/dist/ui/thread.mjs +0 -125
  248. package/dist/ui/thread.mjs.map +0 -1
  249. package/dist/ui/user-action-bar.d.ts +0 -16
  250. package/dist/ui/user-action-bar.d.ts.map +0 -1
  251. package/dist/ui/user-action-bar.js +0 -63
  252. package/dist/ui/user-action-bar.js.map +0 -1
  253. package/dist/ui/user-action-bar.mjs +0 -43
  254. package/dist/ui/user-action-bar.mjs.map +0 -1
  255. package/dist/ui/user-message.d.ts +0 -13
  256. package/dist/ui/user-message.d.ts.map +0 -1
  257. package/dist/ui/user-message.js +0 -96
  258. package/dist/ui/user-message.js.map +0 -1
  259. package/dist/ui/user-message.mjs +0 -65
  260. package/dist/ui/user-message.mjs.map +0 -1
  261. package/dist/ui/utils/withDefaults.d.ts +0 -7
  262. package/dist/ui/utils/withDefaults.d.ts.map +0 -1
  263. package/dist/ui/utils/withDefaults.js +0 -66
  264. package/dist/ui/utils/withDefaults.js.map +0 -1
  265. package/dist/ui/utils/withDefaults.mjs +0 -30
  266. package/dist/ui/utils/withDefaults.mjs.map +0 -1
  267. package/src/primitives/contentPart/ContentPartDisplay.tsx +0 -20
  268. package/src/primitives/contentPart/useContentPartDisplay.tsx +0 -21
  269. package/src/styles/base.css +0 -37
  270. package/src/styles/index.css +0 -4
  271. package/src/styles/modal.css +0 -1
  272. package/src/styles/tailwindcss/base-components.css +0 -69
  273. package/src/styles/tailwindcss/modal.css +0 -29
  274. package/src/styles/tailwindcss/thread.css +0 -262
  275. package/src/styles/themes/default.css +0 -64
  276. package/src/styles/themes/shadcn-extras.css +0 -4
  277. package/src/tailwindcss/index.ts +0 -149
  278. package/src/ui/assistant-action-bar.tsx +0 -301
  279. package/src/ui/assistant-message.tsx +0 -96
  280. package/src/ui/assistant-modal.tsx +0 -146
  281. package/src/ui/attachment-ui.tsx +0 -211
  282. package/src/ui/base/CircleStopIcon.tsx +0 -17
  283. package/src/ui/base/avatar.tsx +0 -41
  284. package/src/ui/base/button.tsx +0 -42
  285. package/src/ui/base/dialog.tsx +0 -113
  286. package/src/ui/base/index.ts +0 -15
  287. package/src/ui/base/tooltip-icon-button.tsx +0 -29
  288. package/src/ui/base/tooltip.tsx +0 -22
  289. package/src/ui/branch-picker.tsx +0 -117
  290. package/src/ui/composer.tsx +0 -210
  291. package/src/ui/content-part.tsx +0 -23
  292. package/src/ui/edit-composer.tsx +0 -98
  293. package/src/ui/index.ts +0 -98
  294. package/src/ui/thread-config.tsx +0 -246
  295. package/src/ui/thread-list-item.tsx +0 -91
  296. package/src/ui/thread-list.tsx +0 -78
  297. package/src/ui/thread-welcome.tsx +0 -140
  298. package/src/ui/thread.tsx +0 -176
  299. package/src/ui/user-action-bar.tsx +0 -66
  300. package/src/ui/user-message.tsx +0 -92
  301. package/src/ui/utils/withDefaults.tsx +0 -35
  302. package/tailwindcss/README.md +0 -1
  303. package/tailwindcss/package-lock.json +0 -6
  304. package/tailwindcss/package.json +0 -5
@@ -1,301 +0,0 @@
1
- "use client";
2
-
3
- import { forwardRef, type FC } from "react";
4
- import {
5
- AudioLinesIcon,
6
- CheckIcon,
7
- CopyIcon,
8
- RefreshCwIcon,
9
- StopCircleIcon,
10
- ThumbsDownIcon,
11
- ThumbsUpIcon,
12
- } from "lucide-react";
13
- import { ActionBarPrimitive, MessagePrimitive } from "../primitives";
14
- import { TooltipIconButton } from "./base/tooltip-icon-button";
15
- import { withDefaults } from "./utils/withDefaults";
16
- import { useThreadConfig } from "./thread-config";
17
- import { useThread } from "../context";
18
-
19
- const useAllowCopy = (ensureCapability = false) => {
20
- const { assistantMessage: { allowCopy = true } = {} } = useThreadConfig();
21
- const copySupported = useThread((t) => t.capabilities.unstable_copy);
22
- return allowCopy && (!ensureCapability || copySupported);
23
- };
24
-
25
- const useAllowSpeak = (ensureCapability = false) => {
26
- const { assistantMessage: { allowSpeak = true } = {} } = useThreadConfig();
27
- const speechSupported = useThread((t) => t.capabilities.speech);
28
- return allowSpeak && (!ensureCapability || speechSupported);
29
- };
30
-
31
- const useAllowReload = (ensureCapability = false) => {
32
- const { assistantMessage: { allowReload = true } = {} } = useThreadConfig();
33
- const reloadSupported = useThread((t) => t.capabilities.reload);
34
- return allowReload && (!ensureCapability || reloadSupported);
35
- };
36
-
37
- const useAllowFeedbackPositive = (ensureCapability = false) => {
38
- const { assistantMessage: { allowFeedbackPositive = true } = {} } =
39
- useThreadConfig();
40
- const feedbackSupported = useThread((t) => t.capabilities.feedback);
41
- return allowFeedbackPositive && (!ensureCapability || feedbackSupported);
42
- };
43
-
44
- const useAllowFeedbackNegative = (ensureCapability = false) => {
45
- const { assistantMessage: { allowFeedbackNegative = true } = {} } =
46
- useThreadConfig();
47
- const feedbackSupported = useThread((t) => t.capabilities.feedback);
48
- return allowFeedbackNegative && (!ensureCapability || feedbackSupported);
49
- };
50
-
51
- const AssistantActionBar: FC = () => {
52
- const allowCopy = useAllowCopy(true);
53
- const allowReload = useAllowReload(true);
54
- const allowSpeak = useAllowSpeak(true);
55
- const allowFeedbackPositive = useAllowFeedbackPositive(true);
56
- const allowFeedbackNegative = useAllowFeedbackNegative(true);
57
- if (
58
- !allowCopy &&
59
- !allowReload &&
60
- !allowSpeak &&
61
- !allowFeedbackPositive &&
62
- !allowFeedbackNegative
63
- )
64
- return null;
65
-
66
- return (
67
- <AssistantActionBarRoot
68
- hideWhenRunning
69
- autohide="not-last"
70
- autohideFloat="single-branch"
71
- >
72
- {allowSpeak && <AssistantActionBarSpeechControl />}
73
- {allowCopy && <AssistantActionBarCopy />}
74
- {allowReload && <AssistantActionBarReload />}
75
- {allowFeedbackPositive && <AssistantActionBarFeedbackPositive />}
76
- {allowFeedbackNegative && <AssistantActionBarFeedbackNegative />}
77
- </AssistantActionBarRoot>
78
- );
79
- };
80
-
81
- AssistantActionBar.displayName = "AssistantActionBar";
82
-
83
- const AssistantActionBarRoot = withDefaults(ActionBarPrimitive.Root, {
84
- className: "aui-assistant-action-bar-root",
85
- });
86
-
87
- AssistantActionBarRoot.displayName = "AssistantActionBarRoot";
88
-
89
- namespace AssistantActionBarCopy {
90
- export type Element = ActionBarPrimitive.Copy.Element;
91
- export type Props = Partial<TooltipIconButton.Props> & {
92
- copiedDuration?: number | undefined;
93
- };
94
- }
95
-
96
- const AssistantActionBarCopy = forwardRef<
97
- AssistantActionBarCopy.Element,
98
- AssistantActionBarCopy.Props
99
- >(({ copiedDuration, ...props }, ref) => {
100
- const {
101
- strings: {
102
- assistantMessage: { copy: { tooltip = "Copy" } = {} } = {},
103
- } = {},
104
- } = useThreadConfig();
105
-
106
- return (
107
- <ActionBarPrimitive.Copy copiedDuration={copiedDuration} asChild>
108
- <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>
109
- {props.children ?? (
110
- <>
111
- <MessagePrimitive.If copied>
112
- <CheckIcon />
113
- </MessagePrimitive.If>
114
- <MessagePrimitive.If copied={false}>
115
- <CopyIcon />
116
- </MessagePrimitive.If>
117
- </>
118
- )}
119
- </TooltipIconButton>
120
- </ActionBarPrimitive.Copy>
121
- );
122
- });
123
-
124
- AssistantActionBarCopy.displayName = "AssistantActionBarCopy";
125
-
126
- const AssistantActionBarSpeechControl: FC = () => {
127
- return (
128
- <>
129
- <MessagePrimitive.If speaking={false}>
130
- <AssistantActionBarSpeak />
131
- </MessagePrimitive.If>
132
- <MessagePrimitive.If speaking>
133
- <AssistantActionBarStopSpeaking />
134
- </MessagePrimitive.If>
135
- </>
136
- );
137
- };
138
-
139
- namespace AssistantActionBarSpeak {
140
- export type Element = ActionBarPrimitive.Speak.Element;
141
- export type Props = Partial<TooltipIconButton.Props>;
142
- }
143
-
144
- const AssistantActionBarSpeak = forwardRef<
145
- AssistantActionBarSpeak.Element,
146
- AssistantActionBarSpeak.Props
147
- >((props, ref) => {
148
- const {
149
- strings: {
150
- assistantMessage: { speak: { tooltip = "Read aloud" } = {} } = {},
151
- } = {},
152
- } = useThreadConfig();
153
- const allowSpeak = useAllowSpeak();
154
-
155
- return (
156
- <ActionBarPrimitive.Speak disabled={!allowSpeak} asChild>
157
- <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>
158
- {props.children ?? <AudioLinesIcon />}
159
- </TooltipIconButton>
160
- </ActionBarPrimitive.Speak>
161
- );
162
- });
163
-
164
- AssistantActionBarSpeak.displayName = "AssistantActionBarSpeak";
165
-
166
- namespace AssistantActionBarStopSpeaking {
167
- export type Element = ActionBarPrimitive.StopSpeaking.Element;
168
- export type Props = Partial<TooltipIconButton.Props>;
169
- }
170
-
171
- const AssistantActionBarStopSpeaking = forwardRef<
172
- AssistantActionBarStopSpeaking.Element,
173
- AssistantActionBarStopSpeaking.Props
174
- >((props, ref) => {
175
- const {
176
- strings: {
177
- assistantMessage: {
178
- speak: { stop: { tooltip: stopTooltip = "Stop" } = {} } = {},
179
- } = {},
180
- } = {},
181
- } = useThreadConfig();
182
- const allowSpeak = useAllowSpeak();
183
-
184
- return (
185
- <ActionBarPrimitive.StopSpeaking disabled={!allowSpeak} asChild>
186
- <TooltipIconButton tooltip={stopTooltip} {...props} ref={ref}>
187
- {props.children ?? <StopCircleIcon />}
188
- </TooltipIconButton>
189
- </ActionBarPrimitive.StopSpeaking>
190
- );
191
- });
192
-
193
- AssistantActionBarStopSpeaking.displayName = "AssistantActionBarStopSpeaking";
194
-
195
- namespace AssistantActionBarReload {
196
- export type Element = ActionBarPrimitive.Reload.Element;
197
- export type Props = Partial<TooltipIconButton.Props>;
198
- }
199
-
200
- const AssistantActionBarReload = forwardRef<
201
- AssistantActionBarReload.Element,
202
- AssistantActionBarReload.Props
203
- >((props, ref) => {
204
- const {
205
- strings: {
206
- assistantMessage: { reload: { tooltip = "Refresh" } = {} } = {},
207
- } = {},
208
- } = useThreadConfig();
209
- const allowReload = useAllowReload();
210
- return (
211
- <ActionBarPrimitive.Reload disabled={!allowReload} asChild>
212
- <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>
213
- {props.children ?? <RefreshCwIcon />}
214
- </TooltipIconButton>
215
- </ActionBarPrimitive.Reload>
216
- );
217
- });
218
-
219
- AssistantActionBarReload.displayName = "AssistantActionBarReload";
220
-
221
- namespace AssistantActionBarFeedbackPositive {
222
- export type Element = ActionBarPrimitive.FeedbackPositive.Element;
223
- export type Props = Partial<TooltipIconButton.Props>;
224
- }
225
-
226
- const AssistantActionBarFeedbackPositive = forwardRef<
227
- AssistantActionBarFeedbackPositive.Element,
228
- AssistantActionBarFeedbackPositive.Props
229
- >((props, ref) => {
230
- const {
231
- strings: {
232
- assistantMessage: {
233
- feedback: { positive: { tooltip = "Good response" } = {} } = {},
234
- } = {},
235
- } = {},
236
- } = useThreadConfig();
237
- const allowFeedbackPositive = useAllowFeedbackPositive();
238
- return (
239
- <ActionBarPrimitive.FeedbackPositive
240
- disabled={!allowFeedbackPositive}
241
- className="aui-assistant-action-bar-feedback-positive"
242
- asChild
243
- >
244
- <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>
245
- {props.children ?? <ThumbsUpIcon />}
246
- </TooltipIconButton>
247
- </ActionBarPrimitive.FeedbackPositive>
248
- );
249
- });
250
-
251
- AssistantActionBarFeedbackPositive.displayName =
252
- "AssistantActionBarFeedbackPositive";
253
-
254
- namespace AssistantActionBarFeedbackNegative {
255
- export type Element = ActionBarPrimitive.FeedbackNegative.Element;
256
- export type Props = Partial<TooltipIconButton.Props>;
257
- }
258
-
259
- const AssistantActionBarFeedbackNegative = forwardRef<
260
- AssistantActionBarFeedbackNegative.Element,
261
- AssistantActionBarFeedbackNegative.Props
262
- >((props, ref) => {
263
- const {
264
- strings: {
265
- assistantMessage: {
266
- feedback: { negative: { tooltip = "Bad response" } = {} } = {},
267
- } = {},
268
- } = {},
269
- } = useThreadConfig();
270
- const allowFeedbackNegative = useAllowFeedbackNegative();
271
- return (
272
- <ActionBarPrimitive.FeedbackNegative
273
- disabled={!allowFeedbackNegative}
274
- className="aui-assistant-action-bar-feedback-negative"
275
- asChild
276
- >
277
- <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>
278
- {props.children ?? <ThumbsDownIcon />}
279
- </TooltipIconButton>
280
- </ActionBarPrimitive.FeedbackNegative>
281
- );
282
- });
283
-
284
- AssistantActionBarFeedbackNegative.displayName =
285
- "AssistantActionBarFeedbackNegative";
286
-
287
- const exports = {
288
- Root: AssistantActionBarRoot,
289
- Reload: AssistantActionBarReload,
290
- Copy: AssistantActionBarCopy,
291
- Speak: AssistantActionBarSpeak,
292
- StopSpeaking: AssistantActionBarStopSpeaking,
293
- SpeechControl: AssistantActionBarSpeechControl,
294
- FeedbackPositive: AssistantActionBarFeedbackPositive,
295
- FeedbackNegative: AssistantActionBarFeedbackNegative,
296
- };
297
-
298
- export default Object.assign(
299
- AssistantActionBar,
300
- exports,
301
- ) as typeof AssistantActionBar & typeof exports;
@@ -1,96 +0,0 @@
1
- "use client";
2
-
3
- import { ComponentPropsWithoutRef, forwardRef, useMemo, type FC } from "react";
4
- import { MessagePrimitive } from "../primitives";
5
- import BranchPicker from "./branch-picker";
6
- import { Avatar } from "./base/avatar";
7
- import { withDefaults } from "./utils/withDefaults";
8
- import { useThreadConfig } from "./thread-config";
9
- import AssistantActionBar from "./assistant-action-bar";
10
- import ContentPart from "./content-part";
11
-
12
- const AssistantMessage: FC = () => {
13
- return (
14
- <AssistantMessageRoot>
15
- <AssistantMessageAvatar />
16
- <AssistantMessageContent />
17
- <BranchPicker />
18
- <AssistantActionBar />
19
- </AssistantMessageRoot>
20
- );
21
- };
22
-
23
- AssistantMessage.displayName = "AssistantMessage";
24
-
25
- const AssistantMessageAvatar: FC = () => {
26
- const { assistantAvatar: avatar = { fallback: "A" } } = useThreadConfig();
27
- return <Avatar {...avatar} />;
28
- };
29
-
30
- const AssistantMessageRoot = withDefaults(MessagePrimitive.Root, {
31
- className: "aui-assistant-message-root",
32
- });
33
-
34
- AssistantMessageRoot.displayName = "AssistantMessageRoot";
35
-
36
- const AssistantMessageContentWrapper = withDefaults("div", {
37
- className: "aui-assistant-message-content",
38
- });
39
-
40
- namespace AssistantMessageContent {
41
- export type Element = HTMLDivElement;
42
- export type Props = MessagePrimitive.Content.Props &
43
- ComponentPropsWithoutRef<"div">;
44
- }
45
-
46
- const AssistantMessageContent = forwardRef<
47
- AssistantMessageContent.Element,
48
- AssistantMessageContent.Props
49
- >(({ components: componentsProp, ...rest }, ref) => {
50
- const { tools, assistantMessage: { components = {} } = {} } =
51
- useThreadConfig();
52
-
53
- const toolsComponents = useMemo(
54
- () => ({
55
- by_name: !tools
56
- ? undefined
57
- : Object.fromEntries(
58
- tools.map((t) => [
59
- t.unstable_tool.toolName,
60
- t.unstable_tool.render,
61
- ]),
62
- ),
63
- Fallback: components.ToolFallback,
64
- }),
65
- // eslint-disable-next-line react-hooks/exhaustive-deps
66
- [...(tools ?? []), components.ToolFallback],
67
- );
68
- const Footer = components.Footer;
69
-
70
- return (
71
- <AssistantMessageContentWrapper {...rest} ref={ref}>
72
- <MessagePrimitive.Content
73
- components={{
74
- ...componentsProp,
75
- Text: componentsProp?.Text ?? components.Text ?? ContentPart.Text,
76
- Empty: componentsProp?.Empty ?? components.Empty,
77
- tools: toolsComponents,
78
- }}
79
- />
80
- {Footer && <Footer />}
81
- </AssistantMessageContentWrapper>
82
- );
83
- });
84
-
85
- AssistantMessageContent.displayName = "AssistantMessageContent";
86
-
87
- const exports = {
88
- Root: AssistantMessageRoot,
89
- Avatar: AssistantMessageAvatar,
90
- Content: AssistantMessageContent,
91
- };
92
-
93
- export default Object.assign(
94
- AssistantMessage,
95
- exports,
96
- ) as typeof AssistantMessage & typeof exports;
@@ -1,146 +0,0 @@
1
- "use client";
2
-
3
- import { type FC, forwardRef } from "react";
4
- import { BotIcon, ChevronDownIcon } from "lucide-react";
5
-
6
- import { AssistantModalPrimitive } from "../primitives";
7
- import Thread from "./thread";
8
- import { withDefaults } from "./utils/withDefaults";
9
- import { TooltipIconButton } from "./base/tooltip-icon-button";
10
- import {
11
- ThreadConfig,
12
- ThreadConfigProvider,
13
- ThreadConfigProviderProps,
14
- useThreadConfig,
15
- } from "./thread-config";
16
-
17
- const AssistantModal: FC<ThreadConfig> = (config) => {
18
- return (
19
- <AssistantModalRoot config={config}>
20
- <AssistantModalTrigger />
21
- <AssistantModalContent>
22
- <Thread />
23
- </AssistantModalContent>
24
- </AssistantModalRoot>
25
- );
26
- };
27
-
28
- AssistantModal.displayName = "AssistantModal";
29
-
30
- namespace AssistantModalRoot {
31
- export type Props = AssistantModalPrimitive.Root.Props &
32
- ThreadConfigProviderProps;
33
- }
34
-
35
- const AssistantModalRoot: FC<AssistantModalRoot.Props> = ({
36
- config,
37
- ...props
38
- }) => {
39
- return (
40
- <ThreadConfigProvider config={config}>
41
- <AssistantModalPrimitive.Root {...props} />
42
- </ThreadConfigProvider>
43
- );
44
- };
45
-
46
- AssistantModalRoot.displayName = "AssistantModalRoot";
47
-
48
- namespace AssistantModalTrigger {
49
- export type Element = HTMLButtonElement;
50
- export type Props = Partial<TooltipIconButton.Props>;
51
- }
52
-
53
- const AssistantModalTrigger = forwardRef<
54
- AssistantModalTrigger.Element,
55
- AssistantModalTrigger.Props
56
- >((props, ref) => {
57
- return (
58
- <AssistantModalAnchor>
59
- <AssistantModalPrimitive.Trigger asChild>
60
- <AssistantModalButton {...props} ref={ref} />
61
- </AssistantModalPrimitive.Trigger>
62
- </AssistantModalAnchor>
63
- );
64
- });
65
-
66
- AssistantModalTrigger.displayName = "AssistantModalTrigger";
67
-
68
- const AssistantModalAnchor = withDefaults(AssistantModalPrimitive.Anchor, {
69
- className: "aui-root aui-modal-anchor",
70
- });
71
-
72
- AssistantModalAnchor.displayName = "AssistantModalAnchor";
73
-
74
- const ModalButtonStyled = withDefaults(TooltipIconButton, {
75
- variant: "default",
76
- className: "aui-modal-button",
77
- });
78
-
79
- namespace AssistantModalButton {
80
- export type Element = HTMLButtonElement;
81
- export type Props = Partial<TooltipIconButton.Props> & {
82
- "data-state"?: "open" | "closed";
83
- };
84
- }
85
-
86
- const AssistantModalButton = forwardRef<
87
- AssistantModalButton.Element,
88
- AssistantModalButton.Props
89
- >(({ "data-state": state, ...rest }, ref) => {
90
- const {
91
- strings: {
92
- assistantModal: {
93
- open: {
94
- button: { tooltip: openTooltip = "Close Assistant" } = {},
95
- } = {},
96
- closed: {
97
- button: { tooltip: closedTooltip = "Open Assistant" } = {},
98
- } = {},
99
- } = {},
100
- } = {},
101
- } = useThreadConfig();
102
- const tooltip = state === "open" ? openTooltip : closedTooltip;
103
-
104
- return (
105
- <ModalButtonStyled
106
- side="left"
107
- tooltip={tooltip}
108
- data-state={state}
109
- {...rest}
110
- ref={ref}
111
- >
112
- {rest.children ?? (
113
- <>
114
- <BotIcon
115
- data-state={state}
116
- className="aui-modal-button-closed-icon"
117
- />
118
- <ChevronDownIcon
119
- data-state={state}
120
- className="aui-modal-button-open-icon"
121
- />
122
- </>
123
- )}
124
- </ModalButtonStyled>
125
- );
126
- });
127
-
128
- AssistantModalButton.displayName = "AssistantModalButton";
129
-
130
- const AssistantModalContent = withDefaults(AssistantModalPrimitive.Content, {
131
- className: "aui-root aui-modal-content",
132
- sideOffset: 16,
133
- });
134
-
135
- AssistantModalContent.displayName = "AssistantModalContent";
136
-
137
- const exports = {
138
- Root: AssistantModalRoot,
139
- Trigger: AssistantModalTrigger,
140
- Content: AssistantModalContent,
141
- Button: AssistantModalButton,
142
- Anchor: AssistantModalAnchor,
143
- };
144
-
145
- export default Object.assign(AssistantModal, exports) as typeof AssistantModal &
146
- typeof exports;