@flamingo-stack/openframe-frontend-core 0.0.723 → 0.0.724

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 (117) hide show
  1. package/dist/{chunk-WSMOTZRJ.cjs → chunk-2A4AGW7Z.cjs} +11 -11
  2. package/dist/{chunk-F6JAGSKV.js → chunk-2HLGX6JF.js} +5 -5
  3. package/dist/{chunk-Y5H3M7OM.cjs → chunk-3MMKIVWZ.cjs} +23 -23
  4. package/dist/{chunk-OWRD2GZU.cjs → chunk-3NVSC3BU.cjs} +687 -611
  5. package/dist/{chunk-N4VCU6XP.js → chunk-4N5DLIEC.js} +1 -1
  6. package/dist/{chunk-OHC2MPUO.cjs → chunk-5CJGNPTT.cjs} +35 -35
  7. package/dist/{chunk-OVG6MV3X.js → chunk-6BKDXUOQ.js} +6 -6
  8. package/dist/{chunk-VIFVSFYY.js → chunk-6QO6BIX7.js} +1 -1
  9. package/dist/{chunk-FDWYBJYD.cjs → chunk-7AXOAA5T.cjs} +3 -3
  10. package/dist/{chunk-YUSA7IPD.js → chunk-7CNGNPBI.js} +3 -3
  11. package/dist/{chunk-VGXAZEQP.cjs → chunk-A4WHVIYZ.cjs} +17 -17
  12. package/dist/{chunk-KSZRALRL.cjs → chunk-BIWG3CYN.cjs} +3 -3
  13. package/dist/{chunk-WVA7SCLY.js → chunk-BWMEQ7IZ.js} +1 -1
  14. package/dist/{chunk-PKS2QQJU.js → chunk-CJENFR5T.js} +2 -1
  15. package/dist/{chunk-JENNI7XU.cjs → chunk-DGNGABNG.cjs} +5 -4
  16. package/dist/{chunk-KY4WQYYG.cjs → chunk-FR4MFSH5.cjs} +19 -19
  17. package/dist/{chunk-MWLVYYRX.cjs → chunk-GRB5HVEV.cjs} +2580 -2120
  18. package/dist/{chunk-3RIKO2O2.cjs → chunk-IPUDFAU5.cjs} +31 -31
  19. package/dist/{chunk-A7JPMNHF.js → chunk-IUQKIU5A.js} +6 -6
  20. package/dist/{chunk-LV6UJD2K.cjs → chunk-JKWQWHNV.cjs} +6 -1
  21. package/dist/{chunk-NESUUHPV.cjs → chunk-JQ7A7PO5.cjs} +76 -76
  22. package/dist/{chunk-XTG7W75B.js → chunk-KKO4GRM3.js} +4 -4
  23. package/dist/{chunk-YQOJOW2Z.cjs → chunk-L5CAET76.cjs} +64 -64
  24. package/dist/{chunk-WY4SLTMZ.js → chunk-MRBPJ4NB.js} +1 -1
  25. package/dist/{chunk-JL7AHSFE.js → chunk-MU5F5QXJ.js} +6 -6
  26. package/dist/{chunk-2VOPQJNR.js → chunk-N2PX26BZ.js} +2 -2
  27. package/dist/{chunk-NFABAOMD.cjs → chunk-N4NGKXUU.cjs} +15 -15
  28. package/dist/{chunk-SBCJFJ6Q.js → chunk-NLZZUWR6.js} +4 -4
  29. package/dist/{chunk-7JXCLUU7.js → chunk-OFOBVPDV.js} +2 -2
  30. package/dist/{chunk-GRDJR2Q7.js → chunk-OWFDXYEO.js} +1 -1
  31. package/dist/{chunk-QBXEF7D5.js → chunk-PF4WAKCS.js} +4 -4
  32. package/dist/{chunk-KSADTFNZ.cjs → chunk-QJ67GFF3.cjs} +32 -32
  33. package/dist/{chunk-G6YNPBWV.js → chunk-QN3OXRTM.js} +3045 -2585
  34. package/dist/{chunk-P7MDECYI.cjs → chunk-QUI7DKBW.cjs} +41 -41
  35. package/dist/{chunk-IIBTYCEN.js → chunk-S4SVKXHN.js} +88 -12
  36. package/dist/{chunk-2MC4DRSC.cjs → chunk-SOTXV3T5.cjs} +3 -3
  37. package/dist/{chunk-TDSLKKX7.cjs → chunk-SVDXNMBL.cjs} +16 -16
  38. package/dist/{chunk-UYMTAFHG.js → chunk-VLPGV5WH.js} +1 -1
  39. package/dist/{chunk-YGIUWQEN.js → chunk-XDTD6YGG.js} +7 -7
  40. package/dist/{chunk-GYUFKNOQ.cjs → chunk-YKV45BSJ.cjs} +4 -4
  41. package/dist/{chunk-6QTGLBJH.cjs → chunk-ZKL52ALL.cjs} +3 -3
  42. package/dist/{chunk-EWED6ISQ.js → chunk-ZQKN2Z6W.js} +5 -0
  43. package/dist/{cloud-tenants-N6KV2T7X.js → cloud-tenants-5MINXS5J.js} +6 -6
  44. package/dist/{cloud-tenants-3TVX7U23.cjs → cloud-tenants-UMZJZTMB.cjs} +7 -7
  45. package/dist/components/case-studies/index.cjs +20 -20
  46. package/dist/components/case-studies/index.js +7 -7
  47. package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
  48. package/dist/components/chat/index.cjs +5 -5
  49. package/dist/components/chat/index.js +4 -4
  50. package/dist/components/chat/utils/icon-library.d.ts +2 -0
  51. package/dist/components/chat/utils/icon-library.d.ts.map +1 -1
  52. package/dist/components/contact/index.cjs +8 -8
  53. package/dist/components/contact/index.js +7 -7
  54. package/dist/components/docs/index.cjs +11 -11
  55. package/dist/components/docs/index.js +10 -10
  56. package/dist/components/embeds/index.cjs +8 -8
  57. package/dist/components/embeds/index.js +7 -7
  58. package/dist/components/faq/index.cjs +8 -8
  59. package/dist/components/faq/index.js +7 -7
  60. package/dist/components/features/index.cjs +23 -7
  61. package/dist/components/features/index.d.ts +1 -0
  62. package/dist/components/features/index.d.ts.map +1 -1
  63. package/dist/components/features/index.js +22 -6
  64. package/dist/components/features/model-token-rates.d.ts +179 -0
  65. package/dist/components/features/model-token-rates.d.ts.map +1 -0
  66. package/dist/components/help-center-pages/index.cjs +106 -106
  67. package/dist/components/help-center-pages/index.js +18 -18
  68. package/dist/components/index.cjs +71 -55
  69. package/dist/components/index.js +34 -18
  70. package/dist/components/meeting-scheduler/index.cjs +32 -32
  71. package/dist/components/meeting-scheduler/index.js +6 -6
  72. package/dist/components/navigation/index.cjs +10 -10
  73. package/dist/components/navigation/index.js +9 -9
  74. package/dist/components/onboarding-guides/index.cjs +10 -10
  75. package/dist/components/onboarding-guides/index.js +9 -9
  76. package/dist/components/product-demo/index.cjs +7 -7
  77. package/dist/components/product-demo/index.js +7 -7
  78. package/dist/components/related-content/index.cjs +4 -4
  79. package/dist/components/related-content/index.js +3 -3
  80. package/dist/components/tickets/index.cjs +11 -11
  81. package/dist/components/tickets/index.js +10 -10
  82. package/dist/components/ui/index.cjs +7 -7
  83. package/dist/components/ui/index.js +6 -6
  84. package/dist/{devices-275UZZUS.js → devices-FSSUAUQN.js} +6 -6
  85. package/dist/{devices-MAALZ7DX.cjs → devices-HOT7YSDN.cjs} +8 -8
  86. package/dist/index.cjs +45 -11
  87. package/dist/index.js +44 -10
  88. package/dist/{knowledge-YMMULPPK.cjs → knowledge-3N6HCFLU.cjs} +8 -8
  89. package/dist/{knowledge-THXC2KC3.js → knowledge-7HRUJX26.js} +6 -6
  90. package/dist/{logs-IBUKQOHS.cjs → logs-75M5YP6V.cjs} +15 -15
  91. package/dist/{logs-GM2XBHYT.js → logs-T25OE2QW.js} +6 -6
  92. package/dist/{policies-NKMRK6RR.js → policies-4OK4XTD4.js} +6 -6
  93. package/dist/{policies-J5GJXD6G.cjs → policies-BTG7UJJC.cjs} +11 -11
  94. package/dist/{remote-session-Z2YCUPHU.cjs → remote-session-4DTOM3QD.cjs} +5 -5
  95. package/dist/{remote-session-WCLR47RN.js → remote-session-AZJXG7ZF.js} +3 -3
  96. package/dist/{software-update-EKKMKDWI.js → software-update-5SOV4FIR.js} +6 -6
  97. package/dist/{software-update-JHC4T4SE.cjs → software-update-OZURO4VK.cjs} +11 -11
  98. package/dist/utils/ai-providers.d.ts +29 -0
  99. package/dist/utils/ai-providers.d.ts.map +1 -0
  100. package/dist/utils/index.cjs +76 -2
  101. package/dist/utils/index.d.ts +2 -0
  102. package/dist/utils/index.d.ts.map +1 -1
  103. package/dist/utils/index.js +68 -3
  104. package/dist/utils/list-url.d.ts.map +1 -1
  105. package/dist/utils/model-token-rates.d.ts +55 -0
  106. package/dist/utils/model-token-rates.d.ts.map +1 -0
  107. package/dist/utils/source-icons.d.ts.map +1 -1
  108. package/package.json +1 -1
  109. package/src/components/chat/entity-cards/dispatch.tsx +3 -0
  110. package/src/components/chat/utils/icon-library.tsx +6 -0
  111. package/src/components/features/index.ts +1 -0
  112. package/src/components/features/model-token-rates.tsx +696 -0
  113. package/src/utils/ai-providers.ts +46 -0
  114. package/src/utils/index.ts +2 -0
  115. package/src/utils/list-url.ts +1 -0
  116. package/src/utils/model-token-rates.ts +103 -0
  117. package/src/utils/source-icons.ts +3 -0
@@ -34,7 +34,7 @@ var _chunkEWPR7662cjs = require('./chunk-EWPR7662.cjs');
34
34
 
35
35
 
36
36
 
37
- var _chunkFDWYBJYDcjs = require('./chunk-FDWYBJYD.cjs');
37
+ var _chunk7AXOAA5Tcjs = require('./chunk-7AXOAA5T.cjs');
38
38
 
39
39
 
40
40
 
@@ -140,7 +140,7 @@ var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
140
140
 
141
141
 
142
142
 
143
- var _chunkJENNI7XUcjs = require('./chunk-JENNI7XU.cjs');
143
+ var _chunkDGNGABNGcjs = require('./chunk-DGNGABNG.cjs');
144
144
 
145
145
 
146
146
  var _chunkAL2GUHAJcjs = require('./chunk-AL2GUHAJ.cjs');
@@ -148,7 +148,7 @@ var _chunkAL2GUHAJcjs = require('./chunk-AL2GUHAJ.cjs');
148
148
 
149
149
 
150
150
 
151
- var _chunkLV6UJD2Kcjs = require('./chunk-LV6UJD2K.cjs');
151
+ var _chunkJKWQWHNVcjs = require('./chunk-JKWQWHNV.cjs');
152
152
 
153
153
 
154
154
 
@@ -314,7 +314,7 @@ var _react = require('react'); var _react2 = _interopRequireDefault(_react);
314
314
 
315
315
  // src/components/chat/chat-appearance-context.tsx
316
316
 
317
- var ChatAppearanceContext = _react.createContext.call(void 0, _chunkFDWYBJYDcjs.CHAT_APPEARANCE.CLASSIC);
317
+ var ChatAppearanceContext = _react.createContext.call(void 0, _chunk7AXOAA5Tcjs.CHAT_APPEARANCE.CLASSIC);
318
318
  function useChatAppearance() {
319
319
  return _react.useContext.call(void 0, ChatAppearanceContext);
320
320
  }
@@ -352,7 +352,7 @@ var ApprovalRequestMessage = _react.forwardRef.call(void 0,
352
352
  ...props
353
353
  }, ref) => {
354
354
  const [isProcessing, setIsProcessing] = _react.useState.call(void 0, false);
355
- const isV2 = useChatAppearance() === _chunkFDWYBJYDcjs.CHAT_APPEARANCE.V2;
355
+ const isV2 = useChatAppearance() === _chunk7AXOAA5Tcjs.CHAT_APPEARANCE.V2;
356
356
  const handleApprove = async () => {
357
357
  setIsProcessing(true);
358
358
  try {
@@ -487,7 +487,7 @@ EscalationOfferMessage.displayName = "EscalationOfferMessage";
487
487
 
488
488
  var AiAssistantInfo = _react.forwardRef.call(void 0,
489
489
  ({ className, icon, leading, title, body, timestamp, ...props }, ref) => {
490
- const isV2 = useChatAppearance() === _chunkFDWYBJYDcjs.CHAT_APPEARANCE.V2;
490
+ const isV2 = useChatAppearance() === _chunk7AXOAA5Tcjs.CHAT_APPEARANCE.V2;
491
491
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
492
492
  "div",
493
493
  {
@@ -503,7 +503,7 @@ var AiAssistantInfo = _react.forwardRef.call(void 0,
503
503
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
504
504
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-start", children: [
505
505
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "min-w-0 flex-1 truncate text-ods-text-primary text-h4", title, children: title }),
506
- timestamp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-right text-ods-text-secondary text-h6", children: _chunkFDWYBJYDcjs.formatTime.call(void 0, timestamp) })
506
+ timestamp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-right text-ods-text-secondary text-h6", children: _chunk7AXOAA5Tcjs.formatTime.call(void 0, timestamp) })
507
507
  ] }),
508
508
  body != null && body !== "" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "w-full break-words text-ods-text-secondary text-h4", children: body })
509
509
  ] })
@@ -3411,7 +3411,7 @@ var ErrorMessageDisplay = _react.forwardRef.call(void 0,
3411
3411
  const [expanded, setExpanded] = _react.useState.call(void 0, false);
3412
3412
  const { innerRef, containerStyle } = _chunkHP4UUBJCcjs.useCollapsible.call(void 0, { expanded });
3413
3413
  const hasDetails = Boolean(details);
3414
- const isV2 = useChatAppearance() === _chunkFDWYBJYDcjs.CHAT_APPEARANCE.V2;
3414
+ const isV2 = useChatAppearance() === _chunk7AXOAA5Tcjs.CHAT_APPEARANCE.V2;
3415
3415
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
3416
3416
  "div",
3417
3417
  {
@@ -4453,8 +4453,8 @@ ToolExecutionDisplay.displayName = "ToolExecutionDisplay";
4453
4453
  var MENTION_MARKER_REGEX = /(^|[^\w@])@[a-zA-Z]+:([A-Za-z0-9_.+/=-]*[A-Za-z0-9_+/=])/g;
4454
4454
  var CARD_MARKER_REGEX = createCardMarkerScanner();
4455
4455
  function formatMessageTimestamp(timestamp) {
4456
- const time = _chunkFDWYBJYDcjs.formatTime.call(void 0, timestamp);
4457
- return _chunkHP4UUBJCcjs.isToday.call(void 0, timestamp) ? time : `${_chunkFDWYBJYDcjs.formatDate.call(void 0, timestamp)} ${time}`;
4456
+ const time = _chunk7AXOAA5Tcjs.formatTime.call(void 0, timestamp);
4457
+ return _chunkHP4UUBJCcjs.isToday.call(void 0, timestamp) ? time : `${_chunk7AXOAA5Tcjs.formatDate.call(void 0, timestamp)} ${time}`;
4458
4458
  }
4459
4459
  function normalizeContent(content) {
4460
4460
  if (typeof content === "string") {
@@ -4508,7 +4508,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
4508
4508
  const isError = role === "error";
4509
4509
  const inheritedAppearance = useChatAppearance();
4510
4510
  const appearance = _nullishCoalesce(appearanceProp, () => ( inheritedAppearance));
4511
- const isV2 = appearance === _chunkFDWYBJYDcjs.CHAT_APPEARANCE.V2;
4511
+ const isV2 = appearance === _chunk7AXOAA5Tcjs.CHAT_APPEARANCE.V2;
4512
4512
  const authorType = _nullishCoalesce(authorTypeProp, () => ( (isUser ? "user" : assistantType === "mingo" ? "mingo" : "fae")));
4513
4513
  const hasMarkerSupport = !!renderEntityCard;
4514
4514
  const segments = _react.useMemo.call(void 0, () => normalizeContent(content), [content]);
@@ -4924,23 +4924,23 @@ function ChatMessageListSkeleton({
4924
4924
  // src/components/chat/cycling-phrase.tsx
4925
4925
 
4926
4926
 
4927
- function CyclingPhrase({ words, className, charMs = 60, holdMs = 4500 }) {
4927
+ function CyclingPhrase({ words: words2, className, charMs = 60, holdMs = 4500 }) {
4928
4928
  const [wordIndex, setWordIndex] = _react.useState.call(void 0, 0);
4929
4929
  const [text2, setText] = _react.useState.call(void 0, "");
4930
4930
  const [cursor, setCursor] = _react.useState.call(void 0, 0);
4931
- const target = _nullishCoalesce(words[wordIndex], () => ( ""));
4932
- const holding = words.length > 0 && cursor >= Math.max(text2.length, target.length);
4931
+ const target = _nullishCoalesce(words2[wordIndex], () => ( ""));
4932
+ const holding = words2.length > 0 && cursor >= Math.max(text2.length, target.length);
4933
4933
  const shownText = holding ? target : text2;
4934
4934
  const placeholder = _react.useMemo.call(void 0,
4935
- () => words.reduce((longest, w) => w.length > longest.length ? w : longest, ""),
4936
- [words]
4935
+ () => words2.reduce((longest, w) => w.length > longest.length ? w : longest, ""),
4936
+ [words2]
4937
4937
  );
4938
4938
  _react.useEffect.call(void 0, () => {
4939
- if (words.length === 0) return void 0;
4939
+ if (words2.length === 0) return void 0;
4940
4940
  let timeoutId;
4941
4941
  if (holding) {
4942
4942
  timeoutId = setTimeout(() => {
4943
- setWordIndex((i) => (i + 1) % words.length);
4943
+ setWordIndex((i) => (i + 1) % words2.length);
4944
4944
  setCursor(0);
4945
4945
  setText(target);
4946
4946
  }, holdMs);
@@ -4956,8 +4956,8 @@ function CyclingPhrase({ words, className, charMs = 60, holdMs = 4500 }) {
4956
4956
  setCursor((c) => c + 1);
4957
4957
  }, charMs);
4958
4958
  return () => clearTimeout(timeoutId);
4959
- }, [wordIndex, cursor, text2, holding, target, words, charMs, holdMs]);
4960
- if (words.length === 0) return null;
4959
+ }, [wordIndex, cursor, text2, holding, target, words2, charMs, holdMs]);
4960
+ if (words2.length === 0) return null;
4961
4961
  const before = shownText.slice(0, cursor);
4962
4962
  const after = shownText.slice(cursor);
4963
4963
  const cursorBlock = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -5032,7 +5032,7 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5032
5032
  contentClassName,
5033
5033
  assistantType,
5034
5034
  approvalVariant,
5035
- appearance = _chunkFDWYBJYDcjs.CHAT_APPEARANCE.CLASSIC,
5035
+ appearance = _chunk7AXOAA5Tcjs.CHAT_APPEARANCE.CLASSIC,
5036
5036
  assistantIcon,
5037
5037
  pendingApprovals,
5038
5038
  hasNextPage,
@@ -5531,7 +5531,7 @@ ChatMessageList.displayName = "ChatMessageList";
5531
5531
  // src/components/chat/hooks/use-proxied-image-url.ts
5532
5532
  function useProxiedImageUrl(url) {
5533
5533
  const r = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
5534
- return _nullishCoalesce(_chunkJENNI7XUcjs.getProxiedImageUrl.call(void 0, _nullishCoalesce(url, () => ( "")), {
5534
+ return _nullishCoalesce(_chunkDGNGABNGcjs.getProxiedImageUrl.call(void 0, _nullishCoalesce(url, () => ( "")), {
5535
5535
  proxyPrefix: r.endpoints.imageProxyUrlPrefix,
5536
5536
  skipDomains: r.endpoints.imageProxySkipDomains,
5537
5537
  directHttps: true
@@ -5608,7 +5608,7 @@ function renderQuickActionIcon(icon) {
5608
5608
  if (!spec.name && !spec.url) return void 0;
5609
5609
  const accentClass = spec.accent ? ACCENT_CLASS[spec.accent] : void 0;
5610
5610
  const props = spec.accent && !accentClass ? { color: spec.accent, ..._nullishCoalesce(spec.props, () => ( {})) } : spec.props;
5611
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.EntityIcon, { icon: { name: spec.name, url: spec.url, props }, size: _nullishCoalesce(spec.size, () => ( 16)), className: accentClass });
5611
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.EntityIcon, { icon: { name: spec.name, url: spec.url, props }, size: _nullishCoalesce(spec.size, () => ( 16)), className: accentClass });
5612
5612
  }
5613
5613
  function composeChipLabel(label, lozenge) {
5614
5614
  if (!lozenge) return label;
@@ -5912,6 +5912,67 @@ if (_orderIdx("flamingo") > _orderIdx("flamingo-teaser") || _orderIdx("flamingo"
5912
5912
  );
5913
5913
  }
5914
5914
 
5915
+ // src/utils/ai-providers.ts
5916
+ var AI_PROVIDERS = {
5917
+ ANTHROPIC: { label: "Anthropic", icon: "anthropic-logo-grey" },
5918
+ OPENAI: { label: "OpenAI", icon: "openai-logo-grey" },
5919
+ GOOGLE_GEMINI: { label: "Google Gemini", icon: "gemini-logo-grey" }
5920
+ };
5921
+ var words = (key) => key.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean);
5922
+ function aiProvider(key, stated) {
5923
+ const known = AI_PROVIDERS[key];
5924
+ const parts = words(key);
5925
+ return {
5926
+ label: _optionalChain([stated, 'optionalAccess', _137 => _137.label]) || _optionalChain([known, 'optionalAccess', _138 => _138.label]) || parts.map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ") || key,
5927
+ icon: _optionalChain([stated, 'optionalAccess', _139 => _139.icon]) || _optionalChain([known, 'optionalAccess', _140 => _140.icon]) || `${parts.join("-")}-logo-grey`
5928
+ };
5929
+ }
5930
+
5931
+ // src/utils/model-token-rates.ts
5932
+ var TOKEN_RATE_EMPTY = "\u2014";
5933
+ function formatTokenRate(value) {
5934
+ if (value == null || !Number.isFinite(value) || value <= 0) return TOKEN_RATE_EMPTY;
5935
+ const rounded = value >= 0.1 ? Number(value.toFixed(2)) : Number(value.toPrecision(2));
5936
+ return `${rounded}\xD7`;
5937
+ }
5938
+ function tokenCost(tokens, tokenPrice) {
5939
+ if (!tokenPrice || !(tokenPrice.tokens > 0) || !(tokenPrice.price > 0) || !(tokens >= 0)) return null;
5940
+ return tokens / tokenPrice.tokens * tokenPrice.price;
5941
+ }
5942
+ var TOKEN_AMOUNT_UNITS = [
5943
+ { size: 1e9, suffix: "B" },
5944
+ { size: 1e6, suffix: "M" },
5945
+ { size: 1e3, suffix: "K" }
5946
+ ];
5947
+ function formatTokenAmount(tokens) {
5948
+ if (tokens == null || !Number.isFinite(tokens) || tokens < 0) return TOKEN_RATE_EMPTY;
5949
+ const whole = Math.round(tokens);
5950
+ if (whole < 1e3) return String(whole);
5951
+ for (const [index, unit] of TOKEN_AMOUNT_UNITS.entries()) {
5952
+ if (whole < unit.size) continue;
5953
+ const figure = Number((whole / unit.size).toPrecision(3));
5954
+ const larger = TOKEN_AMOUNT_UNITS[index - 1];
5955
+ return figure >= 1e3 && larger ? `1${larger.suffix}` : `${figure}${unit.suffix}`;
5956
+ }
5957
+ return String(whole);
5958
+ }
5959
+ function tokensForBalance(balance, rate) {
5960
+ if (rate == null || !Number.isFinite(rate) || rate <= 0 || !(balance > 0)) return null;
5961
+ return balance / rate;
5962
+ }
5963
+ function tokenRateProviderLabel(providerType, stated) {
5964
+ return aiProvider(providerType, { label: stated }).label;
5965
+ }
5966
+ function groupTokenRatesByProvider(rates) {
5967
+ const groups = /* @__PURE__ */ new Map();
5968
+ for (const rate of rates) {
5969
+ const group = groups.get(rate.providerType);
5970
+ if (group) group.push(rate);
5971
+ else groups.set(rate.providerType, [rate]);
5972
+ }
5973
+ return [...groups].map(([providerType, grouped]) => ({ providerType, rates: grouped }));
5974
+ }
5975
+
5915
5976
  // src/utils/trial.ts
5916
5977
  var TRIAL_DAYS = 14;
5917
5978
  var TRIAL_LABELS = {
@@ -6280,7 +6341,7 @@ function getShellIcon(shellType) {
6280
6341
  if (!shellType) return void 0;
6281
6342
  const normalized = shellType.toUpperCase();
6282
6343
  const shellDef = SHELL_TYPES.find((s) => s.id === normalized);
6283
- return _optionalChain([shellDef, 'optionalAccess', _137 => _137.icon]);
6344
+ return _optionalChain([shellDef, 'optionalAccess', _141 => _141.icon]);
6284
6345
  }
6285
6346
 
6286
6347
  // src/utils/video-bite-id.ts
@@ -6382,7 +6443,7 @@ function getOSIcon(osType) {
6382
6443
  const normalized = normalizeOSType(osType);
6383
6444
  if (!normalized) return void 0;
6384
6445
  const osTypeDef = OS_TYPES.find((t) => t.id === normalized);
6385
- return _optionalChain([osTypeDef, 'optionalAccess', _138 => _138.icon]);
6446
+ return _optionalChain([osTypeDef, 'optionalAccess', _142 => _142.icon]);
6386
6447
  }
6387
6448
  function getOSTypeDefinition(osType) {
6388
6449
  if (!osType) return void 0;
@@ -6392,7 +6453,7 @@ function getOSTypeDefinition(osType) {
6392
6453
  }
6393
6454
  function getOSPlatformId(osType) {
6394
6455
  const osTypeDef = getOSTypeDefinition(osType);
6395
- return _optionalChain([osTypeDef, 'optionalAccess', _139 => _139.platformId]);
6456
+ return _optionalChain([osTypeDef, 'optionalAccess', _143 => _143.platformId]);
6396
6457
  }
6397
6458
  function isOSPlatform(deviceOS, targetPlatform) {
6398
6459
  if (!deviceOS || !targetPlatform) return false;
@@ -6555,7 +6616,7 @@ function getCountryByName(name) {
6555
6616
  }
6556
6617
  function getFlagFromCountryName(countryName) {
6557
6618
  const country = getCountryByName(countryName);
6558
- return _optionalChain([country, 'optionalAccess', _140 => _140.flag]);
6619
+ return _optionalChain([country, 'optionalAccess', _144 => _144.flag]);
6559
6620
  }
6560
6621
  function validatePhoneNumber(phoneNumber, countryCode) {
6561
6622
  if (!phoneNumber.trim()) return true;
@@ -6664,10 +6725,10 @@ var GENERIC_EMAIL_DOMAINS = [
6664
6725
  ];
6665
6726
  function extractDomainFromEmail(email) {
6666
6727
  if (!email || !email.includes("@")) return null;
6667
- return _optionalChain([email, 'access', _141 => _141.split, 'call', _142 => _142("@"), 'access', _143 => _143[1], 'optionalAccess', _144 => _144.toLowerCase, 'call', _145 => _145()]) || null;
6728
+ return _optionalChain([email, 'access', _145 => _145.split, 'call', _146 => _146("@"), 'access', _147 => _147[1], 'optionalAccess', _148 => _148.toLowerCase, 'call', _149 => _149()]) || null;
6668
6729
  }
6669
6730
  function normalizeDomain(domain) {
6670
- return _optionalChain([domain, 'optionalAccess', _146 => _146.toLowerCase, 'call', _147 => _147(), 'access', _148 => _148.replace, 'call', _149 => _149(/^https?:\/\//, ""), 'access', _150 => _150.replace, 'call', _151 => _151(/^www\./, ""), 'access', _152 => _152.split, 'call', _153 => _153("/"), 'access', _154 => _154[0], 'access', _155 => _155.trim, 'call', _156 => _156()]) || "";
6731
+ return _optionalChain([domain, 'optionalAccess', _150 => _150.toLowerCase, 'call', _151 => _151(), 'access', _152 => _152.replace, 'call', _153 => _153(/^https?:\/\//, ""), 'access', _154 => _154.replace, 'call', _155 => _155(/^www\./, ""), 'access', _156 => _156.split, 'call', _157 => _157("/"), 'access', _158 => _158[0], 'access', _159 => _159.trim, 'call', _160 => _160()]) || "";
6671
6732
  }
6672
6733
  function isGenericDomain(domain) {
6673
6734
  const normalized = normalizeDomain(domain);
@@ -6814,6 +6875,7 @@ var SOURCE_ICON_NAMES = {
6814
6875
  "trust-center": "shield-check",
6815
6876
  // The public website's own pages (live source): the site's own mark, as a glyph in the slot's colour
6816
6877
  "website-pages": "flamingo-logo-grey",
6878
+ "openframe-pricing": "money-bill-dollar",
6817
6879
  // The OpenMSP vendor directory: the icon the site menu's "Tool directory" entry draws (it reads this one)
6818
6880
  vendors: "package-search",
6819
6881
  // Financials
@@ -6879,6 +6941,7 @@ var SOURCE_LABELS_BY_TABLE = {
6879
6941
  // Trust
6880
6942
  "trust-center": "Trust Center",
6881
6943
  "website-pages": "Website",
6944
+ "openframe-pricing": "OpenFrame pricing",
6882
6945
  vendors: "Vendor Directory",
6883
6946
  // Financials
6884
6947
  "investor-updates": "Investor Updates",
@@ -6948,6 +7011,7 @@ var DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = {
6948
7011
  // Trust
6949
7012
  trust_center: "trust-center",
6950
7013
  site_page: "website-pages",
7014
+ openframe_price: "openframe-pricing",
6951
7015
  vendor: "vendors",
6952
7016
  // Financials
6953
7017
  investor_update: "investor-updates",
@@ -7011,13 +7075,13 @@ function recordCountLabel(count) {
7011
7075
  }
7012
7076
  function buildGroupedSource(spec) {
7013
7077
  const first = spec.rows[0];
7014
- const externalUrl = _nullishCoalesce(spec.externalUrl, () => ( _optionalChain([first, 'optionalAccess', _157 => _157.externalUrl])));
7015
- const targetPlatform = spec.targetPlatform !== void 0 ? spec.targetPlatform : _optionalChain([first, 'optionalAccess', _158 => _158.targetPlatform]);
7078
+ const externalUrl = _nullishCoalesce(spec.externalUrl, () => ( _optionalChain([first, 'optionalAccess', _161 => _161.externalUrl])));
7079
+ const targetPlatform = spec.targetPlatform !== void 0 ? spec.targetPlatform : _optionalChain([first, 'optionalAccess', _162 => _162.targetPlatform]);
7016
7080
  return {
7017
7081
  index: spec.index,
7018
7082
  name: `${getSourceLabel(spec.sourceRepo)} ${recordCountLabel(spec.rows.length)}`,
7019
- path: _nullishCoalesce(_optionalChain([first, 'optionalAccess', _159 => _159.path]), () => ( "")),
7020
- documentType: _nullishCoalesce(_optionalChain([first, 'optionalAccess', _160 => _160.documentType]), () => ( "")),
7083
+ path: _nullishCoalesce(_optionalChain([first, 'optionalAccess', _163 => _163.path]), () => ( "")),
7084
+ documentType: _nullishCoalesce(_optionalChain([first, 'optionalAccess', _164 => _164.documentType]), () => ( "")),
7021
7085
  ...externalUrl ? { externalUrl } : {},
7022
7086
  targetPlatform: _nullishCoalesce(targetPlatform, () => ( null)),
7023
7087
  sourceRepo: spec.sourceRepo,
@@ -7086,7 +7150,7 @@ function groupSourcesByTable(sources2) {
7086
7150
  index: source.index,
7087
7151
  sourceRepo: source.sourceRepo,
7088
7152
  rows: uniqueRows(members.flatMap(rowsOf)),
7089
- ..._optionalChain([serverChip, 'optionalAccess', _161 => _161.externalUrl]) ? { externalUrl: serverChip.externalUrl } : {},
7153
+ ..._optionalChain([serverChip, 'optionalAccess', _165 => _165.externalUrl]) ? { externalUrl: serverChip.externalUrl } : {},
7090
7154
  ...serverChip && serverChip.targetPlatform !== void 0 ? { targetPlatform: serverChip.targetPlatform } : {}
7091
7155
  })
7092
7156
  );
@@ -7148,7 +7212,7 @@ function createSseSubscription(options) {
7148
7212
  if (connected === next) return;
7149
7213
  connected = next;
7150
7214
  try {
7151
- _optionalChain([onConnectedChange, 'optionalCall', _162 => _162(next)]);
7215
+ _optionalChain([onConnectedChange, 'optionalCall', _166 => _166(next)]);
7152
7216
  } catch (err) {
7153
7217
  console.error("[sse-subscription] onConnectedChange threw:", err);
7154
7218
  }
@@ -7164,7 +7228,7 @@ function createSseSubscription(options) {
7164
7228
  if (status !== "open") {
7165
7229
  confirmTimerId = clearLifecycleTimer(confirmTimerId);
7166
7230
  }
7167
- _optionalChain([onStatusChange, 'optionalCall', _163 => _163(status)]);
7231
+ _optionalChain([onStatusChange, 'optionalCall', _167 => _167(status)]);
7168
7232
  };
7169
7233
  const internalReconnect = (delayMs) => {
7170
7234
  failedDelayTimerId = clearLifecycleTimer(failedDelayTimerId);
@@ -7178,7 +7242,7 @@ function createSseSubscription(options) {
7178
7242
  }, delayMs);
7179
7243
  };
7180
7244
  const handleServerStatus = (data) => {
7181
- const status = _optionalChain([data, 'optionalAccess', _164 => _164.status]);
7245
+ const status = _optionalChain([data, 'optionalAccess', _168 => _168.status]);
7182
7246
  if (status === "subscribed") {
7183
7247
  confirmTimerId = clearLifecycleTimer(confirmTimerId);
7184
7248
  serverGraceTimerId = clearLifecycleTimer(serverGraceTimerId);
@@ -7219,7 +7283,7 @@ function createSseSubscription(options) {
7219
7283
  const armSilenceTimer = () => {
7220
7284
  if (silenceTimerId) clearTimeout(silenceTimerId);
7221
7285
  silenceTimerId = setTimeout(() => {
7222
- _optionalChain([abortController, 'optionalAccess', _165 => _165.abort, 'call', _166 => _166()]);
7286
+ _optionalChain([abortController, 'optionalAccess', _169 => _169.abort, 'call', _170 => _170()]);
7223
7287
  }, silenceTimeoutMs);
7224
7288
  };
7225
7289
  const scheduleReconnect = (delayMs) => {
@@ -7372,7 +7436,7 @@ function createSseSubscription(options) {
7372
7436
  generation += 1;
7373
7437
  clearTimers();
7374
7438
  attempt = 0;
7375
- _optionalChain([abortController, 'optionalAccess', _167 => _167.abort, 'call', _168 => _168()]);
7439
+ _optionalChain([abortController, 'optionalAccess', _171 => _171.abort, 'call', _172 => _172()]);
7376
7440
  void connect();
7377
7441
  }
7378
7442
  const suspend = () => {
@@ -7380,7 +7444,7 @@ function createSseSubscription(options) {
7380
7444
  suspended = true;
7381
7445
  generation += 1;
7382
7446
  clearTimers();
7383
- _optionalChain([abortController, 'optionalAccess', _169 => _169.abort, 'call', _170 => _170()]);
7447
+ _optionalChain([abortController, 'optionalAccess', _173 => _173.abort, 'call', _174 => _174()]);
7384
7448
  setStatus("suspended");
7385
7449
  };
7386
7450
  const retryIfStalled = () => {
@@ -7425,15 +7489,15 @@ function createSseSubscription(options) {
7425
7489
  generation += 1;
7426
7490
  clearTimers();
7427
7491
  hiddenGraceTimerId = clearLifecycleTimer(hiddenGraceTimerId);
7428
- _optionalChain([abortController, 'optionalAccess', _171 => _171.abort, 'call', _172 => _172()]);
7492
+ _optionalChain([abortController, 'optionalAccess', _175 => _175.abort, 'call', _176 => _176()]);
7429
7493
  if (listenersActive) {
7430
7494
  document.removeEventListener("visibilitychange", onVisibilityChange);
7431
7495
  window.removeEventListener("online", onOnline);
7432
7496
  window.removeEventListener("focus", retryIfStalled);
7433
7497
  }
7434
- _optionalChain([unsubscribeCredentials, 'optionalCall', _173 => _173()]);
7498
+ _optionalChain([unsubscribeCredentials, 'optionalCall', _177 => _177()]);
7435
7499
  setConnected(false);
7436
- _optionalChain([onStatusChange, 'optionalCall', _174 => _174("closed")]);
7500
+ _optionalChain([onStatusChange, 'optionalCall', _178 => _178("closed")]);
7437
7501
  },
7438
7502
  reconnectNow: () => {
7439
7503
  if (closed) return;
@@ -7445,7 +7509,7 @@ function createSseSubscription(options) {
7445
7509
 
7446
7510
  // src/utils/sse-decision-frame.ts
7447
7511
  async function readLeadingDecisionFrame(response) {
7448
- const reader = _optionalChain([response, 'access', _175 => _175.body, 'optionalAccess', _176 => _176.getReader, 'call', _177 => _177()]);
7512
+ const reader = _optionalChain([response, 'access', _179 => _179.body, 'optionalAccess', _180 => _180.getReader, 'call', _181 => _181()]);
7449
7513
  if (!reader) throw new Error("readLeadingDecisionFrame: response has no body");
7450
7514
  const decoder = new TextDecoder();
7451
7515
  let buffer = "";
@@ -7470,8 +7534,8 @@ async function readLeadingDecisionFrame(response) {
7470
7534
  throw new Error(`readLeadingDecisionFrame: leading JSON parse failed: ${err.message}`);
7471
7535
  }
7472
7536
  const obj = parsed;
7473
- if (_optionalChain([obj, 'optionalAccess', _178 => _178.kind]) !== "decision_resolved") {
7474
- throw new Error(`readLeadingDecisionFrame: expected decision_resolved, got kind=${String(_optionalChain([obj, 'optionalAccess', _179 => _179.kind]))}`);
7537
+ if (_optionalChain([obj, 'optionalAccess', _182 => _182.kind]) !== "decision_resolved") {
7538
+ throw new Error(`readLeadingDecisionFrame: expected decision_resolved, got kind=${String(_optionalChain([obj, 'optionalAccess', _183 => _183.kind]))}`);
7475
7539
  }
7476
7540
  frame = normalizeDecisionFrame(obj);
7477
7541
  buffer = buffer.slice(nullIdx + 1);
@@ -7533,7 +7597,7 @@ function formatChatAttachmentMarkdownForBubble(att, viewUrlPrefix) {
7533
7597
 
7534
7598
  [Attached: ${safeName}](${url})`;
7535
7599
  }
7536
- var CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = _chunkJENNI7XUcjs.escapeRegExp.call(void 0, CHAT_ATTACHMENT_VIEW_URL_PREFIX);
7600
+ var CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = _chunkDGNGABNGcjs.escapeRegExp.call(void 0, CHAT_ATTACHMENT_VIEW_URL_PREFIX);
7537
7601
  var CHAT_ATTACHMENT_MARKDOWN_PATTERN = new RegExp(
7538
7602
  `^\\s*!?\\[[^\\]]*\\]\\(${CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED}[^)]+\\)\\s*$`,
7539
7603
  "gm"
@@ -7557,7 +7621,7 @@ var AUTO_CONTINUATION_DIRECTIVE_PREFIX = "[internal-auto-continuation]";
7557
7621
  function buildAutoContinuationDirective(toolName, opts = {}) {
7558
7622
  const ticketRef = opts.ticketId ? ` (ticket #${opts.ticketId})` : "";
7559
7623
  const ticketHash = opts.ticketId ? ` #${opts.ticketId}` : "";
7560
- const isClose = toolName === "update_ticket" && _optionalChain([opts, 'access', _180 => _180.status, 'optionalAccess', _181 => _181.toUpperCase, 'call', _182 => _182()]) === "CLOSED";
7624
+ const isClose = toolName === "update_ticket" && _optionalChain([opts, 'access', _184 => _184.status, 'optionalAccess', _185 => _185.toUpperCase, 'call', _186 => _186()]) === "CLOSED";
7561
7625
  if (toolName === "create_ticket") {
7562
7626
  return `${AUTO_CONTINUATION_DIRECTIVE_PREFIX} The user just approved create_ticket${ticketRef}. Per ticket-protocol \xA71a, ask 2-4 SHORT, issue-specific diagnostic follow-up questions tailored to the symptom they reported in their original message. When they answer, propose an update_ticket with content_addendum carrying a clean Q&A digest. Do NOT call any tool in this turn \u2014 just write the questions as prose.`;
7563
7627
  }
@@ -7619,7 +7683,7 @@ function formatSingularLookupInvocation(cmdId, value) {
7619
7683
  return safe ? `/${cmdId} "${safe}"` : `/${cmdId}`;
7620
7684
  }
7621
7685
  function extractEntityIdFilter(override, expectedTableId) {
7622
- const f = _optionalChain([override, 'optionalAccess', _183 => _183.entityIdFilter]);
7686
+ const f = _optionalChain([override, 'optionalAccess', _187 => _187.entityIdFilter]);
7623
7687
  if (!f) return null;
7624
7688
  const tableId = typeof f.tableId === "string" ? f.tableId : "";
7625
7689
  const id = typeof f.id === "string" ? f.id : "";
@@ -7890,12 +7954,12 @@ var FullscreenSwitchController = class {
7890
7954
  if (fullscreenElementOf(doc)) {
7891
7955
  if (doc.exitFullscreen) doc.exitFullscreen().catch(() => {
7892
7956
  });
7893
- else _optionalChain([doc, 'access', _184 => _184.webkitExitFullscreen, 'optionalCall', _185 => _185()]);
7957
+ else _optionalChain([doc, 'access', _188 => _188.webkitExitFullscreen, 'optionalCall', _189 => _189()]);
7894
7958
  } else {
7895
- const el = _nullishCoalesce(_optionalChain([this, 'access', _186 => _186.opts, 'access', _187 => _187.target, 'optionalCall', _188 => _188()]), () => ( document.documentElement));
7959
+ const el = _nullishCoalesce(_optionalChain([this, 'access', _190 => _190.opts, 'access', _191 => _191.target, 'optionalCall', _192 => _192()]), () => ( document.documentElement));
7896
7960
  if (el.requestFullscreen) el.requestFullscreen({ navigationUI: "hide" }).catch(() => {
7897
7961
  });
7898
- else _optionalChain([el, 'access', _189 => _189.webkitRequestFullscreen, 'optionalCall', _190 => _190()]);
7962
+ else _optionalChain([el, 'access', _193 => _193.webkitRequestFullscreen, 'optionalCall', _194 => _194()]);
7899
7963
  }
7900
7964
  };
7901
7965
  /** Raise the mask + start tracking. Idempotent — safe from the pre-emptive
@@ -7910,7 +7974,7 @@ var FullscreenSwitchController = class {
7910
7974
  window.clearTimeout(this.quietTimer);
7911
7975
  window.clearTimeout(this.capTimer);
7912
7976
  window.removeEventListener("resize", this.onResize);
7913
- _optionalChain([this, 'access', _191 => _191.opts, 'access', _192 => _192.onGeometryPulse, 'optionalCall', _193 => _193()]);
7977
+ _optionalChain([this, 'access', _195 => _195.opts, 'access', _196 => _196.onGeometryPulse, 'optionalCall', _197 => _197()]);
7914
7978
  if (this.opts.switchingClass) document.documentElement.classList.remove(this.opts.switchingClass);
7915
7979
  };
7916
7980
  this.armQuiet = () => {
@@ -7918,7 +7982,7 @@ var FullscreenSwitchController = class {
7918
7982
  this.quietTimer = window.setTimeout(this.endSwitch, _nullishCoalesce(this.opts.quietMs, () => ( DEFAULT_QUIET_MS)));
7919
7983
  };
7920
7984
  this.onResize = () => {
7921
- _optionalChain([this, 'access', _194 => _194.opts, 'access', _195 => _195.onGeometryPulse, 'optionalCall', _196 => _196()]);
7985
+ _optionalChain([this, 'access', _198 => _198.opts, 'access', _199 => _199.onGeometryPulse, 'optionalCall', _200 => _200()]);
7922
7986
  this.armQuiet();
7923
7987
  };
7924
7988
  /** Escape is the one exit path that skips toggle() — pre-mask on the
@@ -7930,7 +7994,7 @@ var FullscreenSwitchController = class {
7930
7994
  const fs = this.isFullscreen;
7931
7995
  if (this.opts.activeClass) document.documentElement.classList.toggle(this.opts.activeClass, fs);
7932
7996
  this.beginSwitch();
7933
- requestAnimationFrame(() => _optionalChain([this, 'access', _197 => _197.opts, 'access', _198 => _198.onGeometryPulse, 'optionalCall', _199 => _199()]));
7997
+ requestAnimationFrame(() => _optionalChain([this, 'access', _201 => _201.opts, 'access', _202 => _202.onGeometryPulse, 'optionalCall', _203 => _203()]));
7934
7998
  this.armQuiet();
7935
7999
  this.opts.onFullscreenChange(fs);
7936
8000
  };
@@ -7944,7 +8008,7 @@ var FullscreenSwitchController = class {
7944
8008
  }
7945
8009
  get isFullscreen() {
7946
8010
  const fs = fullscreenElementOf(document);
7947
- const target = _optionalChain([this, 'access', _200 => _200.opts, 'access', _201 => _201.target, 'optionalCall', _202 => _202()]);
8011
+ const target = _optionalChain([this, 'access', _204 => _204.opts, 'access', _205 => _205.target, 'optionalCall', _206 => _206()]);
7948
8012
  return target ? fs === target : Boolean(fs);
7949
8013
  }
7950
8014
  attach() {
@@ -7991,7 +8055,7 @@ function primaryPlatformOf(platforms) {
7991
8055
  if (!Array.isArray(platforms)) return null;
7992
8056
  for (const entry of platforms) {
7993
8057
  const row = entry;
7994
- const name = _nullishCoalesce(_nullishCoalesce(_optionalChain([row, 'optionalAccess', _203 => _203.platforms, 'optionalAccess', _204 => _204.name]), () => ( _optionalChain([row, 'optionalAccess', _205 => _205.platform_name]))), () => ( _optionalChain([row, 'optionalAccess', _206 => _206.name])));
8058
+ const name = _nullishCoalesce(_nullishCoalesce(_optionalChain([row, 'optionalAccess', _207 => _207.platforms, 'optionalAccess', _208 => _208.name]), () => ( _optionalChain([row, 'optionalAccess', _209 => _209.platform_name]))), () => ( _optionalChain([row, 'optionalAccess', _210 => _210.name])));
7995
8059
  if (typeof name === "string" && name.trim()) return name.trim();
7996
8060
  }
7997
8061
  return null;
@@ -8008,13 +8072,13 @@ function lastPathSegment(url) {
8008
8072
  function makeComposeContentUrl(opts) {
8009
8073
  const suffixes = _nullishCoalesce(opts.suffixes, () => ( DEFAULT_CONTENT_SUFFIXES));
8010
8074
  return ({ type: rawType, identifier, slug: slugHint, externalUrl, targetPlatform, platforms }) => {
8011
- const type = _chunkJENNI7XUcjs.canonicalContentRefType.call(void 0, rawType);
8075
+ const type = _chunkDGNGABNGcjs.canonicalContentRefType.call(void 0, rawType);
8012
8076
  const override = opts.overrides && Object.prototype.hasOwnProperty.call(opts.overrides, type) ? opts.overrides[type] : void 0;
8013
8077
  if (override) return { ...override(identifier), hostOverride: true };
8014
8078
  const seg = _nullishCoalesce((Object.prototype.hasOwnProperty.call(suffixes, type) ? suffixes[type] : void 0), () => ( type));
8015
8079
  if (opts.hostedTypes.has(type)) {
8016
8080
  const recovered = externalUrl ? lastPathSegment(externalUrl) : null;
8017
- const slug = recovered && recovered !== seg ? recovered : _optionalChain([slugHint, 'optionalAccess', _207 => _207.trim, 'call', _208 => _208()]) || identifier;
8081
+ const slug = recovered && recovered !== seg ? recovered : _optionalChain([slugHint, 'optionalAccess', _211 => _211.trim, 'call', _212 => _212()]) || identifier;
8018
8082
  return { href: `/${seg}/${slug}`, targetPlatform: null };
8019
8083
  }
8020
8084
  if (externalUrl) return { href: externalUrl, targetPlatform: _nullishCoalesce(targetPlatform, () => ( null)) };
@@ -8022,7 +8086,7 @@ function makeComposeContentUrl(opts) {
8022
8086
  const owner = claimedOwner && byKey(claimedOwner) ? claimedOwner : null;
8023
8087
  const origin = owner ? getPlatformProductionUrl(owner) : opts.contentOrigin;
8024
8088
  return {
8025
- href: `${origin.replace(/\/+$/, "")}/${seg}/${_optionalChain([slugHint, 'optionalAccess', _209 => _209.trim, 'call', _210 => _210()]) || identifier}`,
8089
+ href: `${origin.replace(/\/+$/, "")}/${seg}/${_optionalChain([slugHint, 'optionalAccess', _213 => _213.trim, 'call', _214 => _214()]) || identifier}`,
8026
8090
  // Report the owner so `decideNewTab` can compare it against the current
8027
8091
  // app instead of falling back to an origin guess (which is unreliable in
8028
8092
  // dev, where every platform shares localhost). `null` whenever the href
@@ -8092,7 +8156,7 @@ function getDocSourceDefaultPath(structure, folderIndexFile = DEFAULT_FOLDER_IND
8092
8156
  const hasRootIndex = structure.some((node) => node.type === "file" && node.path === folderIndexFile);
8093
8157
  if (hasRootIndex) return null;
8094
8158
  const firstFolderWithReadme = structure.find((node) => node.type === "folder" && node.hasReadme && !!node.path);
8095
- return _nullishCoalesce(_optionalChain([firstFolderWithReadme, 'optionalAccess', _211 => _211.path]), () => ( null));
8159
+ return _nullishCoalesce(_optionalChain([firstFolderWithReadme, 'optionalAccess', _215 => _215.path]), () => ( null));
8096
8160
  }
8097
8161
 
8098
8162
  // src/utils/doc-path-utils.ts
@@ -8103,7 +8167,7 @@ function pathToNodeId(path) {
8103
8167
  return path.replace(/[/\s]/g, "-").toLowerCase();
8104
8168
  }
8105
8169
  function normalizeDocPath(segments, folderIndexFile = DEFAULT_FOLDER_INDEX_FILE) {
8106
- const lowerPath = (_optionalChain([segments, 'optionalAccess', _212 => _212.join, 'call', _213 => _213("/")]) || "").toLowerCase();
8170
+ const lowerPath = (_optionalChain([segments, 'optionalAccess', _216 => _216.join, 'call', _217 => _217("/")]) || "").toLowerCase();
8107
8171
  const lowerIndex = folderIndexFile.toLowerCase();
8108
8172
  const suffix = `/${lowerIndex}`;
8109
8173
  if (lowerPath.endsWith(suffix)) return lowerPath.slice(0, -suffix.length);
@@ -8461,7 +8525,7 @@ function isValidPathPattern(pattern) {
8461
8525
  return pattern.trim().length > 0 && compile(pattern.trim()) !== null;
8462
8526
  }
8463
8527
  function matchesPathPattern(pathname, pattern) {
8464
- return _nullishCoalesce(_optionalChain([compile, 'call', _214 => _214(pattern.trim()), 'optionalAccess', _215 => _215.test, 'call', _216 => _216(pathname)]), () => ( false));
8528
+ return _nullishCoalesce(_optionalChain([compile, 'call', _218 => _218(pattern.trim()), 'optionalAccess', _219 => _219.test, 'call', _220 => _220(pathname)]), () => ( false));
8465
8529
  }
8466
8530
  function pathMatchesAny(pathname, patterns) {
8467
8531
  return (_nullishCoalesce(patterns, () => ( []))).some((pattern) => matchesPathPattern(pathname, pattern));
@@ -8472,7 +8536,7 @@ function pathMatchesAny(pathname, patterns) {
8472
8536
  var MINGO_ACCENT = "var(--ods-flamingo-cyan-base)";
8473
8537
  var ASK_AI_OPEN_EVENT = "ask-ai:open";
8474
8538
  function openAskAi(source, options) {
8475
- const prompt = _optionalChain([options, 'optionalAccess', _217 => _217.prompt, 'optionalAccess', _218 => _218.trim, 'call', _219 => _219()]);
8539
+ const prompt = _optionalChain([options, 'optionalAccess', _221 => _221.prompt, 'optionalAccess', _222 => _222.trim, 'call', _223 => _223()]);
8476
8540
  const detail = prompt ? { source: _nullishCoalesce(source, () => ( "")), prompt } : { source: _nullishCoalesce(source, () => ( "")) };
8477
8541
  window.dispatchEvent(new CustomEvent(ASK_AI_OPEN_EVENT, { detail }));
8478
8542
  }
@@ -8491,10 +8555,10 @@ function MingoAiButton({
8491
8555
  const inPage = variant === "button";
8492
8556
  const commandKey = visitor.known && _chunkK2JUJ37Dcjs.usesCommandKey.call(void 0, visitor.os);
8493
8557
  const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
8494
- const label = _nullishCoalesce(labelProp, () => ( _optionalChain([assistant, 'optionalAccess', _220 => _220.name])));
8495
- const icon = _nullishCoalesce(iconProp, () => ( _optionalChain([assistant, 'optionalAccess', _221 => _221.icon])));
8496
- const runtimeOpen = _optionalChain([assistant, 'optionalAccess', _222 => _222.open]);
8497
- const eventSource = _nullishCoalesce(source, () => ( _optionalChain([assistant, 'optionalAccess', _223 => _223.source])));
8558
+ const label = _nullishCoalesce(labelProp, () => ( _optionalChain([assistant, 'optionalAccess', _224 => _224.name])));
8559
+ const icon = _nullishCoalesce(iconProp, () => ( _optionalChain([assistant, 'optionalAccess', _225 => _225.icon])));
8560
+ const runtimeOpen = _optionalChain([assistant, 'optionalAccess', _226 => _226.open]);
8561
+ const eventSource = _nullishCoalesce(source, () => ( _optionalChain([assistant, 'optionalAccess', _227 => _227.source])));
8498
8562
  const openRef = _react.useRef.call(void 0, () => void 0);
8499
8563
  _react.useEffect.call(void 0, () => {
8500
8564
  openRef.current = () => runtimeOpen ? runtimeOpen({}) : openAskAi(eventSource);
@@ -8525,7 +8589,7 @@ function MingoAiButton({
8525
8589
  onClick: (e) => {
8526
8590
  if (runtimeOpen) runtimeOpen({});
8527
8591
  else openAskAi(eventSource);
8528
- _optionalChain([onClick, 'optionalCall', _224 => _224(e)]);
8592
+ _optionalChain([onClick, 'optionalCall', _228 => _228(e)]);
8529
8593
  },
8530
8594
  className: _chunk3ATAYP36cjs.cn.call(void 0,
8531
8595
  "group/mingo flex shrink-0 justify-start focus-visible:ring-ods-accent",
@@ -8741,10 +8805,10 @@ function QuestionChips({
8741
8805
  const request = { prompt: _nullishCoalesce(prompt.prompt, () => ( prompt.label)) };
8742
8806
  if (onOpen) onOpen(request);
8743
8807
  else openAskAi(source, request);
8744
- _optionalChain([onAsk, 'optionalCall', _225 => _225(prompt)]);
8808
+ _optionalChain([onAsk, 'optionalCall', _229 => _229(prompt)]);
8745
8809
  }
8746
8810
  }
8747
- ) : null }, _nullishCoalesce(_optionalChain([prompt, 'optionalAccess', _226 => _226.id]), () => ( `slot-${slot}`)));
8811
+ ) : null }, _nullishCoalesce(_optionalChain([prompt, 'optionalAccess', _230 => _230.id]), () => ( `slot-${slot}`)));
8748
8812
  }) });
8749
8813
  }
8750
8814
  function AskPrompts({
@@ -8858,7 +8922,7 @@ function buildAskPromptsUrl(base, { count, topic, exclude = [] }) {
8858
8922
  return `${base}${base.includes("?") ? "&" : "?"}${params.toString()}`;
8859
8923
  }
8860
8924
  function assistantAvailable(assistant) {
8861
- return !!_optionalChain([assistant, 'optionalAccess', _227 => _227.available]);
8925
+ return !!_optionalChain([assistant, 'optionalAccess', _231 => _231.available]);
8862
8926
  }
8863
8927
  function useAskPrompts({
8864
8928
  topic,
@@ -8869,13 +8933,13 @@ function useAskPrompts({
8869
8933
  const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
8870
8934
  const base = assistantAvailable(assistant) ? assistant.askPromptsUrl : void 0;
8871
8935
  const url = base && enabled ? buildAskPromptsUrl(base, { count, topic, exclude }) : null;
8872
- const { data, isLoading } = _chunkJENNI7XUcjs.useSelfFetch.call(void 0, url);
8873
- return { prompts: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _228 => _228.prompts]), () => ( [])), isLoading: !!base && (!enabled || isLoading), supported: !!base };
8936
+ const { data, isLoading } = _chunkDGNGABNGcjs.useSelfFetch.call(void 0, url);
8937
+ return { prompts: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _232 => _232.prompts]), () => ( [])), isLoading: !!base && (!enabled || isLoading), supported: !!base };
8874
8938
  }
8875
8939
  function useAssistantOpen(topic, onOpen) {
8876
8940
  const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
8877
- const runtimeOpen = _optionalChain([assistant, 'optionalAccess', _229 => _229.open]);
8878
- const source = _optionalChain([assistant, 'optionalAccess', _230 => _230.source]);
8941
+ const runtimeOpen = _optionalChain([assistant, 'optionalAccess', _233 => _233.open]);
8942
+ const source = _optionalChain([assistant, 'optionalAccess', _234 => _234.source]);
8879
8943
  return _react.useCallback.call(void 0,
8880
8944
  (request) => {
8881
8945
  const full = { ...request, topic };
@@ -8917,7 +8981,7 @@ function createShownList() {
8917
8981
  }
8918
8982
  var shownLists = /* @__PURE__ */ new Map();
8919
8983
  function useShownList() {
8920
- const scope = _nullishCoalesce(_optionalChain([_chunkEWPR7662cjs.useAssistantRuntime.call(void 0, ), 'optionalAccess', _231 => _231.askPromptsUrl]), () => ( ""));
8984
+ const scope = _nullishCoalesce(_optionalChain([_chunkEWPR7662cjs.useAssistantRuntime.call(void 0, ), 'optionalAccess', _235 => _235.askPromptsUrl]), () => ( ""));
8921
8985
  let list = shownLists.get(scope);
8922
8986
  if (!list) {
8923
8987
  list = createShownList();
@@ -8969,7 +9033,7 @@ function AssistantAskPrompts({
8969
9033
  label: _nullishCoalesce(_nullishCoalesce(label, () => ( assistant.name)), () => ( void 0)),
8970
9034
  icon: assistant.icon,
8971
9035
  onOpen: open,
8972
- onAsk: (prompt) => _optionalChain([assistant, 'access', _232 => _232.onAsk, 'optionalCall', _233 => _233({ promptId: prompt.id, topic })]),
9036
+ onAsk: (prompt) => _optionalChain([assistant, 'access', _236 => _236.onAsk, 'optionalCall', _237 => _237({ promptId: prompt.id, topic })]),
8973
9037
  align,
8974
9038
  fadeColor,
8975
9039
  className
@@ -9138,7 +9202,7 @@ function MarqueeWall({
9138
9202
  if (!container || !copy) return;
9139
9203
  const size = axis === "y" ? copy.offsetHeight : copy.offsetWidth;
9140
9204
  copySizeRef.current = size;
9141
- const clone = _optionalChain([trackRef, 'access', _234 => _234.current, 'optionalAccess', _235 => _235.querySelector, 'call', _236 => _236('[data-marquee-copy="clone"]')]);
9205
+ const clone = _optionalChain([trackRef, 'access', _238 => _238.current, 'optionalAccess', _239 => _239.querySelector, 'call', _240 => _240('[data-marquee-copy="clone"]')]);
9142
9206
  wrapSizeRef.current = clone ? axis === "y" ? clone.offsetTop - copy.offsetTop : clone.offsetLeft - copy.offsetLeft : size + (typeof copyGap === "number" ? copyGap : 0);
9143
9207
  const avail = axis === "y" ? container.clientHeight : container.clientWidth;
9144
9208
  setOverflows(size > avail + 1);
@@ -9269,7 +9333,7 @@ function MarqueeWall({
9269
9333
  if (Math.abs(delta) > 3 && !dragMovedRef.current) {
9270
9334
  dragMovedRef.current = true;
9271
9335
  try {
9272
- _optionalChain([containerRef, 'access', _237 => _237.current, 'optionalAccess', _238 => _238.setPointerCapture, 'call', _239 => _239(e.pointerId)]);
9336
+ _optionalChain([containerRef, 'access', _241 => _241.current, 'optionalAccess', _242 => _242.setPointerCapture, 'call', _243 => _243(e.pointerId)]);
9273
9337
  } catch (e19) {
9274
9338
  }
9275
9339
  }
@@ -9286,7 +9350,7 @@ function MarqueeWall({
9286
9350
  dragSuppressUntilRef.current = performance.now() + DRAG_RESUME_MS;
9287
9351
  if (dragMovedRef.current) {
9288
9352
  try {
9289
- _optionalChain([containerRef, 'access', _240 => _240.current, 'optionalAccess', _241 => _241.releasePointerCapture, 'call', _242 => _242(e.pointerId)]);
9353
+ _optionalChain([containerRef, 'access', _244 => _244.current, 'optionalAccess', _245 => _245.releasePointerCapture, 'call', _246 => _246(e.pointerId)]);
9290
9354
  } catch (e20) {
9291
9355
  }
9292
9356
  }
@@ -9618,7 +9682,7 @@ var ChatTicketItem = _react.forwardRef.call(void 0,
9618
9682
  {
9619
9683
  ref,
9620
9684
  type: "button",
9621
- onClick: () => _optionalChain([onClick, 'optionalCall', _243 => _243(ticket.id)]),
9685
+ onClick: () => _optionalChain([onClick, 'optionalCall', _247 => _247(ticket.id)]),
9622
9686
  className: _chunk3ATAYP36cjs.cn.call(void 0,
9623
9687
  "flex h-20 w-full items-center gap-4 px-4",
9624
9688
  "border-b border-ods-border bg-ods-card",
@@ -9888,7 +9952,7 @@ function MingoChatHistoryRow({
9888
9952
  const unread = _nullishCoalesce(dialog.unreadMessagesCount, () => ( 0));
9889
9953
  const hasMenu = !!onRequestRename || !!onRequestArchive || !!onRequestCopyLink || !!onRequestCompact;
9890
9954
  const owner = dialog.owner;
9891
- const hasAvatar = !!(_optionalChain([owner, 'optionalAccess', _244 => _244.name]) || _optionalChain([owner, 'optionalAccess', _245 => _245.avatarUrl]));
9955
+ const hasAvatar = !!(_optionalChain([owner, 'optionalAccess', _248 => _248.name]) || _optionalChain([owner, 'optionalAccess', _249 => _249.avatarUrl]));
9892
9956
  const [menuOpen, setMenuOpen] = _react.useState.call(void 0, false);
9893
9957
  const menuItems = chatDialogMenuItems({
9894
9958
  onCopyLink: onRequestCopyLink && (() => onRequestCopyLink(dialog)),
@@ -9913,11 +9977,11 @@ function MingoChatHistoryRow({
9913
9977
  {
9914
9978
  role: "button",
9915
9979
  tabIndex: 0,
9916
- onClick: () => _optionalChain([onSelect, 'optionalCall', _246 => _246(dialog.id)]),
9980
+ onClick: () => _optionalChain([onSelect, 'optionalCall', _250 => _250(dialog.id)]),
9917
9981
  onKeyDown: (e) => {
9918
9982
  if (e.key === "Enter" || e.key === " ") {
9919
9983
  e.preventDefault();
9920
- _optionalChain([onSelect, 'optionalCall', _247 => _247(dialog.id)]);
9984
+ _optionalChain([onSelect, 'optionalCall', _251 => _251(dialog.id)]);
9921
9985
  }
9922
9986
  },
9923
9987
  className: "flex min-w-0 flex-1 cursor-pointer items-center gap-[var(--spacing-system-xsf)] p-[var(--spacing-system-s)] focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent",
@@ -9984,8 +10048,8 @@ function MingoChatHistoryRow({
9984
10048
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9985
10049
  "span",
9986
10050
  {
9987
- onClick: () => _optionalChain([onSelect, 'optionalCall', _248 => _248(dialog.id)]),
9988
- title: _optionalChain([owner, 'optionalAccess', _249 => _249.name]) || void 0,
10051
+ onClick: () => _optionalChain([onSelect, 'optionalCall', _252 => _252(dialog.id)]),
10052
+ title: _optionalChain([owner, 'optionalAccess', _253 => _253.name]) || void 0,
9989
10053
  className: _chunk3ATAYP36cjs.cn.call(void 0,
9990
10054
  "absolute inset-0 flex cursor-pointer items-center justify-center transition-opacity",
9991
10055
  hasMenu && (menuOpen ? "pointer-events-none opacity-0" : "md:group-hover/row:pointer-events-none md:group-hover/row:opacity-0 md:peer-[:focus-within]/menu:pointer-events-none md:peer-[:focus-within]/menu:opacity-0")
@@ -9995,9 +10059,9 @@ function MingoChatHistoryRow({
9995
10059
  {
9996
10060
  variant: "round",
9997
10061
  sizePx: 24,
9998
- src: _optionalChain([owner, 'optionalAccess', _250 => _250.avatarUrl]) || void 0,
9999
- alt: _optionalChain([owner, 'optionalAccess', _251 => _251.name]) || void 0,
10000
- fallback: _optionalChain([owner, 'optionalAccess', _252 => _252.name]) || void 0,
10062
+ src: _optionalChain([owner, 'optionalAccess', _254 => _254.avatarUrl]) || void 0,
10063
+ alt: _optionalChain([owner, 'optionalAccess', _255 => _255.name]) || void 0,
10064
+ fallback: _optionalChain([owner, 'optionalAccess', _256 => _256.name]) || void 0,
10001
10065
  initialsClassName: "text-[10px] text-ods-text-secondary"
10002
10066
  }
10003
10067
  )
@@ -10049,7 +10113,7 @@ function MingoChatHistory({
10049
10113
  className
10050
10114
  }) {
10051
10115
  const groups = _react.useMemo.call(void 0, () => groupDialogs(dialogs), [dialogs]);
10052
- const noSearchResults = groups.length === 0 && !!_optionalChain([searchQuery, 'optionalAccess', _253 => _253.trim, 'call', _254 => _254()]);
10116
+ const noSearchResults = groups.length === 0 && !!_optionalChain([searchQuery, 'optionalAccess', _257 => _257.trim, 'call', _258 => _258()]);
10053
10117
  const { scrollRef, fadeTop, fadeBottom, update: updateFade } = useScrollFade();
10054
10118
  const sentinelRef = _react.useRef.call(void 0, null);
10055
10119
  const onLoadMoreRef = _react.useRef.call(void 0, onLoadMore);
@@ -10066,7 +10130,7 @@ function MingoChatHistory({
10066
10130
  const io = new IntersectionObserver(
10067
10131
  ([entry]) => {
10068
10132
  if (entry.isIntersecting && !isLoadingMoreRef.current) {
10069
- _optionalChain([onLoadMoreRef, 'access', _255 => _255.current, 'optionalCall', _256 => _256()]);
10133
+ _optionalChain([onLoadMoreRef, 'access', _259 => _259.current, 'optionalCall', _260 => _260()]);
10070
10134
  }
10071
10135
  },
10072
10136
  { root, rootMargin: "120px", threshold: 0.1 }
@@ -10251,8 +10315,8 @@ function MingoWelcome({
10251
10315
  icon: action.icon,
10252
10316
  variant: action.variant,
10253
10317
  onSelect: action.onClick,
10254
- onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _257 => _257(action)]),
10255
- onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _258 => _258()])
10318
+ onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _261 => _261(action)]),
10319
+ onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _262 => _262()])
10256
10320
  })),
10257
10321
  agentSlug,
10258
10322
  rows: 4,
@@ -10305,9 +10369,9 @@ function GuideWelcome({
10305
10369
  props: action.iconProps,
10306
10370
  accent: _nullishCoalesce(_nullishCoalesce(action.accent, () => ( accentFromIdentityIcon(icon))), () => ( "cyan"))
10307
10371
  },
10308
- onSelect: () => _optionalChain([onQuickAction, 'optionalCall', _259 => _259(action)]),
10309
- onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _260 => _260(action)]),
10310
- onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _261 => _261()])
10372
+ onSelect: () => _optionalChain([onQuickAction, 'optionalCall', _263 => _263(action)]),
10373
+ onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _264 => _264(action)]),
10374
+ onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _265 => _265()])
10311
10375
  })),
10312
10376
  [quickActions, icon, onQuickAction, onQuickActionHover, onQuickActionHoverEnd]
10313
10377
  );
@@ -10324,7 +10388,7 @@ function GuideWelcome({
10324
10388
  icon && (icon.name || icon.url) ? (
10325
10389
  // Agent-mode identity glyph (chat-config Identity tab). Sized to
10326
10390
  // match the default Mingo mark (48px).
10327
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.EntityIcon, { icon: { name: icon.name, url: icon.url, props: icon.props }, size: 48 })
10391
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.EntityIcon, { icon: { name: icon.name, url: icon.url, props: icon.props }, size: 48 })
10328
10392
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10329
10393
  _chunkLLSUVPQCcjs.MingoIcon,
10330
10394
  {
@@ -10516,7 +10580,7 @@ function MingoArchiveList({
10516
10580
  if (!sentinel || !hasMore || typeof IntersectionObserver === "undefined") return void 0;
10517
10581
  const observer = new IntersectionObserver(
10518
10582
  ([entry]) => {
10519
- if (_optionalChain([entry, 'optionalAccess', _262 => _262.isIntersecting]) && !isLoadingMoreRef.current) _optionalChain([onLoadMoreRef, 'access', _263 => _263.current, 'optionalCall', _264 => _264()]);
10583
+ if (_optionalChain([entry, 'optionalAccess', _266 => _266.isIntersecting]) && !isLoadingMoreRef.current) _optionalChain([onLoadMoreRef, 'access', _267 => _267.current, 'optionalCall', _268 => _268()]);
10520
10584
  },
10521
10585
  { rootMargin: "120px", threshold: 0.1 }
10522
10586
  );
@@ -10535,7 +10599,7 @@ function MingoArchiveList({
10535
10599
  ChatListItem,
10536
10600
  {
10537
10601
  title: dialog.title || "Untitled Chat",
10538
- onClick: () => _optionalChain([onSelectDialog, 'optionalCall', _265 => _265(dialog.id)]),
10602
+ onClick: () => _optionalChain([onSelectDialog, 'optionalCall', _269 => _269(dialog.id)]),
10539
10603
  trailing: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
10540
10604
  dialog.timestamp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap text-ods-text-secondary text-h6", children: _chunkHP4UUBJCcjs.formatRelativeTime.call(void 0, dialog.timestamp) }),
10541
10605
  dialog.owner && (dialog.owner.name || dialog.owner.avatarUrl) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -10674,7 +10738,7 @@ function ChatHeaderSearchField({
10674
10738
  const finishCollapse = _react.useCallback.call(void 0, () => {
10675
10739
  if (collapsedRef.current) return;
10676
10740
  collapsedRef.current = true;
10677
- _optionalChain([onCollapse, 'optionalCall', _266 => _266()]);
10741
+ _optionalChain([onCollapse, 'optionalCall', _270 => _270()]);
10678
10742
  }, [onCollapse]);
10679
10743
  const beginCollapse = _react.useCallback.call(void 0, () => {
10680
10744
  setExiting(true);
@@ -10755,7 +10819,7 @@ var STATUS_GLYPHS = {
10755
10819
  approval: { icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.ShieldCheckIcon, { className: "text-ods-accent" }), label: "Waiting for approval" }
10756
10820
  };
10757
10821
  function statusFor(dialog, statusOf) {
10758
- return _nullishCoalesce(_optionalChain([statusOf, 'optionalCall', _267 => _267(dialog)]), () => ( ((_nullishCoalesce(dialog.unreadMessagesCount, () => ( 0))) > 0 ? "unread" : void 0)));
10822
+ return _nullishCoalesce(_optionalChain([statusOf, 'optionalCall', _271 => _271(dialog)]), () => ( ((_nullishCoalesce(dialog.unreadMessagesCount, () => ( 0))) > 0 ? "unread" : void 0)));
10759
10823
  }
10760
10824
  function MingoChatRail({
10761
10825
  dialogs,
@@ -10784,8 +10848,8 @@ function MingoChatRail({
10784
10848
  onExpand,
10785
10849
  className
10786
10850
  }) {
10787
- const [searchOpen, setSearchOpen] = _react.useState.call(void 0, !!_optionalChain([searchQuery, 'optionalAccess', _268 => _268.trim, 'call', _269 => _269()]));
10788
- const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _270 => _270.trim, 'call', _271 => _271()]);
10851
+ const [searchOpen, setSearchOpen] = _react.useState.call(void 0, !!_optionalChain([searchQuery, 'optionalAccess', _272 => _272.trim, 'call', _273 => _273()]));
10852
+ const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _274 => _274.trim, 'call', _275 => _275()]);
10789
10853
  const items = [];
10790
10854
  if (onNewChat) items.push({ id: "new", label: "Start New Chat", icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.ChatPlusIcon, {}), onClick: onNewChat });
10791
10855
  if (onOpenArchive) {
@@ -10842,7 +10906,7 @@ function MingoChatRail({
10842
10906
  if (!sentinel || !hasMore || typeof IntersectionObserver === "undefined") return void 0;
10843
10907
  const observer = new IntersectionObserver(
10844
10908
  ([entry]) => {
10845
- if (_optionalChain([entry, 'optionalAccess', _272 => _272.isIntersecting]) && !isLoadingMoreRef.current) _optionalChain([onLoadMoreRef, 'access', _273 => _273.current, 'optionalCall', _274 => _274()]);
10909
+ if (_optionalChain([entry, 'optionalAccess', _276 => _276.isIntersecting]) && !isLoadingMoreRef.current) _optionalChain([onLoadMoreRef, 'access', _277 => _277.current, 'optionalCall', _278 => _278()]);
10846
10910
  },
10847
10911
  { rootMargin: "120px", threshold: 0.1 }
10848
10912
  );
@@ -10965,7 +11029,7 @@ function MingoChatRailRow({ dialog, active, status, onSelect, menuItems }) {
10965
11029
  {
10966
11030
  active,
10967
11031
  title,
10968
- onClick: () => _optionalChain([onSelect, 'optionalCall', _275 => _275(dialog.id)]),
11032
+ onClick: () => _optionalChain([onSelect, 'optionalCall', _279 => _279(dialog.id)]),
10969
11033
  className: _chunk3ATAYP36cjs.cn.call(void 0, hasMenu && "pr-10"),
10970
11034
  trailing: glyph ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10971
11035
  "span",
@@ -11099,7 +11163,7 @@ function MingoHistoryRail({
11099
11163
  onRetry,
11100
11164
  className
11101
11165
  }) {
11102
- const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _276 => _276.trim, 'call', _277 => _277()]);
11166
+ const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _280 => _280.trim, 'call', _281 => _281()]);
11103
11167
  const hasList = dialogs.length > 0 || hasSearch;
11104
11168
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
11105
11169
  "div",
@@ -11188,8 +11252,8 @@ function RenameChatModal({ isOpen, initialName = "", onClose, onSave }) {
11188
11252
  const save = () => {
11189
11253
  if (canSave) onSave(name.trim());
11190
11254
  };
11191
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkFDWYBJYDcjs.Modal, { isOpen, onClose, className: "md:max-w-[600px]", children: [
11192
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFDWYBJYDcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFDWYBJYDcjs.ModalTitle, { children: "Rename Chat" }) }),
11255
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk7AXOAA5Tcjs.Modal, { isOpen, onClose, className: "md:max-w-[600px]", children: [
11256
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7AXOAA5Tcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7AXOAA5Tcjs.ModalTitle, { children: "Rename Chat" }) }),
11193
11257
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-[var(--spacing-system-xxs)]", children: [
11194
11258
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "label", { htmlFor: "rename-chat-input", className: "text-ods-text-primary text-h4", children: "Chat Name" }),
11195
11259
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -11206,27 +11270,27 @@ function RenameChatModal({ isOpen, initialName = "", onClose, onSave }) {
11206
11270
  }
11207
11271
  )
11208
11272
  ] }),
11209
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkFDWYBJYDcjs.ModalFooter, { children: [
11273
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk7AXOAA5Tcjs.ModalFooter, { children: [
11210
11274
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", onClick: onClose, className: cancelBtn, children: "Cancel" }),
11211
11275
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", onClick: save, disabled: !canSave, className: saveBtn, children: "Save" })
11212
11276
  ] })
11213
11277
  ] });
11214
11278
  }
11215
11279
  function ArchiveChatModal({ isOpen, onClose, onConfirm }) {
11216
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkFDWYBJYDcjs.Modal, { isOpen, onClose, className: "md:max-w-[600px]", children: [
11217
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFDWYBJYDcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFDWYBJYDcjs.ModalTitle, { children: "Archive Chat" }) }),
11280
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk7AXOAA5Tcjs.Modal, { isOpen, onClose, className: "md:max-w-[600px]", children: [
11281
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7AXOAA5Tcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7AXOAA5Tcjs.ModalTitle, { children: "Archive Chat" }) }),
11218
11282
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "w-full text-ods-text-primary text-h4", children: "This chat will be hidden from your current chats." }),
11219
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkFDWYBJYDcjs.ModalFooter, { children: [
11283
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk7AXOAA5Tcjs.ModalFooter, { children: [
11220
11284
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", onClick: onClose, className: cancelBtn, children: "Cancel" }),
11221
11285
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", onClick: onConfirm, className: dangerBtn, children: "Archive Chat" })
11222
11286
  ] })
11223
11287
  ] });
11224
11288
  }
11225
11289
  function UnarchiveChatModal({ isOpen, onClose, onConfirm }) {
11226
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkFDWYBJYDcjs.Modal, { isOpen, onClose, className: "md:max-w-[600px]", children: [
11227
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFDWYBJYDcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFDWYBJYDcjs.ModalTitle, { children: "Unarchive Chat" }) }),
11290
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk7AXOAA5Tcjs.Modal, { isOpen, onClose, className: "md:max-w-[600px]", children: [
11291
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7AXOAA5Tcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7AXOAA5Tcjs.ModalTitle, { children: "Unarchive Chat" }) }),
11228
11292
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "w-full text-ods-text-primary text-h4", children: "This chat will be moved back to your current chats." }),
11229
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkFDWYBJYDcjs.ModalFooter, { children: [
11293
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk7AXOAA5Tcjs.ModalFooter, { children: [
11230
11294
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", onClick: onClose, className: cancelBtn, children: "Cancel" }),
11231
11295
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", onClick: onConfirm, className: saveBtn, children: "Unarchive Chat" })
11232
11296
  ] })
@@ -11248,7 +11312,7 @@ function ChatDialogModals({
11248
11312
  RenameChatModal,
11249
11313
  {
11250
11314
  isOpen: renameTarget != null,
11251
- initialName: _nullishCoalesce(_optionalChain([renameTarget, 'optionalAccess', _278 => _278.title]), () => ( "")),
11315
+ initialName: _nullishCoalesce(_optionalChain([renameTarget, 'optionalAccess', _282 => _282.title]), () => ( "")),
11252
11316
  onClose: () => setRenameTarget(null),
11253
11317
  onSave: onConfirmRename
11254
11318
  }
@@ -11465,7 +11529,7 @@ function ChatAttachmentAddButton({
11465
11529
  const canAddMore = slotsAvailable > 0 && !disabled;
11466
11530
  const handlePick = () => {
11467
11531
  if (!canAddMore) return;
11468
- _optionalChain([fileInputRef, 'access', _279 => _279.current, 'optionalAccess', _280 => _280.click, 'call', _281 => _281()]);
11532
+ _optionalChain([fileInputRef, 'access', _283 => _283.current, 'optionalAccess', _284 => _284.click, 'call', _285 => _285()]);
11469
11533
  };
11470
11534
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
11471
11535
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -11628,7 +11692,7 @@ function ChatContextMemoryBar({
11628
11692
  _react.useEffect.call(void 0, () => {
11629
11693
  if (!open) return void 0;
11630
11694
  const onOutside = (e) => {
11631
- if (_optionalChain([rootRef, 'access', _282 => _282.current, 'optionalAccess', _283 => _283.contains, 'call', _284 => _284(e.target)])) return;
11695
+ if (_optionalChain([rootRef, 'access', _286 => _286.current, 'optionalAccess', _287 => _287.contains, 'call', _288 => _288(e.target)])) return;
11632
11696
  setOpen(false);
11633
11697
  };
11634
11698
  document.addEventListener("mousedown", onOutside, true);
@@ -11811,7 +11875,7 @@ var ModelDisplay = _react2.default.forwardRef(
11811
11875
  }, ref) => {
11812
11876
  const icon = getProviderIcon(provider);
11813
11877
  const name = displayName || modelName;
11814
- const isV2 = useChatAppearance() === _chunkFDWYBJYDcjs.CHAT_APPEARANCE.V2;
11878
+ const isV2 = useChatAppearance() === _chunk7AXOAA5Tcjs.CHAT_APPEARANCE.V2;
11815
11879
  const formatCount = (count) => isV2 ? count.toLocaleString("en-US") : formatTokenCount(count);
11816
11880
  const inline = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref, className: _chunk3ATAYP36cjs.cn.call(void 0, "flex items-center gap-1 text-ods-text-secondary", "text-h6", className), ...props, children: [
11817
11881
  icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex items-center justify-center", children: icon }),
@@ -11931,7 +11995,7 @@ function ChatComposer({
11931
11995
  const locked = lock != null;
11932
11996
  const selected = _nullishCoalesce(selectedContextItems, () => ( []));
11933
11997
  const memory = _nullishCoalesce(contextMemoryItems, () => ( []));
11934
- const entityTypes = _optionalChain([contextPicker, 'optionalAccess', _285 => _285.entityTypes]);
11998
+ const entityTypes = _optionalChain([contextPicker, 'optionalAccess', _289 => _289.entityTypes]);
11935
11999
  const iconByType = _react.useMemo.call(void 0, () => {
11936
12000
  const map = /* @__PURE__ */ new Map();
11937
12001
  for (const t of _nullishCoalesce(entityTypes, () => ( []))) map.set(t.type, t.icon);
@@ -11939,7 +12003,7 @@ function ChatComposer({
11939
12003
  }, [entityTypes]);
11940
12004
  const resolveContextIcon = _react.useCallback.call(void 0, (item) => iconByType.get(item.type), [iconByType]);
11941
12005
  const inputNode = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
11942
- _chunkFDWYBJYDcjs.ChatInput,
12006
+ _chunk7AXOAA5Tcjs.ChatInput,
11943
12007
  {
11944
12008
  ref: inputRef,
11945
12009
  onSend,
@@ -11947,7 +12011,7 @@ function ChatComposer({
11947
12011
  sending,
11948
12012
  placeholder,
11949
12013
  disabled: locked,
11950
- disabledPlaceholder: _optionalChain([lock, 'optionalAccess', _286 => _286.placeholder]),
12014
+ disabledPlaceholder: _optionalChain([lock, 'optionalAccess', _290 => _290.placeholder]),
11951
12015
  previewText,
11952
12016
  fullWidth: true,
11953
12017
  className: "px-0",
@@ -11960,7 +12024,7 @@ function ChatComposer({
11960
12024
  startIcon: contextEnabled ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
11961
12025
  ChatComposerPlusMenu,
11962
12026
  {
11963
- onToggle: () => contextPickerOpen ? _optionalChain([onCloseContextPicker, 'optionalCall', _287 => _287()]) : _optionalChain([onOpenContextPicker, 'optionalCall', _288 => _288()]),
12027
+ onToggle: () => contextPickerOpen ? _optionalChain([onCloseContextPicker, 'optionalCall', _291 => _291()]) : _optionalChain([onOpenContextPicker, 'optionalCall', _292 => _292()]),
11964
12028
  open: contextPickerOpen,
11965
12029
  disabled: attachmentsDisabled || locked,
11966
12030
  dropdown: contextPicker ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -11969,8 +12033,8 @@ function ChatComposer({
11969
12033
  open: contextPickerOpen,
11970
12034
  config: contextPicker,
11971
12035
  selectedItems: selected,
11972
- onToggleItem: (item) => _optionalChain([onToggleContextItem, 'optionalCall', _289 => _289(item)]),
11973
- onClose: () => _optionalChain([onCloseContextPicker, 'optionalCall', _290 => _290()]),
12036
+ onToggleItem: (item) => _optionalChain([onToggleContextItem, 'optionalCall', _293 => _293(item)]),
12037
+ onClose: () => _optionalChain([onCloseContextPicker, 'optionalCall', _294 => _294()]),
11974
12038
  mentionQuery
11975
12039
  }
11976
12040
  ) : void 0
@@ -12161,8 +12225,8 @@ ChatSidebarSkeleton.displayName = "ChatSidebarSkeleton";
12161
12225
  var DialogListItem = _react.forwardRef.call(void 0,
12162
12226
  ({ className, dialog, isActive, onDialogSelect, onClick, ...props }, ref) => {
12163
12227
  const handleClick = (e) => {
12164
- _optionalChain([onDialogSelect, 'optionalCall', _291 => _291(dialog.id)]);
12165
- _optionalChain([onClick, 'optionalCall', _292 => _292(e)]);
12228
+ _optionalChain([onDialogSelect, 'optionalCall', _295 => _295(dialog.id)]);
12229
+ _optionalChain([onClick, 'optionalCall', _296 => _296(e)]);
12166
12230
  };
12167
12231
  const formatTimestamp = (timestamp) => {
12168
12232
  return _chunkTKFTWM3Vcjs.formatDateWithTimezone.call(void 0, timestamp, _chunkTKFTWM3Vcjs.VIEWER_TIMEZONE, "numericDateTime24h");
@@ -12235,7 +12299,7 @@ var ChatSidebar = _react.forwardRef.call(void 0,
12235
12299
  (entries) => {
12236
12300
  const [entry] = entries;
12237
12301
  if (entry.isIntersecting && !isFetchingRef.current) {
12238
- _optionalChain([onLoadMoreRef, 'access', _293 => _293.current, 'optionalCall', _294 => _294()]);
12302
+ _optionalChain([onLoadMoreRef, 'access', _297 => _297.current, 'optionalCall', _298 => _298()]);
12239
12303
  }
12240
12304
  },
12241
12305
  { root: scrollContainer, rootMargin: "100px", threshold: 0.1 }
@@ -12450,7 +12514,7 @@ function OnboardingCarousel({
12450
12514
  " of ",
12451
12515
  steps.length,
12452
12516
  ": ",
12453
- _optionalChain([steps, 'access', _295 => _295[index], 'optionalAccess', _296 => _296.title])
12517
+ _optionalChain([steps, 'access', _299 => _299[index], 'optionalAccess', _300 => _300.title])
12454
12518
  ] }),
12455
12519
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", role: "group", "aria-label": "Choose step", children: steps.map((step, i) => {
12456
12520
  const isCurrent = i === index;
@@ -12550,12 +12614,12 @@ function resolveExternalNavigation(args) {
12550
12614
 
12551
12615
  // src/components/chat/utils/execute-navigation.ts
12552
12616
  function isForeignOriginHref(href) {
12553
- return /^https?:\/\//i.test(href) && !_chunkJENNI7XUcjs.isSameOriginAbsoluteHref.call(void 0, href);
12617
+ return /^https?:\/\//i.test(href) && !_chunkDGNGABNGcjs.isSameOriginAbsoluteHref.call(void 0, href);
12554
12618
  }
12555
12619
  function runNavigation(runtime, href, path, targetPlatform, fallbackNavigate) {
12556
- const isNewTab = runtime ? _chunkJENNI7XUcjs.computeIsNewTab.call(void 0, runtime, href, _nullishCoalesce(targetPlatform, () => ( null))) : false;
12620
+ const isNewTab = runtime ? _chunkDGNGABNGcjs.computeIsNewTab.call(void 0, runtime, href, _nullishCoalesce(targetPlatform, () => ( null))) : false;
12557
12621
  if (isNewTab) {
12558
- if (_optionalChain([runtime, 'optionalAccess', _297 => _297.navigation, 'access', _298 => _298.openExternal])) runtime.navigation.openExternal(href);
12622
+ if (_optionalChain([runtime, 'optionalAccess', _301 => _301.navigation, 'access', _302 => _302.openExternal])) runtime.navigation.openExternal(href);
12559
12623
  else window.open(href, "_blank", NEW_TAB_FEATURES);
12560
12624
  return;
12561
12625
  }
@@ -12563,7 +12627,7 @@ function runNavigation(runtime, href, path, targetPlatform, fallbackNavigate) {
12563
12627
  if (target.includes("#") && _chunkK2JUJ37Dcjs.navigateSamePageHash.call(void 0, target, { headerOffset: _chunkK2JUJ37Dcjs.STICKY_HEADER_OFFSET_PX })) {
12564
12628
  return;
12565
12629
  }
12566
- const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _299 => _299.navigation, 'access', _300 => _300.navigate, 'optionalCall', _301 => _301({ href, path, targetPlatform })]), () => ( false));
12630
+ const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _303 => _303.navigation, 'access', _304 => _304.navigate, 'optionalCall', _305 => _305({ href, path, targetPlatform })]), () => ( false));
12567
12631
  if (!handled) {
12568
12632
  if (fallbackNavigate) fallbackNavigate(target);
12569
12633
  else window.location.assign(target);
@@ -12611,9 +12675,9 @@ function useNavLinkViaRuntime({
12611
12675
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
12612
12676
  const panel = useChatPanel();
12613
12677
  const resolvedHref = resolveHrefForRuntime(href, runtime);
12614
- const isNewTab = _chunkJENNI7XUcjs.computeIsNewTab.call(void 0, runtime, resolvedHref, _nullishCoalesce(targetPlatform, () => ( null)));
12678
+ const isNewTab = _chunkDGNGABNGcjs.computeIsNewTab.call(void 0, runtime, resolvedHref, _nullishCoalesce(targetPlatform, () => ( null)));
12615
12679
  const onClick = (e) => {
12616
- _optionalChain([onClickProp, 'optionalCall', _302 => _302(e)]);
12680
+ _optionalChain([onClickProp, 'optionalCall', _306 => _306(e)]);
12617
12681
  if (e.defaultPrevented) return;
12618
12682
  const handled = executeNavigation({
12619
12683
  event: e,
@@ -12623,9 +12687,9 @@ function useNavLinkViaRuntime({
12623
12687
  targetPlatform,
12624
12688
  fallbackNavigate: router.push
12625
12689
  });
12626
- if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _303 => _303.closeChat])) panel.closeChat();
12690
+ if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _307 => _307.closeChat])) panel.closeChat();
12627
12691
  };
12628
- const attrs = _chunkJENNI7XUcjs.newTabAnchorAttrs.call(void 0, isNewTab);
12692
+ const attrs = _chunkDGNGABNGcjs.newTabAnchorAttrs.call(void 0, isNewTab);
12629
12693
  return {
12630
12694
  href: resolvedHref,
12631
12695
  ...attrs,
@@ -12707,11 +12771,11 @@ var DEFAULT_CAPTIONS_PATH = "/api/captions";
12707
12771
  function getCaptionsUrl(entityType, entityId, srtContent, options) {
12708
12772
  if (!srtContent) return void 0;
12709
12773
  const hash = `${srtContent.length}-${srtContent.slice(0, 8).replace(/\s/g, "")}`;
12710
- const variant = _optionalChain([options, 'optionalAccess', _304 => _304.variant]) ? `&variant=${options.variant}` : "";
12774
+ const variant = _optionalChain([options, 'optionalAccess', _308 => _308.variant]) ? `&variant=${options.variant}` : "";
12711
12775
  return `${DEFAULT_CAPTIONS_PATH}/${entityType}/${entityId}?v=${hash}${variant}`;
12712
12776
  }
12713
12777
  function resolveCaptionsBase(endpoints) {
12714
- return _optionalChain([endpoints, 'optionalAccess', _305 => _305.captionsUrlPrefix]) || DEFAULT_CAPTIONS_PATH;
12778
+ return _optionalChain([endpoints, 'optionalAccess', _309 => _309.captionsUrlPrefix]) || DEFAULT_CAPTIONS_PATH;
12715
12779
  }
12716
12780
  function rebaseCaptionsUrl(endpoints, url) {
12717
12781
  if (!url || !url.startsWith(`${DEFAULT_CAPTIONS_PATH}/`)) return url;
@@ -12800,7 +12864,7 @@ TabsContent.displayName = TabsPrimitive.Content.displayName;
12800
12864
  // src/components/features/use-captions.ts
12801
12865
 
12802
12866
  function useCaptions() {
12803
- const endpoints = _nullishCoalesce(_optionalChain([_chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, ), 'optionalAccess', _306 => _306.endpoints]), () => ( null));
12867
+ const endpoints = _nullishCoalesce(_optionalChain([_chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, ), 'optionalAccess', _310 => _310.endpoints]), () => ( null));
12804
12868
  return _react.useMemo.call(void 0,
12805
12869
  () => ({
12806
12870
  forEntity: (entityType, entity) => getEntityCaptionUrls(endpoints, entityType, entity),
@@ -12829,7 +12893,7 @@ function UserDisplay({
12829
12893
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
12830
12894
  _chunkTKFTWM3Vcjs.SquareAvatar,
12831
12895
  {
12832
- src: avatarUrl ? _chunkJENNI7XUcjs.getProxiedImageUrl.call(void 0, avatarUrl) || avatarUrl : void 0,
12896
+ src: avatarUrl ? _chunkDGNGABNGcjs.getProxiedImageUrl.call(void 0, avatarUrl) || avatarUrl : void 0,
12833
12897
  fallback: name,
12834
12898
  alt: name,
12835
12899
  sizePx: size,
@@ -13075,9 +13139,9 @@ function CardsStrip(props) {
13075
13139
  const p = hoverPointerRef.current;
13076
13140
  if (!p.inside) return;
13077
13141
  const el = typeof document !== "undefined" ? document.elementFromPoint(p.x, p.y) : null;
13078
- const cardEl = _optionalChain([el, 'optionalAccess', _307 => _307.closest, 'optionalCall', _308 => _308("[data-strip-card-key]")]);
13079
- const scoped = cardEl && _optionalChain([scrollerRef, 'access', _309 => _309.current, 'optionalAccess', _310 => _310.contains, 'call', _311 => _311(cardEl)]) ? cardEl : null;
13080
- const key = _nullishCoalesce(_optionalChain([scoped, 'optionalAccess', _312 => _312.getAttribute, 'call', _313 => _313("data-strip-card-key")]), () => ( null));
13142
+ const cardEl = _optionalChain([el, 'optionalAccess', _311 => _311.closest, 'optionalCall', _312 => _312("[data-strip-card-key]")]);
13143
+ const scoped = cardEl && _optionalChain([scrollerRef, 'access', _313 => _313.current, 'optionalAccess', _314 => _314.contains, 'call', _315 => _315(cardEl)]) ? cardEl : null;
13144
+ const key = _nullishCoalesce(_optionalChain([scoped, 'optionalAccess', _316 => _316.getAttribute, 'call', _317 => _317("data-strip-card-key")]), () => ( null));
13081
13145
  const current = activeKeyRef.current;
13082
13146
  if (key === current) return;
13083
13147
  if (current !== null) deactivate(current);
@@ -13115,7 +13179,7 @@ function CardsStrip(props) {
13115
13179
  }, [syncHoverToPointer]);
13116
13180
  const seamBuffer = _react.useCallback.call(void 0, () => {
13117
13181
  const half = singleCopyWidthRef.current;
13118
- const viewport = _nullishCoalesce(_optionalChain([scrollerRef, 'access', _314 => _314.current, 'optionalAccess', _315 => _315.clientWidth]), () => ( 0));
13182
+ const viewport = _nullishCoalesce(_optionalChain([scrollerRef, 'access', _318 => _318.current, 'optionalAccess', _319 => _319.clientWidth]), () => ( 0));
13119
13183
  return Math.max(0, Math.min(200, half / 4, half - viewport - TRACK_GAP_PX - 1));
13120
13184
  }, []);
13121
13185
  const mirror = _react.useCallback.call(void 0,
@@ -13139,7 +13203,7 @@ function CardsStrip(props) {
13139
13203
  const scroller = scrollerRef.current;
13140
13204
  if (scroller) scroller.scrollLeft = mirror(pos);
13141
13205
  },
13142
- readBack: () => mirror(_nullishCoalesce(_optionalChain([scrollerRef, 'access', _316 => _316.current, 'optionalAccess', _317 => _317.scrollLeft]), () => ( 0))),
13206
+ readBack: () => mirror(_nullishCoalesce(_optionalChain([scrollerRef, 'access', _320 => _320.current, 'optionalAccess', _321 => _321.scrollLeft]), () => ( 0))),
13143
13207
  onAfterFrame: syncHoverIfScrolled
13144
13208
  });
13145
13209
  const [mountedIdx, setMountedIdx] = _react.useState.call(void 0, () => /* @__PURE__ */ new Set());
@@ -13187,11 +13251,11 @@ function CardsStrip(props) {
13187
13251
  fn = (el) => {
13188
13252
  if (!el) return void 0;
13189
13253
  cardElIdxRef.current.set(el, idx);
13190
- _optionalChain([cardObserverRef, 'access', _318 => _318.current, 'optionalAccess', _319 => _319.observe, 'call', _320 => _320(el)]);
13254
+ _optionalChain([cardObserverRef, 'access', _322 => _322.current, 'optionalAccess', _323 => _323.observe, 'call', _324 => _324(el)]);
13191
13255
  return () => {
13192
13256
  cardElIdxRef.current.delete(el);
13193
13257
  cardElNearRef.current.delete(el);
13194
- _optionalChain([cardObserverRef, 'access', _321 => _321.current, 'optionalAccess', _322 => _322.unobserve, 'call', _323 => _323(el)]);
13258
+ _optionalChain([cardObserverRef, 'access', _325 => _325.current, 'optionalAccess', _326 => _326.unobserve, 'call', _327 => _327(el)]);
13195
13259
  };
13196
13260
  };
13197
13261
  cardRefFns.set(idx, fn);
@@ -13210,7 +13274,7 @@ function CardsStrip(props) {
13210
13274
  const track = trackRef.current;
13211
13275
  if (!scroller || !track) return;
13212
13276
  const firstCard = track.firstElementChild;
13213
- const step = (_nullishCoalesce(_optionalChain([firstCard, 'optionalAccess', _324 => _324.offsetWidth]), () => ( 320))) + TRACK_GAP_PX;
13277
+ const step = (_nullishCoalesce(_optionalChain([firstCard, 'optionalAccess', _328 => _328.offsetWidth]), () => ( 320))) + TRACK_GAP_PX;
13214
13278
  chevronSuppressUntilRef.current = performance.now() + CHEVRON_SUPPRESS_MS;
13215
13279
  if (marqueeActiveRef.current) {
13216
13280
  glideBy((reverse ? -dir : dir) * step);
@@ -13271,11 +13335,11 @@ function CardsStrip(props) {
13271
13335
  {
13272
13336
  ref: (node) => {
13273
13337
  wrapperRef.current = node;
13274
- _optionalChain([rootRef, 'optionalCall', _325 => _325(node)]);
13338
+ _optionalChain([rootRef, 'optionalCall', _329 => _329(node)]);
13275
13339
  },
13276
13340
  className: _chunk3ATAYP36cjs.cn.call(void 0, "flex w-full min-w-0 flex-col gap-6", className),
13277
13341
  children: [
13278
- showTitle && title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${_chunkJENNI7XUcjs.SECTION_HEADING_CLASS} break-words`, children: _chunkJENNI7XUcjs.accentSentenceMarks.call(void 0, title) }),
13342
+ showTitle && title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${_chunkDGNGABNGcjs.SECTION_HEADING_CLASS} break-words`, children: _chunkDGNGABNGcjs.accentSentenceMarks.call(void 0, title) }),
13279
13343
  headerSlot,
13280
13344
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative", style: bled ? { marginLeft: -insets.left, marginRight: -insets.right } : void 0, children: [
13281
13345
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -13426,7 +13490,7 @@ function groupByAspectRatio(items, getAspectRatio) {
13426
13490
 
13427
13491
  function VideoBitesStrip({
13428
13492
  bites,
13429
- title = _chunkJENNI7XUcjs.DEFAULT_VIDEO_BITES_TITLE,
13493
+ title = _chunkDGNGABNGcjs.DEFAULT_VIDEO_BITES_TITLE,
13430
13494
  showTitle = true,
13431
13495
  filterPublished = true,
13432
13496
  profile = null,
@@ -13439,14 +13503,14 @@ function VideoBitesStrip({
13439
13503
  cardHeightMobile = 300,
13440
13504
  showChevrons = true,
13441
13505
  onBiteNavigate,
13442
- sortComparator = _chunkJENNI7XUcjs.sortBitesByCreatedAtDesc,
13506
+ sortComparator = _chunkDGNGABNGcjs.sortBitesByCreatedAtDesc,
13443
13507
  className
13444
13508
  }) {
13445
13509
  const items = _react.useMemo.call(void 0, () => {
13446
13510
  const filtered = filterPublished ? bites.filter((b) => b.published) : [...bites];
13447
13511
  return filtered.sort(sortComparator);
13448
13512
  }, [bites, filterPublished, sortComparator]);
13449
- const warmup = _chunkJENNI7XUcjs.useVideoWarmup.call(void 0, { videoUrl: _optionalChain([items, 'access', _326 => _326[0], 'optionalAccess', _327 => _327.url]) || null });
13513
+ const warmup = _chunkDGNGABNGcjs.useVideoWarmup.call(void 0, { videoUrl: _optionalChain([items, 'access', _330 => _330[0], 'optionalAccess', _331 => _331.url]) || null });
13450
13514
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13451
13515
  CardsStrip,
13452
13516
  {
@@ -13513,8 +13577,8 @@ function VideoBiteCard({
13513
13577
  const controlled = active !== void 0;
13514
13578
  const [selfActive, setSelfActive] = _react.useState.call(void 0, false);
13515
13579
  const isActive = controlled ? !!active : selfActive;
13516
- const activate = () => controlled ? _optionalChain([onActivate, 'optionalCall', _328 => _328(key)]) : setSelfActive(true);
13517
- const deactivate = () => controlled ? _optionalChain([onDeactivate, 'optionalCall', _329 => _329(key)]) : setSelfActive(false);
13580
+ const activate = () => controlled ? _optionalChain([onActivate, 'optionalCall', _332 => _332(key)]) : setSelfActive(true);
13581
+ const deactivate = () => controlled ? _optionalChain([onDeactivate, 'optionalCall', _333 => _333(key)]) : setSelfActive(false);
13518
13582
  const titleInputRef = _react.useRef.call(void 0, null);
13519
13583
  _chunkULWVKHSIcjs.useIsomorphicLayoutEffect.call(void 0, () => {
13520
13584
  const el = titleInputRef.current;
@@ -13524,7 +13588,7 @@ function VideoBiteCard({
13524
13588
  });
13525
13589
  const navigate = () => {
13526
13590
  if (bite.onNavigate) bite.onNavigate();
13527
- else _optionalChain([onBiteNavigate, 'optionalCall', _330 => _330(bite, index)]);
13591
+ else _optionalChain([onBiteNavigate, 'optionalCall', _334 => _334(bite, index)]);
13528
13592
  };
13529
13593
  const handlePointerEnter = () => {
13530
13594
  if (!isTouch) activate();
@@ -13549,9 +13613,9 @@ function VideoBiteCard({
13549
13613
  placeholder: "Title (optional)",
13550
13614
  "aria-label": "Bite title",
13551
13615
  rows: 1,
13552
- onChange: (e) => _optionalChain([onTitleChange, 'optionalCall', _331 => _331(e.target.value)]),
13616
+ onChange: (e) => _optionalChain([onTitleChange, 'optionalCall', _335 => _335(e.target.value)]),
13553
13617
  ref: titleInputRef,
13554
- onBlur: (e) => _optionalChain([onTitleCommit, 'optionalCall', _332 => _332(e.target.value)]),
13618
+ onBlur: (e) => _optionalChain([onTitleCommit, 'optionalCall', _336 => _336(e.target.value)]),
13555
13619
  onClick: (e) => e.stopPropagation(),
13556
13620
  className: _chunk3ATAYP36cjs.cn.call(void 0,
13557
13621
  titleClass,
@@ -13593,7 +13657,7 @@ function VideoBiteCard({
13593
13657
  style: { aspectRatio: cssAspect, ...height !== void 0 ? { height, maxWidth: STRIP_CELL_MAX_WIDTH } : {} },
13594
13658
  children: [
13595
13659
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13596
- _chunkJENNI7XUcjs.VideoHoverPreviewSurface,
13660
+ _chunkDGNGABNGcjs.VideoHoverPreviewSurface,
13597
13661
  {
13598
13662
  url: bite.url,
13599
13663
  posterUrl: bite.thumbnail_url,
@@ -13628,7 +13692,7 @@ function VideoBiteCard({
13628
13692
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
13629
13693
  "div",
13630
13694
  {
13631
- ref: (node) => _optionalChain([rootRef, 'optionalCall', _333 => _333(node)]),
13695
+ ref: (node) => _optionalChain([rootRef, 'optionalCall', _337 => _337(node)]),
13632
13696
  "aria-hidden": isClone || void 0,
13633
13697
  "data-strip-card-key": key,
13634
13698
  className: _chunk3ATAYP36cjs.cn.call(void 0,
@@ -13664,7 +13728,7 @@ function EntityVideoSection({
13664
13728
  title = "Video",
13665
13729
  videoSummary,
13666
13730
  videoBites,
13667
- bitesTitle = _chunkJENNI7XUcjs.DEFAULT_VIDEO_BITES_TITLE,
13731
+ bitesTitle = _chunkDGNGABNGcjs.DEFAULT_VIDEO_BITES_TITLE,
13668
13732
  filterPublishedBites = true,
13669
13733
  bitesProfile = null,
13670
13734
  bitesHref,
@@ -13683,8 +13747,8 @@ function EntityVideoSection({
13683
13747
  const hasHighlight = !!highlightVideoUrl;
13684
13748
  const hasVideo = hasFullVideo || hasHighlight;
13685
13749
  const derivedCaptions = captionsEntity ? captions.forEntityId(captionsEntity.type, captionsEntity.id) : null;
13686
- const captionsUrl = _nullishCoalesce(captionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _334 => _334.captionsUrl])));
13687
- const highlightCaptionsUrl = _nullishCoalesce(highlightCaptionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _335 => _335.highlightCaptionsUrl])));
13750
+ const captionsUrl = _nullishCoalesce(captionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _338 => _338.captionsUrl])));
13751
+ const highlightCaptionsUrl = _nullishCoalesce(highlightCaptionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _339 => _339.highlightCaptionsUrl])));
13688
13752
  if (!hasVideo && !videoSummary && (!videoBites || videoBites.length === 0)) {
13689
13753
  return null;
13690
13754
  }
@@ -13711,7 +13775,7 @@ function EntityVideoSection({
13711
13775
  )
13712
13776
  ] }),
13713
13777
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TabsContent, { value: "full-video", className: "mt-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13714
- _chunkJENNI7XUcjs.Video,
13778
+ _chunkDGNGABNGcjs.Video,
13715
13779
  {
13716
13780
  kind: fullVideoKind,
13717
13781
  url: fullVideoUrl,
@@ -13724,7 +13788,7 @@ function EntityVideoSection({
13724
13788
  }
13725
13789
  ) }),
13726
13790
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TabsContent, { value: "highlights", className: "mt-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13727
- _chunkJENNI7XUcjs.Video,
13791
+ _chunkDGNGABNGcjs.Video,
13728
13792
  {
13729
13793
  url: highlightVideoUrl,
13730
13794
  poster: highlightVideoThumbnail,
@@ -13733,7 +13797,7 @@ function EntityVideoSection({
13733
13797
  }
13734
13798
  ) })
13735
13799
  ] }) : fullVideoUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13736
- _chunkJENNI7XUcjs.Video,
13800
+ _chunkDGNGABNGcjs.Video,
13737
13801
  {
13738
13802
  kind: fullVideoKind,
13739
13803
  url: fullVideoUrl,
@@ -13745,7 +13809,7 @@ function EntityVideoSection({
13745
13809
  priority
13746
13810
  }
13747
13811
  ) : highlightVideoUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13748
- _chunkJENNI7XUcjs.Video,
13812
+ _chunkDGNGABNGcjs.Video,
13749
13813
  {
13750
13814
  url: highlightVideoUrl,
13751
13815
  poster: highlightVideoThumbnail,
@@ -13755,7 +13819,7 @@ function EntityVideoSection({
13755
13819
  }
13756
13820
  ) : null),
13757
13821
  videoSummary && MarkdownRenderer && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 flex-col gap-6", children: [
13758
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${_chunkJENNI7XUcjs.SECTION_HEADING_CLASS} break-words`, children: "Summary" }),
13822
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${_chunkDGNGABNGcjs.SECTION_HEADING_CLASS} break-words`, children: "Summary" }),
13759
13823
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-hidden break-words text-ods-text-primary text-h4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: videoSummary }) })
13760
13824
  ] }),
13761
13825
  videoBites && videoBites.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -14002,7 +14066,7 @@ var MediaSkeleton = {
14002
14066
 
14003
14067
  function designDocPeople(doc) {
14004
14068
  const people = [];
14005
- if (_optionalChain([doc, 'access', _336 => _336.author, 'optionalAccess', _337 => _337.full_name]))
14069
+ if (_optionalChain([doc, 'access', _340 => _340.author, 'optionalAccess', _341 => _341.full_name]))
14006
14070
  people.push({
14007
14071
  key: `dri-${_nullishCoalesce(doc.author.id, () => ( doc.author.full_name))}`,
14008
14072
  name: doc.author.full_name,
@@ -14015,14 +14079,14 @@ function designDocPeople(doc) {
14015
14079
  return people;
14016
14080
  }
14017
14081
  function designDocMetaLine(doc) {
14018
- return [_optionalChain([doc, 'access', _338 => _338.author, 'optionalAccess', _339 => _339.full_name]) ? `DRI ${doc.author.full_name}` : null, `updated ${_chunkJENNI7XUcjs.formatDateShort.call(void 0, doc.updated_at)}`].filter(Boolean).join(" \xB7 ");
14082
+ return [_optionalChain([doc, 'access', _342 => _342.author, 'optionalAccess', _343 => _343.full_name]) ? `DRI ${doc.author.full_name}` : null, `updated ${_chunkDGNGABNGcjs.formatDateShort.call(void 0, doc.updated_at)}`].filter(Boolean).join(" \xB7 ");
14019
14083
  }
14020
14084
  function DesignDocCardSkeleton() {
14021
14085
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
14022
14086
  "div",
14023
14087
  {
14024
14088
  className: _chunk3ATAYP36cjs.cn.call(void 0,
14025
- _chunkJENNI7XUcjs.CONTENT_CARD_SKELETON_FRAME_CLASS,
14089
+ _chunkDGNGABNGcjs.CONTENT_CARD_SKELETON_FRAME_CLASS,
14026
14090
  "flex h-full flex-col gap-[var(--spacing-system-mf)] p-[var(--spacing-system-lf)]"
14027
14091
  ),
14028
14092
  role: "status",
@@ -14052,7 +14116,7 @@ function DesignDocCardSkeleton() {
14052
14116
  function DesignDocCard({ doc, href, target, rel, className }) {
14053
14117
  const readiness = DESIGN_DOC_READINESS_DISPLAY[designDocReadiness(doc.completion)];
14054
14118
  const people = designDocPeople(doc);
14055
- const link = _chunkJENNI7XUcjs.safeHref.call(void 0, _nullishCoalesce(href, () => ( null)));
14119
+ const link = _chunkDGNGABNGcjs.safeHref.call(void 0, _nullishCoalesce(href, () => ( null)));
14056
14120
  const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
14057
14121
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center gap-[16px]", children: [
14058
14122
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
@@ -14060,7 +14124,7 @@ function DesignDocCard({ doc, href, target, rel, className }) {
14060
14124
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[20px] items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h5", children: designDocMetaLine(doc) }) })
14061
14125
  ] }),
14062
14126
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14063
- _chunkJENNI7XUcjs.StatusBadge,
14127
+ _chunkDGNGABNGcjs.StatusBadge,
14064
14128
  {
14065
14129
  text: readiness.label,
14066
14130
  colorScheme: readiness.scheme,
@@ -14070,16 +14134,16 @@ function DesignDocCard({ doc, href, target, rel, className }) {
14070
14134
  }
14071
14135
  )
14072
14136
  ] }),
14073
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.StatusBadge, { text: readiness.label, colorScheme: readiness.scheme, variant: "button", singleLine: true }) }),
14137
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.StatusBadge, { text: readiness.label, colorScheme: readiness.scheme, variant: "button", singleLine: true }) }),
14074
14138
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-[72px] items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "line-clamp-3 text-ods-text-secondary text-h4", children: doc.summary || "" }) }),
14075
14139
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
14076
14140
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center justify-between gap-2", children: [
14077
14141
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: formatCompletionLabelWithBlockers(doc.completion) }),
14078
- people.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLV6UJD2Kcjs.AvatarStack, { size: "xs", people, className: "shrink-0" }) : null
14142
+ people.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJKWQWHNVcjs.AvatarStack, { size: "xs", people, className: "shrink-0" }) : null
14079
14143
  ] })
14080
14144
  ] });
14081
14145
  const outer = _chunk3ATAYP36cjs.cn.call(void 0,
14082
- _chunkJENNI7XUcjs.CONTENT_CARD_FRAME_CLASS,
14146
+ _chunkDGNGABNGcjs.CONTENT_CARD_FRAME_CLASS,
14083
14147
  "flex h-full flex-col gap-[var(--spacing-system-mf)] p-[var(--spacing-system-lf)]",
14084
14148
  className
14085
14149
  );
@@ -14223,26 +14287,26 @@ function GitHubActivityCard({ item, variant = "compact", className, anchorProps
14223
14287
  metaParts.push(
14224
14288
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap", children: dateText }, "date")
14225
14289
  );
14226
- const href = _chunkJENNI7XUcjs.safeHref.call(void 0, item.url);
14290
+ const href = _chunkDGNGABNGcjs.safeHref.call(void 0, item.url);
14227
14291
  const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
14228
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_ICON_SLOT, children: kindIcon(kind, "h-5 w-5") }),
14229
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TEXT_COL, children: [
14230
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_TITLE_ROW} flex-nowrap gap-1.5`, children: [
14292
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_ICON_SLOT, children: kindIcon(kind, "h-5 w-5") }),
14293
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TEXT_COL, children: [
14294
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_TITLE_ROW} flex-nowrap gap-1.5`, children: [
14231
14295
  reviewState ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ReviewStateBadge, { state: reviewState }) : null,
14232
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TITLE, children: primaryText })
14296
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TITLE, children: primaryText })
14233
14297
  ] }),
14234
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react2.default.Fragment, { children: [
14298
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react2.default.Fragment, { children: [
14235
14299
  i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-ods-text-secondary/40", children: "\xB7" }) : null,
14236
14300
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
14237
14301
  ] }, i)) }) }),
14238
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_SUMMARY, children: _chunkJENNI7XUcjs.COMPACT_CARD_ROW_FILLER }) })
14302
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_SUMMARY, children: _chunkDGNGABNGcjs.COMPACT_CARD_ROW_FILLER }) })
14239
14303
  ] }),
14240
14304
  href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
14241
14305
  ] });
14242
14306
  if (anchorProps) {
14243
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { ...anchorProps, className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
14307
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { ...anchorProps, className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
14244
14308
  }
14245
- return href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href, target: "_blank", rel: "noopener noreferrer", className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
14309
+ return href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href, target: "_blank", rel: "noopener noreferrer", className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
14246
14310
  }
14247
14311
  function GitHubActivityCardSkeleton({
14248
14312
  variant = "compact",
@@ -14259,12 +14323,12 @@ function GitHubActivityCardSkeleton({
14259
14323
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-20 shrink-0 rounded bg-ods-bg/60" })
14260
14324
  ] });
14261
14325
  }
14262
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_SKELETON_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
14263
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_SKELETON_IMAGE_SLOT }),
14264
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TEXT_COL, children: [
14265
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }) }),
14266
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3 w-1/2 rounded bg-ods-bg/70" }) }),
14267
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_SUMMARY, children: _chunkJENNI7XUcjs.COMPACT_CARD_ROW_FILLER }) })
14326
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_SKELETON_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
14327
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_SKELETON_IMAGE_SLOT }),
14328
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TEXT_COL, children: [
14329
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }) }),
14330
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3 w-1/2 rounded bg-ods-bg/70" }) }),
14331
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_SUMMARY, children: _chunkDGNGABNGcjs.COMPACT_CARD_ROW_FILLER }) })
14268
14332
  ] }),
14269
14333
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
14270
14334
  ] });
@@ -14314,23 +14378,23 @@ function SlackMessageCard({ item, variant = "compact", className, anchorProps })
14314
14378
  metaParts.push(
14315
14379
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap", children: dateText }, "date")
14316
14380
  );
14317
- const href = _chunkJENNI7XUcjs.safeHref.call(void 0, item.url);
14381
+ const href = _chunkDGNGABNGcjs.safeHref.call(void 0, item.url);
14318
14382
  const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
14319
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLLSUVPQCcjs.SlackIcon, { className: "h-5 w-5" }) }),
14320
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TEXT_COL, children: [
14321
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TITLE, children: item.title }) }),
14322
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_SUMMARY, children: item.preview || _chunkJENNI7XUcjs.COMPACT_CARD_ROW_FILLER }) }),
14323
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW, children: metaParts.length > 0 ? metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react2.default.Fragment, { children: [
14383
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLLSUVPQCcjs.SlackIcon, { className: "h-5 w-5" }) }),
14384
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TEXT_COL, children: [
14385
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TITLE, children: item.title }) }),
14386
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_SUMMARY, children: item.preview || _chunkDGNGABNGcjs.COMPACT_CARD_ROW_FILLER }) }),
14387
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW, children: metaParts.length > 0 ? metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react2.default.Fragment, { children: [
14324
14388
  i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-ods-text-secondary/40", children: "\xB7" }) : null,
14325
14389
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
14326
- ] }, i)) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_SUMMARY, children: _chunkJENNI7XUcjs.COMPACT_CARD_ROW_FILLER }) }) })
14390
+ ] }, i)) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_SUMMARY, children: _chunkDGNGABNGcjs.COMPACT_CARD_ROW_FILLER }) }) })
14327
14391
  ] }),
14328
14392
  href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
14329
14393
  ] });
14330
14394
  if (anchorProps) {
14331
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { ...anchorProps, className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
14395
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { ...anchorProps, className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
14332
14396
  }
14333
- return href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href, target: "_blank", rel: "noopener noreferrer", className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
14397
+ return href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href, target: "_blank", rel: "noopener noreferrer", className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
14334
14398
  }
14335
14399
  function SlackMessageCardSkeleton({
14336
14400
  variant = "compact",
@@ -14345,12 +14409,12 @@ function SlackMessageCardSkeleton({
14345
14409
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-20 shrink-0 rounded bg-ods-bg/60" })
14346
14410
  ] });
14347
14411
  }
14348
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_SKELETON_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
14349
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_SKELETON_IMAGE_SLOT }),
14350
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TEXT_COL, children: [
14351
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }) }),
14352
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3 w-5/6 rounded bg-ods-bg/60" }) }),
14353
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3 w-1/3 rounded bg-ods-bg/70" }) })
14412
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_SKELETON_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
14413
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_SKELETON_IMAGE_SLOT }),
14414
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TEXT_COL, children: [
14415
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }) }),
14416
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3 w-5/6 rounded bg-ods-bg/60" }) }),
14417
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3 w-1/3 rounded bg-ods-bg/70" }) })
14354
14418
  ] }),
14355
14419
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
14356
14420
  ] });
@@ -14386,7 +14450,7 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
14386
14450
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `flex min-w-0 items-center gap-3 ${_nullishCoalesce(className, () => ( ""))}`, children: [
14387
14451
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "max-w-[260px] shrink-0 truncate text-ods-text-primary text-h6", children: item.title }),
14388
14452
  item.preview ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 flex-1 truncate text-ods-text-secondary text-h6", children: item.preview }) : null,
14389
- statusText ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.StatusBadge, { text: statusText, variant: "button", colorScheme: statusScheme(item.status) }) : null,
14453
+ statusText ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.StatusBadge, { text: statusText, variant: "button", colorScheme: statusScheme(item.status) }) : null,
14390
14454
  dateText ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "w-24 shrink-0 text-right text-ods-text-secondary text-h6", children: dateText }) : null
14391
14455
  ] });
14392
14456
  }
@@ -14400,13 +14464,13 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
14400
14464
  metaParts.push(
14401
14465
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap", children: dateText }, "date")
14402
14466
  );
14403
- const href = _chunkJENNI7XUcjs.safeHref.call(void 0, item.url);
14467
+ const href = _chunkDGNGABNGcjs.safeHref.call(void 0, item.url);
14404
14468
  const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
14405
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TEXT_COL, children: [
14469
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TEXT_COL, children: [
14406
14470
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 flex-wrap items-center gap-1.5", children: [
14407
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_TITLE} min-w-0 shrink`, children: item.title }),
14471
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_TITLE} min-w-0 shrink`, children: item.title }),
14408
14472
  priorityText ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14409
- _chunkJENNI7XUcjs.StatusBadge,
14473
+ _chunkDGNGABNGcjs.StatusBadge,
14410
14474
  {
14411
14475
  text: priorityText,
14412
14476
  variant: "button",
@@ -14415,7 +14479,7 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
14415
14479
  }
14416
14480
  ) : null,
14417
14481
  statusText ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14418
- _chunkJENNI7XUcjs.StatusBadge,
14482
+ _chunkDGNGABNGcjs.StatusBadge,
14419
14483
  {
14420
14484
  text: statusText,
14421
14485
  variant: "button",
@@ -14429,7 +14493,7 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
14429
14493
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: item.customerEmail })
14430
14494
  ] }) : null,
14431
14495
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-4 whitespace-pre-wrap break-words text-ods-text-secondary text-h6", children: item.preview || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "italic text-ods-text-secondary/60", children: "No description provided." }) }) }),
14432
- metaParts.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react2.default.Fragment, { children: [
14496
+ metaParts.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react2.default.Fragment, { children: [
14433
14497
  i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-ods-text-secondary/40", children: "\xB7" }) : null,
14434
14498
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
14435
14499
  ] }, i)) }) }) : null
@@ -14437,9 +14501,9 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
14437
14501
  href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
14438
14502
  ] });
14439
14503
  if (anchorProps) {
14440
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { ...anchorProps, className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
14504
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { ...anchorProps, className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
14441
14505
  }
14442
- return href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href, target: "_blank", rel: "noopener noreferrer", className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
14506
+ return href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href, target: "_blank", rel: "noopener noreferrer", className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
14443
14507
  }
14444
14508
  function HubspotTicketCardSkeleton({
14445
14509
  variant = "compact",
@@ -14453,8 +14517,8 @@ function HubspotTicketCardSkeleton({
14453
14517
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-20 shrink-0 rounded bg-ods-bg/60" })
14454
14518
  ] });
14455
14519
  }
14456
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_SKELETON_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
14457
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TEXT_COL, children: [
14520
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_SKELETON_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
14521
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TEXT_COL, children: [
14458
14522
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 flex-wrap items-center gap-1.5", children: [
14459
14523
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }),
14460
14524
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-4 w-12 rounded-full bg-ods-bg/60" }),
@@ -14467,7 +14531,7 @@ function HubspotTicketCardSkeleton({
14467
14531
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-5 w-3/4 rounded bg-ods-bg/60" }),
14468
14532
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-5 w-2/5 rounded bg-ods-bg/60" })
14469
14533
  ] }),
14470
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3 w-1/3 rounded bg-ods-bg/70" }) })
14534
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3 w-1/3 rounded bg-ods-bg/70" }) })
14471
14535
  ] }),
14472
14536
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3.5 w-3.5 rounded bg-ods-bg" }) })
14473
14537
  ] });
@@ -14478,10 +14542,10 @@ function HubspotTicketCardSkeleton({
14478
14542
 
14479
14543
  function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
14480
14544
  const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
14481
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TEXT_COL, children: [
14545
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TEXT_COL, children: [
14482
14546
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 flex-wrap items-center gap-1.5", children: [
14483
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_TITLE} min-w-0 shrink`, children: item.title }),
14484
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.StatusBadge, { text: badgeText, variant: "button", colorScheme: "cyan", className: "shrink-0" })
14547
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_TITLE} min-w-0 shrink`, children: item.title }),
14548
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.StatusBadge, { text: badgeText, variant: "button", colorScheme: "cyan", className: "shrink-0" })
14485
14549
  ] }),
14486
14550
  item.path ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-center gap-1 text-ods-text-secondary text-h6", children: [
14487
14551
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-ods-text-secondary/70", children: "Path:" }),
@@ -14489,16 +14553,16 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
14489
14553
  ] }) : null,
14490
14554
  item.preview ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 whitespace-pre-wrap break-words text-ods-text-secondary text-h6", children: item.preview }) }) : null
14491
14555
  ] }),
14492
- _optionalChain([anchorProps, 'optionalAccess', _340 => _340.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
14556
+ _optionalChain([anchorProps, 'optionalAccess', _344 => _344.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
14493
14557
  ] });
14494
14558
  if (!anchorProps) {
14495
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
14559
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
14496
14560
  }
14497
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { ...anchorProps, className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
14561
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { ...anchorProps, className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
14498
14562
  }
14499
14563
  function DataRoomDocCardSkeleton({ className }) {
14500
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_SKELETON_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
14501
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TEXT_COL, children: [
14564
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_SKELETON_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
14565
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TEXT_COL, children: [
14502
14566
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-center gap-1.5", children: [
14503
14567
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }),
14504
14568
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-4 w-16 rounded-full bg-ods-bg/60" })
@@ -14517,31 +14581,31 @@ function DataRoomDocCardSkeleton({ className }) {
14517
14581
 
14518
14582
 
14519
14583
  function CampaignCardAdmin({ campaign, className, anchorProps }) {
14520
- const goalsCount = _optionalChain([campaign, 'access', _341 => _341.goals, 'optionalAccess', _342 => _342.length]) || 0;
14584
+ const goalsCount = _optionalChain([campaign, 'access', _345 => _345.goals, 'optionalAccess', _346 => _346.length]) || 0;
14521
14585
  const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
14522
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Megaphone, { className: "h-5 w-5" }) }),
14523
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TEXT_COL, children: [
14524
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TITLE, children: campaign.name }) }),
14525
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_SUBTITLE, children: [
14526
- campaign.start_date ? _chunkJENNI7XUcjs.formatDateShort.call(void 0, campaign.start_date) : null,
14586
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Megaphone, { className: "h-5 w-5" }) }),
14587
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TEXT_COL, children: [
14588
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TITLE, children: campaign.name }) }),
14589
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_SUBTITLE, children: [
14590
+ campaign.start_date ? _chunkDGNGABNGcjs.formatDateShort.call(void 0, campaign.start_date) : null,
14527
14591
  goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
14528
14592
  "Marketing campaign"
14529
14593
  ].filter(Boolean).join(" \xB7 ") }) }),
14530
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_SUMMARY, children: campaign.description || _chunkJENNI7XUcjs.COMPACT_CARD_ROW_FILLER }) })
14594
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_SUMMARY, children: campaign.description || _chunkDGNGABNGcjs.COMPACT_CARD_ROW_FILLER }) })
14531
14595
  ] })
14532
14596
  ] });
14533
14597
  if (anchorProps) {
14534
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { ...anchorProps, className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: innerChildren });
14598
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { ...anchorProps, className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: innerChildren });
14535
14599
  }
14536
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: innerChildren });
14600
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: innerChildren });
14537
14601
  }
14538
14602
  function CampaignCardAdminSkeleton({ className }) {
14539
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_SKELETON_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
14540
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_SKELETON_IMAGE_SLOT }),
14541
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TEXT_COL, children: [
14542
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
14543
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3 w-1/2 rounded bg-ods-bg/70" }) }),
14544
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
14603
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_SKELETON_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
14604
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_SKELETON_IMAGE_SLOT }),
14605
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TEXT_COL, children: [
14606
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3.5 w-3/5 rounded bg-ods-bg" }) }),
14607
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3 w-1/2 rounded bg-ods-bg/70" }) }),
14608
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3 w-11/12 rounded bg-ods-bg/40" }) })
14545
14609
  ] })
14546
14610
  ] });
14547
14611
  }
@@ -14550,14 +14614,14 @@ function CampaignCardAdminSkeleton({ className }) {
14550
14614
 
14551
14615
 
14552
14616
  function GenericEntityCard({ item, className, anchorProps }) {
14553
- const href = _chunkJENNI7XUcjs.safeHref.call(void 0, item.url);
14617
+ const href = _chunkDGNGABNGcjs.safeHref.call(void 0, item.url);
14554
14618
  const dateText = _chunkTKFTWM3Vcjs.formatDateUTC.call(void 0, item.dateUpdated, { fallback: "", timezone: "local" });
14555
14619
  const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
14556
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TEXT_COL, children: [
14620
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TEXT_COL, children: [
14557
14621
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 flex-wrap items-center gap-1.5", children: [
14558
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_TITLE} min-w-0 shrink`, children: item.title }),
14622
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_TITLE} min-w-0 shrink`, children: item.title }),
14559
14623
  item.badge ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14560
- _chunkJENNI7XUcjs.StatusBadge,
14624
+ _chunkDGNGABNGcjs.StatusBadge,
14561
14625
  {
14562
14626
  text: item.badge.text,
14563
14627
  variant: "button",
@@ -14575,18 +14639,18 @@ function GenericEntityCard({ item, className, anchorProps }) {
14575
14639
  ] }),
14576
14640
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate font-medium text-ods-text-primary", children: f.value })
14577
14641
  ] }, i)) }) : null,
14578
- dateText ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap", children: dateText }) }) }) : null
14642
+ dateText ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap", children: dateText }) }) }) : null
14579
14643
  ] }),
14580
14644
  href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
14581
14645
  ] });
14582
14646
  if (anchorProps) {
14583
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { ...anchorProps, className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
14647
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { ...anchorProps, className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body });
14584
14648
  }
14585
- return href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href, className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
14649
+ return href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href, className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: body }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
14586
14650
  }
14587
14651
  function GenericEntityCardSkeleton({ className }) {
14588
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_SKELETON_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
14589
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TEXT_COL, children: [
14652
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_SKELETON_OUTER} ${_nullishCoalesce(className, () => ( ""))}`, children: [
14653
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TEXT_COL, children: [
14590
14654
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-center gap-1.5", children: [
14591
14655
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-3.5 w-2/3 rounded bg-ods-bg" }),
14592
14656
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-4 w-16 rounded-full bg-ods-bg/60" })
@@ -14631,8 +14695,8 @@ function getVendorLogo(vendor) {
14631
14695
  if (vendor.logo) {
14632
14696
  return fixSupabaseStorageUrl(vendor.logo);
14633
14697
  }
14634
- const logoMedia = _optionalChain([vendor, 'access', _343 => _343.vendor_media, 'optionalAccess', _344 => _344.find, 'call', _345 => _345((m) => m.media_type === "logo")]);
14635
- if (_optionalChain([logoMedia, 'optionalAccess', _346 => _346.media_url])) {
14698
+ const logoMedia = _optionalChain([vendor, 'access', _347 => _347.vendor_media, 'optionalAccess', _348 => _348.find, 'call', _349 => _349((m) => m.media_type === "logo")]);
14699
+ if (_optionalChain([logoMedia, 'optionalAccess', _350 => _350.media_url])) {
14636
14700
  return fixSupabaseStorageUrl(logoMedia.media_url);
14637
14701
  }
14638
14702
  return null;
@@ -14688,7 +14752,7 @@ function VendorIcon({
14688
14752
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: containerClasses, children: logoUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14689
14753
  _chunkMGHIV4L6cjs.next_image_default,
14690
14754
  {
14691
- src: _chunkJENNI7XUcjs.getProxiedImageUrl2.call(void 0, logoUrl) || logoUrl,
14755
+ src: _chunkDGNGABNGcjs.getProxiedImageUrl2.call(void 0, logoUrl) || logoUrl,
14692
14756
  alt: `${vendor.title} logo`,
14693
14757
  width,
14694
14758
  height,
@@ -14701,7 +14765,7 @@ function VendorIcon({
14701
14765
  "flex items-center justify-center uppercase text-h6",
14702
14766
  backgroundStyle === "white" ? "text-[#333333]" : "text-ods-text-secondary"
14703
14767
  ),
14704
- children: _optionalChain([vendor, 'access', _347 => _347.title, 'optionalAccess', _348 => _348.substring, 'call', _349 => _349(0, 2)]) || "??"
14768
+ children: _optionalChain([vendor, 'access', _351 => _351.title, 'optionalAccess', _352 => _352.substring, 'call', _353 => _353(0, 2)]) || "??"
14705
14769
  }
14706
14770
  ) });
14707
14771
  }
@@ -14718,8 +14782,8 @@ function useChatCardItem(type, id) {
14718
14782
  const res = await _chunkULWVKHSIcjs.embedAuthedFetch.call(void 0, url);
14719
14783
  if (!res.ok) throw new Error(`chat card fetch failed: ${res.status}`);
14720
14784
  const data = await res.json();
14721
- const items = _chunkJENNI7XUcjs.extractCardItems.call(void 0, type, data);
14722
- const match = items.find((it) => _chunkJENNI7XUcjs.extractItemId.call(void 0, type, it) === id);
14785
+ const items = _chunkDGNGABNGcjs.extractCardItems.call(void 0, type, data);
14786
+ const match = items.find((it) => _chunkDGNGABNGcjs.extractItemId.call(void 0, type, it) === id);
14723
14787
  return _nullishCoalesce(match, () => ( null));
14724
14788
  },
14725
14789
  enabled: !!url && id.length > 0,
@@ -14894,7 +14958,7 @@ function pickFetchedCardHref({
14894
14958
  itemHref,
14895
14959
  allowComposed
14896
14960
  }) {
14897
- if (_optionalChain([composed, 'optionalAccess', _350 => _350.hostOverride])) {
14961
+ if (_optionalChain([composed, 'optionalAccess', _354 => _354.hostOverride])) {
14898
14962
  return { source: "hostOverride", href: composed.href, targetPlatform: composed.targetPlatform };
14899
14963
  }
14900
14964
  if (itemHref) return { source: "item", href: itemHref };
@@ -14910,7 +14974,7 @@ function resolveFetchedCardHref({
14910
14974
  composeContentUrl
14911
14975
  }) {
14912
14976
  if (!composeContentUrl || !contentRefType || !id) return null;
14913
- const canonicalType = _chunkJENNI7XUcjs.canonicalContentRefType.call(void 0, contentRefType);
14977
+ const canonicalType = _chunkDGNGABNGcjs.canonicalContentRefType.call(void 0, contentRefType);
14914
14978
  return composeContentUrl({
14915
14979
  // The card registry keys some entries by the legacy rail vocabulary
14916
14980
  // (`blog_post_existing`) because that is what `buildListUrl` expects.
@@ -14940,7 +15004,7 @@ function sourceRowCtxFromRuntime(runtime, surface = {}) {
14940
15004
  }
14941
15005
  function pickSourceIcon(sourceRepo, documentType) {
14942
15006
  const iconName = sourceRepo ? getSourceIconName(sourceRepo) : void 0;
14943
- const icon = iconName ? _chunkLV6UJD2Kcjs.getIconComponent.call(void 0, iconName) : _lucidereact.FileText;
15007
+ const icon = iconName ? _chunkJKWQWHNVcjs.getIconComponent.call(void 0, iconName) : _lucidereact.FileText;
14944
15008
  const iconLabel = _nullishCoalesce(documentType, () => ( "Source"));
14945
15009
  return { icon, iconLabel };
14946
15010
  }
@@ -14956,20 +15020,20 @@ function resolveSourceRowCTA(row, ctx = {}) {
14956
15020
  if (row.path && shouldFallbackToPathNav(row) && !row.externalUrl) {
14957
15021
  const safePath = sanitizePath(row.path);
14958
15022
  if (safePath) {
14959
- const docTarget = row.documentType ? _optionalChain([ctx, 'access', _351 => _351.docPlatformTargets, 'optionalAccess', _352 => _352[row.documentType]]) : void 0;
15023
+ const docTarget = row.documentType ? _optionalChain([ctx, 'access', _355 => _355.docPlatformTargets, 'optionalAccess', _356 => _356[row.documentType]]) : void 0;
14960
15024
  if (docTarget) {
14961
15025
  const seg = docTarget.basePath.split("/").filter(Boolean).join("/");
14962
15026
  const base = `${getPlatformUrl(docTarget.platform)}${seg ? `/${seg}` : ""}/`;
14963
- href = _nullishCoalesce(_chunkJENNI7XUcjs.safeHref.call(void 0, new URL(safePath, base).toString()), () => ( null));
15027
+ href = _nullishCoalesce(_chunkDGNGABNGcjs.safeHref.call(void 0, new URL(safePath, base).toString()), () => ( null));
14964
15028
  targetPlatform = docTarget.platform;
14965
15029
  } else if (ctx.chipBasePlatform) {
14966
15030
  const base = `${getPlatformUrl(ctx.chipBasePlatform)}/knowledge-base/`;
14967
- href = _nullishCoalesce(_chunkJENNI7XUcjs.safeHref.call(void 0, new URL(safePath, base).toString()), () => ( null));
15031
+ href = _nullishCoalesce(_chunkDGNGABNGcjs.safeHref.call(void 0, new URL(safePath, base).toString()), () => ( null));
14968
15032
  targetPlatform = ctx.chipBasePlatform;
14969
15033
  } else if (ctx.baseRoute) {
14970
15034
  const synthetic = `https://_internal_.local${ctx.baseRoute.startsWith("/") ? ctx.baseRoute : "/" + ctx.baseRoute}/`;
14971
15035
  const absolute = new URL(safePath, synthetic).toString();
14972
- href = _nullishCoalesce(_chunkJENNI7XUcjs.safeHref.call(void 0, absolute.replace("https://_internal_.local", "")), () => ( null));
15036
+ href = _nullishCoalesce(_chunkDGNGABNGcjs.safeHref.call(void 0, absolute.replace("https://_internal_.local", "")), () => ( null));
14973
15037
  targetPlatform = _nullishCoalesce(ctx.currentPlatform, () => ( null));
14974
15038
  }
14975
15039
  }
@@ -14978,15 +15042,15 @@ function resolveSourceRowCTA(row, ctx = {}) {
14978
15042
  // Canonical vocabulary only — a rail-vocab alias would miss the host's
14979
15043
  // `hostedTypes` / `overrides` and fall through to the seam's default
14980
15044
  // `<origin>/<type>/<id>` branch. Same canonicalizer `buildListUrl` uses.
14981
- type: _chunkJENNI7XUcjs.canonicalContentRefType.call(void 0, row.documentType),
15045
+ type: _chunkDGNGABNGcjs.canonicalContentRefType.call(void 0, row.documentType),
14982
15046
  identifier: idValue,
14983
15047
  externalUrl: row.externalUrl,
14984
15048
  targetPlatform: _nullishCoalesce(row.targetPlatform, () => ( null))
14985
15049
  });
14986
- href = composed.href ? _nullishCoalesce(_chunkJENNI7XUcjs.safeHref.call(void 0, composed.href), () => ( null)) : null;
15050
+ href = composed.href ? _nullishCoalesce(_chunkDGNGABNGcjs.safeHref.call(void 0, composed.href), () => ( null)) : null;
14987
15051
  targetPlatform = composed.targetPlatform;
14988
15052
  } else if (row.externalUrl) {
14989
- href = _nullishCoalesce(_chunkJENNI7XUcjs.safeHref.call(void 0, row.externalUrl), () => ( null));
15053
+ href = _nullishCoalesce(_chunkDGNGABNGcjs.safeHref.call(void 0, row.externalUrl), () => ( null));
14990
15054
  targetPlatform = _nullishCoalesce(row.targetPlatform, () => ( null));
14991
15055
  }
14992
15056
  const documentType = row.documentType;
@@ -15025,7 +15089,7 @@ function resolveCardDestination({
15025
15089
  composeContentUrl,
15026
15090
  resolveHref = (href) => href
15027
15091
  }) {
15028
- const refPath = typeof _optionalChain([chatRef, 'access', _353 => _353.metadata, 'optionalAccess', _354 => _354.path]) === "string" && chatRef.metadata.path ? chatRef.metadata.path : null;
15092
+ const refPath = typeof _optionalChain([chatRef, 'access', _357 => _357.metadata, 'optionalAccess', _358 => _358.path]) === "string" && chatRef.metadata.path ? chatRef.metadata.path : null;
15029
15093
  const path = _nullishCoalesce(refPath, () => ( (item ? readFetchedCardPath(item) : null)));
15030
15094
  const cta = resolveSourceRowCTA(
15031
15095
  {
@@ -15042,7 +15106,7 @@ function resolveCardDestination({
15042
15106
  const rowUrl = cta.href ? resolveHref(cta.href) : _nullishCoalesce(chatRef.url, () => ( null));
15043
15107
  const rowPlatform = _nullishCoalesce(_nullishCoalesce(cta.targetPlatform, () => ( chatRef.targetPlatform)), () => ( null));
15044
15108
  if (rowUrl) return { url: rowUrl, targetPlatform: rowPlatform, path, source: "row" };
15045
- if (_optionalChain([entry, 'optionalAccess', _355 => _355.contentRefType]) && item) {
15109
+ if (_optionalChain([entry, 'optionalAccess', _359 => _359.contentRefType]) && item) {
15046
15110
  const choice = pickFetchedCardHref({
15047
15111
  composed: resolveFetchedCardHref({
15048
15112
  contentRefType: entry.contentRefType,
@@ -15050,10 +15114,10 @@ function resolveCardDestination({
15050
15114
  item,
15051
15115
  composeContentUrl
15052
15116
  }),
15053
- itemHref: _nullishCoalesce(_optionalChain([entry, 'access', _356 => _356.fallbackHref, 'optionalCall', _357 => _357(item)]), () => ( null)),
15117
+ itemHref: _nullishCoalesce(_optionalChain([entry, 'access', _360 => _360.fallbackHref, 'optionalCall', _361 => _361(item)]), () => ( null)),
15054
15118
  allowComposed: !entry.noComposedHref
15055
15119
  });
15056
- const url = choice ? _nullishCoalesce(_chunkJENNI7XUcjs.safeHref.call(void 0, choice.href), () => ( null)) : null;
15120
+ const url = choice ? _nullishCoalesce(_chunkDGNGABNGcjs.safeHref.call(void 0, choice.href), () => ( null)) : null;
15057
15121
  if (choice && url) {
15058
15122
  return { url, targetPlatform: _nullishCoalesce(choice.targetPlatform, () => ( rowPlatform)), path, source: choice.source };
15059
15123
  }
@@ -15066,11 +15130,11 @@ function resolveCardDestination({
15066
15130
 
15067
15131
  function DeletedDataCard({ title, entityLabel, recoveryNote, className }) {
15068
15132
  const label = entityLabel || "Item";
15069
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_OUTER_STATIC} opacity-70 ${_nullishCoalesce(className, () => ( ""))}`, children: [
15070
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkJENNI7XUcjs.COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Trash2, { className: "h-4 w-4 text-ods-text-secondary" }) }),
15071
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TEXT_COL, children: [
15072
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkJENNI7XUcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkJENNI7XUcjs.COMPACT_CARD_TITLE} text-ods-text-secondary line-through`, children: title || `Deleted ${label.toLowerCase()}` }) }),
15073
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkJENNI7XUcjs.COMPACT_CARD_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
15133
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_OUTER_STATIC} opacity-70 ${_nullishCoalesce(className, () => ( ""))}`, children: [
15134
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkDGNGABNGcjs.COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Trash2, { className: "h-4 w-4 text-ods-text-secondary" }) }),
15135
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TEXT_COL, children: [
15136
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkDGNGABNGcjs.COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkDGNGABNGcjs.COMPACT_CARD_TITLE} text-ods-text-secondary line-through`, children: title || `Deleted ${label.toLowerCase()}` }) }),
15137
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkDGNGABNGcjs.COMPACT_CARD_META_ROW, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
15074
15138
  label,
15075
15139
  " deleted",
15076
15140
  recoveryNote ? ` \xB7 ${recoveryNote}` : ""
@@ -15125,7 +15189,7 @@ function GitHubChatCard({
15125
15189
  description,
15126
15190
  icon: githubKindIcon(kind),
15127
15191
  status,
15128
- anchorProps: _chunkJENNI7XUcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15192
+ anchorProps: _chunkDGNGABNGcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15129
15193
  menuGroups: cardMenuGroups(chatRef.url, discuss),
15130
15194
  menuAriaLabel: "Activity actions"
15131
15195
  }
@@ -15144,8 +15208,8 @@ function cardMenuGroups(href, discuss, openDetails, externalLink) {
15144
15208
  if (href) {
15145
15209
  items.push({
15146
15210
  id: "open-details",
15147
- label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _358 => _358.label]), () => ( "Open Details")),
15148
- icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _359 => _359.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.EyeIcon, { size: 20 }))),
15211
+ label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _362 => _362.label]), () => ( "Open Details")),
15212
+ icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _363 => _363.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.EyeIcon, { size: 20 }))),
15149
15213
  // Main row → open the entity (same tab, soft Link nav).
15150
15214
  href,
15151
15215
  // Trailing 40px ↗ side-button → open in a new tab.
@@ -15205,18 +15269,18 @@ function itemVideoMetadata(item) {
15205
15269
  for (const v of vals) if (typeof v === "string" && v.length > 0) return v;
15206
15270
  return void 0;
15207
15271
  };
15208
- const m = _nullishCoalesce(_optionalChain([item, 'optionalAccess', _360 => _360.metadata]), () => ( {}));
15272
+ const m = _nullishCoalesce(_optionalChain([item, 'optionalAccess', _364 => _364.metadata]), () => ( {}));
15209
15273
  const out = {};
15210
- const videoUrl = pick2(m.videoUrl, _optionalChain([item, 'optionalAccess', _361 => _361.custom_video_url]), _optionalChain([item, 'optionalAccess', _362 => _362.main_video_url]));
15211
- const youtubeUrl = pick2(m.youtubeUrl, _optionalChain([item, 'optionalAccess', _363 => _363.youtube_url]), _optionalChain([item, 'optionalAccess', _364 => _364.testimonial_video_url]));
15212
- const highlightVideoUrl = pick2(m.highlightVideoUrl, _optionalChain([item, 'optionalAccess', _365 => _365.highlight_video_url]));
15274
+ const videoUrl = pick2(m.videoUrl, _optionalChain([item, 'optionalAccess', _365 => _365.custom_video_url]), _optionalChain([item, 'optionalAccess', _366 => _366.main_video_url]));
15275
+ const youtubeUrl = pick2(m.youtubeUrl, _optionalChain([item, 'optionalAccess', _367 => _367.youtube_url]), _optionalChain([item, 'optionalAccess', _368 => _368.testimonial_video_url]));
15276
+ const highlightVideoUrl = pick2(m.highlightVideoUrl, _optionalChain([item, 'optionalAccess', _369 => _369.highlight_video_url]));
15213
15277
  const videoPoster = pick2(
15214
15278
  m.videoPoster,
15215
- _optionalChain([item, 'optionalAccess', _366 => _366.main_video_thumbnail]),
15216
- _optionalChain([item, 'optionalAccess', _367 => _367.highlight_video_thumbnail]),
15217
- _optionalChain([item, 'optionalAccess', _368 => _368.featured_image])
15279
+ _optionalChain([item, 'optionalAccess', _370 => _370.main_video_thumbnail]),
15280
+ _optionalChain([item, 'optionalAccess', _371 => _371.highlight_video_thumbnail]),
15281
+ _optionalChain([item, 'optionalAccess', _372 => _372.featured_image])
15218
15282
  );
15219
- const highlightVideoPoster = pick2(m.highlightVideoPoster, _optionalChain([item, 'optionalAccess', _369 => _369.highlight_video_thumbnail]));
15283
+ const highlightVideoPoster = pick2(m.highlightVideoPoster, _optionalChain([item, 'optionalAccess', _373 => _373.highlight_video_thumbnail]));
15220
15284
  if (videoUrl) out.videoUrl = videoUrl;
15221
15285
  if (youtubeUrl) out.youtubeUrl = youtubeUrl;
15222
15286
  if (highlightVideoUrl) out.highlightVideoUrl = highlightVideoUrl;
@@ -15246,15 +15310,15 @@ function fetchedItemDisplayRef(item, chatRef) {
15246
15310
  }
15247
15311
  function fetchedFaqDisplayRef(item, chatRef) {
15248
15312
  const it = item;
15249
- const answer = typeof _optionalChain([it, 'optionalAccess', _370 => _370.answer]) === "string" && it.answer.trim().length > 0 ? it.answer.trim() : null;
15313
+ const answer = typeof _optionalChain([it, 'optionalAccess', _374 => _374.answer]) === "string" && it.answer.trim().length > 0 ? it.answer.trim() : null;
15250
15314
  return {
15251
15315
  type: "faq",
15252
15316
  id: chatRef.id,
15253
15317
  sourceRepo: chatRef.sourceRepo,
15254
- title: typeof _optionalChain([it, 'optionalAccess', _371 => _371.question]) === "string" && it.question ? it.question : chatRef.id,
15318
+ title: typeof _optionalChain([it, 'optionalAccess', _375 => _375.question]) === "string" && it.question ? it.question : chatRef.id,
15255
15319
  url: _nullishCoalesce(chatRef.url, () => ( null)),
15256
15320
  ...answer ? { preview: answer.length > 400 ? `${answer.slice(0, 397)}\u2026` : answer } : {},
15257
- metadata: typeof _optionalChain([it, 'optionalAccess', _372 => _372.section]) === "string" && it.section ? { section: it.section } : {}
15321
+ metadata: typeof _optionalChain([it, 'optionalAccess', _376 => _376.section]) === "string" && it.section ? { section: it.section } : {}
15258
15322
  };
15259
15323
  }
15260
15324
  function HubspotTicketChatCard({
@@ -15262,8 +15326,8 @@ function HubspotTicketChatCard({
15262
15326
  isNewTab,
15263
15327
  discuss
15264
15328
  }) {
15265
- const status = typeof _optionalChain([chatRef, 'access', _373 => _373.metadata, 'optionalAccess', _374 => _374.status]) === "string" ? chatRef.metadata.status : void 0;
15266
- const statusLabel = typeof _optionalChain([chatRef, 'access', _375 => _375.metadata, 'optionalAccess', _376 => _376.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
15329
+ const status = typeof _optionalChain([chatRef, 'access', _377 => _377.metadata, 'optionalAccess', _378 => _378.status]) === "string" ? chatRef.metadata.status : void 0;
15330
+ const statusLabel = typeof _optionalChain([chatRef, 'access', _379 => _379.metadata, 'optionalAccess', _380 => _380.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
15267
15331
  const statusText = _nullishCoalesce(statusLabel, () => ( formatStatusToken(status)));
15268
15332
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15269
15333
  MingoInfoCard,
@@ -15272,7 +15336,7 @@ function HubspotTicketChatCard({
15272
15336
  description: _nullishCoalesce(chatRef.preview, () => ( void 0)),
15273
15337
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.TagIcon, { size: 24 }),
15274
15338
  status: statusText ? { label: statusText, variant: hubspotStatusToVariant(status) } : void 0,
15275
- anchorProps: _chunkJENNI7XUcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15339
+ anchorProps: _chunkDGNGABNGcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15276
15340
  menuGroups: cardMenuGroups(chatRef.url, discuss, {
15277
15341
  label: "Open Ticket Details",
15278
15342
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.TagIcon, { size: 20 })
@@ -15286,7 +15350,7 @@ function FaqChatCard({
15286
15350
  isNewTab,
15287
15351
  discuss
15288
15352
  }) {
15289
- const section = typeof _optionalChain([chatRef, 'access', _377 => _377.metadata, 'optionalAccess', _378 => _378.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
15353
+ const section = typeof _optionalChain([chatRef, 'access', _381 => _381.metadata, 'optionalAccess', _382 => _382.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
15290
15354
  const statusLabel = section && section.length > 0 ? section : "FAQ";
15291
15355
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15292
15356
  MingoInfoCard,
@@ -15295,7 +15359,7 @@ function FaqChatCard({
15295
15359
  description: _nullishCoalesce(chatRef.preview, () => ( void 0)),
15296
15360
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.QuestionCircleIcon, { size: 24 }),
15297
15361
  status: { label: statusLabel, variant: "grey" },
15298
- anchorProps: _chunkJENNI7XUcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15362
+ anchorProps: _chunkDGNGABNGcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15299
15363
  menuGroups: cardMenuGroups(chatRef.url, discuss),
15300
15364
  menuAriaLabel: "FAQ actions"
15301
15365
  }
@@ -15306,7 +15370,7 @@ function SlackChatCard({
15306
15370
  isNewTab,
15307
15371
  discuss
15308
15372
  }) {
15309
- const channelName = typeof _optionalChain([chatRef, 'access', _379 => _379.metadata, 'optionalAccess', _380 => _380.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
15373
+ const channelName = typeof _optionalChain([chatRef, 'access', _383 => _383.metadata, 'optionalAccess', _384 => _384.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
15310
15374
  const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
15311
15375
  const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
15312
15376
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -15315,7 +15379,7 @@ function SlackChatCard({
15315
15379
  title,
15316
15380
  description: _nullishCoalesce(chatRef.preview, () => ( void 0)),
15317
15381
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.SlackLogoGreyIcon, { size: 24 }),
15318
- anchorProps: _chunkJENNI7XUcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15382
+ anchorProps: _chunkDGNGABNGcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15319
15383
  menuGroups: cardMenuGroups(chatRef.url, discuss),
15320
15384
  menuAriaLabel: "Message actions"
15321
15385
  }
@@ -15333,7 +15397,7 @@ function GlyphChatCard({
15333
15397
  title: chatRef.title,
15334
15398
  description: _nullishCoalesce(chatRef.preview, () => ( void 0)),
15335
15399
  icon,
15336
- anchorProps: _chunkJENNI7XUcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15400
+ anchorProps: _chunkDGNGABNGcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15337
15401
  menuGroups: cardMenuGroups(chatRef.url, discuss),
15338
15402
  menuAriaLabel: "Card actions"
15339
15403
  }
@@ -15349,22 +15413,22 @@ function TrustCenterChatCard({
15349
15413
  isNewTab,
15350
15414
  discuss
15351
15415
  }) {
15352
- const raw = _optionalChain([item, 'optionalAccess', _381 => _381.frameworks]);
15416
+ const raw = _optionalChain([item, 'optionalAccess', _385 => _385.frameworks]);
15353
15417
  const frameworks = Array.isArray(raw) ? raw : [];
15354
- const summary = _chunkJENNI7XUcjs.trustFrameworksSummary.call(void 0, frameworks);
15418
+ const summary = _chunkDGNGABNGcjs.trustFrameworksSummary.call(void 0, frameworks);
15355
15419
  const leadFramework = frameworks[0];
15356
15420
  const lead = leadFramework ? {
15357
- label: _chunkJENNI7XUcjs.trustFrameworkBadge.call(void 0, leadFramework),
15358
- color: _chunkJENNI7XUcjs.trustFrameworkMonitoringEntry.call(void 0, leadFramework.monitoring).color
15421
+ label: _chunkDGNGABNGcjs.trustFrameworkBadge.call(void 0, leadFramework),
15422
+ color: _chunkDGNGABNGcjs.trustFrameworkMonitoringEntry.call(void 0, leadFramework.monitoring).color
15359
15423
  } : void 0;
15360
15424
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15361
15425
  MingoInfoCard,
15362
15426
  {
15363
- title: _chunkJENNI7XUcjs.TRUST_CENTER_TITLE,
15364
- description: summary || _chunkJENNI7XUcjs.TRUST_CENTER_TAGLINE,
15427
+ title: _chunkDGNGABNGcjs.TRUST_CENTER_TITLE,
15428
+ description: summary || _chunkDGNGABNGcjs.TRUST_CENTER_TAGLINE,
15365
15429
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.ShieldCheckIcon, { size: 24 }),
15366
15430
  status: lead ? { label: lead.label, variant: TRUST_STATUS_TAG_VARIANT[lead.color] } : void 0,
15367
- anchorProps: _chunkJENNI7XUcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15431
+ anchorProps: _chunkDGNGABNGcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15368
15432
  menuGroups: cardMenuGroups(chatRef.url, discuss, {
15369
15433
  label: "View trust center",
15370
15434
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.ShieldCheckIcon, { size: 20 })
@@ -15386,7 +15450,7 @@ function DataRoomDocChatCard({
15386
15450
  description: _nullishCoalesce(chatRef.preview, () => ( void 0)),
15387
15451
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.FileContentIcon, { size: 24 }),
15388
15452
  status: { label: badgeText, variant: "grey" },
15389
- anchorProps: _chunkJENNI7XUcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15453
+ anchorProps: _chunkDGNGABNGcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15390
15454
  menuGroups: cardMenuGroups(chatRef.url, discuss),
15391
15455
  menuAriaLabel: "Document actions"
15392
15456
  }
@@ -15398,14 +15462,14 @@ function GenericFinancialChatCard({
15398
15462
  isNewTab,
15399
15463
  discuss
15400
15464
  }) {
15401
- const subtitle = typeof _optionalChain([chatRef, 'access', _382 => _382.metadata, 'optionalAccess', _383 => _383.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
15465
+ const subtitle = typeof _optionalChain([chatRef, 'access', _386 => _386.metadata, 'optionalAccess', _387 => _387.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
15402
15466
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15403
15467
  MingoInfoCard,
15404
15468
  {
15405
15469
  title: chatRef.title,
15406
15470
  description: subtitle,
15407
15471
  icon,
15408
- anchorProps: _chunkJENNI7XUcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15472
+ anchorProps: _chunkDGNGABNGcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15409
15473
  menuGroups: cardMenuGroups(chatRef.url, discuss),
15410
15474
  menuAriaLabel: "Document actions"
15411
15475
  }
@@ -15467,12 +15531,12 @@ function ProductReleaseChatCard({
15467
15531
  discuss
15468
15532
  }) {
15469
15533
  const releaseProps = buildProps(item);
15470
- const status = _optionalChain([item, 'optionalAccess', _384 => _384.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
15534
+ const status = _optionalChain([item, 'optionalAccess', _388 => _388.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
15471
15535
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15472
15536
  EntityMingoCard,
15473
15537
  {
15474
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _385 => _385.title]), () => ( "")),
15475
- description: _optionalChain([item, 'optionalAccess', _386 => _386.summary]) || releaseProps.formattedDate || void 0,
15538
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _389 => _389.title]), () => ( "")),
15539
+ description: _optionalChain([item, 'optionalAccess', _390 => _390.summary]) || releaseProps.formattedDate || void 0,
15476
15540
  cover: releaseProps.coverImage || void 0,
15477
15541
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.Rocket02Icon, { size: 24 }),
15478
15542
  status,
@@ -15489,17 +15553,17 @@ function CampaignChatCard({
15489
15553
  isNewTab,
15490
15554
  discuss
15491
15555
  }) {
15492
- const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _387 => _387.goals])) ? item.goals.length : 0;
15556
+ const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _391 => _391.goals])) ? item.goals.length : 0;
15493
15557
  const meta = [
15494
- _optionalChain([item, 'optionalAccess', _388 => _388.start_date]) ? _chunkJENNI7XUcjs.formatDateShort.call(void 0, item.start_date) : null,
15558
+ _optionalChain([item, 'optionalAccess', _392 => _392.start_date]) ? _chunkDGNGABNGcjs.formatDateShort.call(void 0, item.start_date) : null,
15495
15559
  goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
15496
15560
  "Marketing campaign"
15497
15561
  ].filter(Boolean).join(" \xB7 ");
15498
15562
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15499
15563
  EntityMingoCard,
15500
15564
  {
15501
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _389 => _389.name]), () => ( "")),
15502
- description: meta || _optionalChain([item, 'optionalAccess', _390 => _390.description]) || void 0,
15565
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _393 => _393.name]), () => ( "")),
15566
+ description: meta || _optionalChain([item, 'optionalAccess', _394 => _394.description]) || void 0,
15503
15567
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.Megaphone01Icon, { size: 24 }),
15504
15568
  chatRef,
15505
15569
  isNewTab,
@@ -15530,7 +15594,7 @@ function EntityMingoCard({
15530
15594
  imageAlt: typeof title === "string" ? title : void 0,
15531
15595
  icon: fallbackIcon,
15532
15596
  status,
15533
- anchorProps: _chunkJENNI7XUcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15597
+ anchorProps: _chunkDGNGABNGcjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
15534
15598
  menuGroups: cardMenuGroups(chatRef.url, discuss, openDetails, externalLink),
15535
15599
  menuAriaLabel
15536
15600
  }
@@ -15542,7 +15606,7 @@ function entityCover(image, ogPlaceholder) {
15542
15606
  function statusPill(status) {
15543
15607
  const s = typeof status === "string" ? status.trim() : "";
15544
15608
  if (!s) return void 0;
15545
- const scheme = _chunkJENNI7XUcjs.getStatusColorScheme.call(void 0, s);
15609
+ const scheme = _chunkDGNGABNGcjs.getStatusColorScheme.call(void 0, s);
15546
15610
  const variant = scheme === "success" || scheme === "error" || scheme === "warning" ? scheme : "grey";
15547
15611
  return { label: s, variant };
15548
15612
  }
@@ -15554,14 +15618,14 @@ function BlogChatCard({
15554
15618
  hasEmbeddedVideo,
15555
15619
  discuss
15556
15620
  }) {
15557
- const category = Array.isArray(_optionalChain([item, 'optionalAccess', _391 => _391.categories])) ? _nullishCoalesce(_optionalChain([item, 'access', _392 => _392.categories, 'access', _393 => _393.find, 'call', _394 => _394((c) => _optionalChain([c, 'optionalAccess', _395 => _395.name])), 'optionalAccess', _396 => _396.name]), () => ( void 0)) : void 0;
15621
+ const category = Array.isArray(_optionalChain([item, 'optionalAccess', _395 => _395.categories])) ? _nullishCoalesce(_optionalChain([item, 'access', _396 => _396.categories, 'access', _397 => _397.find, 'call', _398 => _398((c) => _optionalChain([c, 'optionalAccess', _399 => _399.name])), 'optionalAccess', _400 => _400.name]), () => ( void 0)) : void 0;
15558
15622
  const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
15559
15623
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15560
15624
  EntityMingoCard,
15561
15625
  {
15562
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _397 => _397.title]), () => ( "")),
15563
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _398 => _398.summary]), () => ( void 0)),
15564
- cover: entityCover(_optionalChain([item, 'optionalAccess', _399 => _399.featured_image]), ogPlaceholder),
15626
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _401 => _401.title]), () => ( "")),
15627
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _402 => _402.summary]), () => ( void 0)),
15628
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _403 => _403.featured_image]), ogPlaceholder),
15565
15629
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.NewspaperIcon, { size: 24 }),
15566
15630
  status,
15567
15631
  chatRef,
@@ -15578,13 +15642,13 @@ function CaseStudyChatCard({
15578
15642
  ogPlaceholder,
15579
15643
  discuss
15580
15644
  }) {
15581
- const meta = [_optionalChain([item, 'optionalAccess', _400 => _400.msp, 'optionalAccess', _401 => _401.name]), _optionalChain([item, 'optionalAccess', _402 => _402.user, 'optionalAccess', _403 => _403.full_name])].filter(Boolean).join(" \xB7 ");
15645
+ const meta = [_optionalChain([item, 'optionalAccess', _404 => _404.msp, 'optionalAccess', _405 => _405.name]), _optionalChain([item, 'optionalAccess', _406 => _406.user, 'optionalAccess', _407 => _407.full_name])].filter(Boolean).join(" \xB7 ");
15582
15646
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15583
15647
  EntityMingoCard,
15584
15648
  {
15585
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _404 => _404.title]), () => ( "")),
15586
- description: _optionalChain([item, 'optionalAccess', _405 => _405.summary]) || meta || void 0,
15587
- cover: entityCover(_optionalChain([item, 'optionalAccess', _406 => _406.featured_image]), ogPlaceholder),
15649
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _408 => _408.title]), () => ( "")),
15650
+ description: _optionalChain([item, 'optionalAccess', _409 => _409.summary]) || meta || void 0,
15651
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _410 => _410.featured_image]), ogPlaceholder),
15588
15652
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.TrophyIcon, { size: 24 }),
15589
15653
  status: { label: "Case study", variant: "grey" },
15590
15654
  chatRef,
@@ -15601,13 +15665,13 @@ function CustomerInterviewChatCard({
15601
15665
  ogPlaceholder,
15602
15666
  discuss
15603
15667
  }) {
15604
- const meta = [_optionalChain([item, 'optionalAccess', _407 => _407.user, 'optionalAccess', _408 => _408.full_name]), _optionalChain([item, 'optionalAccess', _409 => _409.msp, 'optionalAccess', _410 => _410.name])].filter(Boolean).join(" \xB7 ");
15668
+ const meta = [_optionalChain([item, 'optionalAccess', _411 => _411.user, 'optionalAccess', _412 => _412.full_name]), _optionalChain([item, 'optionalAccess', _413 => _413.msp, 'optionalAccess', _414 => _414.name])].filter(Boolean).join(" \xB7 ");
15605
15669
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15606
15670
  EntityMingoCard,
15607
15671
  {
15608
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _411 => _411.title]), () => ( "")),
15609
- description: _optionalChain([item, 'optionalAccess', _412 => _412.video_summary]) || meta || void 0,
15610
- cover: entityCover(_optionalChain([item, 'optionalAccess', _413 => _413.featured_image]), ogPlaceholder),
15672
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _415 => _415.title]), () => ( "")),
15673
+ description: _optionalChain([item, 'optionalAccess', _416 => _416.video_summary]) || meta || void 0,
15674
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _417 => _417.featured_image]), ogPlaceholder),
15611
15675
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.MicrophoneIcon, { size: 24 }),
15612
15676
  status: { label: "Interview", variant: "grey" },
15613
15677
  chatRef,
@@ -15624,16 +15688,16 @@ function DesignDocChatCard({
15624
15688
  discuss
15625
15689
  }) {
15626
15690
  const displayRef = fetchedItemDisplayRef(item, chatRef);
15627
- const doc = _optionalChain([item, 'optionalAccess', _414 => _414.doc]);
15691
+ const doc = _optionalChain([item, 'optionalAccess', _418 => _418.doc]);
15628
15692
  const readiness = doc ? DESIGN_DOC_READINESS_DISPLAY[designDocReadiness(doc.completion)] : null;
15629
15693
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15630
15694
  MingoInfoCard,
15631
15695
  {
15632
- title: _nullishCoalesce(_optionalChain([doc, 'optionalAccess', _415 => _415.title]), () => ( displayRef.title)),
15696
+ title: _nullishCoalesce(_optionalChain([doc, 'optionalAccess', _419 => _419.title]), () => ( displayRef.title)),
15633
15697
  description: doc ? [designDocMetaLine(doc), formatCompletionLabel(doc.completion)].join(" \xB7 ") : _nullishCoalesce(displayRef.preview, () => ( void 0)),
15634
15698
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.FileContentIcon, { size: 24 }),
15635
15699
  status: readiness ? { label: readiness.label, variant: readiness.scheme === "success" ? "success" : "grey" } : { label: "Design doc", variant: "grey" },
15636
- anchorProps: _chunkJENNI7XUcjs.buildAnchorProps.call(void 0, displayRef.url, isNewTab),
15700
+ anchorProps: _chunkDGNGABNGcjs.buildAnchorProps.call(void 0, displayRef.url, isNewTab),
15637
15701
  menuGroups: cardMenuGroups(displayRef.url, discuss),
15638
15702
  menuAriaLabel: "Design doc actions"
15639
15703
  }
@@ -15646,13 +15710,13 @@ function InvestorUpdateChatCard({
15646
15710
  ogPlaceholder,
15647
15711
  discuss
15648
15712
  }) {
15649
- const title = _optionalChain([item, 'optionalAccess', _416 => _416.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _417 => _417.update_number]), () => ( "?"))}`;
15713
+ const title = _optionalChain([item, 'optionalAccess', _420 => _420.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _421 => _421.update_number]), () => ( "?"))}`;
15650
15714
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15651
15715
  EntityMingoCard,
15652
15716
  {
15653
15717
  title,
15654
- description: _optionalChain([item, 'optionalAccess', _418 => _418.strategic_update]) || _optionalChain([item, 'optionalAccess', _419 => _419.content]) || _chunkJENNI7XUcjs.formatInvestorUpdatePeriod.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _420 => _420.period_start]), () => ( null)), _nullishCoalesce(_optionalChain([item, 'optionalAccess', _421 => _421.period_end]), () => ( null))) || void 0,
15655
- cover: entityCover(_optionalChain([item, 'optionalAccess', _422 => _422.featured_image]), ogPlaceholder),
15718
+ description: _optionalChain([item, 'optionalAccess', _422 => _422.strategic_update]) || _optionalChain([item, 'optionalAccess', _423 => _423.content]) || _chunkDGNGABNGcjs.formatInvestorUpdatePeriod.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _424 => _424.period_start]), () => ( null)), _nullishCoalesce(_optionalChain([item, 'optionalAccess', _425 => _425.period_end]), () => ( null))) || void 0,
15719
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _426 => _426.featured_image]), ogPlaceholder),
15656
15720
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.PresentationLineIcon, { size: 24 }),
15657
15721
  status: { label: "Investor update", variant: "grey" },
15658
15722
  chatRef,
@@ -15669,12 +15733,12 @@ function OnboardingGuideChatCard({
15669
15733
  ogPlaceholder,
15670
15734
  discuss
15671
15735
  }) {
15672
- const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _423 => _423.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _424 => _424.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _425 => _425.og_image_url]), ogPlaceholder)));
15736
+ const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _427 => _427.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _428 => _428.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _429 => _429.og_image_url]), ogPlaceholder)));
15673
15737
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15674
15738
  EntityMingoCard,
15675
15739
  {
15676
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _426 => _426.title]), () => ( "")),
15677
- description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _427 => _427.summary]), () => ( _optionalChain([item, 'optionalAccess', _428 => _428.description]))), () => ( void 0)),
15740
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _430 => _430.title]), () => ( "")),
15741
+ description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _431 => _431.summary]), () => ( _optionalChain([item, 'optionalAccess', _432 => _432.description]))), () => ( void 0)),
15678
15742
  cover,
15679
15743
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CompassIcon, { size: 24 }),
15680
15744
  status: { label: "Guide", variant: "grey" },
@@ -15695,13 +15759,13 @@ function ProgramChatCard({
15695
15759
  discuss
15696
15760
  }) {
15697
15761
  const icon = configKey === "webinar" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.PresentationBarIcon, { size: 24 }) : configKey === "event" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CalendarIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.MicrophoneIcon, { size: 24 });
15698
- const { line: meta } = _chunkJENNI7XUcjs.programMetaLine.call(void 0, _nullishCoalesce(item, () => ( {})), configKey, _chunkJENNI7XUcjs.programMetaFormatters.call(void 0, _chunkJENNI7XUcjs.PROGRAM_META_RENDERERS));
15762
+ const { line: meta } = _chunkDGNGABNGcjs.programMetaLine.call(void 0, _nullishCoalesce(item, () => ( {})), configKey, _chunkDGNGABNGcjs.programMetaFormatters.call(void 0, _chunkDGNGABNGcjs.PROGRAM_META_RENDERERS));
15699
15763
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15700
15764
  EntityMingoCard,
15701
15765
  {
15702
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _429 => _429.title]), () => ( "")),
15703
- description: meta || _optionalChain([item, 'optionalAccess', _430 => _430.description]) || void 0,
15704
- cover: entityCover(_optionalChain([item, 'optionalAccess', _431 => _431.cover_url]), ogPlaceholder),
15766
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _433 => _433.title]), () => ( "")),
15767
+ description: meta || _optionalChain([item, 'optionalAccess', _434 => _434.description]) || void 0,
15768
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _435 => _435.cover_url]), ogPlaceholder),
15705
15769
  fallbackIcon: icon,
15706
15770
  status: { label, variant: "grey" },
15707
15771
  chatRef,
@@ -15718,10 +15782,10 @@ function RoadmapChatCard({
15718
15782
  cardType,
15719
15783
  discuss
15720
15784
  }) {
15721
- const logoUrl = typeof _optionalChain([item, 'optionalAccess', _432 => _432.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
15722
- const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _433 => _433.customItemId]) != null;
15785
+ const logoUrl = typeof _optionalChain([item, 'optionalAccess', _436 => _436.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
15786
+ const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _437 => _437.customItemId]) != null;
15723
15787
  const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.TruckFastIcon, { size: 24 }) : cardType === "internal_task" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CheckSquareIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.MapIcon, { size: 24 });
15724
- const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _434 => _434.customItemId]), className: "size-6" }) : logoUrl ? (
15788
+ const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _438 => _438.customItemId]), className: "size-6" }) : logoUrl ? (
15725
15789
  // Contained (not full-bleed) so the integration logo keeps its aspect
15726
15790
  // ratio inside the bordered icon box — matches RoadmapCard.
15727
15791
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMGHIV4L6cjs.next_image_default, { src: logoUrl, alt: "", className: "size-6 object-contain", width: 24, height: 24, unoptimized: true })
@@ -15732,10 +15796,10 @@ function RoadmapChatCard({
15732
15796
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15733
15797
  EntityMingoCard,
15734
15798
  {
15735
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _435 => _435.title]), () => ( "")),
15736
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _436 => _436.description]), () => ( void 0)),
15799
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _439 => _439.title]), () => ( "")),
15800
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _440 => _440.description]), () => ( void 0)),
15737
15801
  fallbackIcon: icon,
15738
- status: statusPill(_optionalChain([item, 'optionalAccess', _437 => _437.status])),
15802
+ status: statusPill(_optionalChain([item, 'optionalAccess', _441 => _441.status])),
15739
15803
  chatRef,
15740
15804
  isNewTab,
15741
15805
  discuss,
@@ -15751,7 +15815,7 @@ function refHydratedEntry(docType, label, renderRef) {
15751
15815
  bareInline: true,
15752
15816
  contentRefType: docType,
15753
15817
  noComposedHref: true,
15754
- fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _438 => _438.url]), () => ( null)),
15818
+ fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _442 => _442.url]), () => ( null)),
15755
15819
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
15756
15820
  render: (item, chatRef, opts) => renderRef(fetchedItemDisplayRef(item, chatRef), opts)
15757
15821
  };
@@ -15783,15 +15847,15 @@ function financialRegistryEntries() {
15783
15847
  );
15784
15848
  }
15785
15849
  function refText(ref, key) {
15786
- const value = _optionalChain([ref, 'optionalAccess', _439 => _439[key]]);
15850
+ const value = _optionalChain([ref, 'optionalAccess', _443 => _443[key]]);
15787
15851
  return typeof value === "string" && value.length > 0 ? value : null;
15788
15852
  }
15789
15853
  function VendorGlyph({ title, logoUrl }) {
15790
- if (!logoUrl) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.EntityIcon, { icon: { name: SOURCE_ICON_NAMES.vendors }, size: 24 });
15854
+ if (!logoUrl) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.EntityIcon, { icon: { name: SOURCE_ICON_NAMES.vendors }, size: 24 });
15791
15855
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VendorIcon, { vendor: { title, logo_url: logoUrl }, size: "xs", showBackground: false });
15792
15856
  }
15793
15857
  function SitePageGlyph({ iconName }) {
15794
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.EntityIcon, { icon: { name: _nullishCoalesce(iconName, () => ( SOURCE_ICON_NAMES["website-pages"])) }, size: 24 });
15858
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.EntityIcon, { icon: { name: _nullishCoalesce(iconName, () => ( SOURCE_ICON_NAMES["website-pages"])) }, size: 24 });
15795
15859
  }
15796
15860
  var GITHUB_CARD_CONFIGS = {
15797
15861
  github_commit: { label: "GitHub commit", kind: "commit" },
@@ -15801,7 +15865,7 @@ var GITHUB_CARD_CONFIGS = {
15801
15865
  github_pr_review: { label: "GitHub review", kind: "pr_review" },
15802
15866
  github_pr_review_public: { label: "GitHub review (public)", kind: "pr_review" }
15803
15867
  };
15804
- var OpenFrameGlyph = _chunkLV6UJD2Kcjs.resolveIcon.call(void 0, "openframe");
15868
+ var OpenFrameGlyph = _chunkJKWQWHNVcjs.resolveIcon.call(void 0, "openframe");
15805
15869
  var REF_GLYPH_CARD_CONFIGS = {
15806
15870
  openframe_tenant: { label: "OpenFrame tenant", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OpenFrameGlyph, { size: 24 }) },
15807
15871
  prospect_call: { label: "Prospect call", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CallIcon, { size: 24 }), media: true },
@@ -15826,8 +15890,11 @@ var REF_GLYPH_CARD_CONFIGS = {
15826
15890
  // A page of the public website (pricing, product, legal, and every page the navigation lists), read live
15827
15891
  // from the data the page shows. A glyph card: a page has no cover of its own, and the card opens the page.
15828
15892
  site_page: { label: "Website page", icon: (ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SitePageGlyph, { iconName: refText(ref, "icon_name") }) },
15893
+ // What OpenFrame charges, read live from its billing: the plan in force, or one AI model's token exchange
15894
+ // rate. A glyph card; it opens the pricing page.
15895
+ openframe_price: { label: "OpenFrame price", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OpenFrameGlyph, { size: 24 }) },
15829
15896
  // A vendor (product) of the OpenMSP directory. A glyph card; it opens the vendor's page there.
15830
- vendor: { label: "Vendor", icon: (ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VendorGlyph, { title: _nullishCoalesce(_optionalChain([ref, 'optionalAccess', _440 => _440.title]), () => ( "")), logoUrl: refText(ref, "logo_url") }) }
15897
+ vendor: { label: "Vendor", icon: (ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VendorGlyph, { title: _nullishCoalesce(_optionalChain([ref, 'optionalAccess', _444 => _444.title]), () => ( "")), logoUrl: refText(ref, "logo_url") }) }
15831
15898
  };
15832
15899
  function refGlyphRegistryEntries() {
15833
15900
  return registryEntries(
@@ -15841,8 +15908,8 @@ function refGlyphRegistryEntries() {
15841
15908
  title: displayRef.title,
15842
15909
  description: _nullishCoalesce(displayRef.preview, () => ( void 0)),
15843
15910
  cover: entityCover(
15844
- _optionalChain([displayRef, 'access', _441 => _441.metadata, 'optionalAccess', _442 => _442.videoPoster]),
15845
- _nullishCoalesce(_optionalChain([opts, 'access', _443 => _443.extras, 'optionalAccess', _444 => _444.buildOgPlaceholderUrl, 'optionalCall', _445 => _445(_nullishCoalesce(displayRef.title, () => ( "")))]), () => ( null))
15911
+ _optionalChain([displayRef, 'access', _445 => _445.metadata, 'optionalAccess', _446 => _446.videoPoster]),
15912
+ _nullishCoalesce(_optionalChain([opts, 'access', _447 => _447.extras, 'optionalAccess', _448 => _448.buildOgPlaceholderUrl, 'optionalCall', _449 => _449(_nullishCoalesce(displayRef.title, () => ( "")))]), () => ( null))
15846
15913
  ),
15847
15914
  fallbackIcon: cfg.icon(displayRef),
15848
15915
  status: { label: cfg.label, variant: "grey" },
@@ -15865,9 +15932,9 @@ function refGlyphRegistryEntries() {
15865
15932
  }
15866
15933
  function fetchedEmployeeEntryDisplayRef(item, chatRef) {
15867
15934
  const it = item;
15868
- const title = typeof _optionalChain([it, 'optionalAccess', _446 => _446.title]) === "string" && it.title.trim().length > 0 ? it.title.trim() : chatRef.title;
15869
- const author = typeof _optionalChain([it, 'optionalAccess', _447 => _447.author, 'optionalAccess', _448 => _448.full_name]) === "string" ? it.author.full_name.trim() : "";
15870
- const summary = typeof _optionalChain([it, 'optionalAccess', _449 => _449.summary]) === "string" ? it.summary.trim() : "";
15935
+ const title = typeof _optionalChain([it, 'optionalAccess', _450 => _450.title]) === "string" && it.title.trim().length > 0 ? it.title.trim() : chatRef.title;
15936
+ const author = typeof _optionalChain([it, 'optionalAccess', _451 => _451.author, 'optionalAccess', _452 => _452.full_name]) === "string" ? it.author.full_name.trim() : "";
15937
+ const summary = typeof _optionalChain([it, 'optionalAccess', _453 => _453.summary]) === "string" ? it.summary.trim() : "";
15871
15938
  const preview = [author, summary].filter((x) => x.length > 0).join(" \xB7 ");
15872
15939
  return { ...chatRef, title, preview: preview.length > 0 ? preview : chatRef.preview };
15873
15940
  }
@@ -15909,7 +15976,7 @@ function programRegistryEntries() {
15909
15976
  label: cfg.label,
15910
15977
  contentRefType: cfg.contentRefType,
15911
15978
  bareInline: true,
15912
- skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.ProgramCardSkeleton, { size: "sm" }),
15979
+ skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.ProgramCardSkeleton, { size: "sm" }),
15913
15980
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15914
15981
  ProgramChatCard,
15915
15982
  {
@@ -15919,7 +15986,7 @@ function programRegistryEntries() {
15919
15986
  discuss: opts.discuss,
15920
15987
  configKey: cfg.configKey,
15921
15988
  label: cfg.configKey.charAt(0).toUpperCase() + cfg.configKey.slice(1),
15922
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _450 => _450.extras, 'optionalAccess', _451 => _451.buildOgPlaceholderUrl, 'optionalCall', _452 => _452(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _453 => _453.title]), () => ( "")))]), () => ( null))
15989
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _454 => _454.extras, 'optionalAccess', _455 => _455.buildOgPlaceholderUrl, 'optionalCall', _456 => _456(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _457 => _457.title]), () => ( "")))]), () => ( null))
15923
15990
  }
15924
15991
  )
15925
15992
  }));
@@ -15940,7 +16007,7 @@ var ROADMAP_CARD_CONFIGS = {
15940
16007
  // The card's destination IS the ClickUp deep link, derived from the
15941
16008
  // task id post-fetch (the refs frame used to carry it).
15942
16009
  noComposedHref: true,
15943
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _454 => _454.id]) != null ? clickupTaskUrl(String(item.id)) : null
16010
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _458 => _458.id]) != null ? clickupTaskUrl(String(item.id)) : null
15944
16011
  }
15945
16012
  };
15946
16013
  function roadmapRegistryEntries() {
@@ -15950,7 +16017,7 @@ function roadmapRegistryEntries() {
15950
16017
  bareInline: true,
15951
16018
  ...cfg.noComposedHref ? { noComposedHref: true } : {},
15952
16019
  ...cfg.fallbackHref ? { fallbackHref: cfg.fallbackHref } : {},
15953
- skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.RoadmapCardSkeleton, { size: "sm" }),
16020
+ skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.RoadmapCardSkeleton, { size: "sm" }),
15954
16021
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15955
16022
  RoadmapChatCard,
15956
16023
  {
@@ -15982,8 +16049,8 @@ var CHAT_CARD_REGISTRY = {
15982
16049
  DeletedDataCard,
15983
16050
  {
15984
16051
  title: chatRef.title && chatRef.title !== chatRef.id ? chatRef.title : null,
15985
- entityLabel: _nullishCoalesce(_optionalChain([chatRef, 'access', _455 => _455.metadata, 'optionalAccess', _456 => _456.entity_label]), () => ( null)),
15986
- recoveryNote: _nullishCoalesce(_optionalChain([chatRef, 'access', _457 => _457.metadata, 'optionalAccess', _458 => _458.recovery_note]), () => ( null))
16052
+ entityLabel: _nullishCoalesce(_optionalChain([chatRef, 'access', _459 => _459.metadata, 'optionalAccess', _460 => _460.entity_label]), () => ( null)),
16053
+ recoveryNote: _nullishCoalesce(_optionalChain([chatRef, 'access', _461 => _461.metadata, 'optionalAccess', _462 => _462.recovery_note]), () => ( null))
15987
16054
  }
15988
16055
  )
15989
16056
  },
@@ -16000,7 +16067,7 @@ var CHAT_CARD_REGISTRY = {
16000
16067
  bareInline: true,
16001
16068
  contentRefType: "faq",
16002
16069
  noComposedHref: true,
16003
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _459 => _459.id]) != null ? `/faqs#${faqItemAnchor(item.id)}` : null,
16070
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _463 => _463.id]) != null ? `/faqs#${faqItemAnchor(item.id)}` : null,
16004
16071
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
16005
16072
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FaqChatCard, { chatRef: fetchedFaqDisplayRef(item, chatRef), isNewTab: opts.isNewTab, discuss: opts.discuss })
16006
16073
  },
@@ -16008,12 +16075,12 @@ var CHAT_CARD_REGISTRY = {
16008
16075
  // projection route; `extractCardItems` turns its object payload into the
16009
16076
  // single matched row. Destination is the public page unless the host
16010
16077
  // re-homes the type (`composeContentUrl` override).
16011
- [_chunkJENNI7XUcjs.TRUST_CENTER_DOCUMENT_TYPE]: {
16078
+ [_chunkDGNGABNGcjs.TRUST_CENTER_DOCUMENT_TYPE]: {
16012
16079
  label: "Trust center",
16013
16080
  bareInline: true,
16014
- contentRefType: _chunkJENNI7XUcjs.TRUST_CENTER_DOCUMENT_TYPE,
16081
+ contentRefType: _chunkDGNGABNGcjs.TRUST_CENTER_DOCUMENT_TYPE,
16015
16082
  noComposedHref: true,
16016
- fallbackHref: () => _chunkJENNI7XUcjs.TRUST_CENTER_PAGE_PATH,
16083
+ fallbackHref: () => _chunkDGNGABNGcjs.TRUST_CENTER_PAGE_PATH,
16017
16084
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
16018
16085
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TrustCenterChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
16019
16086
  },
@@ -16039,7 +16106,7 @@ var CHAT_CARD_REGISTRY = {
16039
16106
  label: "Blog post",
16040
16107
  contentRefType: "blog_post_existing",
16041
16108
  bareInline: true,
16042
- skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.BlogCardSkeleton, { size: "sm" }),
16109
+ skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.BlogCardSkeleton, { size: "sm" }),
16043
16110
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16044
16111
  BlogChatCard,
16045
16112
  {
@@ -16047,8 +16114,8 @@ var CHAT_CARD_REGISTRY = {
16047
16114
  chatRef,
16048
16115
  isNewTab: opts.isNewTab,
16049
16116
  discuss: opts.discuss,
16050
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _460 => _460.extras, 'optionalAccess', _461 => _461.buildOgPlaceholderUrl, 'optionalCall', _462 => _462(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _463 => _463.title]), () => ( "")))]), () => ( null)),
16051
- hasEmbeddedVideo: _optionalChain([chatRef, 'access', _464 => _464.metadata, 'optionalAccess', _465 => _465.hasEmbeddedVideo]) === true
16117
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _464 => _464.extras, 'optionalAccess', _465 => _465.buildOgPlaceholderUrl, 'optionalCall', _466 => _466(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _467 => _467.title]), () => ( "")))]), () => ( null)),
16118
+ hasEmbeddedVideo: _optionalChain([chatRef, 'access', _468 => _468.metadata, 'optionalAccess', _469 => _469.hasEmbeddedVideo]) === true
16052
16119
  }
16053
16120
  )
16054
16121
  },
@@ -16056,7 +16123,7 @@ var CHAT_CARD_REGISTRY = {
16056
16123
  label: "Case study",
16057
16124
  contentRefType: "case_study",
16058
16125
  bareInline: true,
16059
- skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.CaseStudyCardSkeleton, { size: "sm" }),
16126
+ skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.CaseStudyCardSkeleton, { size: "sm" }),
16060
16127
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16061
16128
  CaseStudyChatCard,
16062
16129
  {
@@ -16064,7 +16131,7 @@ var CHAT_CARD_REGISTRY = {
16064
16131
  chatRef,
16065
16132
  isNewTab: opts.isNewTab,
16066
16133
  discuss: opts.discuss,
16067
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _466 => _466.extras, 'optionalAccess', _467 => _467.buildOgPlaceholderUrl, 'optionalCall', _468 => _468(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _469 => _469.title]), () => ( "")))]), () => ( null))
16134
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _470 => _470.extras, 'optionalAccess', _471 => _471.buildOgPlaceholderUrl, 'optionalCall', _472 => _472(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _473 => _473.title]), () => ( "")))]), () => ( null))
16068
16135
  }
16069
16136
  )
16070
16137
  },
@@ -16073,7 +16140,7 @@ var CHAT_CARD_REGISTRY = {
16073
16140
  contentRefType: "design_doc",
16074
16141
  bareInline: true,
16075
16142
  noComposedHref: true,
16076
- fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _470 => _470.url]), () => ( null)),
16143
+ fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _474 => _474.url]), () => ( null)),
16077
16144
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
16078
16145
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DesignDocChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
16079
16146
  },
@@ -16081,7 +16148,7 @@ var CHAT_CARD_REGISTRY = {
16081
16148
  label: "Customer interview",
16082
16149
  contentRefType: "customer_interview",
16083
16150
  bareInline: true,
16084
- skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.CustomerInterviewCardSkeleton, { size: "sm" }),
16151
+ skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.CustomerInterviewCardSkeleton, { size: "sm" }),
16085
16152
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16086
16153
  CustomerInterviewChatCard,
16087
16154
  {
@@ -16089,7 +16156,7 @@ var CHAT_CARD_REGISTRY = {
16089
16156
  chatRef,
16090
16157
  isNewTab: opts.isNewTab,
16091
16158
  discuss: opts.discuss,
16092
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _471 => _471.extras, 'optionalAccess', _472 => _472.buildOgPlaceholderUrl, 'optionalCall', _473 => _473(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _474 => _474.title]), () => ( "")))]), () => ( null))
16159
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _475 => _475.extras, 'optionalAccess', _476 => _476.buildOgPlaceholderUrl, 'optionalCall', _477 => _477(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _478 => _478.title]), () => ( "")))]), () => ( null))
16093
16160
  }
16094
16161
  )
16095
16162
  },
@@ -16097,9 +16164,9 @@ var CHAT_CARD_REGISTRY = {
16097
16164
  label: "Product release",
16098
16165
  contentRefType: "product_release",
16099
16166
  bareInline: true,
16100
- skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.ProductReleaseCardSkeleton, { size: "sm" }),
16167
+ skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.ProductReleaseCardSkeleton, { size: "sm" }),
16101
16168
  render: (item, chatRef, opts) => {
16102
- const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _475 => _475.extras, 'optionalAccess', _476 => _476.buildProductReleaseCardProps]), () => ( _chunkJENNI7XUcjs.defaultBuildProductReleaseCardProps));
16169
+ const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _479 => _479.extras, 'optionalAccess', _480 => _480.buildProductReleaseCardProps]), () => ( _chunkDGNGABNGcjs.defaultBuildProductReleaseCardProps));
16103
16170
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16104
16171
  ProductReleaseChatCard,
16105
16172
  {
@@ -16117,7 +16184,7 @@ var CHAT_CARD_REGISTRY = {
16117
16184
  label: "Investor update",
16118
16185
  contentRefType: "investor_update",
16119
16186
  bareInline: true,
16120
- skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.InvestorUpdateCardSkeleton, { size: "sm" }),
16187
+ skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.InvestorUpdateCardSkeleton, { size: "sm" }),
16121
16188
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16122
16189
  InvestorUpdateChatCard,
16123
16190
  {
@@ -16125,7 +16192,7 @@ var CHAT_CARD_REGISTRY = {
16125
16192
  chatRef,
16126
16193
  isNewTab: opts.isNewTab,
16127
16194
  discuss: opts.discuss,
16128
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _477 => _477.extras, 'optionalAccess', _478 => _478.buildOgPlaceholderUrl, 'optionalCall', _479 => _479(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _480 => _480.title]), () => ( "")))]), () => ( null))
16195
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _481 => _481.extras, 'optionalAccess', _482 => _482.buildOgPlaceholderUrl, 'optionalCall', _483 => _483(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _484 => _484.title]), () => ( "")))]), () => ( null))
16129
16196
  }
16130
16197
  )
16131
16198
  },
@@ -16135,7 +16202,7 @@ var CHAT_CARD_REGISTRY = {
16135
16202
  bareInline: true,
16136
16203
  // "Display" affordance (verbatim guide body) instead of "Ask".
16137
16204
  displayAction: true,
16138
- skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.OnboardingGuideCardSkeleton, { size: "sm" }),
16205
+ skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.OnboardingGuideCardSkeleton, { size: "sm" }),
16139
16206
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16140
16207
  OnboardingGuideChatCard,
16141
16208
  {
@@ -16143,7 +16210,7 @@ var CHAT_CARD_REGISTRY = {
16143
16210
  chatRef,
16144
16211
  isNewTab: opts.isNewTab,
16145
16212
  discuss: opts.discuss,
16146
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _481 => _481.extras, 'optionalAccess', _482 => _482.buildOgPlaceholderUrl, 'optionalCall', _483 => _483(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _484 => _484.title]), () => ( "")))]), () => ( null))
16213
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _485 => _485.extras, 'optionalAccess', _486 => _486.buildOgPlaceholderUrl, 'optionalCall', _487 => _487(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _488 => _488.title]), () => ( "")))]), () => ( null))
16147
16214
  }
16148
16215
  )
16149
16216
  },
@@ -16154,13 +16221,13 @@ var CHAT_CARD_REGISTRY = {
16154
16221
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
16155
16222
  // No public viewer — synthesize the hub-internal admin URL post-fetch
16156
16223
  // so the wrapper + isNewTab computation see the actual destination.
16157
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _485 => _485.id]) ? `/admin/campaigns/${encodeURIComponent(String(item.id))}` : null,
16224
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _489 => _489.id]) ? `/admin/campaigns/${encodeURIComponent(String(item.id))}` : null,
16158
16225
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
16159
16226
  },
16160
16227
  ...roadmapRegistryEntries()
16161
16228
  };
16162
16229
  function chatCardLabel(docType) {
16163
- return _optionalChain([CHAT_CARD_REGISTRY, 'access', _486 => _486[docType], 'optionalAccess', _487 => _487.label]);
16230
+ return _optionalChain([CHAT_CARD_REGISTRY, 'access', _490 => _490[docType], 'optionalAccess', _491 => _491.label]);
16164
16231
  }
16165
16232
  function ChatCardNavWrap({
16166
16233
  href,
@@ -16176,13 +16243,13 @@ function ChatCardNavWrap({
16176
16243
  if (!href) return;
16177
16244
  const targetEl = e.target;
16178
16245
  const host = e.currentTarget;
16179
- if (!_optionalChain([host, 'optionalAccess', _488 => _488.contains, 'call', _489 => _489(targetEl)])) return;
16180
- if (_optionalChain([targetEl, 'optionalAccess', _490 => _490.closest, 'optionalCall', _491 => _491("button")])) return;
16181
- if (!_optionalChain([targetEl, 'optionalAccess', _492 => _492.closest, 'optionalCall', _493 => _493("a")])) return;
16246
+ if (!_optionalChain([host, 'optionalAccess', _492 => _492.contains, 'call', _493 => _493(targetEl)])) return;
16247
+ if (_optionalChain([targetEl, 'optionalAccess', _494 => _494.closest, 'optionalCall', _495 => _495("button")])) return;
16248
+ if (!_optionalChain([targetEl, 'optionalAccess', _496 => _496.closest, 'optionalCall', _497 => _497("a")])) return;
16182
16249
  const handled = executeNavigation({ event: e, runtime, href, path, targetPlatform, fallbackNavigate: router.push });
16183
16250
  if (!handled) return;
16184
16251
  e.stopPropagation();
16185
- if (!isNewTab && _optionalChain([panel, 'optionalAccess', _494 => _494.closeChat])) panel.closeChat();
16252
+ if (!isNewTab && _optionalChain([panel, 'optionalAccess', _498 => _498.closeChat])) panel.closeChat();
16186
16253
  };
16187
16254
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
16188
16255
  }
@@ -16198,7 +16265,7 @@ function ChatCardLoader({
16198
16265
  const entry = CHAT_CARD_REGISTRY[chatRef.type];
16199
16266
  const fetchEntry = entry && entry.contentRefType ? entry : null;
16200
16267
  const { item, isLoading, isError, isFetched } = useChatCardItem(
16201
- _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _495 => _495.contentRefType]), () => ( "")),
16268
+ _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _499 => _499.contentRefType]), () => ( "")),
16202
16269
  fetchEntry ? chatRef.id : ""
16203
16270
  );
16204
16271
  if (!entry) return null;
@@ -16219,7 +16286,7 @@ function ChatCardLoader({
16219
16286
  };
16220
16287
  const fetchedTitle = fetchEntry && item ? readFetchedCardTitle(item) : null;
16221
16288
  const finalChatRef = fetchedTitle && (!hrefResolvedChatRef.title || hrefResolvedChatRef.title === hrefResolvedChatRef.id) ? { ...hrefResolvedChatRef, title: fetchedTitle } : hrefResolvedChatRef;
16222
- const isNewTab = _chunkJENNI7XUcjs.computeIsNewTab.call(void 0, runtime, finalChatRef.url, _nullishCoalesce(finalChatRef.targetPlatform, () => ( null)));
16289
+ const isNewTab = _chunkDGNGABNGcjs.computeIsNewTab.call(void 0, runtime, finalChatRef.url, _nullishCoalesce(finalChatRef.targetPlatform, () => ( null)));
16223
16290
  const useDisplay = !!entry.displayAction && !!onDisplay;
16224
16291
  const discussFn = useDisplay ? onDisplay : onDiscuss;
16225
16292
  const discuss = discussFn ? {
@@ -16242,7 +16309,7 @@ function ChatCardLoader({
16242
16309
  isNewTab,
16243
16310
  discuss
16244
16311
  };
16245
- const path = typeof _optionalChain([finalChatRef, 'access', _496 => _496.metadata, 'optionalAccess', _497 => _497.path]) === "string" ? finalChatRef.metadata.path : null;
16312
+ const path = typeof _optionalChain([finalChatRef, 'access', _500 => _500.metadata, 'optionalAccess', _501 => _501.path]) === "string" ? finalChatRef.metadata.path : null;
16246
16313
  const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16247
16314
  ChatCardNavWrap,
16248
16315
  {
@@ -16266,7 +16333,7 @@ function ChatCardLoader({
16266
16333
  if (!fetchEntry) {
16267
16334
  return finish(entry.render(void 0, finalChatRef, renderOpts));
16268
16335
  }
16269
- if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([fetchEntry, 'access', _498 => _498.skeleton, 'optionalCall', _499 => _499()]), () => ( null)) });
16336
+ if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([fetchEntry, 'access', _502 => _502.skeleton, 'optionalCall', _503 => _503()]), () => ( null)) });
16270
16337
  if (!item) {
16271
16338
  if (isError) {
16272
16339
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardLoadFailure, { label: entry.label, id: finalChatRef.id, detail: "Failed to load" });
@@ -16355,12 +16422,12 @@ function makeBatchDedupKey(item) {
16355
16422
  return `${item.messageType}:${seq}:${type}:${text2}:${integratedToolType}:${toolFunction}:${approvalRequestId}`;
16356
16423
  }
16357
16424
  function getChatTypeMessageType(chatType) {
16358
- return chatType === _chunkFDWYBJYDcjs.CHAT_TYPE.ADMIN ? "admin-message" : "message";
16425
+ return chatType === _chunk7AXOAA5Tcjs.CHAT_TYPE.ADMIN ? "admin-message" : "message";
16359
16426
  }
16360
16427
  function useChunkCatchup({
16361
16428
  dialogId,
16362
16429
  onChunkReceived,
16363
- chatTypes = [_chunkFDWYBJYDcjs.CHAT_TYPE.CLIENT],
16430
+ chatTypes = [_chunk7AXOAA5Tcjs.CHAT_TYPE.CLIENT],
16364
16431
  fetchChunks
16365
16432
  }) {
16366
16433
  const processedSequenceKeys = _react.useRef.call(void 0, /* @__PURE__ */ new Set());
@@ -16574,7 +16641,7 @@ function useChunkCatchup({
16574
16641
  if (catchupRun.current === run) {
16575
16642
  if (currentDialogId !== dialogIdRef.current) {
16576
16643
  catchupRun.current = null;
16577
- if (_optionalChain([pendingCatchupRef, 'access', _500 => _500.current, 'optionalAccess', _501 => _501.dialogId]) === currentDialogId) {
16644
+ if (_optionalChain([pendingCatchupRef, 'access', _504 => _504.current, 'optionalAccess', _505 => _505.dialogId]) === currentDialogId) {
16578
16645
  pendingCatchupRef.current = null;
16579
16646
  }
16580
16647
  } else {
@@ -16585,7 +16652,7 @@ function useChunkCatchup({
16585
16652
  if (pending.dialogId === currentDialogId) {
16586
16653
  rearmForQueuedCatchup();
16587
16654
  try {
16588
- await _optionalChain([catchUpChunksRef, 'access', _502 => _502.current, 'optionalCall', _503 => _503(pending.fromSequenceId)]);
16655
+ await _optionalChain([catchUpChunksRef, 'access', _506 => _506.current, 'optionalCall', _507 => _507(pending.fromSequenceId)]);
16589
16656
  } catch (rerunError) {
16590
16657
  console.error("Queued catch-up re-run failed:", rerunError);
16591
16658
  }
@@ -16652,7 +16719,7 @@ function useChunkCatchup({
16652
16719
 
16653
16720
  var EMPTY_FRAME = { messages: [], phase: "idle", typing: false, delayMs: 0 };
16654
16721
  function prefersReducedMotion() {
16655
- return typeof window !== "undefined" && _optionalChain([window, 'access', _504 => _504.matchMedia, 'optionalCall', _505 => _505("(prefers-reduced-motion: reduce)"), 'access', _506 => _506.matches]) === true;
16722
+ return typeof window !== "undefined" && _optionalChain([window, 'access', _508 => _508.matchMedia, 'optionalCall', _509 => _509("(prefers-reduced-motion: reduce)"), 'access', _510 => _510.matches]) === true;
16656
16723
  }
16657
16724
  function useScriptedStream(frames, resetKey, enabled = true) {
16658
16725
  const [index, setIndex] = _react.useState.call(void 0, 0);
@@ -16663,7 +16730,7 @@ function useScriptedStream(frames, resetKey, enabled = true) {
16663
16730
  setIndex(0);
16664
16731
  }
16665
16732
  _react.useEffect.call(void 0, () => {
16666
- const mq = _optionalChain([window, 'access', _507 => _507.matchMedia, 'optionalCall', _508 => _508("(prefers-reduced-motion: reduce)")]);
16733
+ const mq = _optionalChain([window, 'access', _511 => _511.matchMedia, 'optionalCall', _512 => _512("(prefers-reduced-motion: reduce)")]);
16667
16734
  const sync = () => setReducedMotion(mq ? mq.matches : prefersReducedMotion());
16668
16735
  sync();
16669
16736
  if (!mq) return void 0;
@@ -16806,7 +16873,7 @@ function useJetStreamDialogSubscription({
16806
16873
  const lifecycle = _chunkG7SBHMRRcjs.startConnectionLifecycle.call(void 0, {
16807
16874
  conn: sharedConn,
16808
16875
  wsUrl,
16809
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _509 => _509.current, 'optionalCall', _510 => _510()]),
16876
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _513 => _513.current, 'optionalCall', _514 => _514()]),
16810
16877
  backoff: reconnectionBackoffRef.current,
16811
16878
  getFreshUrl: () => getNatsWsUrlRef.current(),
16812
16879
  // JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
@@ -16821,7 +16888,7 @@ function useJetStreamDialogSubscription({
16821
16888
  setReconnectionCount((c) => c + 1);
16822
16889
  }
16823
16890
  hadConnectionBeforeRef.current = true;
16824
- _optionalChain([onConnectRef, 'access', _511 => _511.current, 'optionalCall', _512 => _512()]);
16891
+ _optionalChain([onConnectRef, 'access', _515 => _515.current, 'optionalCall', _516 => _516()]);
16825
16892
  }
16826
16893
  if (status === "error") {
16827
16894
  console.warn("[JetStream] NATS protocol error:", evt.data);
@@ -16831,7 +16898,7 @@ function useJetStreamDialogSubscription({
16831
16898
  setIsConnected(false);
16832
16899
  setIsSubscribed(false);
16833
16900
  tearDownSubscription();
16834
- _optionalChain([onDisconnectRef, 'access', _513 => _513.current, 'optionalCall', _514 => _514()]);
16901
+ _optionalChain([onDisconnectRef, 'access', _517 => _517.current, 'optionalCall', _518 => _518()]);
16835
16902
  }
16836
16903
  }
16837
16904
  });
@@ -16957,7 +17024,7 @@ function useJetStreamDialogSubscription({
16957
17024
  }
16958
17025
  subscriptionRef.current = handle;
16959
17026
  setIsSubscribed(true);
16960
- _optionalChain([onSubscribedRef, 'access', _515 => _515.current, 'optionalCall', _516 => _516()]);
17027
+ _optionalChain([onSubscribedRef, 'access', _519 => _519.current, 'optionalCall', _520 => _520()]);
16961
17028
  } catch (e31) {
16962
17029
  if (!cancelled) {
16963
17030
  setIsSubscribed(false);
@@ -17073,20 +17140,20 @@ function useNatsDialogSubscription({
17073
17140
  const tearDownSubscriptions = () => {
17074
17141
  subscriptionRefs.current.forEach((sub) => {
17075
17142
  try {
17076
- _optionalChain([sub, 'optionalAccess', _517 => _517.unsubscribe, 'call', _518 => _518()]);
17143
+ _optionalChain([sub, 'optionalAccess', _521 => _521.unsubscribe, 'call', _522 => _522()]);
17077
17144
  } catch (e33) {
17078
17145
  }
17079
17146
  });
17080
17147
  subscriptionRefs.current.clear();
17081
17148
  lastSubscribedDialogIdRef.current = null;
17082
- _optionalChain([abortControllerRef, 'access', _519 => _519.current, 'optionalAccess', _520 => _520.abort, 'call', _521 => _521()]);
17149
+ _optionalChain([abortControllerRef, 'access', _523 => _523.current, 'optionalAccess', _524 => _524.abort, 'call', _525 => _525()]);
17083
17150
  abortControllerRef.current = null;
17084
17151
  };
17085
17152
  const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
17086
17153
  const lifecycle = _chunkG7SBHMRRcjs.startConnectionLifecycle.call(void 0, {
17087
17154
  conn: sharedConn,
17088
17155
  wsUrl,
17089
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _522 => _522.current, 'optionalCall', _523 => _523()]),
17156
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _526 => _526.current, 'optionalCall', _527 => _527()]),
17090
17157
  backoff: reconnectionBackoffRef.current,
17091
17158
  getFreshUrl: () => getNatsWsUrlRef.current(),
17092
17159
  shouldRetryOn: isDisconnectStatus,
@@ -17097,7 +17164,7 @@ function useNatsDialogSubscription({
17097
17164
  setReconnectionCount((c) => c + 1);
17098
17165
  }
17099
17166
  hadConnectionBeforeRef.current = true;
17100
- _optionalChain([onConnectRef, 'access', _524 => _524.current, 'optionalCall', _525 => _525()]);
17167
+ _optionalChain([onConnectRef, 'access', _528 => _528.current, 'optionalCall', _529 => _529()]);
17101
17168
  }
17102
17169
  if (status === "error") {
17103
17170
  console.warn("[NATS] protocol error:", evt.data);
@@ -17107,7 +17174,7 @@ function useNatsDialogSubscription({
17107
17174
  setIsConnected(false);
17108
17175
  setIsSubscribed(false);
17109
17176
  tearDownSubscriptions();
17110
- _optionalChain([onDisconnectRef, 'access', _526 => _526.current, 'optionalCall', _527 => _527()]);
17177
+ _optionalChain([onDisconnectRef, 'access', _530 => _530.current, 'optionalCall', _531 => _531()]);
17111
17178
  }
17112
17179
  }
17113
17180
  });
@@ -17138,13 +17205,13 @@ function useNatsDialogSubscription({
17138
17205
  setIsSubscribed(false);
17139
17206
  subscriptionRefs.current.forEach((sub) => {
17140
17207
  try {
17141
- _optionalChain([sub, 'optionalAccess', _528 => _528.unsubscribe, 'call', _529 => _529()]);
17208
+ _optionalChain([sub, 'optionalAccess', _532 => _532.unsubscribe, 'call', _533 => _533()]);
17142
17209
  } catch (e34) {
17143
17210
  }
17144
17211
  });
17145
17212
  subscriptionRefs.current.clear();
17146
17213
  lastSubscribedDialogIdRef.current = null;
17147
- _optionalChain([abortControllerRef, 'access', _530 => _530.current, 'optionalAccess', _531 => _531.abort, 'call', _532 => _532()]);
17214
+ _optionalChain([abortControllerRef, 'access', _534 => _534.current, 'optionalAccess', _535 => _535.abort, 'call', _536 => _536()]);
17148
17215
  abortControllerRef.current = null;
17149
17216
  }
17150
17217
  return void 0;
@@ -17156,12 +17223,12 @@ function useNatsDialogSubscription({
17156
17223
  if (subscriptionRefs.current.size > 0) {
17157
17224
  subscriptionRefs.current.forEach((sub) => {
17158
17225
  try {
17159
- _optionalChain([sub, 'optionalAccess', _533 => _533.unsubscribe, 'call', _534 => _534()]);
17226
+ _optionalChain([sub, 'optionalAccess', _537 => _537.unsubscribe, 'call', _538 => _538()]);
17160
17227
  } catch (e35) {
17161
17228
  }
17162
17229
  });
17163
17230
  subscriptionRefs.current.clear();
17164
- _optionalChain([abortControllerRef, 'access', _535 => _535.current, 'optionalAccess', _536 => _536.abort, 'call', _537 => _537()]);
17231
+ _optionalChain([abortControllerRef, 'access', _539 => _539.current, 'optionalAccess', _540 => _540.abort, 'call', _541 => _541()]);
17165
17232
  }
17166
17233
  abortControllerRef.current = new AbortController();
17167
17234
  const abort = abortControllerRef.current;
@@ -17191,7 +17258,7 @@ function useNatsDialogSubscription({
17191
17258
  });
17192
17259
  lastSubscribedDialogIdRef.current = dialogId;
17193
17260
  setIsSubscribed(true);
17194
- _optionalChain([onSubscribedRef, 'access', _538 => _538.current, 'optionalCall', _539 => _539()]);
17261
+ _optionalChain([onSubscribedRef, 'access', _542 => _542.current, 'optionalCall', _543 => _543()]);
17195
17262
  };
17196
17263
  if (isConnectedRef.current) {
17197
17264
  createSubscriptions();
@@ -17202,7 +17269,7 @@ function useNatsDialogSubscription({
17202
17269
  abort.abort();
17203
17270
  subscriptions.forEach((sub) => {
17204
17271
  try {
17205
- _optionalChain([sub, 'optionalAccess', _540 => _540.unsubscribe, 'call', _541 => _541()]);
17272
+ _optionalChain([sub, 'optionalAccess', _544 => _544.unsubscribe, 'call', _545 => _545()]);
17206
17273
  } catch (e37) {
17207
17274
  }
17208
17275
  });
@@ -17241,7 +17308,7 @@ function useNatsDialogSubscription({
17241
17308
  });
17242
17309
  lastSubscribedDialogIdRef.current = currentDialogId;
17243
17310
  setIsSubscribed(true);
17244
- _optionalChain([onSubscribedRef, 'access', _542 => _542.current, 'optionalCall', _543 => _543()]);
17311
+ _optionalChain([onSubscribedRef, 'access', _546 => _546.current, 'optionalCall', _547 => _547()]);
17245
17312
  } else if (subscriptionRefs.current.size > 0) {
17246
17313
  setIsSubscribed(true);
17247
17314
  }
@@ -17249,10 +17316,10 @@ function useNatsDialogSubscription({
17249
17316
  return { isConnected, isSubscribed, reconnectionCount };
17250
17317
  }
17251
17318
  function buildNatsWsUrl(apiBaseUrl, options) {
17252
- const path = _optionalChain([options, 'optionalAccess', _544 => _544.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
17319
+ const path = _optionalChain([options, 'optionalAccess', _548 => _548.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
17253
17320
  const u = new URL(path, apiBaseUrl);
17254
17321
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
17255
- if (_optionalChain([options, 'optionalAccess', _545 => _545.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _546 => _546.token])) {
17322
+ if (_optionalChain([options, 'optionalAccess', _549 => _549.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _550 => _550.token])) {
17256
17323
  u.searchParams.set("authorization", options.token);
17257
17324
  }
17258
17325
  return u.toString();
@@ -17270,7 +17337,7 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
17270
17337
  const data = await res.json();
17271
17338
  return _nullishCoalesce(data.commands, () => ( []));
17272
17339
  } catch (err) {
17273
- if (_optionalChain([err, 'optionalAccess', _547 => _547.name]) === "AbortError") throw err;
17340
+ if (_optionalChain([err, 'optionalAccess', _551 => _551.name]) === "AbortError") throw err;
17274
17341
  console.warn("[chat] slash-commands fetch failed, showing none:", err);
17275
17342
  return [];
17276
17343
  }
@@ -17278,8 +17345,8 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
17278
17345
  var NO_COMMANDS = [];
17279
17346
  function useSlashCommands(prefix, commandsUrl) {
17280
17347
  const [answered, setAnswered] = _react.useState.call(void 0, null);
17281
- const commands = prefix != null && _optionalChain([answered, 'optionalAccess', _548 => _548.prefix]) === prefix ? answered.commands : NO_COMMANDS;
17282
- const loading = prefix != null && _optionalChain([answered, 'optionalAccess', _549 => _549.prefix]) !== prefix;
17348
+ const commands = prefix != null && _optionalChain([answered, 'optionalAccess', _552 => _552.prefix]) === prefix ? answered.commands : NO_COMMANDS;
17349
+ const loading = prefix != null && _optionalChain([answered, 'optionalAccess', _553 => _553.prefix]) !== prefix;
17283
17350
  _react.useEffect.call(void 0, () => {
17284
17351
  if (prefix == null) return void 0;
17285
17352
  let cancelled = false;
@@ -17289,7 +17356,7 @@ function useSlashCommands(prefix, commandsUrl) {
17289
17356
  const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
17290
17357
  if (!cancelled) setAnswered({ prefix, commands: next });
17291
17358
  } catch (err) {
17292
- if (!cancelled && _optionalChain([err, 'optionalAccess', _550 => _550.name]) !== "AbortError") {
17359
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _554 => _554.name]) !== "AbortError") {
17293
17360
  console.warn("[use-slash-commands] fetch failed:", err);
17294
17361
  setAnswered({ prefix, commands: NO_COMMANDS });
17295
17362
  }
@@ -17312,7 +17379,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
17312
17379
  const query = _reactquery.useQuery.call(void 0, {
17313
17380
  queryKey: ["chat-slash-commands", commandsUrl],
17314
17381
  queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
17315
- enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _551 => _551.enabled]), () => ( true)),
17382
+ enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _555 => _555.enabled]), () => ( true)),
17316
17383
  staleTime: Infinity,
17317
17384
  gcTime: Infinity,
17318
17385
  // The commands registry is non-critical chrome — a failure degrades to an
@@ -17351,21 +17418,21 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
17351
17418
  }
17352
17419
  const data = await res.json();
17353
17420
  return {
17354
- name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _552 => _552.name]), () => ( null)),
17355
- icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _553 => _553.icon]), () => ( null)),
17356
- greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _554 => _554.greeting]), () => ( null)),
17357
- enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _555 => _555.enabledRagTableIds]), () => ( [])),
17358
- quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _556 => _556.quickActions]), () => ( [])),
17359
- suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _557 => _557.suggestedQueries]), () => ( []))
17421
+ name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _556 => _556.name]), () => ( null)),
17422
+ icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _557 => _557.icon]), () => ( null)),
17423
+ greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _558 => _558.greeting]), () => ( null)),
17424
+ enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _559 => _559.enabledRagTableIds]), () => ( [])),
17425
+ quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _560 => _560.quickActions]), () => ( [])),
17426
+ suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _561 => _561.suggestedQueries]), () => ( []))
17360
17427
  };
17361
17428
  } catch (err) {
17362
- if (_optionalChain([err, 'optionalAccess', _558 => _558.name]) === "AbortError") throw err;
17429
+ if (_optionalChain([err, 'optionalAccess', _562 => _562.name]) === "AbortError") throw err;
17363
17430
  console.warn("[chat] empty-state config fetch failed, using neutral defaults:", err);
17364
17431
  return EMPTY_STATE_FALLBACK;
17365
17432
  }
17366
17433
  }
17367
17434
  function useEmptyStateConfig(emptyStateUrl, options) {
17368
- const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _559 => _559.enabled]), () => ( true))) && !!emptyStateUrl;
17435
+ const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _563 => _563.enabled]), () => ( true))) && !!emptyStateUrl;
17369
17436
  const query = _reactquery.useQuery.call(void 0, {
17370
17437
  queryKey: ["chat-empty-state", emptyStateUrl],
17371
17438
  queryFn: ({ signal }) => fetchEmptyStateConfig(signal, emptyStateUrl),
@@ -17394,7 +17461,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
17394
17461
  var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
17395
17462
  function uploadWithProgress(url, file, token, onProgress, signal) {
17396
17463
  return new Promise((resolve, reject) => {
17397
- if (_optionalChain([signal, 'optionalAccess', _560 => _560.aborted])) {
17464
+ if (_optionalChain([signal, 'optionalAccess', _564 => _564.aborted])) {
17398
17465
  reject(new Error("Upload cancelled"));
17399
17466
  return;
17400
17467
  }
@@ -17436,7 +17503,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
17436
17503
  const handleSignalAbort = () => {
17437
17504
  xhr.abort();
17438
17505
  };
17439
- _optionalChain([signal, 'optionalAccess', _561 => _561.addEventListener, 'call', _562 => _562("abort", handleSignalAbort, { once: true, signal: listeners.signal })]);
17506
+ _optionalChain([signal, 'optionalAccess', _565 => _565.addEventListener, 'call', _566 => _566("abort", handleSignalAbort, { once: true, signal: listeners.signal })]);
17440
17507
  xhr.upload.addEventListener("progress", handleProgress, { signal: listeners.signal });
17441
17508
  xhr.addEventListener("load", handleLoad, { signal: listeners.signal });
17442
17509
  xhr.addEventListener("error", handleError, { signal: listeners.signal });
@@ -17480,10 +17547,10 @@ function useChatAttachments() {
17480
17547
  try {
17481
17548
  sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
17482
17549
  } catch (err) {
17483
- if (_optionalChain([ctrl, 'optionalAccess', _563 => _563.signal, 'access', _564 => _564.aborted])) return;
17550
+ if (_optionalChain([ctrl, 'optionalAccess', _567 => _567.signal, 'access', _568 => _568.aborted])) return;
17484
17551
  throw new Error(`Could not read file content: ${err instanceof Error ? err.message : String(err)}`);
17485
17552
  }
17486
- if (_optionalChain([ctrl, 'optionalAccess', _565 => _565.signal, 'access', _566 => _566.aborted])) return;
17553
+ if (_optionalChain([ctrl, 'optionalAccess', _569 => _569.signal, 'access', _570 => _570.aborted])) return;
17487
17554
  if (!sniffed) {
17488
17555
  throw new Error("Unrecognized file format");
17489
17556
  }
@@ -17497,7 +17564,7 @@ function useChatAttachments() {
17497
17564
  const urlResp = await _chunkULWVKHSIcjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
17498
17565
  method: "POST",
17499
17566
  headers: { "Content-Type": "application/json" },
17500
- signal: _optionalChain([ctrl, 'optionalAccess', _567 => _567.signal]),
17567
+ signal: _optionalChain([ctrl, 'optionalAccess', _571 => _571.signal]),
17501
17568
  body: JSON.stringify({
17502
17569
  fileName: att.file.name,
17503
17570
  // Pass the SNIFFED MIME (not `file.type`, which can be a
@@ -17526,9 +17593,9 @@ function useChatAttachments() {
17526
17593
  (pct) => {
17527
17594
  updateOne(att.id, { progress: pct });
17528
17595
  },
17529
- _optionalChain([ctrl, 'optionalAccess', _568 => _568.signal])
17596
+ _optionalChain([ctrl, 'optionalAccess', _572 => _572.signal])
17530
17597
  );
17531
- if (_optionalChain([ctrl, 'optionalAccess', _569 => _569.signal, 'access', _570 => _570.aborted])) return;
17598
+ if (_optionalChain([ctrl, 'optionalAccess', _573 => _573.signal, 'access', _574 => _574.aborted])) return;
17532
17599
  updateOne(att.id, {
17533
17600
  status: "ready",
17534
17601
  progress: 100,
@@ -17536,7 +17603,7 @@ function useChatAttachments() {
17536
17603
  viewToken: mintData.viewToken
17537
17604
  });
17538
17605
  } catch (err) {
17539
- if (_optionalChain([ctrl, 'optionalAccess', _571 => _571.signal, 'access', _572 => _572.aborted])) return;
17606
+ if (_optionalChain([ctrl, 'optionalAccess', _575 => _575.signal, 'access', _576 => _576.aborted])) return;
17540
17607
  const message = err instanceof Error ? err.message : String(err);
17541
17608
  updateOne(att.id, { status: "error", progress: 0, errorMessage: message });
17542
17609
  } finally {
@@ -17658,7 +17725,7 @@ function useChatAttachmentImageGallery() {
17658
17725
  return () => root.removeEventListener("click", onClick);
17659
17726
  }, [viewUrlPrefix]);
17660
17727
  const modal = state.isOpen ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17661
- _chunkJENNI7XUcjs.ImageGalleryModal,
17728
+ _chunkDGNGABNGcjs.ImageGalleryModal,
17662
17729
  {
17663
17730
  images: state.images,
17664
17731
  isOpen: state.isOpen,
@@ -17685,11 +17752,11 @@ var ANON_DEFAULTS = {
17685
17752
  function useResolveChatIdentity(enabled) {
17686
17753
  const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
17687
17754
  const url = runtime.endpoints.identityUrl;
17688
- const proxyEmail = _nullishCoalesce(_optionalChain([_chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _573 => _573.email]), () => ( null));
17755
+ const proxyEmail = _nullishCoalesce(_optionalChain([_chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _577 => _577.email]), () => ( null));
17689
17756
  const requestKey = enabled ? `${url}\0${_nullishCoalesce(proxyEmail, () => ( ""))}` : null;
17690
17757
  const [resolved, setResolved] = _react.useState.call(void 0, null);
17691
- const data = _optionalChain([resolved, 'optionalAccess', _574 => _574.key]) === requestKey ? resolved.data : ANON_DEFAULTS;
17692
- const isLoading = requestKey !== null && _optionalChain([resolved, 'optionalAccess', _575 => _575.key]) !== requestKey;
17758
+ const data = _optionalChain([resolved, 'optionalAccess', _578 => _578.key]) === requestKey ? resolved.data : ANON_DEFAULTS;
17759
+ const isLoading = requestKey !== null && _optionalChain([resolved, 'optionalAccess', _579 => _579.key]) !== requestKey;
17693
17760
  _react.useEffect.call(void 0, () => {
17694
17761
  if (requestKey === null) return void 0;
17695
17762
  let cancelled = false;
@@ -17836,7 +17903,7 @@ function useChat({
17836
17903
  onMessagesChangeRef.current = onMessagesChange;
17837
17904
  });
17838
17905
  _react.useEffect.call(void 0, () => {
17839
- _optionalChain([onMessagesChangeRef, 'access', _576 => _576.current, 'optionalCall', _577 => _577(messages)]);
17906
+ _optionalChain([onMessagesChangeRef, 'access', _580 => _580.current, 'optionalCall', _581 => _581(messages)]);
17840
17907
  }, [messages]);
17841
17908
  const {
17842
17909
  streamMessage,
@@ -17873,7 +17940,7 @@ function useChat({
17873
17940
  name: "You",
17874
17941
  content: text2,
17875
17942
  timestamp: /* @__PURE__ */ new Date(),
17876
- ..._optionalChain([options, 'optionalAccess', _578 => _578.hidden]) ? { hidden: true } : {}
17943
+ ..._optionalChain([options, 'optionalAccess', _582 => _582.hidden]) ? { hidden: true } : {}
17877
17944
  };
17878
17945
  addMessage(userMessage);
17879
17946
  setIsTyping(true);
@@ -18087,7 +18154,7 @@ function buildConfirmToolBody(request) {
18087
18154
  async function readServerErrorMessage(response) {
18088
18155
  try {
18089
18156
  const body = await response.json();
18090
- if (typeof _optionalChain([body, 'optionalAccess', _579 => _579.error]) === "string" && body.error.length > 0) return body.error;
18157
+ if (typeof _optionalChain([body, 'optionalAccess', _583 => _583.error]) === "string" && body.error.length > 0) return body.error;
18091
18158
  } catch (e39) {
18092
18159
  }
18093
18160
  return null;
@@ -18398,7 +18465,7 @@ function nullableText(value) {
18398
18465
  }
18399
18466
  function httpsUrl(value) {
18400
18467
  const candidate = text(value);
18401
- if (!candidate || _chunkJENNI7XUcjs.UNSAFE_URL_CHARS.test(candidate)) return void 0;
18468
+ if (!candidate || _chunkDGNGABNGcjs.UNSAFE_URL_CHARS.test(candidate)) return void 0;
18402
18469
  try {
18403
18470
  return new URL(candidate).protocol === "https:" ? candidate : void 0;
18404
18471
  } catch (e43) {
@@ -18415,7 +18482,7 @@ function youtubeVideoId(value) {
18415
18482
  const hostname = parsed.hostname.toLowerCase();
18416
18483
  const isYoutubeHost = hostname === "youtu.be" || hostname === "youtube.com" || hostname.endsWith(".youtube.com");
18417
18484
  if (!isYoutubeHost) return void 0;
18418
- const fromPath = hostname === "youtu.be" ? parsed.pathname.split("/").filter(Boolean)[0] : _optionalChain([/^\/(?:embed|v|shorts)\/([A-Za-z0-9_-]{11})(?:\/|$)/, 'access', _580 => _580.exec, 'call', _581 => _581(parsed.pathname), 'optionalAccess', _582 => _582[1]]);
18485
+ const fromPath = hostname === "youtu.be" ? parsed.pathname.split("/").filter(Boolean)[0] : _optionalChain([/^\/(?:embed|v|shorts)\/([A-Za-z0-9_-]{11})(?:\/|$)/, 'access', _584 => _584.exec, 'call', _585 => _585(parsed.pathname), 'optionalAccess', _586 => _586[1]]);
18419
18486
  const id = _nullishCoalesce(_nullishCoalesce(fromPath, () => ( parsed.searchParams.get("v"))), () => ( void 0));
18420
18487
  return id && YOUTUBE_ID.test(id) ? id : void 0;
18421
18488
  }
@@ -18534,11 +18601,11 @@ function cards(value, decodedSources) {
18534
18601
  {
18535
18602
  type,
18536
18603
  id,
18537
- title: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _583 => _583.name]), () => ( id)),
18538
- url: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _584 => _584.externalUrl]), () => ( null)),
18539
- ..._optionalChain([source, 'optionalAccess', _585 => _585.sourceRepo]) ? { sourceRepo: source.sourceRepo } : {},
18540
- ..._optionalChain([source, 'optionalAccess', _586 => _586.targetPlatform]) !== void 0 ? { targetPlatform: source.targetPlatform } : {},
18541
- ..._optionalChain([source, 'optionalAccess', _587 => _587.path]) ? { metadata: { path: source.path } } : {}
18604
+ title: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _587 => _587.name]), () => ( id)),
18605
+ url: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _588 => _588.externalUrl]), () => ( null)),
18606
+ ..._optionalChain([source, 'optionalAccess', _589 => _589.sourceRepo]) ? { sourceRepo: source.sourceRepo } : {},
18607
+ ..._optionalChain([source, 'optionalAccess', _590 => _590.targetPlatform]) !== void 0 ? { targetPlatform: source.targetPlatform } : {},
18608
+ ..._optionalChain([source, 'optionalAccess', _591 => _591.path]) ? { metadata: { path: source.path } } : {}
18542
18609
  }
18543
18610
  ];
18544
18611
  });
@@ -18574,11 +18641,11 @@ function attachmentsEvent(record) {
18574
18641
  }
18575
18642
  function mergeSourceMetadata(previous, event) {
18576
18643
  const byIndex = /* @__PURE__ */ new Map();
18577
- for (const source of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _588 => _588.sources]), () => ( [])), ..._nullishCoalesce(event.sources, () => ( []))]) {
18644
+ for (const source of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _592 => _592.sources]), () => ( [])), ..._nullishCoalesce(event.sources, () => ( []))]) {
18578
18645
  if (!byIndex.has(source.index)) byIndex.set(source.index, source);
18579
18646
  }
18580
18647
  const byIdentity = /* @__PURE__ */ new Map();
18581
- for (const ref of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _589 => _589.refs]), () => ( [])), ..._nullishCoalesce(event.refs, () => ( []))]) {
18648
+ for (const ref of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _593 => _593.refs]), () => ( [])), ..._nullishCoalesce(event.refs, () => ( []))]) {
18582
18649
  const identity = `${ref.type}:${ref.id}`;
18583
18650
  if (!byIdentity.has(identity)) byIdentity.set(identity, ref);
18584
18651
  }
@@ -18664,9 +18731,9 @@ function appendToTrailingAssistant(prev, segments) {
18664
18731
  for (const seg of segments) {
18665
18732
  const tail = merged[merged.length - 1];
18666
18733
  const key = upsertKey(seg);
18667
- if (seg.type === "text" && _optionalChain([tail, 'optionalAccess', _590 => _590.type]) === "text") {
18734
+ if (seg.type === "text" && _optionalChain([tail, 'optionalAccess', _594 => _594.type]) === "text") {
18668
18735
  merged[merged.length - 1] = { type: "text", text: tail.text + seg.text };
18669
- } else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess', _591 => _591.type]) === "thinking") {
18736
+ } else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess', _595 => _595.type]) === "thinking") {
18670
18737
  merged[merged.length - 1] = { type: "thinking", text: tail.text + seg.text };
18671
18738
  } else if (key) {
18672
18739
  let idx = merged.findIndex((m) => upsertKey(m) === key);
@@ -18707,7 +18774,7 @@ function applyApprovalStatusToSegment(s, requestId, status, resolvedByName) {
18707
18774
  }
18708
18775
  if (s.type !== "approval_batch") return s;
18709
18776
  const isAnchor = s.data.approvalRequestId === requestId;
18710
- const hasRow = _optionalChain([s, 'access', _592 => _592.data, 'access', _593 => _593.toolCalls, 'optionalAccess', _594 => _594.some, 'call', _595 => _595((c) => c.toolExecutionRequestId === requestId)]);
18777
+ const hasRow = _optionalChain([s, 'access', _596 => _596.data, 'access', _597 => _597.toolCalls, 'optionalAccess', _598 => _598.some, 'call', _599 => _599((c) => c.toolExecutionRequestId === requestId)]);
18711
18778
  if (!isAnchor && !hasRow) return s;
18712
18779
  const nextResolvedBy = _nullishCoalesce(resolvedByName, () => ( s.resolvedByName));
18713
18780
  const nextExecutions = hasRow ? {
@@ -18729,8 +18796,8 @@ function applyApprovalStatusToSegment(s, requestId, status, resolvedByName) {
18729
18796
  };
18730
18797
  }
18731
18798
  function nextBatchExecution(prevExec, toolData) {
18732
- if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess', _596 => _596.status]) === "done") return null;
18733
- return toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess', _597 => _597.result]), success: _optionalChain([prevExec, 'optionalAccess', _598 => _598.success]) };
18799
+ if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess', _600 => _600.status]) === "done") return null;
18800
+ return toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess', _601 => _601.result]), success: _optionalChain([prevExec, 'optionalAccess', _602 => _602.success]) };
18734
18801
  }
18735
18802
  function withBatchExecution(seg, execId, state) {
18736
18803
  return {
@@ -18747,11 +18814,11 @@ function projectBatchStatusToMessages(prev, anchorId, status) {
18747
18814
  }
18748
18815
  function projectBatchRowFailureToMessages(prev, rowRequestId) {
18749
18816
  return mapSegments(prev, (s) => {
18750
- if (s.type !== "approval_batch" || !_optionalChain([s, 'access', _599 => _599.data, 'access', _600 => _600.toolCalls, 'optionalAccess', _601 => _601.some, 'call', _602 => _602((c) => c.toolExecutionRequestId === rowRequestId)])) {
18817
+ if (s.type !== "approval_batch" || !_optionalChain([s, 'access', _603 => _603.data, 'access', _604 => _604.toolCalls, 'optionalAccess', _605 => _605.some, 'call', _606 => _606((c) => c.toolExecutionRequestId === rowRequestId)])) {
18751
18818
  return s;
18752
18819
  }
18753
- const existing = _optionalChain([s, 'access', _603 => _603.data, 'access', _604 => _604.executions, 'optionalAccess', _605 => _605[rowRequestId]]);
18754
- if (_optionalChain([existing, 'optionalAccess', _606 => _606.status]) === "done") return s;
18820
+ const existing = _optionalChain([s, 'access', _607 => _607.data, 'access', _608 => _608.executions, 'optionalAccess', _609 => _609[rowRequestId]]);
18821
+ if (_optionalChain([existing, 'optionalAccess', _610 => _610.status]) === "done") return s;
18755
18822
  return withBatchExecution(s, rowRequestId, { status: "done", success: false });
18756
18823
  });
18757
18824
  }
@@ -18787,7 +18854,7 @@ function mergeToolExecutionIfPresent(prev, segment) {
18787
18854
  for (let j = message.segments.length - 1; j >= 0; j--) {
18788
18855
  const seg = message.segments[j];
18789
18856
  if (execId && seg.type === "approval_batch" && seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId)) {
18790
- const prevExec = _optionalChain([seg, 'access', _607 => _607.data, 'access', _608 => _608.executions, 'optionalAccess', _609 => _609[execId]]);
18857
+ const prevExec = _optionalChain([seg, 'access', _611 => _611.data, 'access', _612 => _612.executions, 'optionalAccess', _613 => _613[execId]]);
18791
18858
  const nextExec = nextBatchExecution(prevExec, toolData);
18792
18859
  if (nextExec === null) return prev;
18793
18860
  if (sameExecutionState(prevExec, nextExec)) return prev;
@@ -18960,9 +19027,9 @@ var MessageSegmentAccumulator = class {
18960
19027
  type: "tool_execution",
18961
19028
  data: {
18962
19029
  ...toolData,
18963
- toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _610 => _610.data, 'access', _611 => _611.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _612 => _612.toolTitle]))),
18964
- toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess', _613 => _613.data, 'access', _614 => _614.toolExplanation]))), () => ( _optionalChain([executingTool, 'optionalAccess', _615 => _615.toolExplanation]))),
18965
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _616 => _616.parameters])
19030
+ toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _614 => _614.data, 'access', _615 => _615.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _616 => _616.toolTitle]))),
19031
+ toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess', _617 => _617.data, 'access', _618 => _618.toolExplanation]))), () => ( _optionalChain([executingTool, 'optionalAccess', _619 => _619.toolExplanation]))),
19032
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _620 => _620.parameters])
18966
19033
  }
18967
19034
  };
18968
19035
  if (existingIndex !== -1) {
@@ -18986,7 +19053,7 @@ var MessageSegmentAccumulator = class {
18986
19053
  if (seg.type !== "approval_batch") return seg;
18987
19054
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
18988
19055
  if (!hasCall) return seg;
18989
- const prev = _optionalChain([seg, 'access', _617 => _617.data, 'access', _618 => _618.executions, 'optionalAccess', _619 => _619[execId]]);
19056
+ const prev = _optionalChain([seg, 'access', _621 => _621.data, 'access', _622 => _622.executions, 'optionalAccess', _623 => _623[execId]]);
18990
19057
  const next = nextBatchExecution(prev, toolData);
18991
19058
  matched = true;
18992
19059
  if (next === null) return seg;
@@ -19120,8 +19187,8 @@ var MessageSegmentAccumulator = class {
19120
19187
  requestId,
19121
19188
  {
19122
19189
  ...pendingApproval,
19123
- command: _optionalChain([pendingApproval, 'optionalAccess', _620 => _620.command]) || "",
19124
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _621 => _621.approvalType]) || approvalType
19190
+ command: _optionalChain([pendingApproval, 'optionalAccess', _624 => _624.command]) || "",
19191
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _625 => _625.approvalType]) || approvalType
19125
19192
  },
19126
19193
  status
19127
19194
  );
@@ -19146,9 +19213,9 @@ var MessageSegmentAccumulator = class {
19146
19213
  type: "escalation_offer",
19147
19214
  // The resolved chunk carries no text/origin — a redelivered offer must
19148
19215
  // not blank the card the PENDING chunk already painted.
19149
- data: { offerId, text: text2 || _optionalChain([existing, 'optionalAccess', _622 => _622.data, 'access', _623 => _623.text]) || "", origin: _nullishCoalesce(origin, () => ( _optionalChain([existing, 'optionalAccess', _624 => _624.data, 'access', _625 => _625.origin]))) },
19216
+ data: { offerId, text: text2 || _optionalChain([existing, 'optionalAccess', _626 => _626.data, 'access', _627 => _627.text]) || "", origin: _nullishCoalesce(origin, () => ( _optionalChain([existing, 'optionalAccess', _628 => _628.data, 'access', _629 => _629.origin]))) },
19150
19217
  status,
19151
- resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess', _626 => _626.resolvedByName]))),
19218
+ resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess', _630 => _630.resolvedByName]))),
19152
19219
  onApprove: this.callbacks.onEscalationApprove,
19153
19220
  onReject: this.callbacks.onEscalationReject
19154
19221
  };
@@ -19468,7 +19535,7 @@ function createChatStreamReducer(options = {}) {
19468
19535
  let stateCache = null;
19469
19536
  function invalidate() {
19470
19537
  stateCache = null;
19471
- _optionalChain([onChange, 'optionalCall', _627 => _627()]);
19538
+ _optionalChain([onChange, 'optionalCall', _631 => _631()]);
19472
19539
  }
19473
19540
  function getState() {
19474
19541
  if (!stateCache) {
@@ -19486,7 +19553,7 @@ function createChatStreamReducer(options = {}) {
19486
19553
  return stateCache;
19487
19554
  }
19488
19555
  function emit(name, ...args) {
19489
- _optionalChain([onEffect, 'optionalCall', _628 => _628({ name, args })]);
19556
+ _optionalChain([onEffect, 'optionalCall', _632 => _632({ name, args })]);
19490
19557
  }
19491
19558
  function setMessagesInternal(next) {
19492
19559
  if (next !== messages) {
@@ -19529,12 +19596,12 @@ function createChatStreamReducer(options = {}) {
19529
19596
  return stampTrailingAssistantSourceMetadata(stampTrailingAssistantSeq(next, seq));
19530
19597
  }
19531
19598
  function applySegmentsToState(segments, meta) {
19532
- const seq = _optionalChain([meta, 'optionalAccess', _629 => _629.streamSeq]);
19533
- if (_optionalChain([meta, 'optionalAccess', _630 => _630.append]) && meta.isCompacting) {
19599
+ const seq = _optionalChain([meta, 'optionalAccess', _633 => _633.streamSeq]);
19600
+ if (_optionalChain([meta, 'optionalAccess', _634 => _634.append]) && meta.isCompacting) {
19534
19601
  setMessagesInternal(commitTrailingAssistant(upsertTrailingCompaction(messages, segments), seq));
19535
19602
  return;
19536
19603
  }
19537
- if (_optionalChain([meta, 'optionalAccess', _631 => _631.append])) {
19604
+ if (_optionalChain([meta, 'optionalAccess', _635 => _635.append])) {
19538
19605
  setMessagesInternal(commitTrailingAssistant(appendToTrailingAssistant(messages, segments), seq));
19539
19606
  return;
19540
19607
  }
@@ -19546,7 +19613,7 @@ function createChatStreamReducer(options = {}) {
19546
19613
  adoptTrailingAssistant = false;
19547
19614
  const last = messages[messages.length - 1];
19548
19615
  if (!last || last.role !== "assistant" || adoptTail) return;
19549
- const hasContent = (_nullishCoalesce(_optionalChain([last, 'access', _632 => _632.segments, 'optionalAccess', _633 => _633.length]), () => ( 0))) > 0 || last.content !== "";
19616
+ const hasContent = (_nullishCoalesce(_optionalChain([last, 'access', _636 => _636.segments, 'optionalAccess', _637 => _637.length]), () => ( 0))) > 0 || last.content !== "";
19550
19617
  if (!hasContent) return;
19551
19618
  setMessagesInternal([...messages, { id: nextId("assistant"), role: "assistant", content: "", segments: [] }]);
19552
19619
  }
@@ -19765,13 +19832,13 @@ function createChatStreamReducer(options = {}) {
19765
19832
  const summary = required ? _chunkHP4UUBJCcjs.getCommandText.call(void 0, required) : `Batch of ${toolCalls.length} tool calls`;
19766
19833
  pendingEscalated.set(requestId, {
19767
19834
  command: summary,
19768
- explanation: _optionalChain([required, 'optionalAccess', _634 => _634.toolExplanation]),
19835
+ explanation: _optionalChain([required, 'optionalAccess', _638 => _638.toolExplanation]),
19769
19836
  approvalType,
19770
19837
  toolCalls
19771
19838
  });
19772
19839
  emit("onEscalatedApproval", requestId, {
19773
19840
  command: summary,
19774
- explanation: _optionalChain([required, 'optionalAccess', _635 => _635.toolExplanation]),
19841
+ explanation: _optionalChain([required, 'optionalAccess', _639 => _639.toolExplanation]),
19775
19842
  approvalType
19776
19843
  });
19777
19844
  break;
@@ -20159,7 +20226,7 @@ function createChatStreamReducer(options = {}) {
20159
20226
  const resolveBatch = (status, confirm) => async () => {
20160
20227
  setMessagesInternal(projectBatchStatusToMessages(messages, anchorId, status));
20161
20228
  for (const id of ids) {
20162
- const ok = await _optionalChain([confirm, 'optionalCall', _636 => _636(id)]);
20229
+ const ok = await _optionalChain([confirm, 'optionalCall', _640 => _640(id)]);
20163
20230
  if (ok === false) {
20164
20231
  setMessagesInternal(projectBatchRowFailureToMessages(messages, id));
20165
20232
  }
@@ -20295,8 +20362,8 @@ function createChatStreamReducer(options = {}) {
20295
20362
  }
20296
20363
  }
20297
20364
  }
20298
- hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess', _637 => _637.resumed]), () => ( messages.length > 0)));
20299
- if (_optionalChain([extras, 'optionalAccess', _638 => _638.agentBusy])) agentBusyState();
20365
+ hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess', _641 => _641.resumed]), () => ( messages.length > 0)));
20366
+ if (_optionalChain([extras, 'optionalAccess', _642 => _642.agentBusy])) agentBusyState();
20300
20367
  invalidate();
20301
20368
  }
20302
20369
  return {
@@ -20383,7 +20450,7 @@ function createChatStreamReducer(options = {}) {
20383
20450
  },
20384
20451
  endSseTurn() {
20385
20452
  const last = messages[messages.length - 1];
20386
- if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access', _639 => _639.segments, 'optionalAccess', _640 => _640.length]), () => ( 0))) === 0 && last.content === "") {
20453
+ if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access', _643 => _643.segments, 'optionalAccess', _644 => _644.length]), () => ( 0))) === 0 && last.content === "") {
20387
20454
  messages = messages.slice(0, -1);
20388
20455
  }
20389
20456
  sseCurrentText = "";
@@ -20537,10 +20604,10 @@ function createChatDialogStore(options = {}) {
20537
20604
  if (onEvict) {
20538
20605
  const sep = key.indexOf(KEY_SEP);
20539
20606
  onEvict(key.slice(0, sep), key.slice(sep + 1), {
20540
- messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _641 => _641.state, 'access', _642 => _642.messages]), () => ( EMPTY_STATE.messages)),
20541
- approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _643 => _643.state, 'access', _644 => _644.approvalStatuses]), () => ( EMPTY_STATE.approvalStatuses)),
20542
- lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _645 => _645.getLastAppliedSeq, 'call', _646 => _646()]), () => ( Number.NEGATIVE_INFINITY)),
20543
- pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _647 => _647.getPendingEchoes, 'call', _648 => _648()]), () => ( EMPTY_PENDING_ECHOES))
20607
+ messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _645 => _645.state, 'access', _646 => _646.messages]), () => ( EMPTY_STATE.messages)),
20608
+ approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _647 => _647.state, 'access', _648 => _648.approvalStatuses]), () => ( EMPTY_STATE.approvalStatuses)),
20609
+ lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _649 => _649.getLastAppliedSeq, 'call', _650 => _650()]), () => ( Number.NEGATIVE_INFINITY)),
20610
+ pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _651 => _651.getPendingEchoes, 'call', _652 => _652()]), () => ( EMPTY_PENDING_ECHOES))
20544
20611
  });
20545
20612
  }
20546
20613
  }
@@ -20550,12 +20617,12 @@ function createChatDialogStore(options = {}) {
20550
20617
  const key = keyOf(dialogId, side);
20551
20618
  let reducer = reducers.get(key);
20552
20619
  if (!reducer) {
20553
- const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall', _649 => _649(dialogId, side)]), () => ( {}));
20620
+ const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall', _653 => _653(dialogId, side)]), () => ( {}));
20554
20621
  const userOnChange = base.onChange;
20555
20622
  reducer = createChatStreamReducer({
20556
20623
  ...base,
20557
20624
  onChange: () => {
20558
- _optionalChain([userOnChange, 'optionalCall', _650 => _650()]);
20625
+ _optionalChain([userOnChange, 'optionalCall', _654 => _654()]);
20559
20626
  notify();
20560
20627
  }
20561
20628
  });
@@ -20600,7 +20667,7 @@ function createChatDialogStore(options = {}) {
20600
20667
  };
20601
20668
  }
20602
20669
  function getSnapshot2(dialogId, side = DEFAULT_DIALOG_SIDE) {
20603
- return _nullishCoalesce(_optionalChain([reducers, 'access', _651 => _651.get, 'call', _652 => _652(keyOf(dialogId, side)), 'optionalAccess', _653 => _653.state]), () => ( EMPTY_STATE));
20670
+ return _nullishCoalesce(_optionalChain([reducers, 'access', _655 => _655.get, 'call', _656 => _656(keyOf(dialogId, side)), 'optionalAccess', _657 => _657.state]), () => ( EMPTY_STATE));
20604
20671
  }
20605
20672
  function getServerSnapshot2() {
20606
20673
  return EMPTY_STATE;
@@ -20692,7 +20759,7 @@ function createDeltaBatcher({
20692
20759
  pending = [];
20693
20760
  const key = pendingKey;
20694
20761
  for (const delta of batch) applyOne(delta, key);
20695
- _optionalChain([onFlushed, 'optionalCall', _654 => _654(batch.length)]);
20762
+ _optionalChain([onFlushed, 'optionalCall', _658 => _658(batch.length)]);
20696
20763
  }
20697
20764
  function schedule() {
20698
20765
  if (raf !== null || timer !== null) return;
@@ -20716,7 +20783,7 @@ function createDeltaBatcher({
20716
20783
  }
20717
20784
  if (!isDeltaEvent(event)) return false;
20718
20785
  const tail = pending[pending.length - 1];
20719
- const seqAdvances = _optionalChain([tail, 'optionalAccess', _655 => _655.seq]) == null ? event.seq == null : event.seq != null && event.seq > tail.seq;
20786
+ const seqAdvances = _optionalChain([tail, 'optionalAccess', _659 => _659.seq]) == null ? event.seq == null : event.seq != null && event.seq > tail.seq;
20720
20787
  if (tail && seqAdvances && tail.type === event.type && (tail.type !== "text-delta" || tail.leading === event.leading)) {
20721
20788
  pending[pending.length - 1] = {
20722
20789
  ...tail,
@@ -20747,7 +20814,7 @@ function useChatStreamReducer({
20747
20814
  side = DEFAULT_DIALOG_SIDE,
20748
20815
  createReducerOptions
20749
20816
  }) {
20750
- const reducer = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([createReducerOptions, 'optionalCall', _656 => _656()]), () => ( {})));
20817
+ const reducer = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([createReducerOptions, 'optionalCall', _660 => _660()]), () => ( {})));
20751
20818
  const getSnapshot2 = _react.useCallback.call(void 0, () => store.getSnapshot(dialogId, side), [store, dialogId, side]);
20752
20819
  const getServerSnapshot2 = _react.useCallback.call(void 0, () => store.getServerSnapshot(), [store]);
20753
20820
  const subscribe2 = _react.useCallback.call(void 0, (listener) => store.subscribe(listener), [store]);
@@ -20786,7 +20853,7 @@ var STORAGE_KEY = "conversation";
20786
20853
  var namespaceFor = (source) => {
20787
20854
  const base = `mingo-chat-${source}`;
20788
20855
  const auth = _chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, );
20789
- return _optionalChain([auth, 'optionalAccess', _657 => _657.email]) ? `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}` : base;
20856
+ return _optionalChain([auth, 'optionalAccess', _661 => _661.email]) ? `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}` : base;
20790
20857
  };
20791
20858
  function createChatConversationStorage(source) {
20792
20859
  return _chunkULWVKHSIcjs.createLocalStorageAdapter.call(void 0, {
@@ -20917,7 +20984,7 @@ function useChatHistoryHydration({
20917
20984
  if (cancelled) return;
20918
20985
  if (rows.length === 0) {
20919
20986
  const found = isRecord(body) ? body.found : void 0;
20920
- if (found === false) _optionalChain([onOrphanedConversation, 'optionalCall', _658 => _658(conversationId)]);
20987
+ if (found === false) _optionalChain([onOrphanedConversation, 'optionalCall', _662 => _662(conversationId)]);
20921
20988
  return;
20922
20989
  }
20923
20990
  const hydrated = [];
@@ -21061,7 +21128,7 @@ function useManagedDialogList({
21061
21128
  try {
21062
21129
  await deleteDialogCallback(id);
21063
21130
  removeLocal(id);
21064
- _optionalChain([onDialogRemovedRef, 'access', _659 => _659.current, 'optionalCall', _660 => _660(id, "deleted")]);
21131
+ _optionalChain([onDialogRemovedRef, 'access', _663 => _663.current, 'optionalCall', _664 => _664(id, "deleted")]);
21065
21132
  } catch (err) {
21066
21133
  console.error(`${logTag} deleteDialog failed:`, err);
21067
21134
  throw err;
@@ -21072,7 +21139,7 @@ function useManagedDialogList({
21072
21139
  const renameDialog = _react.useCallback.call(void 0,
21073
21140
  async (id, title) => {
21074
21141
  if (!renameDialogCallback) return;
21075
- const previous = _optionalChain([dialogsRef, 'access', _661 => _661.current, 'access', _662 => _662.find, 'call', _663 => _663((d) => d.id === id), 'optionalAccess', _664 => _664.title]);
21142
+ const previous = _optionalChain([dialogsRef, 'access', _665 => _665.current, 'access', _666 => _666.find, 'call', _667 => _667((d) => d.id === id), 'optionalAccess', _668 => _668.title]);
21076
21143
  setDialogs((prev) => prev.map((d) => d.id === id ? { ...d, title } : d));
21077
21144
  try {
21078
21145
  await renameDialogCallback(id, title);
@@ -21091,7 +21158,7 @@ function useManagedDialogList({
21091
21158
  try {
21092
21159
  await archiveDialogCallback(id);
21093
21160
  removeLocal(id);
21094
- _optionalChain([onDialogRemovedRef, 'access', _665 => _665.current, 'optionalCall', _666 => _666(id, "archived")]);
21161
+ _optionalChain([onDialogRemovedRef, 'access', _669 => _669.current, 'optionalCall', _670 => _670(id, "archived")]);
21095
21162
  } catch (err) {
21096
21163
  console.error(`${logTag} archiveDialog failed:`, err);
21097
21164
  throw err;
@@ -21183,7 +21250,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21183
21250
  const { active = true } = runtimeOptions;
21184
21251
  const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
21185
21252
  const source = runtime.source || DEFAULT_CHAT_SOURCE;
21186
- const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _667 => _667.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
21253
+ const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _671 => _671.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
21187
21254
  const sendMessageRef = _react.useRef.call(void 0,
21188
21255
  () => Promise.resolve(true)
21189
21256
  );
@@ -21219,7 +21286,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21219
21286
  if (!restoredConversationRef.current) {
21220
21287
  restoredConversationRef.current = true;
21221
21288
  pruneStaleChatConversationStorage(source);
21222
- conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access', _668 => _668.load, 'call', _669 => _669(), 'optionalAccess', _670 => _670.conversationId]), () => ( null));
21289
+ conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access', _672 => _672.load, 'call', _673 => _673(), 'optionalAccess', _674 => _674.conversationId]), () => ( null));
21223
21290
  }
21224
21291
  const [conversationId, setConversationId] = _react.useState.call(void 0, () => conversationIdRef.current);
21225
21292
  const commitConversationId = _react.useCallback.call(void 0,
@@ -21310,7 +21377,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21310
21377
  const abortControllerRef = _react.useRef.call(void 0, null);
21311
21378
  const switchConversation = _react.useCallback.call(void 0,
21312
21379
  (id) => {
21313
- _optionalChain([abortControllerRef, 'access', _671 => _671.current, 'optionalAccess', _672 => _672.abort, 'call', _673 => _673()]);
21380
+ _optionalChain([abortControllerRef, 'access', _675 => _675.current, 'optionalAccess', _676 => _676.abort, 'call', _677 => _677()]);
21314
21381
  flushDeltas();
21315
21382
  mutate((r) => r.reset());
21316
21383
  hydrationSendCountRef.current = 0;
@@ -21347,8 +21414,8 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21347
21414
  } = useManagedDialogList({
21348
21415
  autoLoad: active,
21349
21416
  fetchDialogs: fetchActiveDialogs,
21350
- renameDialog: _optionalChain([conversationsApi, 'optionalAccess', _674 => _674.renameDialog]),
21351
- archiveDialog: _optionalChain([conversationsApi, 'optionalAccess', _675 => _675.archiveDialog]),
21417
+ renameDialog: _optionalChain([conversationsApi, 'optionalAccess', _678 => _678.renameDialog]),
21418
+ archiveDialog: _optionalChain([conversationsApi, 'optionalAccess', _679 => _679.archiveDialog]),
21352
21419
  pageSize: 20,
21353
21420
  search: conversationsApi ? dialogSearch : void 0,
21354
21421
  logTag: "[useSseChatAdapter]",
@@ -21412,7 +21479,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21412
21479
  const serverMessage = await readServerErrorMessage(response);
21413
21480
  throw new Error(_nullishCoalesce(serverMessage, () => ( `Chat request failed: ${response.status}`)));
21414
21481
  }
21415
- const reader = _optionalChain([response, 'access', _676 => _676.body, 'optionalAccess', _677 => _677.getReader, 'call', _678 => _678()]);
21482
+ const reader = _optionalChain([response, 'access', _680 => _680.body, 'optionalAccess', _681 => _681.getReader, 'call', _682 => _682()]);
21416
21483
  if (!reader) throw new Error("No response body");
21417
21484
  const frameDecoder = createSseFrameDecoder();
21418
21485
  let finished = false;
@@ -21441,7 +21508,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21441
21508
  }
21442
21509
  return true;
21443
21510
  } catch (err) {
21444
- if (_optionalChain([err, 'optionalAccess', _679 => _679.name]) === "AbortError" || ctrl.signal.aborted) {
21511
+ if (_optionalChain([err, 'optionalAccess', _683 => _683.name]) === "AbortError" || ctrl.signal.aborted) {
21445
21512
  return true;
21446
21513
  }
21447
21514
  flushDeltas();
@@ -21477,7 +21544,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21477
21544
  );
21478
21545
  sendMessageRef.current = sendMessage;
21479
21546
  const stopMessage = _react.useCallback.call(void 0, () => {
21480
- _optionalChain([abortControllerRef, 'access', _680 => _680.current, 'optionalAccess', _681 => _681.abort, 'call', _682 => _682()]);
21547
+ _optionalChain([abortControllerRef, 'access', _684 => _684.current, 'optionalAccess', _685 => _685.abort, 'call', _686 => _686()]);
21481
21548
  flushDeltas();
21482
21549
  mutate((r) => r.setPhase("idle"));
21483
21550
  }, [mutate, flushDeltas]);
@@ -21513,7 +21580,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21513
21580
  let sendIdx = -1;
21514
21581
  return state.messages.map((m) => {
21515
21582
  const segments = m.segments;
21516
- const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess', _683 => _683.filter, 'call', _684 => _684((s) => s.type === "text"), 'access', _685 => _685.map, 'call', _686 => _686((s) => s.text), 'access', _687 => _687.join, 'call', _688 => _688("")]), () => ( ""));
21583
+ const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess', _687 => _687.filter, 'call', _688 => _688((s) => s.type === "text"), 'access', _689 => _689.map, 'call', _690 => _690((s) => s.text), 'access', _691 => _691.join, 'call', _692 => _692("")]), () => ( ""));
21517
21584
  let sources2;
21518
21585
  let scrollAnchor;
21519
21586
  if (m.role === "user" && !m.hidden) {
@@ -21522,7 +21589,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21522
21589
  if (m.role === "assistant") {
21523
21590
  const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
21524
21591
  sources2 = sourcesMap.get(lookupIdx);
21525
- scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access', _689 => _689.get, 'call', _690 => _690(lookupIdx), 'optionalAccess', _691 => _691.scrollAnchor]), () => ( void 0));
21592
+ scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access', _693 => _693.get, 'call', _694 => _694(lookupIdx), 'optionalAccess', _695 => _695.scrollAnchor]), () => ( void 0));
21526
21593
  }
21527
21594
  return {
21528
21595
  id: m.id,
@@ -21549,7 +21616,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21549
21616
  );
21550
21617
  return;
21551
21618
  }
21552
- const refSlug = typeof _optionalChain([reference, 'access', _692 => _692.metadata, 'optionalAccess', _693 => _693.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
21619
+ const refSlug = typeof _optionalChain([reference, 'access', _696 => _696.metadata, 'optionalAccess', _697 => _697.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
21553
21620
  const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
21554
21621
  const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
21555
21622
  const text2 = `/${cmdId} display "${escaped}"`;
@@ -21597,18 +21664,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21597
21664
  /** True while the mount-time rebuild from the server transcript runs. */
21598
21665
  isHydratingHistory,
21599
21666
  /** Provider key for the lib's `<ModelDisplay>` icon. */
21600
- currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _694 => _694.provider]), () => ( null)),
21601
- currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _695 => _695.modelLabel]), () => ( null)),
21602
- currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _696 => _696.contextWindowMaxTokens]), () => ( null)),
21667
+ currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _698 => _698.provider]), () => ( null)),
21668
+ currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _699 => _699.modelLabel]), () => ( null)),
21669
+ currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _700 => _700.contextWindowMaxTokens]), () => ( null)),
21603
21670
  /** Input tokens (known after server's message_start frame; null until). */
21604
- currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _697 => _697.inputTokens]), () => ( null)),
21671
+ currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _701 => _701.inputTokens]), () => ( null)),
21605
21672
  /** Output tokens (known only after server's trailing usage frame). */
21606
- currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _698 => _698.outputTokens]), () => ( null)),
21673
+ currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _702 => _702.outputTokens]), () => ( null)),
21607
21674
  /** Cache hit % (read / total-input × 100). null during streaming. */
21608
- currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _699 => _699.cacheHitRatePct]), () => ( null)),
21675
+ currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _703 => _703.cacheHitRatePct]), () => ( null)),
21609
21676
  /** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
21610
21677
  * token counts). null until the trailing usage frame lands. */
21611
- currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _700 => _700.breakdown]), () => ( null)),
21678
+ currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _704 => _704.breakdown]), () => ( null)),
21612
21679
  // ─── Dialog management ───────────────────────────────────────────────
21613
21680
  // With `chatConversationsUrl` the server transcript store IS the dialog
21614
21681
  // list (shared `useManagedDialogList`); selecting a row re-hydrates through
@@ -21864,7 +21931,7 @@ function decodeNatsChunk(chunk) {
21864
21931
  userId: typeof data.userId === "string" ? data.userId : void 0,
21865
21932
  // Wire shape carries no label; fall back to the id (parity with
21866
21933
  // the history path in `process-historical-messages.ts`).
21867
- contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _701 => _701.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _702 => _702.id]) === "string").map((it) => ({
21934
+ contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _705 => _705.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _706 => _706.id]) === "string").map((it) => ({
21868
21935
  type: it.type,
21869
21936
  id: it.id,
21870
21937
  label: it.id
@@ -21955,7 +22022,7 @@ function extractIncompleteMessageState(lastMessage) {
21955
22022
  }
21956
22023
  break;
21957
22024
  case "approval_batch": {
21958
- const allDone = !!segment.data.executions && segment.data.toolCalls.every((c) => _optionalChain([segment, 'access', _703 => _703.data, 'access', _704 => _704.executions, 'optionalAccess', _705 => _705[c.toolExecutionRequestId], 'optionalAccess', _706 => _706.status]) === "done");
22025
+ const allDone = !!segment.data.executions && segment.data.toolCalls.every((c) => _optionalChain([segment, 'access', _707 => _707.data, 'access', _708 => _708.executions, 'optionalAccess', _709 => _709[c.toolExecutionRequestId], 'optionalAccess', _710 => _710.status]) === "done");
21959
22026
  if (segment.status !== "rejected" && !allDone) {
21960
22027
  hasIncompleteState = true;
21961
22028
  }
@@ -22017,11 +22084,11 @@ function extractIncompleteMessageState(lastMessage) {
22017
22084
  function extractIncompleteTailState(messages) {
22018
22085
  if (!messages || messages.length === 0) return void 0;
22019
22086
  let start = messages.length;
22020
- while (start > 0 && _optionalChain([messages, 'access', _707 => _707[start - 1], 'optionalAccess', _708 => _708.role]) === "assistant") start -= 1;
22087
+ while (start > 0 && _optionalChain([messages, 'access', _711 => _711[start - 1], 'optionalAccess', _712 => _712.role]) === "assistant") start -= 1;
22021
22088
  if (start === messages.length) return void 0;
22022
22089
  const segments = [];
22023
22090
  for (let i = start; i < messages.length; i += 1) {
22024
- const content = _optionalChain([messages, 'access', _709 => _709[i], 'optionalAccess', _710 => _710.content]);
22091
+ const content = _optionalChain([messages, 'access', _713 => _713[i], 'optionalAccess', _714 => _714.content]);
22025
22092
  if (Array.isArray(content)) segments.push(...content);
22026
22093
  }
22027
22094
  if (segments.length === 0) return void 0;
@@ -22034,15 +22101,15 @@ function extractIncompleteTailState(messages) {
22034
22101
 
22035
22102
  // src/components/chat/utils/process-historical-messages.ts
22036
22103
  function getOwnerDisplayName(owner) {
22037
- if (_optionalChain([owner, 'optionalAccess', _711 => _711.type]) === _chunkFDWYBJYDcjs.OWNER_TYPE.ADMIN && owner.user) {
22104
+ if (_optionalChain([owner, 'optionalAccess', _715 => _715.type]) === _chunk7AXOAA5Tcjs.OWNER_TYPE.ADMIN && owner.user) {
22038
22105
  const { firstName, lastName } = owner.user;
22039
22106
  const name = [firstName, lastName].filter(Boolean).join(" ");
22040
22107
  if (name) return name;
22041
22108
  }
22042
- return _optionalChain([owner, 'optionalAccess', _712 => _712.type]) === _chunkFDWYBJYDcjs.OWNER_TYPE.ADMIN ? "Admin" : "You";
22109
+ return _optionalChain([owner, 'optionalAccess', _716 => _716.type]) === _chunk7AXOAA5Tcjs.OWNER_TYPE.ADMIN ? "Admin" : "You";
22043
22110
  }
22044
22111
  function getOwnerAvatar(owner) {
22045
- return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _713 => _713.user, 'optionalAccess', _714 => _714.image, 'optionalAccess', _715 => _715.imageUrl]), () => ( void 0));
22112
+ return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _717 => _717.user, 'optionalAccess', _718 => _718.image, 'optionalAccess', _719 => _719.imageUrl]), () => ( void 0));
22046
22113
  }
22047
22114
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
22048
22115
  messageDataArray.forEach((data) => {
@@ -22234,7 +22301,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22234
22301
  event.offerId,
22235
22302
  event.text,
22236
22303
  event.origin,
22237
- _nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess', _716 => _716[event.offerId]]), () => ( "pending"))
22304
+ _nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess', _720 => _720[event.offerId]]), () => ( "pending"))
22238
22305
  );
22239
22306
  break;
22240
22307
  case "ticket-escalated":
@@ -22268,7 +22335,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22268
22335
  );
22269
22336
  break;
22270
22337
  case "escalation-offer-resolved":
22271
- _optionalChain([offerResolutions, 'optionalAccess', _717 => _717.set, 'call', _718 => _718(event.offerId, {
22338
+ _optionalChain([offerResolutions, 'optionalAccess', _721 => _721.set, 'call', _722 => _722(event.offerId, {
22272
22339
  status: event.status,
22273
22340
  resolvedByName: event.resolvedByName
22274
22341
  })]);
@@ -22332,7 +22399,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22332
22399
  }
22333
22400
  }
22334
22401
  } else {
22335
- _optionalChain([escalatedApprovals, 'optionalAccess', _719 => _719.set, 'call', _720 => _720(event.requestId, {
22402
+ _optionalChain([escalatedApprovals, 'optionalAccess', _723 => _723.set, 'call', _724 => _724(event.requestId, {
22336
22403
  command: event.command || "",
22337
22404
  explanation: event.explanation,
22338
22405
  approvalType,
@@ -22347,8 +22414,8 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22347
22414
  const existingStatus = approvalStatuses[requestId];
22348
22415
  const status = existingStatus || event.status;
22349
22416
  const resolvedByName = event.resolvedByName;
22350
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _721 => _721.get, 'call', _722 => _722(requestId)]);
22351
- if (_optionalChain([escalatedData, 'optionalAccess', _723 => _723.toolCalls]) && escalatedData.toolCalls.length > 0) {
22417
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _725 => _725.get, 'call', _726 => _726(requestId)]);
22418
+ if (_optionalChain([escalatedData, 'optionalAccess', _727 => _727.toolCalls]) && escalatedData.toolCalls.length > 0) {
22352
22419
  if (batchApprovalsEnabled) {
22353
22420
  accumulator.addApprovalBatch(
22354
22421
  requestId,
@@ -22370,7 +22437,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22370
22437
  );
22371
22438
  }
22372
22439
  }
22373
- _optionalChain([escalatedApprovals, 'optionalAccess', _724 => _724.delete, 'call', _725 => _725(requestId)]);
22440
+ _optionalChain([escalatedApprovals, 'optionalAccess', _728 => _728.delete, 'call', _729 => _729(requestId)]);
22374
22441
  break;
22375
22442
  }
22376
22443
  if (escalatedData) {
@@ -22379,7 +22446,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22379
22446
  explanation: escalatedData.explanation,
22380
22447
  approvalType: escalatedData.approvalType
22381
22448
  });
22382
- _optionalChain([escalatedApprovals, 'optionalAccess', _726 => _726.delete, 'call', _727 => _727(requestId)]);
22449
+ _optionalChain([escalatedApprovals, 'optionalAccess', _730 => _730.delete, 'call', _731 => _731(requestId)]);
22383
22450
  }
22384
22451
  const before = accumulator.getSegments();
22385
22452
  const after = accumulator.updateApprovalStatus(requestId, status, resolvedByName);
@@ -22471,14 +22538,14 @@ function processHistoricalMessages(messages, options = {}) {
22471
22538
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
22472
22539
  return;
22473
22540
  }
22474
- const isUserMessage = _optionalChain([msg, 'access', _728 => _728.owner, 'optionalAccess', _729 => _729.type]) === _chunkFDWYBJYDcjs.OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _730 => _730.owner, 'optionalAccess', _731 => _731.type]) === _chunkFDWYBJYDcjs.OWNER_TYPE.ADMIN;
22541
+ const isUserMessage = _optionalChain([msg, 'access', _732 => _732.owner, 'optionalAccess', _733 => _733.type]) === _chunk7AXOAA5Tcjs.OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _734 => _734.owner, 'optionalAccess', _735 => _735.type]) === _chunk7AXOAA5Tcjs.OWNER_TYPE.ADMIN;
22475
22542
  if (isUserMessage) {
22476
22543
  flushAssistantMessage();
22477
- const userAuthorType = _optionalChain([msg, 'access', _732 => _732.owner, 'optionalAccess', _733 => _733.type]) === _chunkFDWYBJYDcjs.OWNER_TYPE.ADMIN ? "admin" : "user";
22544
+ const userAuthorType = _optionalChain([msg, 'access', _736 => _736.owner, 'optionalAccess', _737 => _737.type]) === _chunk7AXOAA5Tcjs.OWNER_TYPE.ADMIN ? "admin" : "user";
22478
22545
  messageDataArray.forEach((data) => {
22479
22546
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
22480
22547
  const rawContext = data.contextItems;
22481
- const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _734 => _734.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _735 => _735.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
22548
+ const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _738 => _738.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _739 => _739.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
22482
22549
  processedMessages.push({
22483
22550
  id: msg.id,
22484
22551
  role: "user",
@@ -22525,7 +22592,7 @@ function processHistoricalMessages(messages, options = {}) {
22525
22592
  });
22526
22593
  const nextMsg = messages[index + 1];
22527
22594
  const isLastMessage = index === messages.length - 1;
22528
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _736 => _736.owner, 'optionalAccess', _737 => _737.type]) === _chunkFDWYBJYDcjs.OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _738 => _738.owner, 'optionalAccess', _739 => _739.type]) === _chunkFDWYBJYDcjs.OWNER_TYPE.ADMIN);
22595
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _740 => _740.owner, 'optionalAccess', _741 => _741.type]) === _chunk7AXOAA5Tcjs.OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _742 => _742.owner, 'optionalAccess', _743 => _743.type]) === _chunk7AXOAA5Tcjs.OWNER_TYPE.ADMIN);
22529
22596
  if (isLastMessage || nextIsFromUser) {
22530
22597
  flushAssistantMessage();
22531
22598
  }
@@ -22908,7 +22975,7 @@ function useNatsChatAdapter(config, options = {}) {
22908
22975
  const connectionState = !active || !dialogId ? "connected" : connectedForDialog === dialogId ? "connected" : "connecting";
22909
22976
  const sendMessage = _react.useCallback.call(void 0,
22910
22977
  async (text2, sendOptions) => {
22911
- const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _740 => _740.hidden]), () => ( false));
22978
+ const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _744 => _744.hidden]), () => ( false));
22912
22979
  mutate((r) => r.pushOptimisticSend(text2, hidden));
22913
22980
  await publishUserMessage(text2, { hidden, dialogId });
22914
22981
  },
@@ -23001,11 +23068,11 @@ function useNatsChatAdapter(config, options = {}) {
23001
23068
  // Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
23002
23069
  // contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
23003
23070
  // matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
23004
- currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _741 => _741.provider]), () => ( modelProvider)), () => ( null)),
23005
- currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _742 => _742.modelLabel]), () => ( modelLabel)), () => ( null)),
23006
- currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _743 => _743.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _744 => _744.contextWindowMaxTokens]))), () => ( null)),
23007
- currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _745 => _745.inputTokensSize]), () => ( null)),
23008
- currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _746 => _746.outputTokensSize]), () => ( null)),
23071
+ currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _745 => _745.provider]), () => ( modelProvider)), () => ( null)),
23072
+ currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _746 => _746.modelLabel]), () => ( modelLabel)), () => ( null)),
23073
+ currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _747 => _747.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _748 => _748.contextWindowMaxTokens]))), () => ( null)),
23074
+ currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _749 => _749.inputTokensSize]), () => ( null)),
23075
+ currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _750 => _750.outputTokensSize]), () => ( null)),
23009
23076
  currentCacheHitRatePct: null,
23010
23077
  currentUsageBreakdown: null,
23011
23078
  // Dialog management
@@ -23127,7 +23194,7 @@ function useUnifiedChat(options) {
23127
23194
  []
23128
23195
  );
23129
23196
  const displayRefForward = _react.useCallback.call(void 0,
23130
- (ref) => _optionalChain([activeStateRef, 'access', _747 => _747.current, 'access', _748 => _748.displayRef, 'optionalCall', _749 => _749(ref)]),
23197
+ (ref) => _optionalChain([activeStateRef, 'access', _751 => _751.current, 'access', _752 => _752.displayRef, 'optionalCall', _753 => _753(ref)]),
23131
23198
  []
23132
23199
  );
23133
23200
  const displayRef = activeState.displayRef ? displayRefForward : void 0;
@@ -23137,7 +23204,7 @@ function useUnifiedChat(options) {
23137
23204
  const renameDialog = _react.useCallback.call(void 0, (id, title) => activeStateRef.current.renameDialog(id, title), []);
23138
23205
  const archiveDialog = _react.useCallback.call(void 0, (id) => activeStateRef.current.archiveDialog(id), []);
23139
23206
  const loadMoreDialogs = _react.useCallback.call(void 0, () => activeStateRef.current.loadMoreDialogs(), []);
23140
- const setDialogScope = _react.useCallback.call(void 0, (scope) => _optionalChain([activeStateRef, 'access', _750 => _750.current, 'access', _751 => _751.setDialogScope, 'optionalCall', _752 => _752(scope)]), []);
23207
+ const setDialogScope = _react.useCallback.call(void 0, (scope) => _optionalChain([activeStateRef, 'access', _754 => _754.current, 'access', _755 => _755.setDialogScope, 'optionalCall', _756 => _756(scope)]), []);
23141
23208
  const reloadDialogs = _react.useCallback.call(void 0, () => activeStateRef.current.reloadDialogs(), []);
23142
23209
  const loadMoreMessages = _react.useCallback.call(void 0, () => activeStateRef.current.loadMoreMessages(), []);
23143
23210
  const approveRequest = _react.useCallback.call(void 0, (requestId) => activeStateRef.current.approveRequest(requestId), []);
@@ -23247,19 +23314,19 @@ function turnRequestKeys(content) {
23247
23314
  if (!Array.isArray(content)) return keys;
23248
23315
  for (const seg of content) {
23249
23316
  if (seg.type === "tool_execution") {
23250
- const id = _optionalChain([seg, 'access', _753 => _753.data, 'optionalAccess', _754 => _754.toolExecutionRequestId]);
23317
+ const id = _optionalChain([seg, 'access', _757 => _757.data, 'optionalAccess', _758 => _758.toolExecutionRequestId]);
23251
23318
  if (id) keys.add(id);
23252
23319
  } else if (seg.type === "approval_request") {
23253
- const id = _optionalChain([seg, 'access', _755 => _755.data, 'optionalAccess', _756 => _756.requestId]);
23320
+ const id = _optionalChain([seg, 'access', _759 => _759.data, 'optionalAccess', _760 => _760.requestId]);
23254
23321
  if (id) keys.add(id);
23255
23322
  } else if (seg.type === "escalation_offer") {
23256
- const id = _optionalChain([seg, 'access', _757 => _757.data, 'optionalAccess', _758 => _758.offerId]);
23323
+ const id = _optionalChain([seg, 'access', _761 => _761.data, 'optionalAccess', _762 => _762.offerId]);
23257
23324
  if (id) keys.add(id);
23258
23325
  } else if (seg.type === "approval_batch") {
23259
23326
  const data = seg.data;
23260
- if (_optionalChain([data, 'optionalAccess', _759 => _759.approvalRequestId])) keys.add(data.approvalRequestId);
23261
- for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess', _760 => _760.toolCalls]), () => ( []))) {
23262
- if (_optionalChain([call, 'optionalAccess', _761 => _761.toolExecutionRequestId])) keys.add(call.toolExecutionRequestId);
23327
+ if (_optionalChain([data, 'optionalAccess', _763 => _763.approvalRequestId])) keys.add(data.approvalRequestId);
23328
+ for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess', _764 => _764.toolCalls]), () => ( []))) {
23329
+ if (_optionalChain([call, 'optionalAccess', _765 => _765.toolExecutionRequestId])) keys.add(call.toolExecutionRequestId);
23263
23330
  }
23264
23331
  }
23265
23332
  }
@@ -23344,18 +23411,18 @@ function mergeHistoryWithRealtime(input) {
23344
23411
  }
23345
23412
  }
23346
23413
  const trailing = processedHistory[processedHistory.length - 1];
23347
- const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _762 => _762.role]) === "assistant" ? trailing : null;
23348
- const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _763 => _763.content, 'access', _764 => _764.find, 'call', _765 => _765((s) => s.type === "approval_batch"), 'optionalAccess', _766 => _766.data, 'optionalAccess', _767 => _767.approvalRequestId]), () => ( null)) : null;
23414
+ const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _766 => _766.role]) === "assistant" ? trailing : null;
23415
+ const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _767 => _767.content, 'access', _768 => _768.find, 'call', _769 => _769((s) => s.type === "approval_batch"), 'optionalAccess', _770 => _770.data, 'optionalAccess', _771 => _771.approvalRequestId]), () => ( null)) : null;
23349
23416
  let processedToUse = processedHistory;
23350
23417
  const pinnedSyntheticIds = /* @__PURE__ */ new Set();
23351
23418
  const droppedSyntheticIds = /* @__PURE__ */ new Set();
23352
23419
  if (historyBatchId) {
23353
23420
  const batchTwins = existingMessages.filter(
23354
- (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some((s) => s.type === "approval_batch" && _optionalChain([s, 'access', _768 => _768.data, 'optionalAccess', _769 => _769.approvalRequestId]) === historyBatchId)
23421
+ (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some((s) => s.type === "approval_batch" && _optionalChain([s, 'access', _772 => _772.data, 'optionalAccess', _773 => _773.approvalRequestId]) === historyBatchId)
23355
23422
  );
23356
23423
  const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
23357
23424
  if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
23358
- const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _770 => _770.content])) ? historyTrailingAssistant.content.length : 0;
23425
+ const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _774 => _774.content])) ? historyTrailingAssistant.content.length : 0;
23359
23426
  const realtimeSize = existingWithSameBatch.content.length;
23360
23427
  if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
23361
23428
  processedToUse = processedHistory.slice(0, -1);
@@ -23388,9 +23455,9 @@ function mergeHistoryWithRealtime(input) {
23388
23455
  const trailingAssistantText = lastProcessed && lastProcessed.role === "assistant" ? assistantAnswerText(lastProcessed.content) : "";
23389
23456
  const windowSignals = collectTwinSignals(processedToUse);
23390
23457
  const seenUserSyntheticByContent = /* @__PURE__ */ new Map();
23391
- const isInWindow = (m) => processedIds.has(m.id) || (_nullishCoalesce(_optionalChain([rawHistoryIds, 'optionalAccess', _771 => _771.has, 'call', _772 => _772(m.id)]), () => ( false)));
23458
+ const isInWindow = (m) => processedIds.has(m.id) || (_nullishCoalesce(_optionalChain([rawHistoryIds, 'optionalAccess', _775 => _775.has, 'call', _776 => _776(m.id)]), () => ( false)));
23392
23459
  const firstWindowIndex = existingMessages.findIndex(isInWindow);
23393
- const isPersistedOlder = (m) => !isClientMintedId(m.id) && (_nullishCoalesce(_optionalChain([m, 'access', _773 => _773.timestamp, 'optionalAccess', _774 => _774.getTime, 'call', _775 => _775()]), () => ( 0))) <= historyFetchedAt;
23460
+ const isPersistedOlder = (m) => !isClientMintedId(m.id) && (_nullishCoalesce(_optionalChain([m, 'access', _777 => _777.timestamp, 'optionalAccess', _778 => _778.getTime, 'call', _779 => _779()]), () => ( 0))) <= historyFetchedAt;
23394
23461
  let lastOlderPersistedIndex = -1;
23395
23462
  if (firstWindowIndex < 0) {
23396
23463
  for (const [index, m] of existingMessages.entries()) {
@@ -23408,7 +23475,7 @@ function mergeHistoryWithRealtime(input) {
23408
23475
  } else if (pm.role === "assistant") {
23409
23476
  windowHasUnstampedAssistant = true;
23410
23477
  }
23411
- const time = _optionalChain([pm, 'access', _776 => _776.timestamp, 'optionalAccess', _777 => _777.getTime, 'call', _778 => _778()]);
23478
+ const time = _optionalChain([pm, 'access', _780 => _780.timestamp, 'optionalAccess', _781 => _781.getTime, 'call', _782 => _782()]);
23412
23479
  if (typeof time === "number" && time < windowMinTime) windowMinTime = time;
23413
23480
  }
23414
23481
  const threadHasClientMintedRow = existingMessages.some((m) => isClientMintedId(m.id));
@@ -23426,14 +23493,14 @@ function mergeHistoryWithRealtime(input) {
23426
23493
  const verdict = twinVerdict(windowSignals, m);
23427
23494
  return verdict === "unknown" ? !seqCanMislead(m) : verdict === "distinct";
23428
23495
  }
23429
- const time = _optionalChain([m, 'access', _779 => _779.timestamp, 'optionalAccess', _780 => _780.getTime, 'call', _781 => _781()]);
23496
+ const time = _optionalChain([m, 'access', _783 => _783.timestamp, 'optionalAccess', _784 => _784.getTime, 'call', _785 => _785()]);
23430
23497
  if (typeof time !== "number" || time > historyFetchedAt) return false;
23431
23498
  if (!Number.isFinite(windowMinTime) || time >= windowMinTime) return false;
23432
23499
  return twinVerdict(windowSignals, m) === "distinct";
23433
23500
  };
23434
23501
  const keepRealtime = (m) => {
23435
23502
  if (m.role === "user" && isOptimisticId(m.id) && typeof m.content === "string") {
23436
- const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _782 => _782.timestamp, 'optionalAccess', _783 => _783.getTime, 'call', _784 => _784()]), () => ( 0))) <= historyFetchedAt;
23503
+ const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _786 => _786.timestamp, 'optionalAccess', _787 => _787.getTime, 'call', _788 => _788()]), () => ( 0))) <= historyFetchedAt;
23437
23504
  return !(canBeInSnapshot && windowSignals.userContents.has(userTwinKey(m)));
23438
23505
  }
23439
23506
  if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
@@ -23458,7 +23525,7 @@ function mergeHistoryWithRealtime(input) {
23458
23525
  } else if (typeof m.streamSeq === "number") {
23459
23526
  covered = historyMaxStreamSeq > 0 && historyMaxStreamSeq >= m.streamSeq;
23460
23527
  } else {
23461
- covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _785 => _785.timestamp, 'optionalAccess', _786 => _786.getTime, 'call', _787 => _787()]), () => ( 0))) <= historyFetchedAt;
23528
+ covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _789 => _789.timestamp, 'optionalAccess', _790 => _790.getTime, 'call', _791 => _791()]), () => ( 0))) <= historyFetchedAt;
23462
23529
  }
23463
23530
  if (covered) return false;
23464
23531
  }
@@ -23553,7 +23620,7 @@ function normalizeHistoricalMessageData(md) {
23553
23620
  function isHistoricalUserTurn(m) {
23554
23621
  return !!m.owner;
23555
23622
  }
23556
- var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _788 => _788.type]) === "TEXT" && typeof d.text === "string";
23623
+ var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _792 => _792.type]) === "TEXT" && typeof d.text === "string";
23557
23624
  var THINK_MS = 550;
23558
23625
  var TOKEN_MS = 55;
23559
23626
  var USER_MS = 480;
@@ -23650,8 +23717,8 @@ function useResizablePanelSize({
23650
23717
  }) : null,
23651
23718
  [enabled, storageKey]
23652
23719
  );
23653
- const [held, setChosen] = _react.useState.call(void 0, () => ({ storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _789 => _789.load, 'call', _790 => _790(), 'optionalAccess', _791 => _791.size]), () => ( null)) }));
23654
- const chosen = held.storage === storage ? held : { storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _792 => _792.load, 'call', _793 => _793(), 'optionalAccess', _794 => _794.size]), () => ( null)) };
23720
+ const [held, setChosen] = _react.useState.call(void 0, () => ({ storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _793 => _793.load, 'call', _794 => _794(), 'optionalAccess', _795 => _795.size]), () => ( null)) }));
23721
+ const chosen = held.storage === storage ? held : { storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _796 => _796.load, 'call', _797 => _797(), 'optionalAccess', _798 => _798.size]), () => ( null)) };
23655
23722
  if (chosen !== held) setChosen(chosen);
23656
23723
  const chosenSize = chosen.size;
23657
23724
  const clampSize = _react.useCallback.call(void 0,
@@ -23667,7 +23734,7 @@ function useResizablePanelSize({
23667
23734
  (next) => {
23668
23735
  const nextSize = Math.round(clampSize(next));
23669
23736
  setChosen({ storage, size: nextSize });
23670
- _optionalChain([storage, 'optionalAccess', _795 => _795.save, 'call', _796 => _796({ size: nextSize })]);
23737
+ _optionalChain([storage, 'optionalAccess', _799 => _799.save, 'call', _800 => _800({ size: nextSize })]);
23671
23738
  },
23672
23739
  [clampSize, storage]
23673
23740
  );
@@ -24257,7 +24324,7 @@ function useChatDialogManager({
24257
24324
  const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
24258
24325
  if (restoreTarget) {
24259
24326
  try {
24260
- await _optionalChain([unarchiveDialog, 'optionalCall', _797 => _797(restoreTarget.id)]);
24327
+ await _optionalChain([unarchiveDialog, 'optionalCall', _801 => _801(restoreTarget.id)]);
24261
24328
  } catch (err) {
24262
24329
  console.error("[useChatDialogManager] unarchive failed:", err);
24263
24330
  return;
@@ -24268,7 +24335,7 @@ function useChatDialogManager({
24268
24335
  setRestoreTarget(null);
24269
24336
  }, [restoreTarget, unarchiveDialog]);
24270
24337
  const hostDialog = hostActiveDialog != null && hostActiveDialog.id === activeDialogId ? hostActiveDialog : void 0;
24271
- const isViewingArchived = viewingArchivedId != null && viewingArchivedId === activeDialogId || _optionalChain([hostDialog, 'optionalAccess', _798 => _798.archived]) === true;
24338
+ const isViewingArchived = viewingArchivedId != null && viewingArchivedId === activeDialogId || _optionalChain([hostDialog, 'optionalAccess', _802 => _802.archived]) === true;
24272
24339
  const handleBack = _react.useCallback.call(void 0, () => {
24273
24340
  const wasArchived = isViewingArchived;
24274
24341
  setViewingArchivedId(null);
@@ -24515,7 +24582,7 @@ function SourceChip({
24515
24582
  const Icon = cta.icon;
24516
24583
  const icon = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { className: "h-3.5 w-3.5" });
24517
24584
  const chipClass = chatChipClass({ tone: "secondary" });
24518
- const decideTab = (href, targetPlatform) => _chunkJENNI7XUcjs.computeIsNewTab.call(void 0, runtime, href, targetPlatform);
24585
+ const decideTab = (href, targetPlatform) => _chunkDGNGABNGcjs.computeIsNewTab.call(void 0, runtime, href, targetPlatform);
24519
24586
  if (src.items && src.items.length > 0) {
24520
24587
  const dropdownItems = src.items.map((item) => {
24521
24588
  const itemCta = resolveSourceRowCTA(
@@ -24608,7 +24675,7 @@ function SourceChip({
24608
24675
  "a",
24609
24676
  {
24610
24677
  href: resolvedHref,
24611
- ..._chunkJENNI7XUcjs.newTabAnchorAttrs.call(void 0, isNewTab),
24678
+ ..._chunkDGNGABNGcjs.newTabAnchorAttrs.call(void 0, isNewTab),
24612
24679
  onClick: buildClickHandler(resolvedHref, null, _nullishCoalesce(cta.targetPlatform, () => ( null)), isNewTab),
24613
24680
  className: chipClass,
24614
24681
  children: chipBody(src.name)
@@ -24624,7 +24691,7 @@ function SourceChip({
24624
24691
  "a",
24625
24692
  {
24626
24693
  href: resolvedHref,
24627
- ..._chunkJENNI7XUcjs.newTabAnchorAttrs.call(void 0, isNewTab),
24694
+ ..._chunkDGNGABNGcjs.newTabAnchorAttrs.call(void 0, isNewTab),
24628
24695
  onClick: buildClickHandler(resolvedHref, src.path, _nullishCoalesce(cta.targetPlatform, () => ( null)), isNewTab),
24629
24696
  className: chipClass,
24630
24697
  title: displayName,
@@ -24736,7 +24803,7 @@ function EmbeddableChatInner({
24736
24803
  defaultActiveMode,
24737
24804
  shell = "drawer",
24738
24805
  closable = true,
24739
- appearance = _chunkFDWYBJYDcjs.CHAT_APPEARANCE.CLASSIC,
24806
+ appearance = _chunk7AXOAA5Tcjs.CHAT_APPEARANCE.CLASSIC,
24740
24807
  onCollapse,
24741
24808
  collapseTo = "list",
24742
24809
  onExpand,
@@ -24754,7 +24821,7 @@ function EmbeddableChatInner({
24754
24821
  handleRef
24755
24822
  }) {
24756
24823
  const shellLess = shell !== "drawer";
24757
- const isV2 = appearance === _chunkFDWYBJYDcjs.CHAT_APPEARANCE.V2;
24824
+ const isV2 = appearance === _chunk7AXOAA5Tcjs.CHAT_APPEARANCE.V2;
24758
24825
  const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
24759
24826
  const source = _nullishCoalesce(runtime.source, () => ( ""));
24760
24827
  const commandsUrl = runtime.endpoints.commandsUrl;
@@ -24816,7 +24883,7 @@ function EmbeddableChatInner({
24816
24883
  resolveSourceIcon: (sourceId) => {
24817
24884
  const iconName = getSourceIconName(sourceId);
24818
24885
  if (!iconName) return void 0;
24819
- return { Icon: _chunkLV6UJD2Kcjs.resolveIcon.call(void 0, iconName, { variant: "brand" }), label: sourceId };
24886
+ return { Icon: _chunkJKWQWHNVcjs.resolveIcon.call(void 0, iconName, { variant: "brand" }), label: sourceId };
24820
24887
  },
24821
24888
  onAction: (cmd, actionId) => {
24822
24889
  dispatchSlashCommandAction(actionId, cmd.id, chatInputRef);
@@ -24824,7 +24891,7 @@ function EmbeddableChatInner({
24824
24891
  }),
24825
24892
  [commandsUrl]
24826
24893
  );
24827
- const headerUserName = _optionalChain([identityUser, 'optionalAccess', _799 => _799.name, 'optionalAccess', _800 => _800.trim, 'call', _801 => _801()]) || [_optionalChain([identityUser, 'optionalAccess', _802 => _802.firstName]), _optionalChain([identityUser, 'optionalAccess', _803 => _803.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([userDisplayName, 'optionalAccess', _804 => _804.trim, 'call', _805 => _805()]) || void 0;
24894
+ const headerUserName = _optionalChain([identityUser, 'optionalAccess', _803 => _803.name, 'optionalAccess', _804 => _804.trim, 'call', _805 => _805()]) || [_optionalChain([identityUser, 'optionalAccess', _806 => _806.firstName]), _optionalChain([identityUser, 'optionalAccess', _807 => _807.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([userDisplayName, 'optionalAccess', _808 => _808.trim, 'call', _809 => _809()]) || void 0;
24828
24895
  const effectiveModes = _react.useMemo.call(void 0, () => {
24829
24896
  if (modes) return modes;
24830
24897
  const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
@@ -24839,7 +24906,7 @@ function EmbeddableChatInner({
24839
24906
  if (controlledActiveMode === void 0) {
24840
24907
  setUncontrolledActiveMode(next);
24841
24908
  }
24842
- _optionalChain([onActiveModeChange, 'optionalCall', _806 => _806(next)]);
24909
+ _optionalChain([onActiveModeChange, 'optionalCall', _810 => _810(next)]);
24843
24910
  },
24844
24911
  [controlledActiveMode, onActiveModeChange]
24845
24912
  );
@@ -24866,7 +24933,7 @@ function EmbeddableChatInner({
24866
24933
  );
24867
24934
  const effectiveAssistantName = emptyStateConfig.name;
24868
24935
  const effectiveAssistantIcon = emptyStateConfig.icon;
24869
- const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _807 => _807.title]) === "string" ? guideWelcome.title : null)));
24936
+ const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _811 => _811.title]) === "string" ? guideWelcome.title : null)));
24870
24937
  const {
24871
24938
  messages: rawMessages,
24872
24939
  isLoading: chatLoading,
@@ -24923,8 +24990,8 @@ function EmbeddableChatInner({
24923
24990
  const mingoCaps = _react.useMemo.call(void 0,
24924
24991
  () => ({
24925
24992
  ...dialogCapabilities,
24926
- canRename: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _808 => _808.canRename]), () => ( false)),
24927
- canArchive: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _809 => _809.canArchive]), () => ( false))
24993
+ canRename: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _812 => _812.canRename]), () => ( false)),
24994
+ canArchive: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _813 => _813.canArchive]), () => ( false))
24928
24995
  }),
24929
24996
  [dialogCapabilities]
24930
24997
  );
@@ -24939,7 +25006,7 @@ function EmbeddableChatInner({
24939
25006
  void sendMessage(guidePendingPrompt).catch((err) => {
24940
25007
  console.error("[EmbeddableChat] guide launcher prompt failed:", err);
24941
25008
  });
24942
- _optionalChain([onGuidePromptConsumed, 'optionalCall', _810 => _810()]);
25009
+ _optionalChain([onGuidePromptConsumed, 'optionalCall', _814 => _814()]);
24943
25010
  }, [guidePendingPrompt, activeMode, sendMessage, onGuidePromptConsumed]);
24944
25011
  const {
24945
25012
  attachments: stagedAttachments,
@@ -24950,7 +25017,7 @@ function EmbeddableChatInner({
24950
25017
  clear: clearAttachments
24951
25018
  } = useChatAttachments();
24952
25019
  const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
24953
- const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _811 => _811.maxItems]), () => ( 10));
25020
+ const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _815 => _815.maxItems]), () => ( 10));
24954
25021
  const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
24955
25022
  const [contextItems, setContextItems] = _react.useState.call(void 0, NO_CONTEXT_ITEMS);
24956
25023
  const [contextPickerOpen, setContextPickerOpen] = _react.useState.call(void 0, false);
@@ -24979,10 +25046,10 @@ function EmbeddableChatInner({
24979
25046
  }, [composerKey, clearAttachments]);
24980
25047
  const mentionMarkerByType = _react.useMemo.call(void 0, () => {
24981
25048
  const m = /* @__PURE__ */ new Map();
24982
- for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _812 => _812.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
25049
+ for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _816 => _816.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
24983
25050
  return m;
24984
- }, [_optionalChain([contextPicker, 'optionalAccess', _813 => _813.entityTypes])]);
24985
- const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _814 => _814.entityTypes]);
25051
+ }, [_optionalChain([contextPicker, 'optionalAccess', _817 => _817.entityTypes])]);
25052
+ const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _818 => _818.entityTypes]);
24986
25053
  const resolveContextIcon = _react.useMemo.call(void 0, () => {
24987
25054
  const byType = /* @__PURE__ */ new Map();
24988
25055
  for (const t of _nullishCoalesce(contextEntityTypes, () => ( []))) byType.set(t.type, t.icon);
@@ -24994,7 +25061,7 @@ function EmbeddableChatInner({
24994
25061
  if (mentionActiveRef.current) {
24995
25062
  if (contextItems.some((p) => `${p.type}:${p.id}` === key)) return;
24996
25063
  if (contextItems.length >= contextMaxItems) return;
24997
- _optionalChain([chatInputRef, 'access', _815 => _815.current, 'optionalAccess', _816 => _816.commitMention, 'call', _817 => _817(mentionTokenOf(key, mentionMarkerByType), {
25064
+ _optionalChain([chatInputRef, 'access', _819 => _819.current, 'optionalAccess', _820 => _820.commitMention, 'call', _821 => _821(mentionTokenOf(key, mentionMarkerByType), {
24998
25065
  label: item.label,
24999
25066
  icon: resolveContextIcon(item)
25000
25067
  })]);
@@ -25017,9 +25084,9 @@ function EmbeddableChatInner({
25017
25084
  setContextItems((prev) => prev.filter((p) => `${p.type}:${p.id}` !== key));
25018
25085
  if (mentionKeysRef.current.has(key)) {
25019
25086
  mentionKeysRef.current.delete(key);
25020
- const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _818 => _818.current, 'optionalAccess', _819 => _819.getValue, 'call', _820 => _820()]), () => ( ""));
25087
+ const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _822 => _822.current, 'optionalAccess', _823 => _823.getValue, 'call', _824 => _824()]), () => ( ""));
25021
25088
  const next = cur.replace(`@${mentionTokenOf(key, mentionMarkerByType)}`, "").replace(/\s{2,}/g, " ").trimStart();
25022
- _optionalChain([chatInputRef, 'access', _821 => _821.current, 'optionalAccess', _822 => _822.setValue, 'call', _823 => _823(next)]);
25089
+ _optionalChain([chatInputRef, 'access', _825 => _825.current, 'optionalAccess', _826 => _826.setValue, 'call', _827 => _827(next)]);
25023
25090
  }
25024
25091
  },
25025
25092
  [mentionMarkerByType]
@@ -25041,7 +25108,7 @@ function EmbeddableChatInner({
25041
25108
  }, []);
25042
25109
  const closeContextPicker = _react.useCallback.call(void 0, () => {
25043
25110
  if (mentionActiveRef.current) {
25044
- _optionalChain([chatInputRef, 'access', _824 => _824.current, 'optionalAccess', _825 => _825.removeMentionTrigger, 'call', _826 => _826()]);
25111
+ _optionalChain([chatInputRef, 'access', _828 => _828.current, 'optionalAccess', _829 => _829.removeMentionTrigger, 'call', _830 => _830()]);
25045
25112
  }
25046
25113
  setContextPickerOpen(false);
25047
25114
  setMentionQuery(null);
@@ -25074,12 +25141,12 @@ function EmbeddableChatInner({
25074
25141
  [askAbout, displayRef, resolvedBaseRoute, chipBasePlatform, extras]
25075
25142
  );
25076
25143
  const mingoAssistantIcon = _react.useMemo.call(void 0,
25077
- () => effectiveAssistantIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.EntityIcon, { icon: effectiveAssistantIcon, size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLLSUVPQCcjs.MingoIcon, { className: "h-6 w-6", cornerColor: "var(--ods-flamingo-cyan-base)" }),
25144
+ () => effectiveAssistantIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.EntityIcon, { icon: effectiveAssistantIcon, size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLLSUVPQCcjs.MingoIcon, { className: "h-6 w-6", cornerColor: "var(--ods-flamingo-cyan-base)" }),
25078
25145
  [effectiveAssistantIcon]
25079
25146
  );
25080
25147
  const [timestampCache] = _react.useState.call(void 0, () => /* @__PURE__ */ new Map());
25081
- const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _827 => _827.firstName]), _optionalChain([identityUser, 'optionalAccess', _828 => _828.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _829 => _829.name, 'optionalAccess', _830 => _830.trim, 'call', _831 => _831()]) || void 0 : void 0;
25082
- const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _832 => _832.avatarUrl, 'optionalAccess', _833 => _833.trim, 'call', _834 => _834()]) || void 0 : void 0;
25148
+ const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _831 => _831.firstName]), _optionalChain([identityUser, 'optionalAccess', _832 => _832.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _833 => _833.name, 'optionalAccess', _834 => _834.trim, 'call', _835 => _835()]) || void 0 : void 0;
25149
+ const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _836 => _836.avatarUrl, 'optionalAccess', _837 => _837.trim, 'call', _838 => _838()]) || void 0 : void 0;
25083
25150
  const messages = _react.useMemo.call(void 0, () => {
25084
25151
  const options = { userName: guideUserName, userAvatar: guideUserAvatar, timestampCache };
25085
25152
  const mapped = rawMessages.map((m) => mapHostMessage(m, options));
@@ -25282,7 +25349,7 @@ function EmbeddableChatInner({
25282
25349
  _react.useEffect.call(void 0, () => {
25283
25350
  if (!panelBoundary || typeof ResizeObserver === "undefined") return void 0;
25284
25351
  const ro = new ResizeObserver((entries) => {
25285
- const w = _optionalChain([entries, 'access', _835 => _835[0], 'optionalAccess', _836 => _836.contentRect, 'optionalAccess', _837 => _837.width]);
25352
+ const w = _optionalChain([entries, 'access', _839 => _839[0], 'optionalAccess', _840 => _840.contentRect, 'optionalAccess', _841 => _841.width]);
25286
25353
  if (typeof w === "number") setCanSplit(w >= splitMinWidth);
25287
25354
  });
25288
25355
  ro.observe(panelBoundary);
@@ -25328,18 +25395,18 @@ function EmbeddableChatInner({
25328
25395
  const stackedListView = isMingoMode && !hasConversation && !archiveOpen && !wideMingo && !composeOpen && !emptyListSkipped;
25329
25396
  const headerShowBack = hasConversation || guideCanReturnToMingo;
25330
25397
  const freshConversationTitle = isGuideEmpty ? _nullishCoalesce(headerAssistantName, () => ( "Mingo Guide")) : "New Chat";
25331
- const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _838 => _838.title]) || freshConversationTitle : isGuideEmpty ? freshConversationTitle : "Current Chats";
25398
+ const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _842 => _842.title]) || freshConversationTitle : isGuideEmpty ? freshConversationTitle : "Current Chats";
25332
25399
  const headerBackAriaLabel = hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo";
25333
25400
  const headerOnBack = hasConversation ? handleBack : () => handleActiveModeChange("mingo");
25334
25401
  const headerOnRestore = isViewingArchived && unarchiveDialog && activeDialog ? () => setRestoreTarget(activeDialog) : void 0;
25335
25402
  const headerOnRename = activeDialogId && activeDialog && mingoCaps.canRename ? () => setRenameTarget(activeDialog) : void 0;
25336
25403
  const headerOnArchive = activeDialogId && activeDialog && mingoCaps.canArchive ? () => setArchiveTarget(activeDialog) : void 0;
25337
- const headerOnCopyLink = activeDialogId && activeDialog && mingoCaps.onCopyLink ? () => _optionalChain([mingoCaps, 'access', _839 => _839.onCopyLink, 'optionalCall', _840 => _840(activeDialog)]) : void 0;
25338
- const headerOnCompact = activeDialogId && activeDialog && mingoCaps.compactDialog ? () => _optionalChain([mingoCaps, 'access', _841 => _841.compactDialog, 'optionalCall', _842 => _842(activeDialog)]) : void 0;
25404
+ const headerOnCopyLink = activeDialogId && activeDialog && mingoCaps.onCopyLink ? () => _optionalChain([mingoCaps, 'access', _843 => _843.onCopyLink, 'optionalCall', _844 => _844(activeDialog)]) : void 0;
25405
+ const headerOnCompact = activeDialogId && activeDialog && mingoCaps.compactDialog ? () => _optionalChain([mingoCaps, 'access', _845 => _845.compactDialog, 'optionalCall', _846 => _846(activeDialog)]) : void 0;
25339
25406
  const headerOnOpenArchive = fetchArchivedDialogs ? openArchive : void 0;
25340
- const headerOwner = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _843 => _843.owner]) : void 0;
25341
- const headerPersonName = _optionalChain([headerOwner, 'optionalAccess', _844 => _844.name, 'optionalAccess', _845 => _845.trim, 'call', _846 => _846()]) || headerUserName;
25342
- const headerPersonAvatarUrl = headerOwner ? _optionalChain([headerOwner, 'access', _847 => _847.avatarUrl, 'optionalAccess', _848 => _848.trim, 'call', _849 => _849()]) || void 0 : _optionalChain([identityUser, 'optionalAccess', _850 => _850.avatarUrl, 'optionalAccess', _851 => _851.trim, 'call', _852 => _852()]) || _optionalChain([userAvatarUrl, 'optionalAccess', _853 => _853.trim, 'call', _854 => _854()]) || void 0;
25407
+ const headerOwner = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _847 => _847.owner]) : void 0;
25408
+ const headerPersonName = _optionalChain([headerOwner, 'optionalAccess', _848 => _848.name, 'optionalAccess', _849 => _849.trim, 'call', _850 => _850()]) || headerUserName;
25409
+ const headerPersonAvatarUrl = headerOwner ? _optionalChain([headerOwner, 'access', _851 => _851.avatarUrl, 'optionalAccess', _852 => _852.trim, 'call', _853 => _853()]) || void 0 : _optionalChain([identityUser, 'optionalAccess', _854 => _854.avatarUrl, 'optionalAccess', _855 => _855.trim, 'call', _856 => _856()]) || _optionalChain([userAvatarUrl, 'optionalAccess', _857 => _857.trim, 'call', _858 => _858()]) || void 0;
25343
25410
  const headerAvatar = headerPersonName || headerPersonAvatarUrl ? { name: headerPersonName, avatarUrl: headerPersonAvatarUrl } : void 0;
25344
25411
  const handleNewChat = _react.useCallback.call(void 0, () => {
25345
25412
  resetToNewChat();
@@ -25718,7 +25785,7 @@ function EmbeddableChatInner({
25718
25785
  onNewChat: () => setComposeOpen(true),
25719
25786
  onExpand: onExpand && (() => {
25720
25787
  const last = lastDialogIdRef.current;
25721
- const target = last && dialogs.some((d) => d.id === last) ? last : _optionalChain([dialogs, 'access', _855 => _855[0], 'optionalAccess', _856 => _856.id]);
25788
+ const target = last && dialogs.some((d) => d.id === last) ? last : _optionalChain([dialogs, 'access', _859 => _859[0], 'optionalAccess', _860 => _860.id]);
25722
25789
  if (archiveOpen) closeArchive();
25723
25790
  if (target) handleSelectDialog(target);
25724
25791
  else handleNewChat();
@@ -25825,9 +25892,9 @@ function EmbeddableChatInner({
25825
25892
  subtitle: _nullishCoalesce(effectiveGreeting, () => ( void 0)),
25826
25893
  subtitleLoading: emptyStateLoading,
25827
25894
  ...guideWelcome,
25828
- title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _857 => _857.title]))),
25829
- icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _858 => _858.icon]))),
25830
- quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _859 => _859.quickActions]), () => ( guideSuggestedActions)),
25895
+ title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _861 => _861.title]))),
25896
+ icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _862 => _862.icon]))),
25897
+ quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _863 => _863.quickActions]), () => ( guideSuggestedActions)),
25831
25898
  onQuickAction: (action) => {
25832
25899
  setQuickActionPreview(null);
25833
25900
  handleSend(_nullishCoalesce(action.prompt, () => ( action.label)));
@@ -25846,7 +25913,7 @@ function EmbeddableChatInner({
25846
25913
  `chip-skeleton-${i}`
25847
25914
  )),
25848
25915
  chipCommands.map((cmd) => {
25849
- const Icon = _chunkLV6UJD2Kcjs.resolveIcon.call(void 0, cmd.iconName);
25916
+ const Icon = _chunkJKWQWHNVcjs.resolveIcon.call(void 0, cmd.iconName);
25850
25917
  const cmdId = cmd.id;
25851
25918
  const label = _nullishCoalesce(cmd.label, () => ( `/${cmdId}`));
25852
25919
  const cardActions = cmd.actions.map((action) => ({
@@ -25855,7 +25922,7 @@ function EmbeddableChatInner({
25855
25922
  onClick: () => dispatchSlashCommandAction(action.id, cmdId, chatInputRef)
25856
25923
  }));
25857
25924
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25858
- _chunkFDWYBJYDcjs.MingoOnboardingCard,
25925
+ _chunk7AXOAA5Tcjs.MingoOnboardingCard,
25859
25926
  {
25860
25927
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { size: 16 }),
25861
25928
  title: label,
@@ -25902,8 +25969,8 @@ function EmbeddableChatInner({
25902
25969
  selectedContextItems: contextItems,
25903
25970
  onToggleContextItem: toggleContextItem,
25904
25971
  onRemoveContextItem: removeContextItem,
25905
- contextMemoryItems: _optionalChain([contextMemory, 'optionalAccess', _860 => _860.items]),
25906
- onRemoveContextMemoryItem: _optionalChain([contextMemory, 'optionalAccess', _861 => _861.onRemove]),
25972
+ contextMemoryItems: _optionalChain([contextMemory, 'optionalAccess', _864 => _864.items]),
25973
+ onRemoveContextMemoryItem: _optionalChain([contextMemory, 'optionalAccess', _865 => _865.onRemove]),
25907
25974
  contextPickerOpen,
25908
25975
  onOpenContextPicker: openContextPicker,
25909
25976
  onCloseContextPicker: closeContextPicker,
@@ -26116,7 +26183,7 @@ var GROUPS = [
26116
26183
  }
26117
26184
  ];
26118
26185
  function maskKey(key) {
26119
- const prefix = _nullishCoalesce(_optionalChain([/^fpk_[a-z0-9-]+_/i, 'access', _862 => _862.exec, 'call', _863 => _863(key), 'optionalAccess', _864 => _864[0]]), () => ( ""));
26186
+ const prefix = _nullishCoalesce(_optionalChain([/^fpk_[a-z0-9-]+_/i, 'access', _866 => _866.exec, 'call', _867 => _867(key), 'optionalAccess', _868 => _868[0]]), () => ( ""));
26120
26187
  return key.length - prefix.length <= 8 ? `${prefix}\u2022\u2022\u2022\u2022` : `${prefix}\u2026${key.slice(-4)}`;
26121
26188
  }
26122
26189
  function HeaderName({ children }) {
@@ -26153,8 +26220,8 @@ function ProxyCredentialsForm({ description, saved }) {
26153
26220
  const errors = _react.useMemo.call(void 0, () => {
26154
26221
  const out = {};
26155
26222
  for (const { field } of _chunkULWVKHSIcjs.EMBED_PROXY_OPTIONAL_HEADERS) {
26156
- const value = _optionalChain([optional, 'access', _865 => _865[field], 'optionalAccess', _866 => _866.trim, 'call', _867 => _867()]);
26157
- const message = value ? _optionalChain([OPTIONAL_FIELD_COPY, 'access', _868 => _868[field], 'access', _869 => _869.validate, 'optionalCall', _870 => _870(value)]) : null;
26223
+ const value = _optionalChain([optional, 'access', _869 => _869[field], 'optionalAccess', _870 => _870.trim, 'call', _871 => _871()]);
26224
+ const message = value ? _optionalChain([OPTIONAL_FIELD_COPY, 'access', _872 => _872[field], 'access', _873 => _873.validate, 'optionalCall', _874 => _874(value)]) : null;
26158
26225
  if (message) out[field] = message;
26159
26226
  }
26160
26227
  return out;
@@ -26166,12 +26233,12 @@ function ProxyCredentialsForm({ description, saved }) {
26166
26233
  ...keyForPreview ? [["Authorization", `Bearer ${keyForPreview}`]] : [],
26167
26234
  ...email.trim() ? [["X-Chat-Act-As", email.trim().toLowerCase()]] : [],
26168
26235
  ..._chunkULWVKHSIcjs.EMBED_PROXY_OPTIONAL_HEADERS.flatMap(({ field, header }) => {
26169
- const value = _optionalChain([optional, 'access', _871 => _871[field], 'optionalAccess', _872 => _872.trim, 'call', _873 => _873()]);
26236
+ const value = _optionalChain([optional, 'access', _875 => _875[field], 'optionalAccess', _876 => _876.trim, 'call', _877 => _877()]);
26170
26237
  return value ? [[header, value]] : [];
26171
26238
  })
26172
26239
  ];
26173
26240
  const save = () => {
26174
- const key = secret.trim() || _optionalChain([_chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _874 => _874.secret]);
26241
+ const key = secret.trim() || _optionalChain([_chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _878 => _878.secret]);
26175
26242
  const actAs = email.trim().toLowerCase();
26176
26243
  if (!key || !actAs || hasErrors) {
26177
26244
  setStatus(hasErrors ? "Fix the highlighted fields first." : "API key and act-as email are required.");
@@ -26193,13 +26260,13 @@ function ProxyCredentialsForm({ description, saved }) {
26193
26260
  setStatus("Cleared. Requests use the session again.");
26194
26261
  };
26195
26262
  const setField = (field, value) => setOptional((prev) => ({ ...prev, [field]: value }));
26196
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.Card, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkJENNI7XUcjs.CardContent, { className: "space-y-[var(--spacing-system-lf)] p-[var(--spacing-system-mf)]", children: [
26263
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.Card, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDGNGABNGcjs.CardContent, { className: "space-y-[var(--spacing-system-lf)] p-[var(--spacing-system-mf)]", children: [
26197
26264
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "header", { className: "flex flex-col gap-[var(--spacing-system-sf)] sm:flex-row sm:items-start sm:justify-between", children: [
26198
26265
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
26199
26266
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-ods-text-primary text-h3", children: "Proxy credentials" }),
26200
26267
  description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: description })
26201
26268
  ] }),
26202
- activeEmail && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "self-start", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJENNI7XUcjs.StatusBadge, { singleLine: true, colorScheme: "success", text: `Active: ${activeEmail}` }) })
26269
+ activeEmail && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "self-start", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.StatusBadge, { singleLine: true, colorScheme: "success", text: `Active: ${activeEmail}` }) })
26203
26270
  ] }),
26204
26271
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26205
26272
  Section,
@@ -26779,4 +26846,13 @@ function ProxyCredentialsForm({ description, saved }) {
26779
26846
 
26780
26847
 
26781
26848
 
26782
- exports.InfoHint = InfoHint; exports.Field = Field; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.ScrollShadow = ScrollShadow; exports.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS = HUBSPOT_DO_NOT_COLLECT_FORM_PROPS; exports.useResizablePanelSize = useResizablePanelSize; exports.PanelResizeHandle = PanelResizeHandle; 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.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.buildHeadingIdMap = buildHeadingIdMap; exports.useHeadingIdMap = useHeadingIdMap; exports.extractText = extractText; exports.useIsHydrated = useIsHydrated; exports.MermaidDiagram = MermaidDiagram; exports.hasRenderableSrc = hasRenderableSrc; exports.buildStandardLeafRenderers = buildStandardLeafRenderers; exports.SAFE_HTML_TAGS = SAFE_HTML_TAGS; exports.SVG_TAGS = SVG_TAGS; exports.buildEffectiveTagSet = buildEffectiveTagSet; exports.buildSanitizeSchema = buildSanitizeSchema; exports.rehypeStripUnsafe = rehypeStripUnsafe; exports.escapeUnknownHtmlTags = escapeUnknownHtmlTags; exports.cardAwareUrlTransform = cardAwareUrlTransform; exports.splitStreamingBlocks = splitStreamingBlocks; exports.completeStreamingTail = completeStreamingTail; exports.TEXT_SIZE_PRESETS = TEXT_SIZE_PRESETS; exports.resolveTextSizeConfig = resolveTextSizeConfig; exports.NO_BROKEN_LINKS = NO_BROKEN_LINKS; exports.MarkdownEngine = MarkdownEngine; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.FullscreenSwitchController = FullscreenSwitchController; exports.SOCIAL_PLATFORM_ALIASES = SOCIAL_PLATFORM_ALIASES; exports.normalizeSocialPlatform = normalizeSocialPlatform; exports.hostMatches = hostMatches; exports.SOCIAL_PLATFORM_ALT_HOSTS = SOCIAL_PLATFORM_ALT_HOSTS; exports.socialPlatformHosts = socialPlatformHosts; exports.classifySocialHost = classifySocialHost; exports.pickSocialLink = pickSocialLink; exports.HoverDropdown = HoverDropdown; exports.ChatAppearanceContext = ChatAppearanceContext; exports.useChatAppearance = useChatAppearance; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.AiAssistantInfo = AiAssistantInfo; exports.TicketEscalatedMessage = TicketEscalatedMessage; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.TICKET_EVENT_KIND = TICKET_EVENT_KIND; exports.TicketEventMessage = TicketEventMessage; exports.SystemEventMessage = SystemEventMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.ThinkingDisplay = ThinkingDisplay; exports.AskDisplay = AskDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; 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.BlockCard = BlockCard; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.ChatMessageList = ChatMessageList; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.isQuickActionIconSpec = isQuickActionIconSpec; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipSkeleton = QuickActionChipSkeleton; exports.QuickActionChipButton = QuickActionChipButton; exports.QuickActionChipFromData = QuickActionChipFromData; exports.getPlatformProductionUrl = getPlatformProductionUrl; exports.getPlatformUrl = getPlatformUrl; exports.getDeploymentUrl = getDeploymentUrl; exports.isLocalUrl = isLocalUrl; exports.getRequestOrigin = getRequestOrigin; exports.resolveRedirectTarget = resolveRedirectTarget; exports.getAllPlatformBaseDomains = getAllPlatformBaseDomains; exports.TRIAL_DAYS = TRIAL_DAYS; exports.TRIAL_LABELS = TRIAL_LABELS; 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.DESIGN_DOC_READINESS = DESIGN_DOC_READINESS; exports.DESIGN_DOC_READINESS_DISPLAY = DESIGN_DOC_READINESS_DISPLAY; exports.designDocReadiness = designDocReadiness; exports.formatCompletionLabel = formatCompletionLabel; exports.formatCompletionLabelWithBlockers = formatCompletionLabelWithBlockers; 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.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; 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.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; 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.DOWNLOAD_PAGE_PATH = DOWNLOAD_PAGE_PATH; exports.resolveMobileStoreUrl = resolveMobileStoreUrl; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.getCountryByName = getCountryByName; exports.getFlagFromCountryName = getFlagFromCountryName; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.COMPLIANCE_STANDARDS = COMPLIANCE_STANDARDS; exports.complianceStandardForName = complianceStandardForName; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; 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.DOC_TABLE_TYPES = DOC_TABLE_TYPES; exports.groupsByTable = groupsByTable; exports.recordCountLabel = recordCountLabel; exports.buildGroupedSource = buildGroupedSource; exports.groupSourcesByTable = groupSourcesByTable; exports.formatCitationIndices = formatCitationIndices; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; 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.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.clickupTaskUrl = clickupTaskUrl; 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.ENTITY_QUOTES_TITLE = ENTITY_QUOTES_TITLE; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; 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.openInNewTab = openInNewTab; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; 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.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.normalizeSchedulingSlug = normalizeSchedulingSlug; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.ODS_SPACING_TOKENS = ODS_SPACING_TOKENS; exports.ODS_SPACING_TOKEN_PATTERN = ODS_SPACING_TOKEN_PATTERN; exports.ODS_SPACING_PROPS = ODS_SPACING_PROPS; exports.TAILWIND_STEP_TO_ODS_TOKEN = TAILWIND_STEP_TO_ODS_TOKEN; exports.CSV_CONTENT_TYPE = CSV_CONTENT_TYPE; exports.csvEscape = csvEscape; exports.toCsv = toCsv; exports.copyrightLine = copyrightLine; exports.isValidPathPattern = isValidPathPattern; exports.matchesPathPattern = matchesPathPattern; exports.pathMatchesAny = pathMatchesAny; exports.ASK_AI_OPEN_EVENT = ASK_AI_OPEN_EVENT; exports.openAskAi = openAskAi; exports.MingoAiButton = MingoAiButton; exports.AskPrompts = AskPrompts; exports.AskCard = AskCard; exports.ASK_PROMPTS_DEFAULT_COUNT = ASK_PROMPTS_DEFAULT_COUNT; exports.buildAskPromptsUrl = buildAskPromptsUrl; exports.assistantAvailable = assistantAvailable; exports.useAskPrompts = useAskPrompts; exports.useAssistantOpen = useAssistantOpen; exports.useShownAskPrompts = useShownAskPrompts; exports.useShownAskPromptIds = useShownAskPromptIds; exports.AssistantAskPrompts = AssistantAskPrompts; exports.useMarqueeSync = useMarqueeSync; exports.getMarqueeTrackOffset = getMarqueeTrackOffset; exports.getMarqueeAppliedOffset = getMarqueeAppliedOffset; exports.getMarqueeCloneTwin = getMarqueeCloneTwin; exports.MarqueeWallFades = MarqueeWallFades; exports.MarqueeWall = MarqueeWall; exports.WALL_SKELETON_LABEL_CH = WALL_SKELETON_LABEL_CH; exports.interleave = interleave; exports.QuickActionWall = QuickActionWall; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.ChatListEmptyState = ChatListEmptyState; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.GuideModeBanner = GuideModeBanner; exports.ChatNavSidebar = ChatNavSidebar; exports.ChatListItem = ChatListItem; exports.MingoArchiveList = MingoArchiveList; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.MingoChatHeader = MingoChatHeader; exports.ChatHeaderSearchField = ChatHeaderSearchField; exports.MingoChatRail = MingoChatRail; exports.TabSelector = TabSelector; exports.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatPanelHeader = ChatPanelHeader; 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.ChatContextMemoryBar = ChatContextMemoryBar; 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.ChatTopNavigation = ChatTopNavigation; exports.OnboardingCarousel = OnboardingCarousel; 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.useNavLinkViaRuntime = useNavLinkViaRuntime; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.getCaptionsUrl = getCaptionsUrl; exports.rebaseCaptionsUrl = rebaseCaptionsUrl; exports.buildCaptionsUrl = buildCaptionsUrl; exports.getEntityCaptionUrls = getEntityCaptionUrls; exports.getEntityCaptionUrlsById = getEntityCaptionUrlsById; exports.captionsEntityTypeForDocType = captionsEntityTypeForDocType; exports.useCaptions = useCaptions; exports.UserDisplay = UserDisplay; exports.CardHitLayer = CardHitLayer; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; 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.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.designDocPeople = designDocPeople; exports.designDocMetaLine = designDocMetaLine; exports.DesignDocCardSkeleton = DesignDocCardSkeleton; exports.DesignDocCard = DesignDocCard; 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.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.getVendorLogo = getVendorLogo; exports.VendorIcon = VendorIcon; exports.useChatCardItem = useChatCardItem; exports.readFetchedCardTitle = readFetchedCardTitle; exports.readFetchedCardPath = readFetchedCardPath; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.resolveCardDestination = resolveCardDestination; exports.chatCardLabel = chatCardLabel; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.EMPTY_DIALOG_CAPABILITIES = EMPTY_DIALOG_CAPABILITIES; exports.useChunkCatchup = useChunkCatchup; exports.useScriptedStream = useScriptedStream; exports.RESYNC_AFTER_HIDDEN_MS = RESYNC_AFTER_HIDDEN_MS; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; 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.approvalDisplaysInline = approvalDisplaysInline; exports.appendToTrailingAssistant = appendToTrailingAssistant; exports.upsertTrailingCompaction = upsertTrailingCompaction; exports.applyToolExecutionToMessages = applyToolExecutionToMessages; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.createEmptyTurnMeta = createEmptyTurnMeta; exports.createChatStreamReducer = createChatStreamReducer; exports.DEFAULT_DIALOG_SIDE = DEFAULT_DIALOG_SIDE; exports.DEFAULT_MAX_REDUCERS = DEFAULT_MAX_REDUCERS; exports.MAX_PENDING_RETAIN_KEYS = MAX_PENDING_RETAIN_KEYS; exports.createChatDialogStore = createChatDialogStore; exports.createDeltaBatcher = createDeltaBatcher; exports.useChatStreamReducer = useChatStreamReducer; exports.createChatConversationsApi = createChatConversationsApi; exports.buildDiscussPrompt = buildDiscussPrompt; exports.useManagedDialogList = useManagedDialogList; exports.useSseChatAdapter = useSseChatAdapter; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.extractIncompleteTailState = extractIncompleteTailState; exports.decodeHistoricalMessageData = decodeHistoricalMessageData; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useStableShallow = useStableShallow; exports.useUnifiedChat = useUnifiedChat; 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.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; exports.MINGO_V2_RAIL_WIDTH = MINGO_V2_RAIL_WIDTH; exports.MINGO_V2_SPLIT_WIDTH = MINGO_V2_SPLIT_WIDTH; exports.EmbeddableChat = EmbeddableChat; exports.ProxyCredentialsPanel = ProxyCredentialsPanel;
26849
+
26850
+
26851
+
26852
+
26853
+
26854
+
26855
+
26856
+
26857
+
26858
+ exports.InfoHint = InfoHint; exports.Field = Field; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.ScrollShadow = ScrollShadow; exports.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS = HUBSPOT_DO_NOT_COLLECT_FORM_PROPS; exports.useResizablePanelSize = useResizablePanelSize; exports.PanelResizeHandle = PanelResizeHandle; 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.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.buildHeadingIdMap = buildHeadingIdMap; exports.useHeadingIdMap = useHeadingIdMap; exports.extractText = extractText; exports.useIsHydrated = useIsHydrated; exports.MermaidDiagram = MermaidDiagram; exports.hasRenderableSrc = hasRenderableSrc; exports.buildStandardLeafRenderers = buildStandardLeafRenderers; exports.SAFE_HTML_TAGS = SAFE_HTML_TAGS; exports.SVG_TAGS = SVG_TAGS; exports.buildEffectiveTagSet = buildEffectiveTagSet; exports.buildSanitizeSchema = buildSanitizeSchema; exports.rehypeStripUnsafe = rehypeStripUnsafe; exports.escapeUnknownHtmlTags = escapeUnknownHtmlTags; exports.cardAwareUrlTransform = cardAwareUrlTransform; exports.splitStreamingBlocks = splitStreamingBlocks; exports.completeStreamingTail = completeStreamingTail; exports.TEXT_SIZE_PRESETS = TEXT_SIZE_PRESETS; exports.resolveTextSizeConfig = resolveTextSizeConfig; exports.NO_BROKEN_LINKS = NO_BROKEN_LINKS; exports.MarkdownEngine = MarkdownEngine; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.FullscreenSwitchController = FullscreenSwitchController; exports.SOCIAL_PLATFORM_ALIASES = SOCIAL_PLATFORM_ALIASES; exports.normalizeSocialPlatform = normalizeSocialPlatform; exports.hostMatches = hostMatches; exports.SOCIAL_PLATFORM_ALT_HOSTS = SOCIAL_PLATFORM_ALT_HOSTS; exports.socialPlatformHosts = socialPlatformHosts; exports.classifySocialHost = classifySocialHost; exports.pickSocialLink = pickSocialLink; exports.HoverDropdown = HoverDropdown; exports.ChatAppearanceContext = ChatAppearanceContext; exports.useChatAppearance = useChatAppearance; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.AiAssistantInfo = AiAssistantInfo; exports.TicketEscalatedMessage = TicketEscalatedMessage; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.TICKET_EVENT_KIND = TICKET_EVENT_KIND; exports.TicketEventMessage = TicketEventMessage; exports.SystemEventMessage = SystemEventMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.ThinkingDisplay = ThinkingDisplay; exports.AskDisplay = AskDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; 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.BlockCard = BlockCard; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.ChatMessageList = ChatMessageList; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.isQuickActionIconSpec = isQuickActionIconSpec; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipSkeleton = QuickActionChipSkeleton; exports.QuickActionChipButton = QuickActionChipButton; exports.QuickActionChipFromData = QuickActionChipFromData; exports.getPlatformProductionUrl = getPlatformProductionUrl; exports.getPlatformUrl = getPlatformUrl; exports.getDeploymentUrl = getDeploymentUrl; exports.isLocalUrl = isLocalUrl; exports.getRequestOrigin = getRequestOrigin; exports.resolveRedirectTarget = resolveRedirectTarget; exports.getAllPlatformBaseDomains = getAllPlatformBaseDomains; exports.AI_PROVIDERS = AI_PROVIDERS; exports.aiProvider = aiProvider; exports.TOKEN_RATE_EMPTY = TOKEN_RATE_EMPTY; exports.formatTokenRate = formatTokenRate; exports.tokenCost = tokenCost; exports.formatTokenAmount = formatTokenAmount; exports.tokensForBalance = tokensForBalance; exports.tokenRateProviderLabel = tokenRateProviderLabel; exports.groupTokenRatesByProvider = groupTokenRatesByProvider; exports.TRIAL_DAYS = TRIAL_DAYS; exports.TRIAL_LABELS = TRIAL_LABELS; 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.DESIGN_DOC_READINESS = DESIGN_DOC_READINESS; exports.DESIGN_DOC_READINESS_DISPLAY = DESIGN_DOC_READINESS_DISPLAY; exports.designDocReadiness = designDocReadiness; exports.formatCompletionLabel = formatCompletionLabel; exports.formatCompletionLabelWithBlockers = formatCompletionLabelWithBlockers; 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.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; 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.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; 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.DOWNLOAD_PAGE_PATH = DOWNLOAD_PAGE_PATH; exports.resolveMobileStoreUrl = resolveMobileStoreUrl; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.getCountryByName = getCountryByName; exports.getFlagFromCountryName = getFlagFromCountryName; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.COMPLIANCE_STANDARDS = COMPLIANCE_STANDARDS; exports.complianceStandardForName = complianceStandardForName; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; 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.DOC_TABLE_TYPES = DOC_TABLE_TYPES; exports.groupsByTable = groupsByTable; exports.recordCountLabel = recordCountLabel; exports.buildGroupedSource = buildGroupedSource; exports.groupSourcesByTable = groupSourcesByTable; exports.formatCitationIndices = formatCitationIndices; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; 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.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.clickupTaskUrl = clickupTaskUrl; 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.ENTITY_QUOTES_TITLE = ENTITY_QUOTES_TITLE; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; 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.openInNewTab = openInNewTab; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; 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.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.normalizeSchedulingSlug = normalizeSchedulingSlug; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.ODS_SPACING_TOKENS = ODS_SPACING_TOKENS; exports.ODS_SPACING_TOKEN_PATTERN = ODS_SPACING_TOKEN_PATTERN; exports.ODS_SPACING_PROPS = ODS_SPACING_PROPS; exports.TAILWIND_STEP_TO_ODS_TOKEN = TAILWIND_STEP_TO_ODS_TOKEN; exports.CSV_CONTENT_TYPE = CSV_CONTENT_TYPE; exports.csvEscape = csvEscape; exports.toCsv = toCsv; exports.copyrightLine = copyrightLine; exports.isValidPathPattern = isValidPathPattern; exports.matchesPathPattern = matchesPathPattern; exports.pathMatchesAny = pathMatchesAny; exports.ASK_AI_OPEN_EVENT = ASK_AI_OPEN_EVENT; exports.openAskAi = openAskAi; exports.MingoAiButton = MingoAiButton; exports.AskPrompts = AskPrompts; exports.AskCard = AskCard; exports.ASK_PROMPTS_DEFAULT_COUNT = ASK_PROMPTS_DEFAULT_COUNT; exports.buildAskPromptsUrl = buildAskPromptsUrl; exports.assistantAvailable = assistantAvailable; exports.useAskPrompts = useAskPrompts; exports.useAssistantOpen = useAssistantOpen; exports.useShownAskPrompts = useShownAskPrompts; exports.useShownAskPromptIds = useShownAskPromptIds; exports.AssistantAskPrompts = AssistantAskPrompts; exports.useMarqueeSync = useMarqueeSync; exports.getMarqueeTrackOffset = getMarqueeTrackOffset; exports.getMarqueeAppliedOffset = getMarqueeAppliedOffset; exports.getMarqueeCloneTwin = getMarqueeCloneTwin; exports.MarqueeWallFades = MarqueeWallFades; exports.MarqueeWall = MarqueeWall; exports.WALL_SKELETON_LABEL_CH = WALL_SKELETON_LABEL_CH; exports.interleave = interleave; exports.QuickActionWall = QuickActionWall; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.ChatListEmptyState = ChatListEmptyState; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.GuideModeBanner = GuideModeBanner; exports.ChatNavSidebar = ChatNavSidebar; exports.ChatListItem = ChatListItem; exports.MingoArchiveList = MingoArchiveList; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.MingoChatHeader = MingoChatHeader; exports.ChatHeaderSearchField = ChatHeaderSearchField; exports.MingoChatRail = MingoChatRail; exports.TabSelector = TabSelector; exports.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatPanelHeader = ChatPanelHeader; 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.ChatContextMemoryBar = ChatContextMemoryBar; 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.ChatTopNavigation = ChatTopNavigation; exports.OnboardingCarousel = OnboardingCarousel; 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.useNavLinkViaRuntime = useNavLinkViaRuntime; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.getCaptionsUrl = getCaptionsUrl; exports.rebaseCaptionsUrl = rebaseCaptionsUrl; exports.buildCaptionsUrl = buildCaptionsUrl; exports.getEntityCaptionUrls = getEntityCaptionUrls; exports.getEntityCaptionUrlsById = getEntityCaptionUrlsById; exports.captionsEntityTypeForDocType = captionsEntityTypeForDocType; exports.useCaptions = useCaptions; exports.UserDisplay = UserDisplay; exports.CardHitLayer = CardHitLayer; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; 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.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.designDocPeople = designDocPeople; exports.designDocMetaLine = designDocMetaLine; exports.DesignDocCardSkeleton = DesignDocCardSkeleton; exports.DesignDocCard = DesignDocCard; 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.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.getVendorLogo = getVendorLogo; exports.VendorIcon = VendorIcon; exports.useChatCardItem = useChatCardItem; exports.readFetchedCardTitle = readFetchedCardTitle; exports.readFetchedCardPath = readFetchedCardPath; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.resolveCardDestination = resolveCardDestination; exports.chatCardLabel = chatCardLabel; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.EMPTY_DIALOG_CAPABILITIES = EMPTY_DIALOG_CAPABILITIES; exports.useChunkCatchup = useChunkCatchup; exports.useScriptedStream = useScriptedStream; exports.RESYNC_AFTER_HIDDEN_MS = RESYNC_AFTER_HIDDEN_MS; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; 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.approvalDisplaysInline = approvalDisplaysInline; exports.appendToTrailingAssistant = appendToTrailingAssistant; exports.upsertTrailingCompaction = upsertTrailingCompaction; exports.applyToolExecutionToMessages = applyToolExecutionToMessages; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.createEmptyTurnMeta = createEmptyTurnMeta; exports.createChatStreamReducer = createChatStreamReducer; exports.DEFAULT_DIALOG_SIDE = DEFAULT_DIALOG_SIDE; exports.DEFAULT_MAX_REDUCERS = DEFAULT_MAX_REDUCERS; exports.MAX_PENDING_RETAIN_KEYS = MAX_PENDING_RETAIN_KEYS; exports.createChatDialogStore = createChatDialogStore; exports.createDeltaBatcher = createDeltaBatcher; exports.useChatStreamReducer = useChatStreamReducer; exports.createChatConversationsApi = createChatConversationsApi; exports.buildDiscussPrompt = buildDiscussPrompt; exports.useManagedDialogList = useManagedDialogList; exports.useSseChatAdapter = useSseChatAdapter; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.extractIncompleteTailState = extractIncompleteTailState; exports.decodeHistoricalMessageData = decodeHistoricalMessageData; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useStableShallow = useStableShallow; exports.useUnifiedChat = useUnifiedChat; 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.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; exports.MINGO_V2_RAIL_WIDTH = MINGO_V2_RAIL_WIDTH; exports.MINGO_V2_SPLIT_WIDTH = MINGO_V2_SPLIT_WIDTH; exports.EmbeddableChat = EmbeddableChat; exports.ProxyCredentialsPanel = ProxyCredentialsPanel;