@mcp-b/react-components 0.1.1 → 0.1.3

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 +17 -8
  202. package/dist/index.d.ts +0 -7236
  203. package/dist/index.js +0 -8945
@@ -0,0 +1,23 @@
1
+ import { t as cx } from "../class-names-9UtZwb0J.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/components/GithubMotionMark.tsx
4
+ /**
5
+ * Small GitHub motion mark used next to install or repository connection text.
6
+ */
7
+ function GithubMotionMark({ className, size = 18 }) {
8
+ return /* @__PURE__ */ jsx("span", {
9
+ className: cx("github-motion-mark", className),
10
+ "aria-hidden": "true",
11
+ children: /* @__PURE__ */ jsx("svg", {
12
+ width: size,
13
+ height: size,
14
+ viewBox: "0 0 24 24",
15
+ fill: "currentColor",
16
+ "aria-hidden": "true",
17
+ focusable: "false",
18
+ children: /* @__PURE__ */ jsx("path", { d: "M12 .5A11.5 11.5 0 0 0 8.36 22.9c.58.1.8-.25.8-.56v-2.12c-3.22.7-3.9-1.38-3.9-1.38-.53-1.34-1.3-1.7-1.3-1.7-1.06-.72.08-.7.08-.7 1.17.08 1.78 1.2 1.78 1.2 1.04 1.78 2.73 1.27 3.4.97.1-.76.4-1.27.74-1.56-2.57-.29-5.28-1.29-5.28-5.73 0-1.27.45-2.3 1.2-3.11-.12-.3-.52-1.48.11-3.07 0 0 .98-.32 3.2 1.18a11 11 0 0 1 5.82 0c2.22-1.5 3.2-1.18 3.2-1.18.63 1.6.23 2.78.11 3.07.75.82 1.2 1.85 1.2 3.1 0 4.46-2.72 5.44-5.3 5.73.42.36.8 1.08.8 2.18v3.12c0 .31.2.67.8.56A11.5 11.5 0 0 0 12 .5Z" })
19
+ })
20
+ });
21
+ }
22
+ //#endregion
23
+ export { GithubMotionMark };
@@ -0,0 +1,33 @@
1
+ import * as React from "react";
2
+ import { InputProps as InputProps$1 } from "@base-ui/react/input";
3
+
4
+ //#region src/components/Input.d.ts
5
+ /**
6
+ * Props for the Input component.
7
+ */
8
+ interface InputProps extends Omit<InputProps$1, "className"> {
9
+ /** Additional CSS class names */
10
+ className?: string;
11
+ }
12
+ /**
13
+ * An accessible text input component with consistent styling.
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * <Input type="text" placeholder="Enter your name" />
18
+ *
19
+ * <Label htmlFor="email">Email</Label>
20
+ * <Input id="email" type="email" placeholder="user@example.com" />
21
+ * ```
22
+ *
23
+ * @see {@link https://base-ui.com/react/components/input | Base UI Input}
24
+ */
25
+ declare function Input({
26
+ className,
27
+ ref,
28
+ ...props
29
+ }: InputProps & {
30
+ ref?: React.Ref<HTMLInputElement>;
31
+ }): React.JSX.Element;
32
+ //#endregion
33
+ export { Input, InputProps };
@@ -0,0 +1,27 @@
1
+ import "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { Input as Input$1 } from "@base-ui/react/input";
4
+ //#region src/components/Input.tsx
5
+ /**
6
+ * An accessible text input component with consistent styling.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * <Input type="text" placeholder="Enter your name" />
11
+ *
12
+ * <Label htmlFor="email">Email</Label>
13
+ * <Input id="email" type="email" placeholder="user@example.com" />
14
+ * ```
15
+ *
16
+ * @see {@link https://base-ui.com/react/components/input | Base UI Input}
17
+ */
18
+ function Input({ className = "", ref, ...props }) {
19
+ return /* @__PURE__ */ jsx(Input$1, {
20
+ ref,
21
+ "data-slot": "input",
22
+ className: ["input", className].filter(Boolean).join(" "),
23
+ ...props
24
+ });
25
+ }
26
+ //#endregion
27
+ export { Input };
@@ -0,0 +1,44 @@
1
+ import * as React from "react";
2
+
3
+ //#region src/components/Label.d.ts
4
+ interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {
5
+ /** ID of the form control this label names. */
6
+ htmlFor?: string;
7
+ /** Additional class names for layout only; use shared styles for visual variants. */
8
+ className?: string;
9
+ /** Label text or inline label content. */
10
+ children?: React.ReactNode;
11
+ }
12
+ /**
13
+ * A semantic label component for form inputs.
14
+ *
15
+ * Built internally as a thin styled wrapper over the native `label` element.
16
+ * Use it to name inputs, checkboxes, radio controls, and field-level controls.
17
+ * Do not use it for arbitrary text; use text elements or Field labels instead.
18
+ *
19
+ * Styling consumes Sigvelo typography, text, spacing, and disabled-state tokens.
20
+ * Keep accessibility through `htmlFor` or by wrapping the control with the
21
+ * label. Add variants here only if multiple apps need the same label treatment.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * <Label htmlFor="username">Username</Label>
26
+ * <Input id="username" type="text" />
27
+ *
28
+ * <div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
29
+ * <Checkbox id="newsletter" />
30
+ * <Label htmlFor="newsletter">Subscribe to newsletter</Label>
31
+ * </div>
32
+ * ```
33
+ */
34
+ declare function Label({
35
+ className,
36
+ children,
37
+ onMouseDown,
38
+ ref,
39
+ ...props
40
+ }: LabelProps & {
41
+ ref?: React.Ref<HTMLLabelElement>;
42
+ }): React.JSX.Element;
43
+ //#endregion
44
+ export { Label, LabelProps };
@@ -0,0 +1,41 @@
1
+ import "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/components/Label.tsx
4
+ /**
5
+ * A semantic label component for form inputs.
6
+ *
7
+ * Built internally as a thin styled wrapper over the native `label` element.
8
+ * Use it to name inputs, checkboxes, radio controls, and field-level controls.
9
+ * Do not use it for arbitrary text; use text elements or Field labels instead.
10
+ *
11
+ * Styling consumes Sigvelo typography, text, spacing, and disabled-state tokens.
12
+ * Keep accessibility through `htmlFor` or by wrapping the control with the
13
+ * label. Add variants here only if multiple apps need the same label treatment.
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * <Label htmlFor="username">Username</Label>
18
+ * <Input id="username" type="text" />
19
+ *
20
+ * <div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
21
+ * <Checkbox id="newsletter" />
22
+ * <Label htmlFor="newsletter">Subscribe to newsletter</Label>
23
+ * </div>
24
+ * ```
25
+ */
26
+ function Label({ className = "", children, onMouseDown, ref, ...props }) {
27
+ return /* @__PURE__ */ jsx("label", {
28
+ ref,
29
+ "data-slot": "label",
30
+ className: ["label", className].filter(Boolean).join(" "),
31
+ onMouseDown: (event) => {
32
+ if (event.target.closest("button, input, select, textarea")) return;
33
+ onMouseDown?.(event);
34
+ if (!event.defaultPrevented && event.detail > 1) event.preventDefault();
35
+ },
36
+ ...props,
37
+ children
38
+ });
39
+ }
40
+ //#endregion
41
+ export { Label };
@@ -0,0 +1,395 @@
1
+ import * as React from "react";
2
+ import { Menu as Menu$1 } from "@base-ui/react/menu";
3
+
4
+ //#region src/components/Menu.d.ts
5
+ /**
6
+ * Props for the Menu.Root component.
7
+ */
8
+ interface MenuProps extends React.ComponentPropsWithoutRef<typeof Menu$1.Root> {}
9
+ /**
10
+ * Props for the Menu.Trigger component.
11
+ */
12
+ interface MenuTriggerProps extends Omit<React.ComponentPropsWithoutRef<typeof Menu$1.Trigger>, "className"> {
13
+ /** Additional CSS class names */
14
+ className?: string;
15
+ }
16
+ /**
17
+ * Props for the Menu.Portal component.
18
+ */
19
+ interface MenuPortalProps extends React.ComponentPropsWithoutRef<typeof Menu$1.Portal> {}
20
+ /**
21
+ * Props for the Menu.Positioner component.
22
+ */
23
+ interface MenuPositionerProps extends Omit<React.ComponentPropsWithoutRef<typeof Menu$1.Positioner>, "className"> {
24
+ /** Additional CSS class names */
25
+ className?: string;
26
+ }
27
+ /**
28
+ * Props for the Menu.Popup component.
29
+ */
30
+ interface MenuPopupProps extends Omit<React.ComponentPropsWithoutRef<typeof Menu$1.Popup>, "className"> {
31
+ /** Additional CSS class names */
32
+ className?: string;
33
+ }
34
+ type MenuPlacementProps = Pick<MenuPositionerProps, "anchor" | "positionMethod" | "side" | "sideOffset" | "align" | "alignOffset" | "collisionBoundary" | "collisionPadding" | "sticky" | "arrowPadding" | "disableAnchorTracking" | "collisionAvoidance">;
35
+ type MenuContentProps = MenuPopupProps & MenuPlacementProps;
36
+ /**
37
+ * Props for the Menu.Item component.
38
+ */
39
+ interface MenuItemProps extends Omit<React.ComponentPropsWithoutRef<typeof Menu$1.Item>, "className"> {
40
+ /** Additional CSS class names */
41
+ className?: string;
42
+ inset?: boolean;
43
+ variant?: "default" | "destructive";
44
+ }
45
+ /**
46
+ * Props for the Menu.Group component.
47
+ */
48
+ interface MenuGroupProps extends Omit<React.ComponentPropsWithoutRef<typeof Menu$1.Group>, "className"> {
49
+ /** Additional CSS class names */
50
+ className?: string;
51
+ }
52
+ /**
53
+ * Props for the Menu.GroupLabel component.
54
+ */
55
+ interface MenuGroupLabelProps extends Omit<React.ComponentPropsWithoutRef<typeof Menu$1.GroupLabel>, "className"> {
56
+ /** Additional CSS class names */
57
+ className?: string;
58
+ inset?: boolean;
59
+ }
60
+ type MenuLabelProps = MenuGroupLabelProps;
61
+ /**
62
+ * Props for the Menu.Arrow component.
63
+ */
64
+ interface MenuArrowProps extends Omit<React.ComponentPropsWithoutRef<typeof Menu$1.Arrow>, "className"> {
65
+ /** Additional CSS class names */
66
+ className?: string;
67
+ }
68
+ /**
69
+ * Props for the Menu.Separator component.
70
+ */
71
+ interface MenuSeparatorProps extends Omit<React.ComponentPropsWithoutRef<typeof Menu$1.Separator>, "className"> {
72
+ /** Additional CSS class names */
73
+ className?: string;
74
+ }
75
+ /**
76
+ * Props for the Menu.RadioGroup component.
77
+ */
78
+ interface MenuRadioGroupProps extends Omit<React.ComponentPropsWithoutRef<typeof Menu$1.RadioGroup>, "className"> {
79
+ /** Additional CSS class names */
80
+ className?: string;
81
+ }
82
+ /**
83
+ * Props for the Menu.RadioItem component.
84
+ */
85
+ interface MenuRadioItemProps extends Omit<React.ComponentPropsWithoutRef<typeof Menu$1.RadioItem>, "className"> {
86
+ /** Additional CSS class names */
87
+ className?: string;
88
+ }
89
+ /**
90
+ * Props for the Menu.RadioItemIndicator component.
91
+ */
92
+ interface MenuRadioItemIndicatorProps extends Omit<React.ComponentPropsWithoutRef<typeof Menu$1.RadioItemIndicator>, "className"> {
93
+ /** Additional CSS class names */
94
+ className?: string;
95
+ }
96
+ /**
97
+ * Props for the Menu.CheckboxItem component.
98
+ */
99
+ interface MenuCheckboxItemProps extends Omit<React.ComponentPropsWithoutRef<typeof Menu$1.CheckboxItem>, "className"> {
100
+ /** Additional CSS class names */
101
+ className?: string;
102
+ }
103
+ /**
104
+ * Props for the Menu.CheckboxItemIndicator component.
105
+ */
106
+ interface MenuCheckboxItemIndicatorProps extends Omit<React.ComponentPropsWithoutRef<typeof Menu$1.CheckboxItemIndicator>, "className"> {
107
+ /** Additional CSS class names */
108
+ className?: string;
109
+ }
110
+ interface MenuShortcutProps extends React.HTMLAttributes<HTMLSpanElement> {}
111
+ interface MenuSubProps extends React.ComponentPropsWithoutRef<typeof Menu$1.SubmenuRoot> {}
112
+ type MenuSubContentProps = MenuContentProps;
113
+ /**
114
+ * Props for the Menu.SubmenuTrigger component.
115
+ */
116
+ interface MenuSubmenuTriggerProps extends Omit<React.ComponentPropsWithoutRef<typeof Menu$1.SubmenuTrigger>, "className"> {
117
+ /** Additional CSS class names */
118
+ className?: string;
119
+ inset?: boolean;
120
+ }
121
+ type MenuSubTriggerProps = MenuSubmenuTriggerProps;
122
+ /**
123
+ * Root component that manages menu state.
124
+ *
125
+ * @example
126
+ * ```tsx
127
+ * <Menu.Root>
128
+ * <Menu.Trigger>Actions</Menu.Trigger>
129
+ * <Menu.Portal>
130
+ * <Menu.Positioner>
131
+ * <Menu.Popup>
132
+ * <Menu.Item>Edit</Menu.Item>
133
+ * <Menu.Item>Delete</Menu.Item>
134
+ * </Menu.Popup>
135
+ * </Menu.Positioner>
136
+ * </Menu.Portal>
137
+ * </Menu.Root>
138
+ * ```
139
+ *
140
+ * @see {@link https://base-ui.com/react/components/menu | Base UI Menu}
141
+ */
142
+ declare const MenuRoot: (props: MenuProps) => React.JSX.Element;
143
+ /**
144
+ * Button that toggles the menu visibility.
145
+ */
146
+ declare function MenuTrigger({
147
+ className,
148
+ ref,
149
+ ...props
150
+ }: MenuTriggerProps & {
151
+ ref?: React.Ref<HTMLButtonElement>;
152
+ }): React.JSX.Element;
153
+ /**
154
+ * Renders menu content in a portal.
155
+ */
156
+ declare const MenuPortal: (props: MenuPortalProps) => React.JSX.Element;
157
+ /**
158
+ * Positions the menu popup relative to the trigger.
159
+ */
160
+ declare function MenuPositioner({
161
+ className,
162
+ ref,
163
+ ...props
164
+ }: MenuPositionerProps & {
165
+ ref?: React.Ref<HTMLDivElement>;
166
+ }): React.JSX.Element;
167
+ /**
168
+ * Container for menu items.
169
+ */
170
+ declare function MenuPopup({
171
+ className,
172
+ ref,
173
+ ...props
174
+ }: MenuPopupProps & {
175
+ ref?: React.Ref<HTMLDivElement>;
176
+ }): React.JSX.Element;
177
+ declare function MenuContent({
178
+ anchor,
179
+ positionMethod,
180
+ side,
181
+ sideOffset,
182
+ align,
183
+ alignOffset,
184
+ collisionBoundary,
185
+ collisionPadding,
186
+ sticky,
187
+ arrowPadding,
188
+ disableAnchorTracking,
189
+ collisionAvoidance,
190
+ ...props
191
+ }: MenuContentProps & {
192
+ ref?: React.Ref<HTMLDivElement>;
193
+ }): React.JSX.Element;
194
+ /**
195
+ * Interactive menu item.
196
+ */
197
+ declare function MenuItem({
198
+ className,
199
+ inset,
200
+ variant,
201
+ ref,
202
+ ...props
203
+ }: MenuItemProps & {
204
+ ref?: React.Ref<HTMLDivElement>;
205
+ }): React.JSX.Element;
206
+ /**
207
+ * Groups related menu items.
208
+ */
209
+ declare function MenuGroup({
210
+ className,
211
+ ref,
212
+ ...props
213
+ }: MenuGroupProps & {
214
+ ref?: React.Ref<HTMLDivElement>;
215
+ }): React.JSX.Element;
216
+ /**
217
+ * Label for a group of menu items.
218
+ */
219
+ declare function MenuGroupLabel({
220
+ className,
221
+ inset,
222
+ ref,
223
+ ...props
224
+ }: MenuGroupLabelProps & {
225
+ ref?: React.Ref<HTMLDivElement>;
226
+ }): React.JSX.Element;
227
+ declare const MenuLabel: typeof MenuGroupLabel;
228
+ /**
229
+ * Arrow pointing to the trigger.
230
+ */
231
+ declare function MenuArrow({
232
+ className,
233
+ ref,
234
+ ...props
235
+ }: MenuArrowProps & {
236
+ ref?: React.Ref<HTMLDivElement>;
237
+ }): React.JSX.Element;
238
+ /**
239
+ * Visual separator between menu sections.
240
+ */
241
+ declare function MenuSeparator({
242
+ className,
243
+ ref,
244
+ ...props
245
+ }: MenuSeparatorProps & {
246
+ ref?: React.Ref<HTMLDivElement>;
247
+ }): React.JSX.Element;
248
+ /**
249
+ * Group for exclusive radio selection.
250
+ */
251
+ declare function MenuRadioGroup({
252
+ className,
253
+ ref,
254
+ ...props
255
+ }: MenuRadioGroupProps & {
256
+ ref?: React.Ref<HTMLDivElement>;
257
+ }): React.JSX.Element;
258
+ /**
259
+ * Radio item for exclusive selection.
260
+ */
261
+ declare function MenuRadioItem({
262
+ className,
263
+ children,
264
+ ref,
265
+ ...props
266
+ }: MenuRadioItemProps & {
267
+ ref?: React.Ref<HTMLDivElement>;
268
+ }): React.JSX.Element;
269
+ /**
270
+ * Indicator for selected radio item.
271
+ */
272
+ declare function MenuRadioItemIndicator({
273
+ className,
274
+ ref,
275
+ ...props
276
+ }: MenuRadioItemIndicatorProps & {
277
+ ref?: React.Ref<HTMLSpanElement>;
278
+ }): React.JSX.Element;
279
+ /**
280
+ * Checkbox item for toggling options.
281
+ */
282
+ declare function MenuCheckboxItem({
283
+ className,
284
+ children,
285
+ ref,
286
+ ...props
287
+ }: MenuCheckboxItemProps & {
288
+ ref?: React.Ref<HTMLDivElement>;
289
+ }): React.JSX.Element;
290
+ /**
291
+ * Indicator for checked checkbox item.
292
+ */
293
+ declare function MenuCheckboxItemIndicator({
294
+ className,
295
+ ref,
296
+ ...props
297
+ }: MenuCheckboxItemIndicatorProps & {
298
+ ref?: React.Ref<HTMLSpanElement>;
299
+ }): React.JSX.Element;
300
+ declare function MenuShortcut({
301
+ className,
302
+ ref,
303
+ ...props
304
+ }: MenuShortcutProps & {
305
+ ref?: React.Ref<HTMLSpanElement>;
306
+ }): React.JSX.Element;
307
+ declare function MenuSub(props: MenuSubProps): React.JSX.Element;
308
+ declare function MenuSubContent({
309
+ side,
310
+ align,
311
+ sideOffset,
312
+ ...props
313
+ }: MenuSubContentProps & {
314
+ ref?: React.Ref<HTMLDivElement>;
315
+ }): React.JSX.Element;
316
+ /**
317
+ * Trigger that opens a submenu.
318
+ */
319
+ declare function MenuSubmenuTrigger({
320
+ className,
321
+ inset,
322
+ ref,
323
+ ...props
324
+ }: MenuSubmenuTriggerProps & {
325
+ ref?: React.Ref<HTMLDivElement>;
326
+ }): React.JSX.Element;
327
+ declare const MenuSubTrigger: typeof MenuSubmenuTrigger;
328
+ /**
329
+ * A dropdown menu with keyboard navigation support.
330
+ * Provides items, groups, checkboxes, radio selections, and nested submenus.
331
+ *
332
+ * @example
333
+ * ```tsx
334
+ * // Basic menu
335
+ * <Menu.Root>
336
+ * <Menu.Trigger>Actions</Menu.Trigger>
337
+ * <Menu.Portal>
338
+ * <Menu.Positioner>
339
+ * <Menu.Popup>
340
+ * <Menu.Item onClick={() => console.log('Edit')}>Edit</Menu.Item>
341
+ * <Menu.Item onClick={() => console.log('Copy')}>Copy</Menu.Item>
342
+ * <Menu.Separator />
343
+ * <Menu.Item onClick={() => console.log('Delete')}>Delete</Menu.Item>
344
+ * </Menu.Popup>
345
+ * </Menu.Positioner>
346
+ * </Menu.Portal>
347
+ * </Menu.Root>
348
+ * ```
349
+ *
350
+ * @example
351
+ * ```tsx
352
+ * // Menu with checkbox items
353
+ * <Menu.Root>
354
+ * <Menu.Trigger>View Options</Menu.Trigger>
355
+ * <Menu.Portal>
356
+ * <Menu.Positioner>
357
+ * <Menu.Popup>
358
+ * <Menu.CheckboxItem checked={showGrid} onCheckedChange={setShowGrid}>
359
+ * <Menu.CheckboxItemIndicator />
360
+ * Show Grid
361
+ * </Menu.CheckboxItem>
362
+ * </Menu.Popup>
363
+ * </Menu.Positioner>
364
+ * </Menu.Portal>
365
+ * </Menu.Root>
366
+ * ```
367
+ *
368
+ * @see {@link https://base-ui.com/react/components/menu | Base UI Menu}
369
+ */
370
+ declare const Menu: ((props: MenuProps) => React.JSX.Element) & {
371
+ Root: (props: MenuProps) => React.JSX.Element;
372
+ Trigger: typeof MenuTrigger;
373
+ Portal: (props: MenuPortalProps) => React.JSX.Element;
374
+ Positioner: typeof MenuPositioner;
375
+ Popup: typeof MenuPopup;
376
+ Content: typeof MenuContent;
377
+ Item: typeof MenuItem;
378
+ Group: typeof MenuGroup;
379
+ GroupLabel: typeof MenuGroupLabel;
380
+ Label: typeof MenuGroupLabel;
381
+ Arrow: typeof MenuArrow;
382
+ Separator: typeof MenuSeparator;
383
+ RadioGroup: typeof MenuRadioGroup;
384
+ RadioItem: typeof MenuRadioItem;
385
+ RadioItemIndicator: typeof MenuRadioItemIndicator;
386
+ CheckboxItem: typeof MenuCheckboxItem;
387
+ CheckboxItemIndicator: typeof MenuCheckboxItemIndicator;
388
+ Shortcut: typeof MenuShortcut;
389
+ Sub: typeof MenuSub;
390
+ SubContent: typeof MenuSubContent;
391
+ SubTrigger: typeof MenuSubmenuTrigger;
392
+ SubmenuTrigger: typeof MenuSubmenuTrigger;
393
+ };
394
+ //#endregion
395
+ export { Menu, MenuArrow, MenuArrowProps, MenuCheckboxItem, MenuCheckboxItemIndicator, MenuCheckboxItemIndicatorProps, MenuCheckboxItemProps, MenuContent, MenuContentProps, MenuGroup, MenuGroupLabel, MenuGroupLabelProps, MenuGroupProps, MenuItem, MenuItemProps, MenuLabel, MenuLabelProps, MenuPopup, MenuPopupProps, MenuPortal, MenuPortalProps, MenuPositioner, MenuPositionerProps, MenuProps, MenuRadioGroup, MenuRadioGroupProps, MenuRadioItem, MenuRadioItemIndicator, MenuRadioItemIndicatorProps, MenuRadioItemProps, MenuRoot, MenuSeparator, MenuSeparatorProps, MenuShortcut, MenuShortcutProps, MenuSub, MenuSubContent, MenuSubContentProps, MenuSubProps, MenuSubTrigger, MenuSubTriggerProps, MenuSubmenuTrigger, MenuSubmenuTriggerProps, MenuTrigger, MenuTriggerProps };