@flamingo-stack/openframe-frontend-core 0.0.428 → 0.0.429-snapshot.20260715222543

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 (131) hide show
  1. package/dist/{chunk-43KGFHI3.js → chunk-2ELINEWQ.js} +2 -2
  2. package/dist/{chunk-OZTPC6VW.cjs → chunk-374KFDET.cjs} +31 -31
  3. package/dist/{chunk-OZTPC6VW.cjs.map → chunk-374KFDET.cjs.map} +1 -1
  4. package/dist/{chunk-55EIHSOQ.js → chunk-3AWPRVFM.js} +2 -2
  5. package/dist/{chunk-SLCANQN3.js → chunk-3OKVH6FW.js} +4 -4
  6. package/dist/{chunk-UXXCNZXC.js → chunk-3XWBE3SM.js} +4 -4
  7. package/dist/{chunk-7JUUQAAH.js → chunk-67LZDLIO.js} +2 -2
  8. package/dist/{chunk-YP3DO4BM.js → chunk-A6JKKKIF.js} +4 -4
  9. package/dist/{chunk-RR77Z27A.js → chunk-AY5TBDWZ.js} +2 -2
  10. package/dist/{chunk-LZYKGEN3.cjs → chunk-CJOFXDTK.cjs} +26 -26
  11. package/dist/{chunk-LZYKGEN3.cjs.map → chunk-CJOFXDTK.cjs.map} +1 -1
  12. package/dist/{chunk-I7YFFSDS.cjs → chunk-CTY37UUO.cjs} +59 -59
  13. package/dist/{chunk-I7YFFSDS.cjs.map → chunk-CTY37UUO.cjs.map} +1 -1
  14. package/dist/{chunk-NXCFIPEY.cjs → chunk-D4K53CES.cjs} +26 -26
  15. package/dist/{chunk-NXCFIPEY.cjs.map → chunk-D4K53CES.cjs.map} +1 -1
  16. package/dist/{chunk-FFDGTMZX.cjs → chunk-FL4IOCYH.cjs} +5 -5
  17. package/dist/{chunk-FFDGTMZX.cjs.map → chunk-FL4IOCYH.cjs.map} +1 -1
  18. package/dist/{chunk-7ELFQWYF.cjs → chunk-FYMD7CCA.cjs} +7 -7
  19. package/dist/{chunk-7ELFQWYF.cjs.map → chunk-FYMD7CCA.cjs.map} +1 -1
  20. package/dist/{chunk-CVYVCBMM.js → chunk-IMOJWQDR.js} +4 -4
  21. package/dist/{chunk-N2CTZ3Q2.cjs → chunk-KDVGC6EG.cjs} +37 -37
  22. package/dist/{chunk-N2CTZ3Q2.cjs.map → chunk-KDVGC6EG.cjs.map} +1 -1
  23. package/dist/{chunk-DA2VSDAX.js → chunk-NZBQGODM.js} +2 -2
  24. package/dist/{chunk-SJTNVETH.cjs → chunk-PP5KNHMK.cjs} +408 -233
  25. package/dist/chunk-PP5KNHMK.cjs.map +1 -0
  26. package/dist/{chunk-MJH4VS4L.cjs → chunk-Q7SYPXUX.cjs} +11 -11
  27. package/dist/{chunk-MJH4VS4L.cjs.map → chunk-Q7SYPXUX.cjs.map} +1 -1
  28. package/dist/{chunk-DQ5NRLCG.js → chunk-S7UXICHB.js} +2 -2
  29. package/dist/{chunk-KMXHSL6M.js → chunk-TDITU4KW.js} +2 -2
  30. package/dist/{chunk-OBDDE4WV.js → chunk-TYANQCZA.js} +3034 -2859
  31. package/dist/chunk-TYANQCZA.js.map +1 -0
  32. package/dist/{chunk-F4WTCWOY.cjs → chunk-WQN4B6CM.cjs} +15 -15
  33. package/dist/{chunk-F4WTCWOY.cjs.map → chunk-WQN4B6CM.cjs.map} +1 -1
  34. package/dist/{chunk-533XR4JK.cjs → chunk-WQR7H56P.cjs} +62 -62
  35. package/dist/{chunk-533XR4JK.cjs.map → chunk-WQR7H56P.cjs.map} +1 -1
  36. package/dist/{chunk-MO4QIPT7.cjs → chunk-ZUP2ZKS6.cjs} +9 -9
  37. package/dist/{chunk-MO4QIPT7.cjs.map → chunk-ZUP2ZKS6.cjs.map} +1 -1
  38. package/dist/components/case-studies/index.cjs +8 -8
  39. package/dist/components/case-studies/index.js +2 -2
  40. package/dist/components/chat/chat-message-skeleton.d.ts +17 -2
  41. package/dist/components/chat/chat-message-skeleton.d.ts.map +1 -1
  42. package/dist/components/chat/chat-panel-header.d.ts +6 -1
  43. package/dist/components/chat/chat-panel-header.d.ts.map +1 -1
  44. package/dist/components/chat/chat-quick-action-row.d.ts +12 -2
  45. package/dist/components/chat/chat-quick-action-row.d.ts.map +1 -1
  46. package/dist/components/chat/hooks/index.d.ts +1 -0
  47. package/dist/components/chat/hooks/index.d.ts.map +1 -1
  48. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +31 -2
  49. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
  50. package/dist/components/chat/hooks/use-scripted-stream.d.ts +3 -0
  51. package/dist/components/chat/hooks/use-scripted-stream.d.ts.map +1 -0
  52. package/dist/components/chat/index.cjs +14 -2
  53. package/dist/components/chat/index.cjs.map +1 -1
  54. package/dist/components/chat/index.js +13 -1
  55. package/dist/components/chat/quick-action-chip.d.ts +5 -1
  56. package/dist/components/chat/quick-action-chip.d.ts.map +1 -1
  57. package/dist/components/chat/utils/index.d.ts +1 -0
  58. package/dist/components/chat/utils/index.d.ts.map +1 -1
  59. package/dist/components/chat/utils/scripted-stream.d.ts +38 -0
  60. package/dist/components/chat/utils/scripted-stream.d.ts.map +1 -0
  61. package/dist/components/contact/index.cjs +3 -3
  62. package/dist/components/contact/index.js +2 -2
  63. package/dist/components/docs/index.cjs +5 -5
  64. package/dist/components/docs/index.js +4 -4
  65. package/dist/components/embeds/index.cjs +3 -3
  66. package/dist/components/embeds/index.js +2 -2
  67. package/dist/components/faq/index.cjs +3 -3
  68. package/dist/components/faq/index.js +2 -2
  69. package/dist/components/features/board/index.d.ts +2 -2
  70. package/dist/components/features/board/index.d.ts.map +1 -1
  71. package/dist/components/features/board/ticket-card.d.ts +22 -2
  72. package/dist/components/features/board/ticket-card.d.ts.map +1 -1
  73. package/dist/components/features/index.cjs +6 -2
  74. package/dist/components/features/index.cjs.map +1 -1
  75. package/dist/components/features/index.js +5 -1
  76. package/dist/components/help-center-pages/index.cjs +20 -20
  77. package/dist/components/help-center-pages/index.js +11 -11
  78. package/dist/components/index.cjs +146 -128
  79. package/dist/components/index.cjs.map +1 -1
  80. package/dist/components/index.js +27 -9
  81. package/dist/components/index.js.map +1 -1
  82. package/dist/components/navigation/index.cjs +2 -2
  83. package/dist/components/navigation/index.js +1 -1
  84. package/dist/components/onboarding-guides/index.cjs +5 -5
  85. package/dist/components/onboarding-guides/index.js +4 -4
  86. package/dist/components/related-content/index.cjs +3 -3
  87. package/dist/components/related-content/index.js +2 -2
  88. package/dist/components/tickets/index.cjs +5 -5
  89. package/dist/components/tickets/index.js +4 -4
  90. package/dist/components/ui/index.cjs +16 -2
  91. package/dist/components/ui/index.cjs.map +1 -1
  92. package/dist/components/ui/index.d.ts +1 -0
  93. package/dist/components/ui/index.d.ts.map +1 -1
  94. package/dist/components/ui/index.js +15 -1
  95. package/dist/components/ui/info-card-row.d.ts +13 -0
  96. package/dist/components/ui/info-card-row.d.ts.map +1 -0
  97. package/dist/components/ui/tag.d.ts +1 -1
  98. package/dist/components/ui/tag.d.ts.map +1 -1
  99. package/dist/index.cjs +20 -2
  100. package/dist/index.cjs.map +1 -1
  101. package/dist/index.js +19 -1
  102. package/package.json +1 -1
  103. package/src/components/chat/chat-message-skeleton.tsx +40 -9
  104. package/src/components/chat/chat-panel-header.tsx +28 -16
  105. package/src/components/chat/chat-quick-action-row.tsx +33 -0
  106. package/src/components/chat/embeddable-chat.tsx +11 -1
  107. package/src/components/chat/hooks/index.ts +1 -0
  108. package/src/components/chat/hooks/use-nats-chat-adapter.ts +30 -1
  109. package/src/components/chat/hooks/use-scripted-stream.ts +69 -0
  110. package/src/components/chat/quick-action-chip.tsx +6 -1
  111. package/src/components/chat/utils/index.ts +2 -0
  112. package/src/components/chat/utils/scripted-stream.ts +111 -0
  113. package/src/components/features/board/index.ts +2 -2
  114. package/src/components/features/board/ticket-card.tsx +108 -64
  115. package/src/components/ui/index.ts +1 -0
  116. package/src/components/ui/info-card-row.tsx +70 -0
  117. package/src/components/ui/tag.tsx +7 -0
  118. package/src/stories/InfoCardRow.stories.tsx +68 -0
  119. package/dist/chunk-OBDDE4WV.js.map +0 -1
  120. package/dist/chunk-SJTNVETH.cjs.map +0 -1
  121. /package/dist/{chunk-43KGFHI3.js.map → chunk-2ELINEWQ.js.map} +0 -0
  122. /package/dist/{chunk-55EIHSOQ.js.map → chunk-3AWPRVFM.js.map} +0 -0
  123. /package/dist/{chunk-SLCANQN3.js.map → chunk-3OKVH6FW.js.map} +0 -0
  124. /package/dist/{chunk-UXXCNZXC.js.map → chunk-3XWBE3SM.js.map} +0 -0
  125. /package/dist/{chunk-7JUUQAAH.js.map → chunk-67LZDLIO.js.map} +0 -0
  126. /package/dist/{chunk-YP3DO4BM.js.map → chunk-A6JKKKIF.js.map} +0 -0
  127. /package/dist/{chunk-RR77Z27A.js.map → chunk-AY5TBDWZ.js.map} +0 -0
  128. /package/dist/{chunk-CVYVCBMM.js.map → chunk-IMOJWQDR.js.map} +0 -0
  129. /package/dist/{chunk-DA2VSDAX.js.map → chunk-NZBQGODM.js.map} +0 -0
  130. /package/dist/{chunk-DQ5NRLCG.js.map → chunk-S7UXICHB.js.map} +0 -0
  131. /package/dist/{chunk-KMXHSL6M.js.map → chunk-TDITU4KW.js.map} +0 -0
@@ -477,6 +477,13 @@ var tagVariants = _classvarianceauthority.cva.call(void 0,
477
477
  "hover:bg-[var(--ods-flamingo-pink-secondary-hover)] hover:border-[var(--ods-flamingo-pink-base)]",
478
478
  "active:bg-[var(--ods-flamingo-pink-secondary-action)]"
479
479
  ],
480
+ // Cyan twin of `selected` (Mingo's accent) — same active-chip skin in the
481
+ // cyan theme so agent chip groups can match their own accent.
482
+ selectedCyan: [
483
+ "bg-[var(--ods-flamingo-cyan-secondary)] text-[var(--ods-system-greys-white)] border border-[var(--ods-flamingo-cyan-base)]",
484
+ "hover:bg-[var(--ods-flamingo-cyan-secondary-hover)] hover:border-[var(--ods-flamingo-cyan-base)]",
485
+ "active:bg-[var(--ods-flamingo-cyan-secondary-action)]"
486
+ ],
480
487
  // Matches the EntityTagBadges / StatusBadge tag skin (ods-card + ods-border,
481
488
  // mono uppercase) so the tag-editor chips render identically to the public
482
489
  // tag badges. Used for FilterChipData variant 'tag' (see search-input).
@@ -5775,22 +5782,28 @@ var _usesticktobottom = require('use-stick-to-bottom');
5775
5782
  // src/components/chat/chat-message-skeleton.tsx
5776
5783
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
5777
5784
 
5785
+ var BODY_LINE_WIDTHS = ["w-full", "w-11/12", "w-4/5", "w-5/6"];
5786
+ var bodyLineWidth = (index, total) => index === total - 1 ? "w-3/5" : BODY_LINE_WIDTHS[index % BODY_LINE_WIDTHS.length];
5778
5787
  function ChatMessageSkeleton({
5779
5788
  className,
5780
5789
  showAvatar = true,
5781
- isUser = false
5790
+ isUser = false,
5791
+ bodyLines = 3
5782
5792
  }) {
5793
+ const lines = Math.max(1, bodyLines);
5783
5794
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "relative py-[var(--spacing-system-s)]", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col gap-[var(--spacing-system-xxs)]", children: [
5784
5795
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
5785
5796
  showAvatar && !isUser && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 flex-shrink-0 rounded-full bg-ods-border animate-pulse" }),
5786
5797
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-32 rounded bg-ods-border animate-pulse" }),
5787
5798
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "ml-auto h-4 w-14 rounded bg-ods-border animate-pulse" })
5788
5799
  ] }),
5789
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2 pt-[var(--spacing-system-xxs)]", children: [
5790
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-full rounded bg-ods-border animate-pulse" }),
5791
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-11/12 rounded bg-ods-border animate-pulse" }),
5792
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/5 rounded bg-ods-border animate-pulse" })
5793
- ] })
5800
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-2 pt-[var(--spacing-system-xxs)]", children: Array.from({ length: lines }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5801
+ "div",
5802
+ {
5803
+ className: _chunkFIG2RKZFcjs.cn.call(void 0, "h-4 rounded bg-ods-border animate-pulse", bodyLineWidth(i, lines))
5804
+ },
5805
+ i
5806
+ )) })
5794
5807
  ] }) });
5795
5808
  }
