@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,241 @@
1
+ import { r as ButtonProps } from "../Button-QCM8ZKgR.js";
2
+ import { CollapsiblePanelProps, CollapsibleRootProps, CollapsibleTriggerProps } from "./Collapsible.js";
3
+ import { ScrollAreaRootProps } from "./ScrollArea.js";
4
+ import * as React from "react";
5
+
6
+ //#region src/components/Queue.d.ts
7
+ interface QueueMessagePart {
8
+ type: string;
9
+ text?: string;
10
+ url?: string;
11
+ filename?: string;
12
+ mediaType?: string;
13
+ }
14
+ interface QueueMessage {
15
+ id: string;
16
+ parts: QueueMessagePart[];
17
+ }
18
+ interface QueueTodo {
19
+ id: string;
20
+ title: string;
21
+ description?: string;
22
+ status?: "pending" | "completed";
23
+ }
24
+ interface QueueProps extends React.HTMLAttributes<HTMLDivElement> {
25
+ /** Additional class names for layout only; do not override item states from apps. */
26
+ className?: string;
27
+ /** QueueSection children. */
28
+ children?: React.ReactNode;
29
+ }
30
+ /**
31
+ * Container for a grouped list of queue items (e.g. messages, todos,
32
+ * attachments). Compose with QueueSection as direct children. Adapted from
33
+ * Vercel AI Elements and restyled with Sigvelo CSS tokens.
34
+ *
35
+ * Use for agent work queues, todo groups, and attachment queues. Do not use it
36
+ * for navigation or arbitrary card lists.
37
+ *
38
+ * Sigvelo changes: uses shared Collapsible, ScrollArea, Badge, and Button
39
+ * components; normalizes Vercel-compatible `completed` status to `complete`;
40
+ * maps all styling to Sigvelo queue CSS tokens/classes.
41
+ *
42
+ * Section triggers inherit Collapsible keyboard behavior. Status indicators
43
+ * are decorative, so visible item text must carry the real meaning. Add new
44
+ * statuses or item affordances here when multiple apps need them.
45
+ *
46
+ * @example
47
+ * ```tsx
48
+ * <Queue>
49
+ * <QueueSection>
50
+ * <QueueSectionTrigger>
51
+ * <QueueSectionLabel count={2}>Todos</QueueSectionLabel>
52
+ * </QueueSectionTrigger>
53
+ * <QueueSectionContent>
54
+ * <QueueList>
55
+ * <QueueItem status="active">
56
+ * <QueueItemIndicator status="active" />
57
+ * <QueueItemContent>Running checks</QueueItemContent>
58
+ * </QueueItem>
59
+ * </QueueList>
60
+ * </QueueSectionContent>
61
+ * </QueueSection>
62
+ * </Queue>
63
+ * ```
64
+ *
65
+ * @see {@link https://elements.ai-sdk.dev/components/queue | AI Elements Queue}
66
+ */
67
+ declare function Queue({
68
+ className,
69
+ children,
70
+ ref,
71
+ ...props
72
+ }: QueueProps & {
73
+ ref?: React.Ref<HTMLDivElement>;
74
+ }): React.JSX.Element;
75
+ interface QueueSectionProps extends Omit<CollapsibleRootProps, "className" | "unstyled"> {
76
+ className?: string;
77
+ }
78
+ /**
79
+ * A collapsible section within a Queue. Holds a trigger label and a list
80
+ * of QueueItem children.
81
+ */
82
+ declare function QueueSection({
83
+ className,
84
+ defaultOpen,
85
+ ref,
86
+ ...props
87
+ }: QueueSectionProps & {
88
+ ref?: React.Ref<HTMLDivElement>;
89
+ }): React.JSX.Element;
90
+ interface QueueSectionTriggerProps extends Omit<CollapsibleTriggerProps, "className" | "unstyled"> {
91
+ className?: string;
92
+ }
93
+ declare function QueueSectionTrigger({
94
+ className,
95
+ children,
96
+ ref,
97
+ ...props
98
+ }: QueueSectionTriggerProps & {
99
+ ref?: React.Ref<HTMLButtonElement>;
100
+ }): React.JSX.Element;
101
+ interface QueueSectionLabelProps extends React.HTMLAttributes<HTMLSpanElement> {
102
+ /** Optional count rendered as a trailing badge. */
103
+ count?: number;
104
+ label?: string;
105
+ icon?: React.ReactNode;
106
+ }
107
+ declare function QueueSectionLabel({
108
+ className,
109
+ children,
110
+ count,
111
+ label,
112
+ icon,
113
+ ref,
114
+ ...props
115
+ }: QueueSectionLabelProps & {
116
+ ref?: React.Ref<HTMLSpanElement>;
117
+ }): React.JSX.Element;
118
+ interface QueueListProps extends Omit<ScrollAreaRootProps, "className"> {
119
+ className?: string;
120
+ }
121
+ declare function QueueList({
122
+ className,
123
+ children,
124
+ ref,
125
+ ...props
126
+ }: QueueListProps & {
127
+ ref?: React.Ref<HTMLDivElement>;
128
+ }): React.JSX.Element;
129
+ interface QueueSectionContentProps extends Omit<CollapsiblePanelProps, "className" | "unstyled"> {
130
+ className?: string;
131
+ }
132
+ declare function QueueSectionContent({
133
+ className,
134
+ ref,
135
+ ...props
136
+ }: QueueSectionContentProps & {
137
+ ref?: React.Ref<HTMLDivElement>;
138
+ }): React.JSX.Element;
139
+ type QueueItemStatus = "pending" | "active" | "complete" | "completed";
140
+ interface QueueItemProps extends React.LiHTMLAttributes<HTMLLIElement> {
141
+ status?: QueueItemStatus;
142
+ }
143
+ declare function QueueItem({
144
+ className,
145
+ status,
146
+ children,
147
+ ref,
148
+ ...props
149
+ }: QueueItemProps & {
150
+ ref?: React.Ref<HTMLLIElement>;
151
+ }): React.JSX.Element;
152
+ interface QueueItemIndicatorProps extends React.HTMLAttributes<HTMLSpanElement> {
153
+ status?: QueueItemStatus;
154
+ completed?: boolean;
155
+ }
156
+ declare function QueueItemIndicator({
157
+ className,
158
+ status,
159
+ completed,
160
+ ref,
161
+ ...props
162
+ }: QueueItemIndicatorProps & {
163
+ ref?: React.Ref<HTMLSpanElement>;
164
+ }): React.JSX.Element;
165
+ interface QueueItemContentProps extends React.HTMLAttributes<HTMLDivElement> {
166
+ completed?: boolean;
167
+ }
168
+ declare function QueueItemContent({
169
+ className,
170
+ children,
171
+ completed,
172
+ ref,
173
+ ...props
174
+ }: QueueItemContentProps & {
175
+ ref?: React.Ref<HTMLDivElement>;
176
+ }): React.JSX.Element;
177
+ interface QueueItemDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {
178
+ completed?: boolean;
179
+ }
180
+ declare function QueueItemDescription({
181
+ className,
182
+ children,
183
+ completed,
184
+ ref,
185
+ ...props
186
+ }: QueueItemDescriptionProps & {
187
+ ref?: React.Ref<HTMLParagraphElement>;
188
+ }): React.JSX.Element;
189
+ interface QueueItemActionsProps extends React.HTMLAttributes<HTMLDivElement> {}
190
+ interface QueueItemActionProps extends Omit<ButtonProps, "variant" | "color" | "size" | "className"> {
191
+ className?: string;
192
+ }
193
+ declare function QueueItemActions({
194
+ className,
195
+ children,
196
+ ref,
197
+ ...props
198
+ }: QueueItemActionsProps & {
199
+ ref?: React.Ref<HTMLDivElement>;
200
+ }): React.JSX.Element;
201
+ declare function QueueItemAction({
202
+ className,
203
+ ref,
204
+ ...props
205
+ }: QueueItemActionProps & {
206
+ ref?: React.Ref<HTMLButtonElement>;
207
+ }): React.JSX.Element;
208
+ interface QueueItemAttachmentProps extends React.HTMLAttributes<HTMLDivElement> {}
209
+ declare function QueueItemAttachment({
210
+ className,
211
+ children,
212
+ ref,
213
+ ...props
214
+ }: QueueItemAttachmentProps & {
215
+ ref?: React.Ref<HTMLDivElement>;
216
+ }): React.JSX.Element;
217
+ interface QueueItemImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {}
218
+ declare function QueueItemImage({
219
+ className,
220
+ alt,
221
+ ref,
222
+ ...props
223
+ }: QueueItemImageProps & {
224
+ ref?: React.Ref<HTMLImageElement>;
225
+ }): React.JSX.Element;
226
+ interface QueueItemFileProps extends React.HTMLAttributes<HTMLDivElement> {
227
+ name?: string;
228
+ size?: string;
229
+ }
230
+ declare function QueueItemFile({
231
+ className,
232
+ children,
233
+ name,
234
+ size,
235
+ ref,
236
+ ...props
237
+ }: QueueItemFileProps & {
238
+ ref?: React.Ref<HTMLDivElement>;
239
+ }): React.JSX.Element;
240
+ //#endregion
241
+ export { Queue, QueueItem, QueueItemAction, QueueItemActionProps, QueueItemActions, QueueItemActionsProps, QueueItemAttachment, QueueItemAttachmentProps, QueueItemContent, QueueItemContentProps, QueueItemDescription, QueueItemDescriptionProps, QueueItemFile, QueueItemFileProps, QueueItemImage, QueueItemImageProps, QueueItemIndicator, QueueItemIndicatorProps, QueueItemProps, QueueItemStatus, QueueList, QueueListProps, QueueMessage, QueueMessagePart, QueueProps, QueueSection, QueueSectionContent, QueueSectionContentProps, QueueSectionLabel, QueueSectionLabelProps, QueueSectionProps, QueueSectionTrigger, QueueSectionTriggerProps, QueueTodo };
@@ -0,0 +1,225 @@
1
+ import { c as ChevronRightIcon, m as FileIcon, o as CheckIcon, u as DotIcon } from "../icons-BsWc8g4E.js";
2
+ import { t as cx } from "../class-names-9UtZwb0J.js";
3
+ import { Button } from "./Button.js";
4
+ import { Badge } from "./Badge.js";
5
+ import { CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger } from "./Collapsible.js";
6
+ import { ScrollArea } from "./ScrollArea.js";
7
+ import "react";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ //#region src/components/Queue.tsx
10
+ /**
11
+ * Container for a grouped list of queue items (e.g. messages, todos,
12
+ * attachments). Compose with QueueSection as direct children. Adapted from
13
+ * Vercel AI Elements and restyled with Sigvelo CSS tokens.
14
+ *
15
+ * Use for agent work queues, todo groups, and attachment queues. Do not use it
16
+ * for navigation or arbitrary card lists.
17
+ *
18
+ * Sigvelo changes: uses shared Collapsible, ScrollArea, Badge, and Button
19
+ * components; normalizes Vercel-compatible `completed` status to `complete`;
20
+ * maps all styling to Sigvelo queue CSS tokens/classes.
21
+ *
22
+ * Section triggers inherit Collapsible keyboard behavior. Status indicators
23
+ * are decorative, so visible item text must carry the real meaning. Add new
24
+ * statuses or item affordances here when multiple apps need them.
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * <Queue>
29
+ * <QueueSection>
30
+ * <QueueSectionTrigger>
31
+ * <QueueSectionLabel count={2}>Todos</QueueSectionLabel>
32
+ * </QueueSectionTrigger>
33
+ * <QueueSectionContent>
34
+ * <QueueList>
35
+ * <QueueItem status="active">
36
+ * <QueueItemIndicator status="active" />
37
+ * <QueueItemContent>Running checks</QueueItemContent>
38
+ * </QueueItem>
39
+ * </QueueList>
40
+ * </QueueSectionContent>
41
+ * </QueueSection>
42
+ * </Queue>
43
+ * ```
44
+ *
45
+ * @see {@link https://elements.ai-sdk.dev/components/queue | AI Elements Queue}
46
+ */
47
+ function Queue({ className, children, ref, ...props }) {
48
+ return /* @__PURE__ */ jsx("div", {
49
+ ref,
50
+ className: cx("queue", className),
51
+ ...props,
52
+ children
53
+ });
54
+ }
55
+ /**
56
+ * A collapsible section within a Queue. Holds a trigger label and a list
57
+ * of QueueItem children.
58
+ */
59
+ function QueueSection({ className, defaultOpen = true, ref, ...props }) {
60
+ return /* @__PURE__ */ jsx(CollapsibleRoot, {
61
+ ref,
62
+ className: cx("queue__section", className),
63
+ defaultOpen,
64
+ ...props,
65
+ unstyled: true
66
+ });
67
+ }
68
+ function QueueSectionTrigger({ className, children, ref, ...props }) {
69
+ return /* @__PURE__ */ jsxs(CollapsibleTrigger, {
70
+ ref,
71
+ className: cx("queue__section-trigger", className),
72
+ ...props,
73
+ unstyled: true,
74
+ children: [/* @__PURE__ */ jsx("span", {
75
+ className: "queue__section-icon",
76
+ "aria-hidden": "true",
77
+ children: /* @__PURE__ */ jsx(ChevronRightIcon, {})
78
+ }), children]
79
+ });
80
+ }
81
+ function QueueSectionLabel({ className, children, count, label, icon, ref, ...props }) {
82
+ const content = children ?? (label ? `${count ?? ""} ${label}`.trim() : null);
83
+ return /* @__PURE__ */ jsxs("span", {
84
+ ref,
85
+ className: cx("queue__section-label", className),
86
+ ...props,
87
+ children: [
88
+ icon,
89
+ /* @__PURE__ */ jsx("span", { children: content }),
90
+ children !== void 0 && count !== void 0 ? /* @__PURE__ */ jsx(Badge, {
91
+ color: "neutral",
92
+ size: "sm",
93
+ className: "queue__section-count",
94
+ children: count
95
+ }) : null
96
+ ]
97
+ });
98
+ }
99
+ function QueueList({ className, children, ref, ...props }) {
100
+ return /* @__PURE__ */ jsxs(ScrollArea, {
101
+ ref,
102
+ className: cx("queue__list", className),
103
+ ...props,
104
+ children: [/* @__PURE__ */ jsx(ScrollArea.Viewport, {
105
+ className: "queue__list-viewport",
106
+ children: /* @__PURE__ */ jsx("div", {
107
+ className: "queue__list-scroll",
108
+ children: /* @__PURE__ */ jsx("ul", {
109
+ className: "queue__list-inner",
110
+ children
111
+ })
112
+ })
113
+ }), /* @__PURE__ */ jsx(ScrollArea.Scrollbar, {
114
+ orientation: "vertical",
115
+ children: /* @__PURE__ */ jsx(ScrollArea.Thumb, {})
116
+ })]
117
+ });
118
+ }
119
+ function QueueSectionContent({ className, ref, ...props }) {
120
+ return /* @__PURE__ */ jsx(CollapsiblePanel, {
121
+ ref,
122
+ className: cx("queue__section-content", className),
123
+ ...props,
124
+ unstyled: true
125
+ });
126
+ }
127
+ function normalizeQueueItemStatus(status) {
128
+ return status === "completed" ? "complete" : status;
129
+ }
130
+ function QueueItem({ className, status = "pending", children, ref, ...props }) {
131
+ const resolvedStatus = normalizeQueueItemStatus(status);
132
+ return /* @__PURE__ */ jsx("li", {
133
+ ref,
134
+ className: cx("queue__item", `queue__item--${resolvedStatus}`, className),
135
+ "data-status": resolvedStatus,
136
+ ...props,
137
+ children
138
+ });
139
+ }
140
+ function QueueItemIndicator({ className, status = "pending", completed = false, ref, ...props }) {
141
+ const resolvedStatus = completed ? "complete" : normalizeQueueItemStatus(status);
142
+ const icon = resolvedStatus === "complete" ? /* @__PURE__ */ jsx(CheckIcon, {}) : /* @__PURE__ */ jsx(DotIcon, {});
143
+ return /* @__PURE__ */ jsx("span", {
144
+ ref,
145
+ className: cx("queue__item-indicator", `queue__item-indicator--${resolvedStatus}`, className),
146
+ "aria-hidden": "true",
147
+ ...props,
148
+ children: icon
149
+ });
150
+ }
151
+ function QueueItemContent({ className, children, completed = false, ref, ...props }) {
152
+ return /* @__PURE__ */ jsx("div", {
153
+ ref,
154
+ className: cx("queue__item-content", completed && "queue__item-content--complete", className),
155
+ ...props,
156
+ children
157
+ });
158
+ }
159
+ function QueueItemDescription({ className, children, completed = false, ref, ...props }) {
160
+ return /* @__PURE__ */ jsx("p", {
161
+ ref,
162
+ className: cx("queue__item-description", completed && "queue__item-description--complete", className),
163
+ ...props,
164
+ children
165
+ });
166
+ }
167
+ function QueueItemActions({ className, children, ref, ...props }) {
168
+ return /* @__PURE__ */ jsx("div", {
169
+ ref,
170
+ className: cx("queue__item-actions", className),
171
+ ...props,
172
+ children
173
+ });
174
+ }
175
+ function QueueItemAction({ className, ref, ...props }) {
176
+ return /* @__PURE__ */ jsx(Button, {
177
+ ref,
178
+ type: "button",
179
+ variant: "ghost",
180
+ color: "neutral",
181
+ size: "sm",
182
+ className: cx("queue__item-action", className),
183
+ ...props
184
+ });
185
+ }
186
+ function QueueItemAttachment({ className, children, ref, ...props }) {
187
+ return /* @__PURE__ */ jsx("div", {
188
+ ref,
189
+ className: cx("queue__item-attachment", className),
190
+ ...props,
191
+ children
192
+ });
193
+ }
194
+ function QueueItemImage({ className, alt = "", ref, ...props }) {
195
+ return /* @__PURE__ */ jsx("img", {
196
+ ref,
197
+ alt,
198
+ className: cx("queue__item-image", className),
199
+ ...props
200
+ });
201
+ }
202
+ function QueueItemFile({ className, children, name, size, ref, ...props }) {
203
+ return /* @__PURE__ */ jsxs("div", {
204
+ ref,
205
+ className: cx("queue__item-file", className),
206
+ ...props,
207
+ children: [
208
+ /* @__PURE__ */ jsx("span", {
209
+ className: "queue__item-file-icon",
210
+ "aria-hidden": "true",
211
+ children: /* @__PURE__ */ jsx(FileIcon, {})
212
+ }),
213
+ /* @__PURE__ */ jsx("span", {
214
+ className: "queue__item-file-name",
215
+ children: children ?? name
216
+ }),
217
+ size ? /* @__PURE__ */ jsx("span", {
218
+ className: "queue__item-file-size",
219
+ children: size
220
+ }) : null
221
+ ]
222
+ });
223
+ }
224
+ //#endregion
225
+ export { Queue, QueueItem, QueueItemAction, QueueItemActions, QueueItemAttachment, QueueItemContent, QueueItemDescription, QueueItemFile, QueueItemImage, QueueItemIndicator, QueueList, QueueSection, QueueSectionContent, QueueSectionLabel, QueueSectionTrigger };
@@ -0,0 +1,78 @@
1
+ import * as React from "react";
2
+ import { RadioGroup as RadioGroup$1 } from "@base-ui/react/radio-group";
3
+ import { Radio as Radio$1 } from "@base-ui/react/radio";
4
+
5
+ //#region src/components/RadioGroup.d.ts
6
+ interface RadioGroupProps extends Omit<React.ComponentPropsWithRef<typeof RadioGroup$1>, "className"> {
7
+ className?: string;
8
+ /**
9
+ * The orientation of the radio group.
10
+ * @default 'vertical'
11
+ */
12
+ orientation?: "horizontal" | "vertical";
13
+ }
14
+ interface RadioProps extends Omit<React.ComponentPropsWithRef<typeof Radio$1.Root>, "className"> {
15
+ className?: string;
16
+ }
17
+ interface RadioIndicatorProps extends Omit<React.ComponentPropsWithRef<typeof Radio$1.Indicator>, "className"> {
18
+ className?: string;
19
+ }
20
+ /**
21
+ * A radio group component for selecting one option from a list.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * <RadioGroup defaultValue="option1">
26
+ * <div style={{ display: "flex", alignItems: "center", gap: "0.5rem" }}>
27
+ * <Radio value="option1">
28
+ * <RadioIndicator />
29
+ * </Radio>
30
+ * <Label>Option 1</Label>
31
+ * </div>
32
+ * <div style={{ display: "flex", alignItems: "center", gap: "0.5rem" }}>
33
+ * <Radio value="option2">
34
+ * <RadioIndicator />
35
+ * </Radio>
36
+ * <Label>Option 2</Label>
37
+ * </div>
38
+ * </RadioGroup>
39
+ * ```
40
+ *
41
+ * @see {@link https://base-ui.com/react/components/radio-group | Base UI Radio Group}
42
+ */
43
+ declare function RadioGroup({
44
+ orientation,
45
+ className,
46
+ ref,
47
+ ...props
48
+ }: RadioGroupProps & {
49
+ ref?: React.Ref<HTMLDivElement>;
50
+ }): React.JSX.Element;
51
+ /**
52
+ * A single radio button within a RadioGroup.
53
+ */
54
+ declare function Radio({
55
+ className,
56
+ ref,
57
+ ...props
58
+ }: RadioProps & {
59
+ ref?: React.Ref<HTMLButtonElement>;
60
+ }): React.JSX.Element;
61
+ declare function RadioGroupItem({
62
+ children,
63
+ ...props
64
+ }: RadioProps & {
65
+ ref?: React.Ref<HTMLButtonElement>;
66
+ }): React.JSX.Element;
67
+ /**
68
+ * The visual indicator for a Radio button.
69
+ */
70
+ declare function RadioIndicator({
71
+ className,
72
+ ref,
73
+ ...props
74
+ }: RadioIndicatorProps & {
75
+ ref?: React.Ref<HTMLSpanElement>;
76
+ }): React.JSX.Element;
77
+ //#endregion
78
+ export { Radio, RadioGroup, RadioGroupItem, RadioGroupProps, RadioIndicator, RadioIndicatorProps, RadioProps };
@@ -0,0 +1,72 @@
1
+ import "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { RadioGroup as RadioGroup$1 } from "@base-ui/react/radio-group";
4
+ import { Radio as Radio$1 } from "@base-ui/react/radio";
5
+ //#region src/components/RadioGroup.tsx
6
+ /**
7
+ * A radio group component for selecting one option from a list.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * <RadioGroup defaultValue="option1">
12
+ * <div style={{ display: "flex", alignItems: "center", gap: "0.5rem" }}>
13
+ * <Radio value="option1">
14
+ * <RadioIndicator />
15
+ * </Radio>
16
+ * <Label>Option 1</Label>
17
+ * </div>
18
+ * <div style={{ display: "flex", alignItems: "center", gap: "0.5rem" }}>
19
+ * <Radio value="option2">
20
+ * <RadioIndicator />
21
+ * </Radio>
22
+ * <Label>Option 2</Label>
23
+ * </div>
24
+ * </RadioGroup>
25
+ * ```
26
+ *
27
+ * @see {@link https://base-ui.com/react/components/radio-group | Base UI Radio Group}
28
+ */
29
+ function RadioGroup({ orientation = "vertical", className = "", ref, ...props }) {
30
+ return /* @__PURE__ */ jsx(RadioGroup$1, {
31
+ ref,
32
+ "data-slot": "radio-group",
33
+ className: [
34
+ "radio-group",
35
+ `radio-group--${orientation}`,
36
+ className
37
+ ].filter(Boolean).join(" "),
38
+ ...props
39
+ });
40
+ }
41
+ /**
42
+ * A single radio button within a RadioGroup.
43
+ */
44
+ function Radio({ className = "", ref, ...props }) {
45
+ const classes = ["radio", className].filter(Boolean).join(" ");
46
+ return /* @__PURE__ */ jsx(Radio$1.Root, {
47
+ ref,
48
+ "data-slot": "radio-group-item",
49
+ className: classes,
50
+ ...props
51
+ });
52
+ }
53
+ function RadioGroupItem({ children, ...props }) {
54
+ return /* @__PURE__ */ jsx(Radio, {
55
+ ...props,
56
+ children: children ?? /* @__PURE__ */ jsx(RadioIndicator, {})
57
+ });
58
+ }
59
+ /**
60
+ * The visual indicator for a Radio button.
61
+ */
62
+ function RadioIndicator({ className = "", ref, ...props }) {
63
+ const classes = ["radio__indicator", className].filter(Boolean).join(" ");
64
+ return /* @__PURE__ */ jsx(Radio$1.Indicator, {
65
+ ref,
66
+ "data-slot": "radio-group-indicator",
67
+ className: classes,
68
+ ...props
69
+ });
70
+ }
71
+ //#endregion
72
+ export { Radio, RadioGroup, RadioGroupItem, RadioIndicator };
@@ -0,0 +1,88 @@
1
+ import { CollapsiblePanelProps, CollapsibleRootProps, CollapsibleTriggerProps } from "./Collapsible.js";
2
+ import * as React from "react";
3
+
4
+ //#region src/components/Reasoning.d.ts
5
+ interface ReasoningContextValue {
6
+ isStreaming: boolean;
7
+ isOpen: boolean;
8
+ setIsOpen: (open: boolean) => void;
9
+ duration?: number;
10
+ }
11
+ declare function useReasoning(): ReasoningContextValue;
12
+ interface ReasoningProps extends Omit<CollapsibleRootProps, "className" | "onOpenChange" | "unstyled"> {
13
+ className?: string;
14
+ /**
15
+ * Whether the model is currently generating reasoning. When true the
16
+ * component auto-opens; it auto-closes once streaming ends.
17
+ */
18
+ isStreaming?: boolean;
19
+ /**
20
+ * Elapsed reasoning time in seconds, shown in the trigger when finished.
21
+ * When omitted, the component measures the duration automatically.
22
+ */
23
+ duration?: number;
24
+ /** Called when the open state changes. */
25
+ onOpenChange?: (open: boolean) => void;
26
+ }
27
+ /**
28
+ * A collapsible "thinking" block for showing model reasoning (e.g. DeepSeek
29
+ * R1, OpenAI o-series). Auto-expands while streaming and collapses when done.
30
+ * Adapted from Vercel AI Elements and restyled with Sigvelo CSS tokens.
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * <Reasoning isStreaming={isThinking} duration={elapsed}>
35
+ * <ReasoningTrigger />
36
+ * <ReasoningContent>{reasoningText}</ReasoningContent>
37
+ * </Reasoning>
38
+ * ```
39
+ *
40
+ * @see {@link https://elements.ai-sdk.dev/components/reasoning | AI Elements Reasoning}
41
+ */
42
+ declare function Reasoning({
43
+ className,
44
+ isStreaming,
45
+ duration,
46
+ open,
47
+ defaultOpen,
48
+ onOpenChange,
49
+ children,
50
+ ref,
51
+ ...props
52
+ }: ReasoningProps & {
53
+ ref?: React.Ref<HTMLDivElement>;
54
+ }): React.JSX.Element;
55
+ interface ReasoningTriggerProps extends Omit<CollapsibleTriggerProps, "className" | "unstyled"> {
56
+ className?: string;
57
+ getThinkingMessage?: (isStreaming: boolean, duration?: number) => React.ReactNode;
58
+ }
59
+ /**
60
+ * Trigger that toggles the reasoning panel. Shows "Thinking..." while
61
+ * streaming and "Thought for Ns" afterward.
62
+ */
63
+ declare function ReasoningTrigger({
64
+ className,
65
+ children,
66
+ getThinkingMessage,
67
+ ref,
68
+ ...props
69
+ }: ReasoningTriggerProps & {
70
+ ref?: React.Ref<HTMLButtonElement>;
71
+ }): React.JSX.Element;
72
+ interface ReasoningContentProps extends Omit<CollapsiblePanelProps, "className" | "unstyled"> {
73
+ className?: string;
74
+ }
75
+ /**
76
+ * The reasoning text panel. Accepts any React node but is optimized for
77
+ * long-form text; a muted left border visually distinguishes the block.
78
+ */
79
+ declare function ReasoningContent({
80
+ className,
81
+ children,
82
+ ref,
83
+ ...props
84
+ }: ReasoningContentProps & {
85
+ ref?: React.Ref<HTMLDivElement>;
86
+ }): React.JSX.Element;
87
+ //#endregion
88
+ export { Reasoning, ReasoningContent, ReasoningContentProps, ReasoningProps, ReasoningTrigger, ReasoningTriggerProps, useReasoning };