@mcp-b/react-components 0.1.1 → 0.1.2

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 (203) hide show
  1. package/dist/Button-QCM8ZKgR.d.ts +98 -0
  2. package/dist/CodeBlock-CttHhWcb.js +356 -0
  3. package/dist/CodeBlock-V6pgafSS.d.ts +174 -0
  4. package/dist/Select-CRsKCJ9x.d.ts +200 -0
  5. package/dist/class-names-9UtZwb0J.js +12 -0
  6. package/dist/components/Accordion.d.ts +81 -0
  7. package/dist/components/Accordion.js +97 -0
  8. package/dist/components/AgentConnection.d.ts +69 -0
  9. package/dist/components/AgentConnection.js +176 -0
  10. package/dist/components/AlertDialog.d.ts +148 -0
  11. package/dist/components/AlertDialog.js +141 -0
  12. package/dist/components/Artifact.d.ts +128 -0
  13. package/dist/components/Artifact.js +115 -0
  14. package/dist/components/Autocomplete.d.ts +186 -0
  15. package/dist/components/Autocomplete.js +186 -0
  16. package/dist/components/Avatar.d.ts +134 -0
  17. package/dist/components/Avatar.js +118 -0
  18. package/dist/components/Badge.d.ts +68 -0
  19. package/dist/components/Badge.js +108 -0
  20. package/dist/components/Button.d.ts +2 -0
  21. package/dist/components/Button.js +73 -0
  22. package/dist/components/Card.d.ts +87 -0
  23. package/dist/components/Card.js +81 -0
  24. package/dist/components/ChainOfThought.d.ts +153 -0
  25. package/dist/components/ChainOfThought.js +157 -0
  26. package/dist/components/Checkbox.d.ts +35 -0
  27. package/dist/components/Checkbox.js +47 -0
  28. package/dist/components/CheckboxGroup.d.ts +76 -0
  29. package/dist/components/CheckboxGroup.js +69 -0
  30. package/dist/components/CodeBlock.d.ts +2 -0
  31. package/dist/components/CodeBlock.js +2 -0
  32. package/dist/components/Collapsible.d.ts +127 -0
  33. package/dist/components/Collapsible.js +103 -0
  34. package/dist/components/Combobox.d.ts +177 -0
  35. package/dist/components/Combobox.js +179 -0
  36. package/dist/components/Commit.d.ts +265 -0
  37. package/dist/components/Commit.js +282 -0
  38. package/dist/components/Context.d.ts +129 -0
  39. package/dist/components/Context.js +309 -0
  40. package/dist/components/ContextMenu.d.ts +282 -0
  41. package/dist/components/ContextMenu.js +270 -0
  42. package/dist/components/Conversation.d.ts +166 -0
  43. package/dist/components/Conversation.js +202 -0
  44. package/dist/components/Dialog.d.ts +120 -0
  45. package/dist/components/Dialog.js +114 -0
  46. package/dist/components/EnvironmentVariables.d.ts +176 -0
  47. package/dist/components/EnvironmentVariables.js +221 -0
  48. package/dist/components/Field.d.ts +281 -0
  49. package/dist/components/Field.js +274 -0
  50. package/dist/components/Fieldset.d.ts +93 -0
  51. package/dist/components/Fieldset.js +81 -0
  52. package/dist/components/FileTree.d.ts +116 -0
  53. package/dist/components/FileTree.js +310 -0
  54. package/dist/components/Form.d.ts +94 -0
  55. package/dist/components/Form.js +88 -0
  56. package/dist/components/GithubMotionMark.d.ts +13 -0
  57. package/dist/components/GithubMotionMark.js +23 -0
  58. package/dist/components/Input.d.ts +33 -0
  59. package/dist/components/Input.js +27 -0
  60. package/dist/components/Label.d.ts +44 -0
  61. package/dist/components/Label.js +41 -0
  62. package/dist/components/Menu.d.ts +395 -0
  63. package/dist/components/Menu.js +338 -0
  64. package/dist/components/Menubar.d.ts +331 -0
  65. package/dist/components/Menubar.js +299 -0
  66. package/dist/components/Message.d.ts +216 -0
  67. package/dist/components/Message.js +245 -0
  68. package/dist/components/Meter.d.ts +151 -0
  69. package/dist/components/Meter.js +121 -0
  70. package/dist/components/ModelSelector.d.ts +198 -0
  71. package/dist/components/ModelSelector.js +306 -0
  72. package/dist/components/NaniteScene.d.ts +33 -0
  73. package/dist/components/NaniteScene.js +405 -0
  74. package/dist/components/NavigationMenu.d.ts +256 -0
  75. package/dist/components/NavigationMenu.js +228 -0
  76. package/dist/components/NumberField.d.ts +159 -0
  77. package/dist/components/NumberField.js +123 -0
  78. package/dist/components/Popover.d.ts +278 -0
  79. package/dist/components/Popover.js +245 -0
  80. package/dist/components/PreviewCard.d.ts +156 -0
  81. package/dist/components/PreviewCard.js +156 -0
  82. package/dist/components/PricingPage.d.ts +209 -0
  83. package/dist/components/PricingPage.js +506 -0
  84. package/dist/components/Progress.d.ts +58 -0
  85. package/dist/components/Progress.js +51 -0
  86. package/dist/components/PromptInput.d.ts +399 -0
  87. package/dist/components/PromptInput.js +737 -0
  88. package/dist/components/Queue.d.ts +241 -0
  89. package/dist/components/Queue.js +225 -0
  90. package/dist/components/RadioGroup.d.ts +78 -0
  91. package/dist/components/RadioGroup.js +72 -0
  92. package/dist/components/Reasoning.d.ts +88 -0
  93. package/dist/components/Reasoning.js +187 -0
  94. package/dist/components/ScrollArea.d.ts +160 -0
  95. package/dist/components/ScrollArea.js +145 -0
  96. package/dist/components/Select.d.ts +2 -0
  97. package/dist/components/Select.js +260 -0
  98. package/dist/components/Separator.d.ts +45 -0
  99. package/dist/components/Separator.js +40 -0
  100. package/dist/components/Shell.d.ts +163 -0
  101. package/dist/components/Shell.js +137 -0
  102. package/dist/components/Slider.d.ts +120 -0
  103. package/dist/components/Slider.js +115 -0
  104. package/dist/components/Sources.d.ts +91 -0
  105. package/dist/components/Sources.js +121 -0
  106. package/dist/components/Stepper.d.ts +190 -0
  107. package/dist/components/Stepper.js +315 -0
  108. package/dist/components/Switch.d.ts +57 -0
  109. package/dist/components/Switch.js +55 -0
  110. package/dist/components/Tabs.d.ts +84 -0
  111. package/dist/components/Tabs.js +78 -0
  112. package/dist/components/Task.d.ts +100 -0
  113. package/dist/components/Task.js +120 -0
  114. package/dist/components/Terminal.d.ts +118 -0
  115. package/dist/components/Terminal.js +234 -0
  116. package/dist/components/TestResults.d.ts +236 -0
  117. package/dist/components/TestResults.js +346 -0
  118. package/dist/components/Toast.d.ts +192 -0
  119. package/dist/components/Toast.js +163 -0
  120. package/dist/components/Toggle.d.ts +69 -0
  121. package/dist/components/Toggle.js +66 -0
  122. package/dist/components/ToggleGroup.d.ts +69 -0
  123. package/dist/components/ToggleGroup.js +99 -0
  124. package/dist/components/Tool.d.ts +119 -0
  125. package/dist/components/Tool.js +192 -0
  126. package/dist/components/Toolbar.d.ts +162 -0
  127. package/dist/components/Toolbar.js +126 -0
  128. package/dist/components/Tooltip.d.ts +81 -0
  129. package/dist/components/Tooltip.js +74 -0
  130. package/dist/components/WebPreview.d.ts +143 -0
  131. package/dist/components/WebPreview.js +280 -0
  132. package/dist/components/useStickToBottom.d.ts +30 -0
  133. package/dist/components/useStickToBottom.js +95 -0
  134. package/dist/copy-button-BIATcZWZ.d.ts +16 -0
  135. package/dist/copy-button-BNgclDrO.js +43 -0
  136. package/dist/icons-BsWc8g4E.js +221 -0
  137. package/dist/styles/accordion.css +10 -10
  138. package/dist/styles/agent-connection.css +18 -17
  139. package/dist/styles/alert-dialog.css +48 -29
  140. package/dist/styles/artifact.css +10 -10
  141. package/dist/styles/autocomplete.css +25 -24
  142. package/dist/styles/avatar.css +96 -6
  143. package/dist/styles/badge.css +78 -14
  144. package/dist/styles/base.css +9 -9
  145. package/dist/styles/button.css +57 -38
  146. package/dist/styles/card.css +57 -10
  147. package/dist/styles/chain-of-thought.css +47 -33
  148. package/dist/styles/checkbox.css +24 -10
  149. package/dist/styles/code-block.css +22 -15
  150. package/dist/styles/collapsible.css +14 -12
  151. package/dist/styles/combobox.css +26 -25
  152. package/dist/styles/commit.css +49 -24
  153. package/dist/styles/context-menu.css +70 -16
  154. package/dist/styles/context.css +15 -15
  155. package/dist/styles/conversation.css +12 -12
  156. package/dist/styles/dialog.css +52 -16
  157. package/dist/styles/environment-variables.css +19 -19
  158. package/dist/styles/field.css +184 -22
  159. package/dist/styles/fieldset.css +5 -4
  160. package/dist/styles/file-tree.css +17 -17
  161. package/dist/styles/index.css.d.ts +1 -0
  162. package/dist/styles/input.css +45 -11
  163. package/dist/styles/label.css +21 -4
  164. package/dist/styles/menu.css +55 -32
  165. package/dist/styles/menubar.css +80 -28
  166. package/dist/styles/message.css +22 -13
  167. package/dist/styles/meter.css +8 -8
  168. package/dist/styles/model-selector.css +33 -21
  169. package/dist/styles/navigation-menu.css +26 -24
  170. package/dist/styles/number-field.css +20 -18
  171. package/dist/styles/popover.css +38 -28
  172. package/dist/styles/preview-card.css +15 -13
  173. package/dist/styles/pricing-page.css +53 -53
  174. package/dist/styles/progress.css +7 -7
  175. package/dist/styles/prompt-input.css +73 -24
  176. package/dist/styles/queue.css +58 -32
  177. package/dist/styles/radio.css +26 -11
  178. package/dist/styles/reasoning.css +15 -11
  179. package/dist/styles/scroll-area.css +6 -6
  180. package/dist/styles/scrollbars.css +4 -4
  181. package/dist/styles/select.css +84 -25
  182. package/dist/styles/separator.css +1 -1
  183. package/dist/styles/shell.css +21 -20
  184. package/dist/styles/slider.css +35 -11
  185. package/dist/styles/sources.css +20 -20
  186. package/dist/styles/stepper.css +22 -22
  187. package/dist/styles/switch.css +29 -13
  188. package/dist/styles/tabs.css +23 -16
  189. package/dist/styles/task.css +27 -23
  190. package/dist/styles/terminal.css +16 -13
  191. package/dist/styles/test-results.css +79 -32
  192. package/dist/styles/toast.css +26 -25
  193. package/dist/styles/toggle-group.css +12 -12
  194. package/dist/styles/toggle.css +29 -11
  195. package/dist/styles/tool.css +54 -32
  196. package/dist/styles/toolbar.css +30 -28
  197. package/dist/styles/tooltip.css +10 -8
  198. package/dist/styles/web-preview.css +37 -21
  199. package/dist/utils/structured-code.d.ts +10 -0
  200. package/dist/utils/structured-code.js +81 -0
  201. package/package.json +16 -7
  202. package/dist/index.d.ts +0 -7236
  203. package/dist/index.js +0 -8945