5796
5809
  function ChatMessageListSkeleton({
@@ -5798,7 +5811,9 @@ function ChatMessageListSkeleton({
5798
5811
  messageCount = 6,
5799
5812
  showAvatars = true,
5800
5813
  fullWidth = false,
5801
- contentClassName
5814
+ contentClassName,
5815
+ bodyLines,
5816
+ fill = false
5802
5817
  }) {
5803
5818
  const messages = Array.from({ length: messageCount }, (_, index) => ({
5804
5819
  id: index,
@@ -5808,9 +5823,8 @@ function ChatMessageListSkeleton({
5808
5823
  "div",
5809
5824
  {
5810
5825
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
5811
- "flex h-full w-full flex-col overflow-y-auto overflow-x-hidden flex-1",
5812
- "[scroll-behavior:smooth]",
5813
- "scrollbar-thin scrollbar-track-transparent scrollbar-thumb-ods-border/30 hover:scrollbar-thumb-ods-text-secondary/30",
5826
+ "flex h-full w-full flex-col flex-1",
5827
+ fill ? "overflow-hidden" : "overflow-y-auto overflow-x-hidden [scroll-behavior:smooth] scrollbar-thin scrollbar-track-transparent scrollbar-thumb-ods-border/30 hover:scrollbar-thumb-ods-text-secondary/30",
5814
5828
  className
5815
5829
  ),
5816
5830
  children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -5820,14 +5834,15 @@ function ChatMessageListSkeleton({
5820
5834
  fullWidth ? "flex w-full flex-col min-w-0" : "mx-auto flex w-full max-w-ods-content-narrow flex-col min-w-0",
5821
5835
  contentClassName
5822
5836
  ),
5823
- style: { minHeight: "100%" },
5837
+ style: fill ? void 0 : { minHeight: "100%" },
5824
5838
  children: [
5825
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
5839
+ !fill && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
5826
5840
  messages.map((message2) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5827
5841
  ChatMessageSkeleton,
5828
5842
  {
5829
5843
  showAvatar: showAvatars,
5830
- isUser: message2.isUser
5844
+ isUser: message2.isUser,
5845
+ bodyLines
5831
5846
  },
5832
5847
  message2.id
5833
5848
  ))
@@ -6550,6 +6565,7 @@ function QuickActionChipButton({
6550
6565
  lozenge,
6551
6566
  variant = "outline",
6552
6567
  selected = false,
6568
+ selectedAccent,
6553
6569
  size: size2 = "default",
6554
6570
  onSelect,
6555
6571
  onHoverStart,
@@ -6559,7 +6575,7 @@ function QuickActionChipButton({
6559
6575
  }) {
6560
6576
  const resolvedIcon = renderQuickActionIcon(icon);
6561
6577
  const resolvedLabel = composeChipLabel(label, lozenge);
6562
- const tagVariant = selected ? "selected" : variant;
6578
+ const tagVariant = selected ? selectedAccent === "cyan" ? "selectedCyan" : "selected" : variant;
6563
6579
  if (!interactive) {
6564
6580
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Tag, { variant: tagVariant, size: size2, icon: resolvedIcon, label: resolvedLabel, className });
6565
6581
  }
@@ -6584,6 +6600,7 @@ function QuickActionChipButton({
6584
6600
 
6585
6601
  // src/components/chat/chat-quick-action-row.tsx
6586
6602
 
6603
+ var SKELETON_LABEL_CHS = [16, 9, 13, 7, 18, 8, 20, 11, 15, 10, 19, 12, 17, 8, 21, 14];
6587
6604
  function ChipButton({ chip }) {
6588
6605
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
6589
6606
  QuickActionChipButton,
@@ -6591,6 +6608,8 @@ function ChipButton({ chip }) {
6591
6608
  label: chip.label,
6592
6609
  icon: chip.icon,
6593
6610
  variant: _nullishCoalesce(chip.variant, () => ( "outline")),
6611
+ selected: chip.selected,
6612
+ selectedAccent: chip.selectedAccent,
6594
6613
  onSelect: chip.onSelect,
6595
6614
  onHoverStart: chip.onHoverStart,
6596
6615
  onHoverEnd: chip.onHoverEnd
@@ -6601,6 +6620,8 @@ function ChatQuickActionRow({
6601
6620
  leading,
6602
6621
  chips,
6603
6622
  wrap = false,
6623
+ loading = false,
6624
+ skeletonCount = 8,
6604
6625
  className
6605
6626
  }) {
6606
6627
  const auto = _chunkN2TJ3HAMcjs.useAutoLimitTags.call(void 0, {
@@ -6609,6 +6630,9 @@ function ChatQuickActionRow({
6609
6630
  });
6610
6631
  const visibleChips = chips.slice(0, auto.visibleCount);
6611
6632
  const hiddenChips = chips.slice(auto.visibleCount);
6633
+ if (loading) {
6634
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex shrink-0 items-center gap-1", wrap && "flex-wrap", className), children: Array.from({ length: skeletonCount }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, QuickActionChipSkeleton, { labelCh: SKELETON_LABEL_CHS[i % SKELETON_LABEL_CHS.length] }, i)) });
6635
+ }
6612
6636
  if (!leading && chips.length === 0) return null;
6613
6637
  if (wrap) {
6614
6638
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex shrink-0 flex-wrap items-center gap-1", className), children: [
@@ -7933,6 +7957,9 @@ var ChatHeaderIconButton = React23.forwardRef(({ className, children, type = "bu
7933
7957
  ));
7934
7958
  ChatHeaderIconButton.displayName = "ChatHeaderIconButton";
7935
7959
 
7960
+ // src/components/chat/chat-panel-header.tsx
7961
+ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
7962
+
7936
7963
  // src/components/chat/chat-panel-header-mobile.tsx
7937
7964
  _chunkIMK6RUECcjs.init_button2.call(void 0, );
7938
7965
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
@@ -8016,14 +8043,15 @@ function ChatPanelHeader({
8016
8043
  onRestore,
8017
8044
  onRename,
8018
8045
  onArchive,
8019
- onOpenArchive
8046
+ onOpenArchive,
8047
+ compact = false
8020
8048
  }) {
8021
8049
  const menuItems = [
8022
8050
  onRename && { id: "rename", label: "Rename chat", onClick: onRename },
8023
8051
  onArchive && { id: "archive", label: "Archive chat", onClick: onArchive }
8024
8052
  ].filter(Boolean);
8025
8053
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
8026
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8054
+ !compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8027
8055
  ChatPanelHeaderMobile,
8028
8056
  {
8029
8057
  className: "flex md:hidden",
@@ -8039,7 +8067,7 @@ function ChatPanelHeader({
8039
8067
  onOpenArchive
8040
8068
  }
8041
8069
  ),
8042
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "hidden md:flex flex-shrink-0 h-14 w-full overflow-hidden border-b border-ods-border bg-ods-card", children: [
8070
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex-shrink-0 h-14 w-full overflow-hidden border-b border-ods-border bg-ods-card", compact ? "flex" : "hidden md:flex"), children: [
8043
8071
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-1 min-w-0 items-center gap-2 px-4 py-3", children: showBack ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
8044
8072
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8045
8073
  "button",
@@ -24755,6 +24783,47 @@ function DashboardInfoCard({
24755
24783
  );
24756
24784
  }
24757
24785
 
24786
+ // src/components/ui/info-card-row.tsx
24787
+ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
24788
+
24789
+ var CELL = "flex items-center gap-[var(--spacing-system-s)] min-w-0 p-[var(--spacing-system-xsf)] md:p-[var(--spacing-system-m)] min-h-[60px] md:min-h-[76px]";
24790
+ function StatCell({ section, className }) {
24791
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, CELL, "flex-1", className), children: [
24792
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
24793
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-h5 uppercase text-ods-text-secondary", children: section.title }),
24794
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-s)]", children: [
24795
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "min-w-0 flex-1 truncate text-h3 text-ods-text-primary", children: section.caption }),
24796
+ section.icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex size-6 shrink-0 items-center justify-center md:hidden", children: section.icon })
24797
+ ] })
24798
+ ] }),
24799
+ section.icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden size-6 shrink-0 items-center justify-center md:flex", children: section.icon })
24800
+ ] });
24801
+ }
24802
+ function InfoCardRow({ lead, stats, className }) {
24803
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24804
+ "div",
24805
+ {
24806
+ className: _chunkFIG2RKZFcjs.cn.call(void 0,
24807
+ "flex shrink-0 flex-col overflow-hidden rounded-md border border-ods-border bg-ods-card md:flex-row",
24808
+ className
24809
+ ),
24810
+ children: [
24811
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, CELL, "border-b border-ods-border md:flex-1 md:border-b-0 md:border-r"), children: [
24812
+ lead.icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex size-10 shrink-0 items-center justify-center overflow-hidden rounded-sm border border-ods-border [&>*]:size-full [&_img]:object-cover", children: lead.icon }),
24813
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
24814
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-h3 text-ods-text-primary", children: lead.title }),
24815
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-h6 text-ods-text-secondary", children: lead.caption })
24816
+ ] })
24817
+ ] }),
24818
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex md:flex-1", children: [
24819
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatCell, { section: stats[0], className: "border-r border-ods-border" }),
24820
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, StatCell, { section: stats[1] })
24821
+ ] })
24822
+ ]
24823
+ }
24824
+ );
24825
+ }
24826
+
24758
24827
  // src/components/ui/device-card.tsx
24759
24828
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
24760
24829
 
@@ -34538,43 +34607,13 @@ var PRIORITY_COLOR_CLASS = {
34538
34607
  };
34539
34608
  var MAX_VISIBLE_TAGS = 2;
34540
34609
  var MAX_VISIBLE_ASSIGNEES = 3;
34541
- function TicketCard({
34542
- ticket,
34543
- columnId,
34544
- columnColor,
34545
- href,
34546
- isOverlay = false,
34547
- dragDisabled,
34548
- approved = false,
34549
- renderAssignSlot,
34550
- onApprove,
34551
- onReject
34552
- }) {
34553
- const sortableData = React103.useMemo(
34554
- () => ({ columnId, type: "ticket" }),
34555
- [columnId]
34556
- );
34557
- const sortable = _sortable.useSortable.call(void 0, {
34558
- id: ticket.id,
34559
- data: sortableData,
34560
- disabled: dragDisabled
34561
- });
34610
+ var TICKET_CARD_SHELL = "relative flex flex-col gap-[var(--spacing-system-sf)] rounded-md border border-ods-border bg-ods-bg p-[var(--spacing-system-sf)] select-none text-left";
34611
+ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onReject }) {
34562
34612
  const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
34563
34613
  const newMessageTextColor = columnColor ? getReadableTextColor(columnColor) : void 0;
34564
- const style = isOverlay ? {} : {
34565
- transform: _utilities.CSS.Transform.toString(sortable.transform),
34566
- transition: sortable.transition
34567
- };
34568
- if (showNewMessage) style.borderColor = columnColor;
34569
34614
  const showDeviceRow = !!(_optionalChain([ticket, 'access', _669 => _669.deviceHostnames, 'optionalAccess', _670 => _670.length]) || ticket.organizationName);
34570
- const deviceText = [
34571
- _optionalChain([ticket, 'access', _671 => _671.deviceHostnames, 'optionalAccess', _672 => _672.join, 'call', _673 => _673(", ")]),
34572
- ticket.organizationName
34573
- ].filter(Boolean).join(", ");
34574
- const handleClick = (e) => {
34575
- if (sortable.isDragging) e.preventDefault();
34576
- };
34577
- const hasRightSection = !!(approved || ticket.priority || _optionalChain([ticket, 'access', _674 => _674.assignees, 'optionalAccess', _675 => _675.length]) || renderAssignSlot);
34615
+ const deviceText = [_optionalChain([ticket, 'access', _671 => _671.deviceHostnames, 'optionalAccess', _672 => _672.join, 'call', _673 => _673(", ")]), ticket.organizationName].filter(Boolean).join(", ");
34616
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _674 => _674.assignees, 'optionalAccess', _675 => _675.length]) || renderAssignSlot);
34578
34617
  const rightSection = hasRightSection ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex shrink-0 items-center gap-[var(--spacing-system-xsf)]", children: [
34579
34618
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
34580
34619
  _chunkBGD345ZVcjs.Flag02Icon,
@@ -34583,15 +34622,6 @@ function TicketCard({
34583
34622
  "aria-label": `Priority: ${ticket.priority}`
34584
34623
  }
34585
34624
  ),
34586
- approved && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
34587
- _chunkBGD345ZVcjs.CheckCircleIcon,
34588
- {
34589
- size: 20,
34590
- color: "var(--ods-attention-green-success)",
34591
- className: "shrink-0",
34592
- "aria-label": "Approved"
34593
- }
34594
- ),
34595
34625
  renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _676 => _676.assignees, 'optionalAccess', _677 => _677.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
34596
34626
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
34597
34627
  SquareAvatar,
@@ -34612,7 +34642,7 @@ function TicketCard({
34612
34642
  ] }) : null;
34613
34643
  const timestampLabel = ticket.createdAt ? formatTicketRelativeTime(ticket.createdAt) : null;
34614
34644
  const tooltipLabel = ticket.createdAt ? formatTicketFullTimestamp(ticket.createdAt) : null;
34615
- const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
34645
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
34616
34646
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
34617
34647
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-[var(--spacing-system-zero)]", title: ticket.title, children: [
34618
34648
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 truncate text-ods-text-primary", children: ticket.title }),
@@ -34637,17 +34667,55 @@ function TicketCard({
34637
34667
  style: { backgroundColor: columnColor, color: newMessageTextColor }
34638
34668
  }
34639
34669
  ),
34640
- ticket.pendingApproval && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
34641
- BoardTicketApproval,
34642
- {
34643
- pendingApproval: ticket.pendingApproval,
34644
- onApprove: onApprove ? (requestId) => onApprove(ticket.id, requestId) : void 0,
34645
- onReject: onReject ? (requestId) => onReject(ticket.id, requestId) : void 0
34646
- }
34647
- )
34670
+ ticket.pendingApproval && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BoardTicketApproval, { pendingApproval: ticket.pendingApproval, onApprove, onReject })
34648
34671
  ] });
