@mcp-b/react-components 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/dist/Button-QCM8ZKgR.d.ts +98 -0
  2. package/dist/CodeBlock-CttHhWcb.js +356 -0
  3. package/dist/CodeBlock-V6pgafSS.d.ts +174 -0
  4. package/dist/Select-CRsKCJ9x.d.ts +200 -0
  5. package/dist/class-names-9UtZwb0J.js +12 -0
  6. package/dist/components/Accordion.d.ts +81 -0
  7. package/dist/components/Accordion.js +97 -0
  8. package/dist/components/AgentConnection.d.ts +69 -0
  9. package/dist/components/AgentConnection.js +176 -0
  10. package/dist/components/AlertDialog.d.ts +148 -0
  11. package/dist/components/AlertDialog.js +141 -0
  12. package/dist/components/Artifact.d.ts +128 -0
  13. package/dist/components/Artifact.js +115 -0
  14. package/dist/components/Autocomplete.d.ts +186 -0
  15. package/dist/components/Autocomplete.js +186 -0
  16. package/dist/components/Avatar.d.ts +134 -0
  17. package/dist/components/Avatar.js +118 -0
  18. package/dist/components/Badge.d.ts +68 -0
  19. package/dist/components/Badge.js +108 -0
  20. package/dist/components/Button.d.ts +2 -0
  21. package/dist/components/Button.js +73 -0
  22. package/dist/components/Card.d.ts +87 -0
  23. package/dist/components/Card.js +81 -0
  24. package/dist/components/ChainOfThought.d.ts +153 -0
  25. package/dist/components/ChainOfThought.js +157 -0
  26. package/dist/components/Checkbox.d.ts +35 -0
  27. package/dist/components/Checkbox.js +47 -0
  28. package/dist/components/CheckboxGroup.d.ts +76 -0
  29. package/dist/components/CheckboxGroup.js +69 -0
  30. package/dist/components/CodeBlock.d.ts +2 -0
  31. package/dist/components/CodeBlock.js +2 -0
  32. package/dist/components/Collapsible.d.ts +127 -0
  33. package/dist/components/Collapsible.js +103 -0
  34. package/dist/components/Combobox.d.ts +177 -0
  35. package/dist/components/Combobox.js +179 -0
  36. package/dist/components/Commit.d.ts +265 -0
  37. package/dist/components/Commit.js +282 -0
  38. package/dist/components/Context.d.ts +129 -0
  39. package/dist/components/Context.js +309 -0
  40. package/dist/components/ContextMenu.d.ts +282 -0
  41. package/dist/components/ContextMenu.js +270 -0
  42. package/dist/components/Conversation.d.ts +166 -0
  43. package/dist/components/Conversation.js +202 -0
  44. package/dist/components/Dialog.d.ts +120 -0
  45. package/dist/components/Dialog.js +114 -0
  46. package/dist/components/EnvironmentVariables.d.ts +176 -0
  47. package/dist/components/EnvironmentVariables.js +221 -0
  48. package/dist/components/Field.d.ts +281 -0
  49. package/dist/components/Field.js +274 -0
  50. package/dist/components/Fieldset.d.ts +93 -0
  51. package/dist/components/Fieldset.js +81 -0
  52. package/dist/components/FileTree.d.ts +116 -0
  53. package/dist/components/FileTree.js +310 -0
  54. package/dist/components/Form.d.ts +94 -0
  55. package/dist/components/Form.js +88 -0
  56. package/dist/components/GithubMotionMark.d.ts +13 -0
  57. package/dist/components/GithubMotionMark.js +23 -0
  58. package/dist/components/Input.d.ts +33 -0
  59. package/dist/components/Input.js +27 -0
  60. package/dist/components/Label.d.ts +44 -0
  61. package/dist/components/Label.js +41 -0
  62. package/dist/components/Menu.d.ts +395 -0
  63. package/dist/components/Menu.js +338 -0
  64. package/dist/components/Menubar.d.ts +331 -0
  65. package/dist/components/Menubar.js +299 -0
  66. package/dist/components/Message.d.ts +216 -0
  67. package/dist/components/Message.js +245 -0
  68. package/dist/components/Meter.d.ts +151 -0
  69. package/dist/components/Meter.js +121 -0
  70. package/dist/components/ModelSelector.d.ts +198 -0
  71. package/dist/components/ModelSelector.js +306 -0
  72. package/dist/components/NaniteScene.d.ts +33 -0
  73. package/dist/components/NaniteScene.js +405 -0
  74. package/dist/components/NavigationMenu.d.ts +256 -0
  75. package/dist/components/NavigationMenu.js +228 -0
  76. package/dist/components/NumberField.d.ts +159 -0
  77. package/dist/components/NumberField.js +123 -0
  78. package/dist/components/Popover.d.ts +278 -0
  79. package/dist/components/Popover.js +245 -0
  80. package/dist/components/PreviewCard.d.ts +156 -0
  81. package/dist/components/PreviewCard.js +156 -0
  82. package/dist/components/PricingPage.d.ts +209 -0
  83. package/dist/components/PricingPage.js +506 -0
  84. package/dist/components/Progress.d.ts +58 -0
  85. package/dist/components/Progress.js +51 -0
  86. package/dist/components/PromptInput.d.ts +399 -0
  87. package/dist/components/PromptInput.js +737 -0
  88. package/dist/components/Queue.d.ts +241 -0
  89. package/dist/components/Queue.js +225 -0
  90. package/dist/components/RadioGroup.d.ts +78 -0
  91. package/dist/components/RadioGroup.js +72 -0
  92. package/dist/components/Reasoning.d.ts +88 -0
  93. package/dist/components/Reasoning.js +187 -0
  94. package/dist/components/ScrollArea.d.ts +160 -0
  95. package/dist/components/ScrollArea.js +145 -0
  96. package/dist/components/Select.d.ts +2 -0
  97. package/dist/components/Select.js +260 -0
  98. package/dist/components/Separator.d.ts +45 -0
  99. package/dist/components/Separator.js +40 -0
  100. package/dist/components/Shell.d.ts +163 -0
  101. package/dist/components/Shell.js +137 -0
  102. package/dist/components/Slider.d.ts +120 -0
  103. package/dist/components/Slider.js +115 -0
  104. package/dist/components/Sources.d.ts +91 -0
  105. package/dist/components/Sources.js +121 -0
  106. package/dist/components/Stepper.d.ts +190 -0
  107. package/dist/components/Stepper.js +315 -0
  108. package/dist/components/Switch.d.ts +57 -0
  109. package/dist/components/Switch.js +55 -0
  110. package/dist/components/Tabs.d.ts +84 -0
  111. package/dist/components/Tabs.js +78 -0
  112. package/dist/components/Task.d.ts +100 -0
  113. package/dist/components/Task.js +120 -0
  114. package/dist/components/Terminal.d.ts +118 -0
  115. package/dist/components/Terminal.js +234 -0
  116. package/dist/components/TestResults.d.ts +236 -0
  117. package/dist/components/TestResults.js +346 -0
  118. package/dist/components/Toast.d.ts +192 -0
  119. package/dist/components/Toast.js +163 -0
  120. package/dist/components/Toggle.d.ts +69 -0
  121. package/dist/components/Toggle.js +66 -0
  122. package/dist/components/ToggleGroup.d.ts +69 -0
  123. package/dist/components/ToggleGroup.js +99 -0
  124. package/dist/components/Tool.d.ts +119 -0
  125. package/dist/components/Tool.js +192 -0
  126. package/dist/components/Toolbar.d.ts +162 -0
  127. package/dist/components/Toolbar.js +126 -0
  128. package/dist/components/Tooltip.d.ts +81 -0
  129. package/dist/components/Tooltip.js +74 -0
  130. package/dist/components/WebPreview.d.ts +143 -0
  131. package/dist/components/WebPreview.js +280 -0
  132. package/dist/components/useStickToBottom.d.ts +30 -0
  133. package/dist/components/useStickToBottom.js +95 -0
  134. package/dist/copy-button-BIATcZWZ.d.ts +16 -0
  135. package/dist/copy-button-BNgclDrO.js +43 -0
  136. package/dist/icons-BsWc8g4E.js +221 -0
  137. package/dist/styles/accordion.css +10 -10
  138. package/dist/styles/agent-connection.css +18 -17
  139. package/dist/styles/alert-dialog.css +48 -29
  140. package/dist/styles/artifact.css +10 -10
  141. package/dist/styles/autocomplete.css +25 -24
  142. package/dist/styles/avatar.css +96 -6
  143. package/dist/styles/badge.css +78 -14
  144. package/dist/styles/base.css +9 -9
  145. package/dist/styles/button.css +57 -38
  146. package/dist/styles/card.css +57 -10
  147. package/dist/styles/chain-of-thought.css +47 -33
  148. package/dist/styles/checkbox.css +24 -10
  149. package/dist/styles/code-block.css +22 -15
  150. package/dist/styles/collapsible.css +14 -12
  151. package/dist/styles/combobox.css +26 -25
  152. package/dist/styles/commit.css +49 -24
  153. package/dist/styles/context-menu.css +70 -16
  154. package/dist/styles/context.css +15 -15
  155. package/dist/styles/conversation.css +12 -12
  156. package/dist/styles/dialog.css +52 -16
  157. package/dist/styles/environment-variables.css +19 -19
  158. package/dist/styles/field.css +184 -22
  159. package/dist/styles/fieldset.css +5 -4
  160. package/dist/styles/file-tree.css +17 -17
  161. package/dist/styles/index.css.d.ts +1 -0
  162. package/dist/styles/input.css +45 -11
  163. package/dist/styles/label.css +21 -4
  164. package/dist/styles/menu.css +55 -32
  165. package/dist/styles/menubar.css +80 -28
  166. package/dist/styles/message.css +22 -13
  167. package/dist/styles/meter.css +8 -8
  168. package/dist/styles/model-selector.css +33 -21
  169. package/dist/styles/navigation-menu.css +26 -24
  170. package/dist/styles/number-field.css +20 -18
  171. package/dist/styles/popover.css +38 -28
  172. package/dist/styles/preview-card.css +15 -13
  173. package/dist/styles/pricing-page.css +53 -53
  174. package/dist/styles/progress.css +7 -7
  175. package/dist/styles/prompt-input.css +73 -24
  176. package/dist/styles/queue.css +58 -32
  177. package/dist/styles/radio.css +26 -11
  178. package/dist/styles/reasoning.css +15 -11
  179. package/dist/styles/scroll-area.css +6 -6
  180. package/dist/styles/scrollbars.css +4 -4
  181. package/dist/styles/select.css +84 -25
  182. package/dist/styles/separator.css +1 -1
  183. package/dist/styles/shell.css +21 -20
  184. package/dist/styles/slider.css +35 -11
  185. package/dist/styles/sources.css +20 -20
  186. package/dist/styles/stepper.css +22 -22
  187. package/dist/styles/switch.css +29 -13
  188. package/dist/styles/tabs.css +23 -16
  189. package/dist/styles/task.css +27 -23
  190. package/dist/styles/terminal.css +16 -13
  191. package/dist/styles/test-results.css +79 -32
  192. package/dist/styles/toast.css +26 -25
  193. package/dist/styles/toggle-group.css +12 -12
  194. package/dist/styles/toggle.css +29 -11
  195. package/dist/styles/tool.css +54 -32
  196. package/dist/styles/toolbar.css +30 -28
  197. package/dist/styles/tooltip.css +10 -8
  198. package/dist/styles/web-preview.css +37 -21
  199. package/dist/utils/structured-code.d.ts +10 -0
  200. package/dist/utils/structured-code.js +81 -0
  201. package/package.json +16 -7
  202. package/dist/index.d.ts +0 -7236
  203. package/dist/index.js +0 -8945
@@ -0,0 +1,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 };