@leanmcp/ui 0.2.1 → 0.3.0

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.mjs CHANGED
@@ -1,9 +1,9 @@
1
- import { __name } from './chunk-WORZ46KI.mjs';
2
- export { UIApp, getUIAppMetadata, getUIAppUri } from './chunk-WORZ46KI.mjs';
3
- import * as React25 from 'react';
4
- import React25__default, { forwardRef, Component, useState, useRef, useCallback, useEffect, createContext, useContext, useMemo } from 'react';
5
- import { applyDocumentTheme, applyHostStyleVariables, PostMessageTransport, App } from '@modelcontextprotocol/ext-apps';
6
- export { App, PostMessageTransport } from '@modelcontextprotocol/ext-apps';
1
+ import { __name } from './chunk-KX75VCMM.mjs';
2
+ export { GPTApp, UIApp, getGPTAppMetadata, getGPTAppUri, getUIAppMetadata, getUIAppUri } from './chunk-KX75VCMM.mjs';
3
+ import * as React26 from 'react';
4
+ import React26__default, { forwardRef, Component, useState, useRef, useCallback, useEffect, createContext, useContext, useMemo } from 'react';
5
+ import { applyDocumentTheme, applyHostStyleVariables, applyHostFonts, PostMessageTransport, App } from '@modelcontextprotocol/ext-apps';
6
+ export { App, PostMessageTransport, RESOURCE_MIME_TYPE, RESOURCE_URI_META_KEY, applyDocumentTheme, applyHostFonts, applyHostStyleVariables, getDocumentTheme } from '@modelcontextprotocol/ext-apps';
7
7
  import { XIcon, ChevronDownIcon, CheckIcon, ChevronUpIcon, Loader2, SearchIcon, Search, X, AlertCircle, RefreshCw, ChevronLeft, ChevronRight, WifiOff, CircleIcon, ChevronRightIcon, Check, ArrowUpDown, ArrowUp, ArrowDown, Loader2Icon, OctagonXIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon } from 'lucide-react';
8
8
  import { useTheme } from 'next-themes';
9
9
  import { toast, Toaster as Toaster$1 } from 'sonner';
