@townco/ui 0.1.8 → 0.1.10

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 (217) hide show
  1. package/dist/core/hooks/index.d.ts.map +1 -0
  2. package/dist/core/hooks/index.js.map +1 -0
  3. package/dist/core/hooks/use-chat-input.d.ts +17 -17
  4. package/dist/core/hooks/use-chat-input.d.ts.map +1 -0
  5. package/dist/core/hooks/use-chat-input.js +64 -55
  6. package/dist/core/hooks/use-chat-input.js.map +1 -0
  7. package/dist/core/hooks/use-chat-messages.d.ts +11 -11
  8. package/dist/core/hooks/use-chat-messages.d.ts.map +1 -0
  9. package/dist/core/hooks/use-chat-messages.js +121 -114
  10. package/dist/core/hooks/use-chat-messages.js.map +1 -0
  11. package/dist/core/hooks/use-chat-session.d.ts +5 -5
  12. package/dist/core/hooks/use-chat-session.d.ts.map +1 -0
  13. package/dist/core/hooks/use-chat-session.js +78 -80
  14. package/dist/core/hooks/use-chat-session.js.map +1 -0
  15. package/dist/core/index.d.ts.map +1 -0
  16. package/dist/core/index.js.map +1 -0
  17. package/dist/core/schemas/chat.d.ts +83 -56
  18. package/dist/core/schemas/chat.d.ts.map +1 -0
  19. package/dist/core/schemas/chat.js +27 -25
  20. package/dist/core/schemas/chat.js.map +1 -0
  21. package/dist/core/schemas/index.d.ts.map +1 -0
  22. package/dist/core/schemas/index.js.map +1 -0
  23. package/dist/core/store/chat-store.d.ts +28 -22
  24. package/dist/core/store/chat-store.d.ts.map +1 -0
  25. package/dist/core/store/chat-store.js +59 -50
  26. package/dist/core/store/chat-store.js.map +1 -0
  27. package/dist/gui/components/Button.d.ts +23 -7
  28. package/dist/gui/components/Button.d.ts.map +1 -0
  29. package/dist/gui/components/Button.js +40 -27
  30. package/dist/gui/components/Button.js.map +1 -0
  31. package/dist/gui/components/Card.d.ts +26 -7
  32. package/dist/gui/components/Card.d.ts.map +1 -0
  33. package/dist/gui/components/Card.js +54 -8
  34. package/dist/gui/components/Card.js.map +1 -0
  35. package/dist/gui/components/ChatInput.d.ts.map +1 -0
  36. package/dist/gui/components/ChatInput.js.map +1 -0
  37. package/dist/gui/components/ChatInterface.d.ts +12 -0
  38. package/dist/gui/components/ChatInterface.d.ts.map +1 -0
  39. package/dist/gui/components/ChatInterface.js +204 -0
  40. package/dist/gui/components/ChatInterface.js.map +1 -0
  41. package/dist/gui/components/ChatPreview.d.ts +12 -0
  42. package/dist/gui/components/ChatPreview.d.ts.map +1 -0
  43. package/dist/gui/components/ChatPreview.js +214 -0
  44. package/dist/gui/components/ChatPreview.js.map +1 -0
  45. package/dist/gui/components/ChatSecondaryPanel.d.ts +14 -11
  46. package/dist/gui/components/ChatSecondaryPanel.d.ts.map +1 -0
  47. package/dist/gui/components/ChatSecondaryPanel.js +115 -38
  48. package/dist/gui/components/ChatSecondaryPanel.js.map +1 -0
  49. package/dist/gui/components/ChatStatus.d.ts +4 -2
  50. package/dist/gui/components/ChatStatus.d.ts.map +1 -0
  51. package/dist/gui/components/ChatStatus.js +45 -34
  52. package/dist/gui/components/ChatStatus.js.map +1 -0
  53. package/dist/gui/components/ChatView.d.ts +8 -0
  54. package/dist/gui/components/ChatView.d.ts.map +1 -0
  55. package/dist/gui/components/ChatView.js +42 -0
  56. package/dist/gui/components/ChatView.js.map +1 -0
  57. package/dist/gui/components/ConfigPanel.d.ts +20 -0
  58. package/dist/gui/components/ConfigPanel.d.ts.map +1 -0
  59. package/dist/gui/components/ConfigPanel.js +225 -0
  60. package/dist/gui/components/ConfigPanel.js.map +1 -0
  61. package/dist/gui/components/Conversation.d.ts +17 -14
  62. package/dist/gui/components/Conversation.d.ts.map +1 -0
  63. package/dist/gui/components/Conversation.js +143 -83
  64. package/dist/gui/components/Conversation.js.map +1 -0
  65. package/dist/gui/components/Dialog.d.ts +57 -11
  66. package/dist/gui/components/Dialog.d.ts.map +1 -0
  67. package/dist/gui/components/Dialog.js +84 -8
  68. package/dist/gui/components/Dialog.js.map +1 -0
  69. package/dist/gui/components/HeightTransition.d.ts +12 -7
  70. package/dist/gui/components/HeightTransition.d.ts.map +1 -0
  71. package/dist/gui/components/HeightTransition.js +88 -77
  72. package/dist/gui/components/HeightTransition.js.map +1 -0
  73. package/dist/gui/components/Input.d.ts +13 -6
  74. package/dist/gui/components/Input.d.ts.map +1 -0
  75. package/dist/gui/components/Input.js +27 -16
  76. package/dist/gui/components/Input.js.map +1 -0
  77. package/dist/gui/components/InputBox.d.ts +21 -0
  78. package/dist/gui/components/InputBox.d.ts.map +1 -0
  79. package/dist/gui/components/InputBox.js +90 -0
  80. package/dist/gui/components/InputBox.js.map +1 -0
  81. package/dist/gui/components/Label.d.ts +7 -1
  82. package/dist/gui/components/Label.d.ts.map +1 -0
  83. package/dist/gui/components/Label.js +12 -2
  84. package/dist/gui/components/Label.js.map +1 -0
  85. package/dist/gui/components/MarkdownRenderer.d.ts +6 -4
  86. package/dist/gui/components/MarkdownRenderer.d.ts.map +1 -0
  87. package/dist/gui/components/MarkdownRenderer.js +178 -81
  88. package/dist/gui/components/MarkdownRenderer.js.map +1 -0
  89. package/dist/gui/components/Message.d.ts.map +1 -0
  90. package/dist/gui/components/Message.js.map +1 -0
  91. package/dist/gui/components/MessageContent.d.ts +29 -22
  92. package/dist/gui/components/MessageContent.d.ts.map +1 -0
  93. package/dist/gui/components/MessageContent.js.map +1 -0
  94. package/dist/gui/components/MessageList.d.ts.map +1 -0
  95. package/dist/gui/components/MessageList.js.map +1 -0
  96. package/dist/gui/components/PlaygroundLayout.d.ts +14 -0
  97. package/dist/gui/components/PlaygroundLayout.d.ts.map +1 -0
  98. package/dist/gui/components/PlaygroundLayout.js +49 -0
  99. package/dist/gui/components/PlaygroundLayout.js.map +1 -0
  100. package/dist/gui/components/Reasoning.d.ts +30 -24
  101. package/dist/gui/components/Reasoning.d.ts.map +1 -0
  102. package/dist/gui/components/Reasoning.js +187 -60
  103. package/dist/gui/components/Reasoning.js.map +1 -0
  104. package/dist/gui/components/Response.d.ts +11 -9
  105. package/dist/gui/components/Response.d.ts.map +1 -0
  106. package/dist/gui/components/Response.js +229 -90
  107. package/dist/gui/components/Response.js.map +1 -0
  108. package/dist/gui/components/Select.d.ts +69 -10
  109. package/dist/gui/components/Select.d.ts.map +1 -0
  110. package/dist/gui/components/Select.js +118 -12
  111. package/dist/gui/components/Select.js.map +1 -0
  112. package/dist/gui/components/StatusBar.d.ts +12 -0
  113. package/dist/gui/components/StatusBar.d.ts.map +1 -0
  114. package/dist/gui/components/StatusBar.js +58 -0
  115. package/dist/gui/components/StatusBar.js.map +1 -0
  116. package/dist/gui/components/Tabs.d.ts +24 -4
  117. package/dist/gui/components/Tabs.d.ts.map +1 -0
  118. package/dist/gui/components/Tabs.js +32 -4
  119. package/dist/gui/components/Tabs.js.map +1 -0
  120. package/dist/gui/components/Task.d.ts +28 -24
  121. package/dist/gui/components/Task.d.ts.map +1 -0
  122. package/dist/gui/components/Task.js +164 -31
  123. package/dist/gui/components/Task.js.map +1 -0
  124. package/dist/gui/components/Textarea.d.ts +15 -7
  125. package/dist/gui/components/Textarea.d.ts.map +1 -0
  126. package/dist/gui/components/Textarea.js +63 -46
  127. package/dist/gui/components/Textarea.js.map +1 -0
  128. package/dist/gui/components/ThinkingBlock.d.ts +20 -10
  129. package/dist/gui/components/ThinkingBlock.d.ts.map +1 -0
  130. package/dist/gui/components/ThinkingBlock.js +134 -35
  131. package/dist/gui/components/ThinkingBlock.js.map +1 -0
  132. package/dist/gui/components/TodoList.d.ts +12 -10
  133. package/dist/gui/components/TodoList.d.ts.map +1 -0
  134. package/dist/gui/components/TodoList.js +22 -7
  135. package/dist/gui/components/TodoList.js.map +1 -0
  136. package/dist/gui/components/TodoListItem.d.ts +9 -6
  137. package/dist/gui/components/TodoListItem.d.ts.map +1 -0
  138. package/dist/gui/components/TodoListItem.js +18 -4
  139. package/dist/gui/components/TodoListItem.js.map +1 -0
  140. package/dist/gui/components/index.d.ts.map +1 -0
  141. package/dist/gui/components/index.js.map +1 -0
  142. package/dist/gui/index.d.ts.map +1 -0
  143. package/dist/gui/index.js.map +1 -0
  144. package/dist/gui/lib/utils.d.ts.map +1 -0
  145. package/dist/gui/lib/utils.js +1 -1
  146. package/dist/gui/lib/utils.js.map +1 -0
  147. package/dist/index.d.ts.map +1 -0
  148. package/dist/index.js.map +1 -0
  149. package/dist/index.test.js +0 -1
  150. package/dist/sdk/client/acp-client.d.ts +88 -76
  151. package/dist/sdk/client/acp-client.d.ts.map +1 -0
  152. package/dist/sdk/client/acp-client.js +215 -217
  153. package/dist/sdk/client/acp-client.js.map +1 -0
  154. package/dist/sdk/client/index.d.ts.map +1 -0
  155. package/dist/sdk/client/index.js.map +1 -0
  156. package/dist/sdk/index.d.ts.map +1 -0
  157. package/dist/sdk/index.js.map +1 -0
  158. package/dist/sdk/schemas/agent.d.ts +111 -64
  159. package/dist/sdk/schemas/agent.d.ts.map +1 -0
  160. package/dist/sdk/schemas/agent.js +24 -24
  161. package/dist/sdk/schemas/agent.js.map +1 -0
  162. package/dist/sdk/schemas/index.d.ts.map +1 -0
  163. package/dist/sdk/schemas/index.js.map +1 -0
  164. package/dist/sdk/schemas/message.d.ts +245 -147
  165. package/dist/sdk/schemas/message.d.ts.map +1 -0
  166. package/dist/sdk/schemas/message.js +40 -40
  167. package/dist/sdk/schemas/message.js.map +1 -0
  168. package/dist/sdk/schemas/session.d.ts +219 -135
  169. package/dist/sdk/schemas/session.d.ts.map +1 -0
  170. package/dist/sdk/schemas/session.js +27 -27
  171. package/dist/sdk/schemas/session.js.map +1 -0
  172. package/dist/sdk/transports/http.d.ts +55 -55
  173. package/dist/sdk/transports/http.d.ts.map +1 -0
  174. package/dist/sdk/transports/http.js +472 -469
  175. package/dist/sdk/transports/http.js.map +1 -0
  176. package/dist/sdk/transports/index.d.ts.map +1 -0
  177. package/dist/sdk/transports/index.js.map +1 -0
  178. package/dist/sdk/transports/stdio.d.ts +20 -20
  179. package/dist/sdk/transports/stdio.d.ts.map +1 -0
  180. package/dist/sdk/transports/stdio.js.map +1 -0
  181. package/dist/sdk/transports/types.d.ts +42 -42
  182. package/dist/sdk/transports/types.d.ts.map +1 -0
  183. package/dist/sdk/transports/types.js.map +1 -0
  184. package/dist/sdk/transports/websocket.d.ts +12 -12
  185. package/dist/sdk/transports/websocket.d.ts.map +1 -0
  186. package/dist/sdk/transports/websocket.js +52 -46
  187. package/dist/sdk/transports/websocket.js.map +1 -0
  188. package/dist/tui/components/ChatView.d.ts +4 -2
  189. package/dist/tui/components/ChatView.d.ts.map +1 -0
  190. package/dist/tui/components/ChatView.js +51 -18
  191. package/dist/tui/components/ChatView.js.map +1 -0
  192. package/dist/tui/components/GameOfLife.d.ts.map +1 -0
  193. package/dist/tui/components/GameOfLife.js +64 -35
  194. package/dist/tui/components/GameOfLife.js.map +1 -0
  195. package/dist/tui/components/InputBox.d.ts +18 -11
  196. package/dist/tui/components/InputBox.d.ts.map +1 -0
  197. package/dist/tui/components/InputBox.js +70 -10
  198. package/dist/tui/components/InputBox.js.map +1 -0
  199. package/dist/tui/components/MessageList.d.ts +4 -2
  200. package/dist/tui/components/MessageList.d.ts.map +1 -0
  201. package/dist/tui/components/MessageList.js +37 -10
  202. package/dist/tui/components/MessageList.js.map +1 -0
  203. package/dist/tui/components/ReadlineInput.d.ts +12 -6
  204. package/dist/tui/components/ReadlineInput.d.ts.map +1 -0
  205. package/dist/tui/components/ReadlineInput.js +252 -237
  206. package/dist/tui/components/ReadlineInput.js.map +1 -0
  207. package/dist/tui/components/SingleSelect.d.ts +15 -9
  208. package/dist/tui/components/SingleSelect.js +84 -43
  209. package/dist/tui/components/StatusBar.d.ts +11 -6
  210. package/dist/tui/components/StatusBar.d.ts.map +1 -0
  211. package/dist/tui/components/StatusBar.js +102 -67
  212. package/dist/tui/components/StatusBar.js.map +1 -0
  213. package/dist/tui/components/index.d.ts.map +1 -0
  214. package/dist/tui/components/index.js.map +1 -0
  215. package/dist/tui/index.d.ts.map +1 -0
  216. package/dist/tui/index.js.map +1 -0
  217. package/package.json +2 -2
