@nadicodeai/ui 0.21.0 → 0.22.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 (293) hide show
  1. package/AGENTS.md +2 -3
  2. package/README.md +14 -21
  3. package/dist/agents.d.ts +10 -0
  4. package/dist/agents.d.ts.map +1 -0
  5. package/dist/agents.js +9 -0
  6. package/dist/components/badge.d.ts +1 -1
  7. package/dist/components/button.d.ts +1 -1
  8. package/dist/components/use-case-bento.d.ts +2 -4
  9. package/dist/components/use-case-bento.d.ts.map +1 -1
  10. package/dist/components/use-case-bento.js +2 -3
  11. package/dist/hooks/index.d.ts +0 -1
  12. package/dist/hooks/index.d.ts.map +1 -1
  13. package/dist/hooks/index.js +0 -1
  14. package/dist/index.d.ts +0 -16
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +0 -16
  17. package/dist/internal/assistant-ui/attachment.d.ts +5 -0
  18. package/dist/internal/assistant-ui/attachment.d.ts.map +1 -0
  19. package/dist/internal/assistant-ui/attachment.js +93 -0
  20. package/dist/internal/assistant-ui/follow-up-suggestions.d.ts +3 -0
  21. package/dist/internal/assistant-ui/follow-up-suggestions.d.ts.map +1 -0
  22. package/dist/internal/assistant-ui/follow-up-suggestions.js +8 -0
  23. package/dist/internal/assistant-ui/markdown-text.d.ts +2 -0
  24. package/dist/internal/assistant-ui/markdown-text.d.ts.map +1 -0
  25. package/dist/internal/assistant-ui/markdown-text.js +54 -0
  26. package/dist/internal/assistant-ui/reasoning.d.ts +31 -0
  27. package/dist/internal/assistant-ui/reasoning.d.ts.map +1 -0
  28. package/dist/internal/assistant-ui/reasoning.js +118 -0
  29. package/dist/internal/assistant-ui/thread.d.ts +26 -0
  30. package/dist/internal/assistant-ui/thread.d.ts.map +1 -0
  31. package/dist/internal/assistant-ui/thread.js +118 -0
  32. package/dist/internal/assistant-ui/tool-fallback.d.ts +10 -0
  33. package/dist/internal/assistant-ui/tool-fallback.d.ts.map +1 -0
  34. package/dist/internal/assistant-ui/tool-fallback.js +163 -0
  35. package/dist/internal/assistant-ui/tool-group.d.ts +18 -0
  36. package/dist/internal/assistant-ui/tool-group.d.ts.map +1 -0
  37. package/dist/internal/assistant-ui/tool-group.js +44 -0
  38. package/dist/internal/assistant-ui/tooltip-icon-button.d.ts +8 -0
  39. package/dist/internal/assistant-ui/tooltip-icon-button.d.ts.map +1 -0
  40. package/dist/internal/assistant-ui/tooltip-icon-button.js +10 -0
  41. package/dist/styles/globals.css +3 -209
  42. package/docs/agents/nadicodeai-ui.md +4 -6
  43. package/docs/component-classification.md +1 -1
  44. package/docs/consuming-cross-repo.md +9 -3
  45. package/docs/contract.md +6 -6
  46. package/docs/migration/base-ui-migration.md +0 -11
  47. package/docs/product-compositions.md +1 -1
  48. package/llms.txt +5 -6
  49. package/package.json +10 -28
  50. package/skills/nadicodeai-ui/SKILL.md +5 -7
  51. package/dist/ai-elements.d.ts +0 -49
  52. package/dist/ai-elements.d.ts.map +0 -1
  53. package/dist/ai-elements.js +0 -48
  54. package/dist/components/agent-avatar.d.ts +0 -7
  55. package/dist/components/agent-avatar.d.ts.map +0 -1
  56. package/dist/components/agent-avatar.js +0 -6
  57. package/dist/components/agent-chat.d.ts +0 -20
  58. package/dist/components/agent-chat.d.ts.map +0 -1
  59. package/dist/components/agent-chat.js +0 -10
  60. package/dist/components/agent-composer.d.ts +0 -56
  61. package/dist/components/agent-composer.d.ts.map +0 -1
  62. package/dist/components/agent-composer.js +0 -56
  63. package/dist/components/agent-message.d.ts +0 -117
  64. package/dist/components/agent-message.d.ts.map +0 -1
  65. package/dist/components/agent-message.js +0 -99
  66. package/dist/components/agent-thread.d.ts +0 -26
  67. package/dist/components/agent-thread.d.ts.map +0 -1
  68. package/dist/components/agent-thread.js +0 -63
  69. package/dist/components/agent-tool-approval.d.ts +0 -27
  70. package/dist/components/agent-tool-approval.d.ts.map +0 -1
  71. package/dist/components/agent-tool-approval.js +0 -43
  72. package/dist/components/ai-elements/agent.d.ts +0 -27
  73. package/dist/components/ai-elements/agent.d.ts.map +0 -1
  74. package/dist/components/ai-elements/agent.js +0 -25
  75. package/dist/components/ai-elements/artifact.d.ts +0 -24
  76. package/dist/components/ai-elements/artifact.d.ts.map +0 -1
  77. package/dist/components/ai-elements/artifact.js +0 -20
  78. package/dist/components/ai-elements/attachments.d.ts +0 -55
  79. package/dist/components/ai-elements/attachments.d.ts.map +0 -1
  80. package/dist/components/ai-elements/attachments.js +0 -125
  81. package/dist/components/ai-elements/audio-player.d.ts +0 -30
  82. package/dist/components/ai-elements/audio-player.d.ts.map +0 -1
  83. package/dist/components/ai-elements/audio-player.js +0 -41
  84. package/dist/components/ai-elements/canvas.d.ts +0 -8
  85. package/dist/components/ai-elements/canvas.d.ts.map +0 -1
  86. package/dist/components/ai-elements/canvas.js +0 -5
  87. package/dist/components/ai-elements/chain-of-thought.d.ts +0 -30
  88. package/dist/components/ai-elements/chain-of-thought.d.ts.map +0 -1
  89. package/dist/components/ai-elements/chain-of-thought.js +0 -49
  90. package/dist/components/ai-elements/checkpoint.d.ts +0 -12
  91. package/dist/components/ai-elements/checkpoint.d.ts.map +0 -1
  92. package/dist/components/ai-elements/checkpoint.js +0 -10
  93. package/dist/components/ai-elements/code-block.d.ts +0 -53
  94. package/dist/components/ai-elements/code-block.d.ts.map +0 -1
  95. package/dist/components/ai-elements/code-block.js +0 -239
  96. package/dist/components/ai-elements/commit.d.ts +0 -65
  97. package/dist/components/ai-elements/commit.d.ts.map +0 -1
  98. package/dist/components/ai-elements/commit.js +0 -83
  99. package/dist/components/ai-elements/confirmation.d.ts +0 -50
  100. package/dist/components/ai-elements/confirmation.d.ts.map +0 -1
  101. package/dist/components/ai-elements/confirmation.js +0 -57
  102. package/dist/components/ai-elements/connection.d.ts +0 -6
  103. package/dist/components/ai-elements/connection.d.ts.map +0 -1
  104. package/dist/components/ai-elements/connection.js +0 -10
  105. package/dist/components/ai-elements/context.d.ts +0 -33
  106. package/dist/components/ai-elements/context.d.ts.map +0 -1
  107. package/dist/components/ai-elements/context.js +0 -147
  108. package/dist/components/ai-elements/controls.d.ts +0 -5
  109. package/dist/components/ai-elements/controls.d.ts.map +0 -1
  110. package/dist/components/ai-elements/controls.js +0 -5
  111. package/dist/components/ai-elements/conversation.d.ts +0 -24
  112. package/dist/components/ai-elements/conversation.d.ts.map +0 -1
  113. package/dist/components/ai-elements/conversation.js +0 -41
  114. package/dist/components/ai-elements/edge.d.ts +0 -6
  115. package/dist/components/ai-elements/edge.d.ts.map +0 -1
  116. package/dist/components/ai-elements/edge.js +0 -88
  117. package/dist/components/ai-elements/environment-variables.d.ts +0 -39
  118. package/dist/components/ai-elements/environment-variables.d.ts.map +0 -1
  119. package/dist/components/ai-elements/environment-variables.js +0 -60
  120. package/dist/components/ai-elements/file-tree.d.ts +0 -27
  121. package/dist/components/ai-elements/file-tree.d.ts.map +0 -1
  122. package/dist/components/ai-elements/file-tree.js +0 -73
  123. package/dist/components/ai-elements/image.d.ts +0 -7
  124. package/dist/components/ai-elements/image.d.ts.map +0 -1
  125. package/dist/components/ai-elements/image.js +0 -3
  126. package/dist/components/ai-elements/inline-citation.d.ts +0 -39
  127. package/dist/components/ai-elements/inline-citation.d.ts.map +0 -1
  128. package/dist/components/ai-elements/inline-citation.js +0 -86
  129. package/dist/components/ai-elements/jsx-preview.d.ts +0 -30
  130. package/dist/components/ai-elements/jsx-preview.d.ts.map +0 -1
  131. package/dist/components/ai-elements/jsx-preview.js +0 -159
  132. package/dist/components/ai-elements/message.d.ts +0 -38
  133. package/dist/components/ai-elements/message.d.ts.map +0 -1
  134. package/dist/components/ai-elements/message.js +0 -91
  135. package/dist/components/ai-elements/mic-selector.d.ts +0 -46
  136. package/dist/components/ai-elements/mic-selector.d.ts.map +0 -1
  137. package/dist/components/ai-elements/mic-selector.js +0 -180
  138. package/dist/components/ai-elements/model-selector.d.ts +0 -36
  139. package/dist/components/ai-elements/model-selector.d.ts.map +0 -1
  140. package/dist/components/ai-elements/model-selector.js +0 -18
  141. package/dist/components/ai-elements/node.d.ts +0 -22
  142. package/dist/components/ai-elements/node.d.ts.map +0 -1
  143. package/dist/components/ai-elements/node.js +0 -12
  144. package/dist/components/ai-elements/open-in-chat.d.ts +0 -27
  145. package/dist/components/ai-elements/open-in-chat.d.ts.map +0 -1
  146. package/dist/components/ai-elements/open-in-chat.js +0 -81
  147. package/dist/components/ai-elements/package-info.d.ts +0 -30
  148. package/dist/components/ai-elements/package-info.d.ts.map +0 -1
  149. package/dist/components/ai-elements/package-info.js +0 -50
  150. package/dist/components/ai-elements/panel.d.ts +0 -6
  151. package/dist/components/ai-elements/panel.d.ts.map +0 -1
  152. package/dist/components/ai-elements/panel.js +0 -5
  153. package/dist/components/ai-elements/persona.d.ts +0 -49
  154. package/dist/components/ai-elements/persona.d.ts.map +0 -1
  155. package/dist/components/ai-elements/persona.js +0 -175
  156. package/dist/components/ai-elements/plan.d.ts +0 -27
  157. package/dist/components/ai-elements/plan.d.ts.map +0 -1
  158. package/dist/components/ai-elements/plan.js +0 -34
  159. package/dist/components/ai-elements/prompt-input.d.ts +0 -149
  160. package/dist/components/ai-elements/prompt-input.d.ts.map +0 -1
  161. package/dist/components/ai-elements/prompt-input.js +0 -704
  162. package/dist/components/ai-elements/queue.d.ts +0 -62
  163. package/dist/components/ai-elements/queue.d.ts.map +0 -1
  164. package/dist/components/ai-elements/queue.js +0 -24
  165. package/dist/components/ai-elements/reasoning.d.ts +0 -27
  166. package/dist/components/ai-elements/reasoning.d.ts.map +0 -1
  167. package/dist/components/ai-elements/reasoning.js +0 -92
  168. package/dist/components/ai-elements/sandbox.d.ts +0 -25
  169. package/dist/components/ai-elements/sandbox.d.ts.map +0 -1
  170. package/dist/components/ai-elements/sandbox.js +0 -15
  171. package/dist/components/ai-elements/schema-display.d.ts +0 -56
  172. package/dist/components/ai-elements/schema-display.d.ts.map +0 -1
  173. package/dist/components/ai-elements/schema-display.js +0 -90
  174. package/dist/components/ai-elements/shimmer.d.ts +0 -10
  175. package/dist/components/ai-elements/shimmer.d.ts.map +0 -1
  176. package/dist/components/ai-elements/shimmer.js +0 -11
  177. package/dist/components/ai-elements/snippet.d.ts +0 -19
  178. package/dist/components/ai-elements/snippet.d.ts.map +0 -1
  179. package/dist/components/ai-elements/snippet.js +0 -32
  180. package/dist/components/ai-elements/sources.d.ts +0 -13
  181. package/dist/components/ai-elements/sources.d.ts.map +0 -1
  182. package/dist/components/ai-elements/sources.js +0 -9
  183. package/dist/components/ai-elements/speech-input.d.ts +0 -55
  184. package/dist/components/ai-elements/speech-input.d.ts.map +0 -1
  185. package/dist/components/ai-elements/speech-input.js +0 -187
  186. package/dist/components/ai-elements/stack-trace.d.ts +0 -38
  187. package/dist/components/ai-elements/stack-trace.d.ts.map +0 -1
  188. package/dist/components/ai-elements/stack-trace.js +0 -181
  189. package/dist/components/ai-elements/suggestion.d.ts +0 -11
  190. package/dist/components/ai-elements/suggestion.d.ts.map +0 -1
  191. package/dist/components/ai-elements/suggestion.js +0 -13
  192. package/dist/components/ai-elements/task.d.ts +0 -15
  193. package/dist/components/ai-elements/task.d.ts.map +0 -1
  194. package/dist/components/ai-elements/task.js +0 -10
  195. package/dist/components/ai-elements/terminal.d.ts +0 -28
  196. package/dist/components/ai-elements/terminal.d.ts.map +0 -1
  197. package/dist/components/ai-elements/terminal.js +0 -55
  198. package/dist/components/ai-elements/test-results.d.ts +0 -59
  199. package/dist/components/ai-elements/test-results.d.ts.map +0 -1
  200. package/dist/components/ai-elements/test-results.js +0 -98
  201. package/dist/components/ai-elements/tool.d.ts +0 -32
  202. package/dist/components/ai-elements/tool.d.ts.map +0 -1
  203. package/dist/components/ai-elements/tool.js +0 -49
  204. package/dist/components/ai-elements/toolbar.d.ts +0 -6
  205. package/dist/components/ai-elements/toolbar.d.ts.map +0 -1
  206. package/dist/components/ai-elements/toolbar.js +0 -5
  207. package/dist/components/ai-elements/transcription.d.ts +0 -17
  208. package/dist/components/ai-elements/transcription.d.ts.map +0 -1
  209. package/dist/components/ai-elements/transcription.js +0 -36
  210. package/dist/components/ai-elements/voice-selector.d.ts +0 -65
  211. package/dist/components/ai-elements/voice-selector.d.ts.map +0 -1
  212. package/dist/components/ai-elements/voice-selector.js +0 -224
  213. package/dist/components/ai-elements/web-preview.d.ts +0 -35
  214. package/dist/components/ai-elements/web-preview.d.ts.map +0 -1
  215. package/dist/components/ai-elements/web-preview.js +0 -66
  216. package/dist/components/artifact-panel.d.ts +0 -130
  217. package/dist/components/artifact-panel.d.ts.map +0 -1
  218. package/dist/components/artifact-panel.js +0 -180
  219. package/dist/components/attachment.d.ts +0 -24
  220. package/dist/components/attachment.d.ts.map +0 -1
  221. package/dist/components/attachment.js +0 -68
  222. package/dist/components/bubble.d.ts +0 -17
  223. package/dist/components/bubble.d.ts.map +0 -1
  224. package/dist/components/bubble.js +0 -59
  225. package/dist/components/demo-surface.d.ts +0 -34
  226. package/dist/components/demo-surface.d.ts.map +0 -1
  227. package/dist/components/demo-surface.js +0 -21
  228. package/dist/components/files-preview.d.ts +0 -36
  229. package/dist/components/files-preview.d.ts.map +0 -1
  230. package/dist/components/files-preview.js +0 -85
  231. package/dist/components/marker.d.ts +0 -11
  232. package/dist/components/marker.d.ts.map +0 -1
  233. package/dist/components/marker.js +0 -34
  234. package/dist/components/message-scroller.d.ts +0 -17
  235. package/dist/components/message-scroller.d.ts.map +0 -1
  236. package/dist/components/message-scroller.js +0 -29
  237. package/dist/components/message.d.ts +0 -11
  238. package/dist/components/message.d.ts.map +0 -1
  239. package/dist/components/message.js +0 -21
  240. package/dist/components/state-notice.d.ts +0 -13
  241. package/dist/components/state-notice.d.ts.map +0 -1
  242. package/dist/components/state-notice.js +0 -8
  243. package/dist/components/watch-it-work-band.d.ts +0 -12
  244. package/dist/components/watch-it-work-band.d.ts.map +0 -1
  245. package/dist/components/watch-it-work-band.js +0 -8
  246. package/dist/hooks/use-controllable-state.d.ts +0 -9
  247. package/dist/hooks/use-controllable-state.d.ts.map +0 -1
  248. package/dist/hooks/use-controllable-state.js +0 -23
  249. package/dist/lib/agent-attachment.d.ts +0 -11
  250. package/dist/lib/agent-attachment.d.ts.map +0 -1
  251. package/dist/lib/agent-attachment.js +0 -19
  252. package/dist/lib/agent-contracts.d.ts +0 -132
  253. package/dist/lib/agent-contracts.d.ts.map +0 -1
  254. package/dist/lib/agent-contracts.js +0 -6
  255. package/dist/lib/agent-state.d.ts +0 -22
  256. package/dist/lib/agent-state.d.ts.map +0 -1
  257. package/dist/lib/agent-state.js +0 -96
  258. package/dist/lib/agent-work-state.d.ts +0 -36
  259. package/dist/lib/agent-work-state.d.ts.map +0 -1
  260. package/dist/lib/agent-work-state.js +0 -36
  261. package/dist/lib/message-scroller-primitive/components.d.ts +0 -17
  262. package/dist/lib/message-scroller-primitive/components.d.ts.map +0 -1
  263. package/dist/lib/message-scroller-primitive/components.js +0 -204
  264. package/dist/lib/message-scroller-primitive/geometry.d.ts +0 -51
  265. package/dist/lib/message-scroller-primitive/geometry.d.ts.map +0 -1
  266. package/dist/lib/message-scroller-primitive/geometry.js +0 -199
  267. package/dist/lib/message-scroller-primitive/index.d.ts +0 -12
  268. package/dist/lib/message-scroller-primitive/index.d.ts.map +0 -1
  269. package/dist/lib/message-scroller-primitive/index.js +0 -12
  270. package/dist/lib/message-scroller-primitive/stores.d.ts +0 -6
  271. package/dist/lib/message-scroller-primitive/stores.d.ts.map +0 -1
  272. package/dist/lib/message-scroller-primitive/stores.js +0 -53
  273. package/dist/lib/message-scroller-primitive/types.d.ts +0 -88
  274. package/dist/lib/message-scroller-primitive/types.d.ts.map +0 -1
  275. package/dist/lib/message-scroller-primitive/types.js +0 -40
  276. package/dist/lib/message-scroller-primitive/use-message-scroller-commands.d.ts +0 -19
  277. package/dist/lib/message-scroller-primitive/use-message-scroller-commands.d.ts.map +0 -1
  278. package/dist/lib/message-scroller-primitive/use-message-scroller-commands.js +0 -188
  279. package/dist/lib/message-scroller-primitive/use-message-scroller-controller.d.ts +0 -7
  280. package/dist/lib/message-scroller-primitive/use-message-scroller-controller.d.ts.map +0 -1
  281. package/dist/lib/message-scroller-primitive/use-message-scroller-controller.js +0 -506
  282. package/dist/lib/message-scroller-primitive/use-message-scroller-refs.d.ts +0 -49
  283. package/dist/lib/message-scroller-primitive/use-message-scroller-refs.d.ts.map +0 -1
  284. package/dist/lib/message-scroller-primitive/use-message-scroller-refs.js +0 -90
  285. package/dist/lib/message-scroller-primitive/use-render.d.ts +0 -22
  286. package/dist/lib/message-scroller-primitive/use-render.d.ts.map +0 -1
  287. package/dist/lib/message-scroller-primitive/use-render.js +0 -113
  288. package/dist/lib/message-scroller-primitive/utils.d.ts +0 -4
  289. package/dist/lib/message-scroller-primitive/utils.d.ts.map +0 -1
  290. package/dist/lib/message-scroller-primitive/utils.js +0 -9
  291. package/docs/agent-work-surfaces.md +0 -132
  292. package/docs/migration/ai-elements-vendoring.md +0 -29
  293. package/docs/terminal-tui-semantics.md +0 -172
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-results.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/test-results.tsx"],"names":[],"mappings":"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"}
@@ -1,98 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { Badge } from "../badge.js";
4
- import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../collapsible.js";
5
- import { cn } from "../../lib/utils.js";
6
- import { CheckCircle2Icon, ChevronRightIcon, CircleDotIcon, CircleIcon, XCircleIcon, } from "lucide-react";
7
- import { createContext, useContext, useMemo } from "react";
8
- const TestResultsContext = createContext({});
9
- const formatDuration = (ms) => {
10
- if (ms < 1000) {
11
- return `${ms}ms`;
12
- }
13
- return `${(ms / 1000).toFixed(2)}s`;
14
- };
15
- export const TestResultsHeader = ({ className, children, ...props }) => (_jsx("div", { className: cn("flex items-center justify-between border-b px-4 py-3", className), ...props, children: children }));
16
- export const TestResultsDuration = ({ className, children, ...props }) => {
17
- const { summary } = useContext(TestResultsContext);
18
- if (!summary?.duration) {
19
- return null;
20
- }
21
- return (_jsx("span", { className: cn("text-muted-foreground text-sm", className), ...props, children: children ?? formatDuration(summary.duration) }));
22
- };
23
- export const TestResultsSummary = ({ className, children, ...props }) => {
24
- const { summary } = useContext(TestResultsContext);
25
- if (!summary) {
26
- return null;
27
- }
28
- return (_jsx("div", { className: cn("flex items-center gap-3", className), ...props, children: children ?? (_jsxs(_Fragment, { children: [_jsxs(Badge, { className: "gap-1 bg-[var(--nc-success-soft)] text-[var(--nc-success-deep)]", variant: "secondary", children: [_jsx(CheckCircle2Icon, { className: "size-3" }), summary.passed, " passed"] }), summary.failed > 0 && (_jsxs(Badge, { className: "gap-1 bg-[var(--nc-error-soft)] text-[var(--nc-error-deep)]", variant: "secondary", children: [_jsx(XCircleIcon, { className: "size-3" }), summary.failed, " failed"] })), summary.skipped > 0 && (_jsxs(Badge, { className: "gap-1 bg-[var(--nc-warning-soft)] text-[var(--nc-warning-deep)]", variant: "secondary", children: [_jsx(CircleIcon, { className: "size-3" }), summary.skipped, " skipped"] }))] })) }));
29
- };
30
- export const TestResults = ({ summary, className, children, ...props }) => {
31
- const contextValue = useMemo(() => ({ summary }), [summary]);
32
- return (_jsx(TestResultsContext.Provider, { value: contextValue, children: _jsx("div", { className: cn("rounded-lg border bg-background", className), ...props, children: children ??
33
- (summary && (_jsxs(TestResultsHeader, { children: [_jsx(TestResultsSummary, {}), _jsx(TestResultsDuration, {})] }))) }) }));
34
- };
35
- export const TestResultsProgress = ({ className, children, ...props }) => {
36
- const { summary } = useContext(TestResultsContext);
37
- if (!summary) {
38
- return null;
39
- }
40
- const hasTests = summary.total > 0;
41
- const passedPercent = hasTests ? (summary.passed / summary.total) * 100 : 0;
42
- const failedPercent = hasTests ? (summary.failed / summary.total) * 100 : 0;
43
- return (_jsx("div", { className: cn("flex flex-col gap-2", className), ...props, children: children ?? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex h-2 overflow-hidden rounded-full bg-muted", children: [_jsx("div", { className: "bg-[var(--nc-success)]", style: { width: `${passedPercent}%` } }), _jsx("div", { className: "bg-destructive/100", style: { width: `${failedPercent}%` } })] }), _jsxs("div", { className: "flex justify-between text-muted-foreground text-xs", children: [_jsxs("span", { children: [summary.passed, "/", summary.total, " tests passed"] }), _jsxs("span", { children: [passedPercent.toFixed(0), "%"] })] })] })) }));
44
- };
45
- export const TestResultsContent = ({ className, children, ...props }) => (_jsx("div", { className: cn("flex flex-col gap-2 p-4", className), ...props, children: children }));
46
- const TestSuiteContext = createContext({
47
- name: "",
48
- status: "passed",
49
- });
50
- const statusStyles = {
51
- failed: "text-destructive",
52
- passed: "text-[var(--nc-success-deep)]",
53
- running: "text-[var(--nc-link-deep)]",
54
- skipped: "text-[var(--nc-warning-deep)]",
55
- };
56
- const statusIcons = {
57
- failed: _jsx(XCircleIcon, { className: "size-4" }),
58
- passed: _jsx(CheckCircle2Icon, { className: "size-4" }),
59
- running: _jsx(CircleDotIcon, { className: "size-4 motion-safe:animate-pulse" }),
60
- skipped: _jsx(CircleIcon, { className: "size-4" }),
61
- };
62
- const TestStatusIcon = ({ status }) => (_jsx("span", { className: cn("shrink-0", statusStyles[status]), children: statusIcons[status] }));
63
- export const TestSuite = ({ name, status, className, children, ...props }) => {
64
- const contextValue = useMemo(() => ({ name, status }), [name, status]);
65
- return (_jsx(TestSuiteContext.Provider, { value: contextValue, children: _jsx(Collapsible, { className: cn("rounded-lg border", className), ...props, children: children }) }));
66
- };
67
- export const TestSuiteName = ({ className, children, ...props }) => {
68
- const { name, status } = useContext(TestSuiteContext);
69
- return (_jsxs(CollapsibleTrigger, { className: cn("group flex w-full items-center gap-2 px-4 py-3 text-left transition-colors hover:bg-muted/50", className), ...props, children: [_jsx(ChevronRightIcon, { className: "nc-transition-transform size-4 shrink-0 text-muted-foreground group-data-panel-open:rotate-90" }), _jsx(TestStatusIcon, { status: status }), _jsx("span", { className: "font-medium text-sm", children: children ?? name })] }));
70
- };
71
- export const TestSuiteStats = ({ passed = 0, failed = 0, skipped = 0, className, children, ...props }) => (_jsx("div", { className: cn("ml-auto flex items-center gap-2 text-xs", className), ...props, children: children ?? (_jsxs(_Fragment, { children: [passed > 0 && _jsxs("span", { className: "text-[var(--nc-success-deep)]", children: [passed, " passed"] }), failed > 0 && _jsxs("span", { className: "text-destructive", children: [failed, " failed"] }), skipped > 0 && _jsxs("span", { className: "text-[var(--nc-warning-deep)]", children: [skipped, " skipped"] })] })) }));
72
- export const TestSuiteContent = ({ className, children, ...props }) => (_jsx(CollapsibleContent, { className: cn("border-t", className), ...props, children: _jsx("div", { className: "divide-y", children: children }) }));
73
- const TestContext = createContext({
74
- name: "",
75
- status: "passed",
76
- });
77
- export const TestName = ({ className, children, ...props }) => {
78
- const { name } = useContext(TestContext);
79
- return (_jsx("span", { className: cn("flex-1", className), ...props, children: children ?? name }));
80
- };
81
- export const TestDuration = ({ className, children, ...props }) => {
82
- const { duration } = useContext(TestContext);
83
- if (duration === undefined) {
84
- return null;
85
- }
86
- return (_jsx("span", { className: cn("ml-auto text-muted-foreground text-xs", className), ...props, children: children ?? `${duration}ms` }));
87
- };
88
- export const TestStatus = ({ className, children, ...props }) => {
89
- const { status } = useContext(TestContext);
90
- return (_jsx("span", { className: cn("shrink-0", statusStyles[status], className), ...props, children: children ?? statusIcons[status] }));
91
- };
92
- export const Test = ({ name, status, duration, className, children, ...props }) => {
93
- const contextValue = useMemo(() => ({ duration, name, status }), [duration, name, status]);
94
- return (_jsx(TestContext.Provider, { value: contextValue, children: _jsx("div", { className: cn("flex items-center gap-2 px-4 py-2 text-sm", className), ...props, children: children ?? (_jsxs(_Fragment, { children: [_jsx(TestStatus, {}), _jsx(TestName, {}), duration !== undefined && _jsx(TestDuration, {})] })) }) }));
95
- };
96
- export const TestError = ({ className, children, ...props }) => (_jsx("div", { className: cn("mt-2 rounded-md bg-[var(--nc-error-soft)] p-3 text-[var(--nc-error-deep)]", className), ...props, children: children }));
97
- export const TestErrorMessage = ({ className, children, ...props }) => (_jsx("p", { className: cn("font-medium text-sm", className), ...props, children: children }));
98
- export const TestErrorStack = ({ className, children, ...props }) => (_jsx("pre", { className: cn("mt-2 overflow-auto font-mono text-xs", className), ...props, children: children }));
@@ -1,32 +0,0 @@
1
- import { Collapsible, CollapsibleContent } from "../collapsible";
2
- import type { DynamicToolUIPart, ToolUIPart } from "ai";
3
- import type { ComponentProps } from "react";
4
- export type ToolProps = ComponentProps<typeof Collapsible>;
5
- export declare const Tool: ({ className, ...props }: ToolProps) => import("react").JSX.Element;
6
- export type ToolPart = ToolUIPart | DynamicToolUIPart;
7
- export type ToolHeaderProps = {
8
- title?: string;
9
- className?: string;
10
- } & ({
11
- type: ToolUIPart["type"];
12
- state: ToolUIPart["state"];
13
- toolName?: never;
14
- } | {
15
- type: DynamicToolUIPart["type"];
16
- state: DynamicToolUIPart["state"];
17
- toolName: string;
18
- });
19
- export declare const getStatusBadge: (status: ToolPart["state"]) => import("react").JSX.Element;
20
- export declare const ToolHeader: ({ className, title, type, state, toolName, ...props }: ToolHeaderProps) => import("react").JSX.Element;
21
- export type ToolContentProps = ComponentProps<typeof CollapsibleContent>;
22
- export declare const ToolContent: ({ className, ...props }: ToolContentProps) => import("react").JSX.Element;
23
- export type ToolInputProps = ComponentProps<"div"> & {
24
- input: ToolPart["input"];
25
- };
26
- export declare const ToolInput: ({ className, input, ...props }: ToolInputProps) => import("react").JSX.Element;
27
- export type ToolOutputProps = ComponentProps<"div"> & {
28
- output: ToolPart["output"];
29
- errorText: ToolPart["errorText"];
30
- };
31
- export declare const ToolOutput: ({ className, output, errorText, ...props }: ToolOutputProps) => import("react").JSX.Element | null;
32
- //# sourceMappingURL=tool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/tool.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAsB,MAAM,0BAA0B,CAAC;AAE/F,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AASxD,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,OAAO,CAAC;AAKvD,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC;AAE3D,eAAO,MAAM,IAAI,GAAI,yBAAyB,SAAS,gCAKtD,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,iBAAiB,CAAC;AAEtD,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,CACA;IAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GAC1E;IACE,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAChC,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB,CACJ,CAAC;AAsBF,eAAO,MAAM,cAAc,GAAI,QAAQ,QAAQ,CAAC,OAAO,CAAC,gCAKvD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,uDAOxB,eAAe,gCAgBjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEzE,eAAO,MAAM,WAAW,GAAI,yBAAyB,gBAAgB,gCAKpE,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IACnD,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,gCAAgC,cAAc,gCASvE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IACpD,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3B,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;CAClC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,4CAA4C,eAAe,uCA+BrF,CAAC"}
@@ -1,49 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { Badge } from "../badge.js";
4
- import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../collapsible.js";
5
- import { cn } from "../../lib/utils.js";
6
- import { CheckCircleIcon, ChevronDownIcon, CircleIcon, ClockIcon, WrenchIcon, XCircleIcon, } from "lucide-react";
7
- import { isValidElement } from "react";
8
- import { CodeBlock } from "./code-block.js";
9
- export const Tool = ({ className, ...props }) => (_jsx(Collapsible, { className: cn("group not-prose mb-4 w-full rounded-md border", className), ...props }));
10
- const statusLabels = {
11
- "approval-requested": "Awaiting Approval",
12
- "approval-responded": "Responded",
13
- "input-available": "Running",
14
- "input-streaming": "Pending",
15
- "output-available": "Completed",
16
- "output-denied": "Denied",
17
- "output-error": "Error",
18
- };
19
- const statusIcons = {
20
- "approval-requested": _jsx(ClockIcon, { className: "size-4 text-[var(--nc-warning-deep)]" }),
21
- "approval-responded": _jsx(CheckCircleIcon, { className: "size-4 text-[var(--nc-link-deep)]" }),
22
- "input-available": _jsx(ClockIcon, { className: "size-4 motion-safe:animate-pulse" }),
23
- "input-streaming": _jsx(CircleIcon, { className: "size-4" }),
24
- "output-available": _jsx(CheckCircleIcon, { className: "size-4 text-[var(--nc-success-deep)]" }),
25
- "output-denied": _jsx(XCircleIcon, { className: "size-4 text-[var(--nc-warning-deep)]" }),
26
- "output-error": _jsx(XCircleIcon, { className: "size-4 text-destructive" }),
27
- };
28
- export const getStatusBadge = (status) => (_jsxs(Badge, { className: "gap-1.5 rounded-full text-xs", variant: "secondary", children: [statusIcons[status], statusLabels[status]] }));
29
- export const ToolHeader = ({ className, title, type, state, toolName, ...props }) => {
30
- const derivedName = type === "dynamic-tool" ? toolName : type.split("-").slice(1).join("-");
31
- return (_jsxs(CollapsibleTrigger, { className: cn("flex w-full items-center justify-between gap-4 p-3", className), ...props, children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(WrenchIcon, { className: "size-4 text-muted-foreground" }), _jsx("span", { className: "font-medium text-sm", children: title ?? derivedName }), getStatusBadge(state)] }), _jsx(ChevronDownIcon, { className: "nc-transition-transform size-4 text-muted-foreground group-data-panel-open:rotate-180" })] }));
32
- };
33
- export const ToolContent = ({ className, ...props }) => (_jsx(CollapsibleContent, { className: cn("flex flex-col gap-4 p-4 text-popover-foreground outline-none", className), ...props }));
34
- export const ToolInput = ({ className, input, ...props }) => (_jsxs("div", { className: cn("flex flex-col gap-2 overflow-hidden", className), ...props, children: [_jsx("h4", { className: "font-medium text-muted-foreground text-xs uppercase tracking-wide", children: "Parameters" }), _jsx("div", { className: "rounded-md bg-muted/50", children: _jsx(CodeBlock, { code: JSON.stringify(input, null, 2), language: "json" }) })] }));
35
- export const ToolOutput = ({ className, output, errorText, ...props }) => {
36
- if (!(output || errorText)) {
37
- return null;
38
- }
39
- let Output = _jsx("div", { children: output });
40
- if (typeof output === "object" && !isValidElement(output)) {
41
- Output = _jsx(CodeBlock, { code: JSON.stringify(output, null, 2), language: "json" });
42
- }
43
- else if (typeof output === "string") {
44
- Output = _jsx(CodeBlock, { code: output, language: "json" });
45
- }
46
- return (_jsxs("div", { className: cn("flex flex-col gap-2", className), ...props, children: [_jsx("h4", { className: "font-medium text-muted-foreground text-xs uppercase tracking-wide", children: errorText ? "Error" : "Result" }), _jsxs("div", { className: cn("overflow-x-auto rounded-md text-xs [&_table]:w-full", errorText
47
- ? "bg-[var(--nc-error-soft)] text-[var(--nc-error-deep)]"
48
- : "bg-muted/50 text-foreground"), children: [errorText && _jsx("div", { children: errorText }), Output] })] }));
49
- };
@@ -1,6 +0,0 @@
1
- import { NodeToolbar } from "@xyflow/react";
2
- import type { ComponentProps } from "react";
3
- type ToolbarProps = ComponentProps<typeof NodeToolbar>;
4
- export declare const Toolbar: ({ className, ...props }: ToolbarProps) => import("react").JSX.Element;
5
- export {};
6
- //# sourceMappingURL=toolbar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/toolbar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAY,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,KAAK,YAAY,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC;AAEvD,eAAO,MAAM,OAAO,GAAI,yBAAyB,YAAY,gCAM5D,CAAC"}
@@ -1,5 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { cn } from "../../lib/utils.js";
4
- import { NodeToolbar, Position } from "@xyflow/react";
5
- export const Toolbar = ({ className, ...props }) => (_jsx(NodeToolbar, { className: cn("flex items-center gap-1 rounded-sm border bg-background p-1.5", className), position: Position.Bottom, ...props }));
@@ -1,17 +0,0 @@
1
- import type { Experimental_TranscriptionResult as TranscriptionResult } from "ai";
2
- import type { ComponentProps, ReactNode } from "react";
3
- type TranscriptionSegment = TranscriptionResult["segments"][number];
4
- export type TranscriptionProps = Omit<ComponentProps<"div">, "children"> & {
5
- segments: TranscriptionSegment[];
6
- currentTime?: number;
7
- onSeek?: (time: number) => void;
8
- children: (segment: TranscriptionSegment, index: number) => ReactNode;
9
- };
10
- export declare const Transcription: ({ segments, currentTime: externalCurrentTime, onSeek, className, children, ...props }: TranscriptionProps) => import("react").JSX.Element;
11
- export type TranscriptionSegmentProps = ComponentProps<"button"> & {
12
- segment: TranscriptionSegment;
13
- index: number;
14
- };
15
- export declare const TranscriptionSegment: ({ segment, index, className, onClick, ...props }: TranscriptionSegmentProps) => import("react").JSX.Element;
16
- export {};
17
- //# sourceMappingURL=transcription.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transcription.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/transcription.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gCAAgC,IAAI,mBAAmB,EAAE,MAAM,IAAI,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,KAAK,oBAAoB,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAmBpE,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IACzE,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;CACvE,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,uFAO3B,kBAAkB,gCAyBpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG;IACjE,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,kDAMlC,yBAAyB,gCAqC3B,CAAC"}
@@ -1,36 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { useControllableState } from "../../hooks/use-controllable-state.js";
4
- import { cn } from "../../lib/utils.js";
5
- import { createContext, useCallback, useContext, useMemo } from "react";
6
- const TranscriptionContext = createContext(null);
7
- const useTranscription = () => {
8
- const context = useContext(TranscriptionContext);
9
- if (!context) {
10
- throw new Error("Transcription components must be used within Transcription");
11
- }
12
- return context;
13
- };
14
- export const Transcription = ({ segments, currentTime: externalCurrentTime, onSeek, className, children, ...props }) => {
15
- const [currentTime, setCurrentTime] = useControllableState({
16
- defaultProp: 0,
17
- onChange: onSeek,
18
- prop: externalCurrentTime,
19
- });
20
- const contextValue = useMemo(() => ({ currentTime, onSeek, onTimeUpdate: setCurrentTime, segments }), [currentTime, onSeek, setCurrentTime, segments]);
21
- return (_jsx(TranscriptionContext.Provider, { value: contextValue, children: _jsx("div", { className: cn("flex flex-wrap gap-1 text-sm leading-relaxed", className), "data-slot": "transcription", ...props, children: segments
22
- .filter((segment) => segment.text.trim())
23
- .map((segment, index) => children(segment, index)) }) }));
24
- };
25
- export const TranscriptionSegment = ({ segment, index, className, onClick, ...props }) => {
26
- const { currentTime, onSeek } = useTranscription();
27
- const isActive = currentTime >= segment.startSecond && currentTime < segment.endSecond;
28
- const isPast = currentTime >= segment.endSecond;
29
- const handleClick = useCallback((event) => {
30
- if (onSeek) {
31
- onSeek(segment.startSecond);
32
- }
33
- onClick?.(event);
34
- }, [onSeek, segment.startSecond, onClick]);
35
- return (_jsx("button", { className: cn("inline text-left", isActive && "text-primary", isPast && "text-muted-foreground", !(isActive || isPast) && "text-muted-foreground/60", onSeek && "cursor-pointer hover:text-foreground", !onSeek && "cursor-default", className), "data-active": isActive, "data-index": index, "data-slot": "transcription-segment", onClick: handleClick, type: "button", ...props, children: segment.text }));
36
- };
@@ -1,65 +0,0 @@
1
- import { CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut } from "../command";
2
- import { Dialog, DialogContent, DialogTrigger } from "../dialog";
3
- import type { ComponentProps, ReactNode } from "react";
4
- interface VoiceSelectorContextValue {
5
- value: string | undefined;
6
- setValue: (value: string | undefined) => void;
7
- open: boolean;
8
- setOpen: (open: boolean) => void;
9
- }
10
- export declare const useVoiceSelector: () => VoiceSelectorContextValue;
11
- export type VoiceSelectorProps = Omit<ComponentProps<typeof Dialog>, "onOpenChange"> & {
12
- value?: string;
13
- defaultValue?: string;
14
- onOpenChange?: (open: boolean) => void;
15
- onValueChange?: (value: string | undefined) => void;
16
- };
17
- export declare const VoiceSelector: ({ value: valueProp, defaultValue, onValueChange, open: openProp, defaultOpen, onOpenChange, children, ...props }: VoiceSelectorProps) => import("react").JSX.Element;
18
- export type VoiceSelectorTriggerProps = ComponentProps<typeof DialogTrigger>;
19
- export declare const VoiceSelectorTrigger: (props: VoiceSelectorTriggerProps) => import("react").JSX.Element;
20
- export type VoiceSelectorContentProps = ComponentProps<typeof DialogContent> & {
21
- title?: ReactNode;
22
- };
23
- export declare const VoiceSelectorContent: ({ className, children, title, ...props }: VoiceSelectorContentProps) => import("react").JSX.Element;
24
- export type VoiceSelectorDialogProps = ComponentProps<typeof CommandDialog>;
25
- export declare const VoiceSelectorDialog: ({ children, ...props }: VoiceSelectorDialogProps) => import("react").JSX.Element;
26
- export type VoiceSelectorInputProps = ComponentProps<typeof CommandInput>;
27
- export declare const VoiceSelectorInput: ({ className, ...props }: VoiceSelectorInputProps) => import("react").JSX.Element;
28
- export type VoiceSelectorListProps = ComponentProps<typeof CommandList>;
29
- export declare const VoiceSelectorList: (props: VoiceSelectorListProps) => import("react").JSX.Element;
30
- export type VoiceSelectorEmptyProps = ComponentProps<typeof CommandEmpty>;
31
- export declare const VoiceSelectorEmpty: (props: VoiceSelectorEmptyProps) => import("react").JSX.Element;
32
- export type VoiceSelectorGroupProps = ComponentProps<typeof CommandGroup>;
33
- export declare const VoiceSelectorGroup: (props: VoiceSelectorGroupProps) => import("react").JSX.Element;
34
- export type VoiceSelectorItemProps = ComponentProps<typeof CommandItem>;
35
- export declare const VoiceSelectorItem: ({ className, ...props }: VoiceSelectorItemProps) => import("react").JSX.Element;
36
- export type VoiceSelectorShortcutProps = ComponentProps<typeof CommandShortcut>;
37
- export declare const VoiceSelectorShortcut: (props: VoiceSelectorShortcutProps) => import("react").JSX.Element;
38
- export type VoiceSelectorSeparatorProps = ComponentProps<typeof CommandSeparator>;
39
- export declare const VoiceSelectorSeparator: (props: VoiceSelectorSeparatorProps) => import("react").JSX.Element;
40
- export type VoiceSelectorGenderProps = ComponentProps<"span"> & {
41
- value?: "male" | "female" | "transgender" | "androgyne" | "non-binary" | "intersex";
42
- };
43
- export declare const VoiceSelectorGender: ({ className, value, children, ...props }: VoiceSelectorGenderProps) => import("react").JSX.Element;
44
- export type VoiceSelectorAccentProps = ComponentProps<"span"> & {
45
- value?: "american" | "british" | "australian" | "canadian" | "irish" | "scottish" | "indian" | "south-african" | "new-zealand" | "spanish" | "french" | "german" | "italian" | "portuguese" | "brazilian" | "mexican" | "argentinian" | "japanese" | "chinese" | "korean" | "russian" | "arabic" | "dutch" | "swedish" | "norwegian" | "danish" | "finnish" | "polish" | "turkish" | "greek" | string;
46
- };
47
- export declare const VoiceSelectorAccent: ({ className, value, children, ...props }: VoiceSelectorAccentProps) => import("react").JSX.Element;
48
- export type VoiceSelectorAgeProps = ComponentProps<"span">;
49
- export declare const VoiceSelectorAge: ({ className, ...props }: VoiceSelectorAgeProps) => import("react").JSX.Element;
50
- export type VoiceSelectorNameProps = ComponentProps<"span">;
51
- export declare const VoiceSelectorName: ({ className, ...props }: VoiceSelectorNameProps) => import("react").JSX.Element;
52
- export type VoiceSelectorDescriptionProps = ComponentProps<"span">;
53
- export declare const VoiceSelectorDescription: ({ className, ...props }: VoiceSelectorDescriptionProps) => import("react").JSX.Element;
54
- export type VoiceSelectorAttributesProps = ComponentProps<"div">;
55
- export declare const VoiceSelectorAttributes: ({ className, children, ...props }: VoiceSelectorAttributesProps) => import("react").JSX.Element;
56
- export type VoiceSelectorBulletProps = ComponentProps<"span">;
57
- export declare const VoiceSelectorBullet: ({ className, ...props }: VoiceSelectorBulletProps) => import("react").JSX.Element;
58
- export type VoiceSelectorPreviewProps = Omit<ComponentProps<"button">, "children"> & {
59
- playing?: boolean;
60
- loading?: boolean;
61
- onPlay?: () => void;
62
- };
63
- export declare const VoiceSelectorPreview: ({ className, playing, loading, onPlay, onClick, ...props }: VoiceSelectorPreviewProps) => import("react").JSX.Element;
64
- export {};
65
- //# sourceMappingURL=voice-selector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"voice-selector.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/voice-selector.tsx"],"names":[],"mappings":"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"}
@@ -1,224 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useControllableState } from "../../hooks/use-controllable-state.js";
4
- import { Button } from "../button.js";
5
- import { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, } from "../command.js";
6
- import { Dialog, DialogContent, DialogTitle, DialogTrigger } from "../dialog.js";
7
- import { Spinner } from "../spinner.js";
8
- import { cn } from "../../lib/utils.js";
9
- import { CircleSmallIcon, MarsIcon, MarsStrokeIcon, NonBinaryIcon, PauseIcon, PlayIcon, TransgenderIcon, VenusAndMarsIcon, VenusIcon, } from "lucide-react";
10
- import { createContext, useCallback, useContext, useMemo } from "react";
11
- const VoiceSelectorContext = createContext(null);
12
- export const useVoiceSelector = () => {
13
- const context = useContext(VoiceSelectorContext);
14
- if (!context) {
15
- throw new Error("VoiceSelector components must be used within VoiceSelector");
16
- }
17
- return context;
18
- };
19
- export const VoiceSelector = ({ value: valueProp, defaultValue, onValueChange, open: openProp, defaultOpen = false, onOpenChange, children, ...props }) => {
20
- const [value, setValue] = useControllableState({
21
- defaultProp: defaultValue,
22
- onChange: onValueChange,
23
- prop: valueProp,
24
- });
25
- const [open, setOpen] = useControllableState({
26
- defaultProp: defaultOpen,
27
- onChange: onOpenChange,
28
- prop: openProp,
29
- });
30
- const voiceSelectorContext = useMemo(() => ({ open, setOpen, setValue, value }), [value, setValue, open, setOpen]);
31
- return (_jsx(VoiceSelectorContext.Provider, { value: voiceSelectorContext, children: _jsx(Dialog, { onOpenChange: setOpen, open: open, ...props, children: children }) }));
32
- };
33
- export const VoiceSelectorTrigger = (props) => (_jsx(DialogTrigger, { ...props }));
34
- export const VoiceSelectorContent = ({ className, children, title = "Voice Selector", ...props }) => (_jsxs(DialogContent, { "aria-describedby": undefined, className: cn("p-0", className), ...props, children: [_jsx(DialogTitle, { className: "sr-only", children: title }), _jsx(Command, { className: "**:data-[slot=command-input-wrapper]:h-auto", children: children })] }));
35
- export const VoiceSelectorDialog = ({ children, ...props }) => (_jsx(CommandDialog, { ...props, children: _jsx(Command, { className: "**:data-[slot=command-input-wrapper]:h-auto", children: children }) }));
36
- export const VoiceSelectorInput = ({ className, ...props }) => (_jsx(CommandInput, { className: cn("h-auto py-3.5", className), ...props }));
37
- export const VoiceSelectorList = (props) => _jsx(CommandList, { ...props });
38
- export const VoiceSelectorEmpty = (props) => _jsx(CommandEmpty, { ...props });
39
- export const VoiceSelectorGroup = (props) => _jsx(CommandGroup, { ...props });
40
- export const VoiceSelectorItem = ({ className, ...props }) => (_jsx(CommandItem, { className: cn("px-4 py-2", className), ...props }));
41
- export const VoiceSelectorShortcut = (props) => (_jsx(CommandShortcut, { ...props }));
42
- export const VoiceSelectorSeparator = (props) => (_jsx(CommandSeparator, { ...props }));
43
- export const VoiceSelectorGender = ({ className, value, children, ...props }) => {
44
- let icon = null;
45
- switch (value) {
46
- case "male": {
47
- icon = _jsx(MarsIcon, { className: "size-4" });
48
- break;
49
- }
50
- case "female": {
51
- icon = _jsx(VenusIcon, { className: "size-4" });
52
- break;
53
- }
54
- case "transgender": {
55
- icon = _jsx(TransgenderIcon, { className: "size-4" });
56
- break;
57
- }
58
- case "androgyne": {
59
- icon = _jsx(MarsStrokeIcon, { className: "size-4" });
60
- break;
61
- }
62
- case "non-binary": {
63
- icon = _jsx(NonBinaryIcon, { className: "size-4" });
64
- break;
65
- }
66
- case "intersex": {
67
- icon = _jsx(VenusAndMarsIcon, { className: "size-4" });
68
- break;
69
- }
70
- default: {
71
- icon = _jsx(CircleSmallIcon, { className: "size-4" });
72
- }
73
- }
74
- return (_jsx("span", { className: cn("text-muted-foreground text-xs", className), ...props, children: children ?? icon }));
75
- };
76
- export const VoiceSelectorAccent = ({ className, value, children, ...props }) => {
77
- let emoji = null;
78
- switch (value) {
79
- case "american": {
80
- emoji = "🇺🇸";
81
- break;
82
- }
83
- case "british": {
84
- emoji = "🇬🇧";
85
- break;
86
- }
87
- case "australian": {
88
- emoji = "🇦🇺";
89
- break;
90
- }
91
- case "canadian": {
92
- emoji = "🇨🇦";
93
- break;
94
- }
95
- case "irish": {
96
- emoji = "🇮🇪";
97
- break;
98
- }
99
- case "scottish": {
100
- emoji = "🏴󠁧󠁢󠁳󠁣󠁴󠁿";
101
- break;
102
- }
103
- case "indian": {
104
- emoji = "🇮🇳";
105
- break;
106
- }
107
- case "south-african": {
108
- emoji = "🇿🇦";
109
- break;
110
- }
111
- case "new-zealand": {
112
- emoji = "🇳🇿";
113
- break;
114
- }
115
- case "spanish": {
116
- emoji = "🇪🇸";
117
- break;
118
- }
119
- case "french": {
120
- emoji = "🇫🇷";
121
- break;
122
- }
123
- case "german": {
124
- emoji = "🇩🇪";
125
- break;
126
- }
127
- case "italian": {
128
- emoji = "🇮🇹";
129
- break;
130
- }
131
- case "portuguese": {
132
- emoji = "🇵🇹";
133
- break;
134
- }
135
- case "brazilian": {
136
- emoji = "🇧🇷";
137
- break;
138
- }
139
- case "mexican": {
140
- emoji = "🇲🇽";
141
- break;
142
- }
143
- case "argentinian": {
144
- emoji = "🇦🇷";
145
- break;
146
- }
147
- case "japanese": {
148
- emoji = "🇯🇵";
149
- break;
150
- }
151
- case "chinese": {
152
- emoji = "🇨🇳";
153
- break;
154
- }
155
- case "korean": {
156
- emoji = "🇰🇷";
157
- break;
158
- }
159
- case "russian": {
160
- emoji = "🇷🇺";
161
- break;
162
- }
163
- case "arabic": {
164
- emoji = "🇸🇦";
165
- break;
166
- }
167
- case "dutch": {
168
- emoji = "🇳🇱";
169
- break;
170
- }
171
- case "swedish": {
172
- emoji = "🇸🇪";
173
- break;
174
- }
175
- case "norwegian": {
176
- emoji = "🇳🇴";
177
- break;
178
- }
179
- case "danish": {
180
- emoji = "🇩🇰";
181
- break;
182
- }
183
- case "finnish": {
184
- emoji = "🇫🇮";
185
- break;
186
- }
187
- case "polish": {
188
- emoji = "🇵🇱";
189
- break;
190
- }
191
- case "turkish": {
192
- emoji = "🇹🇷";
193
- break;
194
- }
195
- case "greek": {
196
- emoji = "🇬🇷";
197
- break;
198
- }
199
- default: {
200
- emoji = null;
201
- }
202
- }
203
- return (_jsx("span", { className: cn("text-muted-foreground text-xs", className), ...props, children: children ?? emoji }));
204
- };
205
- export const VoiceSelectorAge = ({ className, ...props }) => (_jsx("span", { className: cn("text-muted-foreground text-xs tabular-nums", className), ...props }));
206
- export const VoiceSelectorName = ({ className, ...props }) => (_jsx("span", { className: cn("flex-1 truncate text-left font-medium", className), ...props }));
207
- export const VoiceSelectorDescription = ({ className, ...props }) => (_jsx("span", { className: cn("text-muted-foreground text-xs", className), ...props }));
208
- export const VoiceSelectorAttributes = ({ className, children, ...props }) => (_jsx("div", { className: cn("flex items-center text-xs", className), ...props, children: children }));
209
- export const VoiceSelectorBullet = ({ className, ...props }) => (_jsx("span", { "aria-hidden": "true", className: cn("select-none text-border", className), ...props, children: "\u2022" }));
210
- export const VoiceSelectorPreview = ({ className, playing, loading, onPlay, onClick, ...props }) => {
211
- const handleClick = useCallback((event) => {
212
- event.stopPropagation();
213
- onClick?.(event);
214
- onPlay?.();
215
- }, [onClick, onPlay]);
216
- let icon = _jsx(PlayIcon, { className: "size-3" });
217
- if (loading) {
218
- icon = _jsx(Spinner, { className: "size-3" });
219
- }
220
- else if (playing) {
221
- icon = _jsx(PauseIcon, { className: "size-3" });
222
- }
223
- return (_jsx(Button, { "aria-label": playing ? "Pause preview" : "Play preview", className: cn("size-6", className), disabled: loading, onClick: handleClick, size: "icon-sm", type: "button", variant: "outline", ...props, children: icon }));
224
- };
@@ -1,35 +0,0 @@
1
- import { Button } from "../button";
2
- import { Input } from "../input";
3
- import type { ComponentProps, ReactNode } from "react";
4
- export interface WebPreviewContextValue {
5
- url: string;
6
- setUrl: (url: string) => void;
7
- consoleOpen: boolean;
8
- setConsoleOpen: (open: boolean) => void;
9
- }
10
- export type WebPreviewProps = ComponentProps<"div"> & {
11
- defaultUrl?: string;
12
- onUrlChange?: (url: string) => void;
13
- };
14
- export declare const WebPreview: ({ className, children, defaultUrl, onUrlChange, ...props }: WebPreviewProps) => import("react").JSX.Element;
15
- export type WebPreviewNavigationProps = ComponentProps<"div">;
16
- export declare const WebPreviewNavigation: ({ className, children, ...props }: WebPreviewNavigationProps) => import("react").JSX.Element;
17
- export type WebPreviewNavigationButtonProps = ComponentProps<typeof Button> & {
18
- tooltip?: string;
19
- };
20
- export declare const WebPreviewNavigationButton: ({ onClick, disabled, tooltip, children, ...props }: WebPreviewNavigationButtonProps) => import("react").JSX.Element;
21
- export type WebPreviewUrlProps = ComponentProps<typeof Input>;
22
- export declare const WebPreviewUrl: ({ value, onChange, onKeyDown, ...props }: WebPreviewUrlProps) => import("react").JSX.Element;
23
- export type WebPreviewBodyProps = ComponentProps<"iframe"> & {
24
- loading?: ReactNode;
25
- };
26
- export declare const WebPreviewBody: ({ className, loading, src, ...props }: WebPreviewBodyProps) => import("react").JSX.Element;
27
- export type WebPreviewConsoleProps = ComponentProps<"div"> & {
28
- logs?: {
29
- level: "log" | "warn" | "error";
30
- message: string;
31
- timestamp: Date;
32
- }[];
33
- };
34
- export declare const WebPreviewConsole: ({ className, logs, children, ...props }: WebPreviewConsoleProps) => import("react").JSX.Element;
35
- //# sourceMappingURL=web-preview.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web-preview.d.ts","sourceRoot":"","sources":["../../../src/components/ai-elements/web-preview.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAI3C,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAYD,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,4DAMxB,eAAe,gCAgCjB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAE9D,eAAO,MAAM,oBAAoB,GAAI,mCAIlC,yBAAyB,gCAI3B,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,oDAMxC,+BAA+B,gCAsBjC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,KAAK,CAAC,CAAC;AAE9D,eAAO,MAAM,aAAa,GAAI,0CAA0C,kBAAkB,gCAqCzF,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG;IAC3D,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,uCAAuC,mBAAmB,gCAgBxF,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IAC3D,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;QAChC,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,IAAI,CAAC;KACjB,EAAE,CAAC;CACL,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,yCAK/B,sBAAsB,gCAgDxB,CAAC"}