@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,405 @@
|
|
|
1
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
//#region src/components/NaniteScene.tsx
|
|
3
|
+
const BODY_COLORS = [
|
|
4
|
+
"#0f7b6c",
|
|
5
|
+
"#2d5a8a",
|
|
6
|
+
"#7eb8c9"
|
|
7
|
+
];
|
|
8
|
+
const HAT_SHELL = "#d4a636";
|
|
9
|
+
const HAT_BRIM = "#c49525";
|
|
10
|
+
const HAT_BULB = "#f0d060";
|
|
11
|
+
const EYE_FILL = "#0d1520";
|
|
12
|
+
const EYE_HIGHLIGHT = "rgba(255,255,255,0.45)";
|
|
13
|
+
const SCREEN_BG = "#1e2d3d";
|
|
14
|
+
const SCREEN_BORDER = "#3a5068";
|
|
15
|
+
const SCREEN_LINE = "#2e3d50";
|
|
16
|
+
const SCREEN_ICON_WARN = "#c87832";
|
|
17
|
+
const GLASS_STROKE = "#8ba7b8";
|
|
18
|
+
const BADGE_SUCCESS = "#0f7b6c";
|
|
19
|
+
const BADGE_FAIL = "#dc2626";
|
|
20
|
+
const TRIO_XS = [
|
|
21
|
+
40,
|
|
22
|
+
100,
|
|
23
|
+
160
|
|
24
|
+
];
|
|
25
|
+
/**
|
|
26
|
+
* Decorative Nanites illustration used in setup, status, and empty states.
|
|
27
|
+
* Pass a title when the illustration communicates state; otherwise it remains
|
|
28
|
+
* hidden from assistive technology.
|
|
29
|
+
*
|
|
30
|
+
* Built internally for Sigvelo onboarding and agent-connection surfaces. Use
|
|
31
|
+
* it as supporting status art, not as a control or primary content.
|
|
32
|
+
*
|
|
33
|
+
* Styling consumes Nanite scene CSS animation hooks plus Sigvelo layout context.
|
|
34
|
+
* Respect reduced-motion CSS when adding animation. Add variants here when a
|
|
35
|
+
* state is reused across apps; keep one-off art local to the app.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* <NaniteScene variant="working" mode="solo" title="Agent is checking GitHub" />
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
function NaniteScene({ variant, mode = "trio", className, title }) {
|
|
43
|
+
const wrapperClass = [
|
|
44
|
+
"nanite-scene",
|
|
45
|
+
`nanite-scene--${variant}`,
|
|
46
|
+
`nanite-scene--${mode}`,
|
|
47
|
+
className
|
|
48
|
+
].filter(Boolean).join(" ");
|
|
49
|
+
const ariaProps = title ? {
|
|
50
|
+
role: "img",
|
|
51
|
+
"aria-label": title
|
|
52
|
+
} : { "aria-hidden": true };
|
|
53
|
+
if (mode === "trio") {
|
|
54
|
+
const centerY = 34;
|
|
55
|
+
return /* @__PURE__ */ jsx("div", {
|
|
56
|
+
className: wrapperClass,
|
|
57
|
+
children: /* @__PURE__ */ jsxs("svg", {
|
|
58
|
+
viewBox: "0 0 200 68",
|
|
59
|
+
width: "200",
|
|
60
|
+
height: "68",
|
|
61
|
+
preserveAspectRatio: "xMidYMid meet",
|
|
62
|
+
fill: "none",
|
|
63
|
+
...ariaProps,
|
|
64
|
+
children: [title ? /* @__PURE__ */ jsx("title", { children: title }) : null, TRIO_XS.map((x, index) => /* @__PURE__ */ jsx(Nanite, {
|
|
65
|
+
index,
|
|
66
|
+
cx: x,
|
|
67
|
+
cy: centerY,
|
|
68
|
+
scale: 1
|
|
69
|
+
}, x))]
|
|
70
|
+
})
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
const showBrowser = variant !== "idle" && variant !== "helmet";
|
|
74
|
+
const showGlass = variant === "working";
|
|
75
|
+
const showSuccessBadge = variant === "celebrating";
|
|
76
|
+
const showFailBadge = variant === "concerned";
|
|
77
|
+
const soloViewBox = showBrowser ? "0 0 120 56" : "0 0 52 56";
|
|
78
|
+
const soloWidth = showBrowser ? 120 : 52;
|
|
79
|
+
const naniteX = 24;
|
|
80
|
+
const naniteScale = .95;
|
|
81
|
+
const centerY = 30;
|
|
82
|
+
const screenCx = 82;
|
|
83
|
+
const screenCy = 30;
|
|
84
|
+
return /* @__PURE__ */ jsx("div", {
|
|
85
|
+
className: wrapperClass,
|
|
86
|
+
children: /* @__PURE__ */ jsxs("svg", {
|
|
87
|
+
viewBox: soloViewBox,
|
|
88
|
+
width: soloWidth,
|
|
89
|
+
height: "56",
|
|
90
|
+
preserveAspectRatio: "xMidYMid meet",
|
|
91
|
+
fill: "none",
|
|
92
|
+
...ariaProps,
|
|
93
|
+
children: [
|
|
94
|
+
title ? /* @__PURE__ */ jsx("title", { children: title }) : null,
|
|
95
|
+
/* @__PURE__ */ jsx(Nanite, {
|
|
96
|
+
index: 0,
|
|
97
|
+
cx: naniteX,
|
|
98
|
+
cy: centerY,
|
|
99
|
+
scale: naniteScale
|
|
100
|
+
}),
|
|
101
|
+
showBrowser ? /* @__PURE__ */ jsxs("g", {
|
|
102
|
+
transform: `translate(${screenCx}, ${screenCy})`,
|
|
103
|
+
children: [
|
|
104
|
+
/* @__PURE__ */ jsx("rect", {
|
|
105
|
+
x: "-22",
|
|
106
|
+
y: "-17",
|
|
107
|
+
width: "44",
|
|
108
|
+
height: "34",
|
|
109
|
+
rx: "3",
|
|
110
|
+
fill: SCREEN_BG,
|
|
111
|
+
stroke: SCREEN_BORDER,
|
|
112
|
+
strokeWidth: "1"
|
|
113
|
+
}),
|
|
114
|
+
/* @__PURE__ */ jsx("circle", {
|
|
115
|
+
cx: "-17",
|
|
116
|
+
cy: "-13",
|
|
117
|
+
r: "1.3",
|
|
118
|
+
fill: SCREEN_ICON_WARN
|
|
119
|
+
}),
|
|
120
|
+
/* @__PURE__ */ jsx("circle", {
|
|
121
|
+
cx: "-12",
|
|
122
|
+
cy: "-13",
|
|
123
|
+
r: "1.3",
|
|
124
|
+
fill: HAT_SHELL
|
|
125
|
+
}),
|
|
126
|
+
/* @__PURE__ */ jsx("circle", {
|
|
127
|
+
cx: "-7",
|
|
128
|
+
cy: "-13",
|
|
129
|
+
r: "1.3",
|
|
130
|
+
fill: BODY_COLORS[0]
|
|
131
|
+
}),
|
|
132
|
+
/* @__PURE__ */ jsx("rect", {
|
|
133
|
+
x: "-18",
|
|
134
|
+
y: "-6",
|
|
135
|
+
width: "24",
|
|
136
|
+
height: "1.8",
|
|
137
|
+
rx: "0.9",
|
|
138
|
+
fill: SCREEN_LINE
|
|
139
|
+
}),
|
|
140
|
+
/* @__PURE__ */ jsx("rect", {
|
|
141
|
+
x: "-18",
|
|
142
|
+
y: "-2",
|
|
143
|
+
width: "16",
|
|
144
|
+
height: "1.8",
|
|
145
|
+
rx: "0.9",
|
|
146
|
+
fill: SCREEN_LINE
|
|
147
|
+
}),
|
|
148
|
+
/* @__PURE__ */ jsx("rect", {
|
|
149
|
+
x: "-18",
|
|
150
|
+
y: "2",
|
|
151
|
+
width: "20",
|
|
152
|
+
height: "1.8",
|
|
153
|
+
rx: "0.9",
|
|
154
|
+
fill: SCREEN_LINE
|
|
155
|
+
}),
|
|
156
|
+
/* @__PURE__ */ jsx("rect", {
|
|
157
|
+
className: "nanite-scene__screen-scan",
|
|
158
|
+
x: "-20",
|
|
159
|
+
y: "-9",
|
|
160
|
+
width: "6",
|
|
161
|
+
height: "23",
|
|
162
|
+
rx: "3",
|
|
163
|
+
fill: BODY_COLORS[2],
|
|
164
|
+
opacity: "0"
|
|
165
|
+
}),
|
|
166
|
+
/* @__PURE__ */ jsx("rect", {
|
|
167
|
+
x: "-18",
|
|
168
|
+
y: "7",
|
|
169
|
+
width: "12",
|
|
170
|
+
height: "3",
|
|
171
|
+
rx: "1.5",
|
|
172
|
+
fill: BODY_COLORS[1],
|
|
173
|
+
opacity: "0.55"
|
|
174
|
+
}),
|
|
175
|
+
/* @__PURE__ */ jsxs("g", {
|
|
176
|
+
className: "nanite-scene__github-signal",
|
|
177
|
+
children: [
|
|
178
|
+
/* @__PURE__ */ jsx("path", {
|
|
179
|
+
d: "M 3 5.5 L 9 0 L 14 5.5",
|
|
180
|
+
stroke: BODY_COLORS[2],
|
|
181
|
+
strokeWidth: "1.15",
|
|
182
|
+
strokeLinecap: "round",
|
|
183
|
+
strokeLinejoin: "round"
|
|
184
|
+
}),
|
|
185
|
+
/* @__PURE__ */ jsx("circle", {
|
|
186
|
+
className: "nanite-scene__github-node",
|
|
187
|
+
cx: "3",
|
|
188
|
+
cy: "5.5",
|
|
189
|
+
r: "2",
|
|
190
|
+
fill: BODY_COLORS[0]
|
|
191
|
+
}),
|
|
192
|
+
/* @__PURE__ */ jsx("circle", {
|
|
193
|
+
className: "nanite-scene__github-node",
|
|
194
|
+
cx: "9",
|
|
195
|
+
cy: "0",
|
|
196
|
+
r: "2",
|
|
197
|
+
fill: HAT_SHELL
|
|
198
|
+
}),
|
|
199
|
+
/* @__PURE__ */ jsx("circle", {
|
|
200
|
+
className: "nanite-scene__github-node",
|
|
201
|
+
cx: "14",
|
|
202
|
+
cy: "5.5",
|
|
203
|
+
r: "2",
|
|
204
|
+
fill: BODY_COLORS[1]
|
|
205
|
+
})
|
|
206
|
+
]
|
|
207
|
+
})
|
|
208
|
+
]
|
|
209
|
+
}) : null,
|
|
210
|
+
showGlass ? /* @__PURE__ */ jsx("g", {
|
|
211
|
+
transform: `translate(${screenCx - 4}, 32)`,
|
|
212
|
+
children: /* @__PURE__ */ jsxs("g", {
|
|
213
|
+
className: "nanite-scene__glass",
|
|
214
|
+
children: [/* @__PURE__ */ jsx("circle", {
|
|
215
|
+
cx: "0",
|
|
216
|
+
cy: "0",
|
|
217
|
+
r: "7",
|
|
218
|
+
fill: "rgba(255,255,255,0.06)",
|
|
219
|
+
stroke: GLASS_STROKE,
|
|
220
|
+
strokeWidth: "1.5"
|
|
221
|
+
}), /* @__PURE__ */ jsx("line", {
|
|
222
|
+
x1: "5",
|
|
223
|
+
y1: "5",
|
|
224
|
+
x2: "10",
|
|
225
|
+
y2: "10",
|
|
226
|
+
stroke: GLASS_STROKE,
|
|
227
|
+
strokeWidth: "1.8",
|
|
228
|
+
strokeLinecap: "round"
|
|
229
|
+
})]
|
|
230
|
+
})
|
|
231
|
+
}) : null,
|
|
232
|
+
showSuccessBadge ? /* @__PURE__ */ jsx("g", {
|
|
233
|
+
transform: `translate(96, ${screenCy - 10})`,
|
|
234
|
+
children: /* @__PURE__ */ jsxs("g", {
|
|
235
|
+
className: "nanite-scene__badge",
|
|
236
|
+
children: [/* @__PURE__ */ jsx("circle", {
|
|
237
|
+
cx: "0",
|
|
238
|
+
cy: "0",
|
|
239
|
+
r: "7",
|
|
240
|
+
fill: BADGE_SUCCESS,
|
|
241
|
+
stroke: "#ffffff",
|
|
242
|
+
strokeWidth: "1.5"
|
|
243
|
+
}), /* @__PURE__ */ jsx("path", {
|
|
244
|
+
d: "M -3 0 L -0.5 2.5 L 3.5 -2",
|
|
245
|
+
stroke: "#ffffff",
|
|
246
|
+
strokeWidth: "1.8",
|
|
247
|
+
strokeLinecap: "round",
|
|
248
|
+
strokeLinejoin: "round",
|
|
249
|
+
fill: "none"
|
|
250
|
+
})]
|
|
251
|
+
})
|
|
252
|
+
}) : null,
|
|
253
|
+
showFailBadge ? /* @__PURE__ */ jsx("g", {
|
|
254
|
+
transform: `translate(96, ${screenCy - 10})`,
|
|
255
|
+
children: /* @__PURE__ */ jsxs("g", {
|
|
256
|
+
className: "nanite-scene__badge",
|
|
257
|
+
children: [
|
|
258
|
+
/* @__PURE__ */ jsx("circle", {
|
|
259
|
+
cx: "0",
|
|
260
|
+
cy: "0",
|
|
261
|
+
r: "7",
|
|
262
|
+
fill: BADGE_FAIL,
|
|
263
|
+
stroke: "#ffffff",
|
|
264
|
+
strokeWidth: "1.5"
|
|
265
|
+
}),
|
|
266
|
+
/* @__PURE__ */ jsx("line", {
|
|
267
|
+
x1: "-3",
|
|
268
|
+
y1: "-3",
|
|
269
|
+
x2: "3",
|
|
270
|
+
y2: "3",
|
|
271
|
+
stroke: "#ffffff",
|
|
272
|
+
strokeWidth: "1.8",
|
|
273
|
+
strokeLinecap: "round"
|
|
274
|
+
}),
|
|
275
|
+
/* @__PURE__ */ jsx("line", {
|
|
276
|
+
x1: "3",
|
|
277
|
+
y1: "-3",
|
|
278
|
+
x2: "-3",
|
|
279
|
+
y2: "3",
|
|
280
|
+
stroke: "#ffffff",
|
|
281
|
+
strokeWidth: "1.8",
|
|
282
|
+
strokeLinecap: "round"
|
|
283
|
+
})
|
|
284
|
+
]
|
|
285
|
+
})
|
|
286
|
+
}) : null,
|
|
287
|
+
showSuccessBadge ? /* @__PURE__ */ jsxs("g", {
|
|
288
|
+
className: "nanite-scene__sparkles",
|
|
289
|
+
children: [
|
|
290
|
+
/* @__PURE__ */ jsx("circle", {
|
|
291
|
+
className: "nanite-scene__sparkle",
|
|
292
|
+
cx: naniteX - 10,
|
|
293
|
+
cy: centerY - 24,
|
|
294
|
+
r: "1.6",
|
|
295
|
+
fill: HAT_BULB
|
|
296
|
+
}),
|
|
297
|
+
/* @__PURE__ */ jsx("circle", {
|
|
298
|
+
className: "nanite-scene__sparkle",
|
|
299
|
+
cx: 26,
|
|
300
|
+
cy: centerY - 28,
|
|
301
|
+
r: "1.9",
|
|
302
|
+
fill: BODY_COLORS[0]
|
|
303
|
+
}),
|
|
304
|
+
/* @__PURE__ */ jsx("circle", {
|
|
305
|
+
className: "nanite-scene__sparkle",
|
|
306
|
+
cx: 38,
|
|
307
|
+
cy: centerY - 22,
|
|
308
|
+
r: "1.6",
|
|
309
|
+
fill: BODY_COLORS[2]
|
|
310
|
+
})
|
|
311
|
+
]
|
|
312
|
+
}) : null
|
|
313
|
+
]
|
|
314
|
+
})
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
function NaniteBody({ index }) {
|
|
318
|
+
const color = BODY_COLORS[index % BODY_COLORS.length];
|
|
319
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
320
|
+
/* @__PURE__ */ jsx("rect", {
|
|
321
|
+
x: "-15",
|
|
322
|
+
y: "-21",
|
|
323
|
+
width: "30",
|
|
324
|
+
height: "36",
|
|
325
|
+
rx: "8",
|
|
326
|
+
fill: color
|
|
327
|
+
}),
|
|
328
|
+
/* @__PURE__ */ jsx("circle", {
|
|
329
|
+
cx: "-5.5",
|
|
330
|
+
cy: "-8",
|
|
331
|
+
r: "4.5",
|
|
332
|
+
fill: EYE_FILL
|
|
333
|
+
}),
|
|
334
|
+
/* @__PURE__ */ jsx("circle", {
|
|
335
|
+
cx: "5.5",
|
|
336
|
+
cy: "-8",
|
|
337
|
+
r: "4.5",
|
|
338
|
+
fill: EYE_FILL
|
|
339
|
+
}),
|
|
340
|
+
/* @__PURE__ */ jsx("circle", {
|
|
341
|
+
cx: "-4",
|
|
342
|
+
cy: "-10",
|
|
343
|
+
r: "1.5",
|
|
344
|
+
fill: EYE_HIGHLIGHT
|
|
345
|
+
}),
|
|
346
|
+
/* @__PURE__ */ jsx("circle", {
|
|
347
|
+
cx: "7",
|
|
348
|
+
cy: "-10",
|
|
349
|
+
r: "1.5",
|
|
350
|
+
fill: EYE_HIGHLIGHT
|
|
351
|
+
}),
|
|
352
|
+
/* @__PURE__ */ jsx("rect", {
|
|
353
|
+
x: "-12",
|
|
354
|
+
y: "13",
|
|
355
|
+
width: "9",
|
|
356
|
+
height: "5",
|
|
357
|
+
rx: "2.5",
|
|
358
|
+
fill: color,
|
|
359
|
+
opacity: "0.7"
|
|
360
|
+
}),
|
|
361
|
+
/* @__PURE__ */ jsx("rect", {
|
|
362
|
+
x: "3",
|
|
363
|
+
y: "13",
|
|
364
|
+
width: "9",
|
|
365
|
+
height: "5",
|
|
366
|
+
rx: "2.5",
|
|
367
|
+
fill: color,
|
|
368
|
+
opacity: "0.7"
|
|
369
|
+
})
|
|
370
|
+
] });
|
|
371
|
+
}
|
|
372
|
+
function Nanite({ index, cx, cy, scale }) {
|
|
373
|
+
return /* @__PURE__ */ jsx("g", {
|
|
374
|
+
transform: `translate(${cx}, ${cy}) scale(${scale})`,
|
|
375
|
+
children: /* @__PURE__ */ jsxs("g", {
|
|
376
|
+
className: "nanite-scene__nanite",
|
|
377
|
+
"data-index": index,
|
|
378
|
+
children: [/* @__PURE__ */ jsx(NaniteBody, { index }), /* @__PURE__ */ jsxs("g", {
|
|
379
|
+
className: "nanite-scene__hat",
|
|
380
|
+
children: [
|
|
381
|
+
/* @__PURE__ */ jsx("path", {
|
|
382
|
+
d: "M -9 -22 Q -9 -31 0 -31 Q 9 -31 9 -22 Z",
|
|
383
|
+
fill: HAT_SHELL
|
|
384
|
+
}),
|
|
385
|
+
/* @__PURE__ */ jsx("rect", {
|
|
386
|
+
x: "-12",
|
|
387
|
+
y: "-23",
|
|
388
|
+
width: "24",
|
|
389
|
+
height: "3.5",
|
|
390
|
+
rx: "1.5",
|
|
391
|
+
fill: HAT_BRIM
|
|
392
|
+
}),
|
|
393
|
+
/* @__PURE__ */ jsx("circle", {
|
|
394
|
+
cx: "0",
|
|
395
|
+
cy: "-28",
|
|
396
|
+
r: "2",
|
|
397
|
+
fill: HAT_BULB
|
|
398
|
+
})
|
|
399
|
+
]
|
|
400
|
+
})]
|
|
401
|
+
})
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
//#endregion
|
|
405
|
+
export { NaniteScene };
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { NavigationMenu as NavigationMenu$1 } from "@base-ui/react/navigation-menu";
|
|
3
|
+
|
|
4
|
+
//#region src/components/NavigationMenu.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Props for the NavigationMenu.Root component.
|
|
7
|
+
*/
|
|
8
|
+
interface NavigationMenuProps extends Omit<React.ComponentPropsWithRef<typeof NavigationMenu$1.Root>, "className"> {
|
|
9
|
+
className?: string;
|
|
10
|
+
viewport?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Props for the NavigationMenu.List component.
|
|
14
|
+
*/
|
|
15
|
+
interface NavigationMenuListProps extends Omit<React.ComponentPropsWithRef<typeof NavigationMenu$1.List>, "className"> {
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Props for the NavigationMenu.Item component.
|
|
20
|
+
*/
|
|
21
|
+
interface NavigationMenuItemProps extends Omit<React.ComponentPropsWithRef<typeof NavigationMenu$1.Item>, "className"> {
|
|
22
|
+
className?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Props for the NavigationMenu.Trigger component.
|
|
26
|
+
*/
|
|
27
|
+
interface NavigationMenuTriggerProps extends Omit<React.ComponentPropsWithRef<typeof NavigationMenu$1.Trigger>, "className"> {
|
|
28
|
+
className?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Props for the NavigationMenu.Icon component.
|
|
32
|
+
*/
|
|
33
|
+
interface NavigationMenuIconProps extends Omit<React.ComponentPropsWithRef<typeof NavigationMenu$1.Icon>, "className"> {
|
|
34
|
+
className?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Props for the NavigationMenu.Content component.
|
|
38
|
+
*/
|
|
39
|
+
interface NavigationMenuContentProps extends Omit<React.ComponentPropsWithRef<typeof NavigationMenu$1.Content>, "className"> {
|
|
40
|
+
className?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Props for the NavigationMenu.Link component.
|
|
44
|
+
*/
|
|
45
|
+
interface NavigationMenuLinkProps extends Omit<React.ComponentPropsWithRef<typeof NavigationMenu$1.Link>, "className"> {
|
|
46
|
+
className?: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Props for the NavigationMenu.Portal component.
|
|
50
|
+
*/
|
|
51
|
+
type NavigationMenuPortalProps = React.ComponentPropsWithoutRef<typeof NavigationMenu$1.Portal>;
|
|
52
|
+
/**
|
|
53
|
+
* Props for the NavigationMenu.Positioner component.
|
|
54
|
+
*/
|
|
55
|
+
interface NavigationMenuPositionerProps extends Omit<React.ComponentPropsWithRef<typeof NavigationMenu$1.Positioner>, "className"> {
|
|
56
|
+
className?: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Props for the NavigationMenu.Popup component.
|
|
60
|
+
*/
|
|
61
|
+
interface NavigationMenuPopupProps extends Omit<React.ComponentPropsWithRef<typeof NavigationMenu$1.Popup>, "className"> {
|
|
62
|
+
className?: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Props for the NavigationMenu.Viewport component.
|
|
66
|
+
*/
|
|
67
|
+
interface NavigationMenuViewportProps extends Omit<React.ComponentPropsWithRef<typeof NavigationMenu$1.Viewport>, "className"> {
|
|
68
|
+
className?: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Props for the NavigationMenu.Arrow component.
|
|
72
|
+
*/
|
|
73
|
+
interface NavigationMenuArrowProps extends Omit<React.ComponentPropsWithRef<typeof NavigationMenu$1.Arrow>, "className"> {
|
|
74
|
+
className?: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Navigation landmark for top-level or section-level links. Compose with
|
|
78
|
+
* NavigationMenu.List, NavigationMenu.Item, NavigationMenu.Trigger, and
|
|
79
|
+
* NavigationMenu.Content for disclosure-style navigation.
|
|
80
|
+
*
|
|
81
|
+
* Sigvelo changes: wraps Base UI NavigationMenu with stable class names and
|
|
82
|
+
* CSS-token styling, and removes invalid `aria-orientation` from the rendered
|
|
83
|
+
* list for axe compatibility.
|
|
84
|
+
*
|
|
85
|
+
* Use for app or section navigation. Do not use it for command menus or
|
|
86
|
+
* context actions. Base UI owns keyboard navigation and focus behavior; apps
|
|
87
|
+
* provide meaningful link text and panel content.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```tsx
|
|
91
|
+
* <NavigationMenu.Root>
|
|
92
|
+
* <NavigationMenu.List>
|
|
93
|
+
* <NavigationMenu.Item>
|
|
94
|
+
* <NavigationMenu.Trigger>Products</NavigationMenu.Trigger>
|
|
95
|
+
* <NavigationMenu.Portal>
|
|
96
|
+
* <NavigationMenu.Positioner>
|
|
97
|
+
* <NavigationMenu.Popup>
|
|
98
|
+
* <NavigationMenu.Content>
|
|
99
|
+
* <NavigationMenu.Link href="/products">All products</NavigationMenu.Link>
|
|
100
|
+
* </NavigationMenu.Content>
|
|
101
|
+
* </NavigationMenu.Popup>
|
|
102
|
+
* </NavigationMenu.Positioner>
|
|
103
|
+
* </NavigationMenu.Portal>
|
|
104
|
+
* </NavigationMenu.Item>
|
|
105
|
+
* </NavigationMenu.List>
|
|
106
|
+
* </NavigationMenu.Root>
|
|
107
|
+
* ```
|
|
108
|
+
*
|
|
109
|
+
* @see {@link https://base-ui.com/react/components/navigation-menu | Base UI NavigationMenu}
|
|
110
|
+
*/
|
|
111
|
+
declare function Root({
|
|
112
|
+
className,
|
|
113
|
+
children,
|
|
114
|
+
viewport,
|
|
115
|
+
ref,
|
|
116
|
+
...props
|
|
117
|
+
}: NavigationMenuProps & {
|
|
118
|
+
ref?: React.Ref<HTMLElement>;
|
|
119
|
+
}): React.JSX.Element;
|
|
120
|
+
declare function NavigationMenuList({
|
|
121
|
+
className,
|
|
122
|
+
ref,
|
|
123
|
+
...props
|
|
124
|
+
}: NavigationMenuListProps & {
|
|
125
|
+
ref?: React.Ref<HTMLUListElement>;
|
|
126
|
+
}): React.JSX.Element;
|
|
127
|
+
declare function NavigationMenuItem({
|
|
128
|
+
className,
|
|
129
|
+
ref,
|
|
130
|
+
...props
|
|
131
|
+
}: NavigationMenuItemProps & {
|
|
132
|
+
ref?: React.Ref<HTMLLIElement>;
|
|
133
|
+
}): React.JSX.Element;
|
|
134
|
+
declare function NavigationMenuTrigger({
|
|
135
|
+
className,
|
|
136
|
+
children,
|
|
137
|
+
ref,
|
|
138
|
+
...props
|
|
139
|
+
}: NavigationMenuTriggerProps & {
|
|
140
|
+
ref?: React.Ref<HTMLButtonElement>;
|
|
141
|
+
}): React.JSX.Element;
|
|
142
|
+
declare function NavigationMenuIcon({
|
|
143
|
+
className,
|
|
144
|
+
ref,
|
|
145
|
+
...props
|
|
146
|
+
}: NavigationMenuIconProps & {
|
|
147
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
148
|
+
}): React.JSX.Element;
|
|
149
|
+
declare function NavigationMenuContent({
|
|
150
|
+
className,
|
|
151
|
+
ref,
|
|
152
|
+
...props
|
|
153
|
+
}: NavigationMenuContentProps & {
|
|
154
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
155
|
+
}): React.JSX.Element;
|
|
156
|
+
declare function NavigationMenuLink({
|
|
157
|
+
className,
|
|
158
|
+
ref,
|
|
159
|
+
...props
|
|
160
|
+
}: NavigationMenuLinkProps & {
|
|
161
|
+
ref?: React.Ref<HTMLAnchorElement>;
|
|
162
|
+
}): React.JSX.Element;
|
|
163
|
+
declare function NavigationMenuPortal(props: NavigationMenuPortalProps): React.JSX.Element;
|
|
164
|
+
declare function NavigationMenuPositioner({
|
|
165
|
+
className,
|
|
166
|
+
ref,
|
|
167
|
+
...props
|
|
168
|
+
}: NavigationMenuPositionerProps & {
|
|
169
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
170
|
+
}): React.JSX.Element;
|
|
171
|
+
declare function NavigationMenuPopup({
|
|
172
|
+
className,
|
|
173
|
+
ref,
|
|
174
|
+
...props
|
|
175
|
+
}: NavigationMenuPopupProps & {
|
|
176
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
177
|
+
}): React.JSX.Element;
|
|
178
|
+
declare function NavigationMenuViewport({
|
|
179
|
+
className,
|
|
180
|
+
ref,
|
|
181
|
+
...props
|
|
182
|
+
}: NavigationMenuViewportProps & {
|
|
183
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
184
|
+
}): React.JSX.Element;
|
|
185
|
+
declare function NavigationMenuArrow({
|
|
186
|
+
className,
|
|
187
|
+
ref,
|
|
188
|
+
...props
|
|
189
|
+
}: NavigationMenuArrowProps & {
|
|
190
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
191
|
+
}): React.JSX.Element;
|
|
192
|
+
/**
|
|
193
|
+
* A navigation menu component for website navigation with dropdown support.
|
|
194
|
+
* Provides keyboard navigation and supports nested submenus.
|
|
195
|
+
*
|
|
196
|
+
* @example
|
|
197
|
+
* ```tsx
|
|
198
|
+
* // Basic navigation menu
|
|
199
|
+
* <NavigationMenu.Root>
|
|
200
|
+
* <NavigationMenu.List>
|
|
201
|
+
* <NavigationMenu.Item>
|
|
202
|
+
* <NavigationMenu.Trigger>
|
|
203
|
+
* Products
|
|
204
|
+
* <NavigationMenu.Icon>
|
|
205
|
+
* <ChevronDownIcon />
|
|
206
|
+
* </NavigationMenu.Icon>
|
|
207
|
+
* </NavigationMenu.Trigger>
|
|
208
|
+
* <NavigationMenu.Content>
|
|
209
|
+
* <NavigationMenu.Link href="/products/analytics">
|
|
210
|
+
* Analytics
|
|
211
|
+
* </NavigationMenu.Link>
|
|
212
|
+
* <NavigationMenu.Link href="/products/automation">
|
|
213
|
+
* Automation
|
|
214
|
+
* </NavigationMenu.Link>
|
|
215
|
+
* </NavigationMenu.Content>
|
|
216
|
+
* </NavigationMenu.Item>
|
|
217
|
+
* <NavigationMenu.Item>
|
|
218
|
+
* <NavigationMenu.Link href="/about">About</NavigationMenu.Link>
|
|
219
|
+
* </NavigationMenu.Item>
|
|
220
|
+
* </NavigationMenu.List>
|
|
221
|
+
* <NavigationMenu.Portal>
|
|
222
|
+
* <NavigationMenu.Positioner>
|
|
223
|
+
* <NavigationMenu.Popup>
|
|
224
|
+
* <NavigationMenu.Viewport />
|
|
225
|
+
* </NavigationMenu.Popup>
|
|
226
|
+
* </NavigationMenu.Positioner>
|
|
227
|
+
* </NavigationMenu.Portal>
|
|
228
|
+
* </NavigationMenu.Root>
|
|
229
|
+
* ```
|
|
230
|
+
*
|
|
231
|
+
* @see {@link https://base-ui.com/react/components/navigation-menu | Base UI NavigationMenu}
|
|
232
|
+
*/
|
|
233
|
+
declare const NavigationMenu: typeof Root & {
|
|
234
|
+
Root: typeof Root;
|
|
235
|
+
List: typeof NavigationMenuList;
|
|
236
|
+
Item: typeof NavigationMenuItem;
|
|
237
|
+
Trigger: typeof NavigationMenuTrigger;
|
|
238
|
+
Icon: typeof NavigationMenuIcon;
|
|
239
|
+
Content: typeof NavigationMenuContent;
|
|
240
|
+
Link: typeof NavigationMenuLink;
|
|
241
|
+
Portal: typeof NavigationMenuPortal;
|
|
242
|
+
Positioner: typeof NavigationMenuPositioner;
|
|
243
|
+
Popup: typeof NavigationMenuPopup;
|
|
244
|
+
Viewport: typeof NavigationMenuViewport;
|
|
245
|
+
Arrow: typeof NavigationMenuArrow;
|
|
246
|
+
};
|
|
247
|
+
declare function NavigationMenuIndicator(props: NavigationMenuIconProps & {
|
|
248
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
249
|
+
}): React.JSX.Element;
|
|
250
|
+
declare function navigationMenuTriggerStyle({
|
|
251
|
+
className
|
|
252
|
+
}?: {
|
|
253
|
+
className?: string;
|
|
254
|
+
}): string;
|
|
255
|
+
//#endregion
|
|
256
|
+
export { NavigationMenu, NavigationMenuArrow, NavigationMenuArrowProps, NavigationMenuContent, NavigationMenuContentProps, NavigationMenuIcon, NavigationMenuIconProps, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuItemProps, NavigationMenuLink, NavigationMenuLinkProps, NavigationMenuList, NavigationMenuListProps, NavigationMenuPopup, NavigationMenuPopupProps, NavigationMenuPortal, NavigationMenuPortalProps, NavigationMenuPositioner, NavigationMenuPositionerProps, NavigationMenuProps, NavigationMenuTrigger, NavigationMenuTriggerProps, NavigationMenuViewport, NavigationMenuViewportProps, navigationMenuTriggerStyle };
|