34672
+ }
34673
+ function TicketCardView({ className, ...bodyProps }) {
34674
+ const { ticket, columnColor } = bodyProps;
34675
+ const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
34676
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
34677
+ "div",
34678
+ {
34679
+ className: _chunkFIG2RKZFcjs.cn.call(void 0, TICKET_CARD_SHELL, className),
34680
+ style: showNewMessage ? { borderColor: columnColor } : void 0,
34681
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative z-10 flex flex-col gap-[var(--spacing-system-sf)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCardBody, { ...bodyProps }) })
34682
+ }
34683
+ );
34684
+ }
34685
+ function TicketCard({
34686
+ ticket,
34687
+ columnId,
34688
+ columnColor,
34689
+ href,
34690
+ isOverlay = false,
34691
+ dragDisabled,
34692
+ renderAssignSlot,
34693
+ onApprove,
34694
+ onReject
34695
+ }) {
34696
+ const sortableData = React103.useMemo(() => ({ columnId, type: "ticket" }), [columnId]);
34697
+ const sortable = _sortable.useSortable.call(void 0, { id: ticket.id, data: sortableData, disabled: dragDisabled });
34698
+ const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
34699
+ const style = isOverlay ? {} : {
34700
+ transform: _utilities.CSS.Transform.toString(sortable.transform),
34701
+ transition: sortable.transition
34702
+ };
34703
+ if (showNewMessage) style.borderColor = columnColor;
34704
+ const handleClick = (e) => {
34705
+ if (sortable.isDragging) e.preventDefault();
34706
+ };
34707
+ const body = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
34708
+ TicketCardBody,
34709
+ {
34710
+ ticket,
34711
+ columnColor,
34712
+ renderAssignSlot,
34713
+ onApprove: onApprove ? (requestId) => onApprove(ticket.id, requestId) : void 0,
34714
+ onReject: onReject ? (requestId) => onReject(ticket.id, requestId) : void 0
34715
+ }
34716
+ );
34649
34717
  const cardClasses = _chunkFIG2RKZFcjs.cn.call(void 0,
34650
- "relative flex flex-col gap-[var(--spacing-system-sf)] rounded-md border border-ods-border bg-ods-bg p-[var(--spacing-system-sf)] select-none text-left",
34718
+ TICKET_CARD_SHELL,
34651
34719
  !dragDisabled && "cursor-pointer",
34652
34720
  sortable.isDragging && !isOverlay && "opacity-40",
34653
34721
  isOverlay && "rotate-1 shadow-card-hover"
@@ -35791,7 +35859,7 @@ function SlidingSidebar({ config }) {
35791
35859
  const [mounted, setMounted] = _react.useState.call(void 0, false);
35792
35860
  const headerHeight = _chunkN2TJ3HAMcjs.useHeaderHeight.call(void 0, );
35793
35861
  const asideRef = _react.useRef.call(void 0, null);
35794
- const prefersReducedMotion = _framermotion.useReducedMotion.call(void 0, );
35862
+ const prefersReducedMotion2 = _framermotion.useReducedMotion.call(void 0, );
35795
35863
  _overlays.usePreventScroll.call(void 0, { isDisabled: !config.isOpen });
35796
35864
  _chunkN2TJ3HAMcjs.useFocusTrap.call(void 0, asideRef, config.isOpen, { onEscape: config.onClose, contain: false });
35797
35865
  _react.useEffect.call(void 0, () => {
@@ -35934,7 +36002,7 @@ function SlidingSidebar({ config }) {
35934
36002
  animate: {
35935
36003
  x: config.isOpen ? 0 : config.position === "right" ? "100%" : "-100%"
35936
36004
  },
35937
- transition: prefersReducedMotion ? { duration: 0 } : {
36005
+ transition: prefersReducedMotion2 ? { duration: 0 } : {
35938
36006
  type: "spring",
35939
36007
  damping: 25,
35940
36008
  stiffness: 300,
@@ -47018,6 +47086,41 @@ function useChunkCatchup({
47018
47086
  };
47019
47087
  }
47020
47088
 
47089
+ // src/components/chat/hooks/use-scripted-stream.ts
47090
+
47091
+ var EMPTY_FRAME = { messages: [], phase: "idle", typing: false, delayMs: 0 };
47092
+ function prefersReducedMotion() {
47093
+ return typeof window !== "undefined" && _optionalChain([window, 'access', _1109 => _1109.matchMedia, 'optionalCall', _1110 => _1110("(prefers-reduced-motion: reduce)"), 'access', _1111 => _1111.matches]) === true;
47094
+ }
47095
+ function useScriptedStream(frames, resetKey, enabled = true) {
47096
+ const [index, setIndex] = _react.useState.call(void 0, 0);
47097
+ const [reducedMotion, setReducedMotion] = _react.useState.call(void 0, false);
47098
+ const [prevKey, setPrevKey] = _react.useState.call(void 0, resetKey);
47099
+ if (resetKey !== prevKey) {
47100
+ setPrevKey(resetKey);
47101
+ setIndex(0);
47102
+ }
47103
+ _react.useEffect.call(void 0, () => {
47104
+ setReducedMotion(prefersReducedMotion());
47105
+ const mq = _optionalChain([window, 'access', _1112 => _1112.matchMedia, 'optionalCall', _1113 => _1113("(prefers-reduced-motion: reduce)")]);
47106
+ if (!mq) return;
47107
+ const onChange = () => setReducedMotion(mq.matches);
47108
+ mq.addEventListener("change", onChange);
47109
+ return () => mq.removeEventListener("change", onChange);
47110
+ }, []);
47111
+ const playing = enabled && !reducedMotion && frames.length > 0;
47112
+ const lastIndex = Math.max(0, frames.length - 1);
47113
+ _react.useEffect.call(void 0, () => {
47114
+ if (!playing || index >= lastIndex) return;
47115
+ const current = _nullishCoalesce(frames[Math.min(index, lastIndex)], () => ( EMPTY_FRAME));
47116
+ const t = setTimeout(() => setIndex((i) => Math.min(i + 1, lastIndex)), current.delayMs);
47117
+ return () => clearTimeout(t);
47118
+ }, [index, frames, playing, lastIndex]);
47119
+ if (frames.length === 0) return EMPTY_FRAME;
47120
+ if (!playing) return frames[lastIndex];
47121
+ return _nullishCoalesce(frames[Math.min(index, lastIndex)], () => ( EMPTY_FRAME));
47122
+ }
47123
+
47021
47124
  // src/components/chat/hooks/use-jetstream-dialog-subscription.ts
47022
47125
 
47023
47126
  var DEFAULT_INACTIVE_THRESHOLD_MS = 5 * 6e4;
@@ -47128,7 +47231,7 @@ function useJetStreamDialogSubscription({
47128
47231
  const lifecycle = _chunkPXXS27EEcjs.startConnectionLifecycle.call(void 0, {
47129
47232
  conn: sharedConn,
47130
47233
  wsUrl,
47131
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _1109 => _1109.current, 'optionalCall', _1110 => _1110()]),
47234
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _1114 => _1114.current, 'optionalCall', _1115 => _1115()]),
47132
47235
  backoff: reconnectionBackoffRef.current,
47133
47236
  getFreshUrl: () => getNatsWsUrlRef.current(),
47134
47237
  // JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
@@ -47143,7 +47246,7 @@ function useJetStreamDialogSubscription({
47143
47246
  setReconnectionCount((c) => c + 1);
47144
47247
  }
47145
47248
  hadConnectionBeforeRef.current = true;
47146
- _optionalChain([onConnectRef, 'access', _1111 => _1111.current, 'optionalCall', _1112 => _1112()]);
47249
+ _optionalChain([onConnectRef, 'access', _1116 => _1116.current, 'optionalCall', _1117 => _1117()]);
47147
47250
  }
47148
47251
  if (status === "error") {
47149
47252
  console.warn("[JetStream] NATS protocol error:", evt.data);
@@ -47153,7 +47256,7 @@ function useJetStreamDialogSubscription({
47153
47256
  setIsConnected(false);
47154
47257
  setIsSubscribed(false);
47155
47258
  tearDownSubscription();
47156
- _optionalChain([onDisconnectRef, 'access', _1113 => _1113.current, 'optionalCall', _1114 => _1114()]);
47259
+ _optionalChain([onDisconnectRef, 'access', _1118 => _1118.current, 'optionalCall', _1119 => _1119()]);
47157
47260
  }
47158
47261
  }
47159
47262
  });
@@ -47232,7 +47335,7 @@ function useJetStreamDialogSubscription({
47232
47335
  }
47233
47336
  subscriptionRef.current = handle;
47234
47337
  setIsSubscribed(true);
47235
- _optionalChain([onSubscribedRef, 'access', _1115 => _1115.current, 'optionalCall', _1116 => _1116()]);
47338
+ _optionalChain([onSubscribedRef, 'access', _1120 => _1120.current, 'optionalCall', _1121 => _1121()]);
47236
47339
  } catch (e52) {
47237
47340
  if (!cancelled) {
47238
47341
  setIsSubscribed(false);
@@ -47345,20 +47448,20 @@ function useNatsDialogSubscription({
47345
47448
  const tearDownSubscriptions = () => {
47346
47449
  subscriptionRefs.current.forEach((sub) => {
47347
47450
  try {
47348
- _optionalChain([sub, 'optionalAccess', _1117 => _1117.unsubscribe, 'call', _1118 => _1118()]);
47451
+ _optionalChain([sub, 'optionalAccess', _1122 => _1122.unsubscribe, 'call', _1123 => _1123()]);
47349
47452
  } catch (e54) {
47350
47453
  }
47351
47454
  });
47352
47455
  subscriptionRefs.current.clear();
47353
47456
  lastSubscribedDialogIdRef.current = null;
47354
- _optionalChain([abortControllerRef, 'access', _1119 => _1119.current, 'optionalAccess', _1120 => _1120.abort, 'call', _1121 => _1121()]);
47457
+ _optionalChain([abortControllerRef, 'access', _1124 => _1124.current, 'optionalAccess', _1125 => _1125.abort, 'call', _1126 => _1126()]);
47355
47458
  abortControllerRef.current = null;
47356
47459
  };
47357
47460
  const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
47358
47461
  const lifecycle = _chunkPXXS27EEcjs.startConnectionLifecycle.call(void 0, {
47359
47462
  conn: sharedConn,
47360
47463
  wsUrl,
47361
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _1122 => _1122.current, 'optionalCall', _1123 => _1123()]),
47464
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _1127 => _1127.current, 'optionalCall', _1128 => _1128()]),
47362
47465
  backoff: reconnectionBackoffRef.current,
47363
47466
  getFreshUrl: () => getNatsWsUrlRef.current(),
47364
47467
  shouldRetryOn: isDisconnectStatus,
@@ -47369,7 +47472,7 @@ function useNatsDialogSubscription({
47369
47472
  setReconnectionCount((c) => c + 1);
47370
47473
  }
47371
47474
  hadConnectionBeforeRef.current = true;
47372
- _optionalChain([onConnectRef, 'access', _1124 => _1124.current, 'optionalCall', _1125 => _1125()]);
47475
+ _optionalChain([onConnectRef, 'access', _1129 => _1129.current, 'optionalCall', _1130 => _1130()]);
47373
47476
  }
47374
47477
  if (status === "error") {
47375
47478
  console.warn("[NATS] protocol error:", evt.data);
@@ -47379,7 +47482,7 @@ function useNatsDialogSubscription({
47379
47482
  setIsConnected(false);
47380
47483
  setIsSubscribed(false);
47381
47484
  tearDownSubscriptions();
47382
- _optionalChain([onDisconnectRef, 'access', _1126 => _1126.current, 'optionalCall', _1127 => _1127()]);
47485
+ _optionalChain([onDisconnectRef, 'access', _1131 => _1131.current, 'optionalCall', _1132 => _1132()]);
47383
47486
  }
47384
47487
  }
47385
47488
  });
@@ -47410,13 +47513,13 @@ function useNatsDialogSubscription({
47410
47513
  setIsSubscribed(false);
47411
47514
  subscriptionRefs.current.forEach((sub) => {
47412
47515
  try {
47413
- _optionalChain([sub, 'optionalAccess', _1128 => _1128.unsubscribe, 'call', _1129 => _1129()]);
47516
+ _optionalChain([sub, 'optionalAccess', _1133 => _1133.unsubscribe, 'call', _1134 => _1134()]);
47414
47517
  } catch (e55) {
47415
47518
  }
47416
47519
  });
47417
47520
  subscriptionRefs.current.clear();
47418
47521
  lastSubscribedDialogIdRef.current = null;
47419
- _optionalChain([abortControllerRef, 'access', _1130 => _1130.current, 'optionalAccess', _1131 => _1131.abort, 'call', _1132 => _1132()]);
47522
+ _optionalChain([abortControllerRef, 'access', _1135 => _1135.current, 'optionalAccess', _1136 => _1136.abort, 'call', _1137 => _1137()]);
47420
47523
  abortControllerRef.current = null;
47421
47524
  }
47422
47525
  return;
@@ -47428,12 +47531,12 @@ function useNatsDialogSubscription({
47428
47531
  if (subscriptionRefs.current.size > 0) {
47429
47532
  subscriptionRefs.current.forEach((sub) => {
47430
47533
  try {
47431
- _optionalChain([sub, 'optionalAccess', _1133 => _1133.unsubscribe, 'call', _1134 => _1134()]);
47534
+ _optionalChain([sub, 'optionalAccess', _1138 => _1138.unsubscribe, 'call', _1139 => _1139()]);
47432
47535
  } catch (e56) {
47433
47536
  }
47434
47537
  });
47435
47538
  subscriptionRefs.current.clear();
47436
- _optionalChain([abortControllerRef, 'access', _1135 => _1135.current, 'optionalAccess', _1136 => _1136.abort, 'call', _1137 => _1137()]);
47539
+ _optionalChain([abortControllerRef, 'access', _1140 => _1140.current, 'optionalAccess', _1141 => _1141.abort, 'call', _1142 => _1142()]);
47437
47540
  }
47438
47541
  abortControllerRef.current = new AbortController();
47439
47542
  const abort = abortControllerRef.current;
@@ -47465,7 +47568,7 @@ function useNatsDialogSubscription({
47465
47568
  });
47466
47569
  lastSubscribedDialogIdRef.current = dialogId;
47467
47570
  setIsSubscribed(true);
47468
- _optionalChain([onSubscribedRef, 'access', _1138 => _1138.current, 'optionalCall', _1139 => _1139()]);
47571
+ _optionalChain([onSubscribedRef, 'access', _1143 => _1143.current, 'optionalCall', _1144 => _1144()]);
47469
47572
  };
47470
47573
  if (isConnectedRef.current) {
47471
47574
  createSubscriptions();
@@ -47475,7 +47578,7 @@ function useNatsDialogSubscription({
47475
47578
  abort.abort();
47476
47579
  subscriptionRefs.current.forEach((sub) => {
47477
47580
  try {
47478
- _optionalChain([sub, 'optionalAccess', _1140 => _1140.unsubscribe, 'call', _1141 => _1141()]);
47581
+ _optionalChain([sub, 'optionalAccess', _1145 => _1145.unsubscribe, 'call', _1146 => _1146()]);
47479
47582
  } catch (e58) {
47480
47583
  }
47481
47584
  });
@@ -47516,7 +47619,7 @@ function useNatsDialogSubscription({
47516
47619
  });
47517
47620
  lastSubscribedDialogIdRef.current = dialogId2;
47518
47621
  setIsSubscribed(true);
47519
- _optionalChain([onSubscribedRef, 'access', _1142 => _1142.current, 'optionalCall', _1143 => _1143()]);
47622
+ _optionalChain([onSubscribedRef, 'access', _1147 => _1147.current, 'optionalCall', _1148 => _1148()]);
47520
47623
  } else if (subscriptionRefs.current.size > 0) {
47521
47624
  setIsSubscribed(true);
47522
47625
  }
@@ -47524,10 +47627,10 @@ function useNatsDialogSubscription({
47524
47627
  return { isConnected, isSubscribed, reconnectionCount };
47525
47628
  }
47526
47629
  function buildNatsWsUrl(apiBaseUrl, options) {
47527
- const path = _optionalChain([options, 'optionalAccess', _1144 => _1144.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
47630
+ const path = _optionalChain([options, 'optionalAccess', _1149 => _1149.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
47528
47631
  const u = new URL(path, apiBaseUrl);
47529
47632
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
47530
- if (_optionalChain([options, 'optionalAccess', _1145 => _1145.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _1146 => _1146.token])) {
47633
+ if (_optionalChain([options, 'optionalAccess', _1150 => _1150.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _1151 => _1151.token])) {
47531
47634
  u.searchParams.set("authorization", options.token);
47532
47635
  }
47533
47636
  return u.toString();
@@ -47663,7 +47766,7 @@ function parseChunkToAction(chunk) {
47663
47766
  // is REQUIRED on `ChatContextItem`, so fall back to the id (same as the
47664
47767
  // historical path in `process-historical-messages.ts`) — keeps both
47665
47768
  // message sources producing an identical shape.
47666
- contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _1147 => _1147.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _1148 => _1148.id]) === "string").map((it) => ({ type: it.type, id: it.id, label: it.id })) : void 0
47769
+ contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _1152 => _1152.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _1153 => _1153.id]) === "string").map((it) => ({ type: it.type, id: it.id, label: it.id })) : void 0
47667
47770
  };
47668
47771
  case MESSAGE_TYPE.TOKEN_USAGE:
47669
47772
  return {
@@ -47855,8 +47958,8 @@ var MessageSegmentAccumulator = class {
47855
47958
  type: "tool_execution",
47856
47959
  data: {
47857
47960
  ...toolData,
47858
- toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _1149 => _1149.data, 'access', _1150 => _1150.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _1151 => _1151.toolTitle]))),
47859
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _1152 => _1152.parameters])
47961
+ toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _1154 => _1154.data, 'access', _1155 => _1155.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _1156 => _1156.toolTitle]))),
47962
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _1157 => _1157.parameters])
47860
47963
  }
47861
47964
  };
47862
47965
  if (existingIndex !== -1) {
@@ -47880,8 +47983,8 @@ var MessageSegmentAccumulator = class {
47880
47983
  if (seg.type !== "approval_batch") return seg;
47881
47984
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
47882
47985
  if (!hasCall) return seg;
47883
- const prev = _optionalChain([seg, 'access', _1153 => _1153.data, 'access', _1154 => _1154.executions, 'optionalAccess', _1155 => _1155[execId]]);
47884
- const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _1156 => _1156.result]), success: _optionalChain([prev, 'optionalAccess', _1157 => _1157.success]) };
47986
+ const prev = _optionalChain([seg, 'access', _1158 => _1158.data, 'access', _1159 => _1159.executions, 'optionalAccess', _1160 => _1160[execId]]);
47987
+ const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _1161 => _1161.result]), success: _optionalChain([prev, 'optionalAccess', _1162 => _1162.success]) };
47885
47988
  matched = true;
47886
47989
  return {
47887
47990
  ...seg,
@@ -48003,10 +48106,10 @@ var MessageSegmentAccumulator = class {
48003
48106
  const segment = {
48004
48107
  type: "approval_request",
48005
48108
  data: {
48006
- command: _optionalChain([pendingApproval, 'optionalAccess', _1158 => _1158.command]) || "",
48007
- explanation: _optionalChain([pendingApproval, 'optionalAccess', _1159 => _1159.explanation]),
48109
+ command: _optionalChain([pendingApproval, 'optionalAccess', _1163 => _1163.command]) || "",
48110
+ explanation: _optionalChain([pendingApproval, 'optionalAccess', _1164 => _1164.explanation]),
48008
48111
  requestId,
48009
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _1160 => _1160.approvalType]) || approvalType
48112
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _1165 => _1165.approvalType]) || approvalType
48010
48113
  },
