@invana/ui 0.0.30 → 0.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { clsx } from 'clsx';
2
2
  import { twMerge } from 'tailwind-merge';
3
- import * as React24 from 'react';
4
- import React24__default, { Component } from 'react';
3
+ import * as React25 from 'react';
4
+ import React25__default, { Component } from 'react';
5
5
  import * as AccordionPrimitive from '@radix-ui/react-accordion';
6
- import { ChevronDown, ArrowLeft, ArrowRight, X, Search, ChevronRight, Check, Circle, PanelLeft, MoreHorizontal, ChevronLeft, Loader2Icon, OctagonXIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon, Frown, Lock, Construction } from 'lucide-react';
6
+ import { ChevronDown, ArrowLeft, ArrowRight, X, Search, ChevronRight, Check, Circle, PanelLeft, ChevronLeft, MoreHorizontal, Loader2Icon, OctagonXIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon, Frown, Lock, Construction } from 'lucide-react';
7
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
8
  import { cva } from 'class-variance-authority';
9
9
  import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
@@ -32,7 +32,7 @@ function cn(...inputs) {
32
32
  return twMerge(clsx(inputs));
33
33
  }
34
34
  var Accordion = AccordionPrimitive.Root;
35
- var AccordionItem = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
35
+ var AccordionItem = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
36
36
  AccordionPrimitive.Item,
