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