@@ -2,85 +2,182 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import ReactMarkdown from "react-markdown";
3
3
  import remarkGfm from "remark-gfm";
4
4
  import { cn } from "../lib/utils.js";
5
- export function MarkdownRenderer({ content, className, }) {
6
- if (!content) {
7
- return null;
8
- }
9
- const components = {
10
- // Table styling
11
- table: ({ node, ...props }) => (_jsx("div", { className: "overflow-x-auto my-4", children: _jsx("table", { className: "min-w-full border-collapse border border-border rounded-md", ...props }) })),
12
- thead: ({ node, ...props }) => (_jsx("thead", { className: "bg-card border-b border-border", ...props })),
13
- tbody: ({ node, ...props }) => _jsx("tbody", { ...props }),
14
- tr: ({ node, ...props }) => (_jsx("tr", { className: "border-b border-border hover:bg-card transition-colors", ...props })),
15
- th: ({ node, ...props }) => (_jsx("th", { className: "px-4 py-2 text-left font-semibold text-foreground border-r border-border last:border-r-0", ...props })),
16
- td: ({ node, ...props }) => (_jsx("td", { className: "px-4 py-2 text-foreground border-r border-border last:border-r-0", ...props })),
17
- // Task list styling
18
- input: ({ node, checked, ...props }) => {
19
- if (props.type === "checkbox") {
20
- return (_jsx("input", { type: "checkbox", checked: checked || false, disabled: true, readOnly: true, className: "mr-2 w-4 h-4 accent-[primary] cursor-not-allowed", ...props }));
21
- }
22
- return _jsx("input", { ...props });
23
- },
24
- // Code block styling
25
- code: ({ node, ...props }) => {
26
- const inline = !props.className?.includes("language-");
27
- if (inline) {
28
- return (_jsx("code", { className: "px-1.5 py-0.5 bg-card border border-border rounded text-sm font-mono text-foreground", ...props }));
29
- }
30
- return (_jsx("code", { className: "block p-4 bg-card border border-border rounded-md overflow-x-auto text-sm font-mono text-foreground", ...props }));
31
- },
32
- pre: ({ node, ...props }) => _jsx("pre", { className: "my-4", ...props }),
33
- // Heading styling
34
- h1: ({ node, ...props }) => (_jsx("h1", { className: "text-2xl font-bold mt-6 mb-4 text-foreground", ...props })),
35
- h2: ({ node, ...props }) => (_jsx("h2", { className: "text-xl font-semibold mt-5 mb-3 text-foreground", ...props })),
36
- h3: ({ node, ...props }) => (_jsx("h3", { className: "text-lg font-semibold mt-4 mb-2 text-foreground", ...props })),
37
- // List styling
38
- ul: ({ node, ...props }) => {
39
- // Check if this is a task list by looking for checkbox inputs in children
40
- const isTaskList = node?.children?.some((child) => typeof child === "object" &&
41
- child !== null &&
42
- "type" in child &&
43
- child.type === "element" &&
44
- "tagName" in child &&
45
- child.tagName === "li" &&
46
- "children" in child &&
47
- Array.isArray(child.children) &&
48
- child.children.some((grandChild) => typeof grandChild === "object" &&
49
- grandChild !== null &&
50
- "type" in grandChild &&
51
- grandChild.type === "element" &&
52
- "tagName" in grandChild &&
53
- grandChild.tagName === "input" &&
54
- "properties" in grandChild &&
55
- typeof grandChild.properties === "object" &&
56
- grandChild.properties !== null &&
57
- "type" in grandChild.properties &&
58
- grandChild.properties.type === "checkbox"));
59
- return (_jsx("ul", { className: cn("my-2 space-y-1 text-foreground", isTaskList ? "list-none space-y-2" : "list-disc list-inside"), ...props }));
60
- },
61
- ol: ({ node, ...props }) => (_jsx("ol", { className: "list-decimal list-inside my-2 space-y-1 text-foreground", ...props })),
62
- // List item styling
63
- li: ({ node, ...props }) => {
64
- // Check if this li contains a checkbox (task list item)
65
- const isTaskListItem = node?.children?.some((child) => typeof child === "object" &&
66
- child !== null &&
67
- "type" in child &&
68
- child.type === "element" &&
69
- "tagName" in child &&
70
- child.tagName === "input" &&
71
- "properties" in child &&
72
- typeof child.properties === "object" &&
73
- child.properties !== null &&
74
- "type" in child.properties &&
75
- child.properties.type === "checkbox");
76
- return (_jsx("li", { className: cn("flex items-start", isTaskListItem ? "gap-2" : "ml-2"), ...props }));
77
- },
78
- // Link styling
79
- a: ({ node, ...props }) => (_jsx("a", { className: "text-primary hover:underline", target: "_blank", rel: "noopener noreferrer", ...props })),
80
- // Paragraph styling
81
- p: ({ node, ...props }) => (_jsx("p", { className: "my-2 text-foreground leading-relaxed", ...props })),
82
- // Blockquote styling
83
- blockquote: ({ node, ...props }) => (_jsx("blockquote", { className: "border-l-4 border-[primary] pl-4 italic my-4 text-foreground bg-card py-2", ...props })),
84
- };
85
- return (_jsx("div", { className: cn("markdown-content prose prose-sm max-w-none dark:prose-invert", className), children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], components: components, children: content }) }));
5
+ export function MarkdownRenderer({ content, className }) {
6
+ if (!content) {
7
+ return null;
8
+ }
9
+ const components = {
10
+ // Table styling
11
+ table: ({ node, ...props }) =>
12
+ _jsx("div", {
13
+ className: "overflow-x-auto my-4",
14
+ children: _jsx("table", {
15
+ className:
16
+ "min-w-full border-collapse border border-border rounded-md",
17
+ ...props,
18
+ }),
19
+ }),
20
+ thead: ({ node, ...props }) =>
21
+ _jsx("thead", { className: "bg-card border-b border-border", ...props }),
22
+ tbody: ({ node, ...props }) => _jsx("tbody", { ...props }),
23
+ tr: ({ node, ...props }) =>
24
+ _jsx("tr", {
25
+ className: "border-b border-border hover:bg-card transition-colors",
26
+ ...props,
27
+ }),
28
+ th: ({ node, ...props }) =>
29
+ _jsx("th", {
30
+ className:
31
+ "px-4 py-2 text-left font-semibold text-foreground border-r border-border last:border-r-0",
32
+ ...props,
33
+ }),
34
+ td: ({ node, ...props }) =>
35
+ _jsx("td", {
36
+ className:
37
+ "px-4 py-2 text-foreground border-r border-border last:border-r-0",
38
+ ...props,
39
+ }),
40
+ // Task list styling
41
+ input: ({ node, checked, ...props }) => {
42
+ if (props.type === "checkbox") {
43
+ return _jsx("input", {
44
+ type: "checkbox",
45
+ checked: checked || false,
46
+ disabled: true,
47
+ readOnly: true,
48
+ className: "mr-2 w-4 h-4 accent-[primary] cursor-not-allowed",
49
+ ...props,
50
+ });
51
+ }
52
+ return _jsx("input", { ...props });
53
+ },
54
+ // Code block styling
55
+ code: ({ node, ...props }) => {
56
+ const inline = !props.className?.includes("language-");
57
+ if (inline) {
58
+ return _jsx("code", {
59
+ className:
60
+ "px-1.5 py-0.5 bg-card border border-border rounded text-sm font-mono text-foreground",
61
+ ...props,
62
+ });
63
+ }
64
+ return _jsx("code", {
65
+ className:
66
+ "block p-4 bg-card border border-border rounded-md overflow-x-auto text-sm font-mono text-foreground",
67
+ ...props,
68
+ });
69
+ },
70
+ pre: ({ node, ...props }) => _jsx("pre", { className: "my-4", ...props }),
71
+ // Heading styling
72
+ h1: ({ node, ...props }) =>
73
+ _jsx("h1", {
74
+ className: "text-2xl font-bold mt-6 mb-4 text-foreground",
75
+ ...props,
76
+ }),
77
+ h2: ({ node, ...props }) =>
78
+ _jsx("h2", {
79
+ className: "text-xl font-semibold mt-5 mb-3 text-foreground",
80
+ ...props,
81
+ }),
82
+ h3: ({ node, ...props }) =>
83
+ _jsx("h3", {
84
+ className: "text-lg font-semibold mt-4 mb-2 text-foreground",
85
+ ...props,
86
+ }),
87
+ // List styling
88
+ ul: ({ node, ...props }) => {
89
+ // Check if this is a task list by looking for checkbox inputs in children
90
+ const isTaskList = node?.children?.some(
91
+ (child) =>
92
+ typeof child === "object" &&
93
+ child !== null &&
94
+ "type" in child &&
95
+ child.type === "element" &&
96
+ "tagName" in child &&
97
+ child.tagName === "li" &&
98
+ "children" in child &&
99
+ Array.isArray(child.children) &&
100
+ child.children.some(
101
+ (grandChild) =>
102
+ typeof grandChild === "object" &&
103
+ grandChild !== null &&
104
+ "type" in grandChild &&
105
+ grandChild.type === "element" &&
106
+ "tagName" in grandChild &&
107
+ grandChild.tagName === "input" &&
108
+ "properties" in grandChild &&
109
+ typeof grandChild.properties === "object" &&
110
+ grandChild.properties !== null &&
111
+ "type" in grandChild.properties &&
112
+ grandChild.properties.type === "checkbox",
113
+ ),
114
+ );
115
+ return _jsx("ul", {
116
+ className: cn(
117
+ "my-2 space-y-1 text-foreground",
118
+ isTaskList ? "list-none space-y-2" : "list-disc list-inside",
119
+ ),
120
+ ...props,
121
+ });
122
+ },
123
+ ol: ({ node, ...props }) =>
124
+ _jsx("ol", {
125
+ className: "list-decimal list-inside my-2 space-y-1 text-foreground",
126
+ ...props,
127
+ }),
128
+ // List item styling
129
+ li: ({ node, ...props }) => {
130
+ // Check if this li contains a checkbox (task list item)
131
+ const isTaskListItem = node?.children?.some(
132
+ (child) =>
133
+ typeof child === "object" &&
134
+ child !== null &&
135
+ "type" in child &&
136
+ child.type === "element" &&
137
+ "tagName" in child &&
138
+ child.tagName === "input" &&
139
+ "properties" in child &&
140
+ typeof child.properties === "object" &&
141
+ child.properties !== null &&
142
+ "type" in child.properties &&
143
+ child.properties.type === "checkbox",
144
+ );
145
+ return _jsx("li", {
146
+ className: cn("flex items-start", isTaskListItem ? "gap-2" : "ml-2"),
147
+ ...props,
148
+ });
149
+ },
150
+ // Link styling
151
+ a: ({ node, ...props }) =>
152
+ _jsx("a", {
153
+ className: "text-primary hover:underline",
154
+ target: "_blank",
155
+ rel: "noopener noreferrer",
156
+ ...props,
157
+ }),
158
+ // Paragraph styling
159
+ p: ({ node, ...props }) =>
160
+ _jsx("p", {
161
+ className: "my-2 text-foreground leading-relaxed",
162
+ ...props,
163
+ }),
164
+ // Blockquote styling
165
+ blockquote: ({ node, ...props }) =>
166
+ _jsx("blockquote", {
167
+ className:
168
+ "border-l-4 border-[primary] pl-4 italic my-4 text-foreground bg-card py-2",
169
+ ...props,
170
+ }),
171
+ };
172
+ return _jsx("div", {
173
+ className: cn(
174
+ "markdown-content prose prose-sm max-w-none dark:prose-invert",
175
+ className,
176
+ ),
177
+ children: _jsx(ReactMarkdown, {
178
+ remarkPlugins: [remarkGfm],
179
+ components: components,
180
+ children: content,
181
+ }),
182
+ });
86
183
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownRenderer.js","sourceRoot":"","sources":["../../../src/gui/components/MarkdownRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAOrC,MAAM,UAAU,gBAAgB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAyB;IAC5E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAe;QAC7B,gBAAgB;QAChB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAC7B,cAAK,SAAS,EAAC,sBAAsB,YACnC,gBACE,SAAS,EAAC,2EAA2E,KACjF,KAAK,GACT,GACE,CACP;QACD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAC7B,gBACE,SAAS,EAAC,iEAAiE,KACvE,KAAK,GACT,CACH;QACD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,mBAAW,KAAK,GAAI;QACnD,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAC1B,aACE,SAAS,EAAC,yFAAyF,KAC/F,KAAK,GACT,CACH;QACD,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAC1B,aACE,SAAS,EAAC,kHAAkH,KACxH,KAAK,GACT,CACH;QACD,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAC1B,aACE,SAAS,EAAC,0FAA0F,KAChG,KAAK,GACT,CACH;QACD,oBAAoB;QACpB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC9B,OAAO,CACL,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,OAAO,IAAI,KAAK,EACzB,QAAQ,QACR,QAAQ,QACR,SAAS,EAAC,8DAA8D,KACpE,KAAK,GACT,CACH,CAAC;YACJ,CAAC;YACD,OAAO,mBAAW,KAAK,GAAI,CAAC;QAC9B,CAAC;QACD,qBAAqB;QACrB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;YAC3B,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;YACvD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CACL,eACE,SAAS,EAAC,gIAAgI,KACtI,KAAK,GACT,CACH,CAAC;YACJ,CAAC;YACD,OAAO,CACL,eACE,SAAS,EAAC,+IAA+I,KACrJ,KAAK,GACT,CACH,CAAC;QACJ,CAAC;QACD,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,cAAK,SAAS,EAAC,MAAM,KAAK,KAAK,GAAI;QAChE,kBAAkB;QAClB,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAC1B,aACE,SAAS,EAAC,uDAAuD,KAC7D,KAAK,GACT,CACH;QACD,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAC1B,aACE,SAAS,EAAC,0DAA0D,KAChE,KAAK,GACT,CACH;QACD,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAC1B,aACE,SAAS,EAAC,0DAA0D,KAChE,KAAK,GACT,CACH;QACD,eAAe;QACf,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;YACzB,0EAA0E;YAC1E,MAAM,UAAU,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CACrC,CAAC,KAAU,EAAE,EAAE,CACb,KAAK,CAAC,IAAI,KAAK,SAAS;gBACxB,KAAK,CAAC,OAAO,KAAK,IAAI;gBACtB,KAAK,CAAC,QAAQ,EAAE,IAAI,CAClB,CAAC,UAAe,EAAE,EAAE,CAClB,UAAU,CAAC,IAAI,KAAK,SAAS;oBAC7B,UAAU,CAAC,OAAO,KAAK,OAAO;oBAC9B,UAAU,CAAC,UAAU,EAAE,IAAI,KAAK,UAAU,CAC7C,CACJ,CAAC;YACF,OAAO,CACL,aACE,SAAS,EAAE,EAAE,CACX,yCAAyC,EACzC,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,uBAAuB,CAC7D,KACG,KAAK,GACT,CACH,CAAC;QACJ,CAAC;QACD,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAC1B,aACE,SAAS,EAAC,kEAAkE,KACxE,KAAK,GACT,CACH;QACD,oBAAoB;QACpB,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;YACzB,wDAAwD;YACxD,MAAM,cAAc,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CACzC,CAAC,KAAU,EAAE,EAAE,CACb,KAAK,CAAC,IAAI,KAAK,SAAS;gBACxB,KAAK,CAAC,OAAO,KAAK,OAAO;gBACzB,KAAK,CAAC,UAAU,EAAE,IAAI,KAAK,UAAU,CACxC,CAAC;YACF,OAAO,CACL,aACE,SAAS,EAAE,EAAE,CACX,kBAAkB,EAClB,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAClC,KACG,KAAK,GACT,CACH,CAAC;QACJ,CAAC;QACD,eAAe;QACf,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CACzB,YACE,SAAS,EAAC,4CAA4C,EACtD,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,KACrB,KAAK,GACT,CACH;QACD,oBAAoB;QACpB,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CACzB,YAAG,SAAS,EAAC,+CAA+C,KAAK,KAAK,GAAI,CAC3E;QACD,qBAAqB;QACrB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAClC,qBACE,SAAS,EAAC,kHAAkH,KACxH,KAAK,GACT,CACH;KACF,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,8DAA8D,EAAE,SAAS,CAAC,YAC3F,KAAC,aAAa,IAAC,aAAa,EAAE,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,YAC9D,OAAO,GACM,GACZ,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../../../src/gui/components/Message.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;GAGG;AAEH,QAAA,MAAM,eAAe;;;8EAoBpB,CAAC;AAEF,MAAM,WAAW,YACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC1C,YAAY,CAAC,OAAO,eAAe,CAAC;IACtC;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IAEvC,+BAA+B;IAC/B,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IAExC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,OAAO,qFAmBnB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Message.js","sourceRoot":"","sources":["../../../src/gui/components/Message.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAGrC;;;GAGG;AAEH,MAAM,eAAe,GAAG,GAAG,CACzB,qBAAqB,EACrB;IACE,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,IAAI,EAAE,8BAA8B;YACpC,SAAS,EAAE,oBAAoB;YAC/B,MAAM,EAAE,+BAA+B;SACxC;QACD,MAAM,EAAE;YACN,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,aAAa;SACvB;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,SAAS;KAClB;CACF,CACF,CAAC;AAqBF,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CACrC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACpG,sDAAsD;IACtD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;IAEvD,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,SAAS,gBACF,GAAG,IAAI,UAAU,qBACZ,SAAS,EAC1B,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,KACvD,KAAK,YAER,QAAQ,GACL,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC"}
@@ -1,26 +1,33 @@
1
1
  import { type VariantProps } from "class-variance-authority";
2
2
  import * as React from "react";
3
3
  import type { DisplayMessage } from "./MessageList.js";
4
- declare const messageContentVariants: (props?: ({
5
- role?: "user" | "assistant" | "system" | null | undefined;
6
- variant?: "default" | "outline" | "ghost" | null | undefined;
7
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
- export interface MessageContentProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children">, VariantProps<typeof messageContentVariants> {
9
- /** Message role - determines styling */
10
- role?: "user" | "assistant" | "system";
11
- /** Visual variant */
12
- variant?: "default" | "outline" | "ghost";
13
- /** Whether the message is currently streaming */
14
- isStreaming?: boolean;
15
- /**
16
- * Message object for smart rendering (optional)
17
- * When provided, automatically renders thinking, waiting, and content
18
- */
19
- message?: DisplayMessage;
20
- /** Display style for thinking/reasoning blocks (when using smart rendering) */
21
- thinkingDisplayStyle?: "collapsible" | "inline";
22
- /** Custom content (overrides smart rendering) */
23
- children?: React.ReactNode;
4
+ declare const messageContentVariants: (
5
+ props?:
6
+ | ({
7
+ role?: "user" | "assistant" | "system" | null | undefined;
8
+ variant?: "default" | "outline" | "ghost" | null | undefined;
9
+ } & import("class-variance-authority/types").ClassProp)
10
+ | undefined,
11
+ ) => string;
12
+ export interface MessageContentProps
13
+ extends Omit<React.HTMLAttributes<HTMLDivElement>, "children">,
14
+ VariantProps<typeof messageContentVariants> {
15
+ /** Message role - determines styling */
16
+ role?: "user" | "assistant" | "system";
17
+ /** Visual variant */
18
+ variant?: "default" | "outline" | "ghost";
19
+ /** Whether the message is currently streaming */
20
+ isStreaming?: boolean;
21
+ /**
22
+ * Message object for smart rendering (optional)
23
+ * When provided, automatically renders thinking, waiting, and content
24
+ */
25
+ message?: DisplayMessage;
26
+ /** Display style for thinking/reasoning blocks (when using smart rendering) */
27
+ thinkingDisplayStyle?: "collapsible" | "inline";
28
+ /** Custom content (overrides smart rendering) */
29
+ children?: React.ReactNode;
24
30
  }
25
- export declare const MessageContent: React.ForwardRefExoticComponent<MessageContentProps & React.RefAttributes<HTMLDivElement>>;
26
- export {};
31
+ export declare const MessageContent: React.ForwardRefExoticComponent<
32
+ MessageContentProps & React.RefAttributes<HTMLDivElement>
33
+ >;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageContent.d.ts","sourceRoot":"","sources":["../../../src/gui/components/MessageContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA6DvD,QAAA,MAAM,sBAAsB;;;8EAoB3B,CAAC;AAEF,MAAM,WAAW,mBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EAC5D,YAAY,CAAC,OAAO,sBAAsB,CAAC;IAC7C,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IAEvC,qBAAqB;IACrB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAE1C,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB,+EAA+E;IAC/E,oBAAoB,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC;IAEhD,iDAAiD;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,cAAc,4FA+E1B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageContent.js","sourceRoot":"","sources":["../../../src/gui/components/MessageContent.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../src/gui/components/MessageList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEvF;;;GAGG;AAEH,MAAM,MAAM,cAAc,GAAG,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageList.js","sourceRoot":"","sources":["../../../src/gui/components/MessageList.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { type ThemeConfig } from "./ConfigPanel.js";
2
+ declare const DEFAULT_CONFIG: ThemeConfig;
3
+ interface PlaygroundLayoutProps {
4
+ initialConfig?: ThemeConfig;
5
+ initialStatus?: string;
6
+ iframeSrc?: string;
7
+ }
8
+ export declare function PlaygroundLayout({
9
+ initialConfig,
10
+ initialStatus,
11
+ iframeSrc,
12
+ }: PlaygroundLayoutProps): import("react/jsx-runtime").JSX.Element;
13
+ export { DEFAULT_CONFIG };
14
+ //# sourceMappingURL=PlaygroundLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaygroundLayout.d.ts","sourceRoot":"","sources":["../../../src/gui/components/PlaygroundLayout.tsx"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGjE,QAAA,MAAM,cAAc,EAAE,WAMrB,CAAC;AAEF,UAAU,qBAAqB;IAC7B,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,aAA8B,EAC9B,aAAwB,EACxB,SAAS,GACV,EAAE,qBAAqB,2CAwBvB;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { useState } from "react";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { ChatPreview } from "./ChatPreview.js";
4
+ import { ConfigPanel } from "./ConfigPanel.js";
5
+
6
+ const DEFAULT_CONFIG = {
7
+ colorScheme: "light",
8
+ accentColor: "#646cff",
9
+ typography: "Inter",
10
+ fontSize: 16,
11
+ thinkingDisplayStyle: "collapsible",
12
+ };
13
+ export function PlaygroundLayout({
14
+ initialConfig = DEFAULT_CONFIG,
15
+ initialStatus = "v0.1.0",
16
+ iframeSrc,
17
+ }) {
18
+ const [config, setConfig] = useState(initialConfig);
19
+ const [status, setStatus] = useState(initialStatus);
20
+ return _jsx("div", {
21
+ className: "w-full h-screen overflow-hidden",
22
+ "data-theme": config.colorScheme,
23
+ children: _jsxs("div", {
24
+ className: "flex h-full w-full",
25
+ children: [
26
+ _jsx("div", {
27
+ className: "w-[400px] flex-shrink-0 h-full overflow-hidden",
28
+ children: _jsx(ConfigPanel, {
29
+ config: config,
30
+ status: status,
31
+ onConfigChange: setConfig,
32
+ onStatusChange: setStatus,
33
+ }),
34
+ }),
35
+ _jsx("div", {
36
+ className:
37
+ "flex-1 h-full overflow-hidden [background-image:radial-gradient(var(--color-border)_1px,var(--color-bg)_1px)] [background-size:20px_20px] flex items-center justify-center p-5",
38
+ children: _jsx(ChatPreview, {
39
+ config: config,
40
+ status: status,
41
+ iframeSrc: iframeSrc,
42
+ }),
43
+ }),
44
+ ],
45
+ }),
46
+ });
47
+ }
48
+ export { DEFAULT_CONFIG };
49
+ //# sourceMappingURL=PlaygroundLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaygroundLayout.js","sourceRoot":"","sources":["../../../src/gui/components/PlaygroundLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,WAAW,EAAoB,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,cAAc,GAAgB;IAClC,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,OAAO;IACnB,QAAQ,EAAE,EAAE;IACZ,oBAAoB,EAAE,aAAa;CACpC,CAAC;AAQF,MAAM,UAAU,gBAAgB,CAAC,EAC/B,aAAa,GAAG,cAAc,EAC9B,aAAa,GAAG,QAAQ,EACxB,SAAS,GACa;IACtB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAc,aAAa,CAAC,CAAC;IACjE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEpD,OAAO,CACL,cACE,SAAS,EAAC,iCAAiC,gBAC/B,MAAM,CAAC,WAAW,YAE9B,eAAK,SAAS,EAAC,oBAAoB,aACjC,cAAK,SAAS,EAAC,gDAAgD,YAC7D,KAAC,WAAW,IACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,SAAS,EACzB,cAAc,EAAE,SAAS,GACzB,GACE,EACN,cAAK,SAAS,EAAC,gLAAgL,YAC7L,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAI,GACjE,IACF,GACF,CACP,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -4,28 +4,34 @@ import * as React from "react";
4
4
  * Reasoning component inspired by shadcn.io/ai
5
5
  * Displays AI thinking/reasoning process with auto-collapse support
6
6
  */
7
- declare const reasoningContainerVariants: (props?: ({
8
- variant?: "default" | "subtle" | "prominent" | null | undefined;
9
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
- export interface ReasoningProps extends VariantProps<typeof reasoningContainerVariants> {
11
- /** The reasoning/thinking content */
12
- content?: string;
13
- /** Whether the content is currently streaming */
14
- isStreaming?: boolean;
15
- /** Display mode - collapsible or always visible */
16
- mode?: "collapsible" | "inline";
17
- /** Default expanded state (default: false - collapsed by default) */
18
- defaultExpanded?: boolean;
19
- /** Auto-expand when streaming starts (default: false) */
20
- autoExpand?: boolean;
21
- /** Auto-collapse after streaming completes */
22
- autoCollapse?: boolean;
23
- /** Delay before auto-collapsing (ms) */
24
- autoCollapseDelay?: number;
25
- /** Custom label */
26
- label?: string;
27
- /** Additional CSS class */
28
- className?: string;
7
+ declare const reasoningContainerVariants: (
8
+ props?:
9
+ | ({
10
+ variant?: "default" | "subtle" | "prominent" | null | undefined;
11
+ } & import("class-variance-authority/types").ClassProp)
12
+ | undefined,
13
+ ) => string;
14
+ export interface ReasoningProps
15
+ extends VariantProps<typeof reasoningContainerVariants> {
16
+ /** The reasoning/thinking content */
17
+ content?: string;
18
+ /** Whether the content is currently streaming */
19
+ isStreaming?: boolean;
20
+ /** Display mode - collapsible or always visible */
21
+ mode?: "collapsible" | "inline";
22
+ /** Default expanded state (default: false - collapsed by default) */
23
+ defaultExpanded?: boolean;
24
+ /** Auto-expand when streaming starts (default: false) */
25
+ autoExpand?: boolean;
26
+ /** Auto-collapse after streaming completes */
27
+ autoCollapse?: boolean;
28
+ /** Delay before auto-collapsing (ms) */
29
+ autoCollapseDelay?: number;
30
+ /** Custom label */
31
+ label?: string;
32
+ /** Additional CSS class */
33
+ className?: string;
29
34
  }
30
- export declare const Reasoning: React.ForwardRefExoticComponent<ReasoningProps & React.RefAttributes<HTMLDivElement>>;
31
- export {};
35
+ export declare const Reasoning: React.ForwardRefExoticComponent<
36
+ ReasoningProps & React.RefAttributes<HTMLDivElement>
37
+ >;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reasoning.d.ts","sourceRoot":"","sources":["../../../src/gui/components/Reasoning.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE;;;GAGG;AAEH,QAAA,MAAM,0BAA0B;;8EAc/B,CAAC;AAiBF,MAAM,WAAW,cACf,SAAQ,YAAY,CAAC,OAAO,0BAA0B,CAAC;IACvD,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mDAAmD;IACnD,IAAI,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC;IAChC,qEAAqE;IACrE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,uFA+HrB,CAAC"}