37
37
  {
38
38
  ref,
@@ -41,7 +41,7 @@ var AccordionItem = React24.forwardRef(({ className, ...props }, ref) => /* @__P
41
41
  }
42
42
  ));
43
43
  AccordionItem.displayName = "AccordionItem";
44
- var AccordionTrigger = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
44
+ var AccordionTrigger = React25.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
45
45
  AccordionPrimitive.Trigger,
46
46
  {
47
47
  ref,
@@ -57,7 +57,7 @@ var AccordionTrigger = React24.forwardRef(({ className, children, ...props }, re
57
57
  }
58
58
  ) }));
59
59
  AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
60
- var AccordionContent = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
60
+ var AccordionContent = React25.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
61
61
  AccordionPrimitive.Content,
62
62
  {
63
63
  ref,
@@ -81,7 +81,7 @@ var alertVariants = cva(
81
81
  }
82
82
  }
83
83
  );
84
- var Alert = React24.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
84
+ var Alert = React25.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
85
85
  "div",
86
86
  {
87
87
  ref,
@@ -91,7 +91,7 @@ var Alert = React24.forwardRef(({ className, variant, ...props }, ref) => /* @__
91
91
  }
92
92
  ));
93
93
  Alert.displayName = "Alert";
94
- var AlertTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
94
+ var AlertTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
95
95
  "h5",
96
96
  {
97
97
  ref,
@@ -100,7 +100,7 @@ var AlertTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE
100
100
  }
101
101
  ));
102
102
  AlertTitle.displayName = "AlertTitle";
103
- var AlertDescription = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
103
+ var AlertDescription = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
104
104
  "div",
105
105
  {
106
106
  ref,
@@ -145,7 +145,7 @@ var buttonVariants = cva(
145
145
  }
146
146
  }
147
147
  );
148
- var Button = React24.forwardRef(
148
+ var Button = React25.forwardRef(
149
149
  ({ className, variant, size, asChild = false, ...props }, ref) => {
150
150
  const Comp = asChild ? Slot : "button";
151
151
  return /* @__PURE__ */ jsx(
@@ -162,7 +162,7 @@ Button.displayName = "Button";
162
162
  var AlertDialog = AlertDialogPrimitive.Root;
163
163
  var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
164
164
  var AlertDialogPortal = AlertDialogPrimitive.Portal;
165
- var AlertDialogOverlay = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
165
+ var AlertDialogOverlay = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
166
166
  AlertDialogPrimitive.Overlay,
167
167
  {
168
168
  className: cn(
@@ -174,7 +174,7 @@ var AlertDialogOverlay = React24.forwardRef(({ className, ...props }, ref) => /*
174
174
  }
175
175
  ));
176
176
  AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
177
- var AlertDialogContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
177
+ var AlertDialogContent = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
178
178
  /* @__PURE__ */ jsx(AlertDialogOverlay, {}),
179
179
  /* @__PURE__ */ jsx(
180
180
  AlertDialogPrimitive.Content,
@@ -217,7 +217,7 @@ var AlertDialogFooter = ({
217
217
  }
218
218
  );
219
219
  AlertDialogFooter.displayName = "AlertDialogFooter";
220
- var AlertDialogTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
220
+ var AlertDialogTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
221
221
  AlertDialogPrimitive.Title,
222
222
  {
223
223
  ref,
@@ -226,7 +226,7 @@ var AlertDialogTitle = React24.forwardRef(({ className, ...props }, ref) => /* @
226
226
  }
227
227
  ));
228
228
  AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
229
- var AlertDialogDescription = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
229
+ var AlertDialogDescription = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
230
230
  AlertDialogPrimitive.Description,
231
231
  {
232
232
  ref,
@@ -235,7 +235,7 @@ var AlertDialogDescription = React24.forwardRef(({ className, ...props }, ref) =
235
235
  }
236
236
  ));
237
237
  AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
238
- var AlertDialogAction = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
238
+ var AlertDialogAction = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
239
239
  AlertDialogPrimitive.Action,
240
240
  {
241
241
  ref,
@@ -244,7 +244,7 @@ var AlertDialogAction = React24.forwardRef(({ className, ...props }, ref) => /*
244
244
  }
245
245
  ));
246
246
  AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
247
- var AlertDialogCancel = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
247
+ var AlertDialogCancel = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
248
248
  AlertDialogPrimitive.Cancel,
249
249
  {
250
250
  ref,
@@ -257,7 +257,7 @@ var AlertDialogCancel = React24.forwardRef(({ className, ...props }, ref) => /*
257
257
  }
258
258
  ));
259
259
  AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
260
- var Avatar = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
260
+ var Avatar = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
261
261
  AvatarPrimitive.Root,
262
262
  {
263
263
  ref,
@@ -270,7 +270,7 @@ var Avatar = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
270
270
  }
271
271
  ));
272
272
  Avatar.displayName = AvatarPrimitive.Root.displayName;
273
- var AvatarImage = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
273
+ var AvatarImage = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
274
274
  AvatarPrimitive.Image,
275
275
  {
276
276
  ref,
@@ -279,7 +279,7 @@ var AvatarImage = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
279
279
  }
280
280
  ));
281
281
  AvatarImage.displayName = AvatarPrimitive.Image.displayName;
282
- var AvatarFallback = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
282
+ var AvatarFallback = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
283
283
  AvatarPrimitive.Fallback,
284
284
  {
285
285
  ref,
@@ -338,9 +338,9 @@ function Badge({ className, variant, tone, size, ...props }) {
338
338
  }
339
339
  );
340
340
  }
341
- var Breadcrumb = React24.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("nav", { ref, "aria-label": "breadcrumb", ...props }));
341
+ var Breadcrumb = React25.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("nav", { ref, "aria-label": "breadcrumb", ...props }));
342
342
  Breadcrumb.displayName = "Breadcrumb";
343
- var BreadcrumbList = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
343
+ var BreadcrumbList = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
344
344
  "ol",
345
345
  {
346
346
  ref,
@@ -352,7 +352,7 @@ var BreadcrumbList = React24.forwardRef(({ className, ...props }, ref) => /* @__
352
352
  }
353
353
  ));
354
354
  BreadcrumbList.displayName = "BreadcrumbList";
355
- var BreadcrumbItem = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
355
+ var BreadcrumbItem = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
356
356
  "li",
357
357
  {
358
358
  ref,
@@ -361,7 +361,7 @@ var BreadcrumbItem = React24.forwardRef(({ className, ...props }, ref) => /* @__
361
361
  }
362
362
  ));
363
363
  BreadcrumbItem.displayName = "BreadcrumbItem";
364
- var BreadcrumbLink = React24.forwardRef(({ asChild, className, ...props }, ref) => {
364
+ var BreadcrumbLink = React25.forwardRef(({ asChild, className, ...props }, ref) => {
365
365
  const Comp = asChild ? Slot : "a";
366
366
  return /* @__PURE__ */ jsx(
367
367
  Comp,
@@ -373,7 +373,7 @@ var BreadcrumbLink = React24.forwardRef(({ asChild, className, ...props }, ref)
373
373
  );
374
374
  });
375
375
  BreadcrumbLink.displayName = "BreadcrumbLink";
376
- var BreadcrumbPage = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
376
+ var BreadcrumbPage = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
377
377
  "span",
378
378
  {
379
379
  ref,
@@ -417,7 +417,7 @@ var BreadcrumbEllipsis = ({
417
417
  }
418
418
  );
419
419
  BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
420
- var Separator = React24.forwardRef(
420
+ var Separator = React25.forwardRef(
421
421
  ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
422
422
  SeparatorPrimitive.Root,
423
423
  {
@@ -499,7 +499,7 @@ function ButtonGroupSeparator({
499
499
  }
500
500
  );
501
501
  }
502
- var Card = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
502
+ var Card = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
503
503
  "div",
504
504
  {
505
505
  ref,
@@ -511,7 +511,7 @@ var Card = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
511
511
  }
512
512
  ));
513
513
  Card.displayName = "Card";
514
- var CardHeader = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
514
+ var CardHeader = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
515
515
  "div",
516
516
  {
517
517
  ref,
@@ -520,7 +520,7 @@ var CardHeader = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE
520
520
  }
521
521
  ));
522
522
  CardHeader.displayName = "CardHeader";
523
- var CardTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
523
+ var CardTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
524
524
  "div",
525
525
  {
526
526
  ref,
@@ -529,7 +529,7 @@ var CardTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE_
529
529
  }
530
530
  ));
531
531
  CardTitle.displayName = "CardTitle";
532
- var CardDescription = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
532
+ var CardDescription = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
533
533
  "div",
534
534
  {
535
535
  ref,
@@ -538,9 +538,9 @@ var CardDescription = React24.forwardRef(({ className, ...props }, ref) => /* @_
538
538
  }
539
539
  ));
540
540
  CardDescription.displayName = "CardDescription";
541
- var CardContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-3 flex-1 overflow-y-auto", className), ...props }));
541
+ var CardContent = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-3 flex-1 overflow-y-auto", className), ...props }));
542
542
  CardContent.displayName = "CardContent";
543
- var CardFooter = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
543
+ var CardFooter = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
544
544
  "div",
545
545
  {
546
546
  ref,
@@ -549,7 +549,7 @@ var CardFooter = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE
549
549
  }
550
550
  ));
551
551
  CardFooter.displayName = "CardFooter";
552
- var CardWithHeader = React24.forwardRef(
552
+ var CardWithHeader = React25.forwardRef(
553
553
  ({ className, title, description, headerClassName, contentClassName, footerClassName, footer, children, ...props }, ref) => /* @__PURE__ */ jsxs(Card, { ref, className, ...props, children: [
554
554
  /* @__PURE__ */ jsxs(CardHeader, { className: `${headerClassName} rounded-t-md`, children: [
555
555
  typeof title === "string" ? /* @__PURE__ */ jsx(CardTitle, { children: title }) : title,
@@ -560,15 +560,15 @@ var CardWithHeader = React24.forwardRef(
560
560
  ] })
561
561
  );
562
562
  CardWithHeader.displayName = "CardWithHeader";
563
- var CarouselContext = React24.createContext(null);
563
+ var CarouselContext = React25.createContext(null);
564
564
  function useCarousel() {
565
- const context = React24.useContext(CarouselContext);
565
+ const context = React25.useContext(CarouselContext);
566
566
  if (!context) {
567
567
  throw new Error("useCarousel must be used within a <Carousel />");
568
568
  }
569
569
  return context;
570
570
  }
571
- var Carousel = React24.forwardRef(
571
+ var Carousel = React25.forwardRef(
572
572
  ({
573
573
  orientation = "horizontal",
574
574
  opts,
@@ -585,22 +585,22 @@ var Carousel = React24.forwardRef(
585
585
  },
586
586
  plugins
587
587
  );
588
- const [canScrollPrev, setCanScrollPrev] = React24.useState(false);
589
- const [canScrollNext, setCanScrollNext] = React24.useState(false);
590
- const onSelect = React24.useCallback((api2) => {
588
+ const [canScrollPrev, setCanScrollPrev] = React25.useState(false);
589
+ const [canScrollNext, setCanScrollNext] = React25.useState(false);
590
+ const onSelect = React25.useCallback((api2) => {
591
591
  if (!api2) {
592
592
  return;
593
593
  }
594
594
  setCanScrollPrev(api2.canScrollPrev());
595
595
  setCanScrollNext(api2.canScrollNext());
596
596
  }, []);
597
- const scrollPrev = React24.useCallback(() => {
597
+ const scrollPrev = React25.useCallback(() => {
598
598
  api?.scrollPrev();
599
599
  }, [api]);
600
- const scrollNext = React24.useCallback(() => {
600
+ const scrollNext = React25.useCallback(() => {
601
601
  api?.scrollNext();
602
602
  }, [api]);
603
- const handleKeyDown = React24.useCallback(
603
+ const handleKeyDown = React25.useCallback(
604
604
  (event) => {
605
605
  if (event.key === "ArrowLeft") {
606
606
  event.preventDefault();
@@ -612,13 +612,13 @@ var Carousel = React24.forwardRef(
612
612
  },
613
613
  [scrollPrev, scrollNext]
614
614
  );
615
- React24.useEffect(() => {
615
+ React25.useEffect(() => {
616
616
  if (!api || !setApi) {
617
617
  return;
618
618
  }
619
619
  setApi(api);
620
620
  }, [api, setApi]);
621
- React24.useEffect(() => {
621
+ React25.useEffect(() => {
622
622
  if (!api) {
623
623
  return;
624
624
  }
@@ -659,7 +659,7 @@ var Carousel = React24.forwardRef(
659
659
  }
660
660
  );
661
661
  Carousel.displayName = "Carousel";
662
- var CarouselContent = React24.forwardRef(({ className, ...props }, ref) => {
662
+ var CarouselContent = React25.forwardRef(({ className, ...props }, ref) => {
663
663
  const { carouselRef, orientation } = useCarousel();
664
664
  return /* @__PURE__ */ jsx("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx(
665
665
  "div",
@@ -675,7 +675,7 @@ var CarouselContent = React24.forwardRef(({ className, ...props }, ref) => {
675
675
  ) });
676
676
  });
677
677
  CarouselContent.displayName = "CarouselContent";
678
- var CarouselItem = React24.forwardRef(({ className, ...props }, ref) => {
678
+ var CarouselItem = React25.forwardRef(({ className, ...props }, ref) => {
679
679
  const { orientation } = useCarousel();
680
680
  return /* @__PURE__ */ jsx(
681
681
  "div",
@@ -693,7 +693,7 @@ var CarouselItem = React24.forwardRef(({ className, ...props }, ref) => {
693
693
  );
694
694
  });
695
695
  CarouselItem.displayName = "CarouselItem";
696
- var CarouselPrevious = React24.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
696
+ var CarouselPrevious = React25.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
697
697
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
698
698
  return /* @__PURE__ */ jsxs(
699
699
  Button,
@@ -717,7 +717,7 @@ var CarouselPrevious = React24.forwardRef(({ className, variant = "outline", siz
717
717
  );
718
718
  });
719
719
  CarouselPrevious.displayName = "CarouselPrevious";
720
- var CarouselNext = React24.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
720
+ var CarouselNext = React25.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
721
721
  const { orientation, scrollNext, canScrollNext } = useCarousel();
722
722
  return /* @__PURE__ */ jsxs(
723
723
  Button,
@@ -745,7 +745,7 @@ var Dialog = DialogPrimitive.Root;
745
745
  var DialogTrigger = DialogPrimitive.Trigger;
746
746
  var DialogPortal = DialogPrimitive.Portal;
747
747
  var DialogClose = DialogPrimitive.Close;
748
- var DialogOverlay = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
748
+ var DialogOverlay = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
749
749
  DialogPrimitive.Overlay,
750
750
  {
751
751
  ref,
@@ -757,7 +757,7 @@ var DialogOverlay = React24.forwardRef(({ className, ...props }, ref) => /* @__P
757
757
  }
758
758
  ));
759
759
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
760
- var DialogContent = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
760
+ var DialogContent = React25.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
761
761
  /* @__PURE__ */ jsx(DialogOverlay, {}),
762
762
  /* @__PURE__ */ jsxs(
763
763
  DialogPrimitive.Content,
@@ -807,7 +807,7 @@ var DialogFooter = ({
807
807
  }
808
808
  );
809
809
  DialogFooter.displayName = "DialogFooter";
810
- var DialogTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
810
+ var DialogTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
811
811
  DialogPrimitive.Title,
812
812
  {
813
813
  ref,
@@ -819,7 +819,7 @@ var DialogTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
819
819
  }
820
820
  ));
821
821
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
822
- var DialogDescription = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
822
+ var DialogDescription = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
823
823
  DialogPrimitive.Description,
824
824
  {
825
825
  ref,
@@ -828,7 +828,7 @@ var DialogDescription = React24.forwardRef(({ className, ...props }, ref) => /*
828
828
  }
829
829
  ));
830
830
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
831
- var Command = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
831
+ var Command = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
832
832
  Command$1,
833
833
  {
834
834
  ref,
@@ -843,7 +843,7 @@ Command.displayName = Command$1.displayName;
843
843
  var CommandDialog = ({ children, ...props }) => {
844
844
  return /* @__PURE__ */ jsx(Dialog, { ...props, children: /* @__PURE__ */ jsx(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ jsx(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[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", children }) }) });
845
845
  };
846
- var CommandInput = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
846
+ var CommandInput = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
847
847
  /* @__PURE__ */ jsx(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
848
848
  /* @__PURE__ */ jsx(
849
849
  Command$1.Input,
@@ -858,7 +858,7 @@ var CommandInput = React24.forwardRef(({ className, ...props }, ref) => /* @__PU
858
858
  )
859
859
  ] }));
860
860
  CommandInput.displayName = Command$1.Input.displayName;
861
- var CommandList = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
861
+ var CommandList = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
862
862
  Command$1.List,
863
863
  {
864
864
  ref,
@@ -867,7 +867,7 @@ var CommandList = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
867
867
  }
868
868
  ));
869
869
  CommandList.displayName = Command$1.List.displayName;
870
- var CommandEmpty = React24.forwardRef((props, ref) => /* @__PURE__ */ jsx(
870
+ var CommandEmpty = React25.forwardRef((props, ref) => /* @__PURE__ */ jsx(
871
871
  Command$1.Empty,
872
872
  {
873
873
  ref,
@@ -876,7 +876,7 @@ var CommandEmpty = React24.forwardRef((props, ref) => /* @__PURE__ */ jsx(
876
876
  }
877
877
  ));
878
878
  CommandEmpty.displayName = Command$1.Empty.displayName;
879
- var CommandGroup = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
879
+ var CommandGroup = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
880
880
  Command$1.Group,
881
881
  {
882
882
  ref,
@@ -888,7 +888,7 @@ var CommandGroup = React24.forwardRef(({ className, ...props }, ref) => /* @__PU
888
888
  }
889
889
  ));
890
890
  CommandGroup.displayName = Command$1.Group.displayName;
891
- var CommandSeparator = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
891
+ var CommandSeparator = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
892
892
  Command$1.Separator,
893
893
  {
894
894
  ref,
@@ -897,7 +897,7 @@ var CommandSeparator = React24.forwardRef(({ className, ...props }, ref) => /* @
897
897
  }
898
898
  ));
899
899
  CommandSeparator.displayName = Command$1.Separator.displayName;
900
- var CommandItem = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
900
+ var CommandItem = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
901
901
  Command$1.Item,
902
902
  {
903
903
  ref,
@@ -931,7 +931,7 @@ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
931
931
  var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
932
932
  var DropdownMenuSub = DropdownMenuPrimitive.Sub;
933
933
  var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
934
- var DropdownMenuSubTrigger = React24.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
934
+ var DropdownMenuSubTrigger = React25.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
935
935
  DropdownMenuPrimitive.SubTrigger,
936
936
  {
937
937
  ref,
@@ -948,7 +948,7 @@ var DropdownMenuSubTrigger = React24.forwardRef(({ className, inset, children, .
948
948
  }
949
949
  ));
950
950
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
951
- var DropdownMenuSubContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
951
+ var DropdownMenuSubContent = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
952
952
  DropdownMenuPrimitive.SubContent,
953
953
  {
954
954
  ref,
@@ -960,7 +960,7 @@ var DropdownMenuSubContent = React24.forwardRef(({ className, ...props }, ref) =
960
960
  }
961
961
  ));
962
962
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
963
- var DropdownMenuContent = React24.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
963
+ var DropdownMenuContent = React25.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
964
964
  DropdownMenuPrimitive.Content,
965
965
  {
966
966
  ref,
@@ -974,7 +974,7 @@ var DropdownMenuContent = React24.forwardRef(({ className, sideOffset = 4, ...pr
974
974
  }
975
975
  ) }));
976
976
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
977
- var DropdownMenuItem = React24.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
977
+ var DropdownMenuItem = React25.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
978
978
  DropdownMenuPrimitive.Item,
979
979
  {
980
980
  ref,
@@ -987,7 +987,7 @@ var DropdownMenuItem = React24.forwardRef(({ className, inset, ...props }, ref)
987
987
  }
988
988
  ));
989
989
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
990
- var DropdownMenuCheckboxItem = React24.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
990
+ var DropdownMenuCheckboxItem = React25.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
991
991
  DropdownMenuPrimitive.CheckboxItem,
992
992
  {
993
993
  ref,
@@ -1004,7 +1004,7 @@ var DropdownMenuCheckboxItem = React24.forwardRef(({ className, children, checke
1004
1004
  }
1005
1005
  ));
1006
1006
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
1007
- var DropdownMenuRadioItem = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1007
+ var DropdownMenuRadioItem = React25.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1008
1008
  DropdownMenuPrimitive.RadioItem,
1009
1009
  {
1010
1010
  ref,
@@ -1020,7 +1020,7 @@ var DropdownMenuRadioItem = React24.forwardRef(({ className, children, ...props
1020
1020
  }
1021
1021
  ));
1022
1022
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
1023
- var DropdownMenuLabel = React24.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
1023
+ var DropdownMenuLabel = React25.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
1024
1024
  DropdownMenuPrimitive.Label,
1025
1025
  {
1026
1026
  ref,
@@ -1033,7 +1033,7 @@ var DropdownMenuLabel = React24.forwardRef(({ className, inset, ...props }, ref)
1033
1033
  }
1034
1034
  ));
1035
1035
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
1036
- var DropdownMenuSeparator = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1036
+ var DropdownMenuSeparator = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1037
1037
  DropdownMenuPrimitive.Separator,
1038
1038
  {
1039
1039
  ref,
@@ -1057,7 +1057,7 @@ var DropdownMenuShortcut = ({
1057
1057
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
1058
1058
  var HoverCard = HoverCardPrimitive.Root;
1059
1059
  var HoverCardTrigger = HoverCardPrimitive.Trigger;
1060
- var HoverCardContent = React24.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
1060
+ var HoverCardContent = React25.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
1061
1061
  HoverCardPrimitive.Content,
1062
1062
  {
1063
1063
  ref,
@@ -1300,7 +1300,7 @@ var linkVariants = cva(
1300
1300
  defaultVariants: { variant: "default" }
1301
1301
  }
1302
1302
  );
1303
- var Link = React24.forwardRef(
1303
+ var Link = React25.forwardRef(
1304
1304
  ({ className, variant, external, target, rel, ...props }, ref) => /* @__PURE__ */ jsx(
1305
1305
  "a",
1306
1306
  {
@@ -1338,7 +1338,7 @@ function MenubarSub({
1338
1338
  }) {
1339
1339
  return /* @__PURE__ */ jsx(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
1340
1340
  }
1341
- var Menubar = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1341
+ var Menubar = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1342
1342
  MenubarPrimitive.Root,
1343
1343
  {
1344
1344
  ref,
@@ -1350,7 +1350,7 @@ var Menubar = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1350
1350
  }
1351
1351
  ));
1352
1352
  Menubar.displayName = MenubarPrimitive.Root.displayName;
1353
- var MenubarTrigger = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1353
+ var MenubarTrigger = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1354
1354
  MenubarPrimitive.Trigger,
1355
1355
  {
1356
1356
  ref,
@@ -1362,7 +1362,7 @@ var MenubarTrigger = React24.forwardRef(({ className, ...props }, ref) => /* @__
1362
1362
  }
1363
1363
  ));
1364
1364
  MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
1365
- var MenubarSubTrigger = React24.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1365
+ var MenubarSubTrigger = React25.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1366
1366
  MenubarPrimitive.SubTrigger,
1367
1367
  {
1368
1368
  ref,
@@ -1379,7 +1379,7 @@ var MenubarSubTrigger = React24.forwardRef(({ className, inset, children, ...pro
1379
1379
  }
1380
1380
  ));
1381
1381
  MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
1382
- var MenubarSubContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1382
+ var MenubarSubContent = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1383
1383
  MenubarPrimitive.SubContent,
1384
1384
  {
1385
1385
  ref,
@@ -1391,7 +1391,7 @@ var MenubarSubContent = React24.forwardRef(({ className, ...props }, ref) => /*
1391
1391
  }
1392
1392
  ));
1393
1393
  MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
1394
- var MenubarContent = React24.forwardRef(
1394
+ var MenubarContent = React25.forwardRef(
1395
1395
  ({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx(
1396
1396
  MenubarPrimitive.Content,
1397
1397
  {
@@ -1408,7 +1408,7 @@ var MenubarContent = React24.forwardRef(
1408
1408
  ) })
1409
1409
  );
1410
1410
  MenubarContent.displayName = MenubarPrimitive.Content.displayName;
1411
- var MenubarItem = React24.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
1411
+ var MenubarItem = React25.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
1412
1412
  MenubarPrimitive.Item,
1413
1413
  {
1414
1414
  ref,
@@ -1421,7 +1421,7 @@ var MenubarItem = React24.forwardRef(({ className, inset, ...props }, ref) => /*
1421
1421
  }
1422
1422
  ));
1423
1423
  MenubarItem.displayName = MenubarPrimitive.Item.displayName;
1424
- var MenubarCheckboxItem = React24.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
1424
+ var MenubarCheckboxItem = React25.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
1425
1425
  MenubarPrimitive.CheckboxItem,
1426
1426
  {
1427
1427
  ref,
@@ -1438,7 +1438,7 @@ var MenubarCheckboxItem = React24.forwardRef(({ className, children, checked, ..
1438
1438
  }
1439
1439
  ));
1440
1440
  MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
1441
- var MenubarRadioItem = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1441
+ var MenubarRadioItem = React25.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1442
1442
  MenubarPrimitive.RadioItem,
1443
1443
  {
1444
1444
  ref,
@@ -1454,7 +1454,7 @@ var MenubarRadioItem = React24.forwardRef(({ className, children, ...props }, re
1454
1454
  }
1455
1455
  ));
1456
1456
  MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
1457
- var MenubarLabel = React24.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
1457
+ var MenubarLabel = React25.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
1458
1458
  MenubarPrimitive.Label,
1459
1459
  {
1460
1460
  ref,
@@ -1467,7 +1467,7 @@ var MenubarLabel = React24.forwardRef(({ className, inset, ...props }, ref) => /
1467
1467
  }
1468
1468
  ));
1469
1469
  MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
1470
- var MenubarSeparator = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1470
+ var MenubarSeparator = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1471
1471
  MenubarPrimitive.Separator,
1472
1472
  {
1473
1473
  ref,
@@ -1492,7 +1492,7 @@ var MenubarShortcut = ({
1492
1492
  );
1493
1493
  };
1494
1494
  MenubarShortcut.displayname = "MenubarShortcut";
1495
- var NavigationMenu = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1495
+ var NavigationMenu = React25.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1496
1496
  NavigationMenuPrimitive.Root,
1497
1497
  {
1498
1498
  ref,
@@ -1508,7 +1508,7 @@ var NavigationMenu = React24.forwardRef(({ className, children, ...props }, ref)
1508
1508
  }
1509
1509
  ));
1510
1510
  NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
1511
- var NavigationMenuList = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1511
+ var NavigationMenuList = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1512
1512
  NavigationMenuPrimitive.List,
1513
1513
  {
1514
1514
  ref,
@@ -1524,7 +1524,7 @@ var NavigationMenuItem = NavigationMenuPrimitive.Item;
1524
1524
  var navigationMenuTriggerStyle = cva(
1525
1525
  "group inline-flex h-10 w-max items-center justify-center rounded-control bg-background px-4 py-2 font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-accent-foreground data-[state=open]:bg-accent/50 data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent"
1526
1526
  );
1527
- var NavigationMenuTrigger = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1527
+ var NavigationMenuTrigger = React25.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1528
1528
  NavigationMenuPrimitive.Trigger,
1529
1529
  {
1530
1530
  ref,
@@ -1544,7 +1544,7 @@ var NavigationMenuTrigger = React24.forwardRef(({ className, children, ...props
1544
1544
  }
1545
1545
  ));
1546
1546
  NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
1547
- var NavigationMenuContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1547
+ var NavigationMenuContent = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1548
1548
  NavigationMenuPrimitive.Content,
1549
1549
  {
1550
1550
  ref,
@@ -1557,7 +1557,7 @@ var NavigationMenuContent = React24.forwardRef(({ className, ...props }, ref) =>
1557
1557
  ));
1558
1558
  NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
1559
1559
  var NavigationMenuLink = NavigationMenuPrimitive.Link;
1560
- var NavigationMenuViewport = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx(
1560
+ var NavigationMenuViewport = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx(
1561
1561
  NavigationMenuPrimitive.Viewport,
1562
1562
  {
1563
1563
  className: cn(
@@ -1569,7 +1569,7 @@ var NavigationMenuViewport = React24.forwardRef(({ className, ...props }, ref) =
1569
1569
  }
1570
1570
  ) }));
1571
1571
  NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
1572
- var NavigationMenuIndicator = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1572
+ var NavigationMenuIndicator = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1573
1573
  NavigationMenuPrimitive.Indicator,
1574
1574
  {
1575
1575
  ref,
@@ -1592,7 +1592,7 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx(
1592
1592
  }
1593
1593
  );
1594
1594
  Pagination.displayName = "Pagination";
1595
- var PaginationContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1595
+ var PaginationContent = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1596
1596
  "ul",
1597
1597
  {
1598
1598
  ref,
@@ -1601,7 +1601,7 @@ var PaginationContent = React24.forwardRef(({ className, ...props }, ref) => /*
1601
1601
  }
1602
1602
  ));
1603
1603
  PaginationContent.displayName = "PaginationContent";
1604
- var PaginationItem = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("li", { ref, className: cn("", className), ...props }));
1604
+ var PaginationItem = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("li", { ref, className: cn("", className), ...props }));
1605
1605
  PaginationItem.displayName = "PaginationItem";
1606
1606
  var PaginationLink = ({
1607
1607
  className,
@@ -1675,7 +1675,7 @@ var PaginationEllipsis = ({
1675
1675
  PaginationEllipsis.displayName = "PaginationEllipsis";
1676
1676
  var Popover = PopoverPrimitive.Root;
1677
1677
  var PopoverTrigger = PopoverPrimitive.Trigger;
1678
- var PopoverContent = React24.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
1678
+ var PopoverContent = React25.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
1679
1679
  PopoverPrimitive.Content,
1680
1680
  {
1681
1681
  ref,
@@ -1689,7 +1689,7 @@ var PopoverContent = React24.forwardRef(({ className, align = "center", sideOffs
1689
1689
  }
1690
1690
  ) }));
1691
1691
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
1692
- var Progress = React24.forwardRef(({ className, value, size = "default", ...props }, ref) => /* @__PURE__ */ jsx(
1692
+ var Progress = React25.forwardRef(({ className, value, size = "default", ...props }, ref) => /* @__PURE__ */ jsx(
1693
1693
  ProgressPrimitive.Root,
1694
1694
  {
1695
1695
  ref,
@@ -1733,7 +1733,7 @@ var ResizableHandle = ({
1733
1733
  /* @__PURE__ */ jsx("div", { className: "z-10 h-6 w-[3px] rounded-full bg-muted-foreground/40" })
1734
1734
  }
1735
1735
  );
1736
- var ScrollArea = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1736
+ var ScrollArea = React25.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1737
1737
  ScrollAreaPrimitive.Root,
1738
1738
  {
1739
1739
  ref,
@@ -1747,7 +1747,7 @@ var ScrollArea = React24.forwardRef(({ className, children, ...props }, ref) =>
1747
1747
  }
1748
1748
  ));
1749
1749
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
1750
- var ScrollBar = React24.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx(
1750
+ var ScrollBar = React25.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx(
1751
1751
  ScrollAreaPrimitive.ScrollAreaScrollbar,
1752
1752
  {
1753
1753
  ref,
@@ -1763,11 +1763,90 @@ var ScrollBar = React24.forwardRef(({ className, orientation = "vertical", ...pr
1763
1763
  }
1764
1764
  ));
1765
1765
  ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
1766
+ var SegmentedControl = React25.forwardRef(
1767
+ ({
1768
+ options,
1769
+ value,
1770
+ defaultValue,
1771
+ onValueChange,
1772
+ size = "xs",
1773
+ stretch,
1774
+ className,
1775
+ ...props
1776
+ }, ref) => {
1777
+ const [internal, setInternal] = React25.useState(
1778
+ defaultValue ?? options[0]?.value
1779
+ );
1780
+ const active = value ?? internal;
1781
+ const refs = React25.useRef([]);
1782
+ const select = (next) => {
1783
+ if (value == null) setInternal(next);
1784
+ onValueChange?.(next);
1785
+ };
1786
+ const onKeyDown = (event, index) => {
1787
+ const forward = event.key === "ArrowRight" || event.key === "ArrowDown";
1788
+ const back = event.key === "ArrowLeft" || event.key === "ArrowUp";
1789
+ if (!forward && !back) return;
1790
+ event.preventDefault();
1791
+ const step = forward ? 1 : -1;
1792
+ for (let i = 1; i <= options.length; i += 1) {
1793
+ const next = options[(index + step * i + options.length * i) % options.length];
1794
+ if (next && !next.disabled) {
1795
+ select(next.value);
1796
+ refs.current[options.indexOf(next)]?.focus();
1797
+ return;
1798
+ }
1799
+ }
1800
+ };
1801
+ return /* @__PURE__ */ jsx(
1802
+ "div",
1803
+ {
1804
+ ref,
1805
+ role: "radiogroup",
1806
+ className: cn(
1807
+ "inline-flex overflow-hidden rounded-control border border-border",
1808
+ stretch && "flex w-full",
1809
+ className
1810
+ ),
1811
+ ...props,
1812
+ children: options.map((option, index) => {
1813
+ const on = option.value === active;
1814
+ return /* @__PURE__ */ jsx(
1815
+ "button",
1816
+ {
1817
+ ref: (node) => {
1818
+ refs.current[index] = node;
1819
+ },
1820
+ type: "button",
1821
+ role: "radio",
1822
+ "aria-checked": on,
1823
+ disabled: option.disabled,
1824
+ tabIndex: on ? 0 : -1,
1825
+ onClick: () => select(option.value),
1826
+ onKeyDown: (event) => onKeyDown(event, index),
1827
+ className: cn(
1828
+ "min-w-0 truncate px-2 text-center whitespace-nowrap",
1829
+ "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring",
1830
+ size === "xs" ? "h-[22px] text-sm" : "h-[26px]",
1831
+ stretch && "flex-1",
1832
+ on ? "bg-primary/12 font-medium text-primary" : "text-muted-foreground hover:bg-accent hover:text-foreground",
1833
+ option.disabled && "pointer-events-none opacity-50"
1834
+ ),
1835
+ children: option.label
1836
+ },
1837
+ option.value
1838
+ );
1839
+ })
1840
+ }
1841
+ );
1842
+ }
1843
+ );
1844
+ SegmentedControl.displayName = "SegmentedControl";
1766
1845
  var Sheet = DialogPrimitive.Root;
1767
1846
  var SheetTrigger = DialogPrimitive.Trigger;
1768
1847
  var SheetClose = DialogPrimitive.Close;
1769
1848
  var SheetPortal = DialogPrimitive.Portal;
1770
- var SheetOverlay = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1849
+ var SheetOverlay = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1771
1850
  DialogPrimitive.Overlay,
1772
1851
  {
1773
1852
  className: cn(
@@ -1795,7 +1874,7 @@ var sheetVariants = cva(
1795
1874
  }
1796
1875
  }
1797
1876
  );
1798
- var SheetContent = React24.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(SheetPortal, { children: [
1877
+ var SheetContent = React25.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(SheetPortal, { children: [
1799
1878
  /* @__PURE__ */ jsx(SheetOverlay, {}),
1800
1879
  /* @__PURE__ */ jsxs(
1801
1880
  DialogPrimitive.Content,
@@ -1842,7 +1921,7 @@ var SheetFooter = ({
1842
1921
  }
1843
1922
  );
1844
1923
  SheetFooter.displayName = "SheetFooter";
1845
- var SheetTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1924
+ var SheetTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1846
1925
  DialogPrimitive.Title,
1847
1926
  {
1848
1927
  ref,
@@ -1851,7 +1930,7 @@ var SheetTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE
1851
1930
  }
1852
1931
  ));
1853
1932
  SheetTitle.displayName = DialogPrimitive.Title.displayName;
1854
- var SheetDescription = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1933
+ var SheetDescription = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1855
1934
  DialogPrimitive.Description,
1856
1935
  {
1857
1936
  ref,
@@ -1862,8 +1941,8 @@ var SheetDescription = React24.forwardRef(({ className, ...props }, ref) => /* @
1862
1941
  SheetDescription.displayName = DialogPrimitive.Description.displayName;
1863
1942
  var MOBILE_BREAKPOINT = 768;
1864
1943
  function useIsMobile() {
1865
- const [isMobile, setIsMobile] = React24.useState(void 0);
1866
- React24.useEffect(() => {
1944
+ const [isMobile, setIsMobile] = React25.useState(void 0);
1945
+ React25.useEffect(() => {
1867
1946
  const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
1868
1947
  const onChange = () => {
1869
1948
  setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
@@ -1889,7 +1968,7 @@ function Skeleton({
1889
1968
  var TooltipProvider = TooltipPrimitive.Provider;
1890
1969
  var Tooltip = TooltipPrimitive.Root;
1891
1970
  var TooltipTrigger = TooltipPrimitive.Trigger;
1892
- var TooltipContent = React24.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
1971
+ var TooltipContent = React25.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
1893
1972
  TooltipPrimitive.Content,
1894
1973
  {
1895
1974
  ref,
@@ -1908,15 +1987,15 @@ var SIDEBAR_WIDTH = "16rem";
1908
1987
  var SIDEBAR_WIDTH_MOBILE = "18rem";
1909
1988
  var SIDEBAR_WIDTH_ICON = "3rem";
1910
1989
  var SIDEBAR_KEYBOARD_SHORTCUT = "b";
1911
- var SidebarContext = React24.createContext(null);
1990
+ var SidebarContext = React25.createContext(null);
1912
1991
  function useSidebar() {
1913
- const context = React24.useContext(SidebarContext);
1992
+ const context = React25.useContext(SidebarContext);
1914
1993
  if (!context) {
1915
1994
  throw new Error("useSidebar must be used within a SidebarProvider.");
1916
1995
  }
1917
1996
  return context;
1918
1997
  }
1919
- var SidebarProvider = React24.forwardRef(
1998
+ var SidebarProvider = React25.forwardRef(
1920
1999
  ({
1921
2000
  defaultOpen = true,
1922
2001
  open: openProp,
@@ -1927,10 +2006,10 @@ var SidebarProvider = React24.forwardRef(
1927
2006
  ...props
1928
2007
  }, ref) => {
1929
2008
  const isMobile = useIsMobile();
1930
- const [openMobile, setOpenMobile] = React24.useState(false);
1931
- const [_open, _setOpen] = React24.useState(defaultOpen);
2009
+ const [openMobile, setOpenMobile] = React25.useState(false);
2010
+ const [_open, _setOpen] = React25.useState(defaultOpen);
1932
2011
  const open = openProp ?? _open;
1933
- const setOpen = React24.useCallback(
2012
+ const setOpen = React25.useCallback(
1934
2013
  (value) => {
1935
2014
  const openState = typeof value === "function" ? value(open) : value;
1936
2015
  if (setOpenProp) {
@@ -1942,10 +2021,10 @@ var SidebarProvider = React24.forwardRef(
1942
2021
  },
1943
2022
  [setOpenProp, open]
1944
2023
  );
1945
- const toggleSidebar = React24.useCallback(() => {
2024
+ const toggleSidebar = React25.useCallback(() => {
1946
2025
  return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
1947
2026
  }, [isMobile, setOpen, setOpenMobile]);
1948
- React24.useEffect(() => {
2027
+ React25.useEffect(() => {
1949
2028
  const handleKeyDown = (event) => {
1950
2029
  if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
1951
2030
  event.preventDefault();
@@ -1956,7 +2035,7 @@ var SidebarProvider = React24.forwardRef(
1956
2035
  return () => window.removeEventListener("keydown", handleKeyDown);
1957
2036
  }, [toggleSidebar]);
1958
2037
  const state = open ? "expanded" : "collapsed";
1959
- const contextValue = React24.useMemo(
2038
+ const contextValue = React25.useMemo(
1960
2039
  () => ({
1961
2040
  state,
1962
2041
  open,
@@ -1988,7 +2067,7 @@ var SidebarProvider = React24.forwardRef(
1988
2067
  }
1989
2068
  );
1990
2069
  SidebarProvider.displayName = "SidebarProvider";
1991
- var Sidebar = React24.forwardRef(
2070
+ var Sidebar = React25.forwardRef(
1992
2071
  ({
1993
2072
  side = "left",
1994
2073
  variant = "sidebar",
@@ -2081,7 +2160,7 @@ var Sidebar = React24.forwardRef(
2081
2160
  }
2082
2161
  );
2083
2162
  Sidebar.displayName = "Sidebar";
2084
- var SidebarTrigger = React24.forwardRef(({ className, onClick, ...props }, ref) => {
2163
+ var SidebarTrigger = React25.forwardRef(({ className, onClick, ...props }, ref) => {
2085
2164
  const { toggleSidebar } = useSidebar();
2086
2165
  return /* @__PURE__ */ jsxs(
2087
2166
  Button,
@@ -2104,7 +2183,7 @@ var SidebarTrigger = React24.forwardRef(({ className, onClick, ...props }, ref)
2104
2183
  );
2105
2184
  });
2106
2185
  SidebarTrigger.displayName = "SidebarTrigger";
2107
- var SidebarRail = React24.forwardRef(({ className, ...props }, ref) => {
2186
+ var SidebarRail = React25.forwardRef(({ className, ...props }, ref) => {
2108
2187
  const { toggleSidebar } = useSidebar();
2109
2188
  return /* @__PURE__ */ jsx(
2110
2189
  "button",
@@ -2129,7 +2208,7 @@ var SidebarRail = React24.forwardRef(({ className, ...props }, ref) => {
2129
2208
  );
2130
2209
  });
2131
2210
  SidebarRail.displayName = "SidebarRail";
2132
- var SidebarInset = React24.forwardRef(({ className, ...props }, ref) => {
2211
+ var SidebarInset = React25.forwardRef(({ className, ...props }, ref) => {
2133
2212
  return /* @__PURE__ */ jsx(
2134
2213
  "main",
2135
2214
  {
@@ -2144,7 +2223,7 @@ var SidebarInset = React24.forwardRef(({ className, ...props }, ref) => {
2144
2223
  );
2145
2224
  });
2146
2225
  SidebarInset.displayName = "SidebarInset";
2147
- var SidebarInput = React24.forwardRef(({ className, type, ...props }, ref) => {
2226
+ var SidebarInput = React25.forwardRef(({ className, type, ...props }, ref) => {
2148
2227
  return /* @__PURE__ */ jsx(
2149
2228
  "input",
2150
2229
  {
@@ -2162,7 +2241,7 @@ var SidebarInput = React24.forwardRef(({ className, type, ...props }, ref) => {
2162
2241
  );
2163
2242
  });
2164
2243
  SidebarInput.displayName = "SidebarInput";
2165
- var SidebarHeader = React24.forwardRef(({ className, ...props }, ref) => {
2244
+ var SidebarHeader = React25.forwardRef(({ className, ...props }, ref) => {
2166
2245
  return /* @__PURE__ */ jsx(
2167
2246
  "div",
2168
2247
  {
@@ -2174,7 +2253,7 @@ var SidebarHeader = React24.forwardRef(({ className, ...props }, ref) => {
2174
2253
  );
2175
2254
  });
2176
2255
  SidebarHeader.displayName = "SidebarHeader";
2177
- var SidebarFooter = React24.forwardRef(({ className, ...props }, ref) => {
2256
+ var SidebarFooter = React25.forwardRef(({ className, ...props }, ref) => {
2178
2257
  return /* @__PURE__ */ jsx(
2179
2258
  "div",
2180
2259
  {
@@ -2186,7 +2265,7 @@ var SidebarFooter = React24.forwardRef(({ className, ...props }, ref) => {
2186
2265
  );
2187
2266
  });
2188
2267
  SidebarFooter.displayName = "SidebarFooter";
2189
- var SidebarSeparator = React24.forwardRef(({ className, ...props }, ref) => {
2268
+ var SidebarSeparator = React25.forwardRef(({ className, ...props }, ref) => {
2190
2269
  return /* @__PURE__ */ jsx(
2191
2270
  Separator,
2192
2271
  {
@@ -2198,7 +2277,7 @@ var SidebarSeparator = React24.forwardRef(({ className, ...props }, ref) => {
2198
2277
  );
2199
2278
  });
2200
2279
  SidebarSeparator.displayName = "SidebarSeparator";
2201
- var SidebarContent = React24.forwardRef(({ className, ...props }, ref) => {
2280
+ var SidebarContent = React25.forwardRef(({ className, ...props }, ref) => {
2202
2281
  return /* @__PURE__ */ jsx(
2203
2282
  "div",
2204
2283
  {
@@ -2213,7 +2292,7 @@ var SidebarContent = React24.forwardRef(({ className, ...props }, ref) => {
2213
2292
  );
2214
2293
  });
2215
2294
  SidebarContent.displayName = "SidebarContent";
2216
- var SidebarGroup = React24.forwardRef(({ className, ...props }, ref) => {
2295
+ var SidebarGroup = React25.forwardRef(({ className, ...props }, ref) => {
2217
2296
  return /* @__PURE__ */ jsx(
2218
2297
  "div",
2219
2298
  {
@@ -2225,7 +2304,7 @@ var SidebarGroup = React24.forwardRef(({ className, ...props }, ref) => {
2225
2304
  );
2226
2305
  });
2227
2306
  SidebarGroup.displayName = "SidebarGroup";
2228
- var SidebarGroupLabel = React24.forwardRef(({ className, asChild = false, ...props }, ref) => {
2307
+ var SidebarGroupLabel = React25.forwardRef(({ className, asChild = false, ...props }, ref) => {
2229
2308
  const Comp = asChild ? Slot : "div";
2230
2309
  return /* @__PURE__ */ jsx(
2231
2310
  Comp,
@@ -2242,7 +2321,7 @@ var SidebarGroupLabel = React24.forwardRef(({ className, asChild = false, ...pro
2242
2321
  );
2243
2322
  });
2244
2323
  SidebarGroupLabel.displayName = "SidebarGroupLabel";
2245
- var SidebarGroupAction = React24.forwardRef(({ className, asChild = false, ...props }, ref) => {
2324
+ var SidebarGroupAction = React25.forwardRef(({ className, asChild = false, ...props }, ref) => {
2246
2325
  const Comp = asChild ? Slot : "button";
2247
2326
  return /* @__PURE__ */ jsx(
2248
2327
  Comp,
@@ -2261,7 +2340,7 @@ var SidebarGroupAction = React24.forwardRef(({ className, asChild = false, ...pr
2261
2340
  );
2262
2341
  });
2263
2342
  SidebarGroupAction.displayName = "SidebarGroupAction";
2264
- var SidebarGroupContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2343
+ var SidebarGroupContent = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2265
2344
  "div",
2266
2345
  {
2267
2346
  ref,
@@ -2271,7 +2350,7 @@ var SidebarGroupContent = React24.forwardRef(({ className, ...props }, ref) => /
2271
2350
  }
2272
2351
  ));
2273
2352
  SidebarGroupContent.displayName = "SidebarGroupContent";
2274
- var SidebarMenu = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2353
+ var SidebarMenu = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2275
2354
  "ul",
2276
2355
  {
2277
2356
  ref,
@@ -2281,7 +2360,7 @@ var SidebarMenu = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
2281
2360
  }
2282
2361
  ));
2283
2362
  SidebarMenu.displayName = "SidebarMenu";
2284
- var SidebarMenuItem = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2363
+ var SidebarMenuItem = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2285
2364
  "li",
2286
2365
  {
2287
2366
  ref,
@@ -2311,7 +2390,7 @@ var sidebarMenuButtonVariants = cva(
2311
2390
  }
2312
2391
  }
2313
2392
  );
2314
- var SidebarMenuButton = React24.forwardRef(
2393
+ var SidebarMenuButton = React25.forwardRef(
2315
2394
  ({
2316
2395
  asChild = false,
2317
2396
  isActive = false,
@@ -2357,7 +2436,7 @@ var SidebarMenuButton = React24.forwardRef(
2357
2436
  }
2358
2437
  );
2359
2438
  SidebarMenuButton.displayName = "SidebarMenuButton";
2360
- var SidebarMenuAction = React24.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
2439
+ var SidebarMenuAction = React25.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
2361
2440
  const Comp = asChild ? Slot : "button";
2362
2441
  return /* @__PURE__ */ jsx(
2363
2442
  Comp,
@@ -2380,7 +2459,7 @@ var SidebarMenuAction = React24.forwardRef(({ className, asChild = false, showOn
2380
2459
  );
2381
2460
  });
2382
2461
  SidebarMenuAction.displayName = "SidebarMenuAction";
2383
- var SidebarMenuBadge = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2462
+ var SidebarMenuBadge = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2384
2463
  "div",
2385
2464
  {
2386
2465
  ref,
@@ -2398,8 +2477,8 @@ var SidebarMenuBadge = React24.forwardRef(({ className, ...props }, ref) => /* @
2398
2477
  }
2399
2478
  ));
2400
2479
  SidebarMenuBadge.displayName = "SidebarMenuBadge";
2401
- var SidebarMenuSkeleton = React24.forwardRef(({ className, showIcon = false, ...props }, ref) => {
2402
- const width = React24.useMemo(() => {
2480
+ var SidebarMenuSkeleton = React25.forwardRef(({ className, showIcon = false, ...props }, ref) => {
2481
+ const width = React25.useMemo(() => {
2403
2482
  return `${Math.floor(Math.random() * 40) + 50}%`;
2404
2483
  }, []);
2405
2484
  return /* @__PURE__ */ jsxs(
@@ -2432,7 +2511,7 @@ var SidebarMenuSkeleton = React24.forwardRef(({ className, showIcon = false, ...
2432
2511
  );
2433
2512
  });
2434
2513
  SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
2435
- var SidebarMenuSub = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2514
+ var SidebarMenuSub = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2436
2515
  "ul",
2437
2516
  {
2438
2517
  ref,
@@ -2446,9 +2525,9 @@ var SidebarMenuSub = React24.forwardRef(({ className, ...props }, ref) => /* @__
2446
2525
  }
2447
2526
  ));
2448
2527
  SidebarMenuSub.displayName = "SidebarMenuSub";
2449
- var SidebarMenuSubItem = React24.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("li", { ref, ...props }));
2528
+ var SidebarMenuSubItem = React25.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("li", { ref, ...props }));
2450
2529
  SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
2451
- var SidebarMenuSubButton = React24.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
2530
+ var SidebarMenuSubButton = React25.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
2452
2531
  const Comp = asChild ? Slot : "a";
2453
2532
  return /* @__PURE__ */ jsx(
2454
2533
  Comp,
@@ -2550,7 +2629,7 @@ var statusDotVariants = cva("inline-block shrink-0 rounded-full", {
2550
2629
  size: "sm"
2551
2630
  }
2552
2631
  });
2553
- var StatusDot = React24.forwardRef(
2632
+ var StatusDot = React25.forwardRef(
2554
2633
  ({ className, tone, size, label, ...props }, ref) => /* @__PURE__ */ jsx(
2555
2634
  "span",
2556
2635
  {
@@ -2564,7 +2643,7 @@ var StatusDot = React24.forwardRef(
2564
2643
  )
2565
2644
  );
2566
2645
  StatusDot.displayName = "StatusDot";
2567
- var Table = React24.forwardRef(({ className, density = "default", ...props }, ref) => /* @__PURE__ */ jsx(
2646
+ var Table = React25.forwardRef(({ className, density = "default", ...props }, ref) => /* @__PURE__ */ jsx(
2568
2647
  "div",
2569
2648
  {
2570
2649
  "data-density": density,
@@ -2580,9 +2659,9 @@ var Table = React24.forwardRef(({ className, density = "default", ...props }, re
2580
2659
  }
2581
2660
  ));
2582
2661
  Table.displayName = "Table";
2583
- var TableHeader = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
2662
+ var TableHeader = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
2584
2663
  TableHeader.displayName = "TableHeader";
2585
- var TableBody = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2664
+ var TableBody = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2586
2665
  "tbody",
2587
2666
  {
2588
2667
  ref,
@@ -2591,7 +2670,7 @@ var TableBody = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE_
2591
2670
  }
2592
2671
  ));
2593
2672
  TableBody.displayName = "TableBody";
2594
- var TableFooter = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2673
+ var TableFooter = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2595
2674
  "tfoot",
2596
2675
  {
2597
2676
  ref,
@@ -2603,7 +2682,7 @@ var TableFooter = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
2603
2682
  }
2604
2683
  ));
2605
2684
  TableFooter.displayName = "TableFooter";
2606
- var TableRow = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2685
+ var TableRow = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2607
2686
  "tr",
2608
2687
  {
2609
2688
  ref,
@@ -2615,7 +2694,7 @@ var TableRow = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__
2615
2694
  }
2616
2695
  ));
2617
2696
  TableRow.displayName = "TableRow";
2618
- var TableHead = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2697
+ var TableHead = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2619
2698
  "th",
2620
2699
  {
2621
2700
  ref,
@@ -2632,7 +2711,7 @@ var TableHead = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE_
2632
2711
  }
2633
2712
  ));
2634
2713
  TableHead.displayName = "TableHead";
2635
- var TableCell = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2714
+ var TableCell = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2636
2715
  "td",
2637
2716
  {
2638
2717
  ref,
@@ -2645,7 +2724,7 @@ var TableCell = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE_
2645
2724
  }
2646
2725
  ));
2647
2726
  TableCell.displayName = "TableCell";
2648
- var TableCaption = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2727
+ var TableCaption = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2649
2728
  "caption",
2650
2729
  {
2651
2730
  ref,
@@ -2654,11 +2733,11 @@ var TableCaption = React24.forwardRef(({ className, ...props }, ref) => /* @__PU
2654
2733
  }
2655
2734
  ));
2656
2735
  TableCaption.displayName = "TableCaption";
2657
- var TabsSizeContext = React24.createContext("default");
2658
- var Tabs = React24.forwardRef(({ size = "default", ...props }, ref) => /* @__PURE__ */ jsx(TabsSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx(TabsPrimitive.Root, { ref, ...props }) }));
2736
+ var TabsSizeContext = React25.createContext("default");
2737
+ var Tabs = React25.forwardRef(({ size = "default", ...props }, ref) => /* @__PURE__ */ jsx(TabsSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx(TabsPrimitive.Root, { ref, ...props }) }));
2659
2738
  Tabs.displayName = TabsPrimitive.Root.displayName;
2660
- var TabsList = React24.forwardRef(({ className, ...props }, ref) => {
2661
- const size = React24.useContext(TabsSizeContext);
2739
+ var TabsList = React25.forwardRef(({ className, ...props }, ref) => {
2740
+ const size = React25.useContext(TabsSizeContext);
2662
2741
  return /* @__PURE__ */ jsx(
2663
2742
  TabsPrimitive.List,
2664
2743
  {
@@ -2673,8 +2752,8 @@ var TabsList = React24.forwardRef(({ className, ...props }, ref) => {
2673
2752
  );
2674
2753
  });
2675
2754
  TabsList.displayName = TabsPrimitive.List.displayName;
2676
- var TabsTrigger = React24.forwardRef(({ className, ...props }, ref) => {
2677
- const size = React24.useContext(TabsSizeContext);
2755
+ var TabsTrigger = React25.forwardRef(({ className, ...props }, ref) => {
2756
+ const size = React25.useContext(TabsSizeContext);
2678
2757
  return /* @__PURE__ */ jsx(
2679
2758
  TabsPrimitive.Trigger,
2680
2759
  {
@@ -2689,7 +2768,7 @@ var TabsTrigger = React24.forwardRef(({ className, ...props }, ref) => {
2689
2768
  );
2690
2769
  });
2691
2770
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
2692
- var TabsContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2771
+ var TabsContent = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2693
2772
  TabsPrimitive.Content,
2694
2773
  {
2695
2774
  ref,
@@ -2721,7 +2800,7 @@ var toggleVariants = cva(
2721
2800
  }
2722
2801
  }
2723
2802
  );
2724
- var Toggle = React24.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx(
2803
+ var Toggle = React25.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx(
2725
2804
  TogglePrimitive.Root,
2726
2805
  {
2727
2806
  ref,
@@ -2730,11 +2809,11 @@ var Toggle = React24.forwardRef(({ className, variant, size, ...props }, ref) =>
2730
2809
  }
2731
2810
  ));
2732
2811
  Toggle.displayName = TogglePrimitive.Root.displayName;
2733
- var ToggleGroupContext = React24.createContext({
2812
+ var ToggleGroupContext = React25.createContext({
2734
2813
  size: "default",
2735
2814
  variant: "default"
2736
2815
  });
2737
- var ToggleGroup = React24.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx(
2816
+ var ToggleGroup = React25.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx(
2738
2817
  ToggleGroupPrimitive.Root,
2739
2818
  {
2740
2819
  ref,
@@ -2744,8 +2823,8 @@ var ToggleGroup = React24.forwardRef(({ className, variant, size, children, ...p
2744
2823
  }
2745
2824
  ));
2746
2825
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
2747
- var ToggleGroupItem = React24.forwardRef(({ className, children, variant, size, ...props }, ref) => {
2748
- const context = React24.useContext(ToggleGroupContext);
2826
+ var ToggleGroupItem = React25.forwardRef(({ className, children, variant, size, ...props }, ref) => {
2827
+ const context = React25.useContext(ToggleGroupContext);
2749
2828
  return /* @__PURE__ */ jsx(
2750
2829
  ToggleGroupPrimitive.Item,
2751
2830
  {
@@ -2763,6 +2842,26 @@ var ToggleGroupItem = React24.forwardRef(({ className, children, variant, size,
2763
2842
  );
2764
2843
  });
2765
2844
  ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
2845
+ var WORD = {
2846
+ unrecorded: "nothing recorded",
2847
+ purged: "purged",
2848
+ "declared-none": "none declared"
2849
+ };
2850
+ var AbsenceNote = React25.forwardRef(
2851
+ ({ reason, label, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2852
+ "div",
2853
+ {
2854
+ ref,
2855
+ className: cn("flex flex-col gap-1 px-2.5 py-2", className),
2856
+ ...props,
2857
+ children: [
2858
+ /* @__PURE__ */ jsx("span", { className: "font-mono text-xs tracking-wide text-muted-foreground", children: label ?? WORD[reason] }),
2859
+ /* @__PURE__ */ jsx("span", { className: "text-sm leading-relaxed text-muted-foreground", children })
2860
+ ]
2861
+ }
2862
+ )
2863
+ );
2864
+ AbsenceNote.displayName = "AbsenceNote";
2766
2865
  var TONE = {
2767
2866
  allowed: "text-foreground",
2768
2867
  denied: "text-destructive",
@@ -2774,7 +2873,7 @@ function split(address) {
2774
2873
  if (cut < 0) return { head: "", tail: address };
2775
2874
  return { head: address.slice(0, cut + 1), tail: address.slice(cut + 1) };
2776
2875
  }
2777
- var AddressChip = React24.forwardRef(
2876
+ var AddressChip = React25.forwardRef(
2778
2877
  ({ address, tone = "allowed", onOpen, className, ...props }, ref) => {
2779
2878
  const { head, tail } = split(address);
2780
2879
  const body = /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -2841,7 +2940,7 @@ var agentChipVariants = cva(
2841
2940
  defaultVariants: { kind: "agent", inactive: false }
2842
2941
  }
2843
2942
  );
2844
- var AgentChip = React24.forwardRef(
2943
+ var AgentChip = React25.forwardRef(
2845
2944
  ({ icon, name, kind, inactive, className, ...props }, ref) => /* @__PURE__ */ jsxs(
2846
2945
  "span",
2847
2946
  {
@@ -2868,7 +2967,7 @@ var stateVariants = cva("inline-flex shrink-0 items-center gap-1.5 font-medium",
2868
2967
  },
2869
2968
  defaultVariants: { tone: "active" }
2870
2969
  });
2871
- var AppStatusBar = React24.forwardRef(
2970
+ var AppStatusBar = React25.forwardRef(
2872
2971
  ({ state, tone, end, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2873
2972
  "div",
2874
2973
  {
@@ -2896,7 +2995,94 @@ var AppStatusBar = React24.forwardRef(
2896
2995
  )
2897
2996
  );
2898
2997
  AppStatusBar.displayName = "AppStatusBar";
2899
- var BarChartH = React24.forwardRef(
2998
+ var ArtifactTable = React25.forwardRef(({ files, onOpen, onDownload, renderActions, className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col", className), ...props, children: /* @__PURE__ */ jsxs(Table, { density: "compact", children: [
2999
+ /* @__PURE__ */ jsx(TableHeader, { children: /* @__PURE__ */ jsxs(TableRow, { children: [
3000
+ /* @__PURE__ */ jsx(TableHead, { children: "file" }),
3001
+ /* @__PURE__ */ jsx(TableHead, { className: "w-[7rem]", children: "kind" }),
3002
+ /* @__PURE__ */ jsx(TableHead, { className: "w-[5rem]", children: "size" }),
3003
+ /* @__PURE__ */ jsx(TableHead, { className: "w-[7rem]", children: "digest" }),
3004
+ /* @__PURE__ */ jsx(TableHead, { className: "w-[5.5rem]", children: "written" }),
3005
+ /* @__PURE__ */ jsx(TableHead, { className: "w-[9.5rem]", children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "actions" }) })
3006
+ ] }) }),
3007
+ /* @__PURE__ */ jsx(TableBody, { children: files.map((file, index) => /* @__PURE__ */ jsxs(TableRow, { children: [
3008
+ /* @__PURE__ */ jsx(
3009
+ TableCell,
3010
+ {
3011
+ className: cn(
3012
+ "font-mono",
3013
+ file.gone && "text-muted-foreground line-through"
3014
+ ),
3015
+ children: file.name
3016
+ }
3017
+ ),
3018
+ /* @__PURE__ */ jsx(TableCell, { children: file.kind }),
3019
+ /* @__PURE__ */ jsx(TableCell, { className: "tabular-nums", children: file.size }),
3020
+ /* @__PURE__ */ jsx(TableCell, { className: "font-mono text-muted-foreground", children: file.digest }),
3021
+ /* @__PURE__ */ jsx(TableCell, { className: "font-mono tabular-nums", children: file.written }),
3022
+ /* @__PURE__ */ jsx(TableCell, { children: renderActions ? renderActions(file, index) : /* @__PURE__ */ jsxs("span", { className: "flex gap-1", children: [
3023
+ /* @__PURE__ */ jsx(
3024
+ Button,
3025
+ {
3026
+ type: "button",
3027
+ variant: "outline",
3028
+ size: "xs",
3029
+ disabled: file.gone || !onOpen,
3030
+ onClick: () => onOpen?.(file, index),
3031
+ children: "Open"
3032
+ }
3033
+ ),
3034
+ /* @__PURE__ */ jsx(
3035
+ Button,
3036
+ {
3037
+ type: "button",
3038
+ variant: "outline",
3039
+ size: "xs",
3040
+ disabled: file.gone || !onDownload,
3041
+ onClick: () => onDownload?.(file, index),
3042
+ children: "Download"
3043
+ }
3044
+ )
3045
+ ] }) })
3046
+ ] }, index)) })
3047
+ ] }) }));
3048
+ ArtifactTable.displayName = "ArtifactTable";
3049
+ var TONE2 = {
3050
+ muted: "text-muted-foreground",
3051
+ info: "text-info",
3052
+ success: "text-success",
3053
+ warning: "text-warning",
3054
+ destructive: "text-destructive"
3055
+ };
3056
+ var AttemptClock = React25.forwardRef(
3057
+ ({ rows, summary, className, ...props }, ref) => /* @__PURE__ */ jsxs("div", { ref, className: cn("flex flex-col", className), ...props, children: [
3058
+ /* @__PURE__ */ jsxs(Table, { density: "compact", children: [
3059
+ /* @__PURE__ */ jsx(TableHeader, { children: /* @__PURE__ */ jsxs(TableRow, { children: [
3060
+ /* @__PURE__ */ jsx(TableHead, { className: "w-[7rem]", children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "what" }) }),
3061
+ /* @__PURE__ */ jsx(TableHead, { className: "w-[6rem]", children: "started" }),
3062
+ /* @__PURE__ */ jsx(TableHead, { className: "w-[5.5rem]", children: "took" }),
3063
+ /* @__PURE__ */ jsx(TableHead, { children: "what happened" })
3064
+ ] }) }),
3065
+ /* @__PURE__ */ jsx(TableBody, { children: rows.map((row, index) => {
3066
+ const tone = row.tone ? TONE2[row.tone] : void 0;
3067
+ return /* @__PURE__ */ jsxs(TableRow, { children: [
3068
+ /* @__PURE__ */ jsx(TableCell, { className: cn(tone, row.struck && "line-through"), children: row.label }),
3069
+ /* @__PURE__ */ jsx(TableCell, { className: "font-mono tabular-nums text-muted-foreground", children: row.started }),
3070
+ /* @__PURE__ */ jsx(TableCell, { className: cn("font-mono tabular-nums", tone), children: row.took }),
3071
+ /* @__PURE__ */ jsx(
3072
+ TableCell,
3073
+ {
3074
+ className: cn(row.struck && ["line-through", tone]),
3075
+ children: row.what
3076
+ }
3077
+ )
3078
+ ] }, index);
3079
+ }) })
3080
+ ] }),
3081
+ summary != null ? /* @__PURE__ */ jsx("div", { className: "border-border border-t px-2.5 py-1.5 text-sm text-muted-foreground", children: summary }) : null
3082
+ ] })
3083
+ );
3084
+ AttemptClock.displayName = "AttemptClock";
3085
+ var BarChartH = React25.forwardRef(
2900
3086
  ({
2901
3087
  data,
2902
3088
  max,
@@ -2937,7 +3123,7 @@ var BarChartH = React24.forwardRef(
2937
3123
  }
2938
3124
  );
2939
3125
  BarChartH.displayName = "BarChartH";
2940
- var BarChartV = React24.forwardRef(
3126
+ var BarChartV = React25.forwardRef(
2941
3127
  ({
2942
3128
  data,
2943
3129
  max,
@@ -3002,7 +3188,7 @@ var BarChartV = React24.forwardRef(
3002
3188
  );
3003
3189
  BarChartV.displayName = "BarChartV";
3004
3190
  var UNPAINTED = "bg-muted-foreground";
3005
- var BoundChip = React24.forwardRef(
3191
+ var BoundChip = React25.forwardRef(
3006
3192
  ({ bound, swatchOnly, label, swatch, palette, className, ...props }, ref) => /* @__PURE__ */ jsxs(
3007
3193
  "span",
3008
3194
  {
@@ -3033,7 +3219,7 @@ function ButtonWithTooltip(props) {
3033
3219
  /* @__PURE__ */ jsx(TooltipContent, { children: props.tooltip })
3034
3220
  ] }) });
3035
3221
  }
3036
- var CannotAnswerCard = React24.forwardRef(({ label = "cannot answer", remedy, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
3222
+ var CannotAnswerCard = React25.forwardRef(({ label = "cannot answer", remedy, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
3037
3223
  "div",
3038
3224
  {
3039
3225
  ref,
@@ -3057,7 +3243,7 @@ var PURPOSE = {
3057
3243
  judge: "scores an output \u2014 often local",
3058
3244
  embed: "text in, vector out"
3059
3245
  };
3060
- var CastTable = React24.forwardRef(
3246
+ var CastTable = React25.forwardRef(
3061
3247
  ({ cast = {}, resolved, readOnly, className, ...props }, ref) => {
3062
3248
  const byRole = new Map((resolved ?? []).map((r) => [r.role, r]));
3063
3249
  return /* @__PURE__ */ jsxs("div", { ref, className: cn("min-w-0", className), ...props, children: [
@@ -3106,20 +3292,20 @@ function ChatSession({
3106
3292
  className,
3107
3293
  bodyClassName
3108
3294
  }) {
3109
- const rootRef = React24.useRef(null);
3110
- const contentRef = React24.useRef(null);
3111
- const pinnedRef = React24.useRef(true);
3112
- const getViewport = React24.useCallback(
3295
+ const rootRef = React25.useRef(null);
3296
+ const contentRef = React25.useRef(null);
3297
+ const pinnedRef = React25.useRef(true);
3298
+ const getViewport = React25.useCallback(
3113
3299
  () => rootRef.current?.querySelector(
3114
3300
  "[data-radix-scroll-area-viewport]"
3115
3301
  ) ?? null,
3116
3302
  []
3117
3303
  );
3118
- const scrollToBottom = React24.useCallback(() => {
3304
+ const scrollToBottom = React25.useCallback(() => {
3119
3305
  const viewport = getViewport();
3120
3306
  if (viewport) viewport.scrollTop = viewport.scrollHeight;
3121
3307
  }, [getViewport]);
3122
- React24.useEffect(() => {
3308
+ React25.useEffect(() => {
3123
3309
  const viewport = getViewport();
3124
3310
  if (!viewport) return;
3125
3311
  const handleScroll = () => {
@@ -3129,7 +3315,7 @@ function ChatSession({
3129
3315
  viewport.addEventListener("scroll", handleScroll, { passive: true });
3130
3316
  return () => viewport.removeEventListener("scroll", handleScroll);
3131
3317
  }, [getViewport, followThreshold]);
3132
- React24.useEffect(() => {
3318
+ React25.useEffect(() => {
3133
3319
  const content = contentRef.current;
3134
3320
  if (!content || typeof ResizeObserver === "undefined") return;
3135
3321
  const observer = new ResizeObserver(() => {
@@ -3138,11 +3324,11 @@ function ChatSession({
3138
3324
  observer.observe(content);
3139
3325
  return () => observer.disconnect();
3140
3326
  }, [scrollToBottom]);
3141
- React24.useEffect(() => {
3327
+ React25.useEffect(() => {
3142
3328
  pinnedRef.current = true;
3143
3329
  scrollToBottom();
3144
3330
  }, [autoScrollKey, scrollToBottom]);
3145
- const isEmpty = React24.Children.count(children) === 0;
3331
+ const isEmpty = React25.Children.count(children) === 0;
3146
3332
  return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col h-full min-h-0", className), children: [
3147
3333
  /* @__PURE__ */ jsx(
3148
3334
  ScrollArea,
@@ -3235,12 +3421,12 @@ function useOverflowItems({
3235
3421
  pinnedIndex,
3236
3422
  reserve = 32
3237
3423
  }) {
3238
- const containerEl = React24.useRef(null);
3239
- const itemEls = React24.useRef([]);
3240
- const widths = React24.useRef([]);
3241
- const itemRefs = React24.useRef([]);
3242
- const [hidden, setHidden] = React24.useState(NONE);
3243
- const fit = React24.useCallback(() => {
3424
+ const containerEl = React25.useRef(null);
3425
+ const itemEls = React25.useRef([]);
3426
+ const widths = React25.useRef([]);
3427
+ const itemRefs = React25.useRef([]);
3428
+ const [hidden, setHidden] = React25.useState(NONE);
3429
+ const fit = React25.useCallback(() => {
3244
3430
  const el = containerEl.current;
3245
3431
  if (!el || !enabled) {
3246
3432
  setHidden((prev) => prev === NONE ? prev : NONE);
@@ -3269,12 +3455,12 @@ function useOverflowItems({
3269
3455
  }
3270
3456
  setHidden((prev) => same(prev, next) ? prev : next);
3271
3457
  }, [count, enabled, pinnedIndex, reserve]);
3272
- React24.useLayoutEffect(() => {
3458
+ React25.useLayoutEffect(() => {
3273
3459
  widths.current = [];
3274
3460
  itemEls.current.length = count;
3275
3461
  setHidden((prev) => prev === NONE ? prev : NONE);
3276
3462
  }, [count]);
3277
- React24.useLayoutEffect(() => {
3463
+ React25.useLayoutEffect(() => {
3278
3464
  fit();
3279
3465
  if (!enabled || typeof ResizeObserver === "undefined") return;
3280
3466
  const observer = new ResizeObserver(() => fit());
@@ -3282,10 +3468,10 @@ function useOverflowItems({
3282
3468
  for (const item of itemEls.current) if (item) observer.observe(item);
3283
3469
  return () => observer.disconnect();
3284
3470
  }, [fit, enabled, hidden]);
3285
- const containerRef = React24.useCallback((el) => {
3471
+ const containerRef = React25.useCallback((el) => {
3286
3472
  containerEl.current = el;
3287
3473
  }, []);
3288
- const itemRef = React24.useCallback((index) => {
3474
+ const itemRef = React25.useCallback((index) => {
3289
3475
  let fn = itemRefs.current[index];
3290
3476
  if (!fn) {
3291
3477
  fn = (el) => {
@@ -3295,7 +3481,7 @@ function useOverflowItems({
3295
3481
  }
3296
3482
  return fn;
3297
3483
  }, []);
3298
- const isHidden = React24.useCallback(
3484
+ const isHidden = React25.useCallback(
3299
3485
  (index) => hidden.includes(index),
3300
3486
  [hidden]
3301
3487
  );
@@ -3348,15 +3534,15 @@ var NavItems = ({
3348
3534
  const isVertical = orientation === "vertical";
3349
3535
  const isTabs = selectionMode === "tabs";
3350
3536
  const V = VARIANT[variant];
3351
- const [internalActive, setInternalActive] = React24__default.useState(
3537
+ const [internalActive, setInternalActive] = React25__default.useState(
3352
3538
  null
3353
3539
  );
3354
3540
  const isControlled = activeKey !== void 0;
3355
3541
  const currentKey = isControlled ? activeKey : internalActive;
3356
3542
  const activeIndex = items.findIndex((item) => keyOf(item) === currentKey);
3357
- const nodes = React24__default.useRef({});
3358
- const pendingFocus = React24__default.useRef(null);
3359
- React24__default.useEffect(() => {
3543
+ const nodes = React25__default.useRef({});
3544
+ const pendingFocus = React25__default.useRef(null);
3545
+ React25__default.useEffect(() => {
3360
3546
  const key = pendingFocus.current;
3361
3547
  if (!key) return;
3362
3548
  const node = nodes.current[key];
@@ -3369,7 +3555,7 @@ var NavItems = ({
3369
3555
  enabled: overflow && !isVertical,
3370
3556
  pinnedIndex: activeIndex >= 0 ? activeIndex : void 0
3371
3557
  });
3372
- const select = React24__default.useCallback(
3558
+ const select = React25__default.useCallback(
3373
3559
  (item) => {
3374
3560
  if (item.disabled) return;
3375
3561
  const key = keyOf(item);
@@ -3517,7 +3703,7 @@ var NavItems = ({
3517
3703
  /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: hasMenu && !asCaret ? /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: control }) : control }),
3518
3704
  /* @__PURE__ */ jsx(TooltipContent, { side: item.tooltipSide || tooltipSide, children: item.tooltip || item.name })
3519
3705
  ] });
3520
- return /* @__PURE__ */ jsxs(React24__default.Fragment, { children: [
3706
+ return /* @__PURE__ */ jsxs(React25__default.Fragment, { children: [
3521
3707
  hasMenu ? /* @__PURE__ */ jsxs(DropdownMenu, { children: [
3522
3708
  withTooltip,
3523
3709
  /* @__PURE__ */ jsx(
@@ -3607,7 +3793,7 @@ function renderMenuRows(menuItems) {
3607
3793
  const gutter = menuItems?.some((m) => m.icon);
3608
3794
  return menuItems?.map((menuItem) => {
3609
3795
  const MenuIcon = menuItem.icon;
3610
- return /* @__PURE__ */ jsxs(React24__default.Fragment, { children: [
3796
+ return /* @__PURE__ */ jsxs(React25__default.Fragment, { children: [
3611
3797
  menuItem.separatorBefore && /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
3612
3798
  /* @__PURE__ */ jsxs(
3613
3799
  DropdownMenuItem,
@@ -3926,7 +4112,7 @@ function ChatSessionDisclosure({
3926
4112
  className,
3927
4113
  contentClassName
3928
4114
  }) {
3929
- const [uncontrolledOpen, setUncontrolledOpen] = React24.useState(defaultOpen);
4115
+ const [uncontrolledOpen, setUncontrolledOpen] = React25.useState(defaultOpen);
3930
4116
  const isOpen = open ?? uncontrolledOpen;
3931
4117
  const toggle = () => {
3932
4118
  const next = !isOpen;
@@ -4078,9 +4264,9 @@ function ChatSessionContextChip({
4078
4264
  }
4079
4265
  );
4080
4266
  }
4081
- var CitationList = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx("ul", { ref, className: cn("flex flex-col", className), ...props, children }));
4267
+ var CitationList = React25.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx("ul", { ref, className: cn("flex flex-col", className), ...props, children }));
4082
4268
  CitationList.displayName = "CitationList";
4083
- var CitationRow = React24.forwardRef(
4269
+ var CitationRow = React25.forwardRef(
4084
4270
  ({ kind, source, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
4085
4271
  "li",
4086
4272
  {
@@ -4096,7 +4282,7 @@ var CitationRow = React24.forwardRef(
4096
4282
  )
4097
4283
  );
4098
4284
  CitationRow.displayName = "CitationRow";
4099
- var ClampedText = React24.forwardRef(
4285
+ var ClampedText = React25.forwardRef(
4100
4286
  ({
4101
4287
  lines = 3,
4102
4288
  moreLabel = "Show more",
@@ -4105,10 +4291,10 @@ var ClampedText = React24.forwardRef(
4105
4291
  children,
4106
4292
  ...props
4107
4293
  }, ref) => {
4108
- const [expanded, setExpanded] = React24.useState(false);
4109
- const [clipped, setClipped] = React24.useState(false);
4110
- const bodyRef = React24.useRef(null);
4111
- React24.useLayoutEffect(() => {
4294
+ const [expanded, setExpanded] = React25.useState(false);
4295
+ const [clipped, setClipped] = React25.useState(false);
4296
+ const bodyRef = React25.useRef(null);
4297
+ React25.useLayoutEffect(() => {
4112
4298
  const el = bodyRef.current;
4113
4299
  if (!el || expanded) return;
4114
4300
  const measure = () => setClipped(el.scrollHeight - el.clientHeight > 1);
@@ -4146,7 +4332,7 @@ var ClampedText = React24.forwardRef(
4146
4332
  }
4147
4333
  );
4148
4334
  ClampedText.displayName = "ClampedText";
4149
- var ClarifyCard = React24.forwardRef(
4335
+ var ClarifyCard = React25.forwardRef(
4150
4336
  ({
4151
4337
  step,
4152
4338
  waiting,
@@ -4159,7 +4345,7 @@ var ClarifyCard = React24.forwardRef(
4159
4345
  className,
4160
4346
  ...props
4161
4347
  }, ref) => {
4162
- const name = React24.useId();
4348
+ const name = React25.useId();
4163
4349
  return /* @__PURE__ */ jsxs(
4164
4350
  "div",
4165
4351
  {
@@ -4227,7 +4413,7 @@ var ClarifyCard = React24.forwardRef(
4227
4413
  }
4228
4414
  );
4229
4415
  ClarifyCard.displayName = "ClarifyCard";
4230
- var ContextBar = React24.forwardRef(
4416
+ var ContextBar = React25.forwardRef(
4231
4417
  ({ counters, hint, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
4232
4418
  "div",
4233
4419
  {
@@ -4246,7 +4432,7 @@ var ContextBar = React24.forwardRef(
4246
4432
  )
4247
4433
  );
4248
4434
  ContextBar.displayName = "ContextBar";
4249
- var DiagnosisCard = React24.forwardRef(({ code, attempted, target, actions, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
4435
+ var DiagnosisCard = React25.forwardRef(({ code, attempted, target, actions, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
4250
4436
  "div",
4251
4437
  {
4252
4438
  ref,
@@ -4274,11 +4460,11 @@ var OP_CLASS = {
4274
4460
  remove: "text-destructive",
4275
4461
  change: "text-warning"
4276
4462
  };
4277
- var DiffList = React24.forwardRef(
4463
+ var DiffList = React25.forwardRef(
4278
4464
  ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx("ul", { ref, className: cn("flex flex-col", className), ...props, children })
4279
4465
  );
4280
4466
  DiffList.displayName = "DiffList";
4281
- var DiffRow = React24.forwardRef(
4467
+ var DiffRow = React25.forwardRef(
4282
4468
  ({ op = "add", kind, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
4283
4469
  "li",
4284
4470
  {
@@ -4294,7 +4480,7 @@ var DiffRow = React24.forwardRef(
4294
4480
  )
4295
4481
  );
4296
4482
  DiffRow.displayName = "DiffRow";
4297
- var DivergingBar = React24.forwardRef(
4483
+ var DivergingBar = React25.forwardRef(
4298
4484
  ({
4299
4485
  data,
4300
4486
  max,
@@ -4352,7 +4538,7 @@ var DivergingBar = React24.forwardRef(
4352
4538
  }
4353
4539
  );
4354
4540
  DivergingBar.displayName = "DivergingBar";
4355
- var EgressList = React24.forwardRef(
4541
+ var EgressList = React25.forwardRef(
4356
4542
  ({ to, classes = [], cut = [], className, ...props }, ref) => /* @__PURE__ */ jsxs(
4357
4543
  "div",
4358
4544
  {
@@ -4390,7 +4576,7 @@ var EgressList = React24.forwardRef(
4390
4576
  )
4391
4577
  );
4392
4578
  EgressList.displayName = "EgressList";
4393
- var EmissionHeader = React24.forwardRef(({ kind, template, citation, note, actions, className, ...props }, ref) => /* @__PURE__ */ jsxs(
4579
+ var EmissionHeader = React25.forwardRef(({ kind, template, citation, note, actions, className, ...props }, ref) => /* @__PURE__ */ jsxs(
4394
4580
  "div",
4395
4581
  {
4396
4582
  ref,
@@ -4410,7 +4596,7 @@ var EmissionHeader = React24.forwardRef(({ kind, template, citation, note, actio
4410
4596
  }
4411
4597
  ));
4412
4598
  EmissionHeader.displayName = "EmissionHeader";
4413
- var EmissionCard = React24.forwardRef(
4599
+ var EmissionCard = React25.forwardRef(
4414
4600
  ({
4415
4601
  kind,
4416
4602
  template,
@@ -4445,7 +4631,7 @@ var EmissionCard = React24.forwardRef(
4445
4631
  )
4446
4632
  );
4447
4633
  EmissionCard.displayName = "EmissionCard";
4448
- var CitationMarker = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
4634
+ var CitationMarker = React25.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
4449
4635
  "sup",
4450
4636
  {
4451
4637
  ref,
@@ -4455,7 +4641,7 @@ var CitationMarker = React24.forwardRef(({ className, children, ...props }, ref)
4455
4641
  }
4456
4642
  ));
4457
4643
  CitationMarker.displayName = "CitationMarker";
4458
- var EmptyState = React24.forwardRef(
4644
+ var EmptyState = React25.forwardRef(
4459
4645
  ({ icon, title, description, actions, locks, className, ...props }, ref) => /* @__PURE__ */ jsxs(
4460
4646
  "div",
4461
4647
  {
@@ -4476,7 +4662,7 @@ var EmptyState = React24.forwardRef(
4476
4662
  )
4477
4663
  );
4478
4664
  EmptyState.displayName = "EmptyState";
4479
- var EmptyStateLock = React24.forwardRef(({ icon, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
4665
+ var EmptyStateLock = React25.forwardRef(({ icon, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
4480
4666
  "span",
4481
4667
  {
4482
4668
  ref,
@@ -4513,7 +4699,74 @@ var ErrorBoundary = class extends Component {
4513
4699
  return this.props.children;
4514
4700
  }
4515
4701
  };
4516
- var Eyebrow = React24.forwardRef(
4702
+ function Bubble({
4703
+ who,
4704
+ rail,
4705
+ children,
4706
+ note
4707
+ }) {
4708
+ return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-1 border-l-2 px-2.5 py-2", rail), children: [
4709
+ who != null ? /* @__PURE__ */ jsx("span", { className: "font-mono text-xs font-semibold", children: who }) : null,
4710
+ /* @__PURE__ */ jsx("span", { className: "leading-relaxed", children }),
4711
+ note != null ? /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: note }) : null
4712
+ ] });
4713
+ }
4714
+ var ExchangeRecord = React25.forwardRef(
4715
+ ({
4716
+ asker,
4717
+ question,
4718
+ why,
4719
+ options,
4720
+ answerer,
4721
+ answer,
4722
+ answerNote,
4723
+ className,
4724
+ ...props
4725
+ }, ref) => /* @__PURE__ */ jsxs("div", { ref, className: cn("flex flex-col", className), ...props, children: [
4726
+ /* @__PURE__ */ jsx(Bubble, { who: asker, rail: "border-l-warning bg-warning/5", note: why, children: question }),
4727
+ options?.length ? /* @__PURE__ */ jsx("ul", { className: "flex flex-col", children: options.map((option, index) => /* @__PURE__ */ jsxs(
4728
+ "li",
4729
+ {
4730
+ className: "flex items-center gap-2 border-border/55 border-t px-2.5 py-1",
4731
+ children: [
4732
+ /* @__PURE__ */ jsx(
4733
+ "span",
4734
+ {
4735
+ "aria-hidden": true,
4736
+ className: cn(
4737
+ "size-2.5 shrink-0 rounded-full border-[1.5px]",
4738
+ option.chosen ? "border-primary bg-primary" : "border-border bg-transparent"
4739
+ )
4740
+ }
4741
+ ),
4742
+ /* @__PURE__ */ jsx(
4743
+ "span",
4744
+ {
4745
+ className: cn(
4746
+ "min-w-0 flex-1 truncate font-mono text-sm",
4747
+ option.chosen ? "text-foreground" : "text-muted-foreground"
4748
+ ),
4749
+ children: option.label
4750
+ }
4751
+ ),
4752
+ option.chosen ? /* @__PURE__ */ jsx("span", { className: "shrink-0 text-xs text-primary", children: "chosen" }) : null
4753
+ ]
4754
+ },
4755
+ index
4756
+ )) }) : null,
4757
+ answer != null ? /* @__PURE__ */ jsx(
4758
+ Bubble,
4759
+ {
4760
+ who: answerer,
4761
+ rail: "border-l-primary bg-primary/5 border-t border-t-border/55",
4762
+ note: answerNote,
4763
+ children: answer
4764
+ }
4765
+ ) : null
4766
+ ] })
4767
+ );
4768
+ ExchangeRecord.displayName = "ExchangeRecord";
4769
+ var Eyebrow = React25.forwardRef(
4517
4770
  ({ aside, tone = "muted", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
4518
4771
  "div",
4519
4772
  {
@@ -4534,7 +4787,7 @@ var Eyebrow = React24.forwardRef(
4534
4787
  )
4535
4788
  );
4536
4789
  Eyebrow.displayName = "Eyebrow";
4537
- var FilterBar = React24.forwardRef(
4790
+ var FilterBar = React25.forwardRef(
4538
4791
  ({ summary, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
4539
4792
  "div",
4540
4793
  {
@@ -4553,33 +4806,55 @@ var FilterBar = React24.forwardRef(
4553
4806
  )
4554
4807
  );
4555
4808
  FilterBar.displayName = "FilterBar";
4556
- var FilterChip = React24.forwardRef(
4557
- ({ label, value, active, className, ...props }, ref) => /* @__PURE__ */ jsxs(
4558
- Button,
4559
- {
4560
- ref,
4561
- type: "button",
4562
- variant: "outline",
4563
- size: "xs",
4564
- "data-active": active || void 0,
4565
- className: cn(
4566
- "h-[22px] gap-1 px-1.5 font-normal",
4567
- active && "border-primary/40 text-primary",
4568
- className
4569
- ),
4570
- ...props,
4571
- children: [
4572
- /* @__PURE__ */ jsx("span", { className: cn(value != null && "text-muted-foreground"), children: label }),
4573
- value != null ? /* @__PURE__ */ jsx("span", { className: "truncate", children: value }) : null,
4574
- /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "text-muted-foreground", children: "\u25BE" })
4575
- ]
4576
- }
4577
- )
4809
+ var FilterChip = React25.forwardRef(
4810
+ ({ label, value, active, onRemove, removeLabel, className, ...props }, ref) => {
4811
+ const chip = /* @__PURE__ */ jsxs(
4812
+ Button,
4813
+ {
4814
+ ref,
4815
+ type: "button",
4816
+ variant: "outline",
4817
+ size: "xs",
4818
+ "data-active": active || void 0,
4819
+ className: cn(
4820
+ "h-[22px] gap-1 px-1.5 font-normal",
4821
+ active && "border-primary/40 text-primary",
4822
+ onRemove && "rounded-r-none border-r-0",
4823
+ className
4824
+ ),
4825
+ ...props,
4826
+ children: [
4827
+ /* @__PURE__ */ jsx("span", { className: cn(value != null && "text-muted-foreground"), children: label }),
4828
+ value != null ? /* @__PURE__ */ jsx("span", { className: "truncate", children: value }) : null,
4829
+ /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "text-muted-foreground", children: "\u25BE" })
4830
+ ]
4831
+ }
4832
+ );
4833
+ if (!onRemove) return chip;
4834
+ return /* @__PURE__ */ jsxs("span", { className: "inline-flex min-w-0 items-center", children: [
4835
+ chip,
4836
+ /* @__PURE__ */ jsx(
4837
+ Button,
4838
+ {
4839
+ type: "button",
4840
+ variant: "outline",
4841
+ size: "xs",
4842
+ onClick: onRemove,
4843
+ "aria-label": removeLabel ?? `Clear ${typeof label === "string" ? label : "filter"}`,
4844
+ className: cn(
4845
+ "h-[22px] rounded-l-none px-1 font-normal text-muted-foreground hover:text-foreground",
4846
+ active && "border-primary/40"
4847
+ ),
4848
+ children: /* @__PURE__ */ jsx("span", { "aria-hidden": true, children: "\xD7" })
4849
+ }
4850
+ )
4851
+ ] });
4852
+ }
4578
4853
  );
4579
4854
  FilterChip.displayName = "FilterChip";
4580
- var HeatStrip = React24.forwardRef(
4855
+ var HeatStrip = React25.forwardRef(
4581
4856
  ({ cells, states, ticks, cellSize = 14, className, ...props }, ref) => {
4582
- const byKey = React24.useMemo(
4857
+ const byKey = React25.useMemo(
4583
4858
  () => new Map(states.map((s) => [s.key, s])),
4584
4859
  [states]
4585
4860
  );
@@ -4631,6 +4906,23 @@ var HeatStrip = React24.forwardRef(
4631
4906
  }
4632
4907
  );
4633
4908
  HeatStrip.displayName = "HeatStrip";
4909
+ var KindChip = React25.forwardRef(
4910
+ ({ kind, dim, className, ...props }, ref) => /* @__PURE__ */ jsx(
4911
+ "span",
4912
+ {
4913
+ ref,
4914
+ className: cn(
4915
+ "inline-flex h-[17px] shrink-0 items-center rounded-control px-1.5",
4916
+ "bg-muted font-mono text-xs tracking-wide text-muted-foreground",
4917
+ dim && "opacity-60",
4918
+ className
4919
+ ),
4920
+ ...props,
4921
+ children: kind
4922
+ }
4923
+ )
4924
+ );
4925
+ KindChip.displayName = "KindChip";
4634
4926
  var layerLabel = (layer) => layer.replace(/_/g, " ");
4635
4927
  var UNPAINTED2 = {
4636
4928
  swatch: "bg-muted-foreground",
@@ -4643,7 +4935,7 @@ var UNPAINTED2 = {
4643
4935
  text: "text-foreground"
4644
4936
  };
4645
4937
  var layerPaint = (palette, layer) => ({ ...UNPAINTED2, ...palette?.[layer] });
4646
- var LayerChip = React24.forwardRef(
4938
+ var LayerChip = React25.forwardRef(
4647
4939
  ({ layer, count, label, dim, swatch, palette, className, ...props }, ref) => {
4648
4940
  const paint = layerPaint(palette, layer);
4649
4941
  return /* @__PURE__ */ jsxs(
@@ -4680,9 +4972,9 @@ var LayerChip = React24.forwardRef(
4680
4972
  }
4681
4973
  );
4682
4974
  LayerChip.displayName = "LayerChip";
4683
- var LayerSection = React24.forwardRef(
4975
+ var LayerSection = React25.forwardRef(
4684
4976
  ({ layer, summary, count, dim, palette, className, children, ...props }, ref) => {
4685
- const empty = React24.Children.count(children) === 0;
4977
+ const empty = React25.Children.count(children) === 0;
4686
4978
  return /* @__PURE__ */ jsxs(
4687
4979
  "section",
4688
4980
  {
@@ -4722,7 +5014,7 @@ var formatElapsed = (ms) => {
4722
5014
  const m = Math.floor(ms / 6e4);
4723
5015
  return `${m}m ${Math.round(ms % 6e4 / 1e3)}s`;
4724
5016
  };
4725
- var LayerStrip = React24.forwardRef(
5017
+ var LayerStrip = React25.forwardRef(
4726
5018
  ({
4727
5019
  bands,
4728
5020
  items,
@@ -4748,7 +5040,7 @@ var LayerStrip = React24.forwardRef(
4748
5040
  className,
4749
5041
  ...props
4750
5042
  }, ref) => {
4751
- const [ownCollapsed, setOwnCollapsed] = React24.useState(
5043
+ const [ownCollapsed, setOwnCollapsed] = React25.useState(
4752
5044
  defaultCollapsed ?? []
4753
5045
  );
4754
5046
  const shut = collapsed ?? ownCollapsed;
@@ -4860,6 +5152,13 @@ var LayerStrip = React24.forwardRef(
4860
5152
  /* @__PURE__ */ jsx("dt", { className: "text-muted-foreground", children: "what it does" }),
4861
5153
  /* @__PURE__ */ jsx("dd", { className: "min-w-0 font-mono", children: item.note })
4862
5154
  ] }) : null,
5155
+ item.forecast ? /* @__PURE__ */ jsxs(Fragment, { children: [
5156
+ /* @__PURE__ */ jsx("dt", { className: "text-muted-foreground", children: "usually" }),
5157
+ /* @__PURE__ */ jsxs("dd", { className: "min-w-0 tabular-nums", children: [
5158
+ scale === "elapsed" ? formatElapsed(item.forecast.p50) : item.forecast.p50,
5159
+ item.forecast.note ? ` \xB7 ${item.forecast.note}` : ""
5160
+ ] })
5161
+ ] }) : null,
4863
5162
  item.ruleMatched ? /* @__PURE__ */ jsxs(Fragment, { children: [
4864
5163
  /* @__PURE__ */ jsx("dt", { className: "text-muted-foreground", children: "refused by" }),
4865
5164
  /* @__PURE__ */ jsx("dd", { className: "min-w-0 break-all font-mono text-destructive", children: item.ruleMatched })
@@ -4927,27 +5226,42 @@ var LayerStrip = React24.forwardRef(
4927
5226
  children: item.label
4928
5227
  }
4929
5228
  ),
4930
- compact ? null : /* @__PURE__ */ jsx("span", { className: "truncate text-xs text-muted-foreground", children: item.note ?? (state === "declared" ? null : stateLabel(state)) })
5229
+ compact ? null : /* @__PURE__ */ jsx("span", { className: "truncate text-xs text-muted-foreground", children: item.note ?? (item.forecast ? `p50 ${scale === "elapsed" ? formatElapsed(item.forecast.p50) : item.forecast.p50}${item.forecast.note ? ` \xB7 ${item.forecast.note}` : ""}` : state === "declared" ? null : stateLabel(state)) })
4931
5230
  ] })
4932
5231
  ]
4933
5232
  },
4934
5233
  item.id
4935
5234
  );
4936
- if (!hoverDetail) return drawn;
4937
- return /* @__PURE__ */ jsxs(HoverCard, { openDelay: 140, closeDelay: 80, children: [
4938
- /* @__PURE__ */ jsx(HoverCardTrigger, { asChild: true, children: drawn }),
4939
- /* @__PURE__ */ jsx(
4940
- HoverCardContent,
4941
- {
4942
- align: "start",
4943
- side: "top",
4944
- className: "w-auto max-w-80 p-3",
4945
- children: detail(item)
4946
- }
4947
- )
4948
- ] }, item.id);
5235
+ const forecastMark = item.forecast ? /* @__PURE__ */ jsx(
5236
+ "span",
5237
+ {
5238
+ "aria-hidden": true,
5239
+ style: { left: `${pct(item.start + item.forecast.p50)}%` },
5240
+ className: "-translate-y-1/2 pointer-events-none absolute top-1/2 h-5 border-muted-foreground/70 border-l border-dashed"
5241
+ },
5242
+ `${item.id}-p50`
5243
+ ) : null;
5244
+ const withMark = (node) => forecastMark ? /* @__PURE__ */ jsxs(React25.Fragment, { children: [
5245
+ forecastMark,
5246
+ node
5247
+ ] }, item.id) : node;
5248
+ if (!hoverDetail) return withMark(drawn);
5249
+ return withMark(
5250
+ /* @__PURE__ */ jsxs(HoverCard, { openDelay: 140, closeDelay: 80, children: [
5251
+ /* @__PURE__ */ jsx(HoverCardTrigger, { asChild: true, children: drawn }),
5252
+ /* @__PURE__ */ jsx(
5253
+ HoverCardContent,
5254
+ {
5255
+ align: "start",
5256
+ side: "top",
5257
+ className: "w-auto max-w-80 p-3",
5258
+ children: detail(item)
5259
+ }
5260
+ )
5261
+ ] }, item.id)
5262
+ );
4949
5263
  };
4950
- const bracketLanes = React24.useMemo(() => {
5264
+ const bracketLanes = React25.useMemo(() => {
4951
5265
  const lanes = [];
4952
5266
  const ordered = [...brackets ?? []].sort(
4953
5267
  (a, b) => b.end - b.start - (a.end - a.start)
@@ -4963,7 +5277,7 @@ var LayerStrip = React24.forwardRef(
4963
5277
  }
4964
5278
  return lanes;
4965
5279
  }, [brackets]);
4966
- const seamLines = React24.useMemo(() => {
5280
+ const seamLines = React25.useMemo(() => {
4967
5281
  const placed = (seams ?? []).filter((seam) => seam.at != null);
4968
5282
  const loose = (seams ?? []).filter((seam) => seam.at == null);
4969
5283
  return [...placed.length ? [placed] : [], ...loose.map((s2) => [s2])];
@@ -4995,7 +5309,7 @@ var LayerStrip = React24.forwardRef(
4995
5309
  style: { left: `${pct(seam.at)}%` },
4996
5310
  className: cn(
4997
5311
  "absolute inset-y-0 border-l",
4998
- seam.conditional ? "border-dashed border-muted-foreground/45" : "border-muted-foreground/60"
5312
+ seam.conditional || seam.noEstimate ? "border-dashed border-muted-foreground/45" : "border-muted-foreground/60"
4999
5313
  )
5000
5314
  },
5001
5315
  seam.id
@@ -5102,7 +5416,7 @@ var LayerStrip = React24.forwardRef(
5102
5416
  // pass is already paid for.
5103
5417
  "absolute inset-y-1.5 flex items-center bg-card px-1.5 text-muted-foreground",
5104
5418
  after ? "border-r-2 text-right" : "border-l-2",
5105
- seam.conditional ? "border-dashed border-muted-foreground/45" : "border-muted-foreground/70"
5419
+ seam.conditional || seam.noEstimate ? "border-dashed border-muted-foreground/45" : "border-muted-foreground/70"
5106
5420
  ),
5107
5421
  children: named
5108
5422
  },
@@ -5119,7 +5433,7 @@ var LayerStrip = React24.forwardRef(
5119
5433
  const foldable = collapsible && parts.length > 0;
5120
5434
  const isShut = foldable && shut.includes(band.layer);
5121
5435
  const onLine = isShut ? allOf(band.layer) : own;
5122
- return /* @__PURE__ */ jsxs(React24.Fragment, { children: [
5436
+ return /* @__PURE__ */ jsxs(React25.Fragment, { children: [
5123
5437
  row(
5124
5438
  band.layer,
5125
5439
  label(
@@ -5274,6 +5588,26 @@ function Swatch({ kind = "dot", color }) {
5274
5588
  );
5275
5589
  if (kind === "line")
5276
5590
  return /* @__PURE__ */ jsx("span", { "aria-hidden": true, style, className: "h-0.5 w-4 shrink-0 bg-current" });
5591
+ if (kind === "stripe")
5592
+ return /* @__PURE__ */ jsx("span", { "aria-hidden": true, style, className: "h-3 w-[3px] shrink-0 bg-current" });
5593
+ if (kind === "bracket")
5594
+ return /* @__PURE__ */ jsx(
5595
+ "span",
5596
+ {
5597
+ "aria-hidden": true,
5598
+ style,
5599
+ className: "h-3 w-3.5 shrink-0 border-l-2 border-current bg-current/10"
5600
+ }
5601
+ );
5602
+ if (kind === "rule")
5603
+ return /* @__PURE__ */ jsx(
5604
+ "span",
5605
+ {
5606
+ "aria-hidden": true,
5607
+ style,
5608
+ className: "relative h-3 w-4 shrink-0 before:absolute before:inset-x-0 before:top-1.5 before:border-t-2 before:border-current after:absolute after:left-0.5 after:top-[3px] after:size-1.5 after:bg-current"
5609
+ }
5610
+ );
5277
5611
  if (kind === "dashed")
5278
5612
  return /* @__PURE__ */ jsx(
5279
5613
  "span",
@@ -5299,7 +5633,7 @@ function Swatch({ kind = "dot", color }) {
5299
5633
  }
5300
5634
  );
5301
5635
  }
5302
- var Legend = React24.forwardRef(
5636
+ var Legend = React25.forwardRef(
5303
5637
  ({ orientation = "row", className, children, ...props }, ref) => /* @__PURE__ */ jsx(
5304
5638
  "div",
5305
5639
  {
@@ -5316,7 +5650,7 @@ var Legend = React24.forwardRef(
5316
5650
  )
5317
5651
  );
5318
5652
  Legend.displayName = "Legend";
5319
- var LegendItem = React24.forwardRef(
5653
+ var LegendItem = React25.forwardRef(
5320
5654
  ({ kind, color, label, count, className, ...props }, ref) => /* @__PURE__ */ jsxs(
5321
5655
  "div",
5322
5656
  {
@@ -5333,7 +5667,7 @@ var LegendItem = React24.forwardRef(
5333
5667
  )
5334
5668
  );
5335
5669
  LegendItem.displayName = "LegendItem";
5336
- var LensChip = React24.forwardRef(
5670
+ var LensChip = React25.forwardRef(
5337
5671
  ({ lens, onPick, className, ...props }, ref) => {
5338
5672
  const label = lens?.name ?? "Everything";
5339
5673
  const unset = lens == null;
@@ -5395,7 +5729,7 @@ function describe(n, palette) {
5395
5729
  ] });
5396
5730
  }
5397
5731
  }
5398
- var LensRow = React24.forwardRef(
5732
+ var LensRow = React25.forwardRef(
5399
5733
  ({ name, narrows = [], usage, selected, onSelect, palette, className, ...props }, ref) => {
5400
5734
  const interactive = Boolean(onSelect);
5401
5735
  return /* @__PURE__ */ jsxs(
@@ -5431,7 +5765,7 @@ var LensRow = React24.forwardRef(
5431
5765
  usage.lastUsed ? ` \xB7 last ${usage.lastUsed}` : ""
5432
5766
  ] }) : null
5433
5767
  ] }),
5434
- narrows.length ? /* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-sm text-muted-foreground", children: narrows.map((n, i) => /* @__PURE__ */ jsxs(React24.Fragment, { children: [
5768
+ narrows.length ? /* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-sm text-muted-foreground", children: narrows.map((n, i) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
5435
5769
  i > 0 ? /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "opacity-40", children: "\xB7" }) : null,
5436
5770
  /* @__PURE__ */ jsx("span", { className: "inline-flex items-center", children: describe(n, palette) })
5437
5771
  ] }, `${n.kind}-${i}`)) }) : /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground/70", children: "narrows nothing \u2014 the whole model, inside the guardrails" })
@@ -5441,7 +5775,31 @@ var LensRow = React24.forwardRef(
5441
5775
  }
5442
5776
  );
5443
5777
  LensRow.displayName = "LensRow";
5444
- var MatchPreview = React24.forwardRef(
5778
+ var TONE3 = {
5779
+ muted: "border-muted-foreground/50 text-muted-foreground",
5780
+ info: "border-info/60 text-info",
5781
+ success: "border-success/60 text-success",
5782
+ warning: "border-warning/60 text-warning",
5783
+ destructive: "border-destructive/60 text-destructive"
5784
+ };
5785
+ var MarkChip = React25.forwardRef(
5786
+ ({ tone = "warning", className, children, ...props }, ref) => /* @__PURE__ */ jsx(
5787
+ "span",
5788
+ {
5789
+ ref,
5790
+ className: cn(
5791
+ "inline-flex shrink-0 items-center rounded-control border px-1 py-px",
5792
+ "font-mono text-xs whitespace-nowrap",
5793
+ TONE3[tone],
5794
+ className
5795
+ ),
5796
+ ...props,
5797
+ children
5798
+ }
5799
+ )
5800
+ );
5801
+ MarkChip.displayName = "MarkChip";
5802
+ var MatchPreview = React25.forwardRef(
5445
5803
  ({ pattern, matches = [], loading, limit = 8, className, ...props }, ref) => {
5446
5804
  const hits = matches.filter((m) => m.matched);
5447
5805
  const misses = matches.filter((m) => !m.matched);
@@ -5550,14 +5908,14 @@ var MenuItem = ({
5550
5908
  )
5551
5909
  ] });
5552
5910
  };
5553
- var TONE2 = {
5911
+ var TONE4 = {
5554
5912
  running: "text-info",
5555
5913
  success: "text-success",
5556
5914
  warning: "text-warning",
5557
5915
  error: "text-destructive",
5558
5916
  info: "text-info"
5559
5917
  };
5560
- var MetricTile = React24.forwardRef(
5918
+ var MetricTile = React25.forwardRef(
5561
5919
  ({ label, value, caption, tone, meter, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
5562
5920
  "div",
5563
5921
  {
@@ -5577,7 +5935,7 @@ var MetricTile = React24.forwardRef(
5577
5935
  // `1,880` and `2 / 5` in adjacent tiles sit at different widths, and
5578
5936
  // a strip of six stops reading as one row of numbers.
5579
5937
  "font-mono text-lg font-semibold leading-tight",
5580
- tone ? TONE2[tone] ?? "text-foreground" : void 0
5938
+ tone ? TONE4[tone] ?? "text-foreground" : void 0
5581
5939
  ),
5582
5940
  children: value
5583
5941
  }
@@ -5596,7 +5954,7 @@ var MetricTile = React24.forwardRef(
5596
5954
  children: /* @__PURE__ */ jsx(
5597
5955
  "div",
5598
5956
  {
5599
- className: cn("h-full", tone ? TONE2[tone] ?? "text-foreground" : "text-primary", "bg-current"),
5957
+ className: cn("h-full", tone ? TONE4[tone] ?? "text-foreground" : "text-primary", "bg-current"),
5600
5958
  style: { width: `${Math.min(Math.max(meter, 0), 1) * 100}%` }
5601
5959
  }
5602
5960
  )
@@ -5609,7 +5967,7 @@ var MetricTile = React24.forwardRef(
5609
5967
  )
5610
5968
  );
5611
5969
  MetricTile.displayName = "MetricTile";
5612
- var MetricGrid = React24.forwardRef(
5970
+ var MetricGrid = React25.forwardRef(
5613
5971
  ({ minTileWidth = 120, gap = 6, className, style, children, ...props }, ref) => /* @__PURE__ */ jsx(
5614
5972
  "div",
5615
5973
  {
@@ -5668,7 +6026,7 @@ var NestedMenu = (props) => {
5668
6026
  }
5669
6027
  );
5670
6028
  };
5671
- var PanelBox = React24.forwardRef(
6029
+ var PanelBox = React25.forwardRef(
5672
6030
  ({ title, aside, flush, className, headerClassName, bodyClassName, children, ...props }, ref) => /* @__PURE__ */ jsxs(
5673
6031
  Card,
5674
6032
  {
@@ -5759,13 +6117,13 @@ function PanelStack({
5759
6117
  headerClassName,
5760
6118
  bodyClassName
5761
6119
  }) {
5762
- const groupRef = React24.useRef(null);
5763
- const refs = React24.useRef({});
5764
- const [collapsed, setCollapsed] = React24.useState(
6120
+ const groupRef = React25.useRef(null);
6121
+ const refs = React25.useRef({});
6122
+ const [collapsed, setCollapsed] = React25.useState(
5765
6123
  () => Object.fromEntries(sections.map((s) => [s.id, !!s.defaultCollapsed]))
5766
6124
  );
5767
- const didInit = React24.useRef(false);
5768
- React24.useLayoutEffect(() => {
6125
+ const didInit = React25.useRef(false);
6126
+ React25.useLayoutEffect(() => {
5769
6127
  if (didInit.current) return;
5770
6128
  didInit.current = true;
5771
6129
  const targets = sections.filter((s) => s.defaultCollapsed);
@@ -5797,18 +6155,18 @@ function PanelStack({
5797
6155
  for (const s of targets) refs.current[s.id]?.collapse();
5798
6156
  group.setLayout(next);
5799
6157
  }, []);
5800
- const notify = React24.useRef(onCollapsedChange);
5801
- React24.useEffect(() => {
6158
+ const notify = React25.useRef(onCollapsedChange);
6159
+ React25.useEffect(() => {
5802
6160
  notify.current = onCollapsedChange;
5803
6161
  }, [onCollapsedChange]);
5804
- const collapsedRef = React24.useRef(collapsed);
6162
+ const collapsedRef = React25.useRef(collapsed);
5805
6163
  collapsedRef.current = collapsed;
5806
- const collapsePanel = React24.useCallback((id) => {
6164
+ const collapsePanel = React25.useCallback((id) => {
5807
6165
  const ref = refs.current[id];
5808
6166
  if (!ref || ref.isCollapsed()) return;
5809
6167
  ref.collapse();
5810
6168
  }, []);
5811
- const expandPanel = React24.useCallback((id) => {
6169
+ const expandPanel = React25.useCallback((id) => {
5812
6170
  const ref = refs.current[id];
5813
6171
  if (!ref || !ref.isCollapsed()) return;
5814
6172
  ref.expand();
@@ -5826,7 +6184,7 @@ function PanelStack({
5826
6184
  [donorId]: donorPct - share
5827
6185
  });
5828
6186
  }, []);
5829
- const toggle = React24.useCallback(
6187
+ const toggle = React25.useCallback(
5830
6188
  (id) => {
5831
6189
  const ref = refs.current[id];
5832
6190
  if (!ref) return;
@@ -5835,7 +6193,7 @@ function PanelStack({
5835
6193
  },
5836
6194
  [expandPanel, collapsePanel]
5837
6195
  );
5838
- React24.useImperativeHandle(
6196
+ React25.useImperativeHandle(
5839
6197
  stackRef,
5840
6198
  () => ({
5841
6199
  expand: expandPanel,
@@ -5859,7 +6217,7 @@ function PanelStack({
5859
6217
  const Icon = section.icon;
5860
6218
  const isCollapsed = collapsed[section.id];
5861
6219
  const flush = index > 0 && (isCollapsed || collapsed[sections[index - 1].id]);
5862
- return /* @__PURE__ */ jsxs(React24.Fragment, { children: [
6220
+ return /* @__PURE__ */ jsxs(React25.Fragment, { children: [
5863
6221
  index > 0 && /* @__PURE__ */ jsx(
5864
6222
  ResizableHandle,
5865
6223
  {
@@ -5955,7 +6313,52 @@ function PanelStack({
5955
6313
  ) })
5956
6314
  );
5957
6315
  }
5958
- var PropertyList = React24.forwardRef(
6316
+ var TONE5 = {
6317
+ success: "text-success",
6318
+ muted: "text-muted-foreground",
6319
+ warning: "text-warning",
6320
+ destructive: "text-destructive"
6321
+ };
6322
+ var DEFAULT_TONE = {
6323
+ touched: "success",
6324
+ refused: "destructive",
6325
+ denied: "destructive"
6326
+ };
6327
+ var ADDRESS_TONE = {
6328
+ touched: "allowed",
6329
+ refused: "refused",
6330
+ denied: "denied",
6331
+ "never touched": "untouched",
6332
+ miss: "untouched"
6333
+ };
6334
+ var ParticipantRow = React25.forwardRef(({ address, verdict, note, tone, addressTone, className, ...props }, ref) => {
6335
+ const resolved = tone ?? DEFAULT_TONE[verdict] ?? "muted";
6336
+ return /* @__PURE__ */ jsxs(
6337
+ "div",
6338
+ {
6339
+ ref,
6340
+ className: cn(
6341
+ "flex min-w-0 items-baseline gap-2 border-border/55 border-t py-1 first:border-t-0",
6342
+ className
6343
+ ),
6344
+ ...props,
6345
+ children: [
6346
+ /* @__PURE__ */ jsx(
6347
+ AddressChip,
6348
+ {
6349
+ address,
6350
+ tone: addressTone ?? ADDRESS_TONE[verdict] ?? "allowed",
6351
+ className: "min-w-0 flex-1"
6352
+ }
6353
+ ),
6354
+ /* @__PURE__ */ jsx("span", { className: cn("shrink-0 text-sm", TONE5[resolved]), children: verdict }),
6355
+ note != null ? /* @__PURE__ */ jsx("span", { className: "max-w-[18rem] shrink-0 truncate text-sm text-muted-foreground", children: note }) : null
6356
+ ]
6357
+ }
6358
+ );
6359
+ });
6360
+ ParticipantRow.displayName = "ParticipantRow";
6361
+ var PropertyList = React25.forwardRef(
5959
6362
  ({ labelWidth = 78, className, style, children, ...props }, ref) => /* @__PURE__ */ jsx(
5960
6363
  "dl",
5961
6364
  {
@@ -5971,7 +6374,7 @@ var PropertyList = React24.forwardRef(
5971
6374
  )
5972
6375
  );
5973
6376
  PropertyList.displayName = "PropertyList";
5974
- var PropertyRow = React24.forwardRef(
6377
+ var PropertyRow = React25.forwardRef(
5975
6378
  ({ label, mono, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
5976
6379
  "div",
5977
6380
  {
@@ -5986,7 +6389,7 @@ var PropertyRow = React24.forwardRef(
5986
6389
  )
5987
6390
  );
5988
6391
  PropertyRow.displayName = "PropertyRow";
5989
- var ProposalCard = React24.forwardRef(
6392
+ var ProposalCard = React25.forwardRef(
5990
6393
  ({
5991
6394
  title,
5992
6395
  source,
@@ -6018,7 +6421,7 @@ var ProposalCard = React24.forwardRef(
6018
6421
  ] })
6019
6422
  );
6020
6423
  ProposalCard.displayName = "ProposalCard";
6021
- var DotRating = React24.forwardRef(
6424
+ var DotRating = React25.forwardRef(
6022
6425
  ({ value, max = 3, onChange, readOnly, label, className, ...props }, ref) => /* @__PURE__ */ jsx(
6023
6426
  "div",
6024
6427
  {
@@ -6063,7 +6466,7 @@ var DotRating = React24.forwardRef(
6063
6466
  )
6064
6467
  );
6065
6468
  DotRating.displayName = "DotRating";
6066
- var RatingControl = React24.forwardRef(
6469
+ var RatingControl = React25.forwardRef(
6067
6470
  ({
6068
6471
  verdict,
6069
6472
  onVerdictChange,
@@ -6120,7 +6523,7 @@ var RatingControl = React24.forwardRef(
6120
6523
  )
6121
6524
  );
6122
6525
  RatingControl.displayName = "RatingControl";
6123
- var RecordHeader = React24.forwardRef(
6526
+ var RecordHeader = React25.forwardRef(
6124
6527
  ({ tone, crumbs, chips, actions, className, ...props }, ref) => /* @__PURE__ */ jsxs(
6125
6528
  "div",
6126
6529
  {
@@ -6134,7 +6537,7 @@ var RecordHeader = React24.forwardRef(
6134
6537
  tone ? /* @__PURE__ */ jsx(StatusDot, { tone, size: "lg" }) : null,
6135
6538
  /* @__PURE__ */ jsx("div", { className: "flex min-w-0 items-center gap-1.5", children: crumbs.map((crumb, i) => {
6136
6539
  const last = i === crumbs.length - 1;
6137
- return /* @__PURE__ */ jsxs(React24.Fragment, { children: [
6540
+ return /* @__PURE__ */ jsxs(React25.Fragment, { children: [
6138
6541
  i > 0 ? /* @__PURE__ */ jsx(
6139
6542
  ChevronRight,
6140
6543
  {
@@ -6146,8 +6549,13 @@ var RecordHeader = React24.forwardRef(
6146
6549
  "span",
6147
6550
  {
6148
6551
  className: cn(
6149
- "min-w-0 truncate font-mono",
6150
- last ? "text-base font-semibold text-foreground" : "text-muted-foreground"
6552
+ "truncate font-mono",
6553
+ // The **last** crumb gives way first. It is the record's own
6554
+ // name and the longest of them, and the reader is already on
6555
+ // it; the parents are what say *which dashboard this is*, and
6556
+ // at four characters `runs` truncated to `ru…` leaves the one
6557
+ // question a crumb trail exists to answer unanswered.
6558
+ last ? "min-w-[6ch] shrink-[999] text-base font-semibold text-foreground" : "min-w-[3ch] text-muted-foreground"
6151
6559
  ),
6152
6560
  children: crumb
6153
6561
  }
@@ -6161,7 +6569,55 @@ var RecordHeader = React24.forwardRef(
6161
6569
  )
6162
6570
  );
6163
6571
  RecordHeader.displayName = "RecordHeader";
6164
- var RepairNote = React24.forwardRef(
6572
+ var RecordPager = React25.forwardRef(
6573
+ ({
6574
+ position,
6575
+ onPrevious,
6576
+ onNext,
6577
+ previousLabel = "Previous",
6578
+ nextLabel = "Next",
6579
+ className,
6580
+ ...props
6581
+ }, ref) => /* @__PURE__ */ jsxs(
6582
+ "div",
6583
+ {
6584
+ ref,
6585
+ className: cn("flex items-center gap-1.5", className),
6586
+ ...props,
6587
+ children: [
6588
+ position != null ? /* @__PURE__ */ jsx("span", { className: "shrink-0 text-sm text-muted-foreground", children: position }) : null,
6589
+ /* @__PURE__ */ jsxs("span", { className: "flex items-center", children: [
6590
+ /* @__PURE__ */ jsx(
6591
+ Button,
6592
+ {
6593
+ type: "button",
6594
+ variant: "ghost",
6595
+ size: "icon-xs",
6596
+ "aria-label": previousLabel,
6597
+ disabled: !onPrevious,
6598
+ onClick: onPrevious,
6599
+ children: /* @__PURE__ */ jsx(ChevronLeft, { "aria-hidden": true })
6600
+ }
6601
+ ),
6602
+ /* @__PURE__ */ jsx(
6603
+ Button,
6604
+ {
6605
+ type: "button",
6606
+ variant: "ghost",
6607
+ size: "icon-xs",
6608
+ "aria-label": nextLabel,
6609
+ disabled: !onNext,
6610
+ onClick: onNext,
6611
+ children: /* @__PURE__ */ jsx(ChevronRight, { "aria-hidden": true })
6612
+ }
6613
+ )
6614
+ ] })
6615
+ ]
6616
+ }
6617
+ )
6618
+ );
6619
+ RecordPager.displayName = "RecordPager";
6620
+ var RepairNote = React25.forwardRef(
6165
6621
  ({ from, to, className, ...props }, ref) => /* @__PURE__ */ jsxs(
6166
6622
  "div",
6167
6623
  {
@@ -6180,7 +6636,7 @@ var RepairNote = React24.forwardRef(
6180
6636
  )
6181
6637
  );
6182
6638
  RepairNote.displayName = "RepairNote";
6183
- var RetryNote = React24.forwardRef(
6639
+ var RetryNote = React25.forwardRef(
6184
6640
  ({ attempt, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
6185
6641
  "div",
6186
6642
  {
@@ -6347,7 +6803,7 @@ function describeSlice(select, declared) {
6347
6803
  }
6348
6804
  return out;
6349
6805
  }
6350
- var SliceSummary = React24.forwardRef(
6806
+ var SliceSummary = React25.forwardRef(
6351
6807
  ({ select, declaredAxes, modelLabel, variant = "line", className, ...props }, ref) => {
6352
6808
  const lines = select ? describeSlice(select, declaredAxes) : [];
6353
6809
  if (!lines.length) {
@@ -6394,7 +6850,7 @@ var SliceSummary = React24.forwardRef(
6394
6850
  }
6395
6851
  );
6396
6852
  SliceSummary.displayName = "SliceSummary";
6397
- var RuleRow = React24.forwardRef(
6853
+ var RuleRow = React25.forwardRef(
6398
6854
  ({ match, allow, properties, select, egress, readOnly, className, ...props }, ref) => {
6399
6855
  const excluded = properties?.exclude ?? [];
6400
6856
  const sends = egress?.may_send ?? [];
@@ -6452,6 +6908,111 @@ var RuleRow = React24.forwardRef(
6452
6908
  }
6453
6909
  );
6454
6910
  RuleRow.displayName = "RuleRow";
6911
+ var TONE6 = {
6912
+ queued: "queued",
6913
+ running: "running",
6914
+ succeeded: "success",
6915
+ failed: "error",
6916
+ cancelled: "muted",
6917
+ cannot_answer: "warning",
6918
+ awaiting_approval: "warning",
6919
+ skipped: "muted",
6920
+ held: "muted",
6921
+ purged: "muted"
6922
+ };
6923
+ var TEXT = {
6924
+ running: "text-info",
6925
+ success: "text-success",
6926
+ warning: "text-warning",
6927
+ error: "text-destructive",
6928
+ info: "text-info",
6929
+ queued: "text-muted-foreground",
6930
+ muted: "text-muted-foreground"
6931
+ };
6932
+ var RunStatusText = React25.forwardRef(({ status, tone, dot, label, className, ...props }, ref) => {
6933
+ const resolved = tone ?? TONE6[status] ?? "muted";
6934
+ return /* @__PURE__ */ jsxs(
6935
+ "span",
6936
+ {
6937
+ ref,
6938
+ className: cn(
6939
+ "inline-flex min-w-0 items-center gap-1.5",
6940
+ TEXT[resolved],
6941
+ className
6942
+ ),
6943
+ ...props,
6944
+ children: [
6945
+ dot ? /* @__PURE__ */ jsx(StatusDot, { tone: resolved }) : null,
6946
+ /* @__PURE__ */ jsx("span", { className: "truncate", children: label ?? status })
6947
+ ]
6948
+ }
6949
+ );
6950
+ });
6951
+ RunStatusText.displayName = "RunStatusText";
6952
+ var RunRow = React25.forwardRef(
6953
+ ({
6954
+ status,
6955
+ tone,
6956
+ kind,
6957
+ address,
6958
+ title,
6959
+ meta,
6960
+ aside,
6961
+ depth = 0,
6962
+ selected,
6963
+ onSelect,
6964
+ className,
6965
+ ...props
6966
+ }, ref) => {
6967
+ const Row = onSelect ? "button" : "div";
6968
+ return /* @__PURE__ */ jsx(
6969
+ "div",
6970
+ {
6971
+ ref,
6972
+ className: cn(
6973
+ "border-b border-border/55",
6974
+ selected && "bg-accent shadow-[inset_2px_0_0_var(--color-primary)]",
6975
+ className
6976
+ ),
6977
+ ...props,
6978
+ children: /* @__PURE__ */ jsxs(
6979
+ Row,
6980
+ {
6981
+ type: onSelect ? "button" : void 0,
6982
+ onClick: onSelect,
6983
+ "aria-current": onSelect && selected ? "true" : void 0,
6984
+ style: { paddingLeft: 12 + depth * 18 },
6985
+ className: cn(
6986
+ "flex w-full items-start gap-2 py-1.5 pr-3 text-left",
6987
+ onSelect && "cursor-pointer hover:bg-accent/60 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring"
6988
+ ),
6989
+ children: [
6990
+ /* @__PURE__ */ jsx(
6991
+ StatusDot,
6992
+ {
6993
+ tone: tone ?? TONE6[status] ?? "muted",
6994
+ size: "md",
6995
+ className: "mt-1.5",
6996
+ label: typeof status === "string" ? status : void 0
6997
+ }
6998
+ ),
6999
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 flex-col", children: [
7000
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 items-center gap-1.5", children: [
7001
+ kind ? /* @__PURE__ */ jsx(KindChip, { kind }) : null,
7002
+ address != null ? /* @__PURE__ */ jsx("span", { className: "shrink-0 font-mono", children: address }) : null,
7003
+ /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: title })
7004
+ ] }),
7005
+ meta != null ? /* @__PURE__ */ jsx("span", { className: "truncate text-sm text-muted-foreground", children: meta }) : null
7006
+ ] }),
7007
+ aside != null ? /* @__PURE__ */ jsx("span", { className: "shrink-0 pt-0.5 text-sm text-muted-foreground", children: aside }) : null
7008
+ ]
7009
+ }
7010
+ )
7011
+ }
7012
+ );
7013
+ }
7014
+ );
7015
+ RunRow.displayName = "RunRow";
6455
7016
  var SearchInput = ({
6456
7017
  value,
6457
7018
  onChange,
@@ -6478,7 +7039,7 @@ var SearchInput = ({
6478
7039
  }
6479
7040
  );
6480
7041
  };
6481
- var SectionHeader = React24.forwardRef(({ icon, title, count, actions, bare, className, ...props }, ref) => /* @__PURE__ */ jsxs(
7042
+ var SectionHeader = React25.forwardRef(({ icon, title, count, actions, bare, className, ...props }, ref) => /* @__PURE__ */ jsxs(
6482
7043
  "div",
6483
7044
  {
6484
7045
  ref,
@@ -6497,7 +7058,7 @@ var SectionHeader = React24.forwardRef(({ icon, title, count, actions, bare, cla
6497
7058
  }
6498
7059
  ));
6499
7060
  SectionHeader.displayName = "SectionHeader";
6500
- var Sparkline = React24.forwardRef(
7061
+ var Sparkline = React25.forwardRef(
6501
7062
  ({
6502
7063
  values,
6503
7064
  width = 72,
@@ -6584,7 +7145,7 @@ function TabbedPanel({
6584
7145
  footerClassName,
6585
7146
  footerContent
6586
7147
  }) {
6587
- const [internalTab, setInternalTab] = React24__default.useState(defaultTab || tabs[0]?.value);
7148
+ const [internalTab, setInternalTab] = React25__default.useState(defaultTab || tabs[0]?.value);
6588
7149
  const currentTab = activeTab !== void 0 ? activeTab : internalTab;
6589
7150
  const handleTabChange = (value) => {
6590
7151
  if (activeTab === void 0) {
@@ -6592,9 +7153,9 @@ function TabbedPanel({
6592
7153
  }
6593
7154
  onTabChange?.(value);
6594
7155
  };
6595
- const uid = React24__default.useId();
7156
+ const uid = React25__default.useId();
6596
7157
  const panelId = (value) => `${uid}-panel-${value}`;
6597
- const items = React24__default.useMemo(
7158
+ const items = React25__default.useMemo(
6598
7159
  () => tabs.map((tab) => ({
6599
7160
  key: tab.value,
6600
7161
  name: tab.name ?? (typeof tab.label === "string" ? tab.label : tab.value),
@@ -6680,7 +7241,7 @@ var STATUS_LABEL = {
6680
7241
  };
6681
7242
  function renderResult(result) {
6682
7243
  if (result == null) return null;
6683
- if (React24.isValidElement(result)) return result;
7244
+ if (React25.isValidElement(result)) return result;
6684
7245
  if (typeof result !== "object") {
6685
7246
  return /* @__PURE__ */ jsx("span", { className: "font-mono text-sm", children: String(result) });
6686
7247
  }
@@ -6695,7 +7256,7 @@ function renderResult(result) {
6695
7256
  ] }, k))
6696
7257
  ] });
6697
7258
  }
6698
- var TaskGanttDetailCard = React24.forwardRef(({ task, elapsedMs, formatDuration = defaultFormatDuration, className, ...props }, ref) => {
7259
+ var TaskGanttDetailCard = React25.forwardRef(({ task, elapsedMs, formatDuration = defaultFormatDuration, className, ...props }, ref) => {
6699
7260
  const status = task.status ?? "succeeded";
6700
7261
  const ms = task.durationMs ?? elapsedMs;
6701
7262
  const duration = task.duration ?? (ms != null ? formatDuration(ms) : "\u2014");
@@ -6761,7 +7322,7 @@ function place(seg, origin) {
6761
7322
  }
6762
7323
  return { start, duration: duration != null && duration > 0 ? duration : 0 };
6763
7324
  }
6764
- var TaskGantt = React24.forwardRef(
7325
+ var TaskGantt = React25.forwardRef(
6765
7326
  ({
6766
7327
  tasks,
6767
7328
  origin,
@@ -6783,7 +7344,7 @@ var TaskGantt = React24.forwardRef(
6783
7344
  }, ref) => {
6784
7345
  const barHeight = density === "compact" ? 11 : 13;
6785
7346
  const durationWidth = 40;
6786
- const rows = React24.useMemo(() => {
7347
+ const rows = React25.useMemo(() => {
6787
7348
  const stamps = [];
6788
7349
  for (const t of [...tasks, ...tasks.flatMap((t2) => t2.attempts ?? [])]) {
6789
7350
  if (t.startedAt != null) stamps.push(toMs(t.startedAt));
@@ -6944,7 +7505,7 @@ var TaskGantt = React24.forwardRef(
6944
7505
  }
6945
7506
  );
6946
7507
  TaskGantt.displayName = "TaskGantt";
6947
- var TaskNode = React24.forwardRef(
7508
+ var TaskNode = React25.forwardRef(
6948
7509
  ({
6949
7510
  taskKey,
6950
7511
  bound,
@@ -6954,6 +7515,7 @@ var TaskNode = React24.forwardRef(
6954
7515
  tags,
6955
7516
  meta,
6956
7517
  selected,
7518
+ readOnly,
6957
7519
  gate,
6958
7520
  dim,
6959
7521
  ghost,
@@ -6993,7 +7555,7 @@ var TaskNode = React24.forwardRef(
6993
7555
  ),
6994
7556
  ...props,
6995
7557
  children: [
6996
- selected ? ["-left-1 -top-1", "-right-1 -top-1", "-bottom-1 -left-1", "-bottom-1 -right-1"].map(
7558
+ selected && !readOnly ? ["-left-1 -top-1", "-right-1 -top-1", "-bottom-1 -left-1", "-bottom-1 -right-1"].map(
6997
7559
  (pos) => /* @__PURE__ */ jsx(
6998
7560
  "span",
6999
7561
  {
@@ -7037,7 +7599,7 @@ var TaskNode = React24.forwardRef(
7037
7599
  }
7038
7600
  );
7039
7601
  TaskNode.displayName = "TaskNode";
7040
- var TemplatePicker = React24.forwardRef(({ heading, options, value, onSelect, footnote, className, ...props }, ref) => /* @__PURE__ */ jsxs(
7602
+ var TemplatePicker = React25.forwardRef(({ heading, options, value, onSelect, footnote, className, ...props }, ref) => /* @__PURE__ */ jsxs(
7041
7603
  "div",
7042
7604
  {
7043
7605
  ref,
@@ -7088,7 +7650,7 @@ var MARKER = {
7088
7650
  output: "\u2192",
7089
7651
  comment: "#"
7090
7652
  };
7091
- var Terminal = React24.forwardRef(
7653
+ var Terminal = React25.forwardRef(
7092
7654
  ({ cursor, columnTemplate = "150px minmax(0,1fr) auto auto", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
7093
7655
  "div",
7094
7656
  {
@@ -7113,7 +7675,7 @@ var Terminal = React24.forwardRef(
7113
7675
  )
7114
7676
  );
7115
7677
  Terminal.displayName = "Terminal";
7116
- var TerminalLine = React24.forwardRef(
7678
+ var TerminalLine = React25.forwardRef(
7117
7679
  ({ kind = "output", level, levelColumn = 1, columns, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
7118
7680
  "div",
7119
7681
  {
@@ -7155,10 +7717,10 @@ var TerminalLine = React24.forwardRef(
7155
7717
  )
7156
7718
  );
7157
7719
  TerminalLine.displayName = "TerminalLine";
7158
- var TimelineVariantContext = React24.createContext("columns");
7720
+ var TimelineVariantContext = React25.createContext("columns");
7159
7721
  var RAIL_MARKER_OFFSET = "h-[0.692rem]";
7160
7722
  var RAIL_FOOTER_TAIL = "h-[1.067rem]";
7161
- var TimelineList = React24.forwardRef(({ className, variant = "columns", children, ...props }, ref) => /* @__PURE__ */ jsx(TimelineVariantContext.Provider, { value: variant, children: /* @__PURE__ */ jsx("ol", { ref, className: cn("flex flex-col", className), ...props, children }) }));
7723
+ var TimelineList = React25.forwardRef(({ className, variant = "columns", children, ...props }, ref) => /* @__PURE__ */ jsx(TimelineVariantContext.Provider, { value: variant, children: /* @__PURE__ */ jsx("ol", { ref, className: cn("flex flex-col", className), ...props, children }) }));
7162
7724
  TimelineList.displayName = "TimelineList";
7163
7725
  function RailGutter({ marker }) {
7164
7726
  return /* @__PURE__ */ jsxs("span", { className: "flex w-2.5 shrink-0 flex-col items-center", children: [
@@ -7182,8 +7744,8 @@ function RailGutter({ marker }) {
7182
7744
  )
7183
7745
  ] });
7184
7746
  }
7185
- var TimelineEntry = React24.forwardRef(({ when, title, marker, className, children, ...props }, ref) => {
7186
- const variant = React24.useContext(TimelineVariantContext);
7747
+ var TimelineEntry = React25.forwardRef(({ when, title, marker, className, children, ...props }, ref) => {
7748
+ const variant = React25.useContext(TimelineVariantContext);
7187
7749
  if (variant === "rail") {
7188
7750
  return /* @__PURE__ */ jsxs(
7189
7751
  "li",
@@ -7222,8 +7784,8 @@ var TimelineEntry = React24.forwardRef(({ when, title, marker, className, childr
7222
7784
  );
7223
7785
  });
7224
7786
  TimelineEntry.displayName = "TimelineEntry";
7225
- var TimelineFooter = React24.forwardRef(({ className, children, ...props }, ref) => {
7226
- const variant = React24.useContext(TimelineVariantContext);
7787
+ var TimelineFooter = React25.forwardRef(({ className, children, ...props }, ref) => {
7788
+ const variant = React25.useContext(TimelineVariantContext);
7227
7789
  if (variant === "rail") {
7228
7790
  return /* @__PURE__ */ jsxs(
7229
7791
  "li",
@@ -7260,6 +7822,66 @@ var Toolbar = () => {
7260
7822
  /* @__PURE__ */ jsx("div", { children: "Source" })
7261
7823
  ] });
7262
7824
  };
7825
+ var TouchStrip = React25.forwardRef(
7826
+ ({ items, palette, className, ...props }, ref) => /* @__PURE__ */ jsx(
7827
+ "div",
7828
+ {
7829
+ ref,
7830
+ role: "list",
7831
+ className: cn("flex flex-wrap gap-2", className),
7832
+ ...props,
7833
+ children: items.map((item) => {
7834
+ const paint = layerPaint(palette, item.layer);
7835
+ return /* @__PURE__ */ jsxs(
7836
+ "div",
7837
+ {
7838
+ role: "listitem",
7839
+ className: cn(
7840
+ "flex min-w-0 flex-1 flex-col gap-px rounded-control border border-border bg-card px-2 py-1",
7841
+ item.dim && "opacity-55"
7842
+ ),
7843
+ children: [
7844
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 items-center gap-1.5", children: [
7845
+ /* @__PURE__ */ jsx(
7846
+ "span",
7847
+ {
7848
+ "aria-hidden": true,
7849
+ className: cn(
7850
+ "size-1.5 shrink-0 rounded-full",
7851
+ item.dim ? "bg-muted-foreground" : paint.swatch
7852
+ )
7853
+ }
7854
+ ),
7855
+ /* @__PURE__ */ jsx(
7856
+ "span",
7857
+ {
7858
+ className: cn(
7859
+ "min-w-0 truncate",
7860
+ item.dim && "text-muted-foreground"
7861
+ ),
7862
+ children: item.label ?? layerLabel(item.layer)
7863
+ }
7864
+ )
7865
+ ] }),
7866
+ item.note != null ? /* @__PURE__ */ jsx(
7867
+ "span",
7868
+ {
7869
+ className: cn(
7870
+ "truncate font-mono text-xs text-muted-foreground",
7871
+ item.refused && "line-through"
7872
+ ),
7873
+ children: item.note
7874
+ }
7875
+ ) : null
7876
+ ]
7877
+ },
7878
+ String(item.layer)
7879
+ );
7880
+ })
7881
+ }
7882
+ )
7883
+ );
7884
+ TouchStrip.displayName = "TouchStrip";
7263
7885
  function useTour(options) {
7264
7886
  const {
7265
7887
  steps,
@@ -7269,11 +7891,11 @@ function useTour(options) {
7269
7891
  onComplete,
7270
7892
  onExit
7271
7893
  } = options;
7272
- const [current, setCurrent] = React24.useState(initialStep);
7894
+ const [current, setCurrent] = React25.useState(initialStep);
7273
7895
  const total = steps.length;
7274
7896
  const lastIndex = Math.max(total - 1, 0);
7275
7897
  const clamped = Math.min(Math.max(current, 0), lastIndex);
7276
- const goTo = React24.useCallback(
7898
+ const goTo = React25.useCallback(
7277
7899
  (index) => {
7278
7900
  setCurrent((prev2) => {
7279
7901
  const next2 = Math.min(Math.max(index, 0), lastIndex);
@@ -7283,7 +7905,7 @@ function useTour(options) {
7283
7905
  },
7284
7906
  [lastIndex, onStepChange]
7285
7907
  );
7286
- const next = React24.useCallback(() => {
7908
+ const next = React25.useCallback(() => {
7287
7909
  setCurrent((prev2) => {
7288
7910
  if (prev2 >= lastIndex) {
7289
7911
  if (loop && total > 0) {
@@ -7297,7 +7919,7 @@ function useTour(options) {
7297
7919
  return prev2 + 1;
7298
7920
  });
7299
7921
  }, [lastIndex, total, loop, onComplete, onStepChange]);
7300
- const prev = React24.useCallback(() => {
7922
+ const prev = React25.useCallback(() => {
7301
7923
  setCurrent((p) => {
7302
7924
  if (p <= 0) {
7303
7925
  if (loop && total > 0) {
@@ -7310,10 +7932,10 @@ function useTour(options) {
7310
7932
  return p - 1;
7311
7933
  });
7312
7934
  }, [lastIndex, total, loop, onStepChange]);
7313
- const exit = React24.useCallback(() => {
7935
+ const exit = React25.useCallback(() => {
7314
7936
  onExit?.();
7315
7937
  }, [onExit]);
7316
- return React24.useMemo(
7938
+ return React25.useMemo(
7317
7939
  () => ({
7318
7940
  step: steps[clamped],
7319
7941
  current: clamped,
@@ -7475,8 +8097,222 @@ function Tour({
7475
8097
  }
7476
8098
  ) });
7477
8099
  }
8100
+ var TraceList = React25.forwardRef(
8101
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
8102
+ "div",
8103
+ {
8104
+ ref,
8105
+ role: "list",
8106
+ className: cn("flex flex-col [&>*:first-child]:border-t-0", className),
8107
+ ...props,
8108
+ children
8109
+ }
8110
+ )
8111
+ );
8112
+ TraceList.displayName = "TraceList";
8113
+ var TraceStep = React25.forwardRef(
8114
+ ({
8115
+ seq,
8116
+ name,
8117
+ description,
8118
+ layer,
8119
+ role,
8120
+ duration,
8121
+ note,
8122
+ mark,
8123
+ palette,
8124
+ depth = 0,
8125
+ dim,
8126
+ struck,
8127
+ selected,
8128
+ onSelect,
8129
+ className,
8130
+ ...props
8131
+ }, ref) => {
8132
+ const paint = layer ? layerPaint(palette, layer) : void 0;
8133
+ const Row = onSelect ? "button" : "div";
8134
+ return /* @__PURE__ */ jsxs(
8135
+ "div",
8136
+ {
8137
+ ref,
8138
+ role: "listitem",
8139
+ className: cn(
8140
+ "flex min-h-[46px] items-stretch border-t border-border/55",
8141
+ selected && "bg-accent shadow-[inset_2px_0_0_var(--color-primary)]",
8142
+ dim && "opacity-50",
8143
+ className
8144
+ ),
8145
+ ...props,
8146
+ children: [
8147
+ /* @__PURE__ */ jsx(
8148
+ "span",
8149
+ {
8150
+ "aria-hidden": true,
8151
+ className: cn(
8152
+ "w-[3px] shrink-0",
8153
+ struck ? "bg-destructive" : paint?.swatch ?? "bg-muted-foreground"
8154
+ )
8155
+ }
8156
+ ),
8157
+ /* @__PURE__ */ jsxs(
8158
+ Row,
8159
+ {
8160
+ type: onSelect ? "button" : void 0,
8161
+ onClick: onSelect,
8162
+ className: cn(
8163
+ "flex min-w-0 flex-1 items-center gap-2 pr-3 text-left",
8164
+ onSelect && "cursor-pointer hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring"
8165
+ ),
8166
+ children: [
8167
+ /* @__PURE__ */ jsx(
8168
+ "span",
8169
+ {
8170
+ style: { width: 26 + depth * 18 },
8171
+ className: "shrink-0 text-right font-mono text-xs text-muted-foreground",
8172
+ children: seq
8173
+ }
8174
+ ),
8175
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 flex-col gap-px py-1.5 pl-2", children: [
8176
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 items-center gap-1.5", children: [
8177
+ /* @__PURE__ */ jsx(
8178
+ "span",
8179
+ {
8180
+ className: cn(
8181
+ "min-w-0 truncate font-mono font-semibold",
8182
+ struck && "text-destructive line-through"
8183
+ ),
8184
+ children: name
8185
+ }
8186
+ ),
8187
+ mark
8188
+ ] }),
8189
+ description != null ? /* @__PURE__ */ jsx("span", { className: "truncate text-sm text-muted-foreground", children: description }) : null
8190
+ ] }),
8191
+ layer != null ? (
8192
+ // The layer is never the part that gives way: it is one of six short
8193
+ // words and it is what the row is *about*. The role is the longer,
8194
+ // subordinate string, so it truncates first.
8195
+ /* @__PURE__ */ jsxs("span", { className: "flex w-[10.5rem] shrink-0 items-center justify-end gap-1.5", children: [
8196
+ /* @__PURE__ */ jsx(
8197
+ "span",
8198
+ {
8199
+ "aria-hidden": true,
8200
+ className: cn(
8201
+ "size-1.5 shrink-0 rounded-full",
8202
+ dim ? "bg-muted-foreground" : paint?.swatch
8203
+ )
8204
+ }
8205
+ ),
8206
+ /* @__PURE__ */ jsx(
8207
+ "span",
8208
+ {
8209
+ className: cn(
8210
+ "shrink-0 text-sm whitespace-nowrap",
8211
+ dim && "text-muted-foreground"
8212
+ ),
8213
+ children: layerLabel(layer)
8214
+ }
8215
+ ),
8216
+ role != null ? /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate font-mono text-xs text-muted-foreground", children: role }) : null
8217
+ ] })
8218
+ ) : null,
8219
+ /* @__PURE__ */ jsxs("span", { className: "flex w-[6rem] shrink-0 flex-col items-end", children: [
8220
+ /* @__PURE__ */ jsx("span", { className: "font-mono text-sm", children: duration }),
8221
+ note != null ? /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: note }) : null
8222
+ ] })
8223
+ ]
8224
+ }
8225
+ )
8226
+ ]
8227
+ }
8228
+ );
8229
+ }
8230
+ );
8231
+ TraceStep.displayName = "TraceStep";
8232
+ var LOOP_TONE = {
8233
+ warning: { box: "border-l-warning bg-warning/5", label: "text-warning" },
8234
+ info: { box: "border-l-info bg-info/5", label: "text-info" },
8235
+ muted: { box: "border-l-muted-foreground bg-muted/40", label: "text-muted-foreground" }
8236
+ };
8237
+ var TraceLoop = React25.forwardRef(
8238
+ ({ label, summary, tone = "warning", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
8239
+ "div",
8240
+ {
8241
+ ref,
8242
+ role: "group",
8243
+ "aria-label": typeof label === "string" ? label : void 0,
8244
+ className: cn("border-l-2", LOOP_TONE[tone].box, className),
8245
+ ...props,
8246
+ children: [
8247
+ /* @__PURE__ */ jsxs("div", { className: "flex h-[25px] items-center gap-2 border-t border-border/55 px-3", children: [
8248
+ /* @__PURE__ */ jsx(
8249
+ "span",
8250
+ {
8251
+ className: cn(
8252
+ "truncate font-mono text-xs font-semibold",
8253
+ LOOP_TONE[tone].label
8254
+ ),
8255
+ children: label
8256
+ }
8257
+ ),
8258
+ /* @__PURE__ */ jsx("span", { className: "flex-1" }),
8259
+ summary != null ? /* @__PURE__ */ jsx("span", { className: "shrink-0 text-xs text-muted-foreground", children: summary }) : null
8260
+ ] }),
8261
+ /* @__PURE__ */ jsx("div", { className: "[&>*:first-child]:border-t-0", children })
8262
+ ]
8263
+ }
8264
+ )
8265
+ );
8266
+ TraceLoop.displayName = "TraceLoop";
8267
+ var GATE_TONE = {
8268
+ destructive: "border-destructive text-destructive",
8269
+ warning: "border-warning text-warning",
8270
+ muted: "border-muted-foreground text-muted-foreground"
8271
+ };
8272
+ var TraceGate = React25.forwardRef(
8273
+ ({ label, note, tone = "destructive", edge = "before", className, ...props }, ref) => /* @__PURE__ */ jsxs(
8274
+ "div",
8275
+ {
8276
+ ref,
8277
+ role: "separator",
8278
+ "aria-label": typeof label === "string" ? label : void 0,
8279
+ className: cn("relative flex h-[38px] items-center", className),
8280
+ ...props,
8281
+ children: [
8282
+ /* @__PURE__ */ jsx(
8283
+ "span",
8284
+ {
8285
+ "aria-hidden": true,
8286
+ className: cn(
8287
+ "absolute inset-x-0 border-t-2",
8288
+ GATE_TONE[tone],
8289
+ edge === "before" ? "top-[18px]" : "bottom-[18px]"
8290
+ )
8291
+ }
8292
+ ),
8293
+ /* @__PURE__ */ jsxs(
8294
+ "span",
8295
+ {
8296
+ className: cn(
8297
+ "relative ml-8 flex items-center gap-2 rounded-control border bg-card px-2 py-0.5",
8298
+ GATE_TONE[tone]
8299
+ ),
8300
+ children: [
8301
+ /* @__PURE__ */ jsxs("span", { className: "font-mono text-xs font-semibold whitespace-nowrap", children: [
8302
+ "\u25C8 ",
8303
+ label
8304
+ ] }),
8305
+ note != null ? /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate text-xs text-muted-foreground", children: note }) : null
8306
+ ]
8307
+ }
8308
+ )
8309
+ ]
8310
+ }
8311
+ )
8312
+ );
8313
+ TraceGate.displayName = "TraceGate";
7478
8314
  var TreeView = ({ searchable = false, ...props }) => {
7479
- const [searchQuery, setSearchQuery] = React24.useState("");
8315
+ const [searchQuery, setSearchQuery] = React25.useState("");
7480
8316
  const filterItems = (items, query) => {
7481
8317
  if (!query) return items;
7482
8318
  return items.map((item) => ({
@@ -7499,7 +8335,7 @@ var TreeView = ({ searchable = false, ...props }) => {
7499
8335
  );
7500
8336
  };
7501
8337
  var TreeItem = ({ item }) => {
7502
- const [isExpanded, setIsExpanded] = React24.useState(item.isExpanded || true);
8338
+ const [isExpanded, setIsExpanded] = React25.useState(item.isExpanded || true);
7503
8339
  const hasChildren = item.children && item.children.length > 0;
7504
8340
  return /* @__PURE__ */ jsxs("div", { children: [
7505
8341
  /* @__PURE__ */ jsxs(
@@ -7568,7 +8404,7 @@ function UnderDevelopment({
7568
8404
  /* @__PURE__ */ jsx("span", { className: "mt-4 px-3 py-1 bg-yellow-100 text-yellow-800", children: "Coming Soon" })
7569
8405
  ] });
7570
8406
  }
7571
- var TypographyH1 = React24.forwardRef(
8407
+ var TypographyH1 = React25.forwardRef(
7572
8408
  ({ className, ...props }, ref) => {
7573
8409
  return /* @__PURE__ */ jsx(
7574
8410
  "h1",
@@ -7584,7 +8420,7 @@ var TypographyH1 = React24.forwardRef(
7584
8420
  }
7585
8421
  );
7586
8422
  TypographyH1.displayName = "TypographyH1";
7587
- var TypographyH2 = React24.forwardRef(
8423
+ var TypographyH2 = React25.forwardRef(
7588
8424
  ({ className, ...props }, ref) => {
7589
8425
  return /* @__PURE__ */ jsx(
7590
8426
  "h2",
@@ -7600,7 +8436,7 @@ var TypographyH2 = React24.forwardRef(
7600
8436
  }
7601
8437
  );
7602
8438
  TypographyH2.displayName = "TypographyH2";
7603
- var TypographyH3 = React24.forwardRef(
8439
+ var TypographyH3 = React25.forwardRef(
7604
8440
  ({ className, ...props }, ref) => {
7605
8441
  return /* @__PURE__ */ jsx(
7606
8442
  "h3",
@@ -7616,7 +8452,7 @@ var TypographyH3 = React24.forwardRef(
7616
8452
  }
7617
8453
  );
7618
8454
  TypographyH3.displayName = "TypographyH3";
7619
- var TypographyH4 = React24.forwardRef(
8455
+ var TypographyH4 = React25.forwardRef(
7620
8456
  ({ className, ...props }, ref) => {
7621
8457
  return /* @__PURE__ */ jsx(
7622
8458
  "h4",
@@ -7632,7 +8468,7 @@ var TypographyH4 = React24.forwardRef(
7632
8468
  }
7633
8469
  );
7634
8470
  TypographyH4.displayName = "TypographyH4";
7635
- var TypographyH5 = React24.forwardRef(
8471
+ var TypographyH5 = React25.forwardRef(
7636
8472
  ({ className, ...props }, ref) => {
7637
8473
  return /* @__PURE__ */ jsx(
7638
8474
  "h5",
@@ -7648,7 +8484,7 @@ var TypographyH5 = React24.forwardRef(
7648
8484
  }
7649
8485
  );
7650
8486
  TypographyH5.displayName = "TypographyH5";
7651
- var TypographyH6 = React24.forwardRef(
8487
+ var TypographyH6 = React25.forwardRef(
7652
8488
  ({ className, ...props }, ref) => {
7653
8489
  return /* @__PURE__ */ jsx(
7654
8490
  "h6",
@@ -7664,7 +8500,7 @@ var TypographyH6 = React24.forwardRef(
7664
8500
  }
7665
8501
  );
7666
8502
  TypographyH6.displayName = "TypographyH6";
7667
- var TypographyP = React24.forwardRef(
8503
+ var TypographyP = React25.forwardRef(
7668
8504
  ({ className, ...props }, ref) => {
7669
8505
  return /* @__PURE__ */ jsx(
7670
8506
  "p",
@@ -7680,7 +8516,7 @@ var TypographyP = React24.forwardRef(
7680
8516
  }
7681
8517
  );
7682
8518
  TypographyP.displayName = "TypographyP";
7683
- var TypographyBlockquote = React24.forwardRef(
8519
+ var TypographyBlockquote = React25.forwardRef(
7684
8520
  ({ className, ...props }, ref) => {
7685
8521
  return /* @__PURE__ */ jsx(
7686
8522
  "blockquote",
@@ -7696,7 +8532,7 @@ var TypographyBlockquote = React24.forwardRef(
7696
8532
  }
7697
8533
  );
7698
8534
  TypographyBlockquote.displayName = "TypographyBlockquote";
7699
- var TypographyInlineCode = React24.forwardRef(
8535
+ var TypographyInlineCode = React25.forwardRef(
7700
8536
  ({ className, ...props }, ref) => {
7701
8537
  return /* @__PURE__ */ jsx(
7702
8538
  "code",
@@ -7712,7 +8548,7 @@ var TypographyInlineCode = React24.forwardRef(
7712
8548
  }
7713
8549
  );
7714
8550
  TypographyInlineCode.displayName = "TypographyInlineCode";
7715
- var TypographyLead = React24.forwardRef(
8551
+ var TypographyLead = React25.forwardRef(
7716
8552
  ({ className, ...props }, ref) => {
7717
8553
  return /* @__PURE__ */ jsx(
7718
8554
  "p",
@@ -7728,7 +8564,7 @@ var TypographyLead = React24.forwardRef(
7728
8564
  }
7729
8565
  );
7730
8566
  TypographyLead.displayName = "TypographyLead";
7731
- var TypographyLarge = React24.forwardRef(
8567
+ var TypographyLarge = React25.forwardRef(
7732
8568
  ({ className, ...props }, ref) => {
7733
8569
  return /* @__PURE__ */ jsx(
7734
8570
  "div",
@@ -7744,7 +8580,7 @@ var TypographyLarge = React24.forwardRef(
7744
8580
  }
7745
8581
  );
7746
8582
  TypographyLarge.displayName = "TypographyLarge";
7747
- var TypographySmall = React24.forwardRef(
8583
+ var TypographySmall = React25.forwardRef(
7748
8584
  ({ className, ...props }, ref) => {
7749
8585
  return /* @__PURE__ */ jsx(
7750
8586
  "small",
@@ -7760,7 +8596,7 @@ var TypographySmall = React24.forwardRef(
7760
8596
  }
7761
8597
  );
7762
8598
  TypographySmall.displayName = "TypographySmall";
7763
- var TypographyMuted = React24.forwardRef(
8599
+ var TypographyMuted = React25.forwardRef(
7764
8600
  ({ className, ...props }, ref) => {
7765
8601
  return /* @__PURE__ */ jsx(
7766
8602
  "p",
@@ -7776,7 +8612,7 @@ var TypographyMuted = React24.forwardRef(
7776
8612
  }
7777
8613
  );
7778
8614
  TypographyMuted.displayName = "TypographyMuted";
7779
- var TypographyList = React24.forwardRef(
8615
+ var TypographyList = React25.forwardRef(
7780
8616
  ({ className, ...props }, ref) => {
7781
8617
  return /* @__PURE__ */ jsx(
7782
8618
  "ul",
@@ -7792,7 +8628,7 @@ var TypographyList = React24.forwardRef(
7792
8628
  }
7793
8629
  );
7794
8630
  TypographyList.displayName = "TypographyList";
7795
- var TypographyPre = React24.forwardRef(
8631
+ var TypographyPre = React25.forwardRef(
7796
8632
  ({ className, ...props }, ref) => {
7797
8633
  return /* @__PURE__ */ jsx(
7798
8634
  "pre",
@@ -7828,6 +8664,6 @@ var Typography = {
7828
8664
  Pre: TypographyPre
7829
8665
  };
7830
8666
 
7831
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AddressChip, AgentChip, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppStatusBar, Avatar, AvatarFallback, AvatarImage, Badge, BarChartH, BarChartV, BoundChip, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, ButtonWithTooltip, CAST_ROLES, CannotAnswerCard, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardWithHeader, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CastTable, ChatSession, ChatSessionActivityRow, ChatSessionActivitySubLine, ChatSessionComposer, ChatSessionContextChip, ChatSessionDisclosure, ChatSessionMessage, ChatSessionMessageOptions, ChatSessionProgressLine, ChatSessionPromptRow, ChatSessionStatusBar, ChatSessionTaskGroup, ChatSessionTaskRow, CitationList, CitationMarker, CitationRow, ClampedText, ClarifyCard, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextBar, DiagnosisCard, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffList, DiffRow, DivergingBar, DotRating, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EgressList, EmissionCard, EmissionHeader, EmptyState, EmptyStateLock, ErrorBoundary, Eyebrow, FilterBar, FilterChip, HeatStrip, HoverCard, HoverCardContent, HoverCardTrigger, Item3 as Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, LayerChip, LayerSection, LayerStrip, Legend, LegendItem, LensChip, LensRow, Link, MatchPreview, MenuItem, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricGrid, MetricTile, NavBase, NavHorizontal, NavHorizontalItems, NavItems, NavVertical, NavVerticalItems, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NestedMenu, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PanelBox, PanelContent, PanelStack, Popover, PopoverContent, PopoverTrigger, Progress, PropertyList, PropertyRow, ProposalCard, RatingControl, RecordHeader, RepairNote, ResizableHandle, ResizablePanel, ResizablePanelGroup, RetryNote, RichSelect, RuleRow, ScrollArea, ScrollBar, SearchInput, SectionHeader, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, SliceSummary, Sparkline, Spinner, StatusDot, TabbedPanel, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TaskGantt, TaskGanttDetailCard, TaskNode, TemplatePicker, Terminal, TerminalLine, TimelineEntry, TimelineFooter, TimelineList, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Toolbar, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Tour, TreeItem, TreeView, Typography, TypographyBlockquote, TypographyH1, TypographyH2, TypographyH3, TypographyH4, TypographyH5, TypographyH6, TypographyInlineCode, TypographyLarge, TypographyLead, TypographyList, TypographyMuted, TypographyP, TypographyPre, TypographySmall, UnderDevelopment, agentChipVariants, badgeVariants, buttonGroupVariants, buttonVariants, chatSessionGutterClass, cn, describeSlice, stateLabel as layerItemLabel, layerLabel, layerPaint, linkVariants, navigationMenuTriggerStyle, split as splitAddress, statusDotVariants, toggleVariants, useOverflowItems, useSidebar, useTour };
8667
+ export { AbsenceNote, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AddressChip, AgentChip, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppStatusBar, ArtifactTable, AttemptClock, Avatar, AvatarFallback, AvatarImage, Badge, BarChartH, BarChartV, BoundChip, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, ButtonWithTooltip, CAST_ROLES, CannotAnswerCard, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardWithHeader, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CastTable, ChatSession, ChatSessionActivityRow, ChatSessionActivitySubLine, ChatSessionComposer, ChatSessionContextChip, ChatSessionDisclosure, ChatSessionMessage, ChatSessionMessageOptions, ChatSessionProgressLine, ChatSessionPromptRow, ChatSessionStatusBar, ChatSessionTaskGroup, ChatSessionTaskRow, CitationList, CitationMarker, CitationRow, ClampedText, ClarifyCard, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextBar, DiagnosisCard, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffList, DiffRow, DivergingBar, DotRating, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EgressList, EmissionCard, EmissionHeader, EmptyState, EmptyStateLock, ErrorBoundary, ExchangeRecord, Eyebrow, FilterBar, FilterChip, HeatStrip, HoverCard, HoverCardContent, HoverCardTrigger, Item3 as Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, KindChip, LayerChip, LayerSection, LayerStrip, Legend, LegendItem, LensChip, LensRow, Link, MarkChip, MatchPreview, MenuItem, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricGrid, MetricTile, NavBase, NavHorizontal, NavHorizontalItems, NavItems, NavVertical, NavVerticalItems, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NestedMenu, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PanelBox, PanelContent, PanelStack, ParticipantRow, Popover, PopoverContent, PopoverTrigger, Progress, PropertyList, PropertyRow, ProposalCard, RatingControl, RecordHeader, RecordPager, RepairNote, ResizableHandle, ResizablePanel, ResizablePanelGroup, RetryNote, RichSelect, RuleRow, RunRow, RunStatusText, ScrollArea, ScrollBar, SearchInput, SectionHeader, SegmentedControl, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, SliceSummary, Sparkline, Spinner, StatusDot, TabbedPanel, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TaskGantt, TaskGanttDetailCard, TaskNode, TemplatePicker, Terminal, TerminalLine, TimelineEntry, TimelineFooter, TimelineList, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Toolbar, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TouchStrip, Tour, TraceGate, TraceList, TraceLoop, TraceStep, TreeItem, TreeView, Typography, TypographyBlockquote, TypographyH1, TypographyH2, TypographyH3, TypographyH4, TypographyH5, TypographyH6, TypographyInlineCode, TypographyLarge, TypographyLead, TypographyList, TypographyMuted, TypographyP, TypographyPre, TypographySmall, UnderDevelopment, agentChipVariants, badgeVariants, buttonGroupVariants, buttonVariants, chatSessionGutterClass, cn, describeSlice, stateLabel as layerItemLabel, layerLabel, layerPaint, linkVariants, navigationMenuTriggerStyle, TONE6 as runStatusTones, split as splitAddress, statusDotVariants, toggleVariants, useOverflowItems, useSidebar, useTour };
7832
8668
  //# sourceMappingURL=index.js.map
7833
8669
  //# sourceMappingURL=index.js.map