48011
48114
  status,
48012
48115
  onApprove: this.callbacks.onApprove,
@@ -48198,7 +48301,7 @@ function useRealtimeChunkProcessor(options) {
48198
48301
  if (initialState.escalatedApprovals) {
48199
48302
  pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
48200
48303
  initialState.escalatedApprovals.forEach((data, requestId) => {
48201
- _optionalChain([callbacks, 'access', _1161 => _1161.onEscalatedApproval, 'optionalCall', _1162 => _1162(requestId, data)]);
48304
+ _optionalChain([callbacks, 'access', _1166 => _1166.onEscalatedApproval, 'optionalCall', _1167 => _1167(requestId, data)]);
48202
48305
  });
48203
48306
  }
48204
48307
  hasEverStreamedRef.current = true;
@@ -48220,13 +48323,13 @@ function useRealtimeChunkProcessor(options) {
48220
48323
  if (!action) return;
48221
48324
  const accumulator = accumulatorRef.current;
48222
48325
  const streamSeq = chunk && typeof chunk === "object" && typeof chunk.streamSeq === "number" ? chunk.streamSeq : void 0;
48223
- const emitSegments = (s, meta) => _optionalChain([callbacks, 'access', _1163 => _1163.onSegmentsUpdate, 'optionalCall', _1164 => _1164(s, streamSeq != null ? { ...meta, streamSeq } : meta)]);
48326
+ const emitSegments = (s, meta) => _optionalChain([callbacks, 'access', _1168 => _1168.onSegmentsUpdate, 'optionalCall', _1169 => _1169(s, streamSeq != null ? { ...meta, streamSeq } : meta)]);
48224
48327
  if (action.action === "direct_message") sawDirectMessageRef.current = true;
48225
48328
  if ((directModeFlagRef.current || sawDirectMessageRef.current) && !DIRECT_MODE_ALLOWED.has(action.action)) {
48226
48329
  if (isInStreamRef.current || !directTeardownFiredRef.current) {
48227
48330
  isInStreamRef.current = false;
48228
48331
  directTeardownFiredRef.current = true;
48229
- _optionalChain([callbacks, 'access', _1165 => _1165.onStreamEnd, 'optionalCall', _1166 => _1166()]);
48332
+ _optionalChain([callbacks, 'access', _1170 => _1170.onStreamEnd, 'optionalCall', _1171 => _1171()]);
48230
48333
  accumulator.resetSegments();
48231
48334
  }
48232
48335
  return;
@@ -48235,16 +48338,16 @@ function useRealtimeChunkProcessor(options) {
48235
48338
  case "message_start":
48236
48339
  isInStreamRef.current = true;
48237
48340
  hasEverStreamedRef.current = true;
48238
- _optionalChain([callbacks, 'access', _1167 => _1167.onStreamStart, 'optionalCall', _1168 => _1168()]);
48341
+ _optionalChain([callbacks, 'access', _1172 => _1172.onStreamStart, 'optionalCall', _1173 => _1173()]);
48239
48342
  accumulator.resetSegments();
48240
48343
  break;
48241
48344
  case "message_end":
48242
48345
  isInStreamRef.current = false;
48243
- _optionalChain([callbacks, 'access', _1169 => _1169.onStreamEnd, 'optionalCall', _1170 => _1170()]);
48346
+ _optionalChain([callbacks, 'access', _1174 => _1174.onStreamEnd, 'optionalCall', _1175 => _1175()]);
48244
48347
  accumulator.resetSegments();
48245
48348
  break;
48246
48349
  case "metadata":
48247
- _optionalChain([callbacks, 'access', _1171 => _1171.onMetadata, 'optionalCall', _1172 => _1172(action)]);
48350
+ _optionalChain([callbacks, 'access', _1176 => _1176.onMetadata, 'optionalCall', _1177 => _1177(action)]);
48248
48351
  break;
48249
48352
  case "text": {
48250
48353
  const segments = accumulator.appendText(action.text);
@@ -48266,7 +48369,7 @@ function useRealtimeChunkProcessor(options) {
48266
48369
  }
48267
48370
  case "tool_execution": {
48268
48371
  if (action.segment.data.type === "EXECUTING_TOOL") {
48269
- _optionalChain([callbacks, 'access', _1173 => _1173.onAgentBusy, 'optionalCall', _1174 => _1174()]);
48372
+ _optionalChain([callbacks, 'access', _1178 => _1178.onAgentBusy, 'optionalCall', _1179 => _1179()]);
48270
48373
  }
48271
48374
  if (!isInStreamRef.current && callbacks.onToolExecuted) {
48272
48375
  callbacks.onToolExecuted(action.segment);
@@ -48290,7 +48393,7 @@ function useRealtimeChunkProcessor(options) {
48290
48393
  emitSegments(segments);
48291
48394
  } else {
48292
48395
  pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
48293
- _optionalChain([callbacks, 'access', _1175 => _1175.onEscalatedApproval, 'optionalCall', _1176 => _1176(requestId, { command, explanation, approvalType })]);
48396
+ _optionalChain([callbacks, 'access', _1180 => _1180.onEscalatedApproval, 'optionalCall', _1181 => _1181(requestId, { command, explanation, approvalType })]);
48294
48397
  }
48295
48398
  break;
48296
48399
  }
@@ -48302,13 +48405,13 @@ function useRealtimeChunkProcessor(options) {
48302
48405
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
48303
48406
  pendingEscalatedRef.current.set(requestId, {
48304
48407
  command: summary,
48305
- explanation: _optionalChain([required, 'optionalAccess', _1177 => _1177.toolExplanation]),
48408
+ explanation: _optionalChain([required, 'optionalAccess', _1182 => _1182.toolExplanation]),
48306
48409
  approvalType,
48307
48410
  toolCalls
48308
48411
  });
48309
- _optionalChain([callbacks, 'access', _1178 => _1178.onEscalatedApproval, 'optionalCall', _1179 => _1179(requestId, {
48412
+ _optionalChain([callbacks, 'access', _1183 => _1183.onEscalatedApproval, 'optionalCall', _1184 => _1184(requestId, {
48310
48413
  command: summary,
48311
- explanation: _optionalChain([required, 'optionalAccess', _1180 => _1180.toolExplanation]),
48414
+ explanation: _optionalChain([required, 'optionalAccess', _1185 => _1185.toolExplanation]),
48312
48415
  approvalType
48313
48416
  })]);
48314
48417
  break;
@@ -48334,12 +48437,12 @@ function useRealtimeChunkProcessor(options) {
48334
48437
  }
48335
48438
  case "approval_result": {
48336
48439
  const { requestId, approved, approvalType, resolvedByName } = action;
48337
- if (approved) _optionalChain([callbacks, 'access', _1181 => _1181.onAgentBusy, 'optionalCall', _1182 => _1182()]);
48440
+ if (approved) _optionalChain([callbacks, 'access', _1186 => _1186.onAgentBusy, 'optionalCall', _1187 => _1187()]);
48338
48441
  const escalatedData = pendingEscalatedRef.current.get(requestId);
48339
48442
  const status = approved ? "approved" : "rejected";
48340
48443
  if (escalatedData) {
48341
48444
  pendingEscalatedRef.current.delete(requestId);
48342
- _optionalChain([callbacks, 'access', _1183 => _1183.onEscalatedApprovalResult, 'optionalCall', _1184 => _1184(requestId, approved, {
48445
+ _optionalChain([callbacks, 'access', _1188 => _1188.onEscalatedApprovalResult, 'optionalCall', _1189 => _1189(requestId, approved, {
48343
48446
  command: escalatedData.command,
48344
48447
  explanation: escalatedData.explanation,
48345
48448
  approvalType: escalatedData.approvalType
@@ -48385,29 +48488,29 @@ function useRealtimeChunkProcessor(options) {
48385
48488
  emitSegments(accumulator.getSegments());
48386
48489
  }
48387
48490
  }
48388
- _optionalChain([callbacks, 'access', _1185 => _1185.onApprovalResolved, 'optionalCall', _1186 => _1186(requestId, status, approvalType, resolvedByName)]);
48491
+ _optionalChain([callbacks, 'access', _1190 => _1190.onApprovalResolved, 'optionalCall', _1191 => _1191(requestId, status, approvalType, resolvedByName)]);
48389
48492
  break;
48390
48493
  }
48391
48494
  case "error": {
48392
48495
  let message2;
48393
- if ("details" in action && _optionalChain([action, 'optionalAccess', _1187 => _1187.details])) {
48496
+ if ("details" in action && _optionalChain([action, 'optionalAccess', _1192 => _1192.details])) {
48394
48497
  try {
48395
- message2 = _optionalChain([JSON, 'access', _1188 => _1188.parse, 'call', _1189 => _1189(action.details), 'optionalAccess', _1190 => _1190.error, 'optionalAccess', _1191 => _1191.message]);
48498
+ message2 = _optionalChain([JSON, 'access', _1193 => _1193.parse, 'call', _1194 => _1194(action.details), 'optionalAccess', _1195 => _1195.error, 'optionalAccess', _1196 => _1196.message]);
48396
48499
  } catch (e60) {
48397
48500
  message2 = action.details;
48398
48501
  }
48399
48502
  }
48400
48503
  const segments = accumulator.addError(action.error, message2);
48401
48504
  emitSegments(segments);
48402
- _optionalChain([callbacks, 'access', _1192 => _1192.onError, 'optionalCall', _1193 => _1193(action.error, message2)]);
48505
+ _optionalChain([callbacks, 'access', _1197 => _1197.onError, 'optionalCall', _1198 => _1198(action.error, message2)]);
48403
48506
  break;
48404
48507
  }
48405
48508
  case "system": {
48406
- _optionalChain([callbacks, 'access', _1194 => _1194.onSystemMessage, 'optionalCall', _1195 => _1195(action.text, { streamSeq })]);
48509
+ _optionalChain([callbacks, 'access', _1199 => _1199.onSystemMessage, 'optionalCall', _1200 => _1200(action.text, { streamSeq })]);
48407
48510
  break;
48408
48511
  }
48409
48512
  case "direct_message": {
48410
- _optionalChain([callbacks, 'access', _1196 => _1196.onDirectMessage, 'optionalCall', _1197 => _1197(action.text, {
48513
+ _optionalChain([callbacks, 'access', _1201 => _1201.onDirectMessage, 'optionalCall', _1202 => _1202(action.text, {
48411
48514
  ownerType: action.ownerType,
48412
48515
  displayName: action.displayName,
48413
48516
  userId: action.userId,
@@ -48416,7 +48519,7 @@ function useRealtimeChunkProcessor(options) {
48416
48519
  break;
48417
48520
  }
48418
48521
  case "message_request":
48419
- _optionalChain([callbacks, 'access', _1198 => _1198.onUserMessage, 'optionalCall', _1199 => _1199(action.text, {
48522
+ _optionalChain([callbacks, 'access', _1203 => _1203.onUserMessage, 'optionalCall', _1204 => _1204(action.text, {
48420
48523
  ownerType: action.ownerType,
48421
48524
  displayName: action.displayName,
48422
48525
  userId: action.userId,
@@ -48425,7 +48528,7 @@ function useRealtimeChunkProcessor(options) {
48425
48528
  })]);
48426
48529
  break;
48427
48530
  case "token_usage":
48428
- _optionalChain([callbacks, 'access', _1200 => _1200.onTokenUsage, 'optionalCall', _1201 => _1201(action.data)]);
48531
+ _optionalChain([callbacks, 'access', _1205 => _1205.onTokenUsage, 'optionalCall', _1206 => _1206(action.data)]);
48429
48532
  break;
48430
48533
  case "context_compaction_start": {
48431
48534
  const standalone = !isInStreamRef.current;
@@ -48440,7 +48543,7 @@ function useRealtimeChunkProcessor(options) {
48440
48543
  break;
48441
48544
  }
48442
48545
  case "dialog_closed":
48443
- _optionalChain([callbacks, 'access', _1202 => _1202.onDialogClosed, 'optionalCall', _1203 => _1203()]);
48546
+ _optionalChain([callbacks, 'access', _1207 => _1207.onDialogClosed, 'optionalCall', _1208 => _1208()]);
48444
48547
  break;
48445
48548
  default:
48446
48549
  break;
@@ -48488,7 +48591,7 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
48488
48591
  const data = await res.json();
48489
48592
  return _nullishCoalesce(data.commands, () => ( []));
48490
48593
  } catch (err) {
48491
- if (_optionalChain([err, 'optionalAccess', _1204 => _1204.name]) === "AbortError") throw err;
48594
+ if (_optionalChain([err, 'optionalAccess', _1209 => _1209.name]) === "AbortError") throw err;
48492
48595
  console.warn("[chat] slash-commands fetch failed, showing none:", err);
48493
48596
  return [];
48494
48597
  }
@@ -48509,7 +48612,7 @@ function useSlashCommands(prefix, commandsUrl) {
48509
48612
  const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
48510
48613
  if (!cancelled) setCommands(next);
48511
48614
  } catch (err) {
48512
- if (!cancelled && _optionalChain([err, 'optionalAccess', _1205 => _1205.name]) !== "AbortError") {
48615
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _1210 => _1210.name]) !== "AbortError") {
48513
48616
  console.warn("[use-slash-commands] fetch failed:", err);
48514
48617
  }
48515
48618
  } finally {
@@ -48528,7 +48631,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
48528
48631
  const query = _reactquery.useQuery.call(void 0, {
48529
48632
  queryKey: ["chat-slash-commands", commandsUrl],
48530
48633
  queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
48531
- enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1206 => _1206.enabled]), () => ( true)),
48634
+ enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1211 => _1211.enabled]), () => ( true)),
48532
48635
  staleTime: Infinity,
48533
48636
  gcTime: Infinity,
48534
48637
  // The commands registry is non-critical chrome — a failure degrades to an
@@ -48567,21 +48670,21 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
48567
48670
  }
48568
48671
  const data = await res.json();
48569
48672
  return {
48570
- name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1207 => _1207.name]), () => ( null)),
48571
- icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1208 => _1208.icon]), () => ( null)),
48572
- greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1209 => _1209.greeting]), () => ( null)),
48573
- enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1210 => _1210.enabledRagTableIds]), () => ( [])),
48574
- quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1211 => _1211.quickActions]), () => ( [])),
48575
- suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1212 => _1212.suggestedQueries]), () => ( []))
48673
+ name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1212 => _1212.name]), () => ( null)),
48674
+ icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1213 => _1213.icon]), () => ( null)),
48675
+ greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1214 => _1214.greeting]), () => ( null)),
48676
+ enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1215 => _1215.enabledRagTableIds]), () => ( [])),
48677
+ quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1216 => _1216.quickActions]), () => ( [])),
48678
+ suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1217 => _1217.suggestedQueries]), () => ( []))
48576
48679
  };
48577
48680
  } catch (err) {
48578
- if (_optionalChain([err, 'optionalAccess', _1213 => _1213.name]) === "AbortError") throw err;
48681
+ if (_optionalChain([err, 'optionalAccess', _1218 => _1218.name]) === "AbortError") throw err;
48579
48682
  console.warn("[chat] empty-state config fetch failed, using neutral defaults:", err);
48580
48683
  return EMPTY_STATE_FALLBACK;
48581
48684
  }
48582
48685
  }