@@ -54,6 +54,9 @@ function AppProvider({ appInfo, capabilities = {}, options = {
54
54
  if (context.styles?.variables) {
55
55
  applyHostStyleVariables(context.styles.variables);
56
56
  }
57
+ if (context.styles?.css?.fonts) {
58
+ applyHostFonts(context.styles.css.fonts);
59
+ }
57
60
  }, []);
58
61
  useEffect(() => {
59
62
  let mounted = true;
@@ -222,9 +225,9 @@ function AppProvider({ appInfo, capabilities = {}, options = {
222
225
  requestDisplayMode
223
226
  };
224
227
  const theme = hostContext.theme ?? "light";
225
- return /* @__PURE__ */ React25__default.createElement(McpAppContext.Provider, {
228
+ return /* @__PURE__ */ React26__default.createElement(McpAppContext.Provider, {
226
229
  value
227
- }, /* @__PURE__ */ React25__default.createElement("div", {
230
+ }, /* @__PURE__ */ React26__default.createElement("div", {
228
231
  className: "lui-root",
229
232
  "data-theme": theme
230
233
  }, children));
@@ -266,6 +269,123 @@ function useMcpApp() {
266
269
  return context;
267
270
  }
268
271
  __name(useMcpApp, "useMcpApp");
272
+ var GptAppContext = /* @__PURE__ */ createContext(null);
273
+ function GPTAppProvider({ appName, children }) {
274
+ const [isConnected, setIsConnected] = useState(false);
275
+ const [error, setError] = useState(null);
276
+ const [theme, setTheme] = useState("light");
277
+ const [displayMode, setDisplayMode] = useState("inline");
278
+ const [locale, setLocale] = useState("en");
279
+ const [maxHeight, setMaxHeight] = useState(600);
280
+ useEffect(() => {
281
+ let mounted = true;
282
+ let checkAttempts = 0;
283
+ const maxAttempts = 50;
284
+ function checkConnection() {
285
+ if (!mounted) return;
286
+ if (window.openai) {
287
+ setIsConnected(true);
288
+ setError(null);
289
+ if (window.openai.theme) setTheme(window.openai.theme);
290
+ if (window.openai.displayMode) setDisplayMode(window.openai.displayMode);
291
+ if (window.openai.locale) setLocale(window.openai.locale);
292
+ if (window.openai.maxHeight) setMaxHeight(window.openai.maxHeight);
293
+ } else {
294
+ checkAttempts++;
295
+ if (checkAttempts < maxAttempts) {
296
+ setTimeout(checkConnection, 100);
297
+ } else {
298
+ setError(new Error("ChatGPT SDK not available"));
299
+ setIsConnected(false);
300
+ }
301
+ }
302
+ }
303
+ __name(checkConnection, "checkConnection");
304
+ checkConnection();
305
+ return () => {
306
+ mounted = false;
307
+ };
308
+ }, [
309
+ appName
310
+ ]);
311
+ const callTool = useCallback(async (name, args = {}) => {
312
+ if (!window.openai?.callTool) {
313
+ throw new Error("ChatGPT SDK not available");
314
+ }
315
+ const result = await window.openai.callTool(name, args);
316
+ return result;
317
+ }, []);
318
+ const value = {
319
+ isConnected,
320
+ error,
321
+ theme,
322
+ displayMode,
323
+ locale,
324
+ maxHeight,
325
+ callTool
326
+ };
327
+ return /* @__PURE__ */ React26__default.createElement(GptAppContext.Provider, {
328
+ value
329
+ }, /* @__PURE__ */ React26__default.createElement("div", {
330
+ className: "lui-root",
331
+ "data-theme": theme
332
+ }, children));
333
+ }
334
+ __name(GPTAppProvider, "GPTAppProvider");
335
+ function useGptApp() {
336
+ const context = useContext(GptAppContext);
337
+ if (!context) {
338
+ return {
339
+ isConnected: false,
340
+ error: new Error("GPTAppProvider not found"),
341
+ theme: "light",
342
+ displayMode: "inline",
343
+ locale: "en",
344
+ maxHeight: 600,
345
+ callTool: /* @__PURE__ */ __name(async () => {
346
+ throw new Error("Not connected to ChatGPT");
347
+ }, "callTool")
348
+ };
349
+ }
350
+ return context;
351
+ }
352
+ __name(useGptApp, "useGptApp");
353
+ function useGptTool(toolName) {
354
+ const { callTool, isConnected } = useGptApp();
355
+ const [result, setResult] = useState(null);
356
+ const [loading, setLoading] = useState(false);
357
+ const [error, setError] = useState(null);
358
+ const call = useCallback(async (args = {}) => {
359
+ if (!isConnected) {
360
+ setError(new Error("Not connected to ChatGPT"));
361
+ return;
362
+ }
363
+ setLoading(true);
364
+ setError(null);
365
+ try {
366
+ const res = await callTool(toolName, args);
367
+ setResult(res);
368
+ return res;
369
+ } catch (err) {
370
+ setError(err);
371
+ throw err;
372
+ } finally {
373
+ setLoading(false);
374
+ }
375
+ }, [
376
+ callTool,
377
+ isConnected,
378
+ toolName
379
+ ]);
380
+ return {
381
+ call,
382
+ result,
383
+ loading,
384
+ error,
385
+ isConnected
386
+ };
387
+ }
388
+ __name(useGptTool, "useGptTool");
269
389
  var DEFAULT_CONTEXT = {
270
390
  resultDisplay: {
271
391
  display: "none"
@@ -283,7 +403,7 @@ function ToolProvider({ defaults = {}, children }) {
283
403
  defaults,
284
404
  parentContext
285
405
  ]);
286
- return /* @__PURE__ */ React25.createElement(ToolContext.Provider, {
406
+ return /* @__PURE__ */ React26.createElement(ToolContext.Provider, {
287
407
  value
288
408
  }, children);
289
409
  }
@@ -294,23 +414,23 @@ function useToolContext() {
294
414
  __name(useToolContext, "useToolContext");
295
415
  var Toaster = /* @__PURE__ */ __name(({ ...props }) => {
296
416
  const { theme = "system" } = useTheme();
297
- return /* @__PURE__ */ React25__default.createElement(Toaster$1, {
417
+ return /* @__PURE__ */ React26__default.createElement(Toaster$1, {
298
418
  theme,
299
419
  className: "toaster group",
300
420
  icons: {
301
- success: /* @__PURE__ */ React25__default.createElement(CircleCheckIcon, {
421
+ success: /* @__PURE__ */ React26__default.createElement(CircleCheckIcon, {
302
422
  className: "size-4"
303
423
  }),
304
- info: /* @__PURE__ */ React25__default.createElement(InfoIcon, {
424
+ info: /* @__PURE__ */ React26__default.createElement(InfoIcon, {
305
425
  className: "size-4"
306
426
  }),
307
- warning: /* @__PURE__ */ React25__default.createElement(TriangleAlertIcon, {
427
+ warning: /* @__PURE__ */ React26__default.createElement(TriangleAlertIcon, {
308
428
  className: "size-4"
309
429
  }),
310
- error: /* @__PURE__ */ React25__default.createElement(OctagonXIcon, {
430
+ error: /* @__PURE__ */ React26__default.createElement(OctagonXIcon, {
311
431
  className: "size-4"
312
432
  }),
313
- loading: /* @__PURE__ */ React25__default.createElement(Loader2Icon, {
433
+ loading: /* @__PURE__ */ React26__default.createElement(Loader2Icon, {
314
434
  className: "size-4 animate-spin"
315
435
  })
316
436
  },
@@ -355,7 +475,7 @@ var buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespa
355
475
  });
356
476
  function Button({ className, variant = "default", size = "default", asChild = false, ...props }) {
357
477
  const Comp = asChild ? Slot : "button";
358
- return /* @__PURE__ */ React25.createElement(Comp, {
478
+ return /* @__PURE__ */ React26.createElement(Comp, {
359
479
  "data-slot": "button",
360
480
  "data-variant": variant,
361
481
  "data-size": size,
@@ -369,35 +489,35 @@ function Button({ className, variant = "default", size = "default", asChild = fa
369
489
  }
370
490
  __name(Button, "Button");
371
491
  function Dialog({ ...props }) {
372
- return /* @__PURE__ */ React25.createElement(DialogPrimitive.Root, {
492
+ return /* @__PURE__ */ React26.createElement(DialogPrimitive.Root, {
373
493
  "data-slot": "dialog",
374
494
  ...props
375
495
  });
376
496
  }
377
497
  __name(Dialog, "Dialog");
378
498
  function DialogTrigger({ ...props }) {
379
- return /* @__PURE__ */ React25.createElement(DialogPrimitive.Trigger, {
499
+ return /* @__PURE__ */ React26.createElement(DialogPrimitive.Trigger, {
380
500
  "data-slot": "dialog-trigger",
381
501
  ...props
382
502
  });
383
503
  }
384
504
  __name(DialogTrigger, "DialogTrigger");
385
505
  function DialogPortal({ ...props }) {
386
- return /* @__PURE__ */ React25.createElement(DialogPrimitive.Portal, {
506
+ return /* @__PURE__ */ React26.createElement(DialogPrimitive.Portal, {
387
507
  "data-slot": "dialog-portal",
388
508
  ...props
389
509
  });
390
510
  }
391
511
  __name(DialogPortal, "DialogPortal");
392
512
  function DialogClose({ ...props }) {
393
- return /* @__PURE__ */ React25.createElement(DialogPrimitive.Close, {
513
+ return /* @__PURE__ */ React26.createElement(DialogPrimitive.Close, {
394
514
  "data-slot": "dialog-close",
395
515
  ...props
396
516
  });
397
517
  }
398
518
  __name(DialogClose, "DialogClose");
399
519
  function DialogOverlay({ className, ...props }) {
400
- return /* @__PURE__ */ React25.createElement(DialogPrimitive.Overlay, {
520
+ return /* @__PURE__ */ React26.createElement(DialogPrimitive.Overlay, {
401
521
  "data-slot": "dialog-overlay",
402
522
  className: cn("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50", className),
403
523
  ...props
@@ -405,22 +525,22 @@ function DialogOverlay({ className, ...props }) {
405
525
  }
406
526
  __name(DialogOverlay, "DialogOverlay");
407
527
  function DialogContent({ className, children, showCloseButton = true, ...props }) {
408
- return /* @__PURE__ */ React25.createElement(DialogPortal, {
528
+ return /* @__PURE__ */ React26.createElement(DialogPortal, {
409
529
  "data-slot": "dialog-portal"
410
- }, /* @__PURE__ */ React25.createElement(DialogOverlay, null), /* @__PURE__ */ React25.createElement(DialogPrimitive.Content, {
530
+ }, /* @__PURE__ */ React26.createElement(DialogOverlay, null), /* @__PURE__ */ React26.createElement(DialogPrimitive.Content, {
411
531
  "data-slot": "dialog-content",
412
532
  className: cn("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg", className),
413
533
  ...props
414
- }, children, showCloseButton && /* @__PURE__ */ React25.createElement(DialogPrimitive.Close, {
534
+ }, children, showCloseButton && /* @__PURE__ */ React26.createElement(DialogPrimitive.Close, {
415
535
  "data-slot": "dialog-close",
416
536
  className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
417
- }, /* @__PURE__ */ React25.createElement(XIcon, null), /* @__PURE__ */ React25.createElement("span", {
537
+ }, /* @__PURE__ */ React26.createElement(XIcon, null), /* @__PURE__ */ React26.createElement("span", {
418
538
  className: "sr-only"
419
539
  }, "Close"))));
420
540
  }
421
541
  __name(DialogContent, "DialogContent");
422
542
  function DialogHeader({ className, ...props }) {
423
- return /* @__PURE__ */ React25.createElement("div", {
543
+ return /* @__PURE__ */ React26.createElement("div", {
424
544
  "data-slot": "dialog-header",
425
545
  className: cn("flex flex-col gap-2 text-center sm:text-left", className),
426
546
  ...props
@@ -428,7 +548,7 @@ function DialogHeader({ className, ...props }) {
428
548
  }
429
549
  __name(DialogHeader, "DialogHeader");
430
550
  function DialogFooter({ className, ...props }) {
431
- return /* @__PURE__ */ React25.createElement("div", {
551
+ return /* @__PURE__ */ React26.createElement("div", {
432
552
  "data-slot": "dialog-footer",
433
553
  className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
434
554
  ...props
@@ -436,7 +556,7 @@ function DialogFooter({ className, ...props }) {
436
556
  }
437
557
  __name(DialogFooter, "DialogFooter");
438
558
  function DialogTitle({ className, ...props }) {
439
- return /* @__PURE__ */ React25.createElement(DialogPrimitive.Title, {
559
+ return /* @__PURE__ */ React26.createElement(DialogPrimitive.Title, {
440
560
  "data-slot": "dialog-title",
441
561
  className: cn("text-lg leading-none font-semibold", className),
442
562
  ...props
@@ -444,7 +564,7 @@ function DialogTitle({ className, ...props }) {
444
564
  }
445
565
  __name(DialogTitle, "DialogTitle");
446
566
  function DialogDescription({ className, ...props }) {
447
- return /* @__PURE__ */ React25.createElement(DialogPrimitive.Description, {
567
+ return /* @__PURE__ */ React26.createElement(DialogPrimitive.Description, {
448
568
  "data-slot": "dialog-description",
449
569
  className: cn("text-muted-foreground text-sm", className),
450
570
  ...props
@@ -666,26 +786,26 @@ function ToolButton({ tool, args = {}, resultDisplay = "none", renderResult, res
666
786
  return children(buttonState);
667
787
  }
668
788
  if (loading) {
669
- return /* @__PURE__ */ React25.createElement(React25.Fragment, null, loadingIcon ?? /* @__PURE__ */ React25.createElement(Loader2, {
789
+ return /* @__PURE__ */ React26.createElement(React26.Fragment, null, loadingIcon ?? /* @__PURE__ */ React26.createElement(Loader2, {
670
790
  className: "animate-spin"
671
- }), loadingText && /* @__PURE__ */ React25.createElement("span", null, loadingText), !loadingText && children);
791
+ }), loadingText && /* @__PURE__ */ React26.createElement("span", null, loadingText), !loadingText && children);
672
792
  }
673
793
  if (showResult && resultDisplay === "inline") {
674
794
  if (error) {
675
- return /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(X, {
795
+ return /* @__PURE__ */ React26.createElement(React26.Fragment, null, /* @__PURE__ */ React26.createElement(X, {
676
796
  className: "text-destructive"
677
- }), /* @__PURE__ */ React25.createElement("span", null, error.message));
797
+ }), /* @__PURE__ */ React26.createElement("span", null, error.message));
678
798
  }
679
799
  if (renderResult) {
680
800
  return renderResult(result);
681
801
  }
682
- return /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(Check, {
802
+ return /* @__PURE__ */ React26.createElement(React26.Fragment, null, /* @__PURE__ */ React26.createElement(Check, {
683
803
  className: "text-success"
684
- }), /* @__PURE__ */ React25.createElement("span", null, "Done"));
804
+ }), /* @__PURE__ */ React26.createElement("span", null, "Done"));
685
805
  }
686
806
  return children;
687
807
  }, "renderChildren");
688
- return /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(Button, {
808
+ return /* @__PURE__ */ React26.createElement(React26.Fragment, null, /* @__PURE__ */ React26.createElement(Button, {
689
809
  type: "button",
690
810
  variant,
691
811
  size,
@@ -694,66 +814,66 @@ function ToolButton({ tool, args = {}, resultDisplay = "none", renderResult, res
694
814
  onClick: handleClick,
695
815
  asChild,
696
816
  ...props
697
- }, renderChildren()), confirm && /* @__PURE__ */ React25.createElement(Dialog, {
817
+ }, renderChildren()), confirm && /* @__PURE__ */ React26.createElement(Dialog, {
698
818
  open: showConfirm,
699
819
  onOpenChange: setShowConfirm
700
- }, /* @__PURE__ */ React25.createElement(DialogContent, null, /* @__PURE__ */ React25.createElement(DialogHeader, null, /* @__PURE__ */ React25.createElement(DialogTitle, null, confirmConfig.title), confirmConfig.description && /* @__PURE__ */ React25.createElement(DialogDescription, null, confirmConfig.description)), /* @__PURE__ */ React25.createElement(DialogFooter, null, /* @__PURE__ */ React25.createElement(Button, {
820
+ }, /* @__PURE__ */ React26.createElement(DialogContent, null, /* @__PURE__ */ React26.createElement(DialogHeader, null, /* @__PURE__ */ React26.createElement(DialogTitle, null, confirmConfig.title), confirmConfig.description && /* @__PURE__ */ React26.createElement(DialogDescription, null, confirmConfig.description)), /* @__PURE__ */ React26.createElement(DialogFooter, null, /* @__PURE__ */ React26.createElement(Button, {
701
821
  variant: "outline",
702
822
  onClick: /* @__PURE__ */ __name(() => setShowConfirm(false), "onClick")
703
- }, confirmConfig.cancelText ?? "Cancel"), /* @__PURE__ */ React25.createElement(Button, {
823
+ }, confirmConfig.cancelText ?? "Cancel"), /* @__PURE__ */ React26.createElement(Button, {
704
824
  variant: confirmConfig.confirmVariant ?? (variant === "destructive" ? "destructive" : "default"),
705
825
  onClick: handleConfirm
706
826
  }, confirmConfig.confirmText ?? "Confirm")))));
707
827
  }
708
828
  __name(ToolButton, "ToolButton");
709
829
  function Select({ ...props }) {
710
- return /* @__PURE__ */ React25.createElement(SelectPrimitive.Root, {
830
+ return /* @__PURE__ */ React26.createElement(SelectPrimitive.Root, {
711
831
  "data-slot": "select",
712
832
  ...props
713
833
  });
714
834
  }
715
835
  __name(Select, "Select");
716
836
  function SelectGroup({ ...props }) {
717
- return /* @__PURE__ */ React25.createElement(SelectPrimitive.Group, {
837
+ return /* @__PURE__ */ React26.createElement(SelectPrimitive.Group, {
718
838
  "data-slot": "select-group",
719
839
  ...props
720
840
  });
721
841
  }
722
842
  __name(SelectGroup, "SelectGroup");
723
843
  function SelectValue({ ...props }) {
724
- return /* @__PURE__ */ React25.createElement(SelectPrimitive.Value, {
844
+ return /* @__PURE__ */ React26.createElement(SelectPrimitive.Value, {
725
845
  "data-slot": "select-value",
726
846
  ...props
727
847
  });
728
848
  }
729
849
  __name(SelectValue, "SelectValue");
730
850
  function SelectTrigger({ className, size = "default", children, ...props }) {
731
- return /* @__PURE__ */ React25.createElement(SelectPrimitive.Trigger, {
851
+ return /* @__PURE__ */ React26.createElement(SelectPrimitive.Trigger, {
732
852
  "data-slot": "select-trigger",
733
853
  "data-size": size,
734
854
  className: cn("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
735
855
  ...props
736
- }, children, /* @__PURE__ */ React25.createElement(SelectPrimitive.Icon, {
856
+ }, children, /* @__PURE__ */ React26.createElement(SelectPrimitive.Icon, {
737
857
  asChild: true
738
- }, /* @__PURE__ */ React25.createElement(ChevronDownIcon, {
858
+ }, /* @__PURE__ */ React26.createElement(ChevronDownIcon, {
739
859
  className: "size-4 opacity-50"
740
860
  })));
741
861
  }
742
862
  __name(SelectTrigger, "SelectTrigger");
743
863
  function SelectContent({ className, children, position = "item-aligned", align = "center", ...props }) {
744
- return /* @__PURE__ */ React25.createElement(SelectPrimitive.Portal, null, /* @__PURE__ */ React25.createElement(SelectPrimitive.Content, {
864
+ return /* @__PURE__ */ React26.createElement(SelectPrimitive.Portal, null, /* @__PURE__ */ React26.createElement(SelectPrimitive.Content, {
745
865
  "data-slot": "select-content",
746
866
  className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md", position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className),
747
867
  position,
748
868
  align,
749
869
  ...props
750
- }, /* @__PURE__ */ React25.createElement(SelectScrollUpButton, null), /* @__PURE__ */ React25.createElement(SelectPrimitive.Viewport, {
870
+ }, /* @__PURE__ */ React26.createElement(SelectScrollUpButton, null), /* @__PURE__ */ React26.createElement(SelectPrimitive.Viewport, {
751
871
  className: cn("p-1", position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1")
752
- }, children), /* @__PURE__ */ React25.createElement(SelectScrollDownButton, null)));
872
+ }, children), /* @__PURE__ */ React26.createElement(SelectScrollDownButton, null)));
753
873
  }
754
874
  __name(SelectContent, "SelectContent");
755
875
  function SelectLabel({ className, ...props }) {
756
- return /* @__PURE__ */ React25.createElement(SelectPrimitive.Label, {
876
+ return /* @__PURE__ */ React26.createElement(SelectPrimitive.Label, {
757
877
  "data-slot": "select-label",
758
878
  className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
759
879
  ...props
@@ -761,20 +881,20 @@ function SelectLabel({ className, ...props }) {
761
881
  }
762
882
  __name(SelectLabel, "SelectLabel");
763
883
  function SelectItem({ className, children, ...props }) {
764
- return /* @__PURE__ */ React25.createElement(SelectPrimitive.Item, {
884
+ return /* @__PURE__ */ React26.createElement(SelectPrimitive.Item, {
765
885
  "data-slot": "select-item",
766
886
  className: cn("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", className),
767
887
  ...props
768
- }, /* @__PURE__ */ React25.createElement("span", {
888
+ }, /* @__PURE__ */ React26.createElement("span", {
769
889
  "data-slot": "select-item-indicator",
770
890
  className: "absolute right-2 flex size-3.5 items-center justify-center"
771
- }, /* @__PURE__ */ React25.createElement(SelectPrimitive.ItemIndicator, null, /* @__PURE__ */ React25.createElement(CheckIcon, {
891
+ }, /* @__PURE__ */ React26.createElement(SelectPrimitive.ItemIndicator, null, /* @__PURE__ */ React26.createElement(CheckIcon, {
772
892
  className: "size-4"
773
- }))), /* @__PURE__ */ React25.createElement(SelectPrimitive.ItemText, null, children));
893
+ }))), /* @__PURE__ */ React26.createElement(SelectPrimitive.ItemText, null, children));
774
894
  }
775
895
  __name(SelectItem, "SelectItem");
776
896
  function SelectSeparator({ className, ...props }) {
777
- return /* @__PURE__ */ React25.createElement(SelectPrimitive.Separator, {
897
+ return /* @__PURE__ */ React26.createElement(SelectPrimitive.Separator, {
778
898
  "data-slot": "select-separator",
779
899
  className: cn("bg-border pointer-events-none -mx-1 my-1 h-px", className),
780
900
  ...props
@@ -782,21 +902,21 @@ function SelectSeparator({ className, ...props }) {
782
902
  }
783
903
  __name(SelectSeparator, "SelectSeparator");
784
904
  function SelectScrollUpButton({ className, ...props }) {
785
- return /* @__PURE__ */ React25.createElement(SelectPrimitive.ScrollUpButton, {
905
+ return /* @__PURE__ */ React26.createElement(SelectPrimitive.ScrollUpButton, {
786
906
  "data-slot": "select-scroll-up-button",
787
907
  className: cn("flex cursor-default items-center justify-center py-1", className),
788
908
  ...props
789
- }, /* @__PURE__ */ React25.createElement(ChevronUpIcon, {
909
+ }, /* @__PURE__ */ React26.createElement(ChevronUpIcon, {
790
910
  className: "size-4"
791
911
  }));
792
912
  }
793
913
  __name(SelectScrollUpButton, "SelectScrollUpButton");
794
914
  function SelectScrollDownButton({ className, ...props }) {
795
- return /* @__PURE__ */ React25.createElement(SelectPrimitive.ScrollDownButton, {
915
+ return /* @__PURE__ */ React26.createElement(SelectPrimitive.ScrollDownButton, {
796
916
  "data-slot": "select-scroll-down-button",
797
917
  className: cn("flex cursor-default items-center justify-center py-1", className),
798
918
  ...props
799
- }, /* @__PURE__ */ React25.createElement(ChevronDownIcon, {
919
+ }, /* @__PURE__ */ React26.createElement(ChevronDownIcon, {
800
920
  className: "size-4"
801
921
  }));
802
922
  }
@@ -861,35 +981,35 @@ function ToolSelect({ onSelectTool, argName = "value", additionalArgs = {}, opti
861
981
  ]);
862
982
  const isLoading = optionsHook.loading || selectHook.loading;
863
983
  const hasError = optionsHook.error || selectHook.error;
864
- return /* @__PURE__ */ React25.createElement(Select, {
984
+ return /* @__PURE__ */ React26.createElement(Select, {
865
985
  value,
866
986
  onValueChange: handleValueChange,
867
987
  disabled: disabled || isLoading
868
- }, /* @__PURE__ */ React25.createElement(SelectTrigger, {
988
+ }, /* @__PURE__ */ React26.createElement(SelectTrigger, {
869
989
  className: cn("w-full", className)
870
- }, isLoading ? /* @__PURE__ */ React25.createElement("div", {
990
+ }, isLoading ? /* @__PURE__ */ React26.createElement("div", {
871
991
  className: "flex items-center gap-2"
872
- }, /* @__PURE__ */ React25.createElement(Loader2, {
992
+ }, /* @__PURE__ */ React26.createElement(Loader2, {
873
993
  className: "h-4 w-4 animate-spin"
874
- }), /* @__PURE__ */ React25.createElement("span", {
994
+ }), /* @__PURE__ */ React26.createElement("span", {
875
995
  className: "text-muted-foreground"
876
- }, optionsHook.loading ? loadingPlaceholder : "Saving...")) : /* @__PURE__ */ React25.createElement(SelectValue, {
996
+ }, optionsHook.loading ? loadingPlaceholder : "Saving...")) : /* @__PURE__ */ React26.createElement(SelectValue, {
877
997
  placeholder
878
- })), /* @__PURE__ */ React25.createElement(SelectContent, null, allOptions.length === 0 ? /* @__PURE__ */ React25.createElement("div", {
998
+ })), /* @__PURE__ */ React26.createElement(SelectContent, null, allOptions.length === 0 ? /* @__PURE__ */ React26.createElement("div", {
879
999
  className: "py-6 text-center text-sm text-muted-foreground"
880
- }, hasError ? "Error loading options" : emptyMessage) : allOptions.map((option) => /* @__PURE__ */ React25.createElement(SelectItem, {
1000
+ }, hasError ? "Error loading options" : emptyMessage) : allOptions.map((option) => /* @__PURE__ */ React26.createElement(SelectItem, {
881
1001
  key: option.value,
882
1002
  value: option.value,
883
1003
  disabled: option.disabled
884
- }, /* @__PURE__ */ React25.createElement("div", {
1004
+ }, /* @__PURE__ */ React26.createElement("div", {
885
1005
  className: "flex items-center gap-2"
886
- }, option.icon, /* @__PURE__ */ React25.createElement("div", null, /* @__PURE__ */ React25.createElement("div", null, option.label), option.description && /* @__PURE__ */ React25.createElement("div", {
1006
+ }, option.icon, /* @__PURE__ */ React26.createElement("div", null, /* @__PURE__ */ React26.createElement("div", null, option.label), option.description && /* @__PURE__ */ React26.createElement("div", {
887
1007
  className: "text-xs text-muted-foreground"
888
1008
  }, option.description)))))));
889
1009
  }
890
1010
  __name(ToolSelect, "ToolSelect");
891
1011
  function Input({ className, type, ...props }) {
892
- return /* @__PURE__ */ React25.createElement("input", {
1012
+ return /* @__PURE__ */ React26.createElement("input", {
893
1013
  type,
894
1014
  "data-slot": "input",
895
1015
  className: cn("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", className),
@@ -898,7 +1018,7 @@ function Input({ className, type, ...props }) {
898
1018
  }
899
1019
  __name(Input, "Input");
900
1020
  function Command({ className, ...props }) {
901
- return /* @__PURE__ */ React25.createElement(Command$1, {
1021
+ return /* @__PURE__ */ React26.createElement(Command$1, {
902
1022
  "data-slot": "command",
903
1023
  className: cn("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md", className),
904
1024
  ...props
@@ -906,23 +1026,23 @@ function Command({ className, ...props }) {
906
1026
  }
907
1027
  __name(Command, "Command");
908
1028
  function CommandDialog({ title = "Command Palette", description = "Search for a command to run...", children, className, showCloseButton = true, ...props }) {
909
- return /* @__PURE__ */ React25.createElement(Dialog, props, /* @__PURE__ */ React25.createElement(DialogHeader, {
1029
+ return /* @__PURE__ */ React26.createElement(Dialog, props, /* @__PURE__ */ React26.createElement(DialogHeader, {
910
1030
  className: "sr-only"
911
- }, /* @__PURE__ */ React25.createElement(DialogTitle, null, title), /* @__PURE__ */ React25.createElement(DialogDescription, null, description)), /* @__PURE__ */ React25.createElement(DialogContent, {
1031
+ }, /* @__PURE__ */ React26.createElement(DialogTitle, null, title), /* @__PURE__ */ React26.createElement(DialogDescription, null, description)), /* @__PURE__ */ React26.createElement(DialogContent, {
912
1032
  className: cn("overflow-hidden p-0", className),
913
1033
  showCloseButton
914
- }, /* @__PURE__ */ React25.createElement(Command, {
1034
+ }, /* @__PURE__ */ React26.createElement(Command, {
915
1035
  className: "[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5"
916
1036
  }, children)));
917
1037
  }
918
1038
  __name(CommandDialog, "CommandDialog");
919
1039
  function CommandInput({ className, ...props }) {
920
- return /* @__PURE__ */ React25.createElement("div", {
1040
+ return /* @__PURE__ */ React26.createElement("div", {
921
1041
  "data-slot": "command-input-wrapper",
922
1042
  className: "flex h-9 items-center gap-2 border-b px-3"
923
- }, /* @__PURE__ */ React25.createElement(SearchIcon, {
1043
+ }, /* @__PURE__ */ React26.createElement(SearchIcon, {
924
1044
  className: "size-4 shrink-0 opacity-50"
925
- }), /* @__PURE__ */ React25.createElement(Command$1.Input, {
1045
+ }), /* @__PURE__ */ React26.createElement(Command$1.Input, {
926
1046
  "data-slot": "command-input",
927
1047
  className: cn("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className),
928
1048
  ...props
@@ -930,7 +1050,7 @@ function CommandInput({ className, ...props }) {
930
1050
  }
931
1051
  __name(CommandInput, "CommandInput");
932
1052
  function CommandList({ className, ...props }) {
933
- return /* @__PURE__ */ React25.createElement(Command$1.List, {
1053
+ return /* @__PURE__ */ React26.createElement(Command$1.List, {
934
1054
  "data-slot": "command-list",
935
1055
  className: cn("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto", className),
936
1056
  ...props
@@ -938,7 +1058,7 @@ function CommandList({ className, ...props }) {
938
1058
  }
939
1059
  __name(CommandList, "CommandList");
940
1060
  function CommandEmpty({ ...props }) {
941
- return /* @__PURE__ */ React25.createElement(Command$1.Empty, {
1061
+ return /* @__PURE__ */ React26.createElement(Command$1.Empty, {
942
1062
  "data-slot": "command-empty",
943
1063
  className: "py-6 text-center text-sm",
944
1064
  ...props
@@ -946,7 +1066,7 @@ function CommandEmpty({ ...props }) {
946
1066
  }
947
1067
  __name(CommandEmpty, "CommandEmpty");
948
1068
  function CommandGroup({ className, ...props }) {
949
- return /* @__PURE__ */ React25.createElement(Command$1.Group, {
1069
+ return /* @__PURE__ */ React26.createElement(Command$1.Group, {
950
1070
  "data-slot": "command-group",
951
1071
  className: cn("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium", className),
952
1072
  ...props
@@ -954,7 +1074,7 @@ function CommandGroup({ className, ...props }) {
954
1074
  }
955
1075
  __name(CommandGroup, "CommandGroup");
956
1076
  function CommandSeparator({ className, ...props }) {
957
- return /* @__PURE__ */ React25.createElement(Command$1.Separator, {
1077
+ return /* @__PURE__ */ React26.createElement(Command$1.Separator, {
958
1078
  "data-slot": "command-separator",
959
1079
  className: cn("bg-border -mx-1 h-px", className),
960
1080
  ...props
@@ -962,7 +1082,7 @@ function CommandSeparator({ className, ...props }) {
962
1082
  }
963
1083
  __name(CommandSeparator, "CommandSeparator");
964
1084
  function CommandItem({ className, ...props }) {
965
- return /* @__PURE__ */ React25.createElement(Command$1.Item, {
1085
+ return /* @__PURE__ */ React26.createElement(Command$1.Item, {
966
1086
  "data-slot": "command-item",
967
1087
  className: cn("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
968
1088
  ...props
@@ -970,7 +1090,7 @@ function CommandItem({ className, ...props }) {
970
1090
  }
971
1091
  __name(CommandItem, "CommandItem");
972
1092
  function CommandShortcut({ className, ...props }) {
973
- return /* @__PURE__ */ React25.createElement("span", {
1093
+ return /* @__PURE__ */ React26.createElement("span", {
974
1094
  "data-slot": "command-shortcut",
975
1095
  className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className),
976
1096
  ...props
@@ -978,21 +1098,21 @@ function CommandShortcut({ className, ...props }) {
978
1098
  }
979
1099
  __name(CommandShortcut, "CommandShortcut");
980
1100
  function Popover({ ...props }) {
981
- return /* @__PURE__ */ React25.createElement(PopoverPrimitive.Root, {
1101
+ return /* @__PURE__ */ React26.createElement(PopoverPrimitive.Root, {
982
1102
  "data-slot": "popover",
983
1103
  ...props
984
1104
  });
985
1105
  }
986
1106
  __name(Popover, "Popover");
987
1107
  function PopoverTrigger({ ...props }) {
988
- return /* @__PURE__ */ React25.createElement(PopoverPrimitive.Trigger, {
1108
+ return /* @__PURE__ */ React26.createElement(PopoverPrimitive.Trigger, {
989
1109
  "data-slot": "popover-trigger",
990
1110
  ...props
991
1111
  });
992
1112
  }
993
1113
  __name(PopoverTrigger, "PopoverTrigger");
994
1114
  function PopoverContent({ className, align = "center", sideOffset = 4, ...props }) {
995
- return /* @__PURE__ */ React25.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ React25.createElement(PopoverPrimitive.Content, {
1115
+ return /* @__PURE__ */ React26.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ React26.createElement(PopoverPrimitive.Content, {
996
1116
  "data-slot": "popover-content",
997
1117
  align,
998
1118
  sideOffset,
@@ -1002,7 +1122,7 @@ function PopoverContent({ className, align = "center", sideOffset = 4, ...props
1002
1122
  }
1003
1123
  __name(PopoverContent, "PopoverContent");
1004
1124
  function PopoverAnchor({ ...props }) {
1005
- return /* @__PURE__ */ React25.createElement(PopoverPrimitive.Anchor, {
1125
+ return /* @__PURE__ */ React26.createElement(PopoverPrimitive.Anchor, {
1006
1126
  "data-slot": "popover-anchor",
1007
1127
  ...props
1008
1128
  });
@@ -1091,11 +1211,11 @@ function ToolInput({ searchTool, debounce = 300, minChars = 1, argName = "query"
1091
1211
  }
1092
1212
  };
1093
1213
  }, []);
1094
- const inputElement = /* @__PURE__ */ React25.createElement("div", {
1214
+ const inputElement = /* @__PURE__ */ React26.createElement("div", {
1095
1215
  className: cn("relative", className)
1096
- }, showSearchIcon && /* @__PURE__ */ React25.createElement(Search, {
1216
+ }, showSearchIcon && /* @__PURE__ */ React26.createElement(Search, {
1097
1217
  className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"
1098
- }), /* @__PURE__ */ React25.createElement(Input, {
1218
+ }), /* @__PURE__ */ React26.createElement(Input, {
1099
1219
  ref: inputRef,
1100
1220
  value,
1101
1221
  onChange: handleChange,
@@ -1103,42 +1223,42 @@ function ToolInput({ searchTool, debounce = 300, minChars = 1, argName = "query"
1103
1223
  disabled,
1104
1224
  className: cn(showSearchIcon && "pl-9", (showClearButton || showLoadingIndicator) && "pr-9"),
1105
1225
  ...props
1106
- }), /* @__PURE__ */ React25.createElement("div", {
1226
+ }), /* @__PURE__ */ React26.createElement("div", {
1107
1227
  className: "absolute right-3 top-1/2 -translate-y-1/2 flex items-center gap-1"
1108
- }, showLoadingIndicator && loading && /* @__PURE__ */ React25.createElement(Loader2, {
1228
+ }, showLoadingIndicator && loading && /* @__PURE__ */ React26.createElement(Loader2, {
1109
1229
  className: "h-4 w-4 animate-spin text-muted-foreground"
1110
- }), showClearButton && value && !loading && /* @__PURE__ */ React25.createElement("button", {
1230
+ }), showClearButton && value && !loading && /* @__PURE__ */ React26.createElement("button", {
1111
1231
  type: "button",
1112
1232
  onClick: handleClear,
1113
1233
  className: "h-4 w-4 text-muted-foreground hover:text-foreground transition-colors"
1114
- }, /* @__PURE__ */ React25.createElement(X, {
1234
+ }, /* @__PURE__ */ React26.createElement(X, {
1115
1235
  className: "h-4 w-4"
1116
1236
  }))));
1117
1237
  if (!autocomplete) {
1118
1238
  return inputElement;
1119
1239
  }
1120
- return /* @__PURE__ */ React25.createElement(Popover, {
1240
+ return /* @__PURE__ */ React26.createElement(Popover, {
1121
1241
  open: isOpen,
1122
1242
  onOpenChange: setIsOpen
1123
- }, /* @__PURE__ */ React25.createElement(PopoverTrigger, {
1243
+ }, /* @__PURE__ */ React26.createElement(PopoverTrigger, {
1124
1244
  asChild: true
1125
- }, inputElement), /* @__PURE__ */ React25.createElement(PopoverContent, {
1245
+ }, inputElement), /* @__PURE__ */ React26.createElement(PopoverContent, {
1126
1246
  className: "p-0 w-[var(--radix-popover-trigger-width)]",
1127
1247
  align: "start",
1128
1248
  onOpenAutoFocus: /* @__PURE__ */ __name((e) => e.preventDefault(), "onOpenAutoFocus")
1129
- }, /* @__PURE__ */ React25.createElement(Command, null, /* @__PURE__ */ React25.createElement(CommandList, null, /* @__PURE__ */ React25.createElement(CommandEmpty, null, emptyMessage), /* @__PURE__ */ React25.createElement(CommandGroup, null, suggestions.map((suggestion) => /* @__PURE__ */ React25.createElement(CommandItem, {
1249
+ }, /* @__PURE__ */ React26.createElement(Command, null, /* @__PURE__ */ React26.createElement(CommandList, null, /* @__PURE__ */ React26.createElement(CommandEmpty, null, emptyMessage), /* @__PURE__ */ React26.createElement(CommandGroup, null, suggestions.map((suggestion) => /* @__PURE__ */ React26.createElement(CommandItem, {
1130
1250
  key: suggestion.value,
1131
1251
  value: suggestion.value,
1132
1252
  onSelect: /* @__PURE__ */ __name(() => handleSelect(suggestion), "onSelect")
1133
- }, /* @__PURE__ */ React25.createElement("div", {
1253
+ }, /* @__PURE__ */ React26.createElement("div", {
1134
1254
  className: "flex items-center gap-2"
1135
- }, suggestion.icon, /* @__PURE__ */ React25.createElement("div", null, /* @__PURE__ */ React25.createElement("div", null, suggestion.label), suggestion.description && /* @__PURE__ */ React25.createElement("div", {
1255
+ }, suggestion.icon, /* @__PURE__ */ React26.createElement("div", null, /* @__PURE__ */ React26.createElement("div", null, suggestion.label), suggestion.description && /* @__PURE__ */ React26.createElement("div", {
1136
1256
  className: "text-xs text-muted-foreground"
1137
1257
  }, suggestion.description))))))))));
1138
1258
  }
1139
1259
  __name(ToolInput, "ToolInput");
1140
1260
  function Label2({ className, ...props }) {
1141
- return /* @__PURE__ */ React25.createElement(LabelPrimitive.Root, {
1261
+ return /* @__PURE__ */ React26.createElement(LabelPrimitive.Root, {
1142
1262
  "data-slot": "label",
1143
1263
  className: cn("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className),
1144
1264
  ...props
@@ -1146,7 +1266,7 @@ function Label2({ className, ...props }) {
1146
1266
  }
1147
1267
  __name(Label2, "Label");
1148
1268
  function Textarea({ className, ...props }) {
1149
- return /* @__PURE__ */ React25.createElement("textarea", {
1269
+ return /* @__PURE__ */ React26.createElement("textarea", {
1150
1270
  "data-slot": "textarea",
1151
1271
  className: cn("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", className),
1152
1272
  ...props
@@ -1154,20 +1274,20 @@ function Textarea({ className, ...props }) {
1154
1274
  }
1155
1275
  __name(Textarea, "Textarea");
1156
1276
  function Checkbox({ className, ...props }) {
1157
- return /* @__PURE__ */ React25.createElement(CheckboxPrimitive.Root, {
1277
+ return /* @__PURE__ */ React26.createElement(CheckboxPrimitive.Root, {
1158
1278
  "data-slot": "checkbox",
1159
1279
  className: cn("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", className),
1160
1280
  ...props
1161
- }, /* @__PURE__ */ React25.createElement(CheckboxPrimitive.Indicator, {
1281
+ }, /* @__PURE__ */ React26.createElement(CheckboxPrimitive.Indicator, {
1162
1282
  "data-slot": "checkbox-indicator",
1163
1283
  className: "grid place-content-center text-current transition-none"
1164
- }, /* @__PURE__ */ React25.createElement(CheckIcon, {
1284
+ }, /* @__PURE__ */ React26.createElement(CheckIcon, {
1165
1285
  className: "size-3.5"
1166
1286
  })));
1167
1287
  }
1168
1288
  __name(Checkbox, "Checkbox");
1169
1289
  function Slider({ className, defaultValue, value, min = 0, max = 100, ...props }) {
1170
- const _values = React25.useMemo(() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [
1290
+ const _values = React26.useMemo(() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [
1171
1291
  min,
1172
1292
  max
1173
1293
  ], [
@@ -1176,7 +1296,7 @@ function Slider({ className, defaultValue, value, min = 0, max = 100, ...props }
1176
1296
  min,
1177
1297
  max
1178
1298
  ]);
1179
- return /* @__PURE__ */ React25.createElement(SliderPrimitive.Root, {
1299
+ return /* @__PURE__ */ React26.createElement(SliderPrimitive.Root, {
1180
1300
  "data-slot": "slider",
1181
1301
  defaultValue,
1182
1302
  value,
@@ -1184,15 +1304,15 @@ function Slider({ className, defaultValue, value, min = 0, max = 100, ...props }
1184
1304
  max,
1185
1305
  className: cn("relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col", className),
1186
1306
  ...props
1187
- }, /* @__PURE__ */ React25.createElement(SliderPrimitive.Track, {
1307
+ }, /* @__PURE__ */ React26.createElement(SliderPrimitive.Track, {
1188
1308
  "data-slot": "slider-track",
1189
1309
  className: cn("bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5")
1190
- }, /* @__PURE__ */ React25.createElement(SliderPrimitive.Range, {
1310
+ }, /* @__PURE__ */ React26.createElement(SliderPrimitive.Range, {
1191
1311
  "data-slot": "slider-range",
1192
1312
  className: cn("bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")
1193
1313
  })), Array.from({
1194
1314
  length: _values.length
1195
- }, (_, index) => /* @__PURE__ */ React25.createElement(SliderPrimitive.Thumb, {
1315
+ }, (_, index) => /* @__PURE__ */ React26.createElement(SliderPrimitive.Thumb, {
1196
1316
  "data-slot": "slider-thumb",
1197
1317
  key: index,
1198
1318
  className: "border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"
@@ -1200,11 +1320,11 @@ function Slider({ className, defaultValue, value, min = 0, max = 100, ...props }
1200
1320
  }
1201
1321
  __name(Slider, "Slider");
1202
1322
  function Switch({ className, ...props }) {
1203
- return /* @__PURE__ */ React25.createElement(SwitchPrimitive.Root, {
1323
+ return /* @__PURE__ */ React26.createElement(SwitchPrimitive.Root, {
1204
1324
  "data-slot": "switch",
1205
1325
  className: cn("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", className),
1206
1326
  ...props
1207
- }, /* @__PURE__ */ React25.createElement(SwitchPrimitive.Thumb, {
1327
+ }, /* @__PURE__ */ React26.createElement(SwitchPrimitive.Thumb, {
1208
1328
  "data-slot": "switch-thumb",
1209
1329
  className: cn("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")
1210
1330
  }));
@@ -1222,7 +1342,7 @@ var alertVariants = cva("relative w-full rounded-lg border px-4 py-3 text-sm gri
1222
1342
  }
1223
1343
  });
1224
1344
  function Alert({ className, variant, ...props }) {
1225
- return /* @__PURE__ */ React25.createElement("div", {
1345
+ return /* @__PURE__ */ React26.createElement("div", {
1226
1346
  "data-slot": "alert",
1227
1347
  role: "alert",
1228
1348
  className: cn(alertVariants({
@@ -1233,7 +1353,7 @@ function Alert({ className, variant, ...props }) {
1233
1353
  }
1234
1354
  __name(Alert, "Alert");
1235
1355
  function AlertTitle({ className, ...props }) {
1236
- return /* @__PURE__ */ React25.createElement("div", {
1356
+ return /* @__PURE__ */ React26.createElement("div", {
1237
1357
  "data-slot": "alert-title",
1238
1358
  className: cn("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight", className),
1239
1359
  ...props
@@ -1241,7 +1361,7 @@ function AlertTitle({ className, ...props }) {
1241
1361
  }
1242
1362
  __name(AlertTitle, "AlertTitle");
1243
1363
  function AlertDescription({ className, ...props }) {
1244
- return /* @__PURE__ */ React25.createElement("div", {
1364
+ return /* @__PURE__ */ React26.createElement("div", {
1245
1365
  "data-slot": "alert-description",
1246
1366
  className: cn("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed", className),
1247
1367
  ...props
@@ -1335,7 +1455,7 @@ function ToolForm({ toolName, fields: manualFields, autoSchema = false, submitTe
1335
1455
  const value = formData[field.name];
1336
1456
  switch (field.type) {
1337
1457
  case "textarea":
1338
- return /* @__PURE__ */ React25.createElement(Textarea, {
1458
+ return /* @__PURE__ */ React26.createElement(Textarea, {
1339
1459
  id: field.name,
1340
1460
  placeholder: field.placeholder,
1341
1461
  value: value ?? "",
@@ -1344,45 +1464,45 @@ function ToolForm({ toolName, fields: manualFields, autoSchema = false, submitTe
1344
1464
  required: field.required
1345
1465
  });
1346
1466
  case "select":
1347
- return /* @__PURE__ */ React25.createElement(Select, {
1467
+ return /* @__PURE__ */ React26.createElement(Select, {
1348
1468
  value: value ?? "",
1349
1469
  onValueChange: /* @__PURE__ */ __name((v) => handleChange(field.name, v), "onValueChange"),
1350
1470
  disabled: field.disabled || loading
1351
- }, /* @__PURE__ */ React25.createElement(SelectTrigger, null, /* @__PURE__ */ React25.createElement(SelectValue, {
1471
+ }, /* @__PURE__ */ React26.createElement(SelectTrigger, null, /* @__PURE__ */ React26.createElement(SelectValue, {
1352
1472
  placeholder: field.placeholder ?? "Select..."
1353
- })), /* @__PURE__ */ React25.createElement(SelectContent, null, field.options?.map((option) => /* @__PURE__ */ React25.createElement(SelectItem, {
1473
+ })), /* @__PURE__ */ React26.createElement(SelectContent, null, field.options?.map((option) => /* @__PURE__ */ React26.createElement(SelectItem, {
1354
1474
  key: option.value,
1355
1475
  value: option.value
1356
1476
  }, option.label))));
1357
1477
  case "checkbox":
1358
- return /* @__PURE__ */ React25.createElement("div", {
1478
+ return /* @__PURE__ */ React26.createElement("div", {
1359
1479
  className: "flex items-center space-x-2"
1360
- }, /* @__PURE__ */ React25.createElement(Checkbox, {
1480
+ }, /* @__PURE__ */ React26.createElement(Checkbox, {
1361
1481
  id: field.name,
1362
1482
  checked: value ?? false,
1363
1483
  onCheckedChange: /* @__PURE__ */ __name((checked) => handleChange(field.name, checked), "onCheckedChange"),
1364
1484
  disabled: field.disabled || loading
1365
- }), /* @__PURE__ */ React25.createElement("label", {
1485
+ }), /* @__PURE__ */ React26.createElement("label", {
1366
1486
  htmlFor: field.name,
1367
1487
  className: "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
1368
1488
  }, field.label));
1369
1489
  case "switch":
1370
- return /* @__PURE__ */ React25.createElement("div", {
1490
+ return /* @__PURE__ */ React26.createElement("div", {
1371
1491
  className: "flex items-center space-x-2"
1372
- }, /* @__PURE__ */ React25.createElement(Switch, {
1492
+ }, /* @__PURE__ */ React26.createElement(Switch, {
1373
1493
  id: field.name,
1374
1494
  checked: value ?? false,
1375
1495
  onCheckedChange: /* @__PURE__ */ __name((checked) => handleChange(field.name, checked), "onCheckedChange"),
1376
1496
  disabled: field.disabled || loading
1377
- }), /* @__PURE__ */ React25.createElement(Label2, {
1497
+ }), /* @__PURE__ */ React26.createElement(Label2, {
1378
1498
  htmlFor: field.name
1379
1499
  }, field.label));
1380
1500
  case "slider":
1381
- return /* @__PURE__ */ React25.createElement("div", {
1501
+ return /* @__PURE__ */ React26.createElement("div", {
1382
1502
  className: "space-y-2"
1383
- }, /* @__PURE__ */ React25.createElement("div", {
1503
+ }, /* @__PURE__ */ React26.createElement("div", {
1384
1504
  className: "flex justify-between text-sm"
1385
- }, /* @__PURE__ */ React25.createElement("span", null, field.min ?? 0), /* @__PURE__ */ React25.createElement("span", null, value ?? field.min ?? 0), /* @__PURE__ */ React25.createElement("span", null, field.max ?? 100)), /* @__PURE__ */ React25.createElement(Slider, {
1505
+ }, /* @__PURE__ */ React26.createElement("span", null, field.min ?? 0), /* @__PURE__ */ React26.createElement("span", null, value ?? field.min ?? 0), /* @__PURE__ */ React26.createElement("span", null, field.max ?? 100)), /* @__PURE__ */ React26.createElement(Slider, {
1386
1506
  value: [
1387
1507
  value ?? field.min ?? 0
1388
1508
  ],
@@ -1393,7 +1513,7 @@ function ToolForm({ toolName, fields: manualFields, autoSchema = false, submitTe
1393
1513
  disabled: field.disabled || loading
1394
1514
  }));
1395
1515
  case "number":
1396
- return /* @__PURE__ */ React25.createElement(Input, {
1516
+ return /* @__PURE__ */ React26.createElement(Input, {
1397
1517
  id: field.name,
1398
1518
  type: "number",
1399
1519
  placeholder: field.placeholder,
@@ -1406,7 +1526,7 @@ function ToolForm({ toolName, fields: manualFields, autoSchema = false, submitTe
1406
1526
  required: field.required
1407
1527
  });
1408
1528
  default:
1409
- return /* @__PURE__ */ React25.createElement(Input, {
1529
+ return /* @__PURE__ */ React26.createElement(Input, {
1410
1530
  id: field.name,
1411
1531
  type: field.type ?? "text",
1412
1532
  placeholder: field.placeholder,
@@ -1418,38 +1538,38 @@ function ToolForm({ toolName, fields: manualFields, autoSchema = false, submitTe
1418
1538
  }
1419
1539
  }, "renderField");
1420
1540
  if (schemaLoading) {
1421
- return /* @__PURE__ */ React25.createElement("div", {
1541
+ return /* @__PURE__ */ React26.createElement("div", {
1422
1542
  className: "flex items-center justify-center p-8"
1423
- }, /* @__PURE__ */ React25.createElement(Loader2, {
1543
+ }, /* @__PURE__ */ React26.createElement(Loader2, {
1424
1544
  className: "h-6 w-6 animate-spin text-muted-foreground"
1425
1545
  }));
1426
1546
  }
1427
- return /* @__PURE__ */ React25.createElement("form", {
1547
+ return /* @__PURE__ */ React26.createElement("form", {
1428
1548
  className: cn("space-y-4", className),
1429
1549
  onSubmit: handleSubmit
1430
- }, /* @__PURE__ */ React25.createElement("div", {
1550
+ }, /* @__PURE__ */ React26.createElement("div", {
1431
1551
  className: cn("space-y-4", layout === "horizontal" && "grid grid-cols-2 gap-4")
1432
- }, fields.map((field) => /* @__PURE__ */ React25.createElement("div", {
1552
+ }, fields.map((field) => /* @__PURE__ */ React26.createElement("div", {
1433
1553
  key: field.name,
1434
1554
  className: "space-y-2"
1435
- }, field.type !== "checkbox" && field.type !== "switch" && /* @__PURE__ */ React25.createElement(Label2, {
1555
+ }, field.type !== "checkbox" && field.type !== "switch" && /* @__PURE__ */ React26.createElement(Label2, {
1436
1556
  htmlFor: field.name
1437
- }, field.label, field.required && /* @__PURE__ */ React25.createElement("span", {
1557
+ }, field.label, field.required && /* @__PURE__ */ React26.createElement("span", {
1438
1558
  className: "text-destructive ml-1"
1439
- }, "*")), renderField(field), field.description && /* @__PURE__ */ React25.createElement("p", {
1559
+ }, "*")), renderField(field), field.description && /* @__PURE__ */ React26.createElement("p", {
1440
1560
  className: "text-sm text-muted-foreground"
1441
- }, field.description)))), /* @__PURE__ */ React25.createElement("div", {
1561
+ }, field.description)))), /* @__PURE__ */ React26.createElement("div", {
1442
1562
  className: "flex items-center gap-2"
1443
- }, /* @__PURE__ */ React25.createElement(Button, {
1563
+ }, /* @__PURE__ */ React26.createElement(Button, {
1444
1564
  type: "submit",
1445
1565
  disabled: loading
1446
- }, loading ? /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(Loader2, {
1566
+ }, loading ? /* @__PURE__ */ React26.createElement(React26.Fragment, null, /* @__PURE__ */ React26.createElement(Loader2, {
1447
1567
  className: "h-4 w-4 animate-spin mr-2"
1448
- }), loadingText ?? "Submitting...") : submitText)), error && /* @__PURE__ */ React25.createElement(Alert, {
1568
+ }), loadingText ?? "Submitting...") : submitText)), error && /* @__PURE__ */ React26.createElement(Alert, {
1449
1569
  variant: "destructive"
1450
- }, /* @__PURE__ */ React25.createElement(AlertDescription, null, error.message)), showResult && result !== null && /* @__PURE__ */ React25.createElement("div", {
1570
+ }, /* @__PURE__ */ React26.createElement(AlertDescription, null, error.message)), showResult && result !== null && /* @__PURE__ */ React26.createElement("div", {
1451
1571
  className: "rounded-md bg-muted p-4"
1452
- }, /* @__PURE__ */ React25.createElement("pre", {
1572
+ }, /* @__PURE__ */ React26.createElement("pre", {
1453
1573
  className: "text-sm overflow-auto"
1454
1574
  }, JSON.stringify(result, null, 2))));
1455
1575
  }
@@ -1572,7 +1692,7 @@ function useResource(uri, options = {}) {
1572
1692
  }
1573
1693
  __name(useResource, "useResource");
1574
1694
  function Skeleton({ className, ...props }) {
1575
- return /* @__PURE__ */ React25__default.createElement("div", {
1695
+ return /* @__PURE__ */ React26__default.createElement("div", {
1576
1696
  "data-slot": "skeleton",
1577
1697
  className: cn("bg-accent animate-pulse rounded-md", className),
1578
1698
  ...props
@@ -1582,30 +1702,30 @@ __name(Skeleton, "Skeleton");
1582
1702
 
1583
1703
  // src/mcp/ResourceView.tsx
1584
1704
  function DefaultLoading() {
1585
- return /* @__PURE__ */ React25.createElement("div", {
1705
+ return /* @__PURE__ */ React26.createElement("div", {
1586
1706
  className: "flex flex-col gap-3 p-4"
1587
- }, /* @__PURE__ */ React25.createElement(Skeleton, {
1707
+ }, /* @__PURE__ */ React26.createElement(Skeleton, {
1588
1708
  className: "h-4 w-3/4"
1589
- }), /* @__PURE__ */ React25.createElement(Skeleton, {
1709
+ }), /* @__PURE__ */ React26.createElement(Skeleton, {
1590
1710
  className: "h-4 w-1/2"
1591
- }), /* @__PURE__ */ React25.createElement(Skeleton, {
1711
+ }), /* @__PURE__ */ React26.createElement(Skeleton, {
1592
1712
  className: "h-20 w-full"
1593
1713
  }));
1594
1714
  }
1595
1715
  __name(DefaultLoading, "DefaultLoading");
1596
1716
  function DefaultError({ error, onRetry }) {
1597
- return /* @__PURE__ */ React25.createElement(Alert, {
1717
+ return /* @__PURE__ */ React26.createElement(Alert, {
1598
1718
  variant: "destructive"
1599
- }, /* @__PURE__ */ React25.createElement(AlertCircle, {
1719
+ }, /* @__PURE__ */ React26.createElement(AlertCircle, {
1600
1720
  className: "h-4 w-4"
1601
- }), /* @__PURE__ */ React25.createElement(AlertTitle, null, "Error loading resource"), /* @__PURE__ */ React25.createElement(AlertDescription, {
1721
+ }), /* @__PURE__ */ React26.createElement(AlertTitle, null, "Error loading resource"), /* @__PURE__ */ React26.createElement(AlertDescription, {
1602
1722
  className: "flex flex-col gap-2"
1603
- }, /* @__PURE__ */ React25.createElement("span", null, error.message), /* @__PURE__ */ React25.createElement(Button, {
1723
+ }, /* @__PURE__ */ React26.createElement("span", null, error.message), /* @__PURE__ */ React26.createElement(Button, {
1604
1724
  variant: "outline",
1605
1725
  size: "sm",
1606
1726
  onClick: onRetry,
1607
1727
  className: "w-fit"
1608
- }, /* @__PURE__ */ React25.createElement(RefreshCw, {
1728
+ }, /* @__PURE__ */ React26.createElement(RefreshCw, {
1609
1729
  className: "h-4 w-4 mr-2"
1610
1730
  }), "Retry")));
1611
1731
  }
@@ -1625,42 +1745,42 @@ function ResourceView({ uri, refreshInterval, subscribe, transform, loading: loa
1625
1745
  };
1626
1746
  if (loading && data === null) {
1627
1747
  if (loadingContent) {
1628
- return /* @__PURE__ */ React25.createElement("div", {
1748
+ return /* @__PURE__ */ React26.createElement("div", {
1629
1749
  className
1630
1750
  }, loadingContent);
1631
1751
  }
1632
- return /* @__PURE__ */ React25.createElement("div", {
1752
+ return /* @__PURE__ */ React26.createElement("div", {
1633
1753
  className: cn("flex items-center justify-center p-8", className)
1634
- }, /* @__PURE__ */ React25.createElement(Loader2, {
1754
+ }, /* @__PURE__ */ React26.createElement(Loader2, {
1635
1755
  className: "h-8 w-8 animate-spin text-muted-foreground"
1636
1756
  }));
1637
1757
  }
1638
1758
  if (error && data === null) {
1639
1759
  if (errorContent) {
1640
1760
  if (typeof errorContent === "function") {
1641
- return /* @__PURE__ */ React25.createElement("div", {
1761
+ return /* @__PURE__ */ React26.createElement("div", {
1642
1762
  className
1643
1763
  }, errorContent(error, refresh));
1644
1764
  }
1645
- return /* @__PURE__ */ React25.createElement("div", {
1765
+ return /* @__PURE__ */ React26.createElement("div", {
1646
1766
  className
1647
1767
  }, errorContent);
1648
1768
  }
1649
- return /* @__PURE__ */ React25.createElement("div", {
1769
+ return /* @__PURE__ */ React26.createElement("div", {
1650
1770
  className
1651
- }, /* @__PURE__ */ React25.createElement(DefaultError, {
1771
+ }, /* @__PURE__ */ React26.createElement(DefaultError, {
1652
1772
  error,
1653
1773
  onRetry: refresh
1654
1774
  }));
1655
1775
  }
1656
1776
  if (data !== null) {
1657
- return /* @__PURE__ */ React25.createElement("div", {
1777
+ return /* @__PURE__ */ React26.createElement("div", {
1658
1778
  className
1659
1779
  }, children(data, meta));
1660
1780
  }
1661
- return /* @__PURE__ */ React25.createElement("div", {
1781
+ return /* @__PURE__ */ React26.createElement("div", {
1662
1782
  className
1663
- }, loadingContent ?? /* @__PURE__ */ React25.createElement(DefaultLoading, null));
1783
+ }, loadingContent ?? /* @__PURE__ */ React26.createElement(DefaultLoading, null));
1664
1784
  }
1665
1785
  __name(ResourceView, "ResourceView");
1666
1786
  function useToolStream(options = {}) {
@@ -1709,11 +1829,11 @@ function useToolStream(options = {}) {
1709
1829
  }
1710
1830
  __name(useToolStream, "useToolStream");
1711
1831
  function Progress({ className, value, ...props }) {
1712
- return /* @__PURE__ */ React25.createElement(ProgressPrimitive.Root, {
1832
+ return /* @__PURE__ */ React26.createElement(ProgressPrimitive.Root, {
1713
1833
  "data-slot": "progress",
1714
1834
  className: cn("bg-primary/20 relative h-2 w-full overflow-hidden rounded-full", className),
1715
1835
  ...props
1716
- }, /* @__PURE__ */ React25.createElement(ProgressPrimitive.Indicator, {
1836
+ }, /* @__PURE__ */ React26.createElement(ProgressPrimitive.Indicator, {
1717
1837
  "data-slot": "progress-indicator",
1718
1838
  className: "bg-primary h-full w-full flex-1 transition-all",
1719
1839
  style: {
@@ -1732,44 +1852,44 @@ function StreamingContent({ fallback, showProgress = false, progress: externalPr
1732
1852
  const data = complete ?? partial;
1733
1853
  if (!data) {
1734
1854
  if (fallback) {
1735
- return /* @__PURE__ */ React25.createElement("div", {
1855
+ return /* @__PURE__ */ React26.createElement("div", {
1736
1856
  className
1737
1857
  }, fallback);
1738
1858
  }
1739
- return /* @__PURE__ */ React25.createElement("div", {
1859
+ return /* @__PURE__ */ React26.createElement("div", {
1740
1860
  className: cn("flex items-center justify-center p-8", className)
1741
- }, /* @__PURE__ */ React25.createElement(Loader2, {
1861
+ }, /* @__PURE__ */ React26.createElement(Loader2, {
1742
1862
  className: "h-6 w-6 animate-spin text-muted-foreground"
1743
1863
  }));
1744
1864
  }
1745
1865
  const streamingClasses = cn(streamingStyle === "opacity" && isStreaming && "opacity-70", streamingStyle === "blur" && isStreaming && "blur-[1px]");
1746
- return /* @__PURE__ */ React25.createElement("div", {
1866
+ return /* @__PURE__ */ React26.createElement("div", {
1747
1867
  className: cn("relative", className)
1748
- }, showProgress && isStreaming && /* @__PURE__ */ React25.createElement("div", {
1868
+ }, showProgress && isStreaming && /* @__PURE__ */ React26.createElement("div", {
1749
1869
  className: "absolute top-0 left-0 right-0 z-10"
1750
- }, externalProgress !== void 0 ? /* @__PURE__ */ React25.createElement(Progress, {
1870
+ }, externalProgress !== void 0 ? /* @__PURE__ */ React26.createElement(Progress, {
1751
1871
  value: externalProgress,
1752
1872
  className: "h-1"
1753
- }) : /* @__PURE__ */ React25.createElement("div", {
1873
+ }) : /* @__PURE__ */ React26.createElement("div", {
1754
1874
  className: "h-1 bg-primary/20 overflow-hidden"
1755
- }, /* @__PURE__ */ React25.createElement("div", {
1875
+ }, /* @__PURE__ */ React26.createElement("div", {
1756
1876
  className: "h-full w-1/3 bg-primary animate-[shimmer_1s_infinite]"
1757
- }))), isStreaming && /* @__PURE__ */ React25.createElement("div", {
1877
+ }))), isStreaming && /* @__PURE__ */ React26.createElement("div", {
1758
1878
  className: "absolute top-2 right-2 z-10"
1759
- }, /* @__PURE__ */ React25.createElement("div", {
1879
+ }, /* @__PURE__ */ React26.createElement("div", {
1760
1880
  className: "flex items-center gap-1 px-2 py-1 rounded-full bg-muted text-muted-foreground text-xs"
1761
- }, /* @__PURE__ */ React25.createElement(Loader2, {
1881
+ }, /* @__PURE__ */ React26.createElement(Loader2, {
1762
1882
  className: "h-3 w-3 animate-spin"
1763
- }), /* @__PURE__ */ React25.createElement("span", null, "Streaming..."))), /* @__PURE__ */ React25.createElement("div", {
1883
+ }), /* @__PURE__ */ React26.createElement("span", null, "Streaming..."))), /* @__PURE__ */ React26.createElement("div", {
1764
1884
  className: cn("transition-all duration-200", streamingClasses)
1765
1885
  }, children(data, isComplete)));
1766
1886
  }
1767
1887
  __name(StreamingContent, "StreamingContent");
1768
1888
  function Table({ className, ...props }) {
1769
- return /* @__PURE__ */ React25.createElement("div", {
1889
+ return /* @__PURE__ */ React26.createElement("div", {
1770
1890
  "data-slot": "table-container",
1771
1891
  className: "relative w-full overflow-x-auto"
1772
- }, /* @__PURE__ */ React25.createElement("table", {
1892
+ }, /* @__PURE__ */ React26.createElement("table", {
1773
1893
  "data-slot": "table",
1774
1894
  className: cn("w-full caption-bottom text-sm", className),
1775
1895
  ...props
@@ -1777,7 +1897,7 @@ function Table({ className, ...props }) {
1777
1897
  }
1778
1898
  __name(Table, "Table");
1779
1899
  function TableHeader({ className, ...props }) {
1780
- return /* @__PURE__ */ React25.createElement("thead", {
1900
+ return /* @__PURE__ */ React26.createElement("thead", {
1781
1901
  "data-slot": "table-header",
1782
1902
  className: cn("[&_tr]:border-b", className),
1783
1903
  ...props
@@ -1785,7 +1905,7 @@ function TableHeader({ className, ...props }) {
1785
1905
  }
1786
1906
  __name(TableHeader, "TableHeader");
1787
1907
  function TableBody({ className, ...props }) {
1788
- return /* @__PURE__ */ React25.createElement("tbody", {
1908
+ return /* @__PURE__ */ React26.createElement("tbody", {
1789
1909
  "data-slot": "table-body",
1790
1910
  className: cn("[&_tr:last-child]:border-0", className),
1791
1911
  ...props
@@ -1793,7 +1913,7 @@ function TableBody({ className, ...props }) {
1793
1913
  }
1794
1914
  __name(TableBody, "TableBody");
1795
1915
  function TableFooter({ className, ...props }) {
1796
- return /* @__PURE__ */ React25.createElement("tfoot", {
1916
+ return /* @__PURE__ */ React26.createElement("tfoot", {
1797
1917
  "data-slot": "table-footer",
1798
1918
  className: cn("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0", className),
1799
1919
  ...props
@@ -1801,7 +1921,7 @@ function TableFooter({ className, ...props }) {
1801
1921
  }
1802
1922
  __name(TableFooter, "TableFooter");
1803
1923
  function TableRow({ className, ...props }) {
1804
- return /* @__PURE__ */ React25.createElement("tr", {
1924
+ return /* @__PURE__ */ React26.createElement("tr", {
1805
1925
  "data-slot": "table-row",
1806
1926
  className: cn("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", className),
1807
1927
  ...props
@@ -1809,7 +1929,7 @@ function TableRow({ className, ...props }) {
1809
1929
  }
1810
1930
  __name(TableRow, "TableRow");
1811
1931
  function TableHead({ className, ...props }) {
1812
- return /* @__PURE__ */ React25.createElement("th", {
1932
+ return /* @__PURE__ */ React26.createElement("th", {
1813
1933
  "data-slot": "table-head",
1814
1934
  className: cn("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", className),
1815
1935
  ...props
@@ -1817,7 +1937,7 @@ function TableHead({ className, ...props }) {
1817
1937
  }
1818
1938
  __name(TableHead, "TableHead");
1819
1939
  function TableCell({ className, ...props }) {
1820
- return /* @__PURE__ */ React25.createElement("td", {
1940
+ return /* @__PURE__ */ React26.createElement("td", {
1821
1941
  "data-slot": "table-cell",
1822
1942
  className: cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", className),
1823
1943
  ...props
@@ -1825,7 +1945,7 @@ function TableCell({ className, ...props }) {
1825
1945
  }
1826
1946
  __name(TableCell, "TableCell");
1827
1947
  function TableCaption({ className, ...props }) {
1828
- return /* @__PURE__ */ React25.createElement("caption", {
1948
+ return /* @__PURE__ */ React26.createElement("caption", {
1829
1949
  "data-slot": "table-caption",
1830
1950
  className: cn("text-muted-foreground mt-4 text-sm", className),
1831
1951
  ...props
@@ -1894,8 +2014,8 @@ function ToolDataGrid({ dataTool, columns, transformData, rowActions = [], pagin
1894
2014
  paginationState,
1895
2015
  sortState
1896
2016
  ]);
1897
- const initialFetchDone = React25.useRef(false);
1898
- const prevStateRef = React25.useRef({
2017
+ const initialFetchDone = React26.useRef(false);
2018
+ const prevStateRef = React26.useRef({
1899
2019
  pagination: paginationState,
1900
2020
  sort: sortState
1901
2021
  });
@@ -1951,129 +2071,129 @@ function ToolDataGrid({ dataTool, columns, transformData, rowActions = [], pagin
1951
2071
  const canNextPage = paginationState.page < totalPages;
1952
2072
  const getSortIcon = /* @__PURE__ */ __name((column) => {
1953
2073
  if (sortState.column !== column) {
1954
- return /* @__PURE__ */ React25.createElement(ArrowUpDown, {
2074
+ return /* @__PURE__ */ React26.createElement(ArrowUpDown, {
1955
2075
  className: "h-4 w-4"
1956
2076
  });
1957
2077
  }
1958
- return sortState.direction === "asc" ? /* @__PURE__ */ React25.createElement(ArrowUp, {
2078
+ return sortState.direction === "asc" ? /* @__PURE__ */ React26.createElement(ArrowUp, {
1959
2079
  className: "h-4 w-4"
1960
- }) : /* @__PURE__ */ React25.createElement(ArrowDown, {
2080
+ }) : /* @__PURE__ */ React26.createElement(ArrowDown, {
1961
2081
  className: "h-4 w-4"
1962
2082
  });
1963
2083
  }, "getSortIcon");
1964
2084
  const renderLoading = /* @__PURE__ */ __name(() => {
1965
2085
  if (loadingContent) return loadingContent;
1966
- return /* @__PURE__ */ React25.createElement("div", {
2086
+ return /* @__PURE__ */ React26.createElement("div", {
1967
2087
  className: "space-y-2"
1968
2088
  }, Array.from({
1969
2089
  length: 5
1970
- }).map((_, i) => /* @__PURE__ */ React25.createElement(Skeleton, {
2090
+ }).map((_, i) => /* @__PURE__ */ React26.createElement(Skeleton, {
1971
2091
  key: i,
1972
2092
  className: "h-12 w-full"
1973
2093
  })));
1974
2094
  }, "renderLoading");
1975
2095
  const renderEmpty = /* @__PURE__ */ __name(() => {
1976
2096
  if (emptyContent) return emptyContent;
1977
- return /* @__PURE__ */ React25.createElement("div", {
2097
+ return /* @__PURE__ */ React26.createElement("div", {
1978
2098
  className: "flex flex-col items-center justify-center py-12 text-muted-foreground"
1979
- }, /* @__PURE__ */ React25.createElement("p", {
2099
+ }, /* @__PURE__ */ React26.createElement("p", {
1980
2100
  className: "text-lg"
1981
- }, "No data found"), /* @__PURE__ */ React25.createElement(Button, {
2101
+ }, "No data found"), /* @__PURE__ */ React26.createElement(Button, {
1982
2102
  variant: "ghost",
1983
2103
  size: "sm",
1984
2104
  onClick: fetchData,
1985
2105
  className: "mt-2"
1986
- }, /* @__PURE__ */ React25.createElement(RefreshCw, {
2106
+ }, /* @__PURE__ */ React26.createElement(RefreshCw, {
1987
2107
  className: "h-4 w-4 mr-2"
1988
2108
  }), "Refresh"));
1989
2109
  }, "renderEmpty");
1990
- return /* @__PURE__ */ React25.createElement("div", {
2110
+ return /* @__PURE__ */ React26.createElement("div", {
1991
2111
  className: cn("space-y-4", className)
1992
- }, showRefresh && /* @__PURE__ */ React25.createElement("div", {
2112
+ }, showRefresh && /* @__PURE__ */ React26.createElement("div", {
1993
2113
  className: "flex items-center justify-end gap-2"
1994
- }, /* @__PURE__ */ React25.createElement(Button, {
2114
+ }, /* @__PURE__ */ React26.createElement(Button, {
1995
2115
  variant: "outline",
1996
2116
  size: "sm",
1997
2117
  onClick: fetchData,
1998
2118
  disabled: loading
1999
- }, loading ? /* @__PURE__ */ React25.createElement(Loader2, {
2119
+ }, loading ? /* @__PURE__ */ React26.createElement(Loader2, {
2000
2120
  className: "h-4 w-4 animate-spin"
2001
- }) : /* @__PURE__ */ React25.createElement(RefreshCw, {
2121
+ }) : /* @__PURE__ */ React26.createElement(RefreshCw, {
2002
2122
  className: "h-4 w-4"
2003
- }), /* @__PURE__ */ React25.createElement("span", {
2123
+ }), /* @__PURE__ */ React26.createElement("span", {
2004
2124
  className: "ml-2"
2005
- }, "Refresh"))), /* @__PURE__ */ React25.createElement("div", {
2125
+ }, "Refresh"))), /* @__PURE__ */ React26.createElement("div", {
2006
2126
  className: "rounded-md border"
2007
- }, loading && data.rows.length === 0 ? /* @__PURE__ */ React25.createElement("div", {
2127
+ }, loading && data.rows.length === 0 ? /* @__PURE__ */ React26.createElement("div", {
2008
2128
  className: "p-4"
2009
- }, renderLoading()) : data.rows.length === 0 ? renderEmpty() : /* @__PURE__ */ React25.createElement(Table, null, /* @__PURE__ */ React25.createElement(TableHeader, null, /* @__PURE__ */ React25.createElement(TableRow, null, columns.map((column) => /* @__PURE__ */ React25.createElement(TableHead, {
2129
+ }, renderLoading()) : data.rows.length === 0 ? renderEmpty() : /* @__PURE__ */ React26.createElement(Table, null, /* @__PURE__ */ React26.createElement(TableHeader, null, /* @__PURE__ */ React26.createElement(TableRow, null, columns.map((column) => /* @__PURE__ */ React26.createElement(TableHead, {
2010
2130
  key: column.key,
2011
2131
  style: {
2012
2132
  width: column.width
2013
2133
  },
2014
2134
  className: cn(column.align === "center" && "text-center", column.align === "right" && "text-right", column.hideMobile && "hidden md:table-cell")
2015
- }, column.sortable ? /* @__PURE__ */ React25.createElement(Button, {
2135
+ }, column.sortable ? /* @__PURE__ */ React26.createElement(Button, {
2016
2136
  variant: "ghost",
2017
2137
  size: "sm",
2018
2138
  onClick: /* @__PURE__ */ __name(() => handleSort(column.key), "onClick"),
2019
2139
  className: "-ml-3"
2020
- }, column.header, getSortIcon(column.key)) : column.header)), rowActions.length > 0 && /* @__PURE__ */ React25.createElement(TableHead, {
2140
+ }, column.header, getSortIcon(column.key)) : column.header)), rowActions.length > 0 && /* @__PURE__ */ React26.createElement(TableHead, {
2021
2141
  className: "w-[100px]"
2022
- }, "Actions"))), /* @__PURE__ */ React25.createElement(TableBody, null, data.rows.map((row, index) => {
2142
+ }, "Actions"))), /* @__PURE__ */ React26.createElement(TableBody, null, data.rows.map((row, index) => {
2023
2143
  const key = getRowKey?.(row, index) ?? String(index);
2024
- return /* @__PURE__ */ React25.createElement(TableRow, {
2144
+ return /* @__PURE__ */ React26.createElement(TableRow, {
2025
2145
  key,
2026
2146
  onClick: /* @__PURE__ */ __name(() => onRowClick?.(row, index), "onClick"),
2027
2147
  className: onRowClick ? "cursor-pointer" : void 0
2028
2148
  }, columns.map((column) => {
2029
2149
  const value = getNestedValue(row, column.key);
2030
- return /* @__PURE__ */ React25.createElement(TableCell, {
2150
+ return /* @__PURE__ */ React26.createElement(TableCell, {
2031
2151
  key: column.key,
2032
2152
  className: cn(column.align === "center" && "text-center", column.align === "right" && "text-right", column.hideMobile && "hidden md:table-cell")
2033
2153
  }, column.render ? column.render(value, row, index) : String(value ?? ""));
2034
- }), rowActions.length > 0 && /* @__PURE__ */ React25.createElement(TableCell, null, /* @__PURE__ */ React25.createElement("div", {
2154
+ }), rowActions.length > 0 && /* @__PURE__ */ React26.createElement(TableCell, null, /* @__PURE__ */ React26.createElement("div", {
2035
2155
  className: "flex items-center gap-1"
2036
- }, rowActions.filter((action) => !action.hidden?.(row)).map((action, actionIndex) => /* @__PURE__ */ React25.createElement(RowActionButton, {
2156
+ }, rowActions.filter((action) => !action.hidden?.(row)).map((action, actionIndex) => /* @__PURE__ */ React26.createElement(RowActionButton, {
2037
2157
  key: actionIndex,
2038
2158
  action,
2039
2159
  row,
2040
2160
  onRefresh: fetchData
2041
2161
  })))));
2042
- })))), pagination && data.total > 0 && /* @__PURE__ */ React25.createElement("div", {
2162
+ })))), pagination && data.total > 0 && /* @__PURE__ */ React26.createElement("div", {
2043
2163
  className: "flex items-center justify-between"
2044
- }, /* @__PURE__ */ React25.createElement("div", {
2164
+ }, /* @__PURE__ */ React26.createElement("div", {
2045
2165
  className: "text-sm text-muted-foreground"
2046
- }, "Showing ", (paginationState.page - 1) * paginationState.pageSize + 1, " to", " ", Math.min(paginationState.page * paginationState.pageSize, data.total), " of", " ", data.total, " results"), /* @__PURE__ */ React25.createElement("div", {
2166
+ }, "Showing ", (paginationState.page - 1) * paginationState.pageSize + 1, " to", " ", Math.min(paginationState.page * paginationState.pageSize, data.total), " of", " ", data.total, " results"), /* @__PURE__ */ React26.createElement("div", {
2047
2167
  className: "flex items-center gap-4"
2048
- }, /* @__PURE__ */ React25.createElement("div", {
2168
+ }, /* @__PURE__ */ React26.createElement("div", {
2049
2169
  className: "flex items-center gap-2"
2050
- }, /* @__PURE__ */ React25.createElement("span", {
2170
+ }, /* @__PURE__ */ React26.createElement("span", {
2051
2171
  className: "text-sm text-muted-foreground"
2052
- }, "Rows per page"), /* @__PURE__ */ React25.createElement(Select, {
2172
+ }, "Rows per page"), /* @__PURE__ */ React26.createElement(Select, {
2053
2173
  value: String(paginationState.pageSize),
2054
2174
  onValueChange: handlePageSizeChange
2055
- }, /* @__PURE__ */ React25.createElement(SelectTrigger, {
2175
+ }, /* @__PURE__ */ React26.createElement(SelectTrigger, {
2056
2176
  className: "w-[70px]"
2057
- }, /* @__PURE__ */ React25.createElement(SelectValue, null)), /* @__PURE__ */ React25.createElement(SelectContent, null, pageSizes.map((size) => /* @__PURE__ */ React25.createElement(SelectItem, {
2177
+ }, /* @__PURE__ */ React26.createElement(SelectValue, null)), /* @__PURE__ */ React26.createElement(SelectContent, null, pageSizes.map((size) => /* @__PURE__ */ React26.createElement(SelectItem, {
2058
2178
  key: size,
2059
2179
  value: String(size)
2060
- }, size))))), /* @__PURE__ */ React25.createElement("div", {
2180
+ }, size))))), /* @__PURE__ */ React26.createElement("div", {
2061
2181
  className: "flex items-center gap-2"
2062
- }, /* @__PURE__ */ React25.createElement(Button, {
2182
+ }, /* @__PURE__ */ React26.createElement(Button, {
2063
2183
  variant: "outline",
2064
2184
  size: "sm",
2065
2185
  onClick: /* @__PURE__ */ __name(() => handlePageChange(paginationState.page - 1), "onClick"),
2066
2186
  disabled: !canPreviousPage || loading
2067
- }, /* @__PURE__ */ React25.createElement(ChevronLeft, {
2187
+ }, /* @__PURE__ */ React26.createElement(ChevronLeft, {
2068
2188
  className: "h-4 w-4"
2069
- })), /* @__PURE__ */ React25.createElement("span", {
2189
+ })), /* @__PURE__ */ React26.createElement("span", {
2070
2190
  className: "text-sm"
2071
- }, "Page ", paginationState.page, " of ", totalPages), /* @__PURE__ */ React25.createElement(Button, {
2191
+ }, "Page ", paginationState.page, " of ", totalPages), /* @__PURE__ */ React26.createElement(Button, {
2072
2192
  variant: "outline",
2073
2193
  size: "sm",
2074
2194
  onClick: /* @__PURE__ */ __name(() => handlePageChange(paginationState.page + 1), "onClick"),
2075
2195
  disabled: !canNextPage || loading
2076
- }, /* @__PURE__ */ React25.createElement(ChevronRight, {
2196
+ }, /* @__PURE__ */ React26.createElement(ChevronRight, {
2077
2197
  className: "h-4 w-4"
2078
2198
  }))))));
2079
2199
  }
@@ -2105,33 +2225,33 @@ function RowActionButton({ action, row, onRefresh }) {
2105
2225
  call,
2106
2226
  args
2107
2227
  ]);
2108
- return /* @__PURE__ */ React25.createElement(Button, {
2228
+ return /* @__PURE__ */ React26.createElement(Button, {
2109
2229
  variant: action.variant ?? "ghost",
2110
2230
  size: "sm",
2111
2231
  onClick: handleClick,
2112
2232
  disabled: loading
2113
- }, loading ? /* @__PURE__ */ React25.createElement(Loader2, {
2233
+ }, loading ? /* @__PURE__ */ React26.createElement(Loader2, {
2114
2234
  className: "h-3 w-3 animate-spin"
2115
- }) : /* @__PURE__ */ React25.createElement(React25.Fragment, null, action.icon, /* @__PURE__ */ React25.createElement("span", {
2235
+ }) : /* @__PURE__ */ React26.createElement(React26.Fragment, null, action.icon, /* @__PURE__ */ React26.createElement("span", {
2116
2236
  className: action.icon ? "ml-1" : ""
2117
2237
  }, action.label)));
2118
2238
  }
2119
2239
  __name(RowActionButton, "RowActionButton");
2120
2240
  var Button2 = /* @__PURE__ */ forwardRef(({ className, variant = "primary", size = "md", loading = false, disabled, asChild = false, leftIcon, rightIcon, children, ...props }, ref) => {
2121
2241
  const Comp = asChild ? Slot : "button";
2122
- return /* @__PURE__ */ React25__default.createElement(Comp, {
2242
+ return /* @__PURE__ */ React26__default.createElement(Comp, {
2123
2243
  ref,
2124
2244
  className: clsx("lui-button", `lui-button--${variant}`, `lui-button--${size}`, loading && "lui-button--loading", className),
2125
2245
  disabled: disabled || loading,
2126
2246
  ...props
2127
- }, loading && /* @__PURE__ */ React25__default.createElement("span", {
2247
+ }, loading && /* @__PURE__ */ React26__default.createElement("span", {
2128
2248
  className: "lui-button__spinner",
2129
2249
  "aria-hidden": "true"
2130
- }, /* @__PURE__ */ React25__default.createElement("svg", {
2250
+ }, /* @__PURE__ */ React26__default.createElement("svg", {
2131
2251
  viewBox: "0 0 24 24",
2132
2252
  fill: "none",
2133
2253
  className: "lui-spinner-icon"
2134
- }, /* @__PURE__ */ React25__default.createElement("circle", {
2254
+ }, /* @__PURE__ */ React26__default.createElement("circle", {
2135
2255
  cx: "12",
2136
2256
  cy: "12",
2137
2257
  r: "10",
@@ -2140,11 +2260,11 @@ var Button2 = /* @__PURE__ */ forwardRef(({ className, variant = "primary", size
2140
2260
  strokeLinecap: "round",
2141
2261
  strokeDasharray: "32",
2142
2262
  strokeDashoffset: "12"
2143
- }))), leftIcon && !loading && /* @__PURE__ */ React25__default.createElement("span", {
2263
+ }))), leftIcon && !loading && /* @__PURE__ */ React26__default.createElement("span", {
2144
2264
  className: "lui-button__icon"
2145
- }, leftIcon), /* @__PURE__ */ React25__default.createElement("span", {
2265
+ }, leftIcon), /* @__PURE__ */ React26__default.createElement("span", {
2146
2266
  className: "lui-button__content"
2147
- }, children), rightIcon && /* @__PURE__ */ React25__default.createElement("span", {
2267
+ }, children), rightIcon && /* @__PURE__ */ React26__default.createElement("span", {
2148
2268
  className: "lui-button__icon"
2149
2269
  }, rightIcon));
2150
2270
  });
@@ -2163,103 +2283,112 @@ function ActionButton({ toolName, toolArgs = {}, onToolSuccess, onToolError, sho
2163
2283
  onToolError?.(err instanceof Error ? err : new Error(String(err)));
2164
2284
  }
2165
2285
  }, "handleClick");
2166
- return /* @__PURE__ */ React25__default.createElement("div", {
2286
+ return /* @__PURE__ */ React26__default.createElement("div", {
2167
2287
  className: "lui-action-button-wrapper"
2168
- }, /* @__PURE__ */ React25__default.createElement(Button2, {
2288
+ }, /* @__PURE__ */ React26__default.createElement(Button2, {
2169
2289
  ...buttonProps,
2170
2290
  loading,
2171
2291
  onClick: handleClick
2172
- }, children), showResult && hasResult && result !== null && /* @__PURE__ */ React25__default.createElement("div", {
2292
+ }, children), showResult && hasResult && result !== null && /* @__PURE__ */ React26__default.createElement("div", {
2173
2293
  className: "lui-action-button-result"
2174
- }, renderResult ? renderResult(result) : /* @__PURE__ */ React25__default.createElement("pre", null, JSON.stringify(result, null, 2))), error && /* @__PURE__ */ React25__default.createElement("div", {
2294
+ }, renderResult ? renderResult(result) : /* @__PURE__ */ React26__default.createElement("pre", null, JSON.stringify(result, null, 2))), error && /* @__PURE__ */ React26__default.createElement("div", {
2175
2295
  className: "lui-action-button-error"
2176
2296
  }, error.message));
2177
2297
  }
2178
2298
  __name(ActionButton, "ActionButton");
2179
2299
  function DefaultLoading2() {
2180
- return /* @__PURE__ */ React25.createElement("div", {
2300
+ return /* @__PURE__ */ React26.createElement("div", {
2181
2301
  className: "flex items-center justify-center p-8"
2182
- }, /* @__PURE__ */ React25.createElement(Loader2, {
2302
+ }, /* @__PURE__ */ React26.createElement(Loader2, {
2183
2303
  className: "h-6 w-6 animate-spin text-muted-foreground"
2184
2304
  }));
2185
2305
  }
2186
2306
  __name(DefaultLoading2, "DefaultLoading");
2187
2307
  function DefaultDisconnected() {
2188
- return /* @__PURE__ */ React25.createElement(Alert, null, /* @__PURE__ */ React25.createElement(WifiOff, {
2308
+ return /* @__PURE__ */ React26.createElement(Alert, null, /* @__PURE__ */ React26.createElement(WifiOff, {
2189
2309
  className: "h-4 w-4"
2190
- }), /* @__PURE__ */ React25.createElement(AlertDescription, null, "Waiting for connection to MCP host..."));
2310
+ }), /* @__PURE__ */ React26.createElement(AlertDescription, null, "Waiting for connection to MCP host..."));
2191
2311
  }
2192
2312
  __name(DefaultDisconnected, "DefaultDisconnected");
2193
2313
  function DefaultError2({ error }) {
2194
- return /* @__PURE__ */ React25.createElement(Alert, {
2314
+ return /* @__PURE__ */ React26.createElement(Alert, {
2195
2315
  variant: "destructive"
2196
- }, /* @__PURE__ */ React25.createElement(AlertCircle, {
2316
+ }, /* @__PURE__ */ React26.createElement(AlertCircle, {
2197
2317
  className: "h-4 w-4"
2198
- }), /* @__PURE__ */ React25.createElement(AlertDescription, null, "Connection error: ", error.message));
2318
+ }), /* @__PURE__ */ React26.createElement(AlertDescription, null, "Connection error: ", error.message));
2199
2319
  }
2200
2320
  __name(DefaultError2, "DefaultError");
2201
2321
  function RequireConnection({ loading: loadingContent, error: errorContent, disconnected: disconnectedContent, children, className }) {
2202
2322
  const { isConnected, error, app } = useMcpApp();
2323
+ console.log("[RequireConnection] State:", {
2324
+ hasApp: !!app,
2325
+ isConnected,
2326
+ hasError: !!error
2327
+ });
2203
2328
  if (!app && !error && !isConnected) {
2329
+ console.log("[RequireConnection] Rendering: Initial Loading");
2204
2330
  if (loadingContent) {
2205
- return /* @__PURE__ */ React25.createElement("div", {
2331
+ return /* @__PURE__ */ React26.createElement("div", {
2206
2332
  className
2207
2333
  }, loadingContent);
2208
2334
  }
2209
- return /* @__PURE__ */ React25.createElement("div", {
2335
+ return /* @__PURE__ */ React26.createElement("div", {
2210
2336
  className
2211
- }, /* @__PURE__ */ React25.createElement(DefaultLoading2, null));
2337
+ }, /* @__PURE__ */ React26.createElement(DefaultLoading2, null));
2212
2338
  }
2213
2339
  if (error) {
2340
+ console.log("[RequireConnection] Rendering: Error");
2214
2341
  if (errorContent) {
2215
2342
  if (typeof errorContent === "function") {
2216
- return /* @__PURE__ */ React25.createElement("div", {
2343
+ return /* @__PURE__ */ React26.createElement("div", {
2217
2344
  className
2218
2345
  }, errorContent(error));
2219
2346
  }
2220
- return /* @__PURE__ */ React25.createElement("div", {
2347
+ return /* @__PURE__ */ React26.createElement("div", {
2221
2348
  className
2222
2349
  }, errorContent);
2223
2350
  }
2224
- return /* @__PURE__ */ React25.createElement("div", {
2351
+ return /* @__PURE__ */ React26.createElement("div", {
2225
2352
  className
2226
- }, /* @__PURE__ */ React25.createElement(DefaultError2, {
2353
+ }, /* @__PURE__ */ React26.createElement(DefaultError2, {
2227
2354
  error
2228
2355
  }));
2229
2356
  }
2230
2357
  if (!isConnected) {
2358
+ console.log("[RequireConnection] Rendering: Disconnected/Loading");
2231
2359
  if (disconnectedContent) {
2232
- return /* @__PURE__ */ React25.createElement("div", {
2360
+ return /* @__PURE__ */ React26.createElement("div", {
2233
2361
  className
2234
2362
  }, disconnectedContent);
2235
2363
  }
2236
2364
  if (loadingContent) {
2237
- return /* @__PURE__ */ React25.createElement("div", {
2365
+ return /* @__PURE__ */ React26.createElement("div", {
2238
2366
  className
2239
2367
  }, loadingContent);
2240
2368
  }
2241
- return /* @__PURE__ */ React25.createElement("div", {
2369
+ return /* @__PURE__ */ React26.createElement("div", {
2242
2370
  className
2243
- }, /* @__PURE__ */ React25.createElement(DefaultDisconnected, null));
2371
+ }, /* @__PURE__ */ React26.createElement(DefaultDisconnected, null));
2244
2372
  }
2245
- return /* @__PURE__ */ React25.createElement(React25.Fragment, null, children);
2373
+ console.log("[RequireConnection] Rendering: Children (Connected)");
2374
+ return /* @__PURE__ */ React26.createElement(React26.Fragment, null, children);
2246
2375
  }
2247
2376
  __name(RequireConnection, "RequireConnection");
2248
2377
  function DefaultFallback({ error, onRetry }) {
2249
- return /* @__PURE__ */ React25.createElement(Alert, {
2378
+ return /* @__PURE__ */ React26.createElement(Alert, {
2250
2379
  variant: "destructive"
2251
- }, /* @__PURE__ */ React25.createElement(AlertCircle, {
2380
+ }, /* @__PURE__ */ React26.createElement(AlertCircle, {
2252
2381
  className: "h-4 w-4"
2253
- }), /* @__PURE__ */ React25.createElement(AlertTitle, null, "Something went wrong"), /* @__PURE__ */ React25.createElement(AlertDescription, {
2382
+ }), /* @__PURE__ */ React26.createElement(AlertTitle, null, "Something went wrong"), /* @__PURE__ */ React26.createElement(AlertDescription, {
2254
2383
  className: "flex flex-col gap-3"
2255
- }, /* @__PURE__ */ React25.createElement("p", {
2384
+ }, /* @__PURE__ */ React26.createElement("p", {
2256
2385
  className: "text-sm"
2257
- }, error.message), /* @__PURE__ */ React25.createElement(Button, {
2386
+ }, error.message), /* @__PURE__ */ React26.createElement(Button, {
2258
2387
  variant: "outline",
2259
2388
  size: "sm",
2260
2389
  onClick: onRetry,
2261
2390
  className: "w-fit"
2262
- }, /* @__PURE__ */ React25.createElement(RefreshCw, {
2391
+ }, /* @__PURE__ */ React26.createElement(RefreshCw, {
2263
2392
  className: "h-4 w-4 mr-2"
2264
2393
  }), "Try Again")));
2265
2394
  }
@@ -2305,7 +2434,7 @@ var ToolErrorBoundary = class extends Component {
2305
2434
  }
2306
2435
  return fallback;
2307
2436
  }
2308
- return /* @__PURE__ */ React25.createElement(DefaultFallback, {
2437
+ return /* @__PURE__ */ React26.createElement(DefaultFallback, {
2309
2438
  error,
2310
2439
  onRetry: this.reset
2311
2440
  });
@@ -2522,7 +2651,7 @@ var INITIAL_TOOL_STATE = {
2522
2651
  hasResult: false
2523
2652
  };
2524
2653
  function CardTitle({ className, ...props }) {
2525
- return /* @__PURE__ */ React25.createElement("div", {
2654
+ return /* @__PURE__ */ React26.createElement("div", {
2526
2655
  "data-slot": "card-title",
2527
2656
  className: cn("leading-none font-semibold", className),
2528
2657
  ...props
@@ -2530,7 +2659,7 @@ function CardTitle({ className, ...props }) {
2530
2659
  }
2531
2660
  __name(CardTitle, "CardTitle");
2532
2661
  function CardDescription({ className, ...props }) {
2533
- return /* @__PURE__ */ React25.createElement("div", {
2662
+ return /* @__PURE__ */ React26.createElement("div", {
2534
2663
  "data-slot": "card-description",
2535
2664
  className: cn("text-muted-foreground text-sm", className),
2536
2665
  ...props
@@ -2538,17 +2667,17 @@ function CardDescription({ className, ...props }) {
2538
2667
  }
2539
2668
  __name(CardDescription, "CardDescription");
2540
2669
  var Form = FormProvider;
2541
- var FormFieldContext = /* @__PURE__ */ React25.createContext({});
2670
+ var FormFieldContext = /* @__PURE__ */ React26.createContext({});
2542
2671
  var FormField = /* @__PURE__ */ __name(({ ...props }) => {
2543
- return /* @__PURE__ */ React25.createElement(FormFieldContext.Provider, {
2672
+ return /* @__PURE__ */ React26.createElement(FormFieldContext.Provider, {
2544
2673
  value: {
2545
2674
  name: props.name
2546
2675
  }
2547
- }, /* @__PURE__ */ React25.createElement(Controller, props));
2676
+ }, /* @__PURE__ */ React26.createElement(Controller, props));
2548
2677
  }, "FormField");
2549
2678
  var useFormField = /* @__PURE__ */ __name(() => {
2550
- const fieldContext = React25.useContext(FormFieldContext);
2551
- const itemContext = React25.useContext(FormItemContext);
2679
+ const fieldContext = React26.useContext(FormFieldContext);
2680
+ const itemContext = React26.useContext(FormItemContext);
2552
2681
  const { getFieldState } = useFormContext();
2553
2682
  const formState = useFormState({
2554
2683
  name: fieldContext.name
@@ -2567,14 +2696,14 @@ var useFormField = /* @__PURE__ */ __name(() => {
2567
2696
  ...fieldState
2568
2697
  };
2569
2698
  }, "useFormField");
2570
- var FormItemContext = /* @__PURE__ */ React25.createContext({});
2699
+ var FormItemContext = /* @__PURE__ */ React26.createContext({});
2571
2700
  function FormItem({ className, ...props }) {
2572
- const id = React25.useId();
2573
- return /* @__PURE__ */ React25.createElement(FormItemContext.Provider, {
2701
+ const id = React26.useId();
2702
+ return /* @__PURE__ */ React26.createElement(FormItemContext.Provider, {
2574
2703
  value: {
2575
2704
  id
2576
2705
  }
2577
- }, /* @__PURE__ */ React25.createElement("div", {
2706
+ }, /* @__PURE__ */ React26.createElement("div", {
2578
2707
  "data-slot": "form-item",
2579
2708
  className: cn("grid gap-2", className),
2580
2709
  ...props
@@ -2583,7 +2712,7 @@ function FormItem({ className, ...props }) {
2583
2712
  __name(FormItem, "FormItem");
2584
2713
  function FormLabel({ className, ...props }) {
2585
2714
  const { error, formItemId } = useFormField();
2586
- return /* @__PURE__ */ React25.createElement(Label2, {
2715
+ return /* @__PURE__ */ React26.createElement(Label2, {
2587
2716
  "data-slot": "form-label",
2588
2717
  "data-error": !!error,
2589
2718
  className: cn("data-[error=true]:text-destructive", className),
@@ -2594,7 +2723,7 @@ function FormLabel({ className, ...props }) {
2594
2723
  __name(FormLabel, "FormLabel");
2595
2724
  function FormControl({ ...props }) {
2596
2725
  const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
2597
- return /* @__PURE__ */ React25.createElement(Slot, {
2726
+ return /* @__PURE__ */ React26.createElement(Slot, {
2598
2727
  "data-slot": "form-control",
2599
2728
  id: formItemId,
2600
2729
  "aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
@@ -2605,7 +2734,7 @@ function FormControl({ ...props }) {
2605
2734
  __name(FormControl, "FormControl");
2606
2735
  function FormDescription({ className, ...props }) {
2607
2736
  const { formDescriptionId } = useFormField();
2608
- return /* @__PURE__ */ React25.createElement("p", {
2737
+ return /* @__PURE__ */ React26.createElement("p", {
2609
2738
  "data-slot": "form-description",
2610
2739
  id: formDescriptionId,
2611
2740
  className: cn("text-muted-foreground text-sm", className),
@@ -2619,7 +2748,7 @@ function FormMessage({ className, ...props }) {
2619
2748
  if (!body) {
2620
2749
  return null;
2621
2750
  }
2622
- return /* @__PURE__ */ React25.createElement("p", {
2751
+ return /* @__PURE__ */ React26.createElement("p", {
2623
2752
  "data-slot": "form-message",
2624
2753
  id: formMessageId,
2625
2754
  className: cn("text-destructive text-sm", className),
@@ -2642,7 +2771,7 @@ var badgeVariants = cva("inline-flex items-center justify-center rounded-full bo
2642
2771
  });
2643
2772
  function Badge({ className, variant, asChild = false, ...props }) {
2644
2773
  const Comp = asChild ? Slot : "span";
2645
- return /* @__PURE__ */ React25.createElement(Comp, {
2774
+ return /* @__PURE__ */ React26.createElement(Comp, {
2646
2775
  "data-slot": "badge",
2647
2776
  className: cn(badgeVariants({
2648
2777
  variant
@@ -2652,7 +2781,7 @@ function Badge({ className, variant, asChild = false, ...props }) {
2652
2781
  }
2653
2782
  __name(Badge, "Badge");
2654
2783
  function TabsList({ className, ...props }) {
2655
- return /* @__PURE__ */ React25.createElement(TabsPrimitive2.List, {
2784
+ return /* @__PURE__ */ React26.createElement(TabsPrimitive2.List, {
2656
2785
  "data-slot": "tabs-list",
2657
2786
  className: cn("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]", className),
2658
2787
  ...props
@@ -2660,7 +2789,7 @@ function TabsList({ className, ...props }) {
2660
2789
  }
2661
2790
  __name(TabsList, "TabsList");
2662
2791
  function TabsTrigger({ className, ...props }) {
2663
- return /* @__PURE__ */ React25.createElement(TabsPrimitive2.Trigger, {
2792
+ return /* @__PURE__ */ React26.createElement(TabsPrimitive2.Trigger, {
2664
2793
  "data-slot": "tabs-trigger",
2665
2794
  className: cn("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
2666
2795
  ...props
@@ -2668,7 +2797,7 @@ function TabsTrigger({ className, ...props }) {
2668
2797
  }
2669
2798
  __name(TabsTrigger, "TabsTrigger");
2670
2799
  function TabsContent({ className, ...props }) {
2671
- return /* @__PURE__ */ React25.createElement(TabsPrimitive2.Content, {
2800
+ return /* @__PURE__ */ React26.createElement(TabsPrimitive2.Content, {
2672
2801
  "data-slot": "tabs-content",
2673
2802
  className: cn("flex-1 outline-none", className),
2674
2803
  ...props
@@ -2676,7 +2805,7 @@ function TabsContent({ className, ...props }) {
2676
2805
  }
2677
2806
  __name(TabsContent, "TabsContent");
2678
2807
  function Separator2({ className, orientation = "horizontal", decorative = true, ...props }) {
2679
- return /* @__PURE__ */ React25.createElement(SeparatorPrimitive.Root, {
2808
+ return /* @__PURE__ */ React26.createElement(SeparatorPrimitive.Root, {
2680
2809
  "data-slot": "separator",
2681
2810
  decorative,
2682
2811
  orientation,
@@ -2686,51 +2815,51 @@ function Separator2({ className, orientation = "horizontal", decorative = true,
2686
2815
  }
2687
2816
  __name(Separator2, "Separator");
2688
2817
  function ScrollArea({ className, children, ...props }) {
2689
- return /* @__PURE__ */ React25.createElement(ScrollAreaPrimitive.Root, {
2818
+ return /* @__PURE__ */ React26.createElement(ScrollAreaPrimitive.Root, {
2690
2819
  "data-slot": "scroll-area",
2691
2820
  className: cn("relative", className),
2692
2821
  ...props
2693
- }, /* @__PURE__ */ React25.createElement(ScrollAreaPrimitive.Viewport, {
2822
+ }, /* @__PURE__ */ React26.createElement(ScrollAreaPrimitive.Viewport, {
2694
2823
  "data-slot": "scroll-area-viewport",
2695
2824
  className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1"
2696
- }, children), /* @__PURE__ */ React25.createElement(ScrollBar, null), /* @__PURE__ */ React25.createElement(ScrollAreaPrimitive.Corner, null));
2825
+ }, children), /* @__PURE__ */ React26.createElement(ScrollBar, null), /* @__PURE__ */ React26.createElement(ScrollAreaPrimitive.Corner, null));
2697
2826
  }
2698
2827
  __name(ScrollArea, "ScrollArea");
2699
2828
  function ScrollBar({ className, orientation = "vertical", ...props }) {
2700
- return /* @__PURE__ */ React25.createElement(ScrollAreaPrimitive.ScrollAreaScrollbar, {
2829
+ return /* @__PURE__ */ React26.createElement(ScrollAreaPrimitive.ScrollAreaScrollbar, {
2701
2830
  "data-slot": "scroll-area-scrollbar",
2702
2831
  orientation,
2703
2832
  className: cn("flex touch-none p-px transition-colors select-none", orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent", orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent", className),
2704
2833
  ...props
2705
- }, /* @__PURE__ */ React25.createElement(ScrollAreaPrimitive.ScrollAreaThumb, {
2834
+ }, /* @__PURE__ */ React26.createElement(ScrollAreaPrimitive.ScrollAreaThumb, {
2706
2835
  "data-slot": "scroll-area-thumb",
2707
2836
  className: "bg-border relative flex-1 rounded-full"
2708
2837
  }));
2709
2838
  }
2710
2839
  __name(ScrollBar, "ScrollBar");
2711
2840
  function DropdownMenu({ ...props }) {
2712
- return /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.Root, {
2841
+ return /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.Root, {
2713
2842
  "data-slot": "dropdown-menu",
2714
2843
  ...props
2715
2844
  });
2716
2845
  }
2717
2846
  __name(DropdownMenu, "DropdownMenu");
2718
2847
  function DropdownMenuPortal({ ...props }) {
2719
- return /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.Portal, {
2848
+ return /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.Portal, {
2720
2849
  "data-slot": "dropdown-menu-portal",
2721
2850
  ...props
2722
2851
  });
2723
2852
  }
2724
2853
  __name(DropdownMenuPortal, "DropdownMenuPortal");
2725
2854
  function DropdownMenuTrigger({ ...props }) {
2726
- return /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.Trigger, {
2855
+ return /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.Trigger, {
2727
2856
  "data-slot": "dropdown-menu-trigger",
2728
2857
  ...props
2729
2858
  });
2730
2859
  }
2731
2860
  __name(DropdownMenuTrigger, "DropdownMenuTrigger");
2732
2861
  function DropdownMenuContent({ className, sideOffset = 4, ...props }) {
2733
- return /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.Portal, null, /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.Content, {
2862
+ return /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.Portal, null, /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.Content, {
2734
2863
  "data-slot": "dropdown-menu-content",
2735
2864
  sideOffset,
2736
2865
  className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md", className),
@@ -2739,14 +2868,14 @@ function DropdownMenuContent({ className, sideOffset = 4, ...props }) {
2739
2868
  }
2740
2869
  __name(DropdownMenuContent, "DropdownMenuContent");
2741
2870
  function DropdownMenuGroup({ ...props }) {
2742
- return /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.Group, {
2871
+ return /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.Group, {
2743
2872
  "data-slot": "dropdown-menu-group",
2744
2873
  ...props
2745
2874
  });
2746
2875
  }
2747
2876
  __name(DropdownMenuGroup, "DropdownMenuGroup");
2748
2877
  function DropdownMenuItem({ className, inset, variant = "default", ...props }) {
2749
- return /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.Item, {
2878
+ return /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.Item, {
2750
2879
  "data-slot": "dropdown-menu-item",
2751
2880
  "data-inset": inset,
2752
2881
  "data-variant": variant,
@@ -2756,39 +2885,39 @@ function DropdownMenuItem({ className, inset, variant = "default", ...props }) {
2756
2885
  }
2757
2886
  __name(DropdownMenuItem, "DropdownMenuItem");
2758
2887
  function DropdownMenuCheckboxItem({ className, children, checked, ...props }) {
2759
- return /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.CheckboxItem, {
2888
+ return /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.CheckboxItem, {
2760
2889
  "data-slot": "dropdown-menu-checkbox-item",
2761
2890
  className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
2762
2891
  checked,
2763
2892
  ...props
2764
- }, /* @__PURE__ */ React25.createElement("span", {
2893
+ }, /* @__PURE__ */ React26.createElement("span", {
2765
2894
  className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center"
2766
- }, /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React25.createElement(CheckIcon, {
2895
+ }, /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React26.createElement(CheckIcon, {
2767
2896
  className: "size-4"
2768
2897
  }))), children);
2769
2898
  }
2770
2899
  __name(DropdownMenuCheckboxItem, "DropdownMenuCheckboxItem");
2771
2900
  function DropdownMenuRadioGroup({ ...props }) {
2772
- return /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.RadioGroup, {
2901
+ return /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.RadioGroup, {
2773
2902
  "data-slot": "dropdown-menu-radio-group",
2774
2903
  ...props
2775
2904
  });
2776
2905
  }
2777
2906
  __name(DropdownMenuRadioGroup, "DropdownMenuRadioGroup");
2778
2907
  function DropdownMenuRadioItem({ className, children, ...props }) {
2779
- return /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.RadioItem, {
2908
+ return /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.RadioItem, {
2780
2909
  "data-slot": "dropdown-menu-radio-item",
2781
2910
  className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
2782
2911
  ...props
2783
- }, /* @__PURE__ */ React25.createElement("span", {
2912
+ }, /* @__PURE__ */ React26.createElement("span", {
2784
2913
  className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center"
2785
- }, /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React25.createElement(CircleIcon, {
2914
+ }, /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React26.createElement(CircleIcon, {
2786
2915
  className: "size-2 fill-current"
2787
2916
  }))), children);
2788
2917
  }
2789
2918
  __name(DropdownMenuRadioItem, "DropdownMenuRadioItem");
2790
2919
  function DropdownMenuLabel({ className, inset, ...props }) {
2791
- return /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.Label, {
2920
+ return /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.Label, {
2792
2921
  "data-slot": "dropdown-menu-label",
2793
2922
  "data-inset": inset,
2794
2923
  className: cn("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", className),
@@ -2797,7 +2926,7 @@ function DropdownMenuLabel({ className, inset, ...props }) {
2797
2926
  }
2798
2927
  __name(DropdownMenuLabel, "DropdownMenuLabel");
2799
2928
  function DropdownMenuSeparator({ className, ...props }) {
2800
- return /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.Separator, {
2929
+ return /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.Separator, {
2801
2930
  "data-slot": "dropdown-menu-separator",
2802
2931
  className: cn("bg-border -mx-1 my-1 h-px", className),
2803
2932
  ...props
@@ -2805,7 +2934,7 @@ function DropdownMenuSeparator({ className, ...props }) {
2805
2934
  }
2806
2935
  __name(DropdownMenuSeparator, "DropdownMenuSeparator");
2807
2936
  function DropdownMenuShortcut({ className, ...props }) {
2808
- return /* @__PURE__ */ React25.createElement("span", {
2937
+ return /* @__PURE__ */ React26.createElement("span", {
2809
2938
  "data-slot": "dropdown-menu-shortcut",
2810
2939
  className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className),
2811
2940
  ...props
@@ -2813,25 +2942,25 @@ function DropdownMenuShortcut({ className, ...props }) {
2813
2942
  }
2814
2943
  __name(DropdownMenuShortcut, "DropdownMenuShortcut");
2815
2944
  function DropdownMenuSub({ ...props }) {
2816
- return /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.Sub, {
2945
+ return /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.Sub, {
2817
2946
  "data-slot": "dropdown-menu-sub",
2818
2947
  ...props
2819
2948
  });
2820
2949
  }
2821
2950
  __name(DropdownMenuSub, "DropdownMenuSub");
2822
2951
  function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
2823
- return /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.SubTrigger, {
2952
+ return /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.SubTrigger, {
2824
2953
  "data-slot": "dropdown-menu-sub-trigger",
2825
2954
  "data-inset": inset,
2826
2955
  className: cn("focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
2827
2956
  ...props
2828
- }, children, /* @__PURE__ */ React25.createElement(ChevronRightIcon, {
2957
+ }, children, /* @__PURE__ */ React26.createElement(ChevronRightIcon, {
2829
2958
  className: "ml-auto size-4"
2830
2959
  }));
2831
2960
  }
2832
2961
  __name(DropdownMenuSubTrigger, "DropdownMenuSubTrigger");
2833
2962
  function DropdownMenuSubContent({ className, ...props }) {
2834
- return /* @__PURE__ */ React25.createElement(DropdownMenuPrimitive.SubContent, {
2963
+ return /* @__PURE__ */ React26.createElement(DropdownMenuPrimitive.SubContent, {
2835
2964
  "data-slot": "dropdown-menu-sub-content",
2836
2965
  className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg", className),
2837
2966
  ...props
@@ -2839,7 +2968,7 @@ function DropdownMenuSubContent({ className, ...props }) {
2839
2968
  }
2840
2969
  __name(DropdownMenuSubContent, "DropdownMenuSubContent");
2841
2970
  function TooltipProvider({ delayDuration = 0, ...props }) {
2842
- return /* @__PURE__ */ React25.createElement(TooltipPrimitive.Provider, {
2971
+ return /* @__PURE__ */ React26.createElement(TooltipPrimitive.Provider, {
2843
2972
  "data-slot": "tooltip-provider",
2844
2973
  delayDuration,
2845
2974
  ...props
@@ -2847,26 +2976,26 @@ function TooltipProvider({ delayDuration = 0, ...props }) {
2847
2976
  }
2848
2977
  __name(TooltipProvider, "TooltipProvider");
2849
2978
  function Tooltip({ ...props }) {
2850
- return /* @__PURE__ */ React25.createElement(TooltipProvider, null, /* @__PURE__ */ React25.createElement(TooltipPrimitive.Root, {
2979
+ return /* @__PURE__ */ React26.createElement(TooltipProvider, null, /* @__PURE__ */ React26.createElement(TooltipPrimitive.Root, {
2851
2980
  "data-slot": "tooltip",
2852
2981
  ...props
2853
2982
  }));
2854
2983
  }
2855
2984
  __name(Tooltip, "Tooltip");
2856
2985
  function TooltipTrigger({ ...props }) {
2857
- return /* @__PURE__ */ React25.createElement(TooltipPrimitive.Trigger, {
2986
+ return /* @__PURE__ */ React26.createElement(TooltipPrimitive.Trigger, {
2858
2987
  "data-slot": "tooltip-trigger",
2859
2988
  ...props
2860
2989
  });
2861
2990
  }
2862
2991
  __name(TooltipTrigger, "TooltipTrigger");
2863
2992
  function TooltipContent({ className, sideOffset = 0, children, ...props }) {
2864
- return /* @__PURE__ */ React25.createElement(TooltipPrimitive.Portal, null, /* @__PURE__ */ React25.createElement(TooltipPrimitive.Content, {
2993
+ return /* @__PURE__ */ React26.createElement(TooltipPrimitive.Portal, null, /* @__PURE__ */ React26.createElement(TooltipPrimitive.Content, {
2865
2994
  "data-slot": "tooltip-content",
2866
2995
  sideOffset,
2867
2996
  className: cn("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance", className),
2868
2997
  ...props
2869
- }, children, /* @__PURE__ */ React25.createElement(TooltipPrimitive.Arrow, {
2998
+ }, children, /* @__PURE__ */ React26.createElement(TooltipPrimitive.Arrow, {
2870
2999
  className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"
2871
3000
  })));
2872
3001
  }
@@ -2897,44 +3026,44 @@ function DataGrid({ data, columns, searchable = false, searchPlaceholder = "Sear
2897
3026
  getSortedRowModel: getSortedRowModel(),
2898
3027
  getFilteredRowModel: getFilteredRowModel()
2899
3028
  });
2900
- return /* @__PURE__ */ React25__default.createElement("div", {
3029
+ return /* @__PURE__ */ React26__default.createElement("div", {
2901
3030
  className: clsx("lui-datagrid", className)
2902
- }, searchable && /* @__PURE__ */ React25__default.createElement("div", {
3031
+ }, searchable && /* @__PURE__ */ React26__default.createElement("div", {
2903
3032
  className: "lui-datagrid-search"
2904
- }, /* @__PURE__ */ React25__default.createElement("input", {
3033
+ }, /* @__PURE__ */ React26__default.createElement("input", {
2905
3034
  type: "text",
2906
3035
  value: globalFilter,
2907
3036
  onChange: /* @__PURE__ */ __name((e) => setGlobalFilter(e.target.value), "onChange"),
2908
3037
  placeholder: searchPlaceholder,
2909
3038
  className: "lui-datagrid-search-input"
2910
- })), /* @__PURE__ */ React25__default.createElement("div", {
3039
+ })), /* @__PURE__ */ React26__default.createElement("div", {
2911
3040
  className: "lui-datagrid-container"
2912
- }, /* @__PURE__ */ React25__default.createElement("table", {
3041
+ }, /* @__PURE__ */ React26__default.createElement("table", {
2913
3042
  className: "lui-datagrid-table"
2914
- }, /* @__PURE__ */ React25__default.createElement("thead", null, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React25__default.createElement("tr", {
3043
+ }, /* @__PURE__ */ React26__default.createElement("thead", null, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React26__default.createElement("tr", {
2915
3044
  key: headerGroup.id
2916
- }, headerGroup.headers.map((header) => /* @__PURE__ */ React25__default.createElement("th", {
3045
+ }, headerGroup.headers.map((header) => /* @__PURE__ */ React26__default.createElement("th", {
2917
3046
  key: header.id,
2918
3047
  className: clsx("lui-datagrid-th", header.column.getCanSort() && "lui-datagrid-th--sortable"),
2919
3048
  onClick: header.column.getToggleSortingHandler(),
2920
3049
  style: {
2921
3050
  width: header.column.getSize()
2922
3051
  }
2923
- }, /* @__PURE__ */ React25__default.createElement("div", {
3052
+ }, /* @__PURE__ */ React26__default.createElement("div", {
2924
3053
  className: "lui-datagrid-th-content"
2925
- }, flexRender(header.column.columnDef.header, header.getContext()), header.column.getIsSorted() && /* @__PURE__ */ React25__default.createElement("span", {
3054
+ }, flexRender(header.column.columnDef.header, header.getContext()), header.column.getIsSorted() && /* @__PURE__ */ React26__default.createElement("span", {
2926
3055
  className: "lui-datagrid-sort-icon"
2927
- }, header.column.getIsSorted() === "asc" ? "\u2191" : "\u2193"))))))), /* @__PURE__ */ React25__default.createElement("tbody", null, loading ? /* @__PURE__ */ React25__default.createElement("tr", null, /* @__PURE__ */ React25__default.createElement("td", {
3056
+ }, header.column.getIsSorted() === "asc" ? "\u2191" : "\u2193"))))))), /* @__PURE__ */ React26__default.createElement("tbody", null, loading ? /* @__PURE__ */ React26__default.createElement("tr", null, /* @__PURE__ */ React26__default.createElement("td", {
2928
3057
  colSpan: columns.length,
2929
3058
  className: "lui-datagrid-loading"
2930
- }, "Loading...")) : table.getRowModel().rows.length === 0 ? /* @__PURE__ */ React25__default.createElement("tr", null, /* @__PURE__ */ React25__default.createElement("td", {
3059
+ }, "Loading...")) : table.getRowModel().rows.length === 0 ? /* @__PURE__ */ React26__default.createElement("tr", null, /* @__PURE__ */ React26__default.createElement("td", {
2931
3060
  colSpan: columns.length,
2932
3061
  className: "lui-datagrid-empty"
2933
- }, emptyMessage)) : table.getRowModel().rows.map((row) => /* @__PURE__ */ React25__default.createElement("tr", {
3062
+ }, emptyMessage)) : table.getRowModel().rows.map((row) => /* @__PURE__ */ React26__default.createElement("tr", {
2934
3063
  key: row.id,
2935
3064
  className: clsx("lui-datagrid-row", onRowClick && "lui-datagrid-row--clickable"),
2936
3065
  onClick: /* @__PURE__ */ __name(() => onRowClick?.(row.original), "onClick")
2937
- }, row.getVisibleCells().map((cell) => /* @__PURE__ */ React25__default.createElement("td", {
3066
+ }, row.getVisibleCells().map((cell) => /* @__PURE__ */ React26__default.createElement("td", {
2938
3067
  key: cell.id,
2939
3068
  className: "lui-datagrid-td"
2940
3069
  }, flexRender(cell.column.columnDef.cell, cell.getContext())))))))));
@@ -2993,13 +3122,13 @@ function Chart({ type, data, options, height = 300, width = "100%", className })
2993
3122
  ...options?.plugins
2994
3123
  }
2995
3124
  };
2996
- return /* @__PURE__ */ React25__default.createElement("div", {
3125
+ return /* @__PURE__ */ React26__default.createElement("div", {
2997
3126
  className: clsx("lui-chart", className),
2998
3127
  style: {
2999
3128
  height,
3000
3129
  width
3001
3130
  }
3002
- }, /* @__PURE__ */ React25__default.createElement(Chart$2, {
3131
+ }, /* @__PURE__ */ React26__default.createElement(Chart$2, {
3003
3132
  type,
3004
3133
  data,
3005
3134
  options: mergedOptions
@@ -3048,37 +3177,37 @@ function AppShell({ header, sidebar, footer, sidebarPosition = "left", sidebarWi
3048
3177
  width: typeof sidebarWidth === "number" ? `${sidebarWidth}px` : sidebarWidth,
3049
3178
  flexShrink: 0
3050
3179
  };
3051
- return /* @__PURE__ */ React25__default.createElement("div", {
3180
+ return /* @__PURE__ */ React26__default.createElement("div", {
3052
3181
  ref: containerRef,
3053
3182
  className: clsx("lui-app-shell", `lui-app-shell--padding-${padding}`, className),
3054
3183
  ...props
3055
- }, header && /* @__PURE__ */ React25__default.createElement("header", {
3184
+ }, header && /* @__PURE__ */ React26__default.createElement("header", {
3056
3185
  className: "lui-app-shell-header"
3057
- }, header), /* @__PURE__ */ React25__default.createElement("div", {
3186
+ }, header), /* @__PURE__ */ React26__default.createElement("div", {
3058
3187
  className: "lui-app-shell-body"
3059
- }, sidebar && sidebarPosition === "left" && /* @__PURE__ */ React25__default.createElement("aside", {
3188
+ }, sidebar && sidebarPosition === "left" && /* @__PURE__ */ React26__default.createElement("aside", {
3060
3189
  className: "lui-app-shell-sidebar",
3061
3190
  style: sidebarStyle
3062
- }, sidebar), /* @__PURE__ */ React25__default.createElement("main", {
3191
+ }, sidebar), /* @__PURE__ */ React26__default.createElement("main", {
3063
3192
  className: "lui-app-shell-main"
3064
- }, children), sidebar && sidebarPosition === "right" && /* @__PURE__ */ React25__default.createElement("aside", {
3193
+ }, children), sidebar && sidebarPosition === "right" && /* @__PURE__ */ React26__default.createElement("aside", {
3065
3194
  className: "lui-app-shell-sidebar",
3066
3195
  style: sidebarStyle
3067
- }, sidebar)), footer && /* @__PURE__ */ React25__default.createElement("footer", {
3196
+ }, sidebar)), footer && /* @__PURE__ */ React26__default.createElement("footer", {
3068
3197
  className: "lui-app-shell-footer"
3069
3198
  }, footer));
3070
3199
  }
3071
3200
  __name(AppShell, "AppShell");
3072
3201
  function Tabs2({ tabs, defaultValue, value, onValueChange, children, className }) {
3073
3202
  const defaultTab = defaultValue || tabs[0]?.value;
3074
- return /* @__PURE__ */ React25__default.createElement(TabsPrimitive2.Root, {
3203
+ return /* @__PURE__ */ React26__default.createElement(TabsPrimitive2.Root, {
3075
3204
  className: clsx("lui-tabs", className),
3076
3205
  defaultValue: defaultTab,
3077
3206
  value,
3078
3207
  onValueChange
3079
- }, /* @__PURE__ */ React25__default.createElement(TabsPrimitive2.List, {
3208
+ }, /* @__PURE__ */ React26__default.createElement(TabsPrimitive2.List, {
3080
3209
  className: "lui-tabs-list"
3081
- }, tabs.map((tab) => /* @__PURE__ */ React25__default.createElement(TabsPrimitive2.Trigger, {
3210
+ }, tabs.map((tab) => /* @__PURE__ */ React26__default.createElement(TabsPrimitive2.Trigger, {
3082
3211
  key: tab.value,
3083
3212
  value: tab.value,
3084
3213
  disabled: tab.disabled,
@@ -3087,40 +3216,40 @@ function Tabs2({ tabs, defaultValue, value, onValueChange, children, className }
3087
3216
  }
3088
3217
  __name(Tabs2, "Tabs");
3089
3218
  function TabContent({ value, children, className }) {
3090
- return /* @__PURE__ */ React25__default.createElement(TabsPrimitive2.Content, {
3219
+ return /* @__PURE__ */ React26__default.createElement(TabsPrimitive2.Content, {
3091
3220
  value,
3092
3221
  className: clsx("lui-tabs-content", className)
3093
3222
  }, children);
3094
3223
  }
3095
3224
  __name(TabContent, "TabContent");
3096
3225
  function Modal({ open, defaultOpen, onOpenChange, title, description, children, className, trigger }) {
3097
- return /* @__PURE__ */ React25__default.createElement(DialogPrimitive.Root, {
3226
+ return /* @__PURE__ */ React26__default.createElement(DialogPrimitive.Root, {
3098
3227
  open,
3099
3228
  defaultOpen,
3100
3229
  onOpenChange
3101
- }, trigger && /* @__PURE__ */ React25__default.createElement(DialogPrimitive.Trigger, {
3230
+ }, trigger && /* @__PURE__ */ React26__default.createElement(DialogPrimitive.Trigger, {
3102
3231
  asChild: true
3103
- }, trigger), /* @__PURE__ */ React25__default.createElement(DialogPrimitive.Portal, null, /* @__PURE__ */ React25__default.createElement(DialogPrimitive.Overlay, {
3232
+ }, trigger), /* @__PURE__ */ React26__default.createElement(DialogPrimitive.Portal, null, /* @__PURE__ */ React26__default.createElement(DialogPrimitive.Overlay, {
3104
3233
  className: "lui-modal-overlay"
3105
- }), /* @__PURE__ */ React25__default.createElement(DialogPrimitive.Content, {
3234
+ }), /* @__PURE__ */ React26__default.createElement(DialogPrimitive.Content, {
3106
3235
  className: clsx("lui-modal-content", className)
3107
- }, title && /* @__PURE__ */ React25__default.createElement(DialogPrimitive.Title, {
3236
+ }, title && /* @__PURE__ */ React26__default.createElement(DialogPrimitive.Title, {
3108
3237
  className: "lui-modal-title"
3109
- }, title), description && /* @__PURE__ */ React25__default.createElement(DialogPrimitive.Description, {
3238
+ }, title), description && /* @__PURE__ */ React26__default.createElement(DialogPrimitive.Description, {
3110
3239
  className: "lui-modal-description"
3111
- }, description), children, /* @__PURE__ */ React25__default.createElement(DialogPrimitive.Close, {
3240
+ }, description), children, /* @__PURE__ */ React26__default.createElement(DialogPrimitive.Close, {
3112
3241
  className: "lui-modal-close",
3113
3242
  "aria-label": "Close"
3114
- }, /* @__PURE__ */ React25__default.createElement(CloseIcon, null)))));
3243
+ }, /* @__PURE__ */ React26__default.createElement(CloseIcon, null)))));
3115
3244
  }
3116
3245
  __name(Modal, "Modal");
3117
3246
  function CloseIcon() {
3118
- return /* @__PURE__ */ React25__default.createElement("svg", {
3247
+ return /* @__PURE__ */ React26__default.createElement("svg", {
3119
3248
  width: "14",
3120
3249
  height: "14",
3121
3250
  viewBox: "0 0 14 14",
3122
3251
  fill: "none"
3123
- }, /* @__PURE__ */ React25__default.createElement("path", {
3252
+ }, /* @__PURE__ */ React26__default.createElement("path", {
3124
3253
  d: "M3.5 3.5L10.5 10.5M10.5 3.5L3.5 10.5",
3125
3254
  stroke: "currentColor",
3126
3255
  strokeWidth: "1.5",
@@ -3129,55 +3258,55 @@ function CloseIcon() {
3129
3258
  }
3130
3259
  __name(CloseIcon, "CloseIcon");
3131
3260
  function CodeBlock({ code, language = "text", showLineNumbers = false, copyable = true, className }) {
3132
- const [copied, setCopied] = React25__default.useState(false);
3261
+ const [copied, setCopied] = React26__default.useState(false);
3133
3262
  const handleCopy = /* @__PURE__ */ __name(async () => {
3134
3263
  await navigator.clipboard.writeText(code);
3135
3264
  setCopied(true);
3136
3265
  setTimeout(() => setCopied(false), 2e3);
3137
3266
  }, "handleCopy");
3138
- return /* @__PURE__ */ React25__default.createElement("div", {
3267
+ return /* @__PURE__ */ React26__default.createElement("div", {
3139
3268
  className: clsx("lui-code-block", className)
3140
- }, copyable && /* @__PURE__ */ React25__default.createElement("button", {
3269
+ }, copyable && /* @__PURE__ */ React26__default.createElement("button", {
3141
3270
  type: "button",
3142
3271
  className: "lui-code-block-copy",
3143
3272
  onClick: handleCopy,
3144
3273
  "aria-label": copied ? "Copied!" : "Copy code"
3145
- }, copied ? /* @__PURE__ */ React25__default.createElement("svg", {
3274
+ }, copied ? /* @__PURE__ */ React26__default.createElement("svg", {
3146
3275
  viewBox: "0 0 24 24",
3147
3276
  fill: "none",
3148
3277
  stroke: "currentColor",
3149
3278
  strokeWidth: "2"
3150
- }, /* @__PURE__ */ React25__default.createElement("polyline", {
3279
+ }, /* @__PURE__ */ React26__default.createElement("polyline", {
3151
3280
  points: "20,6 9,17 4,12"
3152
- })) : /* @__PURE__ */ React25__default.createElement("svg", {
3281
+ })) : /* @__PURE__ */ React26__default.createElement("svg", {
3153
3282
  viewBox: "0 0 24 24",
3154
3283
  fill: "none",
3155
3284
  stroke: "currentColor",
3156
3285
  strokeWidth: "2"
3157
- }, /* @__PURE__ */ React25__default.createElement("rect", {
3286
+ }, /* @__PURE__ */ React26__default.createElement("rect", {
3158
3287
  x: "9",
3159
3288
  y: "9",
3160
3289
  width: "13",
3161
3290
  height: "13",
3162
3291
  rx: "2",
3163
3292
  ry: "2"
3164
- }), /* @__PURE__ */ React25__default.createElement("path", {
3293
+ }), /* @__PURE__ */ React26__default.createElement("path", {
3165
3294
  d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"
3166
- }))), /* @__PURE__ */ React25__default.createElement(Highlight, {
3295
+ }))), /* @__PURE__ */ React26__default.createElement(Highlight, {
3167
3296
  theme: themes.nightOwl,
3168
3297
  code: code.trim(),
3169
3298
  language
3170
- }, ({ className: hlClassName, style, tokens, getLineProps, getTokenProps }) => /* @__PURE__ */ React25__default.createElement("pre", {
3299
+ }, ({ className: hlClassName, style, tokens, getLineProps, getTokenProps }) => /* @__PURE__ */ React26__default.createElement("pre", {
3171
3300
  className: clsx("lui-code-block-pre", hlClassName),
3172
3301
  style
3173
- }, tokens.map((line, i) => /* @__PURE__ */ React25__default.createElement("div", {
3302
+ }, tokens.map((line, i) => /* @__PURE__ */ React26__default.createElement("div", {
3174
3303
  key: i,
3175
3304
  ...getLineProps({
3176
3305
  line
3177
3306
  })
3178
- }, showLineNumbers && /* @__PURE__ */ React25__default.createElement("span", {
3307
+ }, showLineNumbers && /* @__PURE__ */ React26__default.createElement("span", {
3179
3308
  className: "lui-code-block-line-number"
3180
- }, i + 1), line.map((token, key) => /* @__PURE__ */ React25__default.createElement("span", {
3309
+ }, i + 1), line.map((token, key) => /* @__PURE__ */ React26__default.createElement("span", {
3181
3310
  key,
3182
3311
  ...getTokenProps({
3183
3312
  token
@@ -3186,7 +3315,7 @@ function CodeBlock({ code, language = "text", showLineNumbers = false, copyable
3186
3315
  }
3187
3316
  __name(CodeBlock, "CodeBlock");
3188
3317
  var Card2 = /* @__PURE__ */ forwardRef(({ className, variant = "default", padding = "md", interactive = false, children, ...props }, ref) => {
3189
- return /* @__PURE__ */ React25__default.createElement("div", {
3318
+ return /* @__PURE__ */ React26__default.createElement("div", {
3190
3319
  ref,
3191
3320
  className: clsx("lui-card", `lui-card--${variant}`, `lui-card--padding-${padding}`, interactive && "lui-card--interactive", className),
3192
3321
  ...props
@@ -3194,23 +3323,23 @@ var Card2 = /* @__PURE__ */ forwardRef(({ className, variant = "default", paddin
3194
3323
  });
3195
3324
  Card2.displayName = "Card";
3196
3325
  var CardHeader2 = /* @__PURE__ */ forwardRef(({ className, title, description, action, children, ...props }, ref) => {
3197
- return /* @__PURE__ */ React25__default.createElement("div", {
3326
+ return /* @__PURE__ */ React26__default.createElement("div", {
3198
3327
  ref,
3199
3328
  className: clsx("lui-card-header", className),
3200
3329
  ...props
3201
- }, (title || description) && /* @__PURE__ */ React25__default.createElement("div", {
3330
+ }, (title || description) && /* @__PURE__ */ React26__default.createElement("div", {
3202
3331
  className: "lui-card-header__text"
3203
- }, title && /* @__PURE__ */ React25__default.createElement("h3", {
3332
+ }, title && /* @__PURE__ */ React26__default.createElement("h3", {
3204
3333
  className: "lui-card-header__title"
3205
- }, title), description && /* @__PURE__ */ React25__default.createElement("p", {
3334
+ }, title), description && /* @__PURE__ */ React26__default.createElement("p", {
3206
3335
  className: "lui-card-header__description"
3207
- }, description)), action && /* @__PURE__ */ React25__default.createElement("div", {
3336
+ }, description)), action && /* @__PURE__ */ React26__default.createElement("div", {
3208
3337
  className: "lui-card-header__action"
3209
3338
  }, action), children);
3210
3339
  });
3211
3340
  CardHeader2.displayName = "CardHeader";
3212
3341
  var CardContent2 = /* @__PURE__ */ forwardRef(({ className, children, ...props }, ref) => {
3213
- return /* @__PURE__ */ React25__default.createElement("div", {
3342
+ return /* @__PURE__ */ React26__default.createElement("div", {
3214
3343
  ref,
3215
3344
  className: clsx("lui-card-content", className),
3216
3345
  ...props
@@ -3218,7 +3347,7 @@ var CardContent2 = /* @__PURE__ */ forwardRef(({ className, children, ...props }
3218
3347
  });
3219
3348
  CardContent2.displayName = "CardContent";
3220
3349
  var CardFooter2 = /* @__PURE__ */ forwardRef(({ className, children, ...props }, ref) => {
3221
- return /* @__PURE__ */ React25__default.createElement("div", {
3350
+ return /* @__PURE__ */ React26__default.createElement("div", {
3222
3351
  ref,
3223
3352
  className: clsx("lui-card-footer", className),
3224
3353
  ...props
@@ -3228,31 +3357,31 @@ CardFooter2.displayName = "CardFooter";
3228
3357
  var Input2 = /* @__PURE__ */ forwardRef(({ className, label, helperText, error, size = "md", leftElement, rightElement, fullWidth = false, id, ...props }, ref) => {
3229
3358
  const inputId = id || `input-${Math.random().toString(36).substr(2, 9)}`;
3230
3359
  const hasError = Boolean(error);
3231
- return /* @__PURE__ */ React25__default.createElement("div", {
3360
+ return /* @__PURE__ */ React26__default.createElement("div", {
3232
3361
  className: clsx("lui-input-wrapper", fullWidth && "lui-input-wrapper--full-width", className)
3233
- }, label && /* @__PURE__ */ React25__default.createElement("label", {
3362
+ }, label && /* @__PURE__ */ React26__default.createElement("label", {
3234
3363
  htmlFor: inputId,
3235
3364
  className: "lui-input-label"
3236
- }, label), /* @__PURE__ */ React25__default.createElement("div", {
3365
+ }, label), /* @__PURE__ */ React26__default.createElement("div", {
3237
3366
  className: clsx("lui-input-container", `lui-input-container--${size}`, hasError && "lui-input-container--error", leftElement && "lui-input-container--has-left", rightElement && "lui-input-container--has-right")
3238
- }, leftElement && /* @__PURE__ */ React25__default.createElement("span", {
3367
+ }, leftElement && /* @__PURE__ */ React26__default.createElement("span", {
3239
3368
  className: "lui-input-element lui-input-element--left"
3240
- }, leftElement), /* @__PURE__ */ React25__default.createElement("input", {
3369
+ }, leftElement), /* @__PURE__ */ React26__default.createElement("input", {
3241
3370
  ref,
3242
3371
  id: inputId,
3243
3372
  className: "lui-input",
3244
3373
  "aria-invalid": hasError,
3245
3374
  "aria-describedby": error ? `${inputId}-error` : helperText ? `${inputId}-helper` : void 0,
3246
3375
  ...props
3247
- }), rightElement && /* @__PURE__ */ React25__default.createElement("span", {
3376
+ }), rightElement && /* @__PURE__ */ React26__default.createElement("span", {
3248
3377
  className: "lui-input-element lui-input-element--right"
3249
- }, rightElement)), (error || helperText) && /* @__PURE__ */ React25__default.createElement("p", {
3378
+ }, rightElement)), (error || helperText) && /* @__PURE__ */ React26__default.createElement("p", {
3250
3379
  id: error ? `${inputId}-error` : `${inputId}-helper`,
3251
3380
  className: clsx("lui-input-message", error && "lui-input-message--error")
3252
3381
  }, error || helperText));
3253
3382
  });
3254
3383
  Input2.displayName = "Input";
3255
3384
 
3256
- export { ActionButton, Alert, AlertDescription, AlertTitle, AppProvider, AppShell, Badge, Button2 as Button, Card2 as Card, CardContent2 as CardContent, CardDescription, CardFooter2 as CardFooter, CardHeader2 as CardHeader, CardTitle, Chart, Checkbox, CodeBlock, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, DEFAULT_RESULT_CONFIG, DataGrid, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, INITIAL_TOOL_STATE, Input2 as Input, Label2 as Label, Modal, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RequireConnection, ResourceView, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, Skeleton, Slider, StreamingContent, Switch, TabContent, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs2 as Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, ToolButton, ToolDataGrid, ToolErrorBoundary, ToolForm, ToolInput, ToolProvider, ToolSelect, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, normalizeToolBinding, useFormField, useHostContext, useMcpApp, useMessage, useResource, useTool, useToolContext, useToolInput, useToolInputPartial, useToolResult, useToolStream, useToolSubscription };
3385
+ export { ActionButton, Alert, AlertDescription, AlertTitle, AppProvider, AppShell, Badge, Button2 as Button, Card2 as Card, CardContent2 as CardContent, CardDescription, CardFooter2 as CardFooter, CardHeader2 as CardHeader, CardTitle, Chart, Checkbox, CodeBlock, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, DEFAULT_RESULT_CONFIG, DataGrid, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GPTAppProvider, INITIAL_TOOL_STATE, Input2 as Input, Label2 as Label, Modal, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RequireConnection, ResourceView, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, Skeleton, Slider, StreamingContent, Switch, TabContent, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs2 as Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, ToolButton, ToolDataGrid, ToolErrorBoundary, ToolForm, ToolInput, ToolProvider, ToolSelect, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, normalizeToolBinding, useFormField, useGptApp, useGptTool, useHostContext, useMcpApp, useMessage, useResource, useTool, useToolContext, useToolInput, useToolInputPartial, useToolResult, useToolStream, useToolSubscription };
3257
3386
  //# sourceMappingURL=index.mjs.map
3258
3387
  //# sourceMappingURL=index.mjs.map