@@ -0,0 +1,299 @@
1
+ import { c as ChevronRightIcon, o as CheckIcon, u as DotIcon } from "../icons-BsWc8g4E.js";
2
+ import "react";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { Menu } from "@base-ui/react/menu";
5
+ import { Menubar as Menubar$1 } from "@base-ui/react/menubar";
6
+ //#region src/components/Menubar.tsx
7
+ /**
8
+ * Root menubar container.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <Menubar.Root>
13
+ * <Menubar.Menu>
14
+ * <Menubar.Trigger>File</Menubar.Trigger>
15
+ * <Menubar.Portal>
16
+ * <Menubar.Positioner>
17
+ * <Menubar.Popup>
18
+ * <Menubar.Item>New</Menubar.Item>
19
+ * <Menubar.Item>Open</Menubar.Item>
20
+ * <Menubar.Item>Save</Menubar.Item>
21
+ * </Menubar.Popup>
22
+ * </Menubar.Positioner>
23
+ * </Menubar.Portal>
24
+ * </Menubar.Menu>
25
+ * </Menubar.Root>
26
+ * ```
27
+ *
28
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
29
+ */
30
+ function MenubarRoot({ className = "", ref, ...props }) {
31
+ return /* @__PURE__ */ jsx(Menubar$1, {
32
+ ref,
33
+ "data-slot": "menubar",
34
+ className: ["menubar", className].filter(Boolean).join(" "),
35
+ ...props
36
+ });
37
+ }
38
+ /**
39
+ * Individual menu within the menubar.
40
+ */
41
+ const MenubarMenu = (props) => {
42
+ return /* @__PURE__ */ jsx(Menu.Root, { ...props });
43
+ };
44
+ /**
45
+ * Button that opens the menu.
46
+ */
47
+ function MenubarTrigger({ className = "", ref, ...props }) {
48
+ const classes = ["menubar__trigger", className].filter(Boolean).join(" ");
49
+ return /* @__PURE__ */ jsx(Menu.Trigger, {
50
+ ref,
51
+ "data-slot": "menubar-trigger",
52
+ className: classes,
53
+ ...props
54
+ });
55
+ }
56
+ /**
57
+ * Renders menu content in a portal.
58
+ */
59
+ const MenubarPortal = (props) => {
60
+ return /* @__PURE__ */ jsx(Menu.Portal, {
61
+ "data-slot": "menubar-portal",
62
+ ...props
63
+ });
64
+ };
65
+ /**
66
+ * Positions the menu popup.
67
+ */
68
+ function MenubarPositioner({ className = "", ref, ...props }) {
69
+ const classes = ["menubar__positioner", className].filter(Boolean).join(" ");
70
+ return /* @__PURE__ */ jsx(Menu.Positioner, {
71
+ ref,
72
+ "data-slot": "menubar-positioner",
73
+ className: classes,
74
+ ...props
75
+ });
76
+ }
77
+ /**
78
+ * Container for menu items.
79
+ */
80
+ function MenubarPopup({ className = "", ref, ...props }) {
81
+ const classes = ["menubar__popup", className].filter(Boolean).join(" ");
82
+ return /* @__PURE__ */ jsx(Menu.Popup, {
83
+ ref,
84
+ "data-slot": "menubar-content",
85
+ className: classes,
86
+ ...props
87
+ });
88
+ }
89
+ function MenubarContent({ anchor, positionMethod, side, sideOffset = 8, align = "start", alignOffset = -4, collisionBoundary, collisionPadding, sticky, arrowPadding, disableAnchorTracking, collisionAvoidance, ...props }) {
90
+ return /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(MenubarPositioner, {
91
+ anchor,
92
+ positionMethod,
93
+ side,
94
+ sideOffset,
95
+ align,
96
+ alignOffset,
97
+ collisionBoundary,
98
+ collisionPadding,
99
+ sticky,
100
+ arrowPadding,
101
+ disableAnchorTracking,
102
+ collisionAvoidance,
103
+ children: /* @__PURE__ */ jsx(MenubarPopup, { ...props })
104
+ }) });
105
+ }
106
+ /**
107
+ * Interactive menu item.
108
+ */
109
+ function MenubarItem({ className = "", inset, variant = "default", ref, ...props }) {
110
+ const classes = [
111
+ "menubar__item",
112
+ inset && "menubar__item--inset",
113
+ className
114
+ ].filter(Boolean).join(" ");
115
+ return /* @__PURE__ */ jsx(Menu.Item, {
116
+ ref,
117
+ "data-slot": "menubar-item",
118
+ "data-inset": inset || void 0,
119
+ "data-variant": variant,
120
+ className: classes,
121
+ ...props
122
+ });
123
+ }
124
+ /**
125
+ * Visual separator between menu sections.
126
+ */
127
+ function MenubarSeparator({ className = "", ref, ...props }) {
128
+ const classes = ["menubar__separator", className].filter(Boolean).join(" ");
129
+ return /* @__PURE__ */ jsx(Menu.Separator, {
130
+ ref,
131
+ "data-slot": "menubar-separator",
132
+ className: classes,
133
+ ...props
134
+ });
135
+ }
136
+ /**
137
+ * Groups related menu items.
138
+ */
139
+ function MenubarGroup({ className = "", ref, ...props }) {
140
+ const classes = ["menubar__group", className].filter(Boolean).join(" ");
141
+ return /* @__PURE__ */ jsx(Menu.Group, {
142
+ ref,
143
+ "data-slot": "menubar-group",
144
+ className: classes,
145
+ ...props
146
+ });
147
+ }
148
+ /**
149
+ * Label for a menu item group.
150
+ */
151
+ function MenubarGroupLabel({ className = "", inset, ref, ...props }) {
152
+ const classes = [
153
+ "menubar__group-label",
154
+ inset && "menubar__group-label--inset",
155
+ className
156
+ ].filter(Boolean).join(" ");
157
+ return /* @__PURE__ */ jsx(Menu.GroupLabel, {
158
+ ref,
159
+ "data-slot": "menubar-label",
160
+ "data-inset": inset || void 0,
161
+ className: classes,
162
+ ...props
163
+ });
164
+ }
165
+ const MenubarLabel = MenubarGroupLabel;
166
+ function MenubarCheckboxItem({ className = "", children, ref, ...props }) {
167
+ const classes = ["menubar__checkbox-item", className].filter(Boolean).join(" ");
168
+ return /* @__PURE__ */ jsxs(Menu.CheckboxItem, {
169
+ ref,
170
+ "data-slot": "menubar-checkbox-item",
171
+ className: classes,
172
+ ...props,
173
+ children: [/* @__PURE__ */ jsx(Menu.CheckboxItemIndicator, {
174
+ className: "menubar__indicator",
175
+ children: /* @__PURE__ */ jsx(CheckIcon, {})
176
+ }), children]
177
+ });
178
+ }
179
+ function MenubarRadioGroup({ className = "", ref, ...props }) {
180
+ const classes = ["menubar__radio-group", className].filter(Boolean).join(" ");
181
+ return /* @__PURE__ */ jsx(Menu.RadioGroup, {
182
+ ref,
183
+ "data-slot": "menubar-radio-group",
184
+ className: classes,
185
+ ...props
186
+ });
187
+ }
188
+ function MenubarRadioItem({ className = "", children, ref, ...props }) {
189
+ const classes = ["menubar__radio-item", className].filter(Boolean).join(" ");
190
+ return /* @__PURE__ */ jsxs(Menu.RadioItem, {
191
+ ref,
192
+ "data-slot": "menubar-radio-item",
193
+ className: classes,
194
+ ...props,
195
+ children: [/* @__PURE__ */ jsx(Menu.RadioItemIndicator, {
196
+ className: "menubar__indicator",
197
+ children: /* @__PURE__ */ jsx(DotIcon, { size: 8 })
198
+ }), children]
199
+ });
200
+ }
201
+ function MenubarShortcut({ className = "", ref, ...props }) {
202
+ return /* @__PURE__ */ jsx("span", {
203
+ ref,
204
+ "data-slot": "menubar-shortcut",
205
+ className: ["menubar__shortcut", className].filter(Boolean).join(" "),
206
+ ...props
207
+ });
208
+ }
209
+ function MenubarSub(props) {
210
+ return /* @__PURE__ */ jsx(Menu.SubmenuRoot, { ...props });
211
+ }
212
+ function MenubarSubContent({ side = "right", align = "start", sideOffset = 4, ...props }) {
213
+ return /* @__PURE__ */ jsx(MenubarContent, {
214
+ "data-slot": "menubar-sub-content",
215
+ side,
216
+ align,
217
+ sideOffset,
218
+ ...props
219
+ });
220
+ }
221
+ function MenubarSubTrigger({ className = "", inset, children, ref, ...props }) {
222
+ const classes = [
223
+ "menubar__submenu-trigger",
224
+ inset && "menubar__item--inset",
225
+ className
226
+ ].filter(Boolean).join(" ");
227
+ return /* @__PURE__ */ jsxs(Menu.SubmenuTrigger, {
228
+ ref,
229
+ "data-slot": "menubar-sub-trigger",
230
+ "data-inset": inset || void 0,
231
+ className: classes,
232
+ ...props,
233
+ children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "menubar__submenu-icon" })]
234
+ });
235
+ }
236
+ /**
237
+ * A horizontal menu bar component typically used for application menus.
238
+ * Provides keyboard navigation and supports nested submenus.
239
+ *
240
+ * @example
241
+ * ```tsx
242
+ * // Application menubar
243
+ * <Menubar.Root>
244
+ * <Menubar.Menu>
245
+ * <Menubar.Trigger>File</Menubar.Trigger>
246
+ * <Menubar.Portal>
247
+ * <Menubar.Positioner>
248
+ * <Menubar.Popup>
249
+ * <Menubar.Item onClick={() => newFile()}>New</Menubar.Item>
250
+ * <Menubar.Item onClick={() => openFile()}>Open</Menubar.Item>
251
+ * <Menubar.Separator />
252
+ * <Menubar.Item onClick={() => saveFile()}>Save</Menubar.Item>
253
+ * </Menubar.Popup>
254
+ * </Menubar.Positioner>
255
+ * </Menubar.Portal>
256
+ * </Menubar.Menu>
257
+ * <Menubar.Menu>
258
+ * <Menubar.Trigger>Edit</Menubar.Trigger>
259
+ * <Menubar.Portal>
260
+ * <Menubar.Positioner>
261
+ * <Menubar.Popup>
262
+ * <Menubar.Item>Undo</Menubar.Item>
263
+ * <Menubar.Item>Redo</Menubar.Item>
264
+ * <Menubar.Separator />
265
+ * <Menubar.Item>Cut</Menubar.Item>
266
+ * <Menubar.Item>Copy</Menubar.Item>
267
+ * <Menubar.Item>Paste</Menubar.Item>
268
+ * </Menubar.Popup>
269
+ * </Menubar.Positioner>
270
+ * </Menubar.Portal>
271
+ * </Menubar.Menu>
272
+ * </Menubar.Root>
273
+ * ```
274
+ *
275
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
276
+ */
277
+ const Menubar = Object.assign(MenubarRoot, {
278
+ Root: MenubarRoot,
279
+ Menu: MenubarMenu,
280
+ Trigger: MenubarTrigger,
281
+ Portal: MenubarPortal,
282
+ Positioner: MenubarPositioner,
283
+ Popup: MenubarPopup,
284
+ Content: MenubarContent,
285
+ Item: MenubarItem,
286
+ Separator: MenubarSeparator,
287
+ Group: MenubarGroup,
288
+ GroupLabel: MenubarGroupLabel,
289
+ Label: MenubarLabel,
290
+ CheckboxItem: MenubarCheckboxItem,
291
+ RadioGroup: MenubarRadioGroup,
292
+ RadioItem: MenubarRadioItem,
293
+ Shortcut: MenubarShortcut,
294
+ Sub: MenubarSub,
295
+ SubContent: MenubarSubContent,
296
+ SubTrigger: MenubarSubTrigger
297
+ });
298
+ //#endregion
299
+ export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarGroupLabel, MenubarItem, MenubarLabel, MenubarMenu, MenubarPopup, MenubarPortal, MenubarPositioner, MenubarRadioGroup, MenubarRadioItem, MenubarRoot, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger };
@@ -0,0 +1,216 @@
1
+ import { r as ButtonProps } from "../Button-QCM8ZKgR.js";
2
+ import * as React from "react";
3
+ import { StreamdownProps } from "streamdown";
4
+
5
+ //#region src/components/Message.d.ts
6
+ type MessageRole = "user" | "assistant" | "system" | "tool" | (string & {});
7
+ interface MessageProps extends React.HTMLAttributes<HTMLDivElement> {
8
+ /**
9
+ * The originating role of the message. Controls alignment and styling via
10
+ * the `data-from` attribute (e.g. user messages align end).
11
+ */
12
+ from?: MessageRole;
13
+ }
14
+ /**
15
+ * A chat message row. Aligns and styles itself based on {@link from}.
16
+ * Adapted from Vercel AI Elements and restyled with Sigvelo CSS tokens.
17
+ *
18
+ * Compose with {@link MessageContent} for the bubble, {@link MessageActions}
19
+ * for toolbar actions, and {@link MessageBranch} for multi-version responses.
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * <Message from="assistant">
24
+ * <MessageContent>Hello there!</MessageContent>
25
+ * <MessageActions>
26
+ * <MessageAction label="Copy" tooltip="Copy to clipboard">
27
+ * <CopyIcon />
28
+ * </MessageAction>
29
+ * </MessageActions>
30
+ * </Message>
31
+ * ```
32
+ *
33
+ * @see {@link https://elements.ai-sdk.dev/components/message | AI Elements Message}
34
+ */
35
+ declare function Message({
36
+ className,
37
+ from,
38
+ children,
39
+ ref,
40
+ ...props
41
+ }: MessageProps & {
42
+ ref?: React.Ref<HTMLDivElement>;
43
+ }): React.JSX.Element;
44
+ interface MessageContentProps extends React.HTMLAttributes<HTMLDivElement> {}
45
+ /**
46
+ * The visible bubble/body of a message. Styled differently based on the
47
+ * parent {@link Message}'s `from` attribute.
48
+ */
49
+ declare function MessageContent({
50
+ className,
51
+ children,
52
+ ref,
53
+ ...props
54
+ }: MessageContentProps & {
55
+ ref?: React.Ref<HTMLDivElement>;
56
+ }): React.JSX.Element;
57
+ type MessageResponseProps = StreamdownProps;
58
+ declare const MessageResponse: React.MemoExoticComponent<({
59
+ className,
60
+ ...props
61
+ }: MessageResponseProps) => React.JSX.Element>;
62
+ interface MessageActionsProps extends React.HTMLAttributes<HTMLDivElement> {}
63
+ /**
64
+ * Horizontal list of action buttons (copy, retry, thumbs-up, etc.) shown
65
+ * alongside or beneath a message.
66
+ */
67
+ declare function MessageActions({
68
+ className,
69
+ children,
70
+ ref,
71
+ ...props
72
+ }: MessageActionsProps & {
73
+ ref?: React.Ref<HTMLDivElement>;
74
+ }): React.JSX.Element;
75
+ interface MessageActionProps extends Omit<ButtonProps, "children" | "className"> {
76
+ className?: string;
77
+ /** Accessible name for the button. Required when no visible text children. */
78
+ label?: string;
79
+ /** Optional tooltip text shown on hover/focus. Defaults to {@link label}. */
80
+ tooltip?: string;
81
+ children?: React.ReactNode;
82
+ }
83
+ /**
84
+ * A single icon button inside {@link MessageActions}. Always has an accessible
85
+ * name; shows a tooltip on hover/focus when {@link tooltip} is set.
86
+ */
87
+ declare function MessageAction({
88
+ className,
89
+ label,
90
+ tooltip,
91
+ variant,
92
+ color,
93
+ size,
94
+ children,
95
+ ref,
96
+ ...props
97
+ }: MessageActionProps & {
98
+ ref?: React.Ref<HTMLButtonElement>;
99
+ }): React.JSX.Element;
100
+ interface MessageToolbarProps extends React.HTMLAttributes<HTMLDivElement> {}
101
+ /**
102
+ * Horizontal container that places children in a row with space between —
103
+ * typically a {@link MessageBranchSelector} on one side and
104
+ * {@link MessageActions} on the other.
105
+ */
106
+ declare function MessageToolbar({
107
+ className,
108
+ children,
109
+ ref,
110
+ ...props
111
+ }: MessageToolbarProps & {
112
+ ref?: React.Ref<HTMLDivElement>;
113
+ }): React.JSX.Element;
114
+ interface MessageBranchProps extends React.HTMLAttributes<HTMLDivElement> {
115
+ /** Zero-based index of the initially selected branch. */
116
+ defaultBranch?: number;
117
+ /** Controlled branch index. */
118
+ branch?: number;
119
+ /** Called when the selected branch changes. */
120
+ onBranchChange?: (branchIndex: number) => void;
121
+ }
122
+ /**
123
+ * Container for a message response with multiple versions. Tracks which
124
+ * branch is active and exposes navigation through {@link MessageBranchSelector},
125
+ * {@link MessageBranchPrevious}, {@link MessageBranchNext}, and {@link MessageBranchPage}.
126
+ */
127
+ declare function MessageBranch({
128
+ className,
129
+ defaultBranch,
130
+ branch,
131
+ onBranchChange,
132
+ children,
133
+ ref,
134
+ ...props
135
+ }: MessageBranchProps & {
136
+ ref?: React.Ref<HTMLDivElement>;
137
+ }): React.JSX.Element;
138
+ interface MessageBranchContentProps extends React.HTMLAttributes<HTMLDivElement> {}
139
+ /**
140
+ * Renders only the active branch's child. Expects siblings to represent
141
+ * alternative versions of the same response.
142
+ */
143
+ declare function MessageBranchContent({
144
+ className,
145
+ children,
146
+ ref,
147
+ ...props
148
+ }: MessageBranchContentProps & {
149
+ ref?: React.Ref<HTMLDivElement>;
150
+ }): React.JSX.Element;
151
+ interface MessageBranchSelectorProps extends React.HTMLAttributes<HTMLDivElement> {}
152
+ /**
153
+ * Inline group containing branch navigation controls (previous / page /
154
+ * next). Hidden automatically when there is only one branch.
155
+ */
156
+ declare function MessageBranchSelector({
157
+ className,
158
+ children,
159
+ ref,
160
+ ...props
161
+ }: MessageBranchSelectorProps & {
162
+ ref?: React.Ref<HTMLDivElement>;
163
+ }): React.JSX.Element | null;
164
+ interface MessageBranchPreviousProps extends Omit<ButtonProps, "children" | "className"> {
165
+ className?: string;
166
+ label?: string;
167
+ children?: React.ReactNode;
168
+ }
169
+ /** Button that selects the previous branch. Disabled at the first branch. */
170
+ declare function MessageBranchPrevious({
171
+ className,
172
+ label,
173
+ variant,
174
+ color,
175
+ size,
176
+ children,
177
+ onClick,
178
+ ref,
179
+ ...props
180
+ }: MessageBranchPreviousProps & {
181
+ ref?: React.Ref<HTMLButtonElement>;
182
+ }): React.JSX.Element;
183
+ interface MessageBranchNextProps extends Omit<ButtonProps, "children" | "className"> {
184
+ className?: string;
185
+ label?: string;
186
+ children?: React.ReactNode;
187
+ }
188
+ /** Button that selects the next branch. Disabled at the last branch. */
189
+ declare function MessageBranchNext({
190
+ className,
191
+ label,
192
+ variant,
193
+ color,
194
+ size,
195
+ children,
196
+ onClick,
197
+ ref,
198
+ ...props
199
+ }: MessageBranchNextProps & {
200
+ ref?: React.Ref<HTMLButtonElement>;
201
+ }): React.JSX.Element;
202
+ interface MessageBranchPageProps extends React.HTMLAttributes<HTMLSpanElement> {
203
+ /** Customize the displayed text. Defaults to `{index} / {count}`. */
204
+ format?: (currentIndex: number, total: number) => React.ReactNode;
205
+ }
206
+ /** Page indicator (e.g. "1 / 3") for the current branch selection. */
207
+ declare function MessageBranchPage({
208
+ className,
209
+ format,
210
+ ref,
211
+ ...props
212
+ }: MessageBranchPageProps & {
213
+ ref?: React.Ref<HTMLSpanElement>;
214
+ }): React.JSX.Element;
215
+ //#endregion
216
+ export { Message, MessageAction, MessageActionProps, MessageActions, MessageActionsProps, MessageBranch, MessageBranchContent, MessageBranchContentProps, MessageBranchNext, MessageBranchNextProps, MessageBranchPage, MessageBranchPageProps, MessageBranchPrevious, MessageBranchPreviousProps, MessageBranchProps, MessageBranchSelector, MessageBranchSelectorProps, MessageContent, MessageContentProps, MessageProps, MessageResponse, MessageResponseProps, MessageRole, MessageToolbar, MessageToolbarProps };