48583
48686
  function useEmptyStateConfig(emptyStateUrl, options) {
48584
- const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1214 => _1214.enabled]), () => ( true))) && !!emptyStateUrl;
48687
+ const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1219 => _1219.enabled]), () => ( true))) && !!emptyStateUrl;
48585
48688
  const query = _reactquery.useQuery.call(void 0, {
48586
48689
  queryKey: ["chat-empty-state", emptyStateUrl],
48587
48690
  queryFn: ({ signal }) => fetchEmptyStateConfig(signal, emptyStateUrl),
@@ -48610,7 +48713,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
48610
48713
  var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
48611
48714
  function uploadWithProgress(url, file, token, onProgress, signal) {
48612
48715
  return new Promise((resolve, reject) => {
48613
- if (_optionalChain([signal, 'optionalAccess', _1215 => _1215.aborted])) {
48716
+ if (_optionalChain([signal, 'optionalAccess', _1220 => _1220.aborted])) {
48614
48717
  reject(new Error("Upload cancelled"));
48615
48718
  return;
48616
48719
  }
@@ -48624,7 +48727,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
48624
48727
  xhr.removeEventListener("error", handleError);
48625
48728
  xhr.removeEventListener("abort", handleAbort);
48626
48729
  xhr.removeEventListener("timeout", handleTimeout);
48627
- _optionalChain([signal, 'optionalAccess', _1216 => _1216.removeEventListener, 'call', _1217 => _1217("abort", handleSignalAbort)]);
48730
+ _optionalChain([signal, 'optionalAccess', _1221 => _1221.removeEventListener, 'call', _1222 => _1222("abort", handleSignalAbort)]);
48628
48731
  if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
48629
48732
  };
48630
48733
  const handleProgress = (event) => {
@@ -48660,7 +48763,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
48660
48763
  const handleSignalAbort = () => {
48661
48764
  xhr.abort();
48662
48765
  };
48663
- _optionalChain([signal, 'optionalAccess', _1218 => _1218.addEventListener, 'call', _1219 => _1219("abort", handleSignalAbort, { once: true })]);
48766
+ _optionalChain([signal, 'optionalAccess', _1223 => _1223.addEventListener, 'call', _1224 => _1224("abort", handleSignalAbort, { once: true })]);
48664
48767
  xhr.upload.addEventListener("progress", handleProgress);
48665
48768
  xhr.addEventListener("load", handleLoad);
48666
48769
  xhr.addEventListener("error", handleError);
@@ -48704,12 +48807,12 @@ function useChatAttachments() {
48704
48807
  try {
48705
48808
  sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
48706
48809
  } catch (err) {
48707
- if (_optionalChain([ctrl, 'optionalAccess', _1220 => _1220.signal, 'access', _1221 => _1221.aborted])) return;
48810
+ if (_optionalChain([ctrl, 'optionalAccess', _1225 => _1225.signal, 'access', _1226 => _1226.aborted])) return;
48708
48811
  throw new Error(
48709
48812
  `Could not read file content: ${err instanceof Error ? err.message : String(err)}`
48710
48813
  );
48711
48814
  }
48712
- if (_optionalChain([ctrl, 'optionalAccess', _1222 => _1222.signal, 'access', _1223 => _1223.aborted])) return;
48815
+ if (_optionalChain([ctrl, 'optionalAccess', _1227 => _1227.signal, 'access', _1228 => _1228.aborted])) return;
48713
48816
  if (!sniffed) {
48714
48817
  throw new Error("Unrecognized file format");
48715
48818
  }
@@ -48723,7 +48826,7 @@ function useChatAttachments() {
48723
48826
  const urlResp = await _chunkN2TJ3HAMcjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
48724
48827
  method: "POST",
48725
48828
  headers: { "Content-Type": "application/json" },
48726
- signal: _optionalChain([ctrl, 'optionalAccess', _1224 => _1224.signal]),
48829
+ signal: _optionalChain([ctrl, 'optionalAccess', _1229 => _1229.signal]),
48727
48830
  body: JSON.stringify({
48728
48831
  fileName: att.file.name,
48729
48832
  // Pass the SNIFFED MIME (not `file.type`, which can be a
@@ -48749,9 +48852,9 @@ function useChatAttachments() {
48749
48852
  (pct) => {
48750
48853
  updateOne(att.id, { progress: pct });
48751
48854
  },
48752
- _optionalChain([ctrl, 'optionalAccess', _1225 => _1225.signal])
48855
+ _optionalChain([ctrl, 'optionalAccess', _1230 => _1230.signal])
48753
48856
  );
48754
- if (_optionalChain([ctrl, 'optionalAccess', _1226 => _1226.signal, 'access', _1227 => _1227.aborted])) return;
48857
+ if (_optionalChain([ctrl, 'optionalAccess', _1231 => _1231.signal, 'access', _1232 => _1232.aborted])) return;
48755
48858
  updateOne(att.id, {
48756
48859
  status: "ready",
48757
48860
  progress: 100,
@@ -48759,7 +48862,7 @@ function useChatAttachments() {
48759
48862
  viewToken: mintData.viewToken
48760
48863
  });
48761
48864
  } catch (err) {
48762
- if (_optionalChain([ctrl, 'optionalAccess', _1228 => _1228.signal, 'access', _1229 => _1229.aborted])) return;
48865
+ if (_optionalChain([ctrl, 'optionalAccess', _1233 => _1233.signal, 'access', _1234 => _1234.aborted])) return;
48763
48866
  const message2 = err instanceof Error ? err.message : String(err);
48764
48867
  updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
48765
48868
  } finally {
@@ -48910,7 +49013,7 @@ var ANON_DEFAULTS = {
48910
49013
  function useResolveChatIdentity(enabled) {
48911
49014
  const runtime = _chunk2B6773QMcjs.useRequiredChatRuntime.call(void 0, );
48912
49015
  const url = runtime.endpoints.identityUrl;
48913
- const proxyEmail = _nullishCoalesce(_optionalChain([_chunkN2TJ3HAMcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _1230 => _1230.email]), () => ( null));
49016
+ const proxyEmail = _nullishCoalesce(_optionalChain([_chunkN2TJ3HAMcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _1235 => _1235.email]), () => ( null));
48914
49017
  const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
48915
49018
  const [isLoading, setIsLoading] = _react.useState.call(void 0, enabled);
48916
49019
  _react.useEffect.call(void 0, () => {
@@ -49001,7 +49104,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
49001
49104
  yield chunk;
49002
49105
  }
49003
49106
  } catch (err) {
49004
- if (_optionalChain([err, 'optionalAccess', _1231 => _1231.name]) === "AbortError" || ctrl.signal.aborted) {
49107
+ if (_optionalChain([err, 'optionalAccess', _1236 => _1236.name]) === "AbortError" || ctrl.signal.aborted) {
49005
49108
  return;
49006
49109
  }
49007
49110
  const errorMessage = err instanceof Error ? err.message : "An error occurred";
@@ -49052,7 +49155,7 @@ function useChat({
49052
49155
  const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
49053
49156
  onMessagesChangeRef.current = onMessagesChange;
49054
49157
  _react.useEffect.call(void 0, () => {
49055
- _optionalChain([onMessagesChangeRef, 'access', _1232 => _1232.current, 'optionalCall', _1233 => _1233(messages)]);
49158
+ _optionalChain([onMessagesChangeRef, 'access', _1237 => _1237.current, 'optionalCall', _1238 => _1238(messages)]);
49056
49159
  }, [messages]);
49057
49160
  const {
49058
49161
  streamMessage,
@@ -49089,7 +49192,7 @@ function useChat({
49089
49192
  name: "You",
49090
49193
  content: text,
49091
49194
  timestamp: /* @__PURE__ */ new Date(),
49092
- ..._optionalChain([options, 'optionalAccess', _1234 => _1234.hidden]) ? { hidden: true } : {}
49195
+ ..._optionalChain([options, 'optionalAccess', _1239 => _1239.hidden]) ? { hidden: true } : {}
49093
49196
  };
49094
49197
  addMessage(userMessage);
49095
49198
  setIsTyping(true);
@@ -49151,7 +49254,7 @@ function useChat({
49151
49254
  currentTextSegment = "";
49152
49255
  }
49153
49256
  const seg = segment;
49154
- const proposalId = _optionalChain([seg, 'access', _1235 => _1235.data, 'optionalAccess', _1236 => _1236.requestId]);
49257
+ const proposalId = _optionalChain([seg, 'access', _1240 => _1240.data, 'optionalAccess', _1241 => _1241.requestId]);
49155
49258
  const updateApprovalMessage = (transform) => {
49156
49259
  setMessages((prev) => {
49157
49260
  for (let i = prev.length - 1; i >= 0; i--) {
@@ -49160,7 +49263,7 @@ function useChat({
49160
49263
  if (!Array.isArray(m.content)) continue;
49161
49264
  const segments = m.content;
49162
49265
  const hasMatch = segments.some(
49163
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1237 => _1237.data, 'optionalAccess', _1238 => _1238.requestId]) === proposalId
49266
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1242 => _1242.data, 'optionalAccess', _1243 => _1243.requestId]) === proposalId
49164
49267
  );
49165
49268
  if (!hasMatch) continue;
49166
49269
  const next = [...prev];
@@ -49202,11 +49305,11 @@ function useChat({
49202
49305
  if (!Array.isArray(m.content)) continue;
49203
49306
  const segments = m.content;
49204
49307
  const hasMatch = segments.some(
49205
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1239 => _1239.data, 'optionalAccess', _1240 => _1240.requestId]) === decision.proposalId
49308
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1244 => _1244.data, 'optionalAccess', _1245 => _1245.requestId]) === decision.proposalId
49206
49309
  );
49207
49310
  if (!hasMatch) continue;
49208
49311
  const flipped = segments.map(
49209
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1241 => _1241.data, 'optionalAccess', _1242 => _1242.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
49312
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1246 => _1246.data, 'optionalAccess', _1247 => _1247.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
49210
49313
  );
49211
49314
  const next = [...prev];
49212
49315
  next[i] = { ...m, content: flipped };
@@ -49368,8 +49471,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
49368
49471
  })),
49369
49472
  { role: "user", content: message2 }
49370
49473
  ];
49371
- const targetPath = _optionalChain([extra, 'optionalAccess', _1243 => _1243.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
49372
- const requestBody = _optionalChain([extra, 'optionalAccess', _1244 => _1244.approvalAction]) ? {
49474
+ const targetPath = _optionalChain([extra, 'optionalAccess', _1248 => _1248.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
49475
+ const requestBody = _optionalChain([extra, 'optionalAccess', _1249 => _1249.approvalAction]) ? {
49373
49476
  proposal_id: extra.approvalAction.proposalId,
49374
49477
  action: extra.approvalAction.action,
49375
49478
  messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
@@ -49378,8 +49481,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
49378
49481
  }))
49379
49482
  } : {
49380
49483
  messages: apiMessages,
49381
- ..._optionalChain([extra, 'optionalAccess', _1245 => _1245.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
49382
- ..._optionalChain([extra, 'optionalAccess', _1246 => _1246.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
49484
+ ..._optionalChain([extra, 'optionalAccess', _1250 => _1250.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
49485
+ ..._optionalChain([extra, 'optionalAccess', _1251 => _1251.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
49383
49486
  };
49384
49487
  const response = await _chunkN2TJ3HAMcjs.embedAuthedFetch.call(void 0, targetPath, {
49385
49488
  method: "POST",
@@ -49389,7 +49492,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
49389
49492
  if (!response.ok) {
49390
49493
  throw new Error(`Chat request failed: ${response.status}`);
49391
49494
  }
49392
- const reader = _optionalChain([response, 'access', _1247 => _1247.body, 'optionalAccess', _1248 => _1248.getReader, 'call', _1249 => _1249()]);
49495
+ const reader = _optionalChain([response, 'access', _1252 => _1252.body, 'optionalAccess', _1253 => _1253.getReader, 'call', _1254 => _1254()]);
49393
49496
  if (!reader) throw new Error("No response body");
49394
49497
  const decoder = new TextDecoder();
49395
49498
  let buffer = "";
@@ -49472,7 +49575,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
49472
49575
  const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
49473
49576
  const result = _nullishCoalesce(meta.result, () => ( null));
49474
49577
  const card = _nullishCoalesce(meta.card, () => ( null));
49475
- if (_optionalChain([card, 'optionalAccess', _1250 => _1250.ref, 'optionalAccess', _1251 => _1251.id]) && _optionalChain([card, 'optionalAccess', _1252 => _1252.type])) {
49578
+ if (_optionalChain([card, 'optionalAccess', _1255 => _1255.ref, 'optionalAccess', _1256 => _1256.id]) && _optionalChain([card, 'optionalAccess', _1257 => _1257.type])) {
49476
49579
  const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
49477
49580
  const key = buildChatRefKey(card.type, card.ref.id);
49478
49581
  refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
@@ -49485,8 +49588,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
49485
49588
  willAutoContinue: meta.willAutoContinue === true,
49486
49589
  ...toolName ? { toolName } : {},
49487
49590
  ...result ? { result } : {},
49488
- ..._optionalChain([card, 'optionalAccess', _1253 => _1253.marker]) ? { marker: card.marker } : {},
49489
- ..._optionalChain([card, 'optionalAccess', _1254 => _1254.ref]) ? { cardRef: card.ref } : {},
49591
+ ..._optionalChain([card, 'optionalAccess', _1258 => _1258.marker]) ? { marker: card.marker } : {},
49592
+ ..._optionalChain([card, 'optionalAccess', _1259 => _1259.ref]) ? { cardRef: card.ref } : {},
49490
49593
  ...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
49491
49594
  proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
49492
49595
  };
@@ -49605,7 +49708,7 @@ var DEFAULT_CHAT_SOURCE = "embed";
49605
49708
  var chatStorageKey = (source) => {
49606
49709
  const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
49607
49710
  const auth = _chunkN2TJ3HAMcjs.getEmbedProxyAuth.call(void 0, );
49608
- if (_optionalChain([auth, 'optionalAccess', _1255 => _1255.email])) {
49711
+ if (_optionalChain([auth, 'optionalAccess', _1260 => _1260.email])) {
49609
49712
  return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
49610
49713
  }
49611
49714
  return base;
@@ -49660,7 +49763,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
49660
49763
  const { active = true } = runtimeOptions;
49661
49764
  const runtime = _chunk2B6773QMcjs.useRequiredChatRuntime.call(void 0, );
49662
49765
  const source = runtime.source || DEFAULT_CHAT_SOURCE;
49663
- const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1256 => _1256.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
49766
+ const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1261 => _1261.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
49664
49767
  const persistedRef = _react.useRef.call(void 0, null);
49665
49768
  if (persistedRef.current === null) {
49666
49769
  pruneStaleChatStorage(source);
@@ -49765,7 +49868,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
49765
49868
  const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
49766
49869
  sources = sourcesMapRef.current.get(lookupIdx);
49767
49870
  chatRefs = _nullishCoalesce(m.chatRefs, () => ( refsMapRef.current.get(lookupIdx)));
49768
- scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _1257 => _1257.current, 'access', _1258 => _1258.get, 'call', _1259 => _1259(lookupIdx), 'optionalAccess', _1260 => _1260.scrollAnchor]), () => ( void 0));
49871
+ scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _1262 => _1262.current, 'access', _1263 => _1263.get, 'call', _1264 => _1264(lookupIdx), 'optionalAccess', _1265 => _1265.scrollAnchor]), () => ( void 0));
49769
49872
  }
49770
49873
  return {
49771
49874
  id: m.id,
@@ -49813,7 +49916,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
49813
49916
  );
49814
49917
  return;
49815
49918
  }
49816
- const refSlug = typeof _optionalChain([reference, 'access', _1261 => _1261.metadata, 'optionalAccess', _1262 => _1262.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
49919
+ const refSlug = typeof _optionalChain([reference, 'access', _1266 => _1266.metadata, 'optionalAccess', _1267 => _1267.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
49817
49920
  const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
49818
49921
  const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
49819
49922
  const text = `/${cmdId} display "${escaped}"`;
@@ -49885,18 +49988,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
49885
49988
  clearMessages,
49886
49989
  streamingPhase,
49887
49990
  /** Provider key for the lib's `<ModelDisplay>` icon. */
49888
- currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1263 => _1263.provider]), () => ( null)),
49889
- currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1264 => _1264.modelLabel]), () => ( null)),
49890
- currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1265 => _1265.contextWindowMaxTokens]), () => ( null)),
49991
+ currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1268 => _1268.provider]), () => ( null)),
49992
+ currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1269 => _1269.modelLabel]), () => ( null)),
49993
+ currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1270 => _1270.contextWindowMaxTokens]), () => ( null)),
49891
49994
  /** Input tokens (known after server's message_start frame; null until). */
49892
- currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1266 => _1266.inputTokens]), () => ( null)),
49995
+ currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1271 => _1271.inputTokens]), () => ( null)),
49893
49996
  /** Output tokens (known only after server's trailing usage frame). */
49894
- currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1267 => _1267.outputTokens]), () => ( null)),
49997
+ currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1272 => _1272.outputTokens]), () => ( null)),
49895
49998
  /** Cache hit % (read / total-input × 100). null during streaming. */
