@react-spot/ui-components 0.0.1

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/index.cjs ADDED
@@ -0,0 +1,853 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ let react_jsx_runtime = require("react/jsx-runtime");
3
+ let _base_ui_react_tooltip = require("@base-ui/react/tooltip");
4
+ let _base_ui_react_button = require("@base-ui/react/button");
5
+ let react = require("react");
6
+ let _base_ui_react_separator = require("@base-ui/react/separator");
7
+ let lucide_react = require("lucide-react");
8
+ let _base_ui_react_popover = require("@base-ui/react/popover");
9
+ let _base_ui_react_combobox = require("@base-ui/react/combobox");
10
+ let _base_ui_react_menu = require("@base-ui/react/menu");
11
+ let _base_ui_react_select = require("@base-ui/react/select");
12
+
13
+ //#region src/Kbd.tsx
14
+ const kbdStyle = {
15
+ display: "inline-flex",
16
+ alignItems: "center",
17
+ justifyContent: "center",
18
+ height: 20,
19
+ minWidth: 20,
20
+ padding: "0 4px",
21
+ gap: 4,
22
+ borderRadius: 4,
23
+ background: "#27272a",
24
+ border: "1px solid #52525b",
25
+ fontFamily: "system-ui, sans-serif",
26
+ fontSize: 11,
27
+ fontWeight: 500,
28
+ color: "#a1a1aa",
29
+ pointerEvents: "none",
30
+ userSelect: "none",
31
+ whiteSpace: "nowrap"
32
+ };
33
+ const kbdGroupStyle = {
34
+ display: "inline-flex",
35
+ alignItems: "center",
36
+ gap: 4
37
+ };
38
+ function Kbd({ style, ...props }) {
39
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("kbd", {
40
+ style: {
41
+ ...kbdStyle,
42
+ ...style
43
+ },
44
+ ...props
45
+ });
46
+ }
47
+ function KbdGroup({ style, ...props }) {
48
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
49
+ style: {
50
+ ...kbdGroupStyle,
51
+ ...style
52
+ },
53
+ ...props
54
+ });
55
+ }
56
+
57
+ //#endregion
58
+ //#region src/Tooltip.tsx
59
+ const popupStyle = {
60
+ display: "flex",
61
+ alignItems: "center",
62
+ gap: 6,
63
+ background: "#09090b",
64
+ border: "1px solid #3f3f46",
65
+ borderRadius: 6,
66
+ padding: "5px 8px",
67
+ boxShadow: "0 4px 12px rgba(0,0,0,0.5)",
68
+ whiteSpace: "nowrap",
69
+ fontFamily: "system-ui, sans-serif",
70
+ fontSize: 12,
71
+ color: "#d4d4d8",
72
+ pointerEvents: "none",
73
+ zIndex: 9999999
74
+ };
75
+ function Tooltip({ label, shortcut, container, render, children, ...triggerProps }) {
76
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_base_ui_react_tooltip.Tooltip.Root, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_tooltip.Tooltip.Trigger, {
77
+ render,
78
+ ...triggerProps,
79
+ children
80
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_tooltip.Tooltip.Portal, {
81
+ container,
82
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_tooltip.Tooltip.Positioner, {
83
+ sideOffset: 10,
84
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_base_ui_react_tooltip.Tooltip.Popup, {
85
+ style: popupStyle,
86
+ children: [label, shortcut && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Kbd, { children: shortcut })]
87
+ })
88
+ })
89
+ })] });
90
+ }
91
+ Tooltip.Provider = _base_ui_react_tooltip.Tooltip.Provider;
92
+
93
+ //#endregion
94
+ //#region src/Button.tsx
95
+ const baseStyle$1 = {
96
+ display: "inline-flex",
97
+ alignItems: "center",
98
+ justifyContent: "center",
99
+ gap: 4,
100
+ height: 28,
101
+ padding: "0 8px",
102
+ borderRadius: 6,
103
+ fontSize: 12,
104
+ fontFamily: "system-ui, sans-serif",
105
+ fontWeight: 500,
106
+ transition: "opacity 0.15s",
107
+ cursor: "pointer",
108
+ whiteSpace: "nowrap"
109
+ };
110
+ const variantStyles = {
111
+ primary: {
112
+ background: "#fafafa",
113
+ border: "none",
114
+ color: "#18181b"
115
+ },
116
+ secondary: {
117
+ background: "transparent",
118
+ border: "1px solid #3f3f46",
119
+ color: "#d4d4d8"
120
+ },
121
+ accent: {
122
+ background: "rgba(59,130,246,0.15)",
123
+ border: "1px solid rgba(59,130,246,0.3)",
124
+ color: "#93c5fd"
125
+ }
126
+ };
127
+ function Button({ variant, style, render, ...props }) {
128
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_button.Button, {
129
+ render,
130
+ style: (state) => ({
131
+ ...baseStyle$1,
132
+ ...variantStyles[variant],
133
+ opacity: state.disabled ? .5 : 1,
134
+ cursor: state.disabled ? "not-allowed" : "pointer",
135
+ ...style
136
+ }),
137
+ ...props
138
+ });
139
+ }
140
+
141
+ //#endregion
142
+ //#region src/IconButton.tsx
143
+ const iconButtonStyle = {
144
+ display: "inline-flex",
145
+ alignItems: "center",
146
+ justifyContent: "center",
147
+ background: "transparent",
148
+ border: "none",
149
+ color: "#52525b",
150
+ padding: 4,
151
+ borderRadius: 4,
152
+ lineHeight: 1,
153
+ transition: "color 0.1s, opacity 0.15s"
154
+ };
155
+ function IconButton({ style, render, ...props }) {
156
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_button.Button, {
157
+ render,
158
+ style: (state) => ({
159
+ ...iconButtonStyle,
160
+ opacity: state.disabled ? .4 : 1,
161
+ cursor: state.disabled ? "not-allowed" : "pointer",
162
+ ...style
163
+ }),
164
+ ...props
165
+ });
166
+ }
167
+
168
+ //#endregion
169
+ //#region src/ToolbarButton.tsx
170
+ const toolbarButtonStyle = {
171
+ display: "flex",
172
+ alignItems: "center",
173
+ justifyContent: "center",
174
+ width: 32,
175
+ height: 32,
176
+ borderRadius: 7,
177
+ cursor: "pointer",
178
+ padding: 0,
179
+ background: "transparent",
180
+ border: 0,
181
+ outline: "none",
182
+ color: "#fafafa",
183
+ fontSize: 14,
184
+ transition: "background 0.15s, border-color 0.15s"
185
+ };
186
+ const ToolbarButton = (0, react.forwardRef)(function ToolbarButton({ style, render, type = "button", ...props }, ref) {
187
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_button.Button, {
188
+ ref,
189
+ type,
190
+ render,
191
+ style: (state) => ({
192
+ ...toolbarButtonStyle,
193
+ cursor: state.disabled ? "not-allowed" : "pointer",
194
+ opacity: state.disabled ? .4 : 1,
195
+ ...style
196
+ }),
197
+ ...props
198
+ });
199
+ });
200
+
201
+ //#endregion
202
+ //#region src/PanelHeader.tsx
203
+ const headerStyle = {
204
+ display: "flex",
205
+ alignItems: "center",
206
+ justifyContent: "space-between",
207
+ padding: "10px 12px 8px",
208
+ borderBottom: "1px solid #27272a"
209
+ };
210
+ const titleBaseStyle = {
211
+ color: "#fafafa",
212
+ fontSize: 13,
213
+ fontWeight: 600,
214
+ fontFamily: "system-ui, sans-serif"
215
+ };
216
+ function PanelHeader({ title, actionsRender, style, titleStyle }) {
217
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
218
+ style: {
219
+ ...headerStyle,
220
+ ...style
221
+ },
222
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
223
+ style: {
224
+ ...titleBaseStyle,
225
+ ...titleStyle
226
+ },
227
+ children: title
228
+ }), actionsRender]
229
+ });
230
+ }
231
+
232
+ //#endregion
233
+ //#region src/Textarea.tsx
234
+ const baseStyle = {
235
+ width: "100%",
236
+ background: "#0f0f11",
237
+ borderRadius: 4,
238
+ outline: "none",
239
+ resize: "vertical",
240
+ color: "#fafafa",
241
+ fontSize: 12,
242
+ fontFamily: "system-ui, sans-serif",
243
+ lineHeight: 1.4,
244
+ padding: "4px 6px",
245
+ boxSizing: "border-box",
246
+ caretColor: "#3b82f6"
247
+ };
248
+ const Textarea = (0, react.forwardRef)(function Textarea({ style, onFocus, onBlur, ...props }, ref) {
249
+ const [focused, setFocused] = (0, react.useState)(false);
250
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
251
+ ref,
252
+ style: {
253
+ ...baseStyle,
254
+ border: `1px solid ${focused ? "#3b82f6" : "#3f3f46"}`,
255
+ ...style
256
+ },
257
+ onFocus: (e) => {
258
+ setFocused(true);
259
+ onFocus?.(e);
260
+ },
261
+ onBlur: (e) => {
262
+ setFocused(false);
263
+ onBlur?.(e);
264
+ },
265
+ ...props
266
+ });
267
+ });
268
+
269
+ //#endregion
270
+ //#region src/Separator.tsx
271
+ function Separator({ style }) {
272
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_separator.Separator, { style: {
273
+ borderTop: "1px solid #27272a",
274
+ margin: "2px 0",
275
+ ...style
276
+ } });
277
+ }
278
+
279
+ //#endregion
280
+ //#region src/icons.tsx
281
+ const DEFAULT_STROKE_WIDTH = 2;
282
+ const DEFAULT_SIZE = 16;
283
+ function SettingsIcon({ size = DEFAULT_SIZE }) {
284
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Settings, {
285
+ size,
286
+ strokeWidth: DEFAULT_STROKE_WIDTH,
287
+ "aria-hidden": true
288
+ });
289
+ }
290
+ function ClipboardIcon({ size = DEFAULT_SIZE }) {
291
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Clipboard, {
292
+ size,
293
+ strokeWidth: DEFAULT_STROKE_WIDTH,
294
+ "aria-hidden": true
295
+ });
296
+ }
297
+ function XIcon({ size = DEFAULT_SIZE }) {
298
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.X, {
299
+ size,
300
+ strokeWidth: DEFAULT_STROKE_WIDTH,
301
+ "aria-hidden": true
302
+ });
303
+ }
304
+ function ChevronLeftIcon({ size = DEFAULT_SIZE }) {
305
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronLeft, {
306
+ size,
307
+ strokeWidth: DEFAULT_STROKE_WIDTH,
308
+ "aria-hidden": true
309
+ });
310
+ }
311
+ function ChevronRightIcon({ size = DEFAULT_SIZE }) {
312
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronRight, {
313
+ size,
314
+ strokeWidth: DEFAULT_STROKE_WIDTH,
315
+ "aria-hidden": true
316
+ });
317
+ }
318
+ function OpenInEditorIcon({ size = DEFAULT_SIZE }) {
319
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ExternalLink, {
320
+ size,
321
+ strokeWidth: DEFAULT_STROKE_WIDTH,
322
+ "aria-hidden": true
323
+ });
324
+ }
325
+ function ChatBubbleIcon({ size = DEFAULT_SIZE }) {
326
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.MessageSquare, {
327
+ size,
328
+ strokeWidth: DEFAULT_STROKE_WIDTH,
329
+ "aria-hidden": true
330
+ });
331
+ }
332
+ function TrashIcon({ size = DEFAULT_SIZE }) {
333
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Trash2, {
334
+ size,
335
+ strokeWidth: DEFAULT_STROKE_WIDTH,
336
+ "aria-hidden": true
337
+ });
338
+ }
339
+ function SaveIcon({ size = DEFAULT_SIZE }) {
340
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Save, {
341
+ size,
342
+ strokeWidth: DEFAULT_STROKE_WIDTH,
343
+ "aria-hidden": true
344
+ });
345
+ }
346
+ function ExpandIcon({ size = DEFAULT_SIZE }) {
347
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Maximize2, {
348
+ size,
349
+ strokeWidth: DEFAULT_STROKE_WIDTH,
350
+ "aria-hidden": true
351
+ });
352
+ }
353
+ function CollapseIcon({ size = DEFAULT_SIZE }) {
354
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Minimize2, {
355
+ size,
356
+ strokeWidth: DEFAULT_STROKE_WIDTH,
357
+ "aria-hidden": true
358
+ });
359
+ }
360
+ function FolderIcon({ size = DEFAULT_SIZE }) {
361
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Folder, {
362
+ size,
363
+ strokeWidth: DEFAULT_STROKE_WIDTH,
364
+ "aria-hidden": true
365
+ });
366
+ }
367
+ function OpencodeIcon({ size = 13 }) {
368
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
369
+ width: size,
370
+ height: size,
371
+ viewBox: "0 0 512 512",
372
+ fill: "none",
373
+ xmlns: "http://www.w3.org/2000/svg",
374
+ "aria-hidden": "true",
375
+ children: [
376
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
377
+ fill: "#131010",
378
+ d: "M0 0h512v512H0z"
379
+ }),
380
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
381
+ d: "M320 224v128H192V224h128z",
382
+ fill: "#5A5858"
383
+ }),
384
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
385
+ fillRule: "evenodd",
386
+ clipRule: "evenodd",
387
+ d: "M384 416H128V96h256v320zm-64-256H192v192h128V160z",
388
+ fill: "#fff"
389
+ })
390
+ ]
391
+ });
392
+ }
393
+
394
+ //#endregion
395
+ //#region src/Popover.tsx
396
+ /**
397
+ * Shared panel popup style (exported for callers that extend it)
398
+ */
399
+ const panelPopupStyle = {
400
+ background: "#18181b",
401
+ border: "1px solid #27272a",
402
+ borderRadius: 8,
403
+ boxShadow: "0 8px 24px rgba(0,0,0,0.6)"
404
+ };
405
+ function StyledPopup$3({ style, ...props }) {
406
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_popover.Popover.Popup, {
407
+ style: {
408
+ ...panelPopupStyle,
409
+ ...style
410
+ },
411
+ ...props
412
+ });
413
+ }
414
+ const Popover = {
415
+ Root: _base_ui_react_popover.Popover.Root,
416
+ Trigger: _base_ui_react_popover.Popover.Trigger,
417
+ Portal: _base_ui_react_popover.Popover.Portal,
418
+ Positioner: _base_ui_react_popover.Popover.Positioner,
419
+ Close: _base_ui_react_popover.Popover.Close,
420
+ Popup: StyledPopup$3
421
+ };
422
+
423
+ //#endregion
424
+ //#region src/Combobox.tsx
425
+ function StyledTrigger$1({ style, children, ...props }) {
426
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_base_ui_react_combobox.Combobox.Trigger, {
427
+ style: (state) => ({
428
+ display: "flex",
429
+ alignItems: "center",
430
+ justifyContent: "space-between",
431
+ gap: 4,
432
+ width: "100%",
433
+ background: "#0f0f11",
434
+ border: "1px solid #3f3f46",
435
+ borderRadius: 5,
436
+ color: "#fafafa",
437
+ fontSize: 12,
438
+ fontFamily: "system-ui, sans-serif",
439
+ padding: "5px 8px",
440
+ cursor: state.disabled ? "not-allowed" : "pointer",
441
+ opacity: state.disabled ? .5 : 1,
442
+ boxSizing: "border-box",
443
+ ...typeof style === "function" ? style(state) : style
444
+ }),
445
+ ...props,
446
+ children: [children, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDown, {
447
+ size: 12,
448
+ strokeWidth: 1.75,
449
+ "aria-hidden": true
450
+ })]
451
+ });
452
+ }
453
+ function StyledInput() {
454
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_combobox.Combobox.Input, { style: {
455
+ background: "#0f0f11",
456
+ color: "#fafafa",
457
+ border: "none",
458
+ outline: "none",
459
+ fontSize: 12,
460
+ fontFamily: "system-ui, sans-serif",
461
+ width: "100%"
462
+ } });
463
+ }
464
+ function StyledPositioner$1({ ...props }) {
465
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_combobox.Combobox.Positioner, {
466
+ align: "start",
467
+ side: "top",
468
+ sideOffset: 8,
469
+ ...props
470
+ });
471
+ }
472
+ function StyledPopup$2({ style, ...props }) {
473
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_combobox.Combobox.Popup, {
474
+ style: {
475
+ ...panelPopupStyle,
476
+ paddingBlock: 4,
477
+ ...style
478
+ },
479
+ ...props
480
+ });
481
+ }
482
+ function StyledList$1({ style, ...props }) {
483
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_combobox.Combobox.List, {
484
+ style: {
485
+ ...style,
486
+ width: "var(--anchor-width)"
487
+ },
488
+ ...props
489
+ });
490
+ }
491
+ function StyledItem$2({ style: callerStyle, ...props }) {
492
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_combobox.Combobox.Item, {
493
+ style: (state) => ({
494
+ display: "flex",
495
+ alignItems: "center",
496
+ gap: 6,
497
+ padding: "7px 12px",
498
+ cursor: state.disabled ? "not-allowed" : "pointer",
499
+ userSelect: "none",
500
+ outline: "none",
501
+ fontSize: 12,
502
+ fontFamily: "system-ui, sans-serif",
503
+ color: state.selected ? "#fafafa" : "#d4d4d8",
504
+ background: state.highlighted ? "rgba(59,130,246,0.2)" : "transparent",
505
+ transition: "background 0.1s",
506
+ ...callerStyle
507
+ }),
508
+ ...props
509
+ });
510
+ }
511
+ const Combobox = {
512
+ Root: _base_ui_react_combobox.Combobox.Root,
513
+ Trigger: StyledTrigger$1,
514
+ Value: _base_ui_react_combobox.Combobox.Value,
515
+ Portal: _base_ui_react_combobox.Combobox.Portal,
516
+ Positioner: StyledPositioner$1,
517
+ Popup: StyledPopup$2,
518
+ List: StyledList$1,
519
+ Empty: _base_ui_react_combobox.Combobox.Empty,
520
+ Item: StyledItem$2,
521
+ Input: StyledInput,
522
+ ItemIndicator: _base_ui_react_combobox.Combobox.ItemIndicator,
523
+ Group: _base_ui_react_combobox.Combobox.Group,
524
+ GroupLabel: _base_ui_react_combobox.Combobox.GroupLabel,
525
+ Separator: _base_ui_react_combobox.Combobox.Separator
526
+ };
527
+
528
+ //#endregion
529
+ //#region src/DropdownMenu.tsx
530
+ function StyledPopup$1({ style, ...props }) {
531
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_menu.Menu.Popup, {
532
+ style: {
533
+ ...panelPopupStyle,
534
+ ...style
535
+ },
536
+ ...props
537
+ });
538
+ }
539
+ function StyledItem$1({ style: callerStyle, ...props }) {
540
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_menu.Menu.Item, {
541
+ style: (state) => ({
542
+ display: "flex",
543
+ alignItems: "center",
544
+ gap: 6,
545
+ padding: "7px 12px",
546
+ cursor: "pointer",
547
+ userSelect: "none",
548
+ outline: "none",
549
+ fontSize: 12,
550
+ color: "#d4d4d8",
551
+ fontFamily: "system-ui, sans-serif",
552
+ background: state.highlighted ? "rgba(59,130,246,0.2)" : "transparent",
553
+ transition: "background 0.1s",
554
+ ...typeof callerStyle === "function" ? callerStyle(state) : callerStyle
555
+ }),
556
+ ...props
557
+ });
558
+ }
559
+ function StyledSeparator({ style }) {
560
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { style: {
561
+ borderTop: "1px solid #27272a",
562
+ margin: "2px 0",
563
+ ...style
564
+ } });
565
+ }
566
+ function StyledSubmenuTrigger({ style: callerStyle, ...props }) {
567
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_menu.Menu.SubmenuTrigger, {
568
+ style: (state) => ({
569
+ display: "flex",
570
+ alignItems: "center",
571
+ gap: 8,
572
+ padding: "7px 12px",
573
+ cursor: "pointer",
574
+ userSelect: "none",
575
+ outline: "none",
576
+ width: "100%",
577
+ boxSizing: "border-box",
578
+ border: "none",
579
+ textAlign: "left",
580
+ background: state.highlighted || state.open ? "rgba(59,130,246,0.2)" : "transparent",
581
+ transition: "background 0.1s",
582
+ ...typeof callerStyle === "function" ? callerStyle(state) : callerStyle
583
+ }),
584
+ ...props
585
+ });
586
+ }
587
+ const DropdownMenu = {
588
+ Root: _base_ui_react_menu.Menu.Root,
589
+ Trigger: _base_ui_react_menu.Menu.Trigger,
590
+ Portal: _base_ui_react_menu.Menu.Portal,
591
+ Positioner: _base_ui_react_menu.Menu.Positioner,
592
+ Popup: StyledPopup$1,
593
+ Item: StyledItem$1,
594
+ Separator: StyledSeparator,
595
+ SubmenuRoot: _base_ui_react_menu.Menu.SubmenuRoot,
596
+ SubmenuTrigger: StyledSubmenuTrigger
597
+ };
598
+
599
+ //#endregion
600
+ //#region src/Select.tsx
601
+ function StyledTrigger({ style, children, ...props }) {
602
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_base_ui_react_select.Select.Trigger, {
603
+ style: (state) => ({
604
+ display: "flex",
605
+ alignItems: "center",
606
+ justifyContent: "space-between",
607
+ gap: 4,
608
+ width: "100%",
609
+ background: "#0f0f11",
610
+ border: "1px solid #3f3f46",
611
+ borderRadius: 5,
612
+ color: "#fafafa",
613
+ fontSize: 12,
614
+ fontFamily: "system-ui, sans-serif",
615
+ padding: "5px 8px",
616
+ cursor: state.disabled ? "not-allowed" : "pointer",
617
+ opacity: state.disabled ? .5 : 1,
618
+ boxSizing: "border-box",
619
+ ...typeof style === "function" ? style(state) : style
620
+ }),
621
+ ...props,
622
+ children: [children, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDown, {
623
+ size: 12,
624
+ strokeWidth: 1.75,
625
+ "aria-hidden": true
626
+ })]
627
+ });
628
+ }
629
+ function StyledPositioner({ ...props }) {
630
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_select.Select.Positioner, {
631
+ align: "start",
632
+ side: "top",
633
+ sideOffset: 4,
634
+ alignItemWithTrigger: false,
635
+ ...props
636
+ });
637
+ }
638
+ function StyledPopup({ style, ...props }) {
639
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_select.Select.Popup, {
640
+ style: {
641
+ ...panelPopupStyle,
642
+ paddingBlock: 4,
643
+ ...style
644
+ },
645
+ ...props
646
+ });
647
+ }
648
+ function StyledList({ style, ...props }) {
649
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_select.Select.List, {
650
+ style: {
651
+ ...style,
652
+ width: "var(--anchor-width)"
653
+ },
654
+ ...props
655
+ });
656
+ }
657
+ function StyledItem({ style: callerStyle, ...props }) {
658
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_select.Select.Item, {
659
+ style: (state) => ({
660
+ display: "flex",
661
+ alignItems: "center",
662
+ gap: 6,
663
+ padding: "7px 12px",
664
+ cursor: state.disabled ? "not-allowed" : "pointer",
665
+ userSelect: "none",
666
+ outline: "none",
667
+ fontSize: 12,
668
+ fontFamily: "system-ui, sans-serif",
669
+ color: state.selected ? "#fafafa" : "#d4d4d8",
670
+ background: state.highlighted ? "rgba(59,130,246,0.2)" : "transparent",
671
+ transition: "background 0.1s",
672
+ ...callerStyle
673
+ }),
674
+ ...props
675
+ });
676
+ }
677
+ const Select = {
678
+ Root: _base_ui_react_select.Select.Root,
679
+ Trigger: StyledTrigger,
680
+ Value: _base_ui_react_select.Select.Value,
681
+ Portal: _base_ui_react_select.Select.Portal,
682
+ Positioner: StyledPositioner,
683
+ Popup: StyledPopup,
684
+ List: StyledList,
685
+ Item: StyledItem,
686
+ ItemText: _base_ui_react_select.Select.ItemText,
687
+ ItemIndicator: _base_ui_react_select.Select.ItemIndicator,
688
+ Group: _base_ui_react_select.Select.Group,
689
+ GroupLabel: _base_ui_react_select.Select.GroupLabel,
690
+ Separator: _base_ui_react_select.Select.Separator
691
+ };
692
+
693
+ //#endregion
694
+ //#region src/Logo.tsx
695
+ function Logo({ bgColor, size = 16 }) {
696
+ const linear1 = (0, react.useId)();
697
+ const linear2 = (0, react.useId)();
698
+ const linear3 = (0, react.useId)();
699
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
700
+ xmlns: "http://www.w3.org/2000/svg",
701
+ viewBox: "12 16 132 130",
702
+ fill: "none",
703
+ width: size,
704
+ height: size,
705
+ children: [
706
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("defs", { children: [
707
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("linearGradient", {
708
+ id: linear1,
709
+ x1: "0%",
710
+ y1: "0%",
711
+ x2: "100%",
712
+ y2: "100%",
713
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("stop", {
714
+ offset: "0%",
715
+ stopColor: "#2196f3"
716
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("stop", {
717
+ offset: "100%",
718
+ stopColor: "#345580"
719
+ })]
720
+ }),
721
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("linearGradient", {
722
+ id: linear2,
723
+ href: `#${linear1}`,
724
+ x1: "100%",
725
+ y1: "0%",
726
+ x2: "0%",
727
+ y2: "0%"
728
+ }),
729
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("linearGradient", {
730
+ id: linear3,
731
+ x1: "0%",
732
+ y1: "0%",
733
+ x2: "100%",
734
+ y2: "100%",
735
+ children: [
736
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("stop", {
737
+ offset: "0%",
738
+ stopColor: "#4dabf5"
739
+ }),
740
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("stop", {
741
+ offset: "50%",
742
+ stopColor: "#58a0c3"
743
+ }),
744
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("stop", {
745
+ offset: "100%",
746
+ stopColor: "#4dabf5"
747
+ })
748
+ ]
749
+ })
750
+ ] }),
751
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("g", {
752
+ transform: "matrix(5.5 0 0 5.5 75 75)",
753
+ stroke: `url(#${linear3})`,
754
+ strokeWidth: "1.5",
755
+ children: [
756
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
757
+ r: "2",
758
+ fill: `url(#${linear3})`
759
+ }),
760
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ellipse", {
761
+ rx: "10",
762
+ ry: "4.5"
763
+ }),
764
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ellipse", {
765
+ rx: "10",
766
+ ry: "4.5",
767
+ transform: "rotate(60)"
768
+ }),
769
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ellipse", {
770
+ rx: "10",
771
+ ry: "4.5",
772
+ transform: "rotate(120)"
773
+ })
774
+ ]
775
+ }),
776
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
777
+ cx: "95",
778
+ cy: "95",
779
+ r: "38",
780
+ fill: bgColor || "#18181b"
781
+ }),
782
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("g", {
783
+ transform: "matrix(3.2 0 0 3.2 70 70)",
784
+ children: [
785
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
786
+ cx: "8",
787
+ cy: "8",
788
+ r: "8",
789
+ fill: "#fff"
790
+ }),
791
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
792
+ cx: "8",
793
+ cy: "8",
794
+ r: "8",
795
+ fill: `url(#${linear1})`,
796
+ opacity: ".8"
797
+ }),
798
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
799
+ stroke: `url(#${linear2})`,
800
+ strokeWidth: "4",
801
+ strokeLinecap: "round",
802
+ d: "M14 14l6 6"
803
+ }),
804
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
805
+ cx: "8",
806
+ cy: "8",
807
+ r: "8",
808
+ stroke: `url(#${linear1})`,
809
+ strokeWidth: "3"
810
+ }),
811
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
812
+ d: "M6 5.5L4 8l2 2.5M10 10.5L12 8l-2-2.5",
813
+ stroke: "#fff",
814
+ strokeWidth: "1.5",
815
+ strokeLinecap: "round",
816
+ strokeLinejoin: "round"
817
+ })
818
+ ]
819
+ })
820
+ ]
821
+ });
822
+ }
823
+
824
+ //#endregion
825
+ exports.Button = Button;
826
+ exports.ChatBubbleIcon = ChatBubbleIcon;
827
+ exports.ChevronLeftIcon = ChevronLeftIcon;
828
+ exports.ChevronRightIcon = ChevronRightIcon;
829
+ exports.ClipboardIcon = ClipboardIcon;
830
+ exports.CollapseIcon = CollapseIcon;
831
+ exports.Combobox = Combobox;
832
+ exports.DropdownMenu = DropdownMenu;
833
+ exports.ExpandIcon = ExpandIcon;
834
+ exports.FolderIcon = FolderIcon;
835
+ exports.IconButton = IconButton;
836
+ exports.Kbd = Kbd;
837
+ exports.KbdGroup = KbdGroup;
838
+ exports.Logo = Logo;
839
+ exports.OpenInEditorIcon = OpenInEditorIcon;
840
+ exports.OpencodeIcon = OpencodeIcon;
841
+ exports.PanelHeader = PanelHeader;
842
+ exports.Popover = Popover;
843
+ exports.SaveIcon = SaveIcon;
844
+ exports.Select = Select;
845
+ exports.Separator = Separator;
846
+ exports.SettingsIcon = SettingsIcon;
847
+ exports.Textarea = Textarea;
848
+ exports.ToolbarButton = ToolbarButton;
849
+ exports.Tooltip = Tooltip;
850
+ exports.TrashIcon = TrashIcon;
851
+ exports.XIcon = XIcon;
852
+ exports.panelPopupStyle = panelPopupStyle;
853
+ //# sourceMappingURL=index.cjs.map