@arbidocs/react 0.4.3 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +33 -0
  2. package/dist/artifacts/index.cjs +458 -0
  3. package/dist/artifacts/index.cjs.map +1 -0
  4. package/dist/artifacts/index.d.cts +276 -0
  5. package/dist/artifacts/index.d.ts +276 -0
  6. package/dist/artifacts/index.js +434 -0
  7. package/dist/artifacts/index.js.map +1 -0
  8. package/dist/artifacts/redline-core.cjs +20 -0
  9. package/dist/artifacts/redline-core.cjs.map +1 -0
  10. package/dist/artifacts/redline-core.d.cts +36 -0
  11. package/dist/artifacts/redline-core.d.ts +36 -0
  12. package/dist/artifacts/redline-core.js +3 -0
  13. package/dist/artifacts/redline-core.js.map +1 -0
  14. package/dist/chunk-2DXS7L7M.cjs +302 -0
  15. package/dist/chunk-2DXS7L7M.cjs.map +1 -0
  16. package/dist/{chunk-ORKGCXG3.cjs → chunk-7BDGLRQX.cjs} +123 -427
  17. package/dist/chunk-7BDGLRQX.cjs.map +1 -0
  18. package/dist/chunk-7V7B7OEM.cjs +318 -0
  19. package/dist/chunk-7V7B7OEM.cjs.map +1 -0
  20. package/dist/{chunk-MIJRORQL.js → chunk-DVRJFLE7.js} +8 -302
  21. package/dist/chunk-DVRJFLE7.js.map +1 -0
  22. package/dist/{chunk-EJ2BMHYK.js → chunk-FSMIN5VX.js} +4 -3
  23. package/dist/chunk-FSMIN5VX.js.map +1 -0
  24. package/dist/chunk-H7ZZQ4ZV.js +305 -0
  25. package/dist/chunk-H7ZZQ4ZV.js.map +1 -0
  26. package/dist/{chunk-JKO3NR5L.js → chunk-HDCRPPBW.js} +5 -23
  27. package/dist/chunk-HDCRPPBW.js.map +1 -0
  28. package/dist/chunk-J4MX2W4H.js +26 -0
  29. package/dist/chunk-J4MX2W4H.js.map +1 -0
  30. package/dist/{chunk-6ALMBER7.js → chunk-N5SVBDLC.js} +4 -9
  31. package/dist/chunk-N5SVBDLC.js.map +1 -0
  32. package/dist/{chunk-RZQACYNQ.cjs → chunk-OBNTJEEO.cjs} +14 -20
  33. package/dist/chunk-OBNTJEEO.cjs.map +1 -0
  34. package/dist/{chunk-BXP6S34V.cjs → chunk-PGLV23SB.cjs} +13 -12
  35. package/dist/chunk-PGLV23SB.cjs.map +1 -0
  36. package/dist/chunk-RKWNX32A.js +299 -0
  37. package/dist/chunk-RKWNX32A.js.map +1 -0
  38. package/dist/chunk-S6A6FSG7.cjs +13 -0
  39. package/dist/chunk-S6A6FSG7.cjs.map +1 -0
  40. package/dist/chunk-SN5YV6FF.js +11 -0
  41. package/dist/chunk-SN5YV6FF.js.map +1 -0
  42. package/dist/{chunk-7IOCMCC5.cjs → chunk-TMPDW7J5.cjs} +3 -23
  43. package/dist/chunk-TMPDW7J5.cjs.map +1 -0
  44. package/dist/chunk-VJWAP2HJ.cjs +303 -0
  45. package/dist/chunk-VJWAP2HJ.cjs.map +1 -0
  46. package/dist/chunk-ZMTLGO3K.cjs +29 -0
  47. package/dist/chunk-ZMTLGO3K.cjs.map +1 -0
  48. package/dist/chunk-ZY53R6I4.js +276 -0
  49. package/dist/chunk-ZY53R6I4.js.map +1 -0
  50. package/dist/index.cjs +784 -612
  51. package/dist/index.cjs.map +1 -1
  52. package/dist/index.d.cts +1522 -82
  53. package/dist/index.d.ts +1522 -82
  54. package/dist/index.js +327 -250
  55. package/dist/index.js.map +1 -1
  56. package/dist/shell/index.cjs +8 -7
  57. package/dist/shell/index.js +3 -2
  58. package/dist/ui/index.cjs +156 -154
  59. package/dist/ui/index.js +4 -2
  60. package/dist/viewers/index.cjs +9 -8
  61. package/dist/viewers/index.cjs.map +1 -1
  62. package/dist/viewers/index.js +3 -2
  63. package/dist/viewers/index.js.map +1 -1
  64. package/package.json +19 -3
  65. package/dist/chunk-6ALMBER7.js.map +0 -1
  66. package/dist/chunk-7IOCMCC5.cjs.map +0 -1
  67. package/dist/chunk-BXP6S34V.cjs.map +0 -1
  68. package/dist/chunk-EJ2BMHYK.js.map +0 -1
  69. package/dist/chunk-JKO3NR5L.js.map +0 -1
  70. package/dist/chunk-MIJRORQL.js.map +0 -1
  71. package/dist/chunk-ORKGCXG3.cjs.map +0 -1
  72. package/dist/chunk-RZQACYNQ.cjs.map +0 -1
@@ -1,6 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkRZQACYNQ_cjs = require('./chunk-RZQACYNQ.cjs');
3
+ var chunk7V7B7OEM_cjs = require('./chunk-7V7B7OEM.cjs');
4
+ var chunkOBNTJEEO_cjs = require('./chunk-OBNTJEEO.cjs');
5
+ var chunkS6A6FSG7_cjs = require('./chunk-S6A6FSG7.cjs');
4
6
  var React = require('react');
5
7
  var reactDom = require('react-dom');
6
8
  var jsxRuntime = require('react/jsx-runtime');
@@ -23,11 +25,6 @@ var DialogPrimitive = require('@radix-ui/react-dialog');
23
25
  var PopoverPrimitive = require('@radix-ui/react-popover');
24
26
  var SelectPrimitive = require('@radix-ui/react-select');
25
27
  var cmdk = require('cmdk');
26
- var Markdown = require('react-markdown');
27
- var remarkGfm = require('remark-gfm');
28
- var rehypeRaw = require('rehype-raw');
29
-
30
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
31
28
 