49896
- currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1268 => _1268.cacheHitRatePct]), () => ( null)),
49999
+ currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1273 => _1273.cacheHitRatePct]), () => ( null)),
49897
50000
  /** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
49898
50001
  * token counts). null until the trailing usage frame lands. */
49899
- currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1269 => _1269.breakdown]), () => ( null)),
50002
+ currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1274 => _1274.breakdown]), () => ( null)),
49900
50003
  // ─── Dialog management — stubs for v1 ────────────────────────────────
49901
50004
  // Guide mode currently keeps its history in `localStorage` opaquely
49902
50005
  // under the hood (`runtime.source` namespaced key). Surfacing that
@@ -49954,15 +50057,15 @@ var noopRejectRequest = async (_id, _reason) => {
49954
50057
 
49955
50058
  // src/components/chat/utils/process-historical-messages.ts
49956
50059
  function getOwnerDisplayName(owner) {
49957
- if (_optionalChain([owner, 'optionalAccess', _1270 => _1270.type]) === OWNER_TYPE.ADMIN && owner.user) {
50060
+ if (_optionalChain([owner, 'optionalAccess', _1275 => _1275.type]) === OWNER_TYPE.ADMIN && owner.user) {
49958
50061
  const { firstName, lastName } = owner.user;
49959
50062
  const name = [firstName, lastName].filter(Boolean).join(" ");
49960
50063
  if (name) return name;
49961
50064
  }
49962
- return _optionalChain([owner, 'optionalAccess', _1271 => _1271.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
50065
+ return _optionalChain([owner, 'optionalAccess', _1276 => _1276.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
49963
50066
  }
49964
50067
  function getOwnerAvatar(owner) {
49965
- return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1272 => _1272.user, 'optionalAccess', _1273 => _1273.image, 'optionalAccess', _1274 => _1274.imageUrl]), () => ( void 0));
50068
+ return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1277 => _1277.user, 'optionalAccess', _1278 => _1278.image, 'optionalAccess', _1279 => _1279.imageUrl]), () => ( void 0));
49966
50069
  }
49967
50070
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
49968
50071
  messageDataArray.forEach((data) => {
@@ -50025,14 +50128,14 @@ function processHistoricalMessages(messages, options = {}) {
50025
50128
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
50026
50129
  return;
50027
50130
  }
50028
- const isUserMessage = _optionalChain([msg, 'access', _1275 => _1275.owner, 'optionalAccess', _1276 => _1276.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1277 => _1277.owner, 'optionalAccess', _1278 => _1278.type]) === OWNER_TYPE.ADMIN;
50131
+ const isUserMessage = _optionalChain([msg, 'access', _1280 => _1280.owner, 'optionalAccess', _1281 => _1281.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1282 => _1282.owner, 'optionalAccess', _1283 => _1283.type]) === OWNER_TYPE.ADMIN;
50029
50132
  if (isUserMessage) {
50030
50133
  flushAssistantMessage();
50031
- const userAuthorType = _optionalChain([msg, 'access', _1279 => _1279.owner, 'optionalAccess', _1280 => _1280.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
50134
+ const userAuthorType = _optionalChain([msg, 'access', _1284 => _1284.owner, 'optionalAccess', _1285 => _1285.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
50032
50135
  messageDataArray.forEach((data) => {
50033
50136
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
50034
50137
  const rawContext = data.contextItems;
50035
- const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1281 => _1281.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1282 => _1282.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
50138
+ const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1286 => _1286.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1287 => _1287.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
50036
50139
  processedMessages.push({
50037
50140
  id: msg.id,
50038
50141
  role: "user",
@@ -50056,7 +50159,7 @@ function processHistoricalMessages(messages, options = {}) {
50056
50159
  });
50057
50160
  const nextMsg = messages[index + 1];
50058
50161
  const isLastMessage = index === messages.length - 1;
50059
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1283 => _1283.owner, 'optionalAccess', _1284 => _1284.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1285 => _1285.owner, 'optionalAccess', _1286 => _1286.type]) === OWNER_TYPE.ADMIN);
50162
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1288 => _1288.owner, 'optionalAccess', _1289 => _1289.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1290 => _1290.owner, 'optionalAccess', _1291 => _1291.type]) === OWNER_TYPE.ADMIN);
50060
50163
  if (isLastMessage || nextIsFromUser) {
50061
50164
  flushAssistantMessage();
50062
50165
  }
@@ -50166,7 +50269,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
50166
50269
  }
50167
50270
  }
50168
50271
  } else {
50169
- _optionalChain([escalatedApprovals, 'optionalAccess', _1287 => _1287.set, 'call', _1288 => _1288(data.approvalRequestId, {
50272
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1292 => _1292.set, 'call', _1293 => _1293(data.approvalRequestId, {
50170
50273
  command: data.command || "",
50171
50274
  explanation: data.explanation,
50172
50275
  approvalType,
@@ -50180,8 +50283,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
50180
50283
  const existingStatus = approvalStatuses[data.approvalRequestId];
50181
50284
  const status = existingStatus || (data.approved ? "approved" : "rejected");
50182
50285
  const resolvedByName = "resolvedByName" in data ? data.resolvedByName : void 0;
50183
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1289 => _1289.get, 'call', _1290 => _1290(data.approvalRequestId)]);
50184
- if (_optionalChain([escalatedData, 'optionalAccess', _1291 => _1291.toolCalls]) && escalatedData.toolCalls.length > 0) {
50286
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1294 => _1294.get, 'call', _1295 => _1295(data.approvalRequestId)]);
50287
+ if (_optionalChain([escalatedData, 'optionalAccess', _1296 => _1296.toolCalls]) && escalatedData.toolCalls.length > 0) {
50185
50288
  if (batchApprovalsEnabled) {
50186
50289
  accumulator.addApprovalBatch(
50187
50290
  data.approvalRequestId,
@@ -50203,7 +50306,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
50203
50306
  );
50204
50307
  }
50205
50308
  }
50206
- _optionalChain([escalatedApprovals, 'optionalAccess', _1292 => _1292.delete, 'call', _1293 => _1293(data.approvalRequestId)]);
50309
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1297 => _1297.delete, 'call', _1298 => _1298(data.approvalRequestId)]);
50207
50310
  break;
50208
50311
  }
50209
50312
  if (escalatedData) {
@@ -50212,7 +50315,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
50212
50315
  explanation: escalatedData.explanation,
50213
50316
  approvalType: escalatedData.approvalType
50214
50317
  });
50215
- _optionalChain([escalatedApprovals, 'optionalAccess', _1294 => _1294.delete, 'call', _1295 => _1295(data.approvalRequestId)]);
50318
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1299 => _1299.delete, 'call', _1300 => _1300(data.approvalRequestId)]);
50216
50319
  }
50217
50320
  const before = accumulator.getSegments();
50218
50321
  const after = accumulator.updateApprovalStatus(data.approvalRequestId, status, resolvedByName);
@@ -50228,9 +50331,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
50228
50331
  case MESSAGE_TYPE.ERROR:
50229
50332
  if ("error" in data) {
50230
50333
  let message2;
50231
- if ("details" in data && _optionalChain([data, 'optionalAccess', _1296 => _1296.details])) {
50334
+ if ("details" in data && _optionalChain([data, 'optionalAccess', _1301 => _1301.details])) {
50232
50335
  try {
50233
- message2 = _optionalChain([JSON, 'access', _1297 => _1297.parse, 'call', _1298 => _1298(data.details), 'optionalAccess', _1299 => _1299.error, 'optionalAccess', _1300 => _1300.message]);
50336
+ message2 = _optionalChain([JSON, 'access', _1302 => _1302.parse, 'call', _1303 => _1303(data.details), 'optionalAccess', _1304 => _1304.error, 'optionalAccess', _1305 => _1305.message]);
50234
50337
  } catch (e67) {
50235
50338
  message2 = data.details;
50236
50339
  }
@@ -50313,14 +50416,14 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
50313
50416
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
50314
50417
  return;
50315
50418
  }
50316
- const isUserMessage = _optionalChain([msg, 'access', _1301 => _1301.owner, 'optionalAccess', _1302 => _1302.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1303 => _1303.owner, 'optionalAccess', _1304 => _1304.type]) === OWNER_TYPE.ADMIN;
50419
+ const isUserMessage = _optionalChain([msg, 'access', _1306 => _1306.owner, 'optionalAccess', _1307 => _1307.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1308 => _1308.owner, 'optionalAccess', _1309 => _1309.type]) === OWNER_TYPE.ADMIN;
50317
50420
  if (isUserMessage) {
50318
50421
  flushAssistantMessage();
50319
- const userAuthorType = _optionalChain([msg, 'access', _1305 => _1305.owner, 'optionalAccess', _1306 => _1306.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
50422
+ const userAuthorType = _optionalChain([msg, 'access', _1310 => _1310.owner, 'optionalAccess', _1311 => _1311.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
50320
50423
  messageDataArray.forEach((data) => {
50321
50424
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
50322
50425
  const rawContext = data.contextItems;
50323
- const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1307 => _1307.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1308 => _1308.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
50426
+ const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1312 => _1312.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1313 => _1313.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
50324
50427
  processedMessages.push({
50325
50428
  id: msg.id,
50326
50429
  role: "user",
@@ -50344,7 +50447,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
50344
50447
  });
50345
50448
  const nextMsg = messages[index + 1];
50346
50449
  const isLastMessage = index === messages.length - 1;
50347
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1309 => _1309.owner, 'optionalAccess', _1310 => _1310.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1311 => _1311.owner, 'optionalAccess', _1312 => _1312.type]) === OWNER_TYPE.ADMIN);
50450
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1314 => _1314.owner, 'optionalAccess', _1315 => _1315.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1316 => _1316.owner, 'optionalAccess', _1317 => _1317.type]) === OWNER_TYPE.ADMIN);
50348
50451
  if (isLastMessage || nextIsFromUser) {
50349
50452
  flushAssistantMessage();
50350
50453
  }
@@ -50412,6 +50515,14 @@ function mapProcessedToUnified(processed) {
50412
50515
  }
50413
50516
  return out;
50414
50517
  }
50518
+ function historicalToUnified(messages, options = {}) {
50519
+ const { messages: processed } = processHistoricalMessagesWithErrors(messages, options);
50520
+ const byId = new Map(processed.map((p) => [p.id, p]));
50521
+ return mapProcessedToUnified(processed).map((u) => {
50522
+ const p = byId.get(u.id);
50523
+ return p ? { ...u, name: p.name, avatar: _nullishCoalesce(p.avatar, () => ( null)), authorType: p.authorType, timestamp: p.timestamp } : u;
50524
+ });
50525
+ }
50415
50526
  function useNatsChatAdapter(config, options = {}) {
50416
50527
  const { active = true } = options;
50417
50528
  const {
@@ -50705,7 +50816,7 @@ function useNatsChatAdapter(config, options = {}) {
50705
50816
  }, [active, fetchDialogs, loadDialogsPage]);
50706
50817
  const sendMessage = _react.useCallback.call(void 0,
50707
50818
  async (text, sendOptions) => {
50708
- const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1313 => _1313.hidden]), () => ( false));
50819
+ const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1318 => _1318.hidden]), () => ( false));
50709
50820
  setMessages((prev) => [
50710
50821
  ...prev,
50711
50822
  {
@@ -50869,11 +50980,11 @@ function useNatsChatAdapter(config, options = {}) {
50869
50980
  // Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
50870
50981
  // contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
50871
50982
  // matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
50872
- currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1314 => _1314.provider]), () => ( modelProvider)), () => ( null)),
50873
- currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1315 => _1315.modelLabel]), () => ( modelLabel)), () => ( null)),
50874
- currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1316 => _1316.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1317 => _1317.contextWindowMaxTokens]))), () => ( null)),
50875
- currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1318 => _1318.inputTokensSize]), () => ( null)),
50876
- currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1319 => _1319.outputTokensSize]), () => ( null)),
50983
+ currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1319 => _1319.provider]), () => ( modelProvider)), () => ( null)),
50984
+ currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1320 => _1320.modelLabel]), () => ( modelLabel)), () => ( null)),
50985
+ currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1321 => _1321.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1322 => _1322.contextWindowMaxTokens]))), () => ( null)),
50986
+ currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1323 => _1323.inputTokensSize]), () => ( null)),
50987
+ currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1324 => _1324.outputTokensSize]), () => ( null)),
50877
50988
  currentCacheHitRatePct: null,
50878
50989
  currentUsageBreakdown: null,
50879
50990
  // Dialog management
@@ -51121,7 +51232,7 @@ function extractIncompleteMessageState(lastMessage) {
51121
51232
  break;
51122
51233
  case "approval_batch": {
51123
51234
  const allDone = !!segment.data.executions && segment.data.toolCalls.every(
51124
- (c) => _optionalChain([segment, 'access', _1320 => _1320.data, 'access', _1321 => _1321.executions, 'optionalAccess', _1322 => _1322[c.toolExecutionRequestId], 'optionalAccess', _1323 => _1323.status]) === "done"
51235
+ (c) => _optionalChain([segment, 'access', _1325 => _1325.data, 'access', _1326 => _1326.executions, 'optionalAccess', _1327 => _1327[c.toolExecutionRequestId], 'optionalAccess', _1328 => _1328.status]) === "done"
51125
51236
  );
51126
51237
  if (segment.status !== "rejected" && !allDone) {
51127
51238
  hasIncompleteState = true;
@@ -51189,20 +51300,20 @@ function mergeHistoryWithRealtime(input) {
51189
51300
  const seqCoverageKnown = realtimeSeenStreamSeq > 0 && historyMaxStreamSeq > 0;
51190
51301
  const historyCoversRealtime = seqCoverageKnown ? historyMaxStreamSeq >= realtimeSeenStreamSeq : null;
51191
51302
  const trailing = processedHistory[processedHistory.length - 1];
51192
- const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1324 => _1324.role]) === "assistant" ? trailing : null;
51193
- const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _1325 => _1325.content, 'access', _1326 => _1326.find, 'call', _1327 => _1327((s) => s.type === "approval_batch"), 'optionalAccess', _1328 => _1328.data, 'optionalAccess', _1329 => _1329.approvalRequestId]), () => ( null)) : null;
51303
+ const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1329 => _1329.role]) === "assistant" ? trailing : null;
51304
+ const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _1330 => _1330.content, 'access', _1331 => _1331.find, 'call', _1332 => _1332((s) => s.type === "approval_batch"), 'optionalAccess', _1333 => _1333.data, 'optionalAccess', _1334 => _1334.approvalRequestId]), () => ( null)) : null;
51194
51305
  let processedToUse = processedHistory;
51195
51306
  const pinnedSyntheticIds = /* @__PURE__ */ new Set();
51196
51307
  const droppedSyntheticIds = /* @__PURE__ */ new Set();
51197
51308
  if (historyBatchId) {
51198
51309
  const batchTwins = existingMessages.filter(
51199
51310
  (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some(
51200
- (s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1330 => _1330.data, 'optionalAccess', _1331 => _1331.approvalRequestId]) === historyBatchId
51311
+ (s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1335 => _1335.data, 'optionalAccess', _1336 => _1336.approvalRequestId]) === historyBatchId
51201
51312
  )
51202
51313
  );
51203
51314
  const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
51204
51315
  if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
51205
- const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1332 => _1332.content])) ? historyTrailingAssistant.content.length : 0;
51316
+ const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1337 => _1337.content])) ? historyTrailingAssistant.content.length : 0;
51206
51317
  const realtimeSize = existingWithSameBatch.content.length;
51207
51318
  if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
51208
51319
  processedToUse = processedHistory.slice(0, -1);
