@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.
- package/dist/Button-QCM8ZKgR.d.ts +98 -0
- package/dist/CodeBlock-CttHhWcb.js +356 -0
- package/dist/CodeBlock-V6pgafSS.d.ts +174 -0
- package/dist/Select-CRsKCJ9x.d.ts +200 -0
- package/dist/class-names-9UtZwb0J.js +12 -0
- package/dist/components/Accordion.d.ts +81 -0
- package/dist/components/Accordion.js +97 -0
- package/dist/components/AgentConnection.d.ts +69 -0
- package/dist/components/AgentConnection.js +176 -0
- package/dist/components/AlertDialog.d.ts +148 -0
- package/dist/components/AlertDialog.js +141 -0
- package/dist/components/Artifact.d.ts +128 -0
- package/dist/components/Artifact.js +115 -0
- package/dist/components/Autocomplete.d.ts +186 -0
- package/dist/components/Autocomplete.js +186 -0
- package/dist/components/Avatar.d.ts +134 -0
- package/dist/components/Avatar.js +118 -0
- package/dist/components/Badge.d.ts +68 -0
- package/dist/components/Badge.js +108 -0
- package/dist/components/Button.d.ts +2 -0
- package/dist/components/Button.js +73 -0
- package/dist/components/Card.d.ts +87 -0
- package/dist/components/Card.js +81 -0
- package/dist/components/ChainOfThought.d.ts +153 -0
- package/dist/components/ChainOfThought.js +157 -0
- package/dist/components/Checkbox.d.ts +35 -0
- package/dist/components/Checkbox.js +47 -0
- package/dist/components/CheckboxGroup.d.ts +76 -0
- package/dist/components/CheckboxGroup.js +69 -0
- package/dist/components/CodeBlock.d.ts +2 -0
- package/dist/components/CodeBlock.js +2 -0
- package/dist/components/Collapsible.d.ts +127 -0
- package/dist/components/Collapsible.js +103 -0
- package/dist/components/Combobox.d.ts +177 -0
- package/dist/components/Combobox.js +179 -0
- package/dist/components/Commit.d.ts +265 -0
- package/dist/components/Commit.js +282 -0
- package/dist/components/Context.d.ts +129 -0
- package/dist/components/Context.js +309 -0
- package/dist/components/ContextMenu.d.ts +282 -0
- package/dist/components/ContextMenu.js +270 -0
- package/dist/components/Conversation.d.ts +166 -0
- package/dist/components/Conversation.js +202 -0
- package/dist/components/Dialog.d.ts +120 -0
- package/dist/components/Dialog.js +114 -0
- package/dist/components/EnvironmentVariables.d.ts +176 -0
- package/dist/components/EnvironmentVariables.js +221 -0
- package/dist/components/Field.d.ts +281 -0
- package/dist/components/Field.js +274 -0
- package/dist/components/Fieldset.d.ts +93 -0
- package/dist/components/Fieldset.js +81 -0
- package/dist/components/FileTree.d.ts +116 -0
- package/dist/components/FileTree.js +310 -0
- package/dist/components/Form.d.ts +94 -0
- package/dist/components/Form.js +88 -0
- package/dist/components/GithubMotionMark.d.ts +13 -0
- package/dist/components/GithubMotionMark.js +23 -0
- package/dist/components/Input.d.ts +33 -0
- package/dist/components/Input.js +27 -0
- package/dist/components/Label.d.ts +44 -0
- package/dist/components/Label.js +41 -0
- package/dist/components/Menu.d.ts +395 -0
- package/dist/components/Menu.js +338 -0
- package/dist/components/Menubar.d.ts +331 -0
- package/dist/components/Menubar.js +299 -0
- package/dist/components/Message.d.ts +216 -0
- package/dist/components/Message.js +245 -0
- package/dist/components/Meter.d.ts +151 -0
- package/dist/components/Meter.js +121 -0
- package/dist/components/ModelSelector.d.ts +198 -0
- package/dist/components/ModelSelector.js +306 -0
- package/dist/components/NaniteScene.d.ts +33 -0
- package/dist/components/NaniteScene.js +405 -0
- package/dist/components/NavigationMenu.d.ts +256 -0
- package/dist/components/NavigationMenu.js +228 -0
- package/dist/components/NumberField.d.ts +159 -0
- package/dist/components/NumberField.js +123 -0
- package/dist/components/Popover.d.ts +278 -0
- package/dist/components/Popover.js +245 -0
- package/dist/components/PreviewCard.d.ts +156 -0
- package/dist/components/PreviewCard.js +156 -0
- package/dist/components/PricingPage.d.ts +209 -0
- package/dist/components/PricingPage.js +506 -0
- package/dist/components/Progress.d.ts +58 -0
- package/dist/components/Progress.js +51 -0
- package/dist/components/PromptInput.d.ts +399 -0
- package/dist/components/PromptInput.js +737 -0
- package/dist/components/Queue.d.ts +241 -0
- package/dist/components/Queue.js +225 -0
- package/dist/components/RadioGroup.d.ts +78 -0
- package/dist/components/RadioGroup.js +72 -0
- package/dist/components/Reasoning.d.ts +88 -0
- package/dist/components/Reasoning.js +187 -0
- package/dist/components/ScrollArea.d.ts +160 -0
- package/dist/components/ScrollArea.js +145 -0
- package/dist/components/Select.d.ts +2 -0
- package/dist/components/Select.js +260 -0
- package/dist/components/Separator.d.ts +45 -0
- package/dist/components/Separator.js +40 -0
- package/dist/components/Shell.d.ts +163 -0
- package/dist/components/Shell.js +137 -0
- package/dist/components/Slider.d.ts +120 -0
- package/dist/components/Slider.js +115 -0
- package/dist/components/Sources.d.ts +91 -0
- package/dist/components/Sources.js +121 -0
- package/dist/components/Stepper.d.ts +190 -0
- package/dist/components/Stepper.js +315 -0
- package/dist/components/Switch.d.ts +57 -0
- package/dist/components/Switch.js +55 -0
- package/dist/components/Tabs.d.ts +84 -0
- package/dist/components/Tabs.js +78 -0
- package/dist/components/Task.d.ts +100 -0
- package/dist/components/Task.js +120 -0
- package/dist/components/Terminal.d.ts +118 -0
- package/dist/components/Terminal.js +234 -0
- package/dist/components/TestResults.d.ts +236 -0
- package/dist/components/TestResults.js +346 -0
- package/dist/components/Toast.d.ts +192 -0
- package/dist/components/Toast.js +163 -0
- package/dist/components/Toggle.d.ts +69 -0
- package/dist/components/Toggle.js +66 -0
- package/dist/components/ToggleGroup.d.ts +69 -0
- package/dist/components/ToggleGroup.js +99 -0
- package/dist/components/Tool.d.ts +119 -0
- package/dist/components/Tool.js +192 -0
- package/dist/components/Toolbar.d.ts +162 -0
- package/dist/components/Toolbar.js +126 -0
- package/dist/components/Tooltip.d.ts +81 -0
- package/dist/components/Tooltip.js +74 -0
- package/dist/components/WebPreview.d.ts +143 -0
- package/dist/components/WebPreview.js +280 -0
- package/dist/components/useStickToBottom.d.ts +30 -0
- package/dist/components/useStickToBottom.js +95 -0
- package/dist/copy-button-BIATcZWZ.d.ts +16 -0
- package/dist/copy-button-BNgclDrO.js +43 -0
- package/dist/icons-BsWc8g4E.js +221 -0
- package/dist/styles/accordion.css +10 -10
- package/dist/styles/agent-connection.css +18 -17
- package/dist/styles/alert-dialog.css +48 -29
- package/dist/styles/artifact.css +10 -10
- package/dist/styles/autocomplete.css +25 -24
- package/dist/styles/avatar.css +96 -6
- package/dist/styles/badge.css +78 -14
- package/dist/styles/base.css +9 -9
- package/dist/styles/button.css +57 -38
- package/dist/styles/card.css +57 -10
- package/dist/styles/chain-of-thought.css +47 -33
- package/dist/styles/checkbox.css +24 -10
- package/dist/styles/code-block.css +22 -15
- package/dist/styles/collapsible.css +14 -12
- package/dist/styles/combobox.css +26 -25
- package/dist/styles/commit.css +49 -24
- package/dist/styles/context-menu.css +70 -16
- package/dist/styles/context.css +15 -15
- package/dist/styles/conversation.css +12 -12
- package/dist/styles/dialog.css +52 -16
- package/dist/styles/environment-variables.css +19 -19
- package/dist/styles/field.css +184 -22
- package/dist/styles/fieldset.css +5 -4
- package/dist/styles/file-tree.css +17 -17
- package/dist/styles/index.css.d.ts +1 -0
- package/dist/styles/input.css +45 -11
- package/dist/styles/label.css +21 -4
- package/dist/styles/menu.css +55 -32
- package/dist/styles/menubar.css +80 -28
- package/dist/styles/message.css +22 -13
- package/dist/styles/meter.css +8 -8
- package/dist/styles/model-selector.css +33 -21
- package/dist/styles/navigation-menu.css +26 -24
- package/dist/styles/number-field.css +20 -18
- package/dist/styles/popover.css +38 -28
- package/dist/styles/preview-card.css +15 -13
- package/dist/styles/pricing-page.css +53 -53
- package/dist/styles/progress.css +7 -7
- package/dist/styles/prompt-input.css +73 -24
- package/dist/styles/queue.css +58 -32
- package/dist/styles/radio.css +26 -11
- package/dist/styles/reasoning.css +15 -11
- package/dist/styles/scroll-area.css +6 -6
- package/dist/styles/scrollbars.css +4 -4
- package/dist/styles/select.css +84 -25
- package/dist/styles/separator.css +1 -1
- package/dist/styles/shell.css +21 -20
- package/dist/styles/slider.css +35 -11
- package/dist/styles/sources.css +20 -20
- package/dist/styles/stepper.css +22 -22
- package/dist/styles/switch.css +29 -13
- package/dist/styles/tabs.css +23 -16
- package/dist/styles/task.css +27 -23
- package/dist/styles/terminal.css +16 -13
- package/dist/styles/test-results.css +79 -32
- package/dist/styles/toast.css +26 -25
- package/dist/styles/toggle-group.css +12 -12
- package/dist/styles/toggle.css +29 -11
- package/dist/styles/tool.css +54 -32
- package/dist/styles/toolbar.css +30 -28
- package/dist/styles/tooltip.css +10 -8
- package/dist/styles/web-preview.css +37 -21
- package/dist/utils/structured-code.d.ts +10 -0
- package/dist/utils/structured-code.js +81 -0
- package/package.json +17 -8
- package/dist/index.d.ts +0 -7236
- 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 };
|