32
29
  function _interopNamespace(e) {
33
30
  if (e && e.__esModule) return e;
@@ -63,9 +60,6 @@ var ToggleGroupPrimitive__namespace = /*#__PURE__*/_interopNamespace(ToggleGroup
63
60
  var DialogPrimitive__namespace = /*#__PURE__*/_interopNamespace(DialogPrimitive);
64
61
  var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
65
62
  var SelectPrimitive__namespace = /*#__PURE__*/_interopNamespace(SelectPrimitive);
66
- var Markdown__default = /*#__PURE__*/_interopDefault(Markdown);
67
- var remarkGfm__default = /*#__PURE__*/_interopDefault(remarkGfm);
68
- var rehypeRaw__default = /*#__PURE__*/_interopDefault(rehypeRaw);
69
63
 
70
64
  var TooltipContext = React__namespace.createContext(null);
71
65
  var DEFAULT_DELAY = 300;
@@ -234,7 +228,7 @@ var TooltipContent = React__namespace.forwardRef(
234
228
  ref: setRefs,
235
229
  id: ctx.contentId,
236
230
  role: "tooltip",
237
- className: chunkRZQACYNQ_cjs.cn(
231
+ className: chunkS6A6FSG7_cjs.cn(
238
232
  // The kit owns the tooltip's look: semantic tokens only, so it is
239
233
  // legible in every app without one of them defining a global class.
240
234
  // The `tooltip-content` hook is kept last-but-one so a host stylesheet
@@ -346,7 +340,7 @@ var Avatar = React__namespace.forwardRef(({ className, ...props }, ref) => /* @_
346
340
  AvatarPrimitive__namespace.Root,
347
341
  {
348
342
  ref,
349
- className: chunkRZQACYNQ_cjs.cn("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full", className),
343
+ className: chunkS6A6FSG7_cjs.cn("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full", className),
350
344
  ...props
351
345
  }
352
346
  ));
@@ -355,7 +349,7 @@ var AvatarImage = React__namespace.forwardRef(({ className, ...props }, ref) =>
355
349
  AvatarPrimitive__namespace.Image,
356
350
  {
357
351
  ref,
358
- className: chunkRZQACYNQ_cjs.cn("aspect-square h-full w-full object-cover", className),
352
+ className: chunkS6A6FSG7_cjs.cn("aspect-square h-full w-full object-cover", className),
359
353
  ...props
360
354
  }
361
355
  ));
@@ -364,7 +358,7 @@ var AvatarFallback = React__namespace.forwardRef(({ className, ...props }, ref)
364
358
  AvatarPrimitive__namespace.Fallback,
365
359
  {
366
360
  ref,
367
- className: chunkRZQACYNQ_cjs.cn(
361
+ className: chunkS6A6FSG7_cjs.cn(
368
362
  "flex h-full w-full items-center justify-center rounded-full bg-muted",
369
363
  className
370
364
  ),
@@ -390,7 +384,7 @@ var badgeVariants = classVarianceAuthority.cva(
390
384
  }
391
385
  );
392
386
  function Badge({ className, variant, ...props }) {
393
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkRZQACYNQ_cjs.cn(badgeVariants({ variant }), className), ...props });
387
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkS6A6FSG7_cjs.cn(badgeVariants({ variant }), className), ...props });
394
388
  }
395
389
  var buttonVariants = classVarianceAuthority.cva(
396
390
  "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
@@ -426,7 +420,7 @@ var buttonVariants = classVarianceAuthority.cva(
426
420
  var Button = React__namespace.forwardRef(
427
421
  ({ className, variant, size, asChild = false, ...props }, ref) => {
428
422
  const Comp = asChild ? reactSlot.Slot : "button";
429
- return /* @__PURE__ */ jsxRuntime.jsx(Comp, { className: chunkRZQACYNQ_cjs.cn(buttonVariants({ variant, size, className })), ref, ...props });
423
+ return /* @__PURE__ */ jsxRuntime.jsx(Comp, { className: chunkS6A6FSG7_cjs.cn(buttonVariants({ variant, size, className })), ref, ...props });
430
424
  }
431
425
  );
432
426
  Button.displayName = "Button";
@@ -438,8 +432,8 @@ var HoverCardContent = React__namespace.forwardRef(({ className, align = "center
438
432
  ref,
439
433
  align,
440
434
  sideOffset,
441
- collisionPadding: chunkRZQACYNQ_cjs.getCollisionPadding(),
442
- className: chunkRZQACYNQ_cjs.cn(
435
+ collisionPadding: chunkOBNTJEEO_cjs.getCollisionPadding(),
436
+ className: chunkS6A6FSG7_cjs.cn(
443
437
  "z-50 w-64 max-w-[calc(100vw-1rem)] rounded-md border bg-popover p-4 text-popover-foreground shadow-lg outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-hover-card-content-transform-origin]",
444
438
  className
445
439
  ),
@@ -465,7 +459,7 @@ var Card = React__namespace.forwardRef(
465
459
  {
466
460
  ref,
467
461
  "data-slot": "card",
468
- className: chunkRZQACYNQ_cjs.cn(cardVariants({ variant }), className),
462
+ className: chunkS6A6FSG7_cjs.cn(cardVariants({ variant }), className),
469
463
  ...props
470
464
  }
471
465
  )
@@ -477,7 +471,7 @@ var CardHeader = React__namespace.forwardRef(
477
471
  {
478
472
  ref,
479
473
  "data-slot": "card-header",
480
- className: chunkRZQACYNQ_cjs.cn("flex flex-col space-y-1.5 p-6", className),
474
+ className: chunkS6A6FSG7_cjs.cn("flex flex-col space-y-1.5 p-6", className),
481
475
  ...props
482
476
  }
483
477
  )
@@ -489,7 +483,7 @@ var CardTitle = React__namespace.forwardRef(
489
483
  {
490
484
  ref,
491
485
  "data-slot": "card-title",
492
- className: chunkRZQACYNQ_cjs.cn("font-semibold leading-none tracking-tight", className),
486
+ className: chunkS6A6FSG7_cjs.cn("font-semibold leading-none tracking-tight", className),
493
487
  ...props
494
488
  }
495
489
  )
@@ -501,14 +495,14 @@ var CardDescription = React__namespace.forwardRef(
501
495
  {
502
496
  ref,
503
497
  "data-slot": "card-description",
504
- className: chunkRZQACYNQ_cjs.cn("text-sm text-muted-foreground", className),
498
+ className: chunkS6A6FSG7_cjs.cn("text-sm text-muted-foreground", className),
505
499
  ...props
506
500
  }
507
501
  )
508
502
  );
509
503
  CardDescription.displayName = "CardDescription";
510
504
  var CardContent = React__namespace.forwardRef(
511
- ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, "data-slot": "card-content", className: chunkRZQACYNQ_cjs.cn("p-6 pt-0", className), ...props })
505
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, "data-slot": "card-content", className: chunkS6A6FSG7_cjs.cn("p-6 pt-0", className), ...props })
512
506
  );
513
507
  CardContent.displayName = "CardContent";
514
508
  var CardFooter = React__namespace.forwardRef(
@@ -517,7 +511,7 @@ var CardFooter = React__namespace.forwardRef(
517
511
  {
518
512
  ref,
519
513
  "data-slot": "card-footer",
520
- className: chunkRZQACYNQ_cjs.cn("flex items-center p-6 pt-0", className),
514
+ className: chunkS6A6FSG7_cjs.cn("flex items-center p-6 pt-0", className),
521
515
  ...props
522
516
  }
523
517
  )
@@ -860,7 +854,7 @@ var Input = React__namespace.forwardRef(
860
854
  {
861
855
  type,
862
856
  "data-slot": "input",
863
- className: chunkRZQACYNQ_cjs.cn(
857
+ className: chunkS6A6FSG7_cjs.cn(
864
858
  "flex h-9 pointer-coarse:h-11 w-full rounded-md border border-input bg-background px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground/60 focus-visible:outline-none focus-visible:border-ring/50 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
865
859
  showDictate && "pr-9",
866
860
  className
@@ -919,7 +913,7 @@ var Separator = React__namespace.forwardRef(({ className, orientation = "horizon
919
913
  ref,
920
914
  decorative,
921
915
  orientation,
922
- className: chunkRZQACYNQ_cjs.cn(
916
+ className: chunkS6A6FSG7_cjs.cn(
923
917
  "shrink-0 bg-border",
924
918
  orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
925
919
  className
@@ -938,7 +932,7 @@ var Textarea = React__namespace.forwardRef(
938
932
  const textarea = /* @__PURE__ */ jsxRuntime.jsx(
939
933
  "textarea",
940
934
  {
941
- className: chunkRZQACYNQ_cjs.cn(
935
+ className: chunkS6A6FSG7_cjs.cn(
942
936
  "flex min-h-[60px] w-full rounded-md border border-input bg-background px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground/60 focus-visible:outline-none focus-visible:border-ring/50 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
943
937
  showDictate && "pr-9",
944
938
  className
@@ -989,7 +983,7 @@ var Progress = React__namespace.forwardRef(({ className, value, ...props }, ref)
989
983
  ProgressPrimitive__namespace.Root,
990
984
  {
991
985
  ref,
992
- className: chunkRZQACYNQ_cjs.cn("relative h-2 w-full overflow-hidden rounded-full bg-primary/20", className),
986
+ className: chunkS6A6FSG7_cjs.cn("relative h-2 w-full overflow-hidden rounded-full bg-primary/20", className),
993
987
  ...props,
994
988
  children: /* @__PURE__ */ jsxRuntime.jsx(
995
989
  ProgressPrimitive__namespace.Indicator,
@@ -1002,7 +996,7 @@ var Progress = React__namespace.forwardRef(({ className, value, ...props }, ref)
1002
996
  ));
1003
997
  Progress.displayName = ProgressPrimitive__namespace.Root.displayName;
1004
998
  var RadioGroup = React__namespace.forwardRef(({ className, ...props }, ref) => {
1005
- return /* @__PURE__ */ jsxRuntime.jsx(RadioGroupPrimitive__namespace.Root, { className: chunkRZQACYNQ_cjs.cn("grid gap-2", className), ...props, ref });
999
+ return /* @__PURE__ */ jsxRuntime.jsx(RadioGroupPrimitive__namespace.Root, { className: chunkS6A6FSG7_cjs.cn("grid gap-2", className), ...props, ref });
1006
1000
  });
1007
1001
  RadioGroup.displayName = RadioGroupPrimitive__namespace.Root.displayName;
1008
1002
  var RadioGroupItem = React__namespace.forwardRef(({ className, ...props }, ref) => {
@@ -1010,7 +1004,7 @@ var RadioGroupItem = React__namespace.forwardRef(({ className, ...props }, ref)
1010
1004
  RadioGroupPrimitive__namespace.Item,
1011
1005
  {
1012
1006
  ref,
1013
- className: chunkRZQACYNQ_cjs.cn(
1007
+ className: chunkS6A6FSG7_cjs.cn(
1014
1008
  "relative aspect-square h-4 w-4 rounded-full border border-primary text-primary after:absolute after:left-1/2 after:top-1/2 after:hidden after:size-11 after:-translate-x-1/2 after:-translate-y-1/2 after:content-[''] pointer-coarse:after:block focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
1015
1009
  className
1016
1010
  ),
@@ -1024,19 +1018,19 @@ var Checkbox = React__namespace.forwardRef(({ className, ...props }, ref) => /*
1024
1018
  CheckboxPrimitive__namespace.Root,
1025
1019
  {
1026
1020
  ref,
1027
- className: chunkRZQACYNQ_cjs.cn(
1021
+ className: chunkS6A6FSG7_cjs.cn(
1028
1022
  "peer relative h-4 w-4 shrink-0 rounded-sm border border-muted-foreground/50 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground after:absolute after:left-1/2 after:top-1/2 after:hidden after:size-11 after:-translate-x-1/2 after:-translate-y-1/2 after:content-[''] pointer-coarse:after:block",
1029
1023
  className
1030
1024
  ),
1031
1025
  ...props,
1032
- children: /* @__PURE__ */ jsxRuntime.jsx(CheckboxPrimitive__namespace.Indicator, { className: chunkRZQACYNQ_cjs.cn("flex items-center justify-center text-current"), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-4 w-4" }) })
1026
+ children: /* @__PURE__ */ jsxRuntime.jsx(CheckboxPrimitive__namespace.Indicator, { className: chunkS6A6FSG7_cjs.cn("flex items-center justify-center text-current"), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-4 w-4" }) })
1033
1027
  }
1034
1028
  ));
1035
1029
  Checkbox.displayName = CheckboxPrimitive__namespace.Root.displayName;
1036
1030
  var Switch = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1037
1031
  SwitchPrimitives__namespace.Root,
1038
1032
  {
1039
- className: chunkRZQACYNQ_cjs.cn(
1033
+ className: chunkS6A6FSG7_cjs.cn(
1040
1034
  "peer relative inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-muted-foreground/45 after:absolute after:left-1/2 after:top-1/2 after:hidden after:size-11 after:-translate-x-1/2 after:-translate-y-1/2 after:content-[''] pointer-coarse:after:block",
1041
1035
  className
1042
1036
  ),
@@ -1045,7 +1039,7 @@ var Switch = React__namespace.forwardRef(({ className, ...props }, ref) => /* @_
1045
1039
  children: /* @__PURE__ */ jsxRuntime.jsx(
1046
1040
  SwitchPrimitives__namespace.Thumb,
1047
1041
  {
1048
- className: chunkRZQACYNQ_cjs.cn(
1042
+ className: chunkS6A6FSG7_cjs.cn(
1049
1043
  "pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
1050
1044
  )
1051
1045
  }
@@ -1058,7 +1052,7 @@ var TabsList = React__namespace.forwardRef(({ className, ...props }, ref) => /*
1058
1052
  TabsPrimitive__namespace.List,
1059
1053
  {
1060
1054
  ref,
1061
- className: chunkRZQACYNQ_cjs.cn(
1055
+ className: chunkS6A6FSG7_cjs.cn(
1062
1056
  "inline-flex h-9 pointer-coarse:h-auto items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",
1063
1057
  className
1064
1058
  ),
@@ -1070,7 +1064,7 @@ var TabsTrigger = React__namespace.forwardRef(({ className, ...props }, ref) =>
1070
1064
  TabsPrimitive__namespace.Trigger,
1071
1065
  {
1072
1066
  ref,
1073
- className: chunkRZQACYNQ_cjs.cn(
1067
+ className: chunkS6A6FSG7_cjs.cn(
1074
1068
  "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm pointer-coarse:min-h-11 font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",
1075
1069
  className
1076
1070
  ),
@@ -1082,7 +1076,7 @@ var TabsContent = React__namespace.forwardRef(({ className, ...props }, ref) =>
1082
1076
  TabsPrimitive__namespace.Content,
1083
1077
  {
1084
1078
  ref,
1085
- className: chunkRZQACYNQ_cjs.cn(
1079
+ className: chunkS6A6FSG7_cjs.cn(
1086
1080
  "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
1087
1081
  className
1088
1082
  ),
@@ -1091,18 +1085,18 @@ var TabsContent = React__namespace.forwardRef(({ className, ...props }, ref) =>
1091
1085
  ));
1092
1086
  TabsContent.displayName = TabsPrimitive__namespace.Content.displayName;
1093
1087
  var Table = React__namespace.forwardRef(
1094
- ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsxRuntime.jsx("table", { ref, className: chunkRZQACYNQ_cjs.cn("w-full caption-bottom text-sm", className), ...props }) })
1088
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsxRuntime.jsx("table", { ref, className: chunkS6A6FSG7_cjs.cn("w-full caption-bottom text-sm", className), ...props }) })
1095
1089
  );
1096
1090
  Table.displayName = "Table";
1097
- var TableHeader = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("thead", { ref, className: chunkRZQACYNQ_cjs.cn("[&_tr]:border-b", className), ...props }));
1091
+ var TableHeader = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("thead", { ref, className: chunkS6A6FSG7_cjs.cn("[&_tr]:border-b", className), ...props }));
1098
1092
  TableHeader.displayName = "TableHeader";
1099
- var TableBody = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("tbody", { ref, className: chunkRZQACYNQ_cjs.cn("[&_tr:last-child]:border-0", className), ...props }));
1093
+ var TableBody = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("tbody", { ref, className: chunkS6A6FSG7_cjs.cn("[&_tr:last-child]:border-0", className), ...props }));
1100
1094
  TableBody.displayName = "TableBody";
1101
1095
  var TableFooter = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1102
1096
  "tfoot",
1103
1097
  {
1104
1098
  ref,
1105
- className: chunkRZQACYNQ_cjs.cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className),
1099
+ className: chunkS6A6FSG7_cjs.cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className),
1106
1100
  ...props
1107
1101
  }
1108
1102
  ));
@@ -1112,7 +1106,7 @@ var TableRow = React__namespace.forwardRef(
1112
1106
  "tr",
1113
1107
  {
1114
1108
  ref,
1115
- className: chunkRZQACYNQ_cjs.cn(
1109
+ className: chunkS6A6FSG7_cjs.cn(
1116
1110
  "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
1117
1111
  className
1118
1112
  ),
@@ -1126,7 +1120,7 @@ var TableHead = React__namespace.forwardRef(
1126
1120
  "th",
1127
1121
  {
1128
1122
  ref,
1129
- className: chunkRZQACYNQ_cjs.cn(
1123
+ className: chunkS6A6FSG7_cjs.cn(
1130
1124
  "h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
1131
1125
  className
1132
1126
  ),
@@ -1140,7 +1134,7 @@ var TableCell = React__namespace.forwardRef(
1140
1134
  "td",
1141
1135
  {
1142
1136
  ref,
1143
- className: chunkRZQACYNQ_cjs.cn(
1137
+ className: chunkS6A6FSG7_cjs.cn(
1144
1138
  "p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
1145
1139
  className
1146
1140
  ),
@@ -1149,17 +1143,17 @@ var TableCell = React__namespace.forwardRef(
1149
1143
  )
1150
1144
  );
1151
1145
  TableCell.displayName = "TableCell";
1152
- var TableCaption = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("caption", { ref, className: chunkRZQACYNQ_cjs.cn("mt-4 text-sm text-muted-foreground", className), ...props }));
1146
+ var TableCaption = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("caption", { ref, className: chunkS6A6FSG7_cjs.cn("mt-4 text-sm text-muted-foreground", className), ...props }));
1153
1147
  TableCaption.displayName = "TableCaption";
1154
1148
  var Slider = React__namespace.forwardRef(
1155
1149
  ({ className, rangeClassName, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
1156
1150
  SliderPrimitive__namespace.Root,
1157
1151
  {
1158
1152
  ref,
1159
- className: chunkRZQACYNQ_cjs.cn("relative flex w-full touch-none select-none items-center", className),
1153
+ className: chunkS6A6FSG7_cjs.cn("relative flex w-full touch-none select-none items-center", className),
1160
1154
  ...props,
1161
1155
  children: [
1162
- /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20", children: /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Range, { className: chunkRZQACYNQ_cjs.cn("absolute h-full bg-primary", rangeClassName) }) }),
1156
+ /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20", children: /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Range, { className: chunkS6A6FSG7_cjs.cn("absolute h-full bg-primary", rangeClassName) }) }),
1163
1157
  /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Thumb, { className: "block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50" })
1164
1158
  ]
1165
1159
  }
@@ -1190,7 +1184,7 @@ var Toggle = React__namespace.forwardRef(({ className, variant, size, ...props }
1190
1184
  TogglePrimitive__namespace.Root,
1191
1185
  {
1192
1186
  ref,
1193
- className: chunkRZQACYNQ_cjs.cn(toggleVariants({ variant, size, className })),
1187
+ className: chunkS6A6FSG7_cjs.cn(toggleVariants({ variant, size, className })),
1194
1188
  ...props
1195
1189
  }
1196
1190
  ));
@@ -1203,7 +1197,7 @@ var ToggleGroup = React__namespace.forwardRef(({ className, variant, size, child
1203
1197
  ToggleGroupPrimitive__namespace.Root,
1204
1198
  {
1205
1199
  ref,
1206
- className: chunkRZQACYNQ_cjs.cn("flex items-center justify-center gap-1", className),
1200
+ className: chunkS6A6FSG7_cjs.cn("flex items-center justify-center gap-1", className),
1207
1201
  ...props,
1208
1202
  children: /* @__PURE__ */ jsxRuntime.jsx(ToggleGroupContext.Provider, { value: { variant, size }, children })
1209
1203
  }
@@ -1215,7 +1209,7 @@ var ToggleGroupItem = React__namespace.forwardRef(({ className, children, varian
1215
1209
  ToggleGroupPrimitive__namespace.Item,
1216
1210
  {
1217
1211
  ref,
1218
- className: chunkRZQACYNQ_cjs.cn(
1212
+ className: chunkS6A6FSG7_cjs.cn(
1219
1213
  toggleVariants({
1220
1214
  variant: context.variant || variant,
1221
1215
  size: context.size || size
@@ -1243,7 +1237,7 @@ var DialogOverlay = React__namespace.forwardRef(({ className, ...props }, ref) =
1243
1237
  DialogPrimitive__namespace.Overlay,
1244
1238
  {
1245
1239
  ref,
1246
- className: chunkRZQACYNQ_cjs.cn(
1240
+ className: chunkS6A6FSG7_cjs.cn(
1247
1241
  "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1248
1242
  className
1249
1243
  ),
@@ -1269,7 +1263,7 @@ var DialogContent = React__namespace.forwardRef(
1269
1263
  if (isToastInteraction(event)) event.preventDefault();
1270
1264
  onInteractOutside?.(event);
1271
1265
  },
1272
- className: chunkRZQACYNQ_cjs.cn(
1266
+ className: chunkS6A6FSG7_cjs.cn(
1273
1267
  // Always inside the viewport: width and height are capped by the DYNAMIC viewport (mobile
1274
1268
  // browser chrome) and the notch / home-indicator insets; the content scrolls inside.
1275
1269
  "fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-2rem-env(safe-area-inset-left,0px)-env(safe-area-inset-right,0px))] max-w-lg max-h-[calc(min(100dvh,100svh,100vh)-2rem-env(safe-area-inset-top,0px)-env(safe-area-inset-bottom,0px))] translate-x-[-50%] translate-y-[-50%] will-change-transform grid-cols-[minmax(0,1fr)] gap-4 overflow-x-hidden overflow-y-auto overscroll-contain border bg-background p-6 shadow-xl duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 rounded-md",
@@ -1296,12 +1290,12 @@ var DialogContent = React__namespace.forwardRef(
1296
1290
  ] })
1297
1291
  );
1298
1292
  DialogContent.displayName = DialogPrimitive__namespace.Content.displayName;
1299
- var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkRZQACYNQ_cjs.cn("flex min-w-0 flex-col space-y-1.5 pr-8 text-left", className), ...props });
1293
+ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkS6A6FSG7_cjs.cn("flex min-w-0 flex-col space-y-1.5 pr-8 text-left", className), ...props });
1300
1294
  DialogHeader.displayName = "DialogHeader";
1301
1295
  var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
1302
1296
  "div",
1303
1297
  {
1304
- className: chunkRZQACYNQ_cjs.cn(
1298
+ className: chunkS6A6FSG7_cjs.cn(
1305
1299
  // Sticks to the bottom of a scrolling dialog so the actions stay reachable.
1306
1300
  "sticky bottom-0 z-10 -mx-6 -mb-6 flex flex-col-reverse gap-2 bg-background px-6 pb-6 pt-3 sm:flex-row sm:justify-end",
1307
1301
  className
@@ -1314,7 +1308,7 @@ var DialogTitle = React__namespace.forwardRef(({ className, ...props }, ref) =>
1314
1308
  DialogPrimitive__namespace.Title,
1315
1309
  {
1316
1310
  ref,
1317
- className: chunkRZQACYNQ_cjs.cn("break-words text-lg font-semibold leading-tight tracking-tight", className),
1311
+ className: chunkS6A6FSG7_cjs.cn("break-words text-lg font-semibold leading-tight tracking-tight", className),
1318
1312
  ...props
1319
1313
  }
1320
1314
  ));
@@ -1323,7 +1317,7 @@ var DialogDescription = React__namespace.forwardRef(({ className, ...props }, re
1323
1317
  DialogPrimitive__namespace.Description,
1324
1318
  {
1325
1319
  ref,
1326
- className: chunkRZQACYNQ_cjs.cn("text-sm text-muted-foreground", className),
1320
+ className: chunkS6A6FSG7_cjs.cn("text-sm text-muted-foreground", className),
1327
1321
  ...props
1328
1322
  }
1329
1323
  ));
@@ -1337,8 +1331,8 @@ var PopoverContent = React__namespace.forwardRef(({ className, align = "center",
1337
1331
  ref,
1338
1332
  align,
1339
1333
  sideOffset,
1340
- collisionPadding: chunkRZQACYNQ_cjs.getCollisionPadding(),
1341
- className: chunkRZQACYNQ_cjs.cn(
1334
+ collisionPadding: chunkOBNTJEEO_cjs.getCollisionPadding(),
1335
+ className: chunkS6A6FSG7_cjs.cn(
1342
1336
  "z-50 w-72 max-w-[calc(100vw-1rem)] max-h-[var(--radix-popover-content-available-height)] overflow-y-auto overscroll-contain rounded-md border bg-popover p-4 text-popover-foreground shadow-lg outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]",
1343
1337
  className
1344
1338
  ),
@@ -1568,7 +1562,7 @@ function MarkMenu({
1568
1562
  children: [
1569
1563
  preview && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-2 py-1.5 text-sm", children: preview }),
1570
1564
  ordered.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { role: "menu", "aria-label": menuLabel, onKeyDown: handleMenuKeyDown, children: ordered.map((item) => {
1571
- const rowClass = chunkRZQACYNQ_cjs.cn(
1565
+ const rowClass = chunkS6A6FSG7_cjs.cn(
1572
1566
  "flex w-full cursor-pointer items-center rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors hover:bg-accent focus-visible:bg-accent pointer-coarse:min-h-11 pointer-coarse:px-3",
1573
1567
  item.primary && "font-medium pointer-coarse:text-base",
1574
1568
  item.destructive && "text-destructive"
@@ -1611,7 +1605,7 @@ var SelectTrigger = React__namespace.forwardRef(({ className, children, ...props
1611
1605
  SelectPrimitive__namespace.Trigger,
1612
1606
  {
1613
1607
  ref,
1614
- className: chunkRZQACYNQ_cjs.cn(
1608
+ className: chunkS6A6FSG7_cjs.cn(
1615
1609
  "flex h-9 pointer-coarse:min-h-11 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground/60 focus:outline-none focus-visible:border-ring/50 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
1616
1610
  className
1617
1611
  ),
@@ -1627,7 +1621,7 @@ var SelectScrollUpButton = React__namespace.forwardRef(({ className, ...props },
1627
1621
  SelectPrimitive__namespace.ScrollUpButton,
1628
1622
  {
1629
1623
  ref,
1630
- className: chunkRZQACYNQ_cjs.cn("flex cursor-default items-center justify-center py-1", className),
1624
+ className: chunkS6A6FSG7_cjs.cn("flex cursor-default items-center justify-center py-1", className),
1631
1625
  ...props,
1632
1626
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUp, { className: "h-4 w-4" })
1633
1627
  }
@@ -1637,7 +1631,7 @@ var SelectScrollDownButton = React__namespace.forwardRef(({ className, ...props
1637
1631
  SelectPrimitive__namespace.ScrollDownButton,
1638
1632
  {
1639
1633
  ref,
1640
- className: chunkRZQACYNQ_cjs.cn("flex cursor-default items-center justify-center py-1", className),
1634
+ className: chunkS6A6FSG7_cjs.cn("flex cursor-default items-center justify-center py-1", className),
1641
1635
  ...props,
1642
1636
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-4 w-4" })
1643
1637
  }
@@ -1647,20 +1641,20 @@ var SelectContent = React__namespace.forwardRef(({ className, children, position
1647
1641
  SelectPrimitive__namespace.Content,
1648
1642
  {
1649
1643
  ref,
1650
- className: chunkRZQACYNQ_cjs.cn(
1644
+ className: chunkS6A6FSG7_cjs.cn(
1651
1645
  "relative z-50 max-h-[min(24rem,var(--radix-select-content-available-height))] min-w-[8rem] max-w-[calc(100vw-1rem)] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
1652
1646
  position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
1653
1647
  className
1654
1648
  ),
1655
1649
  position,
1656
- collisionPadding: chunkRZQACYNQ_cjs.getCollisionPadding(),
1650
+ collisionPadding: chunkOBNTJEEO_cjs.getCollisionPadding(),
1657
1651
  ...props,
1658
1652
  children: [
1659
1653
  /* @__PURE__ */ jsxRuntime.jsx(SelectScrollUpButton, {}),
1660
1654
  /* @__PURE__ */ jsxRuntime.jsx(
1661
1655
  SelectPrimitive__namespace.Viewport,
1662
1656
  {
1663
- className: chunkRZQACYNQ_cjs.cn(
1657
+ className: chunkS6A6FSG7_cjs.cn(
1664
1658
  "p-1",
1665
1659
  position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
1666
1660
  ),
@@ -1676,7 +1670,7 @@ var SelectLabel = React__namespace.forwardRef(({ className, ...props }, ref) =>
1676
1670
  SelectPrimitive__namespace.Label,
1677
1671
  {
1678
1672
  ref,
1679
- className: chunkRZQACYNQ_cjs.cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className),
1673
+ className: chunkS6A6FSG7_cjs.cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className),
1680
1674
  ...props
1681
1675
  }
1682
1676
  ));
@@ -1685,7 +1679,7 @@ var SelectItem = React__namespace.forwardRef(({ className, children, ...props },
1685
1679
  SelectPrimitive__namespace.Item,
1686
1680
  {
1687
1681
  ref,
1688
- className: chunkRZQACYNQ_cjs.cn(
1682
+ className: chunkS6A6FSG7_cjs.cn(
1689
1683
  "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 pointer-coarse:min-h-11 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
1690
1684
  className
1691
1685
  ),
@@ -1701,7 +1695,7 @@ var SelectSeparator = React__namespace.forwardRef(({ className, ...props }, ref)
1701
1695
  SelectPrimitive__namespace.Separator,
1702
1696
  {
1703
1697
  ref,
1704
- className: chunkRZQACYNQ_cjs.cn("-mx-1 my-1 h-px bg-muted", className),
1698
+ className: chunkS6A6FSG7_cjs.cn("-mx-1 my-1 h-px bg-muted", className),
1705
1699
  ...props
1706
1700
  }
1707
1701
  ));
@@ -1710,7 +1704,7 @@ var Command = React__namespace.forwardRef(({ className, ...props }, ref) => /* @
1710
1704
  cmdk.Command,
1711
1705
  {
1712
1706
  ref,
1713
- className: chunkRZQACYNQ_cjs.cn(
1707
+ className: chunkS6A6FSG7_cjs.cn(
1714
1708
  "flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
1715
1709
  className
1716
1710
  ),
@@ -1727,7 +1721,7 @@ var CommandInput = React__namespace.forwardRef(({ className, ...props }, ref) =>
1727
1721
  cmdk.Command.Input,
1728
1722
  {
1729
1723
  ref,
1730
- className: chunkRZQACYNQ_cjs.cn(
1724
+ className: chunkS6A6FSG7_cjs.cn(
1731
1725
  "flex h-10 pointer-coarse:h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
1732
1726
  className
1733
1727
  ),
@@ -1740,7 +1734,7 @@ var CommandList = React__namespace.forwardRef(({ className, ...props }, ref) =>
1740
1734
  cmdk.Command.List,
1741
1735
  {
1742
1736
  ref,
1743
- className: chunkRZQACYNQ_cjs.cn("max-h-[min(300px,50dvh)] overflow-y-auto overflow-x-hidden", className),
1737
+ className: chunkS6A6FSG7_cjs.cn("max-h-[min(300px,50dvh)] overflow-y-auto overflow-x-hidden", className),
1744
1738
  ...props
1745
1739
  }
1746
1740
  ));
@@ -1751,7 +1745,7 @@ var CommandGroup = React__namespace.forwardRef(({ className, ...props }, ref) =>
1751
1745
  cmdk.Command.Group,
1752
1746
  {
1753
1747
  ref,
1754
- className: chunkRZQACYNQ_cjs.cn(
1748
+ className: chunkS6A6FSG7_cjs.cn(
1755
1749
  "overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-sm [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
1756
1750
  className
1757
1751
  ),
@@ -1763,7 +1757,7 @@ var CommandSeparator = React__namespace.forwardRef(({ className, ...props }, ref
1763
1757
  cmdk.Command.Separator,
1764
1758
  {
1765
1759
  ref,
1766
- className: chunkRZQACYNQ_cjs.cn("-mx-1 h-px bg-border", className),
1760
+ className: chunkS6A6FSG7_cjs.cn("-mx-1 h-px bg-border", className),
1767
1761
  ...props
1768
1762
  }
1769
1763
  ));
@@ -1772,7 +1766,7 @@ var CommandItem = React__namespace.forwardRef(({ className, ...props }, ref) =>
1772
1766
  cmdk.Command.Item,
1773
1767
  {
1774
1768
  ref,
1775
- className: chunkRZQACYNQ_cjs.cn(
1769
+ className: chunkS6A6FSG7_cjs.cn(
1776
1770
  "relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 pointer-coarse:min-h-11 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
1777
1771
  className
1778
1772
  ),
@@ -1784,305 +1778,12 @@ var CommandShortcut = ({ className, ...props }) => {
1784
1778
  return /* @__PURE__ */ jsxRuntime.jsx(
1785
1779
  "span",
1786
1780
  {
1787
- className: chunkRZQACYNQ_cjs.cn("ml-auto text-sm tracking-widest text-muted-foreground", className),
1781
+ className: chunkS6A6FSG7_cjs.cn("ml-auto text-sm tracking-widest text-muted-foreground", className),
1788
1782
  ...props
1789
1783
  }
1790
1784
  );
1791
1785
  };
1792
1786
  CommandShortcut.displayName = "CommandShortcut";
1793
- var markdownBaseComponents = {
1794
- h1: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-lg font-semibold", "data-testid": "markdown-heading-1", ...props, children }),
1795
- h2: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "font-semibold text-base", "data-testid": "markdown-heading-2", ...props, children }),
1796
- h3: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-semibold text-base", "data-testid": "markdown-heading-3", ...props, children }),
1797
- h4: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-base", ...props, children }),
1798
- h5: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("h5", { className: "font-medium", ...props, children }),
1799
- strong: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "font-semibold", ...props, children }),
1800
- blockquote: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("blockquote", { className: "border-l-2 border-primary pl-4", ...props, children }),
1801
- ol: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("ol", { className: "list-decimal space-y-2 pl-6", "data-testid": "markdown-ordered-list", ...props, children }),
1802
- ul: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "list-none space-y-2 pl-6", "data-testid": "markdown-unordered-list", ...props, children }),
1803
- li: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: "my-1.5", ...props, children }),
1804
- table: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("table", { "data-testid": "markdown-table", ...props, children }),
1805
- th: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("th", { ...props, children }),
1806
- td: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("td", { ...props, children }),
1807
- tr: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("tr", { ...props, children }),
1808
- p: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("p", { className: "whitespace-pre-wrap", ...props, children }),
1809
- hr: (props) => /* @__PURE__ */ jsxRuntime.jsx("hr", { className: "border-foreground/20", ...props }),
1810
- sup: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("sup", { className: "text-xs", ...props, children }),
1811
- sub: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("sub", { className: "text-xs", ...props, children }),
1812
- div: ({ children, className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className, ...props, children }),
1813
- br: (props) => /* @__PURE__ */ jsxRuntime.jsx("br", { ...props }),
1814
- kbd: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
1815
- "kbd",
1816
- {
1817
- className: "px-1.5 py-0.5 text-xs font-mono bg-muted border border-border rounded",
1818
- ...props,
1819
- children
1820
- }
1821
- ),
1822
- abbr: ({ children, title, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("abbr", { title, className: "underline decoration-dotted cursor-help", ...props, children }),
1823
- cite: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("cite", { className: "italic", ...props, children })
1824
- };
1825
- var MarkdownStreamingContext = React.createContext(false);
1826
-
1827
- // src/ai/split-markdown-blocks.ts
1828
- var LIST_ITEM_RE = /^\s*([-*+]|\d+[.)])\s/;
1829
- var BLOCKQUOTE_RE = /^\s*>/;
1830
- function splitMarkdownBlocks(content) {
1831
- if (!content) return [];
1832
- const blocks = [];
1833
- let start = 0;
1834
- let inFence = false;
1835
- let i = 0;
1836
- while (i < content.length) {
1837
- if (content.startsWith("```", i)) {
1838
- inFence = !inFence;
1839
- i += 3;
1840
- continue;
1841
- }
1842
- if (!inFence && content[i] === "\n" && content[i + 1] === "\n") {
1843
- const before = content.slice(start, i);
1844
- const lastLine = before.slice(before.lastIndexOf("\n") + 1);
1845
- const afterStart = i + 2;
1846
- const nextNewline = content.indexOf("\n", afterStart);
1847
- const nextLine = content.slice(afterStart, nextNewline === -1 ? void 0 : nextNewline);
1848
- const bothListItems = LIST_ITEM_RE.test(lastLine) && LIST_ITEM_RE.test(nextLine);
1849
- const bothBlockquotes = BLOCKQUOTE_RE.test(lastLine) && BLOCKQUOTE_RE.test(nextLine);
1850
- if (bothListItems || bothBlockquotes) {
1851
- i += 2;
1852
- continue;
1853
- }
1854
- blocks.push(content.slice(start, afterStart));
1855
- start = afterStart;
1856
- i = afterStart;
1857
- continue;
1858
- }
1859
- i++;
1860
- }
1861
- if (start < content.length) blocks.push(content.slice(start));
1862
- return blocks;
1863
- }
1864
-
1865
- // src/ai/normalize-citations.ts
1866
- var CITE_LINK = /\[([^\]\n]+)\]\((#cite-[\w-]+)\)/g;
1867
- var BLOCK_MARKER = /^(?:[-*+]|\d{1,9}[.)]|#{1,6})[ \t]+/;
1868
- var LEADING_EMPHASIS = /^(?:\*\*|__|\*|_)+/;
1869
- var TRAILING_EMPHASIS = /(\*\*|__|\*|_)(:?)$/;
1870
- function countToken(text, token) {
1871
- const double = token + token;
1872
- if (token.length === 2) return text.split(token).length - 1;
1873
- const withoutDouble = text.split(double).join("");
1874
- return withoutDouble.split(token).length - 1;
1875
- }
1876
- function emphasisTokens(run) {
1877
- const char = run[0];
1878
- const tokens = [];
1879
- let rest = run;
1880
- while (rest.length > 0) {
1881
- const size = rest.length >= 2 ? 2 : 1;
1882
- tokens.push(char.repeat(size));
1883
- rest = rest.slice(size);
1884
- }
1885
- return tokens;
1886
- }
1887
- function hoistFromLink(text, before, after) {
1888
- let body = text;
1889
- let prefix = "";
1890
- let suffix = "";
1891
- if (before.trim() === "") {
1892
- const marker = BLOCK_MARKER.exec(body);
1893
- if (marker) {
1894
- prefix += marker[0];
1895
- body = body.slice(marker[0].length);
1896
- }
1897
- }
1898
- const leading = LEADING_EMPHASIS.exec(body);
1899
- if (leading) {
1900
- let kept = "";
1901
- let rest = body.slice(leading[0].length);
1902
- for (const token of emphasisTokens(leading[0]).reverse()) {
1903
- if (countToken(rest, token) % 2 === 1) {
1904
- kept = token + kept;
1905
- continue;
1906
- }
1907
- if (countToken(after, token) % 2 === 1) prefix += token;
1908
- else kept = token + kept;
1909
- }
1910
- body = kept + rest;
1911
- rest = "";
1912
- }
1913
- const trailing = TRAILING_EMPHASIS.exec(body);
1914
- if (trailing) {
1915
- const token = trailing[1];
1916
- const inner = body.slice(0, body.length - trailing[0].length);
1917
- const openedBefore = countToken(before + prefix, token) % 2 === 1;
1918
- if (countToken(inner, token) % 2 === 0 && openedBefore) {
1919
- body = inner;
1920
- suffix = trailing[0];
1921
- }
1922
- }
1923
- return [prefix, body, suffix];
1924
- }
1925
- function normalizeLine(line) {
1926
- if (!line.includes("](#cite-")) return line;
1927
- return line.replace(CITE_LINK, (match, text, href, offset) => {
1928
- const before = line.slice(0, offset);
1929
- const after = line.slice(offset + match.length);
1930
- const [prefix, body, suffix] = hoistFromLink(text, before, after);
1931
- if (!prefix && !suffix && body === text) return match;
1932
- return `${prefix}[${body}](${href})${suffix}`;
1933
- });
1934
- }
1935
- function normalizeCitationMarkup(markdown) {
1936
- if (!markdown.includes("](#cite-")) return markdown;
1937
- let inFence = false;
1938
- return markdown.split("\n").map((line) => {
1939
- if (/^\s*(```|~~~)/.test(line)) {
1940
- inFence = !inFence;
1941
- return line;
1942
- }
1943
- return inFence ? line : normalizeLine(line);
1944
- }).join("\n");
1945
- }
1946
- function CodeBlock({ language, code }) {
1947
- const [copied, setCopied] = React.useState(false);
1948
- const handleCopy = async () => {
1949
- try {
1950
- await navigator.clipboard.writeText(code);
1951
- setCopied(true);
1952
- setTimeout(() => setCopied(false), 2e3);
1953
- } catch {
1954
- }
1955
- };
1956
- return /* @__PURE__ */ jsxRuntime.jsxs(
1957
- "div",
1958
- {
1959
- className: "code-block relative my-3 overflow-hidden rounded-md border border-current/20 bg-current/5",
1960
- "data-testid": "markdown-code-block",
1961
- children: [
1962
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-b border-current/20 px-3 py-1.5", children: [
1963
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-xs text-muted-foreground", children: language || "code" }),
1964
- /* @__PURE__ */ jsxRuntime.jsxs(
1965
- "button",
1966
- {
1967
- type: "button",
1968
- onClick: handleCopy,
1969
- className: "flex items-center gap-1 text-xs text-muted-foreground transition-colors hover:text-foreground",
1970
- title: copied ? "Copied!" : "Copy code",
1971
- children: [
1972
- copied ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { size: 12 }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Copy, { size: 12 }),
1973
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: copied ? "Copied" : "Copy" })
1974
- ]
1975
- }
1976
- )
1977
- ] }),
1978
- /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "overflow-x-auto p-3 text-sm leading-relaxed", children: /* @__PURE__ */ jsxRuntime.jsx("code", { className: chunkRZQACYNQ_cjs.cn("font-mono", language && `language-${language}`), children: code }) })
1979
- ]
1980
- }
1981
- );
1982
- }
1983
- var defaultComponents = {
1984
- ...markdownBaseComponents,
1985
- a: ({ href, children, ...props }) => {
1986
- if (href?.startsWith("#cite-")) {
1987
- return /* @__PURE__ */ jsxRuntime.jsx(
1988
- "span",
1989
- {
1990
- className: "cited-text underline decoration-dotted underline-offset-4",
1991
- "data-cite": href.slice(6),
1992
- children
1993
- }
1994
- );
1995
- }
1996
- const isInternal = !href || href.startsWith("#") || href.startsWith("cite:");
1997
- return /* @__PURE__ */ jsxRuntime.jsx(
1998
- "a",
1999
- {
2000
- className: "text-primary underline underline-offset-2",
2001
- href,
2002
- ...isInternal ? {} : { target: "_blank", rel: "noopener noreferrer" },
2003
- ...props,
2004
- children
2005
- }
2006
- );
2007
- },
2008
- em: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("em", { className: "italic", ...props, children }),
2009
- code: function MarkdownCode({
2010
- className,
2011
- children,
2012
- ...props
2013
- }) {
2014
- const match = /language-(\w+)/.exec(className || "");
2015
- if (!match) {
2016
- return /* @__PURE__ */ jsxRuntime.jsx(
2017
- "code",
2018
- {
2019
- className: "rounded bg-current/10 px-1 py-0.5 font-mono text-[0.9em]",
2020
- "data-testid": "markdown-inline-code",
2021
- ...props,
2022
- children
2023
- }
2024
- );
2025
- }
2026
- return /* @__PURE__ */ jsxRuntime.jsx(CodeBlock, { language: match[1], code: String(children).replace(/\n$/, "") });
2027
- },
2028
- // The CodeBlock renders its own <pre>; unwrap react-markdown's wrapper so we
2029
- // don't nest <pre><pre>.
2030
- pre: ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children }),
2031
- blockquote: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("blockquote", { className: "border-l-2 border-border pl-4 italic text-muted-foreground", ...props, children }),
2032
- table: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "my-3 overflow-x-auto rounded-lg border border-border", children: /* @__PURE__ */ jsxRuntime.jsx("table", { "data-testid": "markdown-table", className: "w-full border-collapse text-sm", ...props, children }) }),
2033
- thead: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("thead", { className: "bg-current/10", ...props, children }),
2034
- th: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("th", { className: "border-b border-border px-3 py-2 text-left font-semibold", ...props, children }),
2035
- td: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("td", { className: "border-b border-border px-3 py-2 align-top", ...props, children }),
2036
- // General emphasis marks (GFM `~~strikethrough~~` → <del>, raw <ins>/<mark>).
2037
- del: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("del", { className: "text-muted-foreground line-through", ...props, children }),
2038
- ins: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("ins", { className: "underline decoration-primary/60", ...props, children }),
2039
- mark: ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("mark", { className: "rounded bg-primary/15 px-0.5 text-inherit", ...props, children })
2040
- };
2041
- var remarkPlugins = [remarkGfm__default.default];
2042
- var rehypePlugins = [rehypeRaw__default.default];
2043
- var MemoizedBlock = React__namespace.default.memo(function MarkdownBlock({
2044
- content,
2045
- components
2046
- }) {
2047
- return /* @__PURE__ */ jsxRuntime.jsx(Markdown__default.default, { remarkPlugins, rehypePlugins, components, children: content });
2048
- });
2049
- var MarkdownErrorBoundary = class extends React__namespace.default.Component {
2050
- state = { hasError: false };
2051
- static getDerivedStateFromError() {
2052
- return { hasError: true };
2053
- }
2054
- render() {
2055
- return this.state.hasError ? this.props.fallback : this.props.children;
2056
- }
2057
- };
2058
- function MarkdownRendererComponent({
2059
- children,
2060
- components: customComponents,
2061
- isStreaming = false,
2062
- className,
2063
- testId = "markdown-renderer"
2064
- }) {
2065
- const components = React.useMemo(
2066
- () => customComponents ? { ...defaultComponents, ...customComponents } : defaultComponents,
2067
- [customComponents]
2068
- );
2069
- const blocks = React.useMemo(() => splitMarkdownBlocks(normalizeCitationMarkup(children)), [children]);
2070
- return /* @__PURE__ */ jsxRuntime.jsx(
2071
- MarkdownErrorBoundary,
2072
- {
2073
- fallback: /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkRZQACYNQ_cjs.cn("whitespace-pre-wrap break-words", className), children }),
2074
- children: /* @__PURE__ */ jsxRuntime.jsx(MarkdownStreamingContext.Provider, { value: isStreaming, children: /* @__PURE__ */ jsxRuntime.jsx(
2075
- "div",
2076
- {
2077
- className: chunkRZQACYNQ_cjs.cn("markdown-content space-y-3 break-words leading-relaxed", className),
2078
- "data-testid": testId,
2079
- children: blocks.map((block, index) => /* @__PURE__ */ jsxRuntime.jsx(MemoizedBlock, { content: block, components }, index))
2080
- }
2081
- ) })
2082
- }
2083
- );
2084
- }
2085
- var MarkdownRenderer = React__namespace.default.memo(MarkdownRendererComponent);
2086
1787
  var AI_COMPONENTS = {
2087
1788
  a: (p) => /* @__PURE__ */ jsxRuntime.jsx(
2088
1789
  "a",
@@ -2105,7 +1806,7 @@ function AiMarkdown({
2105
1806
  isStreaming
2106
1807
  }) {
2107
1808
  return /* @__PURE__ */ jsxRuntime.jsx(
2108
- MarkdownRenderer,
1809
+ chunk7V7B7OEM_cjs.MarkdownRenderer,
2109
1810
  {
2110
1811
  className: className ?? "text-sm",
2111
1812
  components: AI_COMPONENTS,
@@ -2139,7 +1840,7 @@ var EntityPill = React.forwardRef(function EntityPill2({
2139
1840
  const shapeClass = shape === "pill" ? "rounded-full" : "rounded-md";
2140
1841
  const sizeClasses2 = size === "base" ? "gap-1.5 px-1.5 py-0.5" : "gap-1 px-1";
2141
1842
  const textSizeClass = size === "base" ? "text-base" : "text-sm";
2142
- const baseClasses = chunkRZQACYNQ_cjs.cn(
1843
+ const baseClasses = chunkS6A6FSG7_cjs.cn(
2143
1844
  "group/pill items-center",
2144
1845
  fullWidth ? "flex w-full" : "inline-flex",
2145
1846
  sizeClasses2,
@@ -2169,7 +1870,7 @@ var EntityPill = React.forwardRef(function EntityPill2({
2169
1870
  /* @__PURE__ */ jsxRuntime.jsx(
2170
1871
  "span",
2171
1872
  {
2172
- className: chunkRZQACYNQ_cjs.cn(
1873
+ className: chunkS6A6FSG7_cjs.cn(
2173
1874
  textSizeClass,
2174
1875
  "font-medium truncate leading-tight min-w-0",
2175
1876
  labelMaxWidth,
@@ -2192,8 +1893,8 @@ var EntityPill = React.forwardRef(function EntityPill2({
2192
1893
  ),
2193
1894
  /* @__PURE__ */ jsxRuntime.jsx(TooltipContent, { side, className: "p-2", children: tip })
2194
1895
  ] });
2195
- const mainAreaClass = chunkRZQACYNQ_cjs.cn("inline-flex items-center gap-1", fullWidth && "min-w-0 flex-1");
2196
- const mainAreaTouchClass = chunkRZQACYNQ_cjs.cn(
1896
+ const mainAreaClass = chunkS6A6FSG7_cjs.cn("inline-flex items-center gap-1", fullWidth && "min-w-0 flex-1");
1897
+ const mainAreaTouchClass = chunkS6A6FSG7_cjs.cn(
2197
1898
  mainAreaClass,
2198
1899
  (onClick || href) && !disabled && "relative pointer-coarse:after:absolute pointer-coarse:after:inset-x-0 pointer-coarse:after:-inset-y-3 pointer-coarse:after:content-['']"
2199
1900
  );
@@ -2204,7 +1905,7 @@ var EntityPill = React.forwardRef(function EntityPill2({
2204
1905
  mainContent,
2205
1906
  tooltipContent,
2206
1907
  tooltipSide,
2207
- chunkRZQACYNQ_cjs.cn(mainAreaTouchClass, disabled && "opacity-60"),
1908
+ chunkS6A6FSG7_cjs.cn(mainAreaTouchClass, disabled && "opacity-60"),
2208
1909
  {
2209
1910
  type: "button",
2210
1911
  onClick: href ? onClick : disabled ? void 0 : onClick,
@@ -2230,7 +1931,7 @@ var EntityPill = React.forwardRef(function EntityPill2({
2230
1931
  type: "button",
2231
1932
  onClick: disabled ? void 0 : onClick,
2232
1933
  disabled,
2233
- className: chunkRZQACYNQ_cjs.cn(
1934
+ className: chunkS6A6FSG7_cjs.cn(
2234
1935
  "relative inline-flex items-center gap-1 pointer-coarse:after:absolute pointer-coarse:after:inset-x-0 pointer-coarse:after:-inset-y-3 pointer-coarse:after:content-['']",
2235
1936
  disabled && "opacity-60"
2236
1937
  ),
@@ -2257,7 +1958,7 @@ var EntityPill = React.forwardRef(function EntityPill2({
2257
1958
  "span",
2258
1959
  {
2259
1960
  ref,
2260
- className: chunkRZQACYNQ_cjs.cn(
1961
+ className: chunkS6A6FSG7_cjs.cn(
2261
1962
  baseClasses,
2262
1963
  (onClick || href) && !disabled && "cursor-pointer hover:bg-muted/80",
2263
1964
  highlight && highlightClasses
@@ -2286,7 +1987,7 @@ var EntityPill = React.forwardRef(function EntityPill2({
2286
1987
  ),
2287
1988
  tooltipContent,
2288
1989
  tooltipSide,
2289
- chunkRZQACYNQ_cjs.cn(baseClasses, interactiveClasses),
1990
+ chunkS6A6FSG7_cjs.cn(baseClasses, interactiveClasses),
2290
1991
  { "data-testid": testId }
2291
1992
  );
2292
1993
  }
@@ -2294,7 +1995,7 @@ var EntityPill = React.forwardRef(function EntityPill2({
2294
1995
  mainContent,
2295
1996
  tooltipContent,
2296
1997
  tooltipSide,
2297
- chunkRZQACYNQ_cjs.cn(
1998
+ chunkS6A6FSG7_cjs.cn(
2298
1999
  baseClasses,
2299
2000
  onClick && !disabled ? interactiveClasses : "",
2300
2001
  disabled ? disabledClasses : "",
@@ -2317,7 +2018,7 @@ var EntityPill = React.forwardRef(function EntityPill2({
2317
2018
  href,
2318
2019
  target: "_blank",
2319
2020
  rel: "noopener noreferrer",
2320
- className: chunkRZQACYNQ_cjs.cn(baseClasses, interactiveClasses),
2021
+ className: chunkS6A6FSG7_cjs.cn(baseClasses, interactiveClasses),
2321
2022
  "data-testid": testId,
2322
2023
  onClick,
2323
2024
  children: mainContent
@@ -2332,7 +2033,7 @@ var EntityPill = React.forwardRef(function EntityPill2({
2332
2033
  type: "button",
2333
2034
  onClick: disabled ? void 0 : onClick,
2334
2035
  disabled,
2335
- className: chunkRZQACYNQ_cjs.cn(
2036
+ className: chunkS6A6FSG7_cjs.cn(
2336
2037
  baseClasses,
2337
2038
  disabled ? disabledClasses : interactiveClasses,
2338
2039
  highlight && highlightClasses
@@ -2346,7 +2047,7 @@ var EntityPill = React.forwardRef(function EntityPill2({
2346
2047
  "span",
2347
2048
  {
2348
2049
  ref,
2349
- className: chunkRZQACYNQ_cjs.cn(baseClasses, highlight && highlightClasses),
2050
+ className: chunkS6A6FSG7_cjs.cn(baseClasses, highlight && highlightClasses),
2350
2051
  "data-testid": testId,
2351
2052
  children: mainContent
2352
2053
  }
@@ -2480,7 +2181,7 @@ function RelevanceDot({ score }) {
2480
2181
  role: "img",
2481
2182
  "aria-label": tier.label,
2482
2183
  title: `${tier.label} (${score.toFixed(2)})`,
2483
- className: chunkRZQACYNQ_cjs.cn("size-1.5 shrink-0 rounded-full", tier.tone),
2184
+ className: chunkS6A6FSG7_cjs.cn("size-1.5 shrink-0 rounded-full", tier.tone),
2484
2185
  "data-testid": "passage-relevance"
2485
2186
  }
2486
2187
  );
@@ -2509,7 +2210,7 @@ function PassageCard({
2509
2210
  return /* @__PURE__ */ jsxRuntime.jsxs(
2510
2211
  "div",
2511
2212
  {
2512
- className: chunkRZQACYNQ_cjs.cn(
2213
+ className: chunkS6A6FSG7_cjs.cn(
2513
2214
  "group rounded-lg border border-border bg-card p-3 text-left transition-colors",
2514
2215
  onClick && "hover:border-ai-accent/40 focus-within:ring-2 focus-within:ring-ai-accent/40",
2515
2216
  active && "border-ai-accent/60 ring-1 ring-ai-accent/30",
@@ -2902,7 +2603,7 @@ function DocumentEntity({
2902
2603
  const eyeSizeClass = size === "base" ? "h-4 w-4" : "h-3.5 w-3.5";
2903
2604
  const baseIcon = icon ?? getDocIcon(doc.file_name, iconSize);
2904
2605
  const displayIcon = viewing || iconBadge ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative inline-flex flex-shrink-0 items-center justify-center", children: [
2905
- viewing ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Eye, { className: chunkRZQACYNQ_cjs.cn("text-primary-foreground", eyeSizeClass) }) : baseIcon,
2606
+ viewing ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Eye, { className: chunkS6A6FSG7_cjs.cn("text-primary-foreground", eyeSizeClass) }) : baseIcon,
2906
2607
  iconBadge
2907
2608
  ] }) : baseIcon;
2908
2609
  const defaultTooltip = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1 text-xs max-w-[440px]", children: [
@@ -2982,7 +2683,7 @@ function ProjectEntity({
2982
2683
  const variant = resolveVariant(relation, paid, hasCollaborators);
2983
2684
  const { pill, icon: iconClass } = VARIANT_STYLES[variant];
2984
2685
  const iconSizeClass = size === "base" ? "h-4 w-4" : "h-3.5 w-3.5";
2985
- const iconNode = icon ?? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CreditCard, { className: chunkRZQACYNQ_cjs.cn(iconSizeClass, iconClass) });
2686
+ const iconNode = icon ?? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CreditCard, { className: chunkS6A6FSG7_cjs.cn(iconSizeClass, iconClass) });
2986
2687
  return /* @__PURE__ */ jsxRuntime.jsx(
2987
2688
  EntityPill,
2988
2689
  {
@@ -2990,7 +2691,7 @@ function ProjectEntity({
2990
2691
  label: label ?? name,
2991
2692
  size,
2992
2693
  shape: "rounded",
2993
- className: chunkRZQACYNQ_cjs.cn(pill, className),
2694
+ className: chunkS6A6FSG7_cjs.cn(pill, className),
2994
2695
  onClick,
2995
2696
  tooltipContent
2996
2697
  }
@@ -3058,7 +2759,7 @@ var UserEntity = React.memo(function UserEntity2({
3058
2759
  return /* @__PURE__ */ jsxRuntime.jsx(
3059
2760
  Avatar,
3060
2761
  {
3061
- className: chunkRZQACYNQ_cjs.cn(sizeClasses[size], "border border-border", className),
2762
+ className: chunkS6A6FSG7_cjs.cn(sizeClasses[size], "border border-border", className),
3062
2763
  "data-testid": "user-entity",
3063
2764
  children: /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { className: "bg-status-empty text-muted-foreground text-xs font-semibold", children: "?" })
3064
2765
  }
@@ -3071,7 +2772,7 @@ var UserEntity = React.memo(function UserEntity2({
3071
2772
  const avatarCore = /* @__PURE__ */ jsxRuntime.jsxs(
3072
2773
  Avatar,
3073
2774
  {
3074
- className: chunkRZQACYNQ_cjs.cn(
2775
+ className: chunkS6A6FSG7_cjs.cn(
3075
2776
  sizeClasses[size],
3076
2777
  isAgent ? "rounded-full border-2 border-dashed" : "border border-white"
3077
2778
  ),
@@ -3082,7 +2783,7 @@ var UserEntity = React.memo(function UserEntity2({
3082
2783
  /* @__PURE__ */ jsxRuntime.jsx(
3083
2784
  AvatarFallback,
3084
2785
  {
3085
- className: chunkRZQACYNQ_cjs.cn(
2786
+ className: chunkS6A6FSG7_cjs.cn(
3086
2787
  textSizeClasses[size],
3087
2788
  "font-semibold leading-none",
3088
2789
  isAgent ? "rounded-full bg-transparent" : `text-white ${colorClass}`
@@ -3097,7 +2798,7 @@ var UserEntity = React.memo(function UserEntity2({
3097
2798
  const statusDot = showUnread || displayStatus ? /* @__PURE__ */ jsxRuntime.jsx(
3098
2799
  "span",
3099
2800
  {
3100
- className: chunkRZQACYNQ_cjs.cn(
2801
+ className: chunkS6A6FSG7_cjs.cn(
3101
2802
  "absolute rounded-full border-white",
3102
2803
  presenceDotClasses[size],
3103
2804
  presencePositionClasses[size],
@@ -3113,7 +2814,7 @@ var UserEntity = React.memo(function UserEntity2({
3113
2814
  const avatarElement = statusDot ? /* @__PURE__ */ jsxRuntime.jsxs(
3114
2815
  "div",
3115
2816
  {
3116
- className: chunkRZQACYNQ_cjs.cn(
2817
+ className: chunkS6A6FSG7_cjs.cn(
3117
2818
  "relative inline-block",
3118
2819
  sizeClasses[size],
3119
2820
  variant === "pill" ? "" : className
@@ -3123,12 +2824,12 @@ var UserEntity = React.memo(function UserEntity2({
3123
2824
  statusDot
3124
2825
  ]
3125
2826
  }
3126
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkRZQACYNQ_cjs.cn("inline-block", variant === "pill" ? "" : className), children: avatarCore });
2827
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkS6A6FSG7_cjs.cn("inline-block", variant === "pill" ? "" : className), children: avatarCore });
3127
2828
  const pillAvatar = (
3128
2829
  // shrink-0: when the pill is squeezed the NAME truncates away — the avatar
3129
2830
  // must never collapse under it and overflow onto neighbouring text.
3130
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: chunkRZQACYNQ_cjs.cn("relative inline-block shrink-0", sizeClasses[size]), children: [
3131
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkRZQACYNQ_cjs.cn("block transition-opacity", canMessage && "group-hover/pill:opacity-0"), children: avatarCore }),
2831
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: chunkS6A6FSG7_cjs.cn("relative inline-block shrink-0", sizeClasses[size]), children: [
2832
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkS6A6FSG7_cjs.cn("block transition-opacity", canMessage && "group-hover/pill:opacity-0"), children: avatarCore }),
3132
2833
  canMessage && /* @__PURE__ */ jsxRuntime.jsx(
3133
2834
  "span",
3134
2835
  {
@@ -3158,7 +2859,7 @@ var UserEntity = React.memo(function UserEntity2({
3158
2859
  type: "button",
3159
2860
  onClick: clickable ? onClick : void 0,
3160
2861
  onFocusCapture: (e) => e.stopPropagation(),
3161
- className: chunkRZQACYNQ_cjs.cn(rowClass, clickable && clickableClass, className),
2862
+ className: chunkS6A6FSG7_cjs.cn(rowClass, clickable && clickableClass, className),
3162
2863
  "data-testid": "user-entity-pill",
3163
2864
  children: row
3164
2865
  }
@@ -3172,13 +2873,13 @@ var UserEntity = React.memo(function UserEntity2({
3172
2873
  {
3173
2874
  type: "button",
3174
2875
  onClick,
3175
- className: chunkRZQACYNQ_cjs.cn(rowClass, clickableClass, className),
2876
+ className: chunkS6A6FSG7_cjs.cn(rowClass, clickableClass, className),
3176
2877
  "data-testid": "user-entity-pill",
3177
2878
  children: row
3178
2879
  }
3179
2880
  );
3180
2881
  }
3181
- return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkRZQACYNQ_cjs.cn(rowClass, className), "data-testid": "user-entity-pill", children: row });
2882
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkS6A6FSG7_cjs.cn(rowClass, className), "data-testid": "user-entity-pill", children: row });
3182
2883
  }
3183
2884
  if (showTooltip) {
3184
2885
  return /* @__PURE__ */ jsxRuntime.jsxs(Tooltip, { children: [
@@ -3200,7 +2901,7 @@ function AgentBadge({ className }) {
3200
2901
  "span",
3201
2902
  {
3202
2903
  "data-testid": "agent-badge",
3203
- className: chunkRZQACYNQ_cjs.cn(
2904
+ className: chunkS6A6FSG7_cjs.cn(
3204
2905
  "inline-flex shrink-0 items-center gap-1 rounded-full border border-ai-accent/50",
3205
2906
  "bg-ai-accent-soft px-2 py-0.5 text-xs font-bold uppercase tracking-wider text-ai-accent",
3206
2907
  className
@@ -3231,12 +2932,12 @@ function PresenceLabel({
3231
2932
  "span",
3232
2933
  {
3233
2934
  "data-testid": "presence-label",
3234
- className: chunkRZQACYNQ_cjs.cn("inline-flex shrink-0 items-center gap-1 text-xs", className),
2935
+ className: chunkS6A6FSG7_cjs.cn("inline-flex shrink-0 items-center gap-1 text-xs", className),
3235
2936
  children: [
3236
2937
  /* @__PURE__ */ jsxRuntime.jsx(
3237
2938
  "span",
3238
2939
  {
3239
- className: chunkRZQACYNQ_cjs.cn(
2940
+ className: chunkS6A6FSG7_cjs.cn(
3240
2941
  "size-1.5 rounded-full",
3241
2942
  online ? "bg-status-online" : "bg-muted-foreground/50"
3242
2943
  ),
@@ -3288,8 +2989,8 @@ function RagDot({
3288
2989
  className
3289
2990
  }) {
3290
2991
  const color = rag === "red" ? "bg-destructive" : rag === "amber" ? "bg-warning" : "bg-success";
3291
- return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: chunkRZQACYNQ_cjs.cn("inline-flex items-center gap-1.5", className), "data-testid": `rag-${rag}`, children: [
3292
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkRZQACYNQ_cjs.cn("size-2 rounded-full", color) }),
2992
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: chunkS6A6FSG7_cjs.cn("inline-flex items-center gap-1.5", className), "data-testid": `rag-${rag}`, children: [
2993
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkS6A6FSG7_cjs.cn("size-2 rounded-full", color) }),
3293
2994
  withLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", children: RAG_LABELS[rag] })
3294
2995
  ] });
3295
2996
  }
@@ -3640,12 +3341,12 @@ function UserMenu({
3640
3341
  testId = "user-menu",
3641
3342
  logoutTestId
3642
3343
  }) {
3643
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkRZQACYNQ_cjs.DropdownMenu, { children: [
3644
- /* @__PURE__ */ jsxRuntime.jsx(chunkRZQACYNQ_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
3344
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkOBNTJEEO_cjs.DropdownMenu, { children: [
3345
+ /* @__PURE__ */ jsxRuntime.jsx(chunkOBNTJEEO_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
3645
3346
  "button",
3646
3347
  {
3647
3348
  type: "button",
3648
- className: chunkRZQACYNQ_cjs.cn(
3349
+ className: chunkS6A6FSG7_cjs.cn(
3649
3350
  "flex items-center gap-2 rounded-md transition-colors hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
3650
3351
  variant === "account" ? "w-full min-w-0 p-1 text-left pointer-coarse:min-h-11" : "px-1.5 py-1 pointer-coarse:min-h-11 pointer-coarse:min-w-11 pointer-coarse:justify-center",
3651
3352
  classNames?.trigger
@@ -3661,7 +3362,7 @@ function UserMenu({
3661
3362
  /* @__PURE__ */ jsxRuntime.jsx(
3662
3363
  AvatarFallback,
3663
3364
  {
3664
- className: chunkRZQACYNQ_cjs.cn("bg-primary text-primary-foreground", classNames?.fallback),
3365
+ className: chunkS6A6FSG7_cjs.cn("bg-primary text-primary-foreground", classNames?.fallback),
3665
3366
  children: nameInitials(user.name)
3666
3367
  }
3667
3368
  )
@@ -3669,7 +3370,7 @@ function UserMenu({
3669
3370
  status && /* @__PURE__ */ jsxRuntime.jsx(
3670
3371
  "span",
3671
3372
  {
3672
- className: chunkRZQACYNQ_cjs.cn(
3373
+ className: chunkS6A6FSG7_cjs.cn(
3673
3374
  "absolute -bottom-0.5 -right-0.5 size-2.5 rounded-full border-2 border-background",
3674
3375
  STATUS_DOT[status.tone]
3675
3376
  ),
@@ -3686,7 +3387,7 @@ function UserMenu({
3686
3387
  }
3687
3388
  ) }),
3688
3389
  /* @__PURE__ */ jsxRuntime.jsxs(
3689
- chunkRZQACYNQ_cjs.DropdownMenuContent,
3390
+ chunkOBNTJEEO_cjs.DropdownMenuContent,
3690
3391
  {
3691
3392
  align,
3692
3393
  side,
@@ -3696,9 +3397,9 @@ function UserMenu({
3696
3397
  "data-testid": "user-menu-panel",
3697
3398
  "data-topbar-popover": "",
3698
3399
  children: [
3699
- /* @__PURE__ */ jsxRuntime.jsxs(chunkRZQACYNQ_cjs.DropdownMenuLabel, { className: "relative pr-8 pointer-coarse:pr-12", children: [
3400
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkOBNTJEEO_cjs.DropdownMenuLabel, { className: "relative pr-8 pointer-coarse:pr-12", children: [
3700
3401
  /* @__PURE__ */ jsxRuntime.jsx(
3701
- chunkRZQACYNQ_cjs.DropdownMenuItem,
3402
+ chunkOBNTJEEO_cjs.DropdownMenuItem,
3702
3403
  {
3703
3404
  className: "absolute right-1 top-1 flex size-6 items-center justify-center rounded-md p-0 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus:bg-accent pointer-coarse:right-0 pointer-coarse:top-0 pointer-coarse:size-11",
3704
3405
  "aria-label": "Close account menu",
@@ -3715,7 +3416,7 @@ function UserMenu({
3715
3416
  "data-testid": status.testId,
3716
3417
  children: [
3717
3418
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-1.5", children: [
3718
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkRZQACYNQ_cjs.cn("size-2 shrink-0 rounded-full", STATUS_DOT[status.tone]) }),
3419
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkS6A6FSG7_cjs.cn("size-2 shrink-0 rounded-full", STATUS_DOT[status.tone]) }),
3719
3420
  status.label
3720
3421
  ] }),
3721
3422
  status.detail && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-0.5 truncate pl-3.5 text-xs leading-tight text-muted-foreground/70", children: status.detail })
@@ -3723,11 +3424,11 @@ function UserMenu({
3723
3424
  }
3724
3425
  )
3725
3426
  ] }),
3726
- /* @__PURE__ */ jsxRuntime.jsx(chunkRZQACYNQ_cjs.DropdownMenuSeparator, {}),
3427
+ /* @__PURE__ */ jsxRuntime.jsx(chunkOBNTJEEO_cjs.DropdownMenuSeparator, {}),
3727
3428
  items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
3728
- item.separatorBefore && /* @__PURE__ */ jsxRuntime.jsx(chunkRZQACYNQ_cjs.DropdownMenuSeparator, {}),
3429
+ item.separatorBefore && /* @__PURE__ */ jsxRuntime.jsx(chunkOBNTJEEO_cjs.DropdownMenuSeparator, {}),
3729
3430
  /* @__PURE__ */ jsxRuntime.jsxs(
3730
- chunkRZQACYNQ_cjs.DropdownMenuItem,
3431
+ chunkOBNTJEEO_cjs.DropdownMenuItem,
3731
3432
  {
3732
3433
  onClick: item.onSelect,
3733
3434
  "data-testid": item.testId,
@@ -3750,14 +3451,14 @@ function UserMenu({
3750
3451
  "span",
3751
3452
  {
3752
3453
  "aria-hidden": true,
3753
- className: chunkRZQACYNQ_cjs.cn(
3454
+ className: chunkS6A6FSG7_cjs.cn(
3754
3455
  "flex h-4 w-7 shrink-0 items-center rounded-full p-0.5 transition-colors",
3755
3456
  item.checked ? "bg-primary" : "bg-border"
3756
3457
  ),
3757
3458
  children: /* @__PURE__ */ jsxRuntime.jsx(
3758
3459
  "span",
3759
3460
  {
3760
- className: chunkRZQACYNQ_cjs.cn(
3461
+ className: chunkS6A6FSG7_cjs.cn(
3761
3462
  "size-3 rounded-full bg-background transition-transform",
3762
3463
  item.checked && "translate-x-3"
3763
3464
  )
@@ -3769,9 +3470,9 @@ function UserMenu({
3769
3470
  }
3770
3471
  )
3771
3472
  ] }, item.label)),
3772
- /* @__PURE__ */ jsxRuntime.jsx(chunkRZQACYNQ_cjs.DropdownMenuSeparator, {}),
3473
+ /* @__PURE__ */ jsxRuntime.jsx(chunkOBNTJEEO_cjs.DropdownMenuSeparator, {}),
3773
3474
  /* @__PURE__ */ jsxRuntime.jsxs(
3774
- chunkRZQACYNQ_cjs.DropdownMenuItem,
3475
+ chunkOBNTJEEO_cjs.DropdownMenuItem,
3775
3476
  {
3776
3477
  onClick: onLogout,
3777
3478
  "data-testid": logoutTestId ?? `${testId}-logout`,
@@ -3917,7 +3618,7 @@ function DocumentCard({
3917
3618
  "div",
3918
3619
  {
3919
3620
  "data-testid": testId,
3920
- className: chunkRZQACYNQ_cjs.cn(
3621
+ className: chunkS6A6FSG7_cjs.cn(
3921
3622
  // Square corners and a portrait-page aspect (height = 1.3 × width), so a
3922
3623
  // cover-page thumbnail reads edge-to-edge.
3923
3624
  "group relative aspect-[10/13] select-none overflow-hidden border bg-muted/20 transition",
@@ -3934,7 +3635,7 @@ function DocumentCard({
3934
3635
  draggable: false,
3935
3636
  onError: () => setThumbFailed(true),
3936
3637
  onLoad: (e) => setThumbLandscape(e.currentTarget.naturalWidth > e.currentTarget.naturalHeight),
3937
- className: chunkRZQACYNQ_cjs.cn(
3638
+ className: chunkS6A6FSG7_cjs.cn(
3938
3639
  "absolute inset-0 size-full bg-white",
3939
3640
  thumbLandscape ? "object-contain" : "object-cover object-top"
3940
3641
  )
@@ -3959,7 +3660,7 @@ function DocumentCard({
3959
3660
  onClick: (e) => e.stopPropagation(),
3960
3661
  "aria-label": selected ? "Deselect" : "Select",
3961
3662
  "data-testid": `${testId}-select`,
3962
- className: chunkRZQACYNQ_cjs.cn(
3663
+ className: chunkS6A6FSG7_cjs.cn(
3963
3664
  "absolute left-1.5 top-1.5 z-20 size-6 rounded-none border-muted-foreground/60 bg-background shadow-sm transition",
3964
3665
  selected ? "opacity-100" : "opacity-40 group-hover:opacity-100"
3965
3666
  )
@@ -4056,8 +3757,6 @@ exports.InlineMicButton = InlineMicButton;
4056
3757
  exports.Input = Input;
4057
3758
  exports.Label = Label;
4058
3759
  exports.MarkMenu = MarkMenu;
4059
- exports.MarkdownRenderer = MarkdownRenderer;
4060
- exports.MarkdownStreamingContext = MarkdownStreamingContext;
4061
3760
  exports.MicRecordingOverlay = MicRecordingOverlay;
4062
3761
  exports.MicWaveformIndicator = MicWaveformIndicator;
4063
3762
  exports.NEUTRAL_GRAY = NEUTRAL_GRAY2;
@@ -4134,10 +3833,7 @@ exports.getStatusVariant = getStatusVariant;
4134
3833
  exports.getTagTypeIcon = getTagTypeIcon;
4135
3834
  exports.getTagTypeLabel = getTagTypeLabel;
4136
3835
  exports.getWorkspaceColor = getWorkspaceColor;
4137
- exports.markdownBaseComponents = markdownBaseComponents;
4138
- exports.normalizeCitationMarkup = normalizeCitationMarkup;
4139
- exports.splitMarkdownBlocks = splitMarkdownBlocks;
4140
3836
  exports.toggleVariants = toggleVariants;
4141
3837
  exports.useAudioRecorder = useAudioRecorder;
4142
- //# sourceMappingURL=chunk-ORKGCXG3.cjs.map
4143
- //# sourceMappingURL=chunk-ORKGCXG3.cjs.map
3838
+ //# sourceMappingURL=chunk-7BDGLRQX.cjs.map
3839
+ //# sourceMappingURL=chunk-7BDGLRQX.cjs.map