@@ -51218,16 +51329,16 @@ function mergeHistoryWithRealtime(input) {
51218
51329
  if (pinnedSyntheticIds.has(m.id)) return true;
51219
51330
  if (droppedSyntheticIds.has(m.id)) return false;
51220
51331
  if (processedIds.has(m.id)) return false;
51221
- if (_optionalChain([rawHistoryIds, 'optionalAccess', _1333 => _1333.has, 'call', _1334 => _1334(m.id)])) return false;
51332
+ if (_optionalChain([rawHistoryIds, 'optionalAccess', _1338 => _1338.has, 'call', _1339 => _1339(m.id)])) return false;
51222
51333
  if (m.role === "user" && m.id.startsWith("optimistic-") && typeof m.content === "string") {
51223
- const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1335 => _1335.timestamp, 'optionalAccess', _1336 => _1336.getTime, 'call', _1337 => _1337()]), () => ( 0))) <= historyFetchedAt;
51334
+ const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1340 => _1340.timestamp, 'optionalAccess', _1341 => _1341.getTime, 'call', _1342 => _1342()]), () => ( 0))) <= historyFetchedAt;
51224
51335
  return !(canBeInSnapshot && processedToUse.some((pm) => pm.role === "user" && pm.content === m.content));
51225
51336
  }
51226
51337
  if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
51227
51338
  if (m.role === "assistant" && trailingAssistantText && assistantAnswerText(m.content) === trailingAssistantText) {
51228
51339
  return false;
51229
51340
  }
51230
- const covered = typeof m.streamSeq === "number" && historyMaxStreamSeq > 0 ? historyMaxStreamSeq >= m.streamSeq : historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1338 => _1338.timestamp, 'optionalAccess', _1339 => _1339.getTime, 'call', _1340 => _1340()]), () => ( 0))) <= historyFetchedAt;
51341
+ const covered = typeof m.streamSeq === "number" && historyMaxStreamSeq > 0 ? historyMaxStreamSeq >= m.streamSeq : historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1343 => _1343.timestamp, 'optionalAccess', _1344 => _1344.getTime, 'call', _1345 => _1345()]), () => ( 0))) <= historyFetchedAt;
51231
51342
  if (covered) return false;
51232
51343
  }
51233
51344
  return true;
@@ -51275,6 +51386,60 @@ function chatChipClass({ tone, density = "chip", extra }) {
51275
51386
  return extra ? `${base} ${extra}` : base;
51276
51387
  }
51277
51388
 
51389
+ // src/components/chat/utils/scripted-stream.ts
51390
+ function normalizeHistoricalMessageData(md) {
51391
+ return Array.isArray(md) ? md : md ? [md] : [];
51392
+ }
51393
+ function isHistoricalUserTurn(m) {
51394
+ return !!m.owner;
51395
+ }
51396
+ var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _1346 => _1346.type]) === "TEXT" && typeof d.text === "string";
51397
+ var THINK_MS = 550;
51398
+ var TOKEN_MS = 55;
51399
+ var USER_MS = 480;
51400
+ var SEGMENT_MS = 340;
51401
+ var POST_MS = 240;
51402
+ function tokenize(text) {
51403
+ return _nullishCoalesce(text.match(/\s*\S+\s*/g), () => ( (text ? [text] : [])));
51404
+ }
51405
+ function buildStreamFrames(messages) {
51406
+ const frames = [];
51407
+ const revealed = [];
51408
+ const push = (msgs, phase, typing, delayMs) => frames.push({ messages: msgs.slice(), phase, typing, delayMs });
51409
+ messages.forEach((msg) => {
51410
+ if (isHistoricalUserTurn(msg)) {
51411
+ revealed.push(msg);
51412
+ push(revealed, "idle", false, USER_MS);
51413
+ return;
51414
+ }
51415
+ if (revealed.length > 0) push(revealed, "thinking", true, THINK_MS);
51416
+ const segs = normalizeHistoricalMessageData(msg.messageData);
51417
+ const built = [];
51418
+ const emit = () => push([...revealed, { ...msg, messageData: [...built] }], "streaming", false, 0);
51419
+ segs.forEach((seg) => {
51420
+ if (isTextSegment(seg)) {
51421
+ const tokens = tokenize(seg.text);
51422
+ let acc = "";
51423
+ built.push({ ...seg, text: "" });
51424
+ tokens.forEach((tok) => {
51425
+ acc += tok;
51426
+ built[built.length - 1] = { ...seg, text: acc };
51427
+ push([...revealed, { ...msg, messageData: [...built] }], "streaming", false, TOKEN_MS);
51428
+ });
51429
+ built[built.length - 1] = { ...seg };
51430
+ } else {
51431
+ built.push(seg);
51432
+ emit();
51433
+ frames[frames.length - 1].delayMs = SEGMENT_MS;
51434
+ }
51435
+ });
51436
+ revealed.push(msg);
51437
+ push(revealed, "idle", false, POST_MS);
51438
+ });
51439
+ if (frames.length === 0) push(revealed, "idle", false, 0);
51440
+ return frames;
51441
+ }
51442
+
51278
51443
  // src/components/chat/embeddable-chat.tsx
51279
51444
 
51280
51445
 
@@ -51447,7 +51612,7 @@ function useChatDialogManager({
51447
51612
  const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
51448
51613
  if (restoreTarget) {
51449
51614
  try {
51450
- await _optionalChain([unarchiveDialog, 'optionalCall', _1341 => _1341(restoreTarget.id)]);
51615
+ await _optionalChain([unarchiveDialog, 'optionalCall', _1347 => _1347(restoreTarget.id)]);
51451
51616
  } catch (err) {
51452
51617
  console.error("[useChatDialogManager] unarchive failed:", err);
51453
51618
  return;
@@ -51865,7 +52030,7 @@ function EmbeddableChatInner({
51865
52030
  }),
51866
52031
  [commandsUrl]
51867
52032
  );
51868
- const userName = _optionalChain([identityUser, 'optionalAccess', _1342 => _1342.firstName, 'optionalAccess', _1343 => _1343.trim, 'call', _1344 => _1344()]) || _optionalChain([identityUser, 'optionalAccess', _1345 => _1345.name, 'optionalAccess', _1346 => _1346.split, 'call', _1347 => _1347(" "), 'access', _1348 => _1348[0], 'optionalAccess', _1349 => _1349.trim, 'call', _1350 => _1350()]) || void 0;
52033
+ const userName = _optionalChain([identityUser, 'optionalAccess', _1348 => _1348.firstName, 'optionalAccess', _1349 => _1349.trim, 'call', _1350 => _1350()]) || _optionalChain([identityUser, 'optionalAccess', _1351 => _1351.name, 'optionalAccess', _1352 => _1352.split, 'call', _1353 => _1353(" "), 'access', _1354 => _1354[0], 'optionalAccess', _1355 => _1355.trim, 'call', _1356 => _1356()]) || void 0;
51869
52034
  const effectiveModes = _react.useMemo.call(void 0, () => {
51870
52035
  if (modes) return modes;
51871
52036
  const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
@@ -51874,19 +52039,19 @@ function EmbeddableChatInner({
51874
52039
  const mingoCaps = _react.useMemo.call(void 0, () => {
51875
52040
  if (mingoState) {
51876
52041
  return {
51877
- canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1351 => _1351.canRename]), () => ( false)),
51878
- canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1352 => _1352.canArchive]), () => ( false)),
51879
- fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1353 => _1353.fetchArchivedDialogs]),
51880
- unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1354 => _1354.unarchiveDialog]),
51881
- searchQuery: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1355 => _1355.searchQuery]),
51882
- onSearchChange: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1356 => _1356.onSearchChange])
52042
+ canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1357 => _1357.canRename]), () => ( false)),
52043
+ canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1358 => _1358.canArchive]), () => ( false)),
52044
+ fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1359 => _1359.fetchArchivedDialogs]),
52045
+ unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1360 => _1360.unarchiveDialog]),
52046
+ searchQuery: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1361 => _1361.searchQuery]),
52047
+ onSearchChange: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1362 => _1362.onSearchChange])
51883
52048
  };
51884
52049
  }
51885
52050
  return {
51886
- canRename: !!_optionalChain([effectiveModes, 'access', _1357 => _1357.mingo, 'optionalAccess', _1358 => _1358.renameDialog]),
51887
- canArchive: !!_optionalChain([effectiveModes, 'access', _1359 => _1359.mingo, 'optionalAccess', _1360 => _1360.archiveDialog]),
51888
- fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1361 => _1361.mingo, 'optionalAccess', _1362 => _1362.fetchArchivedDialogs]),
51889
- unarchiveDialog: _optionalChain([effectiveModes, 'access', _1363 => _1363.mingo, 'optionalAccess', _1364 => _1364.unarchiveDialog]),
52051
+ canRename: !!_optionalChain([effectiveModes, 'access', _1363 => _1363.mingo, 'optionalAccess', _1364 => _1364.renameDialog]),
52052
+ canArchive: !!_optionalChain([effectiveModes, 'access', _1365 => _1365.mingo, 'optionalAccess', _1366 => _1366.archiveDialog]),
52053
+ fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1367 => _1367.mingo, 'optionalAccess', _1368 => _1368.fetchArchivedDialogs]),
52054
+ unarchiveDialog: _optionalChain([effectiveModes, 'access', _1369 => _1369.mingo, 'optionalAccess', _1370 => _1370.unarchiveDialog]),
51890
52055
  searchQuery: void 0,
51891
52056
  onSearchChange: void 0
51892
52057
  };
@@ -51900,7 +52065,7 @@ function EmbeddableChatInner({
51900
52065
  if (controlledActiveMode === void 0) {
51901
52066
  setUncontrolledActiveMode(next);
51902
52067
  }
51903
- _optionalChain([onActiveModeChange, 'optionalCall', _1365 => _1365(next)]);
52068
+ _optionalChain([onActiveModeChange, 'optionalCall', _1371 => _1371(next)]);
51904
52069
  },
51905
52070
  [controlledActiveMode, onActiveModeChange]
51906
52071
  );
@@ -51922,7 +52087,7 @@ function EmbeddableChatInner({
51922
52087
  const effectiveQuickActions = emptyStateUrl ? emptyStateConfig.quickActions : [];
51923
52088
  const effectiveAssistantName = emptyStateConfig.name;
51924
52089
  const effectiveAssistantIcon = emptyStateConfig.icon;
51925
- const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _1366 => _1366.title]) === "string" ? guideWelcome.title : null)));
52090
+ const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _1372 => _1372.title]) === "string" ? guideWelcome.title : null)));
51926
52091
  const {
51927
52092
  messages: rawMessages,
51928
52093
  isLoading: chatLoading,
@@ -51962,7 +52127,7 @@ function EmbeddableChatInner({
51962
52127
  if (activeMode !== "guide" || guidePromptSentRef.current) return;
51963
52128
  guidePromptSentRef.current = true;
51964
52129
  void sendMessage(guidePendingPrompt);
51965
- _optionalChain([onGuidePromptConsumed, 'optionalCall', _1367 => _1367()]);
52130
+ _optionalChain([onGuidePromptConsumed, 'optionalCall', _1373 => _1373()]);
51966
52131
  }, [guidePendingPrompt, activeMode, sendMessage, onGuidePromptConsumed]);
51967
52132
  const {
51968
52133
  attachments: stagedAttachments,
@@ -51973,7 +52138,7 @@ function EmbeddableChatInner({
51973
52138
  clear: clearAttachments
51974
52139
  } = useChatAttachments();
51975
52140
  const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
51976
- const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1368 => _1368.maxItems]), () => ( 10));
52141
+ const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1374 => _1374.maxItems]), () => ( 10));
51977
52142
  const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
51978
52143
  const [contextItems, setContextItems] = _react.useState.call(void 0, []);
51979
52144
  const [contextPickerOpen, setContextPickerOpen] = _react.useState.call(void 0, false);
@@ -51990,10 +52155,10 @@ function EmbeddableChatInner({
51990
52155
  }, [activeDialogId, activeMode]);
51991
52156
  const mentionMarkerByType = _react.useMemo.call(void 0, () => {
51992
52157
  const m = /* @__PURE__ */ new Map();
51993
- for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1369 => _1369.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
52158
+ for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1375 => _1375.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
51994
52159
  return m;
51995
- }, [_optionalChain([contextPicker, 'optionalAccess', _1370 => _1370.entityTypes])]);
51996
- const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _1371 => _1371.entityTypes]);
52160
+ }, [_optionalChain([contextPicker, 'optionalAccess', _1376 => _1376.entityTypes])]);
52161
+ const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _1377 => _1377.entityTypes]);
51997
52162
  const resolveContextIcon = _react.useMemo.call(void 0, () => {
51998
52163
  const byType = /* @__PURE__ */ new Map();
51999
52164
  for (const t of _nullishCoalesce(contextEntityTypes, () => ( []))) byType.set(t.type, t.icon);
@@ -52005,7 +52170,7 @@ function EmbeddableChatInner({
52005
52170
  if (mentionActiveRef.current) {
52006
52171
  if (contextItems.some((p) => `${p.type}:${p.id}` === key)) return;
52007
52172
  if (contextItems.length >= contextMaxItems) return;
52008
- _optionalChain([chatInputRef, 'access', _1372 => _1372.current, 'optionalAccess', _1373 => _1373.commitMention, 'call', _1374 => _1374(mentionTokenOf(key, mentionMarkerByType), {
52173
+ _optionalChain([chatInputRef, 'access', _1378 => _1378.current, 'optionalAccess', _1379 => _1379.commitMention, 'call', _1380 => _1380(mentionTokenOf(key, mentionMarkerByType), {
52009
52174
  label: item.label,
52010
52175
  icon: resolveContextIcon(item)
52011
52176
  })]);
@@ -52027,9 +52192,9 @@ function EmbeddableChatInner({
52027
52192
  setContextItems((prev) => prev.filter((p) => `${p.type}:${p.id}` !== key));
52028
52193
  if (mentionKeysRef.current.has(key)) {
52029
52194
  mentionKeysRef.current.delete(key);
52030
- const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _1375 => _1375.current, 'optionalAccess', _1376 => _1376.getValue, 'call', _1377 => _1377()]), () => ( ""));
52195
+ const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _1381 => _1381.current, 'optionalAccess', _1382 => _1382.getValue, 'call', _1383 => _1383()]), () => ( ""));
52031
52196
  const next = cur.replace(`@${mentionTokenOf(key, mentionMarkerByType)}`, "").replace(/\s{2,}/g, " ").trimStart();
52032
- _optionalChain([chatInputRef, 'access', _1378 => _1378.current, 'optionalAccess', _1379 => _1379.setValue, 'call', _1380 => _1380(next)]);
52197
+ _optionalChain([chatInputRef, 'access', _1384 => _1384.current, 'optionalAccess', _1385 => _1385.setValue, 'call', _1386 => _1386(next)]);
52033
52198
  }
52034
52199
  }, [mentionMarkerByType]);
52035
52200
  const handleContextValueChange = _react.useCallback.call(void 0, (value) => {
@@ -52046,7 +52211,7 @@ function EmbeddableChatInner({
52046
52211
  }, []);
52047
52212
  const closeContextPicker = _react.useCallback.call(void 0, () => {
52048
52213
  if (mentionActiveRef.current) {
52049
- _optionalChain([chatInputRef, 'access', _1381 => _1381.current, 'optionalAccess', _1382 => _1382.removeMentionTrigger, 'call', _1383 => _1383()]);
52214
+ _optionalChain([chatInputRef, 'access', _1387 => _1387.current, 'optionalAccess', _1388 => _1388.removeMentionTrigger, 'call', _1389 => _1389()]);
52050
52215
  }
52051
52216
  setContextPickerOpen(false);
52052
52217
  setMentionQuery(null);
@@ -52080,8 +52245,8 @@ function EmbeddableChatInner({
52080
52245
  []
52081
52246
  );
52082
52247
  const timestampCacheRef = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
52083
- const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _1384 => _1384.firstName]), _optionalChain([identityUser, 'optionalAccess', _1385 => _1385.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _1386 => _1386.name, 'optionalAccess', _1387 => _1387.trim, 'call', _1388 => _1388()]) || void 0 : void 0;
52084
- const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _1389 => _1389.avatarUrl, 'optionalAccess', _1390 => _1390.trim, 'call', _1391 => _1391()]) || void 0 : void 0;
52248
+ const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _1390 => _1390.firstName]), _optionalChain([identityUser, 'optionalAccess', _1391 => _1391.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _1392 => _1392.name, 'optionalAccess', _1393 => _1393.trim, 'call', _1394 => _1394()]) || void 0 : void 0;
52249
+ const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _1395 => _1395.avatarUrl, 'optionalAccess', _1396 => _1396.trim, 'call', _1397 => _1397()]) || void 0 : void 0;
52085
52250
  const messages = _react.useMemo.call(void 0, () => {
52086
52251
  const cache = timestampCacheRef.current;
52087
52252
  const seenIds = /* @__PURE__ */ new Set();
@@ -52226,7 +52391,7 @@ function EmbeddableChatInner({
52226
52391
  const hasMessages = messages.length > 0;
52227
52392
  const dialogsInitialLoading = isDialogsLoading && dialogs.length === 0;
52228
52393
  const dialogsLoadError = dialogsError && dialogs.length === 0;
52229
- const hasConversation = hasMessages || isOpeningDialog || isViewingArchived;
52394
+ const hasConversation = hasMessages || isOpeningDialog || isViewingArchived || previewMode && isMessagesLoading;
52230
52395
  const messagesInitialLoading = isMessagesLoading && !hasMessages;
52231
52396
  const contentViewKey = hasConversation ? "conversation" : activeMode;
52232
52397
  const isGuideEmpty = !hasConversation && activeMode === "guide";
@@ -52259,9 +52424,9 @@ function EmbeddableChatInner({
52259
52424
  const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
52260
52425
  const lastSources = _react.useMemo.call(void 0, () => {
52261
52426
  if (chatLoading) return void 0;
52262
- const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1392 => _1392.sources]);
52427
+ const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1398 => _1398.sources]);
52263
52428
  if (!sources || sources.length === 0) return void 0;
52264
- const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1393 => _1393.content]) || "";
52429
+ const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1399 => _1399.content]) || "";
52265
52430
  const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
52266
52431
  (m) => parseInt(m[1], 10)
52267
52432
  );
@@ -52307,8 +52472,9 @@ function EmbeddableChatInner({
52307
52472
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
52308
52473
  ChatPanelHeader,
52309
52474
  {
52475
+ compact: previewMode,
52310
52476
  showBack: hasConversation || guideCanReturnToMingo,
52311
- title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1394 => _1394.title]) || "New Chat" : isGuideEmpty ? _nullishCoalesce(headerAssistantName, () => ( "Mingo Guide")) : "Current Chats",
52477
+ title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1400 => _1400.title]) || "New Chat" : isGuideEmpty ? _nullishCoalesce(headerAssistantName, () => ( "Mingo Guide")) : "Current Chats",
52312
52478
  backAriaLabel: hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo",
52313
52479
  isArchivedView: isViewingArchived,
52314
52480
  onBack: hasConversation ? handleBack : () => handleActiveModeChange("mingo"),
@@ -52429,9 +52595,9 @@ function EmbeddableChatInner({
52429
52595
  subtitle: _nullishCoalesce(effectiveGreeting, () => ( void 0)),
52430
52596
  subtitleLoading: emptyStateLoading,
52431
52597
  ...guideWelcome,
52432
- title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1395 => _1395.title]))),
52433
- icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1396 => _1396.icon]))),
52434
- quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _1397 => _1397.quickActions]), () => ( guideSuggestedActions)),
52598
+ title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1401 => _1401.title]))),
52599
+ icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1402 => _1402.icon]))),
52600
+ quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _1403 => _1403.quickActions]), () => ( guideSuggestedActions)),
52435
52601
  onQuickAction: (action) => {
52436
52602
  setQuickActionPreview(null);
52437
52603
  handleSend(_nullishCoalesce(action.prompt, () => ( action.label)));
@@ -53573,5 +53739,14 @@ function EmbeddableChatInner({
53573
53739
 
53574
53740
 
53575
53741
 
53576
- exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.HiddenTagsPopup = HiddenTagsPopup; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Autocomplete = Autocomplete; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.HoneypotField = HoneypotField; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatFileSize = formatFileSize; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatEntryMonthUTC = formatEntryMonthUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.SquareAvatar = SquareAvatar; exports.AssigneeDropdown = AssigneeDropdown; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.getContrastRatio = getContrastRatio; exports.pickReadableTextColor = pickReadableTextColor; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.getReadableTextColor = getReadableTextColor; exports.HEX_PATTERN = HEX_PATTERN; exports.hexToRgb = hexToRgb2; exports.rgbToHex = rgbToHex; exports.deriveHoverColor = deriveHoverColor; exports.deriveActiveColor = deriveActiveColor; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataMessage = NoDataMessage; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal2; exports.ModalContent = ModalContent2; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter2; exports.Modal2 = Modal; exports.ModalContent2 = ModalContent; exports.ModalHeader2 = ModalHeader; exports.ModalTitle2 = ModalTitle; exports.ModalFooter2 = ModalFooter; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.OVERLAY_BACKDROP_CLASS = OVERLAY_BACKDROP_CLASS; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.VideoPlayBadge = VideoPlayBadge; exports.VideoUnmuteGlyph = VideoUnmuteGlyph; exports.fetchPriorityProp = fetchPriorityProp; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video2; exports.MediaCarousel = MediaCarousel; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.toGoogleSheetsEmbedUrl = toGoogleSheetsEmbedUrl; exports.toGoogleSheetsOriginalUrl = toGoogleSheetsOriginalUrl; exports.toFigmaEmbedUrl = toFigmaEmbedUrl; exports.isFigmaSlidesUrl = isFigmaSlidesUrl; exports.toFigmaOriginalUrl = toFigmaOriginalUrl; exports.EmbedIframe = EmbedIframe; exports.FigmaEmbed = FigmaEmbed; exports.MarkdownImage = MarkdownImage; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.statusBadgeVariants = statusBadgeVariants; exports.genBadgeBgOpacity = genBadgeBgOpacity; exports.generationTierFromLabel = generationTierFromLabel; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.CommandBlock = CommandBlock; exports.ApprovalStatusTag = ApprovalStatusTag; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.ICON_ALIASES = ICON_ALIASES; exports.resolveIcon = resolveIcon; exports.ICON_OPTIONS = ICON_OPTIONS; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.formatTicketRelativeTime = formatTicketRelativeTime; exports.formatTicketFullTimestamp = formatTicketFullTimestamp; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.BlockCard = BlockCard; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.ChatQuickAction = ChatQuickAction; exports.FAE_AVATAR_DATA_URI = FAE_AVATAR_DATA_URI; exports.AgentMark = AgentMark; exports.EntityIcon = EntityIcon; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipSkeleton = QuickActionChipSkeleton; exports.QuickActionChipButton = QuickActionChipButton; exports.ChatQuickActionRow = ChatQuickActionRow; exports.ChatQuickActionRowSkeleton = ChatQuickActionRowSkeleton; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.GuideModeBanner = GuideModeBanner; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.COMPACT_HEADER_BUTTON = COMPACT_HEADER_BUTTON; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.useCoverImageFallback = useCoverImageFallback; exports.hideOnError = hideOnError; exports.EntityPortraitCard = EntityPortraitCard; exports.FlamingoLogo = FlamingoLogo2; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.getProxiedImageUrl2 = getProxiedImageUrl2; exports.WhatIShippedCard = WhatIShippedCard; exports.WhatIShippedCardSkeleton = WhatIShippedCardSkeleton; exports.MUX_STREAM_ORIGIN = MUX_STREAM_ORIGIN; exports.MUX_IMAGE_ORIGIN = MUX_IMAGE_ORIGIN; exports.useVideoOriginPreconnect = useVideoOriginPreconnect; exports.useVideoWarmup = useVideoWarmup; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_TO_CSS_ASPECT = RATIO_TO_CSS_ASPECT; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.DEFAULT_VIDEO_BITES_TITLE = DEFAULT_VIDEO_BITES_TITLE; exports.toStripProfile = toStripProfile; exports.sortBitesByCreatedAtDesc = sortBitesByCreatedAtDesc; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.SECTION_HEADING_CLASS = SECTION_HEADING_CLASS; exports.PageHeading = PageHeading; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.SquareAvatar2 = SquareAvatar2; exports.UserDisplay = UserDisplay; exports.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.resolveReleaseCover = resolveReleaseCover; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.useEntityCardLink = useEntityCardLink; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.getStatusColorScheme = getStatusColorScheme; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.programItemToStripProfile = programItemToStripProfile; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.extractItems = extractItems; exports.extractItemId = extractItemId; exports.useChatCardItem = useChatCardItem; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.APPROVAL_BLOCK_VARIANT = APPROVAL_BLOCK_VARIANT; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.useSseChatAdapter = useSseChatAdapter; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.serializeJsonLd = serializeJsonLd; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.announcementDismissCookieName = announcementDismissCookieName; exports.isDismissedCookieValue = isDismissedCookieValue; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.CONTENT_REF_GROUPS = CONTENT_REF_GROUPS; exports.getContentRefLabel = getContentRefLabel; exports.getContentRefLabelOrTitleCase = getContentRefLabelOrTitleCase; exports.orderContentRefTypes = orderContentRefTypes; exports.buildSuggestionUrl = buildSuggestionUrl; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.extractSections = extractSections; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.init_pagination = init_pagination; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.PasswordInput = PasswordInput; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LoginForm = LoginForm; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.getCaptionsUrl = getCaptionsUrl; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.FilterPillRow = FilterPillRow; exports.MOBILE_NAV_PANEL_ID = MOBILE_NAV_PANEL_ID; exports.MobileNavPanel = MobileNavPanel; exports.MingoAiButton = MingoAiButton; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderMingoButton = HeaderMingoButton; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.MultiLevelNavigation = MultiLevelNavigation; exports.MobileNavigationDropdown = MobileNavigationDropdown; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
53577
- //# sourceMappingURL=chunk-SJTNVETH.cjs.map
53742
+
53743
+
53744
+
53745
+
53746
+
53747
+
53748
+
53749
+
53750
+
53751
+ exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.HiddenTagsPopup = HiddenTagsPopup; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Autocomplete = Autocomplete; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.HoneypotField = HoneypotField; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatFileSize = formatFileSize; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatEntryMonthUTC = formatEntryMonthUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.SquareAvatar = SquareAvatar; exports.AssigneeDropdown = AssigneeDropdown; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.getContrastRatio = getContrastRatio; exports.pickReadableTextColor = pickReadableTextColor; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.getReadableTextColor = getReadableTextColor; exports.HEX_PATTERN = HEX_PATTERN; exports.hexToRgb = hexToRgb2; exports.rgbToHex = rgbToHex; exports.deriveHoverColor = deriveHoverColor; exports.deriveActiveColor = deriveActiveColor; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataMessage = NoDataMessage; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal2; exports.ModalContent = ModalContent2; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter2; exports.Modal2 = Modal; exports.ModalContent2 = ModalContent; exports.ModalHeader2 = ModalHeader; exports.ModalTitle2 = ModalTitle; exports.ModalFooter2 = ModalFooter; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.OVERLAY_BACKDROP_CLASS = OVERLAY_BACKDROP_CLASS; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.VideoPlayBadge = VideoPlayBadge; exports.VideoUnmuteGlyph = VideoUnmuteGlyph; exports.fetchPriorityProp = fetchPriorityProp; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video2; exports.MediaCarousel = MediaCarousel; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.toGoogleSheetsEmbedUrl = toGoogleSheetsEmbedUrl; exports.toGoogleSheetsOriginalUrl = toGoogleSheetsOriginalUrl; exports.toFigmaEmbedUrl = toFigmaEmbedUrl; exports.isFigmaSlidesUrl = isFigmaSlidesUrl; exports.toFigmaOriginalUrl = toFigmaOriginalUrl; exports.EmbedIframe = EmbedIframe; exports.FigmaEmbed = FigmaEmbed; exports.MarkdownImage = MarkdownImage; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.statusBadgeVariants = statusBadgeVariants; exports.genBadgeBgOpacity = genBadgeBgOpacity; exports.generationTierFromLabel = generationTierFromLabel; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.CommandBlock = CommandBlock; exports.ApprovalStatusTag = ApprovalStatusTag; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.ICON_ALIASES = ICON_ALIASES; exports.resolveIcon = resolveIcon; exports.ICON_OPTIONS = ICON_OPTIONS; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.formatTicketRelativeTime = formatTicketRelativeTime; exports.formatTicketFullTimestamp = formatTicketFullTimestamp; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.BlockCard = BlockCard; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.ChatQuickAction = ChatQuickAction; exports.FAE_AVATAR_DATA_URI = FAE_AVATAR_DATA_URI; exports.AgentMark = AgentMark; exports.EntityIcon = EntityIcon; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipSkeleton = QuickActionChipSkeleton; exports.QuickActionChipButton = QuickActionChipButton; exports.ChatQuickActionRow = ChatQuickActionRow; exports.ChatQuickActionRowSkeleton = ChatQuickActionRowSkeleton; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.GuideModeBanner = GuideModeBanner; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.COMPACT_HEADER_BUTTON = COMPACT_HEADER_BUTTON; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.useCoverImageFallback = useCoverImageFallback; exports.hideOnError = hideOnError; exports.EntityPortraitCard = EntityPortraitCard; exports.FlamingoLogo = FlamingoLogo2; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.getProxiedImageUrl2 = getProxiedImageUrl2; exports.WhatIShippedCard = WhatIShippedCard; exports.WhatIShippedCardSkeleton = WhatIShippedCardSkeleton; exports.MUX_STREAM_ORIGIN = MUX_STREAM_ORIGIN; exports.MUX_IMAGE_ORIGIN = MUX_IMAGE_ORIGIN; exports.useVideoOriginPreconnect = useVideoOriginPreconnect; exports.useVideoWarmup = useVideoWarmup; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_TO_CSS_ASPECT = RATIO_TO_CSS_ASPECT; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.DEFAULT_VIDEO_BITES_TITLE = DEFAULT_VIDEO_BITES_TITLE; exports.toStripProfile = toStripProfile; exports.sortBitesByCreatedAtDesc = sortBitesByCreatedAtDesc; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.SECTION_HEADING_CLASS = SECTION_HEADING_CLASS; exports.PageHeading = PageHeading; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.SquareAvatar2 = SquareAvatar2; exports.UserDisplay = UserDisplay; exports.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.resolveReleaseCover = resolveReleaseCover; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.useEntityCardLink = useEntityCardLink; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.getStatusColorScheme = getStatusColorScheme; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.programItemToStripProfile = programItemToStripProfile; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.extractItems = extractItems; exports.extractItemId = extractItemId; exports.useChatCardItem = useChatCardItem; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.APPROVAL_BLOCK_VARIANT = APPROVAL_BLOCK_VARIANT; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useChunkCatchup = useChunkCatchup; exports.useScriptedStream = useScriptedStream; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.useSseChatAdapter = useSseChatAdapter; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.serializeJsonLd = serializeJsonLd; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.announcementDismissCookieName = announcementDismissCookieName; exports.isDismissedCookieValue = isDismissedCookieValue; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.CONTENT_REF_GROUPS = CONTENT_REF_GROUPS; exports.getContentRefLabel = getContentRefLabel; exports.getContentRefLabelOrTitleCase = getContentRefLabelOrTitleCase; exports.orderContentRefTypes = orderContentRefTypes; exports.buildSuggestionUrl = buildSuggestionUrl; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.extractSections = extractSections; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.init_pagination = init_pagination; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.PasswordInput = PasswordInput; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LoginForm = LoginForm; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.getCaptionsUrl = getCaptionsUrl; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCardBody = TicketCardBody; exports.TicketCardView = TicketCardView; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.FilterPillRow = FilterPillRow; exports.MOBILE_NAV_PANEL_ID = MOBILE_NAV_PANEL_ID; exports.MobileNavPanel = MobileNavPanel; exports.MingoAiButton = MingoAiButton; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderMingoButton = HeaderMingoButton; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.MultiLevelNavigation = MultiLevelNavigation; exports.MobileNavigationDropdown = MobileNavigationDropdown; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
53752
+ //# sourceMappingURL=chunk-PP5KNHMK.cjs.map