@flamingo-stack/openframe-frontend-core 0.0.244 → 0.0.245

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/{chunk-DV3YZWGN.cjs → chunk-3TDLFCCS.cjs} +33 -20
  2. package/dist/chunk-3TDLFCCS.cjs.map +1 -0
  3. package/dist/{chunk-ORJREQ2W.js → chunk-4XLJWX2N.js} +4 -4
  4. package/dist/{chunk-P5C732SC.js → chunk-7ZHFCEJH.js} +6 -6
  5. package/dist/{chunk-EJ7J4QAD.cjs → chunk-BKPS6M2F.cjs} +12 -12
  6. package/dist/{chunk-EJ7J4QAD.cjs.map → chunk-BKPS6M2F.cjs.map} +1 -1
  7. package/dist/{chunk-EPXROXYC.cjs → chunk-CZITXP77.cjs} +645 -713
  8. package/dist/chunk-CZITXP77.cjs.map +1 -0
  9. package/dist/{chunk-Z6GGYZDR.cjs → chunk-DUZBTUXF.cjs} +27 -27
  10. package/dist/{chunk-Z6GGYZDR.cjs.map → chunk-DUZBTUXF.cjs.map} +1 -1
  11. package/dist/{chunk-M7DPUWAL.js → chunk-FRRMXLU5.js} +120 -188
  12. package/dist/chunk-FRRMXLU5.js.map +1 -0
  13. package/dist/chunk-GIDH6UL4.js +287 -0
  14. package/dist/chunk-GIDH6UL4.js.map +1 -0
  15. package/dist/{chunk-PTSAF7T2.js → chunk-JJV3XGCY.js} +2 -2
  16. package/dist/{chunk-APGMNHPY.js → chunk-MKVKVJQQ.js} +32 -19
  17. package/dist/chunk-MKVKVJQQ.js.map +1 -0
  18. package/dist/chunk-ML2ROCYA.cjs +287 -0
  19. package/dist/chunk-ML2ROCYA.cjs.map +1 -0
  20. package/dist/{chunk-STKMIMLP.cjs → chunk-MP5HOP7N.cjs} +12 -12
  21. package/dist/{chunk-STKMIMLP.cjs.map → chunk-MP5HOP7N.cjs.map} +1 -1
  22. package/dist/{chunk-NKGNRFSS.js → chunk-SEVJT2HP.js} +8 -8
  23. package/dist/{chunk-FSS2MIEA.cjs → chunk-SGJBUL2Y.cjs} +20 -3
  24. package/dist/chunk-SGJBUL2Y.cjs.map +1 -0
  25. package/dist/{chunk-WD2MZVJI.js → chunk-V35PZSUA.js} +5 -5
  26. package/dist/{chunk-LJGBFD52.js → chunk-VAUI3CND.js} +18 -1
  27. package/dist/chunk-VAUI3CND.js.map +1 -0
  28. package/dist/{chunk-OB45JHDY.cjs → chunk-VFKQMAUF.cjs} +3 -3
  29. package/dist/{chunk-OB45JHDY.cjs.map → chunk-VFKQMAUF.cjs.map} +1 -1
  30. package/dist/{chunk-RJC3L5DT.cjs → chunk-VXP553WT.cjs} +7 -7
  31. package/dist/{chunk-RJC3L5DT.cjs.map → chunk-VXP553WT.cjs.map} +1 -1
  32. package/dist/components/chat/chat-message-list.d.ts.map +1 -1
  33. package/dist/components/chat/hooks/use-chat-card-item.d.ts.map +1 -1
  34. package/dist/components/chat/index.cjs +6 -16
  35. package/dist/components/chat/index.cjs.map +1 -1
  36. package/dist/components/chat/index.js +5 -15
  37. package/dist/components/chat/types/entities/content-ref.d.ts +5 -20
  38. package/dist/components/chat/types/entities/content-ref.d.ts.map +1 -1
  39. package/dist/components/chat/utils/index.d.ts +0 -1
  40. package/dist/components/chat/utils/index.d.ts.map +1 -1
  41. package/dist/components/contact/index.cjs +7 -7
  42. package/dist/components/contact/index.js +6 -6
  43. package/dist/components/faq/faq-section.d.ts +7 -1
  44. package/dist/components/faq/faq-section.d.ts.map +1 -1
  45. package/dist/components/faq/index.cjs +3 -3
  46. package/dist/components/faq/index.js +2 -2
  47. package/dist/components/features/index.cjs +6 -6
  48. package/dist/components/features/index.js +5 -5
  49. package/dist/components/features/policy-configuration-panel.d.ts.map +1 -1
  50. package/dist/components/index.cjs +87 -93
  51. package/dist/components/index.cjs.map +1 -1
  52. package/dist/components/index.d.ts +1 -0
  53. package/dist/components/index.d.ts.map +1 -1
  54. package/dist/components/index.js +31 -37
  55. package/dist/components/index.js.map +1 -1
  56. package/dist/components/navigation/index.cjs +6 -6
  57. package/dist/components/navigation/index.js +5 -5
  58. package/dist/components/onboarding-guides/index.cjs +30 -30
  59. package/dist/components/onboarding-guides/index.cjs.map +1 -1
  60. package/dist/components/onboarding-guides/index.js +11 -11
  61. package/dist/components/related-content/index.cjs +26 -0
  62. package/dist/components/related-content/index.cjs.map +1 -0
  63. package/dist/components/related-content/index.d.ts +2 -0
  64. package/dist/components/related-content/index.d.ts.map +1 -0
  65. package/dist/components/related-content/index.js +26 -0
  66. package/dist/components/related-content/index.js.map +1 -0
  67. package/dist/components/related-content/related-content-section.d.ts +149 -0
  68. package/dist/components/related-content/related-content-section.d.ts.map +1 -0
  69. package/dist/components/tickets/index.cjs +73 -73
  70. package/dist/components/tickets/index.cjs.map +1 -1
  71. package/dist/components/tickets/index.js +15 -15
  72. package/dist/components/ui/index.cjs +9 -19
  73. package/dist/components/ui/index.cjs.map +1 -1
  74. package/dist/components/ui/index.js +13 -23
  75. package/dist/embed-shims/index.cjs +3 -3
  76. package/dist/embed-shims/index.cjs.map +1 -1
  77. package/dist/embed-shims/index.js +5 -5
  78. package/dist/index.cjs +17 -11
  79. package/dist/index.cjs.map +1 -1
  80. package/dist/index.js +55 -49
  81. package/dist/types/content-ref.d.ts +35 -0
  82. package/dist/types/content-ref.d.ts.map +1 -0
  83. package/dist/types/index.d.ts +1 -0
  84. package/dist/types/index.d.ts.map +1 -1
  85. package/dist/utils/content-ref-groups.d.ts +58 -0
  86. package/dist/utils/content-ref-groups.d.ts.map +1 -0
  87. package/dist/utils/extract-items.d.ts +18 -0
  88. package/dist/utils/extract-items.d.ts.map +1 -0
  89. package/dist/utils/index.cjs +81 -0
  90. package/dist/utils/index.cjs.map +1 -1
  91. package/dist/utils/index.d.ts +4 -1
  92. package/dist/utils/index.d.ts.map +1 -1
  93. package/dist/utils/index.js +74 -1
  94. package/dist/utils/index.js.map +1 -1
  95. package/dist/utils/list-url.d.ts +6 -0
  96. package/dist/utils/list-url.d.ts.map +1 -1
  97. package/dist/utils/suggestion-url.d.ts +26 -0
  98. package/dist/utils/suggestion-url.d.ts.map +1 -0
  99. package/package.json +7 -1
  100. package/src/components/chat/chat-message-list.tsx +49 -74
  101. package/src/components/chat/hooks/use-chat-card-item.ts +3 -38
  102. package/src/components/chat/types/entities/content-ref.ts +5 -21
  103. package/src/components/chat/utils/index.ts +0 -12
  104. package/src/components/faq/faq-section.tsx +69 -24
  105. package/src/components/features/policy-configuration-panel.tsx +0 -1
  106. package/src/components/index.ts +1 -0
  107. package/src/components/related-content/index.ts +9 -0
  108. package/src/components/related-content/related-content-section.tsx +630 -0
  109. package/src/types/content-ref.ts +34 -0
  110. package/src/types/index.ts +1 -0
  111. package/src/utils/content-ref-groups.ts +89 -0
  112. package/src/utils/extract-items.ts +48 -0
  113. package/src/utils/index.ts +16 -1
  114. package/src/utils/list-url.ts +9 -0
  115. package/src/utils/suggestion-url.ts +39 -0
  116. package/dist/chunk-APGMNHPY.js.map +0 -1
  117. package/dist/chunk-DV3YZWGN.cjs.map +0 -1
  118. package/dist/chunk-EPXROXYC.cjs.map +0 -1
  119. package/dist/chunk-FSS2MIEA.cjs.map +0 -1
  120. package/dist/chunk-LJGBFD52.js.map +0 -1
  121. package/dist/chunk-M7DPUWAL.js.map +0 -1
  122. package/dist/components/chat/utils/history-merge.d.ts +0 -92
  123. package/dist/components/chat/utils/history-merge.d.ts.map +0 -1
  124. package/src/components/chat/__tests__/chat-message-list.test.tsx +0 -92
  125. package/src/components/chat/utils/__tests__/history-merge.test.ts +0 -339
  126. package/src/components/chat/utils/history-merge.ts +0 -255
  127. /package/dist/{chunk-ORJREQ2W.js.map → chunk-4XLJWX2N.js.map} +0 -0
  128. /package/dist/{chunk-P5C732SC.js.map → chunk-7ZHFCEJH.js.map} +0 -0
  129. /package/dist/{chunk-PTSAF7T2.js.map → chunk-JJV3XGCY.js.map} +0 -0
  130. /package/dist/{chunk-NKGNRFSS.js.map → chunk-SEVJT2HP.js.map} +0 -0
  131. /package/dist/{chunk-WD2MZVJI.js.map → chunk-V35PZSUA.js.map} +0 -0
@@ -2,13 +2,10 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkMEAR2WHScjs = require('./chunk-MEAR2WHS.cjs');
6
5
 
7
6
 
8
- var _chunkXL4V2PYGcjs = require('./chunk-XL4V2PYG.cjs');
9
7
 
10
8
 
11
- var _chunkBZFW3FOFcjs = require('./chunk-BZFW3FOF.cjs');
12
9
 
13
10
 
14
11
 
@@ -21,20 +18,23 @@ var _chunkBZFW3FOFcjs = require('./chunk-BZFW3FOF.cjs');
21
18
 
22
19
 
23
20
 
21
+ var _chunk27VVOBDBcjs = require('./chunk-27VVOBDB.cjs');
24
22
 
25
23
 
26
24
 
25
+ var _chunkMEAR2WHScjs = require('./chunk-MEAR2WHS.cjs');
27
26
 
28
- var _chunkGRTZ23GLcjs = require('./chunk-GRTZ23GL.cjs');
29
27
 
28
+ var _chunkXL4V2PYGcjs = require('./chunk-XL4V2PYG.cjs');
30
29
 
31
30
 
32
- var _chunkWBR7H6E3cjs = require('./chunk-WBR7H6E3.cjs');
31
+ var _chunkBZFW3FOFcjs = require('./chunk-BZFW3FOF.cjs');
33
32
 
34
33
 
35
34
 
36
35
 
37
36
 
37
+ var _chunkG7UE6RKVcjs = require('./chunk-G7UE6RKV.cjs');
38
38
 
39
39
 
40
40
 
@@ -49,13 +49,13 @@ var _chunkWBR7H6E3cjs = require('./chunk-WBR7H6E3.cjs');
49
49
 
50
50
 
51
51
 
52
- var _chunk27VVOBDBcjs = require('./chunk-27VVOBDB.cjs');
53
52
 
54
53
 
54
+ var _chunkGRTZ23GLcjs = require('./chunk-GRTZ23GL.cjs');
55
55
 
56
56
 
57
57
 
58
- var _chunkG7UE6RKVcjs = require('./chunk-G7UE6RKV.cjs');
58
+ var _chunkWBR7H6E3cjs = require('./chunk-WBR7H6E3.cjs');
59
59
 
60
60
 
61
61
 
@@ -4397,15 +4397,12 @@ var ChatMessageList = _react.forwardRef.call(void 0,
4397
4397
  onLoadMoreRef.current = onLoadMore;
4398
4398
  const isFetchingRef = _react.useRef.call(void 0, isFetchingNextPage);
4399
4399
  isFetchingRef.current = isFetchingNextPage;
4400
- const dialogIdRef = _react.useRef.call(void 0, dialogId);
4401
- dialogIdRef.current = dialogId;
4402
4400
  const prevRenderRef = _react.useRef.call(void 0, { dialogId: void 0, messageCount: 0, lastMessageId: void 0 });
4403
- const loadOlderAnchorRef = _react.useRef.call(void 0, null);
4401
+ const prependRef = _react.useRef.call(void 0, { firstMessageId: void 0, firstMessageContent: void 0, scrollHeight: 0 });
4404
4402
  _react.useEffect.call(void 0, () => {
4405
4403
  if (!autoScroll) return;
4406
4404
  const dialogChanged = dialogId !== prevRenderRef.current.dialogId;
4407
4405
  const prevCount = prevRenderRef.current.messageCount;
4408
- const prevLastId = prevRenderRef.current.lastMessageId;
4409
4406
  const newCount = messages.length;
4410
4407
  const currentLastId = _optionalChain([messages, 'access', _63 => _63[messages.length - 1], 'optionalAccess', _64 => _64.id]);
4411
4408
  prevRenderRef.current = { dialogId, messageCount: newCount, lastMessageId: currentLastId };
@@ -4418,8 +4415,7 @@ var ChatMessageList = _react.forwardRef.call(void 0,
4418
4415
  return;
4419
4416
  }
4420
4417
  if (newCount > prevCount) {
4421
- const prevLastIdx = prevLastId ? messages.findIndex((m) => m.id === prevLastId) : -1;
4422
- const newSlice = prevLastIdx >= 0 ? messages.slice(prevLastIdx + 1) : messages.slice(prevCount);
4418
+ const newSlice = messages.slice(prevCount);
4423
4419
  const hasNewUser = newSlice.some((m) => m.role === "user");
4424
4420
  if (hasNewUser) {
4425
4421
  void scrollToBottom({ animation: "instant", ignoreEscapes: true });
@@ -4443,17 +4439,34 @@ var ChatMessageList = _react.forwardRef.call(void 0,
4443
4439
  }, [autoScroll, messages, dialogId, scrollToBottom, contentRef]);
4444
4440
  _react.useLayoutEffect.call(void 0, () => {
4445
4441
  const el = scrollRef.current;
4446
- const anchor = loadOlderAnchorRef.current;
4447
- if (!el || !anchor) return;
4448
- if (anchor.dialogId !== dialogId) {
4449
- loadOlderAnchorRef.current = null;
4442
+ if (!el) {
4443
+ prependRef.current = { firstMessageId: void 0, firstMessageContent: void 0, scrollHeight: 0 };
4444
+ return;
4445
+ }
4446
+ const currentFirstId = _optionalChain([messages, 'access', _65 => _65[0], 'optionalAccess', _66 => _66.id]);
4447
+ const currentFirstContent = _optionalChain([messages, 'access', _67 => _67[0], 'optionalAccess', _68 => _68.content]);
4448
+ const prevFirstId = prependRef.current.firstMessageId;
4449
+ const prevHeight = prependRef.current.scrollHeight;
4450
+ if (currentFirstId !== prevFirstId) {
4451
+ if (prevFirstId && prevHeight > 0) {
4452
+ const prevIdx = messages.findIndex((m) => m.id === prevFirstId);
4453
+ if (prevIdx > 0) {
4454
+ const addedHeight = el.scrollHeight - prevHeight;
4455
+ if (addedHeight > 0) el.scrollTop += addedHeight;
4456
+ }
4457
+ }
4458
+ prependRef.current = {
4459
+ firstMessageId: currentFirstId,
4460
+ firstMessageContent: currentFirstContent,
4461
+ scrollHeight: el.scrollHeight
4462
+ };
4450
4463
  return;
4451
4464
  }
4452
- const addedHeight = el.scrollHeight - anchor.scrollHeight;
4453
- if (addedHeight <= 0) return;
4454
- loadOlderAnchorRef.current = null;
4455
- el.scrollTop = anchor.scrollTop + addedHeight;
4456
- }, [messages, dialogId, scrollRef]);
4465
+ prependRef.current.scrollHeight = el.scrollHeight;
4466
+ if (currentFirstContent !== prependRef.current.firstMessageContent) {
4467
+ prependRef.current.firstMessageContent = currentFirstContent;
4468
+ }
4469
+ }, [messages, scrollRef]);
4457
4470
  const messageElsRef = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
4458
4471
  const refCallbacksRef = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
4459
4472
  const getRegisterMessageEl = (id) => {
@@ -4506,7 +4519,7 @@ var ChatMessageList = _react.forwardRef.call(void 0,
4506
4519
  ro.observe(node);
4507
4520
  const timer = setTimeout(() => {
4508
4521
  ro.disconnect();
4509
- if (_optionalChain([anchorWatcherRef, 'access', _65 => _65.current, 'optionalAccess', _66 => _66.id]) === last.id) {
4522
+ if (_optionalChain([anchorWatcherRef, 'access', _69 => _69.current, 'optionalAccess', _70 => _70.id]) === last.id) {
4510
4523
  anchorWatcherRef.current = null;
4511
4524
  }
4512
4525
  }, 2e3);
@@ -4525,22 +4538,14 @@ var ChatMessageList = _react.forwardRef.call(void 0,
4525
4538
  const entry = entries[0];
4526
4539
  if (!entry) return;
4527
4540
  if (entry.isIntersecting && !isFetchingRef.current) {
4528
- const el = scrollRef.current;
4529
- if (el) {
4530
- loadOlderAnchorRef.current = {
4531
- dialogId: dialogIdRef.current,
4532
- scrollHeight: el.scrollHeight,
4533
- scrollTop: el.scrollTop
4534
- };
4535
- }
4536
- _optionalChain([onLoadMoreRef, 'access', _67 => _67.current, 'optionalCall', _68 => _68()]);
4541
+ _optionalChain([onLoadMoreRef, 'access', _71 => _71.current, 'optionalCall', _72 => _72()]);
4537
4542
  }
4538
4543
  },
4539
4544
  { root: scrollContainer, rootMargin: "200px", threshold: 0.1 }
4540
4545
  );
4541
4546
  observer.observe(sentinelElement);
4542
4547
  return () => observer.disconnect();
4543
- }, [hasNextPage, isFetchingNextPage, scrollRef]);
4548
+ }, [hasNextPage, scrollRef]);
4544
4549
  _react.useImperativeHandle.call(void 0, ref, () => scrollRef.current, [scrollRef]);
4545
4550
  if (isLoading) {
4546
4551
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -4561,8 +4566,8 @@ var ChatMessageList = _react.forwardRef.call(void 0,
4561
4566
  contentRef(el);
4562
4567
  };
4563
4568
  const lastMessage = messages[messages.length - 1];
4564
- const lastSegments = Array.isArray(_optionalChain([lastMessage, 'optionalAccess', _69 => _69.content])) ? lastMessage.content : null;
4565
- const lastSegment = _optionalChain([lastSegments, 'optionalAccess', _70 => _70[lastSegments.length - 1]]);
4569
+ const lastSegments = Array.isArray(_optionalChain([lastMessage, 'optionalAccess', _73 => _73.content])) ? lastMessage.content : null;
4570
+ const lastSegment = _optionalChain([lastSegments, 'optionalAccess', _74 => _74[lastSegments.length - 1]]);
4566
4571
  const isPausedOnApproval = !!lastSegment && (lastSegment.type === "approval_request" || lastSegment.type === "approval_batch") && (lastSegment.status === void 0 || lastSegment.status === "pending");
4567
4572
  const showStreamingLoader = isTyping && !isPausedOnApproval && !(pendingApprovals && pendingApprovals.length > 0);
4568
4573
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex-1 min-h-0 flex flex-col", children: [
@@ -4661,9 +4666,9 @@ ChatMessageList.displayName = "ChatMessageList";
4661
4666
  // src/utils/image-proxy.ts
4662
4667
  function getProxiedImageUrl(imageUrl, options) {
4663
4668
  if (!imageUrl) return null;
4664
- const proxyPrefix = _optionalChain([options, 'optionalAccess', _71 => _71.proxyPrefix]);
4665
- const skipDomains = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _72 => _72.skipDomains]), () => ( []));
4666
- const directHttps = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _73 => _73.directHttps]), () => ( false));
4669
+ const proxyPrefix = _optionalChain([options, 'optionalAccess', _75 => _75.proxyPrefix]);
4670
+ const skipDomains = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _76 => _76.skipDomains]), () => ( []));
4671
+ const directHttps = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _77 => _77.directHttps]), () => ( false));
4667
4672
  if (proxyPrefix && imageUrl.includes(proxyPrefix)) {
4668
4673
  return imageUrl;
4669
4674
  }
@@ -4829,7 +4834,7 @@ var ChatTicketItem = React11.forwardRef(
4829
4834
  {
4830
4835
  ref,
4831
4836
  type: "button",
4832
- onClick: () => _optionalChain([onClick, 'optionalCall', _74 => _74(ticket.id)]),
4837
+ onClick: () => _optionalChain([onClick, 'optionalCall', _78 => _78(ticket.id)]),
4833
4838
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
4834
4839
  "flex items-center gap-4 w-full h-20 px-4",
4835
4840
  "bg-ods-card border-b border-ods-border",
@@ -5082,11 +5087,11 @@ function MingoChatHistoryRow({
5082
5087
  {
5083
5088
  role: "button",
5084
5089
  tabIndex: 0,
5085
- onClick: () => _optionalChain([onSelect, 'optionalCall', _75 => _75(dialog.id)]),
5090
+ onClick: () => _optionalChain([onSelect, 'optionalCall', _79 => _79(dialog.id)]),
5086
5091
  onKeyDown: (e) => {
5087
5092
  if (e.key === "Enter" || e.key === " ") {
5088
5093
  e.preventDefault();
5089
- _optionalChain([onSelect, 'optionalCall', _76 => _76(dialog.id)]);
5094
+ _optionalChain([onSelect, 'optionalCall', _80 => _80(dialog.id)]);
5090
5095
  }
5091
5096
  },
5092
5097
  className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xsf)] p-[var(--spacing-system-s)] cursor-pointer focus:outline-none focus-visible:bg-ods-bg-hover",
@@ -5219,7 +5224,7 @@ function MingoChatHistory({
5219
5224
  const io = new IntersectionObserver(
5220
5225
  ([entry]) => {
5221
5226
  if (entry.isIntersecting && !isLoadingMoreRef.current) {
5222
- _optionalChain([onLoadMoreRef, 'access', _77 => _77.current, 'optionalCall', _78 => _78()]);
5227
+ _optionalChain([onLoadMoreRef, 'access', _81 => _81.current, 'optionalCall', _82 => _82()]);
5223
5228
  }
5224
5229
  },
5225
5230
  { root, rootMargin: "120px", threshold: 0.1 }
@@ -5721,7 +5726,7 @@ function GuideWelcome({
5721
5726
  "button",
5722
5727
  {
5723
5728
  type: "button",
5724
- onClick: () => _optionalChain([onQuickAction, 'optionalCall', _79 => _79(action)]),
5729
+ onClick: () => _optionalChain([onQuickAction, 'optionalCall', _83 => _83(action)]),
5725
5730
  className: "rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
5726
5731
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Tag, { variant: "outline", label: action.label })
5727
5732
  },
@@ -5736,7 +5741,7 @@ function GuideWelcome({
5736
5741
  items: overflowActions.map((action) => ({
5737
5742
  id: action.id,
5738
5743
  label: action.label,
5739
- onClick: () => _optionalChain([onQuickAction, 'optionalCall', _80 => _80(action)])
5744
+ onClick: () => _optionalChain([onQuickAction, 'optionalCall', _84 => _84(action)])
5740
5745
  }))
5741
5746
  }],
5742
5747
  customTrigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -6066,7 +6071,7 @@ function ChatDialogModals({
6066
6071
  RenameChatModal,
6067
6072
  {
6068
6073
  isOpen: renameTarget != null,
6069
- initialName: _nullishCoalesce(_optionalChain([renameTarget, 'optionalAccess', _81 => _81.title]), () => ( "")),
6074
+ initialName: _nullishCoalesce(_optionalChain([renameTarget, 'optionalAccess', _85 => _85.title]), () => ( "")),
6070
6075
  onClose: () => setRenameTarget(null),
6071
6076
  onSave: onConfirmRename
6072
6077
  }
@@ -6327,7 +6332,7 @@ function ChatAttachmentAddButton({
6327
6332
  const canAddMore = slotsAvailable > 0 && !disabled;
6328
6333
  const handlePick = () => {
6329
6334
  if (!canAddMore) return;
6330
- _optionalChain([fileInputRef, 'access', _82 => _82.current, 'optionalAccess', _83 => _83.click, 'call', _84 => _84()]);
6335
+ _optionalChain([fileInputRef, 'access', _86 => _86.current, 'optionalAccess', _87 => _87.click, 'call', _88 => _88()]);
6331
6336
  };
6332
6337
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
6333
6338
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -6865,8 +6870,8 @@ ChatSidebarSkeleton.displayName = "ChatSidebarSkeleton";
6865
6870
  var DialogListItem = _react.forwardRef.call(void 0,
6866
6871
  ({ className, dialog, isActive, onDialogSelect, onClick, ...props }, ref) => {
6867
6872
  const handleClick = (e) => {
6868
- _optionalChain([onDialogSelect, 'optionalCall', _85 => _85(dialog.id)]);
6869
- _optionalChain([onClick, 'optionalCall', _86 => _86(e)]);
6873
+ _optionalChain([onDialogSelect, 'optionalCall', _89 => _89(dialog.id)]);
6874
+ _optionalChain([onClick, 'optionalCall', _90 => _90(e)]);
6870
6875
  };
6871
6876
  const formatTimestamp2 = (timestamp) => {
6872
6877
  if (!timestamp) return "";
@@ -6925,7 +6930,7 @@ var ChatSidebar = _react.forwardRef.call(void 0,
6925
6930
  (entries) => {
6926
6931
  const [entry] = entries;
6927
6932
  if (entry.isIntersecting && !isFetchingRef.current) {
6928
- _optionalChain([onLoadMoreRef, 'access', _87 => _87.current, 'optionalCall', _88 => _88()]);
6933
+ _optionalChain([onLoadMoreRef, 'access', _91 => _91.current, 'optionalCall', _92 => _92()]);
6929
6934
  }
6930
6935
  },
6931
6936
  { root: scrollContainer, rootMargin: "100px", threshold: 0.1 }
@@ -7032,7 +7037,7 @@ function decideNewTab(input) {
7032
7037
  function computeIsNewTab(runtime, href, targetPlatform) {
7033
7038
  if (!href) return false;
7034
7039
  if (runtime.navigation.mode === "embed") return true;
7035
- return _nullishCoalesce(_optionalChain([runtime, 'access', _89 => _89.navigation, 'access', _90 => _90.decideNewTab, 'optionalCall', _91 => _91({ href, targetPlatform })]), () => ( decideNewTab({
7040
+ return _nullishCoalesce(_optionalChain([runtime, 'access', _93 => _93.navigation, 'access', _94 => _94.decideNewTab, 'optionalCall', _95 => _95({ href, targetPlatform })]), () => ( decideNewTab({
7036
7041
  href,
7037
7042
  targetPlatform,
7038
7043
  currentSource: _nullishCoalesce(runtime.source, () => ( ""))
@@ -7096,11 +7101,11 @@ function resolveExternalNavigation(args) {
7096
7101
  function runNavigation(runtime, href, path, targetPlatform, fallbackNavigate) {
7097
7102
  const isNewTab = runtime ? computeIsNewTab(runtime, href, _nullishCoalesce(targetPlatform, () => ( null))) : false;
7098
7103
  if (isNewTab) {
7099
- if (_optionalChain([runtime, 'optionalAccess', _92 => _92.navigation, 'access', _93 => _93.openExternal])) runtime.navigation.openExternal(href);
7104
+ if (_optionalChain([runtime, 'optionalAccess', _96 => _96.navigation, 'access', _97 => _97.openExternal])) runtime.navigation.openExternal(href);
7100
7105
  else window.open(href, "_blank", NEW_TAB_FEATURES);
7101
7106
  return;
7102
7107
  }
7103
- const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _94 => _94.navigation, 'access', _95 => _95.navigate, 'optionalCall', _96 => _96({ href, path, targetPlatform })]), () => ( false));
7108
+ const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _98 => _98.navigation, 'access', _99 => _99.navigate, 'optionalCall', _100 => _100({ href, path, targetPlatform })]), () => ( false));
7104
7109
  if (!handled) {
7105
7110
  const target = stripSameOriginToPath(href);
7106
7111
  if (fallbackNavigate) fallbackNavigate(target);
@@ -7166,7 +7171,7 @@ function NavLinkAnchorViaRuntime({
7166
7171
  path,
7167
7172
  targetPlatform
7168
7173
  }, router.push);
7169
- if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _97 => _97.closeChat])) panel.closeChat();
7174
+ if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _101 => _101.closeChat])) panel.closeChat();
7170
7175
  };
7171
7176
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
7172
7177
  "a",
@@ -7287,7 +7292,7 @@ function EntityAuthorCard({
7287
7292
  renderEmptyAuthor = false,
7288
7293
  className
7289
7294
  }) {
7290
- const hasAuthor = !!_optionalChain([author, 'optionalAccess', _98 => _98.full_name]);
7295
+ const hasAuthor = !!_optionalChain([author, 'optionalAccess', _102 => _102.full_name]);
7291
7296
  if (!hasAuthor && !renderEmptyAuthor) return null;
7292
7297
  const effectiveAuthor = hasAuthor ? author : EMPTY_AUTHOR_PLACEHOLDER;
7293
7298
  const formatted = publishedAt ? formatDate(publishedAt) : "";
@@ -7623,8 +7628,8 @@ function AdminContentCard({
7623
7628
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "font-['DM_Sans'] font-bold text-ods-text-primary text-[18px] leading-snug line-clamp-2 break-words", children: title }),
7624
7629
  subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] text-ods-text-secondary truncate", children: subtitle }),
7625
7630
  summary && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] leading-relaxed text-ods-text-secondary line-clamp-2", children: summary }),
7626
- (Number(_optionalChain([platforms, 'optionalAccess', _99 => _99.length])) > 0 || badges) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 flex-wrap", children: [
7627
- _optionalChain([platforms, 'optionalAccess', _100 => _100.map, 'call', _101 => _101((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
7631
+ (Number(_optionalChain([platforms, 'optionalAccess', _103 => _103.length])) > 0 || badges) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 flex-wrap", children: [
7632
+ _optionalChain([platforms, 'optionalAccess', _104 => _104.map, 'call', _105 => _105((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
7628
7633
  PlatformBadge,
7629
7634
  {
7630
7635
  platform: { id: p.id || p.platform_id || "", name: p.name, display_name: p.display_name || p.name },
@@ -7700,7 +7705,7 @@ function fetchPriorityProp(priority) {
7700
7705
 
7701
7706
  if (typeof window !== "undefined") {
7702
7707
  const w = window;
7703
- if (!_optionalChain([w, 'access', _102 => _102.chrome, 'optionalAccess', _103 => _103.cast])) {
7708
+ if (!_optionalChain([w, 'access', _106 => _106.chrome, 'optionalAccess', _107 => _107.cast])) {
7704
7709
  w.chrome = { ..._nullishCoalesce(w.chrome, () => ( {})), cast: { isAvailable: false } };
7705
7710
  }
7706
7711
  }
@@ -7890,7 +7895,7 @@ function YouTubeFacadeInner({
7890
7895
  const iframe = iframeRef.current;
7891
7896
  if (!iframe) return;
7892
7897
  function subscribe() {
7893
- _optionalChain([iframe, 'optionalAccess', _104 => _104.contentWindow, 'optionalAccess', _105 => _105.postMessage, 'call', _106 => _106(
7898
+ _optionalChain([iframe, 'optionalAccess', _108 => _108.contentWindow, 'optionalAccess', _109 => _109.postMessage, 'call', _110 => _110(
7894
7899
  '{"event":"listening"}',
7895
7900
  YT_NOCOOKIE_ORIGIN
7896
7901
  )]);
@@ -7908,13 +7913,13 @@ function YouTubeFacadeInner({
7908
7913
  return;
7909
7914
  }
7910
7915
  if (!payload || payload.event !== "infoDelivery") return;
7911
- const state = _optionalChain([payload, 'access', _107 => _107.info, 'optionalAccess', _108 => _108.playerState]);
7916
+ const state = _optionalChain([payload, 'access', _111 => _111.info, 'optionalAccess', _112 => _112.playerState]);
7912
7917
  if (typeof state !== "number") return;
7913
7918
  if (state === YT_STATE_PLAYING) {
7914
7919
  if (blurTimer !== null) return;
7915
7920
  blurTimer = setTimeout(() => {
7916
7921
  blurTimer = null;
7917
- _optionalChain([iframeRef, 'access', _109 => _109.current, 'optionalAccess', _110 => _110.blur, 'call', _111 => _111()]);
7922
+ _optionalChain([iframeRef, 'access', _113 => _113.current, 'optionalAccess', _114 => _114.blur, 'call', _115 => _115()]);
7918
7923
  }, YT_PLAYING_BLUR_DELAY_MS);
7919
7924
  return;
7920
7925
  }
@@ -8499,7 +8504,7 @@ function ProductReleaseCard({
8499
8504
  changelogCounts
8500
8505
  }) {
8501
8506
  if (size === "lg") {
8502
- const totalChangelog = (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _112 => _112.features]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _113 => _113.fixes]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _114 => _114.improvements]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _115 => _115.breaking]), () => ( 0)));
8507
+ const totalChangelog = (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _116 => _116.features]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _117 => _117.fixes]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _118 => _118.improvements]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _119 => _119.breaking]), () => ( 0)));
8503
8508
  const valueCells = [
8504
8509
  releaseType && releaseTypeBadgeColor ? {
8505
8510
  value: releaseType.toUpperCase(),
@@ -8518,7 +8523,7 @@ function ProductReleaseCard({
8518
8523
  uppercase: false
8519
8524
  } : { value: "\u2014", label: "Released", uppercase: false }
8520
8525
  ];
8521
- const effectiveAuthor = _optionalChain([author, 'optionalAccess', _116 => _116.full_name]) ? author : { full_name: "\u2014", avatar_url: null, job_title: "Unknown" };
8526
+ const effectiveAuthor = _optionalChain([author, 'optionalAccess', _120 => _120.full_name]) ? author : { full_name: "\u2014", avatar_url: null, job_title: "Unknown" };
8522
8527
  const gridColsClass = "md:grid-cols-4";
8523
8528
  const dividerClass = "border-b md:border-b-0 md:border-r border-ods-border";
8524
8529
  const frameClass = _chunkFIG2RKZFcjs.cn.call(void 0,
@@ -8931,10 +8936,10 @@ function buildProductReleaseCardProps(item) {
8931
8936
  job_title: release.author.job_title
8932
8937
  } : void 0,
8933
8938
  changelogCounts: {
8934
- features: _nullishCoalesce(_optionalChain([release, 'access', _117 => _117.features_added, 'optionalAccess', _118 => _118.length]), () => ( 0)),
8935
- fixes: _nullishCoalesce(_optionalChain([release, 'access', _119 => _119.bugs_fixed, 'optionalAccess', _120 => _120.length]), () => ( 0)),
8936
- improvements: _nullishCoalesce(_optionalChain([release, 'access', _121 => _121.improvements, 'optionalAccess', _122 => _122.length]), () => ( 0)),
8937
- breaking: _nullishCoalesce(_optionalChain([release, 'access', _123 => _123.breaking_changes, 'optionalAccess', _124 => _124.length]), () => ( 0))
8939
+ features: _nullishCoalesce(_optionalChain([release, 'access', _121 => _121.features_added, 'optionalAccess', _122 => _122.length]), () => ( 0)),
8940
+ fixes: _nullishCoalesce(_optionalChain([release, 'access', _123 => _123.bugs_fixed, 'optionalAccess', _124 => _124.length]), () => ( 0)),
8941
+ improvements: _nullishCoalesce(_optionalChain([release, 'access', _125 => _125.improvements, 'optionalAccess', _126 => _126.length]), () => ( 0)),
8942
+ breaking: _nullishCoalesce(_optionalChain([release, 'access', _127 => _127.breaking_changes, 'optionalAccess', _128 => _128.length]), () => ( 0))
8938
8943
  }
8939
8944
  };
8940
8945
  }
@@ -8972,8 +8977,8 @@ function useEntityCardPlaceholder({
8972
8977
  aspect = "wide"
8973
8978
  }) {
8974
8979
  const runtime = _chunkMEAR2WHScjs.useChatRuntime.call(void 0, );
8975
- const builder = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _125 => _125.resolvePlaceholderUrl]), () => ( NO_OP_BUILDER));
8976
- const enabled = placeholderUrl === void 0 && !!_optionalChain([runtime, 'optionalAccess', _126 => _126.resolvePlaceholderUrl]);
8980
+ const builder = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _129 => _129.resolvePlaceholderUrl]), () => ( NO_OP_BUILDER));
8981
+ const enabled = placeholderUrl === void 0 && !!_optionalChain([runtime, 'optionalAccess', _130 => _130.resolvePlaceholderUrl]);
8977
8982
  const derived = _chunk27VVOBDBcjs.useOgPlaceholder.call(void 0, builder, title, siteName, enabled, aspect);
8978
8983
  return placeholderUrl !== void 0 ? placeholderUrl : derived;
8979
8984
  }
@@ -9066,7 +9071,7 @@ function BlogCard({
9066
9071
  const displayImage = post.featured_image && !imageError ? post.featured_image : placeholderUrl;
9067
9072
  if (size === "sm") {
9068
9073
  const dateStr2 = post.published_at ? new Date(post.published_at).toLocaleDateString("en-US", { year: "numeric", month: "short", day: "numeric" }) : "";
9069
- const firstCategory = _optionalChain([post, 'access', _127 => _127.categories, 'optionalAccess', _128 => _128.find, 'call', _129 => _129((c) => c && c.name), 'optionalAccess', _130 => _130.name]);
9074
+ const firstCategory = _optionalChain([post, 'access', _131 => _131.categories, 'optionalAccess', _132 => _132.find, 'call', _133 => _133((c) => c && c.name), 'optionalAccess', _134 => _134.name]);
9070
9075
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
9071
9076
  "a",
9072
9077
  {
@@ -9272,14 +9277,14 @@ function CaseStudyCard({
9272
9277
  "img",
9273
9278
  {
9274
9279
  src: coverImage,
9275
- alt: `${_optionalChain([study, 'access', _131 => _131.msp, 'optionalAccess', _132 => _132.name]) || study.title} cover`,
9280
+ alt: `${_optionalChain([study, 'access', _135 => _135.msp, 'optionalAccess', _136 => _136.name]) || study.title} cover`,
9276
9281
  className: "absolute inset-0 block w-full h-full object-contain",
9277
9282
  onError: hideOnError
9278
9283
  }
9279
9284
  ) : null }),
9280
9285
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
9281
9286
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: study.title }) }),
9282
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [_optionalChain([study, 'access', _133 => _133.msp, 'optionalAccess', _134 => _134.name]), _optionalChain([study, 'access', _135 => _135.user, 'optionalAccess', _136 => _136.full_name])].filter(Boolean).join(" \xB7 ") || "Case study" }) }),
9287
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [_optionalChain([study, 'access', _137 => _137.msp, 'optionalAccess', _138 => _138.name]), _optionalChain([study, 'access', _139 => _139.user, 'optionalAccess', _140 => _140.full_name])].filter(Boolean).join(" \xB7 ") || "Case study" }) }),
9283
9288
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: study.summary || COMPACT_CARD_ROW_FILLER }) })
9284
9289
  ] })
9285
9290
  ] });
@@ -9289,7 +9294,7 @@ function CaseStudyCard({
9289
9294
  _chunkXL4V2PYGcjs.next_image_default,
9290
9295
  {
9291
9296
  src: coverImage,
9292
- alt: _optionalChain([study, 'access', _137 => _137.msp, 'optionalAccess', _138 => _138.name]) || study.title,
9297
+ alt: _optionalChain([study, 'access', _141 => _141.msp, 'optionalAccess', _142 => _142.name]) || study.title,
9293
9298
  className: "w-full h-full object-cover",
9294
9299
  sizes: "(min-width: 1545px) 515px, (min-width: 1280px) 33vw, (min-width: 800px) 50vw, 100vw",
9295
9300
  fill: true,
@@ -9300,18 +9305,18 @@ function CaseStudyCard({
9300
9305
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[72px] flex items-center shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-primary line-clamp-3 break-words", children: study.title }) }),
9301
9306
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[60px] flex items-center shrink-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 min-w-0 w-full", children: [
9302
9307
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative shrink-0 w-12 h-12", children: [
9303
- _optionalChain([study, 'access', _139 => _139.user, 'optionalAccess', _140 => _140.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9308
+ _optionalChain([study, 'access', _143 => _143.user, 'optionalAccess', _144 => _144.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9304
9309
  _chunkXL4V2PYGcjs.next_image_default,
9305
9310
  {
9306
9311
  src: study.user.avatar_url,
9307
- alt: _optionalChain([study, 'access', _141 => _141.user, 'optionalAccess', _142 => _142.full_name]) || "User",
9312
+ alt: _optionalChain([study, 'access', _145 => _145.user, 'optionalAccess', _146 => _146.full_name]) || "User",
9308
9313
  className: "w-12 h-12 rounded-full object-cover bg-ods-background border border-ods-border",
9309
9314
  width: 48,
9310
9315
  height: 48,
9311
9316
  unoptimized: true
9312
9317
  }
9313
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-12 h-12 rounded-full bg-ods-background border border-ods-border flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary font-medium text-xl", children: (_optionalChain([study, 'access', _143 => _143.user, 'optionalAccess', _144 => _144.full_name]) || "A").charAt(0).toUpperCase() }) }),
9314
- _optionalChain([study, 'access', _145 => _145.msp, 'optionalAccess', _146 => _146.icon_url]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute -bottom-1 -right-1 w-6 h-6 rounded-full bg-ods-text-primary ring-1 ring-ods-bg overflow-hidden flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9318
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-12 h-12 rounded-full bg-ods-background border border-ods-border flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary font-medium text-xl", children: (_optionalChain([study, 'access', _147 => _147.user, 'optionalAccess', _148 => _148.full_name]) || "A").charAt(0).toUpperCase() }) }),
9319
+ _optionalChain([study, 'access', _149 => _149.msp, 'optionalAccess', _150 => _150.icon_url]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute -bottom-1 -right-1 w-6 h-6 rounded-full bg-ods-text-primary ring-1 ring-ods-bg overflow-hidden flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9315
9320
  _chunkXL4V2PYGcjs.next_image_default,
9316
9321
  {
9317
9322
  src: study.msp.icon_url,
@@ -9325,13 +9330,13 @@ function CaseStudyCard({
9325
9330
  ] }),
9326
9331
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
9327
9332
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "font-['DM_Sans'] text-[16px] leading-[1.3] text-ods-text-primary truncate", children: [
9328
- _optionalChain([study, 'access', _147 => _147.user, 'optionalAccess', _148 => _148.full_name]) || "Anonymous",
9329
- _optionalChain([study, 'access', _149 => _149.msp, 'optionalAccess', _150 => _150.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
9333
+ _optionalChain([study, 'access', _151 => _151.user, 'optionalAccess', _152 => _152.full_name]) || "Anonymous",
9334
+ _optionalChain([study, 'access', _153 => _153.msp, 'optionalAccess', _154 => _154.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
9330
9335
  " \u2022 ",
9331
9336
  study.msp.name
9332
9337
  ] })
9333
9338
  ] }),
9334
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] leading-none text-ods-text-secondary truncate", children: _optionalChain([study, 'access', _151 => _151.user, 'optionalAccess', _152 => _152.job_title]) || "\xA0" })
9339
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] leading-none text-ods-text-secondary truncate", children: _optionalChain([study, 'access', _155 => _155.user, 'optionalAccess', _156 => _156.job_title]) || "\xA0" })
9335
9340
  ] })
9336
9341
  ] }) })
9337
9342
  ] }) });
@@ -9414,7 +9419,7 @@ function CustomerInterviewCard({
9414
9419
  ] }),
9415
9420
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
9416
9421
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: interview.title }) }),
9417
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [_optionalChain([interview, 'access', _153 => _153.user, 'optionalAccess', _154 => _154.full_name]), _optionalChain([interview, 'access', _155 => _155.msp, 'optionalAccess', _156 => _156.name])].filter(Boolean).join(" \xB7 ") || "Customer interview" }) }),
9422
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUBTITLE, children: [_optionalChain([interview, 'access', _157 => _157.user, 'optionalAccess', _158 => _158.full_name]), _optionalChain([interview, 'access', _159 => _159.msp, 'optionalAccess', _160 => _160.name])].filter(Boolean).join(" \xB7 ") || "Customer interview" }) }),
9418
9423
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: interview.video_summary || COMPACT_CARD_ROW_FILLER }) })
9419
9424
  ] })
9420
9425
  ] });
@@ -9436,15 +9441,15 @@ function CustomerInterviewCard({
9436
9441
  interview.video_summary && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] leading-[20px] text-ods-text-secondary line-clamp-3", children: interview.video_summary }) }),
9437
9442
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[60px] flex items-center shrink-0 mt-auto", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 min-w-0 w-full", children: [
9438
9443
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative shrink-0 w-12 h-12", children: [
9439
- _optionalChain([interview, 'access', _157 => _157.user, 'optionalAccess', _158 => _158.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9444
+ _optionalChain([interview, 'access', _161 => _161.user, 'optionalAccess', _162 => _162.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9440
9445
  "img",
9441
9446
  {
9442
9447
  src: interview.user.avatar_url,
9443
- alt: _optionalChain([interview, 'access', _159 => _159.user, 'optionalAccess', _160 => _160.full_name]) || "Customer",
9448
+ alt: _optionalChain([interview, 'access', _163 => _163.user, 'optionalAccess', _164 => _164.full_name]) || "Customer",
9444
9449
  className: "w-12 h-12 rounded-full object-cover bg-ods-background border border-ods-border"
9445
9450
  }
9446
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-12 h-12 rounded-full bg-ods-background border border-ods-border flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary font-medium text-xl", children: (_optionalChain([interview, 'access', _161 => _161.user, 'optionalAccess', _162 => _162.full_name]) || "A").charAt(0).toUpperCase() }) }),
9447
- _optionalChain([interview, 'access', _163 => _163.msp, 'optionalAccess', _164 => _164.icon_url]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute -bottom-1 -right-1 w-6 h-6 rounded-full bg-ods-text-primary ring-1 ring-ods-bg overflow-hidden flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9451
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-12 h-12 rounded-full bg-ods-background border border-ods-border flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary font-medium text-xl", children: (_optionalChain([interview, 'access', _165 => _165.user, 'optionalAccess', _166 => _166.full_name]) || "A").charAt(0).toUpperCase() }) }),
9452
+ _optionalChain([interview, 'access', _167 => _167.msp, 'optionalAccess', _168 => _168.icon_url]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute -bottom-1 -right-1 w-6 h-6 rounded-full bg-ods-text-primary ring-1 ring-ods-bg overflow-hidden flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9448
9453
  "img",
9449
9454
  {
9450
9455
  src: interview.msp.icon_url,
@@ -9455,13 +9460,13 @@ function CustomerInterviewCard({
9455
9460
  ] }),
9456
9461
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
9457
9462
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "font-['DM_Sans'] text-[16px] leading-[1.3] text-ods-text-primary truncate", children: [
9458
- _optionalChain([interview, 'access', _165 => _165.user, 'optionalAccess', _166 => _166.full_name]) || "Anonymous",
9459
- _optionalChain([interview, 'access', _167 => _167.msp, 'optionalAccess', _168 => _168.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
9463
+ _optionalChain([interview, 'access', _169 => _169.user, 'optionalAccess', _170 => _170.full_name]) || "Anonymous",
9464
+ _optionalChain([interview, 'access', _171 => _171.msp, 'optionalAccess', _172 => _172.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
9460
9465
  " \u2022 ",
9461
9466
  interview.msp.name
9462
9467
  ] })
9463
9468
  ] }),
9464
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] leading-none text-ods-text-secondary truncate", children: _optionalChain([interview, 'access', _169 => _169.user, 'optionalAccess', _170 => _170.job_title]) || " " })
9469
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] leading-none text-ods-text-secondary truncate", children: _optionalChain([interview, 'access', _173 => _173.user, 'optionalAccess', _174 => _174.job_title]) || " " })
9465
9470
  ] })
9466
9471
  ] }) })
9467
9472
  ] }) });
@@ -9474,7 +9479,7 @@ function CustomerInterviewCard({
9474
9479
  function formatInvestorUpdatePeriod(start, end, options) {
9475
9480
  if (!start && !end) return "";
9476
9481
  const fmt = (d) => new Date(d).toLocaleDateString("en-US", {
9477
- month: _optionalChain([options, 'optionalAccess', _171 => _171.monthFormat]) || "short",
9482
+ month: _optionalChain([options, 'optionalAccess', _175 => _175.monthFormat]) || "short",
9478
9483
  year: "numeric"
9479
9484
  });
9480
9485
  const s = start ? fmt(start) : "?";
@@ -9564,7 +9569,7 @@ function InvestorUpdateCard({
9564
9569
  imageUrl: update.featured_image,
9565
9570
  placeholderUrl,
9566
9571
  title: update.title || `Update #${update.update_number || "?"}`,
9567
- summary: _optionalChain([update, 'access', _172 => _172.strategic_update, 'optionalAccess', _173 => _173.slice, 'call', _174 => _174(0, 120)]) || _optionalChain([update, 'access', _175 => _175.content, 'optionalAccess', _176 => _176.slice, 'call', _177 => _177(0, 120)]) || "No description",
9572
+ summary: _optionalChain([update, 'access', _176 => _176.strategic_update, 'optionalAccess', _177 => _177.slice, 'call', _178 => _178(0, 120)]) || _optionalChain([update, 'access', _179 => _179.content, 'optionalAccess', _180 => _180.slice, 'call', _181 => _181(0, 120)]) || "No description",
9568
9573
  badges: update.update_number ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "px-2 py-0.5 rounded text-xs font-medium bg-ods-accent/10 text-ods-accent", children: [
9569
9574
  "#",
9570
9575
  update.update_number
@@ -9753,7 +9758,7 @@ function OnboardingGuideCard({
9753
9758
  const compactCover = coverImage || placeholderUrl || null;
9754
9759
  const hasVideoCover = !guide.featured_image && !!guide.main_video_thumbnail;
9755
9760
  const summary2 = (guide.video_summary || guide.content || "").trim();
9756
- const author = _optionalChain([guide, 'access', _178 => _178.author, 'optionalAccess', _179 => _179.full_name, 'optionalAccess', _180 => _180.trim, 'call', _181 => _181()]) || "";
9761
+ const author = _optionalChain([guide, 'access', _182 => _182.author, 'optionalAccess', _183 => _183.full_name, 'optionalAccess', _184 => _184.trim, 'call', _185 => _185()]) || "";
9757
9762
  const subtitleParts = [
9758
9763
  `Step ${guide.step_order}`,
9759
9764
  guide.section,
@@ -10124,7 +10129,7 @@ function AutocompleteInner(props, ref) {
10124
10129
  if (!isInputControlled) {
10125
10130
  setInternalInputValue(value);
10126
10131
  }
10127
- _optionalChain([onInputChange, 'optionalCall', _182 => _182(value, reason)]);
10132
+ _optionalChain([onInputChange, 'optionalCall', _186 => _186(value, reason)]);
10128
10133
  };
10129
10134
  const [isOpen, setIsOpen] = _react.useState.call(void 0, false);
10130
10135
  const [highlightedIndex, setHighlightedIndex] = _react.useState.call(void 0, -1);
@@ -10152,8 +10157,8 @@ function AutocompleteInner(props, ref) {
10152
10157
  if (!showHiddenTags) return;
10153
10158
  const handleClick = (e) => {
10154
10159
  const target = e.target;
10155
- const inButton = _optionalChain([hiddenTagsRef, 'access', _183 => _183.current, 'optionalAccess', _184 => _184.contains, 'call', _185 => _185(target)]);
10156
- const inPopup = _optionalChain([hiddenTagsPopupRef, 'access', _186 => _186.current, 'optionalAccess', _187 => _187.contains, 'call', _188 => _188(target)]);
10160
+ const inButton = _optionalChain([hiddenTagsRef, 'access', _187 => _187.current, 'optionalAccess', _188 => _188.contains, 'call', _189 => _189(target)]);
10161
+ const inPopup = _optionalChain([hiddenTagsPopupRef, 'access', _190 => _190.current, 'optionalAccess', _191 => _191.contains, 'call', _192 => _192(target)]);
10157
10162
  if (!inButton && !inPopup) {
10158
10163
  setShowHiddenTags(false);
10159
10164
  }
@@ -10197,7 +10202,7 @@ function AutocompleteInner(props, ref) {
10197
10202
  }
10198
10203
  updateInputValue("", "reset");
10199
10204
  setIsOpen(false);
10200
- _optionalChain([onCreateOption, 'optionalCall', _189 => _189(trimmed)]);
10205
+ _optionalChain([onCreateOption, 'optionalCall', _193 => _193(trimmed)]);
10201
10206
  };
10202
10207
  _react.useEffect.call(void 0, () => {
10203
10208
  setHighlightedIndex(-1);
@@ -10221,7 +10226,7 @@ function AutocompleteInner(props, ref) {
10221
10226
  props.onChange([...valueArray, option.value]);
10222
10227
  }
10223
10228
  updateInputValue("", "reset");
10224
- _optionalChain([autoLimitTags, 'access', _190 => _190.inputRef, 'access', _191 => _191.current, 'optionalAccess', _192 => _192.focus, 'call', _193 => _193()]);
10229
+ _optionalChain([autoLimitTags, 'access', _194 => _194.inputRef, 'access', _195 => _195.current, 'optionalAccess', _196 => _196.focus, 'call', _197 => _197()]);
10225
10230
  } else {
10226
10231
  ;
10227
10232
  props.onChange(option.value);
@@ -10242,7 +10247,7 @@ function AutocompleteInner(props, ref) {
10242
10247
  if (!isInputControlled) {
10243
10248
  setInternalInputValue("");
10244
10249
  }
10245
- _optionalChain([onInputChange, 'optionalCall', _194 => _194("", "clear")]);
10250
+ _optionalChain([onInputChange, 'optionalCall', _198 => _198("", "clear")]);
10246
10251
  setIsOpen(false);
10247
10252
  };
10248
10253
  const handleKeyDown = (e) => {
@@ -10316,7 +10321,7 @@ function AutocompleteInner(props, ref) {
10316
10321
  ),
10317
10322
  onClick: () => {
10318
10323
  if (!disabled) {
10319
- _optionalChain([autoLimitTags, 'access', _195 => _195.inputRef, 'access', _196 => _196.current, 'optionalAccess', _197 => _197.focus, 'call', _198 => _198()]);
10324
+ _optionalChain([autoLimitTags, 'access', _199 => _199.inputRef, 'access', _200 => _200.current, 'optionalAccess', _201 => _201.focus, 'call', _202 => _202()]);
10320
10325
  openDropdown();
10321
10326
  }
10322
10327
  },
@@ -10432,10 +10437,10 @@ function AutocompleteInner(props, ref) {
10432
10437
  align: "start",
10433
10438
  onOpenAutoFocus: (e) => {
10434
10439
  e.preventDefault();
10435
- _optionalChain([autoLimitTags, 'access', _199 => _199.inputRef, 'access', _200 => _200.current, 'optionalAccess', _201 => _201.focus, 'call', _202 => _202()]);
10440
+ _optionalChain([autoLimitTags, 'access', _203 => _203.inputRef, 'access', _204 => _204.current, 'optionalAccess', _205 => _205.focus, 'call', _206 => _206()]);
10436
10441
  },
10437
10442
  onInteractOutside: (e) => {
10438
- if (_optionalChain([containerRef, 'access', _203 => _203.current, 'optionalAccess', _204 => _204.contains, 'call', _205 => _205(e.target)])) {
10443
+ if (_optionalChain([containerRef, 'access', _207 => _207.current, 'optionalAccess', _208 => _208.contains, 'call', _209 => _209(e.target)])) {
10439
10444
  e.preventDefault();
10440
10445
  }
10441
10446
  },
@@ -10507,7 +10512,7 @@ function AutocompleteInner(props, ref) {
10507
10512
  items: hiddenTags,
10508
10513
  disabled,
10509
10514
  style: {
10510
- left: autoLimitTags.badgeRef.current ? autoLimitTags.badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _206 => _206.current, 'optionalAccess', _207 => _207.getBoundingClientRect, 'call', _208 => _208(), 'access', _209 => _209.left]), () => ( 0))) : 0
10515
+ left: autoLimitTags.badgeRef.current ? autoLimitTags.badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _210 => _210.current, 'optionalAccess', _211 => _211.getBoundingClientRect, 'call', _212 => _212(), 'access', _213 => _213.left]), () => ( 0))) : 0
10511
10516
  },
10512
10517
  onRemove: (value) => {
10513
10518
  const newValue = valueArray.filter((v) => v !== value);
@@ -10830,7 +10835,7 @@ var defaultFormatDate = (date) => {
10830
10835
  });
10831
10836
  };
10832
10837
  var formatDateRange2 = (range, formatFn) => {
10833
- if (!_optionalChain([range, 'optionalAccess', _210 => _210.from])) return "";
10838
+ if (!_optionalChain([range, 'optionalAccess', _214 => _214.from])) return "";
10834
10839
  if (!range.to) return formatFn(range.from);
10835
10840
  return `${formatFn(range.from)} - ${formatFn(range.to)}`;
10836
10841
  };
@@ -10858,7 +10863,7 @@ function DatePickerCalendar({
10858
10863
  }) {
10859
10864
  const today = /* @__PURE__ */ new Date();
10860
10865
  const rangeSelected = selected;
10861
- const hasCompleteRange = mode === "range" && _optionalChain([rangeSelected, 'optionalAccess', _211 => _211.from]) && _optionalChain([rangeSelected, 'optionalAccess', _212 => _212.to]) && rangeSelected.from.getTime() !== rangeSelected.to.getTime();
10866
+ const hasCompleteRange = mode === "range" && _optionalChain([rangeSelected, 'optionalAccess', _215 => _215.from]) && _optionalChain([rangeSelected, 'optionalAccess', _216 => _216.to]) && rangeSelected.from.getTime() !== rangeSelected.to.getTime();
10862
10867
  const classNames = {
10863
10868
  root: "p-4 date-picker-calendar",
10864
10869
  months: "flex gap-8",
@@ -10909,7 +10914,7 @@ function DatePickerCalendar({
10909
10914
  range_middle: "range-middle !bg-[var(--ods-open-yellow-light)] !text-ods-card !font-medium !rounded-none hover:!bg-[var(--ods-open-yellow-light)]"
10910
10915
  };
10911
10916
  const [month, setMonth] = React37.useState(
10912
- mode === "single" ? selected || today : _optionalChain([selected, 'optionalAccess', _213 => _213.from]) || today
10917
+ mode === "single" ? selected || today : _optionalChain([selected, 'optionalAccess', _217 => _217.from]) || today
10913
10918
  );
10914
10919
  const handlePreviousMonth = () => {
10915
10920
  setMonth((prev) => {
@@ -11128,14 +11133,14 @@ function DatePicker(props) {
11128
11133
  }, [props.mode, props.value, formatDate2]);
11129
11134
  const handleSelect = (value) => {
11130
11135
  if (props.mode === "single") {
11131
- _optionalChain([props, 'access', _214 => _214.onChange, 'optionalCall', _215 => _215(value)]);
11136
+ _optionalChain([props, 'access', _218 => _218.onChange, 'optionalCall', _219 => _219(value)]);
11132
11137
  if (value) {
11133
11138
  setOpen(false);
11134
11139
  }
11135
11140
  } else {
11136
11141
  const range = value;
11137
- _optionalChain([props, 'access', _216 => _216.onChange, 'optionalCall', _217 => _217(range)]);
11138
- if (_optionalChain([range, 'optionalAccess', _218 => _218.from]) && _optionalChain([range, 'optionalAccess', _219 => _219.to]) && range.from.getTime() !== range.to.getTime()) {
11142
+ _optionalChain([props, 'access', _220 => _220.onChange, 'optionalCall', _221 => _221(range)]);
11143
+ if (_optionalChain([range, 'optionalAccess', _222 => _222.from]) && _optionalChain([range, 'optionalAccess', _223 => _223.to]) && range.from.getTime() !== range.to.getTime()) {
11139
11144
  setOpen(false);
11140
11145
  }
11141
11146
  }
@@ -11242,7 +11247,7 @@ function DatePickerInput({
11242
11247
  if (newDate && value) {
11243
11248
  newDate.setHours(value.getHours(), value.getMinutes(), 0, 0);
11244
11249
  }
11245
- _optionalChain([onChange, 'optionalCall', _220 => _220(newDate)]);
11250
+ _optionalChain([onChange, 'optionalCall', _224 => _224(newDate)]);
11246
11251
  if (newDate) {
11247
11252
  setOpen(false);
11248
11253
  }
@@ -11259,12 +11264,12 @@ function DatePickerInput({
11259
11264
  }
11260
11265
  }
11261
11266
  date.setHours(hours);
11262
- _optionalChain([onChange, 'optionalCall', _221 => _221(date)]);
11267
+ _optionalChain([onChange, 'optionalCall', _225 => _225(date)]);
11263
11268
  };
11264
11269
  const handleMinuteChange = (newMinute) => {
11265
11270
  const date = value ? new Date(value) : /* @__PURE__ */ new Date();
11266
11271
  date.setMinutes(parseInt(newMinute, 10));
11267
- _optionalChain([onChange, 'optionalCall', _222 => _222(date)]);
11272
+ _optionalChain([onChange, 'optionalCall', _226 => _226(date)]);
11268
11273
  };
11269
11274
  const handlePeriodChange = (newPeriod) => {
11270
11275
  const date = value ? new Date(value) : /* @__PURE__ */ new Date();
@@ -11275,7 +11280,7 @@ function DatePickerInput({
11275
11280
  hours += 12;
11276
11281
  }
11277
11282
  date.setHours(hours);
11278
- _optionalChain([onChange, 'optionalCall', _223 => _223(date)]);
11283
+ _optionalChain([onChange, 'optionalCall', _227 => _227(date)]);
11279
11284
  };
11280
11285
  const hourOptions = React37.useMemo(() => generateHourOptions(use24HourFormat), [use24HourFormat]);
11281
11286
  const minuteOptions = React37.useMemo(() => generateMinuteOptions(), []);
@@ -11436,7 +11441,7 @@ function DatePickerInputSimple({
11436
11441
  if (newDate && value) {
11437
11442
  newDate.setHours(value.getHours(), value.getMinutes(), 0, 0);
11438
11443
  }
11439
- _optionalChain([onChange, 'optionalCall', _224 => _224(newDate)]);
11444
+ _optionalChain([onChange, 'optionalCall', _228 => _228(newDate)]);
11440
11445
  if (newDate) {
11441
11446
  setOpen(false);
11442
11447
  }
@@ -11445,7 +11450,7 @@ function DatePickerInputSimple({
11445
11450
  const [hours, minutes] = newTime.split(":").map(Number);
11446
11451
  const date = value ? new Date(value) : /* @__PURE__ */ new Date();
11447
11452
  date.setHours(hours, minutes, 0, 0);
11448
- _optionalChain([onChange, 'optionalCall', _225 => _225(date)]);
11453
+ _optionalChain([onChange, 'optionalCall', _229 => _229(date)]);
11449
11454
  };
11450
11455
  const timeOptions = React37.useMemo(
11451
11456
  () => generateTimeOptions(timeInterval, use24HourFormat),
@@ -11994,7 +11999,7 @@ var Switch = React43.forwardRef(({ className, checked, onCheckedChange, ...props
11994
11999
  }, [checked]);
11995
12000
  const handleCheckedChange = (newChecked) => {
11996
12001
  setIsChecked(newChecked);
11997
- _optionalChain([onCheckedChange, 'optionalCall', _226 => _226(newChecked)]);
12002
+ _optionalChain([onCheckedChange, 'optionalCall', _230 => _230(newChecked)]);
11998
12003
  };
11999
12004
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
12000
12005
  SwitchPrimitives.Root,
@@ -12203,7 +12208,7 @@ function TagsManager({
12203
12208
  const name = search.trim();
12204
12209
  if (!name) return;
12205
12210
  const result = await onCreateTag(name);
12206
- if (_optionalChain([result, 'optionalAccess', _227 => _227.id])) {
12211
+ if (_optionalChain([result, 'optionalAccess', _231 => _231.id])) {
12207
12212
  onChange([...selectedIds, result.id]);
12208
12213
  setSearch("");
12209
12214
  }
@@ -12211,7 +12216,7 @@ function TagsManager({
12211
12216
  const startEdit = React45.useCallback((id, name) => {
12212
12217
  setEditingId(id);
12213
12218
  setEditingName(name);
12214
- setTimeout(() => _optionalChain([editInputRef, 'access', _228 => _228.current, 'optionalAccess', _229 => _229.focus, 'call', _230 => _230()]), 0);
12219
+ setTimeout(() => _optionalChain([editInputRef, 'access', _232 => _232.current, 'optionalAccess', _233 => _233.focus, 'call', _234 => _234()]), 0);
12215
12220
  }, []);
12216
12221
  const confirmEdit = React45.useCallback(async () => {
12217
12222
  if (!onUpdateTag || !editingId || !editingName.trim()) return;
@@ -12238,7 +12243,7 @@ function TagsManager({
12238
12243
  e.stopPropagation();
12239
12244
  onChange([]);
12240
12245
  setSearch("");
12241
- _optionalChain([inputRef, 'access', _231 => _231.current, 'optionalAccess', _232 => _232.focus, 'call', _233 => _233()]);
12246
+ _optionalChain([inputRef, 'access', _235 => _235.current, 'optionalAccess', _236 => _236.focus, 'call', _237 => _237()]);
12242
12247
  },
12243
12248
  [onChange]
12244
12249
  );
@@ -12337,10 +12342,10 @@ function TagsManager({
12337
12342
  align: "start",
12338
12343
  onOpenAutoFocus: (e) => {
12339
12344
  e.preventDefault();
12340
- _optionalChain([inputRef, 'access', _234 => _234.current, 'optionalAccess', _235 => _235.focus, 'call', _236 => _236()]);
12345
+ _optionalChain([inputRef, 'access', _238 => _238.current, 'optionalAccess', _239 => _239.focus, 'call', _240 => _240()]);
12341
12346
  },
12342
12347
  onInteractOutside: (e) => {
12343
- if (_optionalChain([containerRef, 'access', _237 => _237.current, 'optionalAccess', _238 => _238.contains, 'call', _239 => _239(e.target)])) {
12348
+ if (_optionalChain([containerRef, 'access', _241 => _241.current, 'optionalAccess', _242 => _242.contains, 'call', _243 => _243(e.target)])) {
12344
12349
  e.preventDefault();
12345
12350
  }
12346
12351
  },
@@ -13735,19 +13740,19 @@ function TabNavigation({
13735
13740
  const validTabIds = _react.useMemo.call(void 0, () => new Set(tabs.map((t) => t.id)), [tabs]);
13736
13741
  const getInitialTab = () => {
13737
13742
  if (isUrlSyncEnabled) {
13738
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _240 => _240.get, 'call', _241 => _241(paramName)]) || "";
13743
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _244 => _244.get, 'call', _245 => _245(paramName)]) || "";
13739
13744
  if (validTabIds.has(fromUrl)) {
13740
13745
  return fromUrl;
13741
13746
  }
13742
13747
  }
13743
- return defaultTab || _optionalChain([tabs, 'access', _242 => _242[0], 'optionalAccess', _243 => _243.id]) || "";
13748
+ return defaultTab || _optionalChain([tabs, 'access', _246 => _246[0], 'optionalAccess', _247 => _247.id]) || "";
13744
13749
  };
13745
13750
  const [internalActiveTab, setInternalActiveTab] = _react.useState.call(void 0, getInitialTab);
13746
13751
  const activeTab = isUrlSyncEnabled ? internalActiveTab : controlledActiveTab || "";
13747
13752
  _react.useEffect.call(void 0, () => {
13748
13753
  if (!isUrlSyncEnabled) return;
13749
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _244 => _244.get, 'call', _245 => _245(paramName)]) || "";
13750
- const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _246 => _246[0], 'optionalAccess', _247 => _247.id]) || "";
13754
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _248 => _248.get, 'call', _249 => _249(paramName)]) || "";
13755
+ const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _250 => _250[0], 'optionalAccess', _251 => _251.id]) || "";
13751
13756
  if (nextTab !== internalActiveTab) {
13752
13757
  setInternalActiveTab(nextTab);
13753
13758
  }
@@ -13755,13 +13760,13 @@ function TabNavigation({
13755
13760
  const handleTabChange = (tabId) => {
13756
13761
  if (isUrlSyncEnabled) {
13757
13762
  setInternalActiveTab(tabId);
13758
- const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _248 => _248.toString, 'call', _249 => _249()]));
13763
+ const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _252 => _252.toString, 'call', _253 => _253()]));
13759
13764
  params.set(paramName, tabId);
13760
13765
  const method = replaceState ? "replace" : "push";
13761
13766
  router[method](`${pathname}?${params.toString()}`);
13762
- _optionalChain([controlledOnTabChange, 'optionalCall', _250 => _250(tabId)]);
13767
+ _optionalChain([controlledOnTabChange, 'optionalCall', _254 => _254(tabId)]);
13763
13768
  } else {
13764
- _optionalChain([controlledOnTabChange, 'optionalCall', _251 => _251(tabId)]);
13769
+ _optionalChain([controlledOnTabChange, 'optionalCall', _255 => _255(tabId)]);
13765
13770
  }
13766
13771
  };
13767
13772
  const scrollRef = _react.useRef.call(void 0, null);
@@ -13849,7 +13854,7 @@ function TabNavigation({
13849
13854
  var getTabById = (tabs, tabId) => tabs.find((tab) => tab.id === tabId);
13850
13855
  var getTabComponent = (tabs, tabId) => {
13851
13856
  const tab = getTabById(tabs, tabId);
13852
- return _optionalChain([tab, 'optionalAccess', _252 => _252.component]) || null;
13857
+ return _optionalChain([tab, 'optionalAccess', _256 => _256.component]) || null;
13853
13858
  };
13854
13859
 
13855
13860
  // src/components/ui/alert.tsx
@@ -13989,7 +13994,7 @@ function ReleaseChangelogSection({
13989
13994
  className: "overflow-hidden transition-[max-height] duration-500",
13990
13995
  style: {
13991
13996
  transitionTimingFunction: "cubic-bezier(0.33, 1, 0.68, 1)",
13992
- maxHeight: previewExpanded || !previewNeedsFade ? _nullishCoalesce(_optionalChain([previewContentRef, 'access', _253 => _253.current, 'optionalAccess', _254 => _254.scrollHeight]), () => ( 2e3)) : PREVIEW_COLLAPSED_HEIGHT,
13997
+ maxHeight: previewExpanded || !previewNeedsFade ? _nullishCoalesce(_optionalChain([previewContentRef, 'access', _257 => _257.current, 'optionalAccess', _258 => _258.scrollHeight]), () => ( 2e3)) : PREVIEW_COLLAPSED_HEIGHT,
13993
13998
  ...previewNeedsFade && !previewExpanded ? {
13994
13999
  maskImage: "linear-gradient(to bottom, black 30%, transparent 100%)",
13995
14000
  WebkitMaskImage: "linear-gradient(to bottom, black 30%, transparent 100%)"
@@ -14426,16 +14431,16 @@ function FilterModal({
14426
14431
  };
14427
14432
  const handleReset = () => {
14428
14433
  onFilterChange({});
14429
- _optionalChain([onTagsChange, 'optionalCall', _255 => _255([])]);
14434
+ _optionalChain([onTagsChange, 'optionalCall', _259 => _259([])]);
14430
14435
  onClose();
14431
14436
  };
14432
14437
  const handleApply = () => {
14433
14438
  onFilterChange(selectedFilters);
14434
- _optionalChain([onTagsChange, 'optionalCall', _256 => _256(pendingTags)]);
14439
+ _optionalChain([onTagsChange, 'optionalCall', _260 => _260(pendingTags)]);
14435
14440
  onClose();
14436
14441
  };
14437
14442
  const getColumnDirection = (columnKey) => {
14438
- return _optionalChain([sortConfig, 'optionalAccess', _257 => _257.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
14443
+ return _optionalChain([sortConfig, 'optionalAccess', _261 => _261.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
14439
14444
  };
14440
14445
  const hasSort = !!sortConfig && sortConfig.columns.length > 0;
14441
14446
  const hasFilterGroups = filterGroups.length > 0;
@@ -14484,7 +14489,7 @@ function FilterModal({
14484
14489
  {
14485
14490
  column,
14486
14491
  currentDirection: getColumnDirection(column.key),
14487
- onSort: (direction) => _optionalChain([onSort, 'optionalCall', _258 => _258(column.key, direction)]),
14492
+ onSort: (direction) => _optionalChain([onSort, 'optionalCall', _262 => _262(column.key, direction)]),
14488
14493
  onClear: onSortClear ? () => onSortClear(column.key) : void 0
14489
14494
  },
14490
14495
  column.key
@@ -14662,7 +14667,7 @@ function IconButtonsVariant({
14662
14667
  }) {
14663
14668
  const desktopActions = actions.filter((a) => !a.showOnlyMobile);
14664
14669
  const hasMenuActions = !!menuActions && menuActions.some((g) => g.items.length > 0);
14665
- const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _259 => _259[0], 'access', _260 => _260.submenu, 'optionalAccess', _261 => _261.length]);
14670
+ const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _263 => _263[0], 'access', _264 => _264.submenu, 'optionalAccess', _265 => _265.length]);
14666
14671
  const singleAction = isSingleAction ? actions[0] : null;
14667
14672
  const useSingleActionMobile = isSingleAction && !hasMenuActions;
14668
14673
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -15813,7 +15818,7 @@ function getShellIcon(shellType) {
15813
15818
  if (!shellType) return void 0;
15814
15819
  const normalized = shellType.toUpperCase();
15815
15820
  const shellDef = SHELL_TYPES.find((s) => s.id === normalized);
15816
- return _optionalChain([shellDef, 'optionalAccess', _262 => _262.icon]);
15821
+ return _optionalChain([shellDef, 'optionalAccess', _266 => _266.icon]);
15817
15822
  }
15818
15823
 
15819
15824
  // src/types/os.types.ts
@@ -15886,7 +15891,7 @@ function getOSIcon(osType) {
15886
15891
  const normalized = normalizeOSType(osType);
15887
15892
  if (!normalized) return void 0;
15888
15893
  const osTypeDef = OS_TYPES.find((t) => t.id === normalized);
15889
- return _optionalChain([osTypeDef, 'optionalAccess', _263 => _263.icon]);
15894
+ return _optionalChain([osTypeDef, 'optionalAccess', _267 => _267.icon]);
15890
15895
  }
15891
15896
  function getOSTypeDefinition(osType) {
15892
15897
  if (!osType) return void 0;
@@ -15896,7 +15901,7 @@ function getOSTypeDefinition(osType) {
15896
15901
  }
15897
15902
  function getOSPlatformId(osType) {
15898
15903
  const osTypeDef = getOSTypeDefinition(osType);
15899
- return _optionalChain([osTypeDef, 'optionalAccess', _264 => _264.platformId]);
15904
+ return _optionalChain([osTypeDef, 'optionalAccess', _268 => _268.platformId]);
15900
15905
  }
15901
15906
  function isOSPlatform(deviceOS, targetPlatform) {
15902
15907
  if (!deviceOS || !targetPlatform) return false;
@@ -15989,10 +15994,10 @@ var GENERIC_EMAIL_DOMAINS = [
15989
15994
  ];
15990
15995
  function extractDomainFromEmail(email) {
15991
15996
  if (!email || !email.includes("@")) return null;
15992
- return _optionalChain([email, 'access', _265 => _265.split, 'call', _266 => _266("@"), 'access', _267 => _267[1], 'optionalAccess', _268 => _268.toLowerCase, 'call', _269 => _269()]) || null;
15997
+ return _optionalChain([email, 'access', _269 => _269.split, 'call', _270 => _270("@"), 'access', _271 => _271[1], 'optionalAccess', _272 => _272.toLowerCase, 'call', _273 => _273()]) || null;
15993
15998
  }
15994
15999
  function normalizeDomain(domain) {
15995
- return _optionalChain([domain, 'optionalAccess', _270 => _270.toLowerCase, 'call', _271 => _271(), 'access', _272 => _272.replace, 'call', _273 => _273(/^https?:\/\//, ""), 'access', _274 => _274.replace, 'call', _275 => _275(/^www\./, ""), 'access', _276 => _276.split, 'call', _277 => _277("/"), 'access', _278 => _278[0], 'access', _279 => _279.trim, 'call', _280 => _280()]) || "";
16000
+ return _optionalChain([domain, 'optionalAccess', _274 => _274.toLowerCase, 'call', _275 => _275(), 'access', _276 => _276.replace, 'call', _277 => _277(/^https?:\/\//, ""), 'access', _278 => _278.replace, 'call', _279 => _279(/^www\./, ""), 'access', _280 => _280.split, 'call', _281 => _281("/"), 'access', _282 => _282[0], 'access', _283 => _283.trim, 'call', _284 => _284()]) || "";
15996
16001
  }
15997
16002
  function isGenericDomain(domain) {
15998
16003
  const normalized = normalizeDomain(domain);
@@ -16401,7 +16406,7 @@ function createLocalStorageAdapter(options) {
16401
16406
  const tag = _nullishCoalesce(options.logTag, () => ( "[local-storage]"));
16402
16407
  const backend = _nullishCoalesce(options.backend, () => ( "local"));
16403
16408
  const resolveKey = () => {
16404
- const ns = _optionalChain([options, 'access', _281 => _281.namespace, 'optionalCall', _282 => _282()]);
16409
+ const ns = _optionalChain([options, 'access', _285 => _285.namespace, 'optionalCall', _286 => _286()]);
16405
16410
  return ns ? `${ns}.${options.key}` : options.key;
16406
16411
  };
16407
16412
  return {
@@ -16488,7 +16493,7 @@ function getEmbedProxyAuth() {
16488
16493
  }
16489
16494
  function getPersistedProxyEmail() {
16490
16495
  const persisted = adapter.load();
16491
- return _nullishCoalesce(_optionalChain([persisted, 'optionalAccess', _283 => _283.email, 'access', _284 => _284.trim, 'call', _285 => _285(), 'access', _286 => _286.toLowerCase, 'call', _287 => _287()]), () => ( null));
16496
+ return _nullishCoalesce(_optionalChain([persisted, 'optionalAccess', _287 => _287.email, 'access', _288 => _288.trim, 'call', _289 => _289(), 'access', _290 => _290.toLowerCase, 'call', _291 => _291()]), () => ( null));
16492
16497
  }
16493
16498
  function setEmbedProxyAuth(value) {
16494
16499
  adapter.save({
@@ -16505,15 +16510,15 @@ function clearEmbedProxyAuth() {
16505
16510
  function applyProxyAuth(url, baseHeaders = { "Content-Type": "application/json" }) {
16506
16511
  const auth = getEmbedProxyAuth();
16507
16512
  const headers = { ...baseHeaders };
16508
- if (_optionalChain([auth, 'optionalAccess', _288 => _288.secret])) {
16513
+ if (_optionalChain([auth, 'optionalAccess', _292 => _292.secret])) {
16509
16514
  headers.Authorization = `Bearer ${auth.secret}`;
16510
16515
  }
16511
- if (_optionalChain([auth, 'optionalAccess', _289 => _289.email])) {
16516
+ if (_optionalChain([auth, 'optionalAccess', _293 => _293.email])) {
16512
16517
  headers["X-Chat-Act-As"] = auth.email;
16513
16518
  }
16514
- if (_optionalChain([auth, 'optionalAccess', _290 => _290.firstName])) headers["X-Chat-First-Name"] = auth.firstName;
16515
- if (_optionalChain([auth, 'optionalAccess', _291 => _291.lastName])) headers["X-Chat-Last-Name"] = auth.lastName;
16516
- if (_optionalChain([auth, 'optionalAccess', _292 => _292.avatarUrl])) headers["X-Chat-Avatar-Url"] = auth.avatarUrl;
16519
+ if (_optionalChain([auth, 'optionalAccess', _294 => _294.firstName])) headers["X-Chat-First-Name"] = auth.firstName;
16520
+ if (_optionalChain([auth, 'optionalAccess', _295 => _295.lastName])) headers["X-Chat-Last-Name"] = auth.lastName;
16521
+ if (_optionalChain([auth, 'optionalAccess', _296 => _296.avatarUrl])) headers["X-Chat-Avatar-Url"] = auth.avatarUrl;
16517
16522
  return { url, headers };
16518
16523
  }
16519
16524
 
@@ -16565,7 +16570,7 @@ function setInFlightRefresh(refresh) {
16565
16570
  }
16566
16571
  function dedupedRefresh() {
16567
16572
  const adapter2 = getRegisteredAuthAdapter();
16568
- if (!_optionalChain([adapter2, 'optionalAccess', _293 => _293.refresh])) return Promise.resolve(false);
16573
+ if (!_optionalChain([adapter2, 'optionalAccess', _297 => _297.refresh])) return Promise.resolve(false);
16569
16574
  let inFlightRefresh = getInFlightRefresh();
16570
16575
  if (!inFlightRefresh) {
16571
16576
  inFlightRefresh = Promise.resolve().then(() => adapter2.refresh()).catch(() => false).finally(() => {
@@ -16578,12 +16583,12 @@ function dedupedRefresh() {
16578
16583
  async function fetchWithRefresh(url, init, baseHeaders, isRetry) {
16579
16584
  const { url: authedUrl, headers } = applyProxyAuth(url, { ...baseHeaders });
16580
16585
  const adapter2 = getRegisteredAuthAdapter();
16581
- if (_optionalChain([adapter2, 'optionalAccess', _294 => _294.getHeaders])) {
16586
+ if (_optionalChain([adapter2, 'optionalAccess', _298 => _298.getHeaders])) {
16582
16587
  for (const [k, v] of Object.entries(adapter2.getHeaders())) {
16583
16588
  if (v !== void 0) headers[k] = v;
16584
16589
  }
16585
16590
  }
16586
- const credentials = _nullishCoalesce(_nullishCoalesce(_optionalChain([adapter2, 'optionalAccess', _295 => _295.credentials]), () => ( init.credentials)), () => ( "same-origin"));
16591
+ const credentials = _nullishCoalesce(_nullishCoalesce(_optionalChain([adapter2, 'optionalAccess', _299 => _299.credentials]), () => ( init.credentials)), () => ( "same-origin"));
16587
16592
  const response = await fetch(authedUrl, {
16588
16593
  ...init,
16589
16594
  headers,
@@ -16594,7 +16599,7 @@ async function fetchWithRefresh(url, init, baseHeaders, isRetry) {
16594
16599
  // `SameSite=None` must be configured server-side for that to work).
16595
16600
  credentials
16596
16601
  });
16597
- if (response.status === 401 && !isRetry && _optionalChain([adapter2, 'optionalAccess', _296 => _296.refresh])) {
16602
+ if (response.status === 401 && !isRetry && _optionalChain([adapter2, 'optionalAccess', _300 => _300.refresh])) {
16598
16603
  const refreshed = await dedupedRefresh();
16599
16604
  if (refreshed) {
16600
16605
  return fetchWithRefresh(url, init, baseHeaders, true);
@@ -16632,7 +16637,7 @@ function assertSameOrigin(url) {
16632
16637
 
16633
16638
  // src/utils/sse-decision-frame.ts
16634
16639
  async function readLeadingDecisionFrame(response) {
16635
- const reader = _optionalChain([response, 'access', _297 => _297.body, 'optionalAccess', _298 => _298.getReader, 'call', _299 => _299()]);
16640
+ const reader = _optionalChain([response, 'access', _301 => _301.body, 'optionalAccess', _302 => _302.getReader, 'call', _303 => _303()]);
16636
16641
  if (!reader) throw new Error("readLeadingDecisionFrame: response has no body");
16637
16642
  const decoder = new TextDecoder();
16638
16643
  let buffer = "";
@@ -16661,9 +16666,9 @@ async function readLeadingDecisionFrame(response) {
16661
16666
  );
16662
16667
  }
16663
16668
  const obj = parsed;
16664
- if (_optionalChain([obj, 'optionalAccess', _300 => _300.kind]) !== "decision_resolved") {
16669
+ if (_optionalChain([obj, 'optionalAccess', _304 => _304.kind]) !== "decision_resolved") {
16665
16670
  throw new Error(
16666
- `readLeadingDecisionFrame: expected decision_resolved, got kind=${String(_optionalChain([obj, 'optionalAccess', _301 => _301.kind]))}`
16671
+ `readLeadingDecisionFrame: expected decision_resolved, got kind=${String(_optionalChain([obj, 'optionalAccess', _305 => _305.kind]))}`
16667
16672
  );
16668
16673
  }
16669
16674
  frame = normalizeDecisionFrame(obj);
@@ -16704,7 +16709,7 @@ var AUTO_CONTINUATION_DIRECTIVE_PREFIX = "[internal-auto-continuation]";
16704
16709
  function buildAutoContinuationDirective(toolName, opts = {}) {
16705
16710
  const ticketRef = opts.ticketId ? ` (ticket #${opts.ticketId})` : "";
16706
16711
  const ticketHash = opts.ticketId ? ` #${opts.ticketId}` : "";
16707
- const isClose = toolName === "update_ticket" && _optionalChain([opts, 'access', _302 => _302.status, 'optionalAccess', _303 => _303.toUpperCase, 'call', _304 => _304()]) === "CLOSED";
16712
+ const isClose = toolName === "update_ticket" && _optionalChain([opts, 'access', _306 => _306.status, 'optionalAccess', _307 => _307.toUpperCase, 'call', _308 => _308()]) === "CLOSED";
16708
16713
  if (toolName === "create_ticket") {
16709
16714
  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.`;
16710
16715
  }
@@ -16766,7 +16771,7 @@ function formatSingularLookupInvocation(cmdId, value) {
16766
16771
  return safe ? `/${cmdId} "${safe}"` : `/${cmdId}`;
16767
16772
  }
16768
16773
  function extractEntityIdFilter(override, expectedTableId) {
16769
- const f = _optionalChain([override, 'optionalAccess', _305 => _305.entityIdFilter]);
16774
+ const f = _optionalChain([override, 'optionalAccess', _309 => _309.entityIdFilter]);
16770
16775
  if (!f) return null;
16771
16776
  const tableId = typeof f.tableId === "string" ? f.tableId : "";
16772
16777
  const id = typeof f.id === "string" ? f.id : "";
@@ -16841,7 +16846,7 @@ function getTaskTypeLabel(customItemId) {
16841
16846
 
16842
16847
  // src/components/chat/utils/agent-status-message.ts
16843
16848
  function getStatusColorScheme(status) {
16844
- const s = _optionalChain([status, 'optionalAccess', _306 => _306.toLowerCase, 'call', _307 => _307()]) || "";
16849
+ const s = _optionalChain([status, 'optionalAccess', _310 => _310.toLowerCase, 'call', _311 => _311()]) || "";
16845
16850
  switch (status) {
16846
16851
  case "completed":
16847
16852
  case "success":
@@ -17127,6 +17132,9 @@ function scrollElementIntoView(target, options = {}) {
17127
17132
 
17128
17133
  // src/utils/list-url.ts
17129
17134
  var ALIASES = { blog_post_existing: "blog_post" };
17135
+ function canonicalContentRefType(contentRefType) {
17136
+ return _nullishCoalesce(ALIASES[contentRefType], () => ( contentRefType));
17137
+ }
17130
17138
  var BUILDERS = {
17131
17139
  roadmap_item: (ids, b) => `${b}/api/roadmap?task_ids=${ids.join(",")}`,
17132
17140
  delivery_item: (ids, b) => `${b}/api/delivery?task_ids=${ids.join(",")}`,
@@ -17151,6 +17159,60 @@ function buildListUrl(contentRefType, ids, base = "") {
17151
17159
  return fn ? fn(ids, base) : null;
17152
17160
  }
17153
17161
 
17162
+ // src/utils/content-ref-groups.ts
17163
+ var CONTENT_REF_GROUPS = {
17164
+ investor_update: { label: "Investor Updates", order: 1, layout: "grid", gridSize: "default" },
17165
+ product_release: { label: "Product Releases", order: 2, layout: "list", gridSize: "lg" },
17166
+ podcast: { label: "Podcasts", order: 3, layout: "list", gridSize: "default" },
17167
+ webinar: { label: "Webinars", order: 4, layout: "list", gridSize: "default" },
17168
+ case_study: { label: "Case Studies", order: 5, layout: "grid", gridSize: "default" },
17169
+ event: { label: "Events", order: 6, layout: "list", gridSize: "default" },
17170
+ blog_post_existing: { label: "Blog Posts", order: 7, layout: "grid", gridSize: "default" },
17171
+ customer_interview: { label: "Customer Interviews", order: 8, layout: "grid", gridSize: "default" },
17172
+ onboarding_guide: { label: "Onboarding Guides", order: 9, layout: "list", gridSize: "default" }
17173
+ };
17174
+ function getContentRefLabel(type) {
17175
+ return _nullishCoalesce(_optionalChain([CONTENT_REF_GROUPS, 'access', _312 => _312[type], 'optionalAccess', _313 => _313.label]), () => ( null));
17176
+ }
17177
+ function getContentRefLabelOrTitleCase(type) {
17178
+ return _nullishCoalesce(_optionalChain([CONTENT_REF_GROUPS, 'access', _314 => _314[type], 'optionalAccess', _315 => _315.label]), () => ( type.replace(/_/g, " ").replace(/\b\w/g, (ch) => ch.toUpperCase())));
17179
+ }
17180
+ function orderContentRefTypes(present) {
17181
+ const presentSet = new Set(present);
17182
+ const registeredInOrder = Object.entries(CONTENT_REF_GROUPS).sort(([, a], [, b]) => a.order - b.order).map(([type]) => type).filter((type) => presentSet.has(type));
17183
+ const unregistered = [...presentSet].filter((type) => !CONTENT_REF_GROUPS[type]);
17184
+ return [...registeredInOrder, ...unregistered];
17185
+ }
17186
+
17187
+ // src/utils/extract-items.ts
17188
+ function extractItems(data) {
17189
+ if (!data || typeof data !== "object") return [];
17190
+ const obj = data;
17191
+ if (Array.isArray(obj.items)) return obj.items;
17192
+ if (Array.isArray(obj.posts)) return obj.posts;
17193
+ if (Array.isArray(obj.campaigns)) return obj.campaigns;
17194
+ if (Array.isArray(obj.completed) || Array.isArray(obj.inProgress)) {
17195
+ const completed = Array.isArray(obj.completed) ? obj.completed : [];
17196
+ const inProgress = Array.isArray(obj.inProgress) ? obj.inProgress : [];
17197
+ return [...completed, ...inProgress];
17198
+ }
17199
+ if (Array.isArray(obj.data)) return obj.data;
17200
+ if (Array.isArray(data)) return data;
17201
+ return [];
17202
+ }
17203
+ function extractItemId(type, item) {
17204
+ if (!item || typeof item !== "object") return null;
17205
+ const obj = item;
17206
+ if (type === "roadmap_item" || type === "delivery_item" || type === "internal_task") {
17207
+ const ext = obj.external_id;
17208
+ if (typeof ext === "string") return ext;
17209
+ }
17210
+ const id = obj.id;
17211
+ if (typeof id === "string") return id;
17212
+ if (typeof id === "number") return String(id);
17213
+ return null;
17214
+ }
17215
+
17154
17216
  // src/utils/content-href.ts
17155
17217
  var DEFAULT_CONTENT_SUFFIXES = {
17156
17218
  onboarding_guide: "onboarding-guides",
@@ -17827,26 +17889,26 @@ function DeviceCard({
17827
17889
  ] }),
17828
17890
  device.organization && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary truncate", title: device.organization, children: device.organization })
17829
17891
  ] }),
17830
- _optionalChain([actions, 'access', _308 => _308.moreButton, 'optionalAccess', _309 => _309.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17892
+ _optionalChain([actions, 'access', _316 => _316.moreButton, 'optionalAccess', _317 => _317.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17831
17893
  "div",
17832
17894
  {
17833
17895
  className: "flex items-center justify-center p-3 rounded-[6px] shrink-0 border border-ods-border cursor-pointer hover:bg-ods-bg-hover transition-colors",
17834
17896
  onClick: (e) => {
17835
17897
  e.stopPropagation();
17836
- _optionalChain([actions, 'access', _310 => _310.moreButton, 'optionalAccess', _311 => _311.onClick, 'optionalCall', _312 => _312()]);
17898
+ _optionalChain([actions, 'access', _318 => _318.moreButton, 'optionalAccess', _319 => _319.onClick, 'optionalCall', _320 => _320()]);
17837
17899
  },
17838
17900
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
17839
17901
  }
17840
17902
  ),
17841
- _optionalChain([actions, 'access', _313 => _313.detailsButton, 'optionalAccess', _314 => _314.visible]) !== false && _optionalChain([actions, 'access', _315 => _315.detailsButton, 'optionalAccess', _316 => _316.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
17842
- _optionalChain([actions, 'access', _317 => _317.customActions, 'optionalAccess', _318 => _318.map, 'call', _319 => _319(
17903
+ _optionalChain([actions, 'access', _321 => _321.detailsButton, 'optionalAccess', _322 => _322.visible]) !== false && _optionalChain([actions, 'access', _323 => _323.detailsButton, 'optionalAccess', _324 => _324.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
17904
+ _optionalChain([actions, 'access', _325 => _325.customActions, 'optionalAccess', _326 => _326.map, 'call', _327 => _327(
17843
17905
  (action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17844
17906
  "div",
17845
17907
  {
17846
17908
  className: "flex items-center justify-center px-4 py-3 rounded-[6px] shrink-0 border border-ods-border cursor-pointer hover:bg-ods-bg-hover transition-colors",
17847
17909
  onClick: (e) => {
17848
17910
  e.stopPropagation();
17849
- _optionalChain([action, 'access', _320 => _320.onClick, 'optionalCall', _321 => _321()]);
17911
+ _optionalChain([action, 'access', _328 => _328.onClick, 'optionalCall', _329 => _329()]);
17850
17912
  },
17851
17913
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]", children: action.label })
17852
17914
  },
@@ -18346,7 +18408,7 @@ function MoreActionsMenu({
18346
18408
  ] });
18347
18409
  const handleActivate = (e) => {
18348
18410
  e.stopPropagation();
18349
- if (!item.disabled) _optionalChain([item, 'access', _322 => _322.onClick, 'optionalCall', _323 => _323()]);
18411
+ if (!item.disabled) _optionalChain([item, 'access', _330 => _330.onClick, 'optionalCall', _331 => _331()]);
18350
18412
  };
18351
18413
  if (item.href) {
18352
18414
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -18413,7 +18475,7 @@ function OrganizationCard({
18413
18475
  const handleActionClick = (e) => {
18414
18476
  e.preventDefault();
18415
18477
  e.stopPropagation();
18416
- _optionalChain([actionButton, 'optionalAccess', _324 => _324.onClick, 'call', _325 => _325(organization, e)]);
18478
+ _optionalChain([actionButton, 'optionalAccess', _332 => _332.onClick, 'call', _333 => _333(organization, e)]);
18417
18479
  };
18418
18480
  const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
18419
18481
  "div",
@@ -19318,10 +19380,10 @@ var getContentDimensions = (config) => {
19318
19380
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
19319
19381
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
19320
19382
  const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
19321
- const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _326 => _326.mobileContentDimensions, 'optionalAccess', _327 => _327.width]))), () => ( defaultMobile.width));
19322
- const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _328 => _328.mobileContentDimensions, 'optionalAccess', _329 => _329.height]))), () => ( defaultMobile.height));
19323
- const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _330 => _330.desktopContentDimensions, 'optionalAccess', _331 => _331.width]))), () => ( defaultDesktop.width));
19324
- const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _332 => _332.desktopContentDimensions, 'optionalAccess', _333 => _333.height]))), () => ( defaultDesktop.height));
19383
+ const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _334 => _334.mobileContentDimensions, 'optionalAccess', _335 => _335.width]))), () => ( defaultMobile.width));
19384
+ const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _336 => _336.mobileContentDimensions, 'optionalAccess', _337 => _337.height]))), () => ( defaultMobile.height));
19385
+ const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _338 => _338.desktopContentDimensions, 'optionalAccess', _339 => _339.width]))), () => ( defaultDesktop.width));
19386
+ const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _340 => _340.desktopContentDimensions, 'optionalAccess', _341 => _341.height]))), () => ( defaultDesktop.height));
19325
19387
  return {
19326
19388
  mobile: { width: mobileWidth, height: mobileHeight },
19327
19389
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -19455,7 +19517,7 @@ function renderUnifiedUI(state, handlers, config, iframeRef) {
19455
19517
  const contentDimensions = getContentDimensions(config);
19456
19518
  const mobileHeight = contentDimensions.mobile.height;
19457
19519
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
19458
- return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _334 => _334.innerHeight]) * 0.85 || 650)}px`;
19520
+ return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _342 => _342.innerHeight]) * 0.85 || 650)}px`;
19459
19521
  })(),
19460
19522
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
19461
19523
  const contentDimensions = getContentDimensions(config);
@@ -19560,7 +19622,7 @@ var FigmaPrototypeViewer = ({
19560
19622
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
19561
19623
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
19562
19624
  const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
19563
- config.defaultSectionId || _optionalChain([config, 'access', _335 => _335.sections, 'access', _336 => _336[0], 'optionalAccess', _337 => _337.id]) || ""
19625
+ config.defaultSectionId || _optionalChain([config, 'access', _343 => _343.sections, 'access', _344 => _344[0], 'optionalAccess', _345 => _345.id]) || ""
19564
19626
  );
19565
19627
  const activeSection = externalActiveSection || internalActiveSection;
19566
19628
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -19650,7 +19712,7 @@ var FigmaPrototypeViewer = ({
19650
19712
  const handleMessage = (event) => {
19651
19713
  if (event.origin !== "https://www.figma.com") return;
19652
19714
  const validEvents = ["INITIAL_LOAD", "NEW_STATE", "PRESENTED_NODE_CHANGED"];
19653
- if (_optionalChain([event, 'access', _338 => _338.data, 'optionalAccess', _339 => _339.type]) && validEvents.includes(event.data.type)) {
19715
+ if (_optionalChain([event, 'access', _346 => _346.data, 'optionalAccess', _347 => _347.type]) && validEvents.includes(event.data.type)) {
19654
19716
  const figmaEvent = event.data;
19655
19717
  console.log("[Figma Event]", figmaEvent.type, viewMode);
19656
19718
  switch (figmaEvent.type) {
@@ -19660,19 +19722,19 @@ var FigmaPrototypeViewer = ({
19660
19722
  setIframeState("READY");
19661
19723
  break;
19662
19724
  case "PRESENTED_NODE_CHANGED":
19663
- if (_optionalChain([figmaEvent, 'access', _340 => _340.data, 'optionalAccess', _341 => _341.presentedNodeId])) {
19725
+ if (_optionalChain([figmaEvent, 'access', _348 => _348.data, 'optionalAccess', _349 => _349.presentedNodeId])) {
19664
19726
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
19665
19727
  if (!isNavigating) {
19666
19728
  const matchingSection = config.sections.find((s) => {
19667
- const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _342 => _342.data, 'optionalAccess', _343 => _343.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _344 => _344.data, 'optionalAccess', _345 => _345.presentedNodeId]);
19668
- const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _346 => _346.data, 'optionalAccess', _347 => _347.presentedNodeId]) || _optionalChain([s, 'access', _348 => _348.mobileStartingNodeId, 'optionalAccess', _349 => _349.replace, 'call', _350 => _350(":", "-")]) === _optionalChain([figmaEvent, 'access', _351 => _351.data, 'optionalAccess', _352 => _352.presentedNodeId]);
19729
+ const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _350 => _350.data, 'optionalAccess', _351 => _351.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _352 => _352.data, 'optionalAccess', _353 => _353.presentedNodeId]);
19730
+ const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _354 => _354.data, 'optionalAccess', _355 => _355.presentedNodeId]) || _optionalChain([s, 'access', _356 => _356.mobileStartingNodeId, 'optionalAccess', _357 => _357.replace, 'call', _358 => _358(":", "-")]) === _optionalChain([figmaEvent, 'access', _359 => _359.data, 'optionalAccess', _360 => _360.presentedNodeId]);
19669
19731
  return desktopMatch || mobileMatch;
19670
19732
  });
19671
19733
  if (matchingSection && matchingSection.id !== activeSection) {
19672
19734
  if (!externalActiveSection) {
19673
19735
  setInternalActiveSection(matchingSection.id);
19674
19736
  }
19675
- _optionalChain([config, 'access', _353 => _353.onSectionChange, 'optionalCall', _354 => _354(matchingSection.id)]);
19737
+ _optionalChain([config, 'access', _361 => _361.onSectionChange, 'optionalCall', _362 => _362(matchingSection.id)]);
19676
19738
  }
19677
19739
  }
19678
19740
  }
@@ -19685,7 +19747,7 @@ var FigmaPrototypeViewer = ({
19685
19747
  }, [config.sections, activeSection, isNavigating, externalActiveSection, config.onSectionChange, viewMode]);
19686
19748
  const navigateToSection = _react.useCallback.call(void 0, (sectionId) => {
19687
19749
  const section = config.sections.find((s) => s.id === sectionId);
19688
- if (!section || !_optionalChain([iframeRef, 'access', _355 => _355.current, 'optionalAccess', _356 => _356.contentWindow]) || !isInitialized) {
19750
+ if (!section || !_optionalChain([iframeRef, 'access', _363 => _363.current, 'optionalAccess', _364 => _364.contentWindow]) || !isInitialized) {
19689
19751
  return;
19690
19752
  }
19691
19753
  setIsNavigating(true);
@@ -19693,7 +19755,7 @@ var FigmaPrototypeViewer = ({
19693
19755
  if (!externalActiveSection) {
19694
19756
  setInternalActiveSection(sectionId);
19695
19757
  }
19696
- _optionalChain([config, 'access', _357 => _357.onSectionChange, 'optionalCall', _358 => _358(sectionId)]);
19758
+ _optionalChain([config, 'access', _365 => _365.onSectionChange, 'optionalCall', _366 => _366(sectionId)]);
19697
19759
  const command = {
19698
19760
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
19699
19761
  data: { nodeId }
@@ -20013,7 +20075,7 @@ var FiltersDropdown = ({
20013
20075
  defaults[section.id] = section.defaultSelected || [];
20014
20076
  });
20015
20077
  setSelectedFilters(defaults);
20016
- _optionalChain([onReset, 'optionalCall', _359 => _359()]);
20078
+ _optionalChain([onReset, 'optionalCall', _367 => _367()]);
20017
20079
  setIsOpen(false);
20018
20080
  };
20019
20081
  const handleApply = () => {
@@ -20306,7 +20368,7 @@ function MediaGalleryManager({
20306
20368
  const [deletingIndex, setDeletingIndex] = _react.useState.call(void 0, null);
20307
20369
  const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
20308
20370
  const handleFileSelect = _react.useCallback.call(void 0, async (event) => {
20309
- const file = _optionalChain([event, 'access', _360 => _360.target, 'access', _361 => _361.files, 'optionalAccess', _362 => _362[0]]);
20371
+ const file = _optionalChain([event, 'access', _368 => _368.target, 'access', _369 => _369.files, 'optionalAccess', _370 => _370[0]]);
20310
20372
  if (!file) return;
20311
20373
  let mediaType;
20312
20374
  if (file.type.startsWith("image/")) {
@@ -20421,7 +20483,7 @@ function MediaGalleryManager({
20421
20483
  {
20422
20484
  type: "button",
20423
20485
  variant: "outline",
20424
- onClick: () => _optionalChain([fileInputRef, 'access', _363 => _363.current, 'optionalAccess', _364 => _364.click, 'call', _365 => _365()]),
20486
+ onClick: () => _optionalChain([fileInputRef, 'access', _371 => _371.current, 'optionalAccess', _372 => _372.click, 'call', _373 => _373()]),
20425
20487
  disabled: isUploading,
20426
20488
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
20427
20489
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -21072,7 +21134,7 @@ function ReleaseMediaManager({
21072
21134
  const fileInputRef = _react.useRef.call(void 0, null);
21073
21135
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
21074
21136
  const handleFileSelect = async (event) => {
21075
- const file = _optionalChain([event, 'access', _366 => _366.target, 'access', _367 => _367.files, 'optionalAccess', _368 => _368[0]]);
21137
+ const file = _optionalChain([event, 'access', _374 => _374.target, 'access', _375 => _375.files, 'optionalAccess', _376 => _376[0]]);
21076
21138
  if (!file) return;
21077
21139
  let mediaType;
21078
21140
  if (file.type.startsWith("image/")) {
@@ -21152,7 +21214,7 @@ function ReleaseMediaManager({
21152
21214
  {
21153
21215
  type: "button",
21154
21216
  variant: "outline",
21155
- onClick: () => _optionalChain([fileInputRef, 'access', _369 => _369.current, 'optionalAccess', _370 => _370.click, 'call', _371 => _371()]),
21217
+ onClick: () => _optionalChain([fileInputRef, 'access', _377 => _377.current, 'optionalAccess', _378 => _378.click, 'call', _379 => _379()]),
21156
21218
  disabled: uploadingIndex !== null,
21157
21219
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
21158
21220
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -21365,7 +21427,7 @@ function SEOEditorPreview({
21365
21427
  const displayImage = hasOgImage || hasFeaturedImage;
21366
21428
  const handleImageUpload = async (event) => {
21367
21429
  if (!onOgImageUpload) return;
21368
- const file = _optionalChain([event, 'access', _372 => _372.target, 'access', _373 => _373.files, 'optionalAccess', _374 => _374[0]]);
21430
+ const file = _optionalChain([event, 'access', _380 => _380.target, 'access', _381 => _381.files, 'optionalAccess', _382 => _382[0]]);
21369
21431
  if (!file) return;
21370
21432
  setIsUploading(true);
21371
21433
  try {
@@ -21496,7 +21558,7 @@ function SEOEditorPreview({
21496
21558
  type: "button",
21497
21559
  variant: "outline",
21498
21560
  size: "icon",
21499
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _375 => _375.click, 'call', _376 => _376()]),
21561
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _383 => _383.click, 'call', _384 => _384()]),
21500
21562
  disabled: disabled || isUploading,
21501
21563
  className: "bg-white text-black hover:bg-gray-100 rounded-full opacity-0 group-hover:opacity-100",
21502
21564
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -21519,7 +21581,7 @@ function SEOEditorPreview({
21519
21581
  "div",
21520
21582
  {
21521
21583
  className: "h-full min-h-[280px] border-2 border-dashed border-ods-border rounded-lg flex flex-col items-center justify-center cursor-pointer hover:border-ods-accent transition-colors bg-ods-bg-hover",
21522
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _377 => _377.click, 'call', _378 => _378()]),
21584
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _385 => _385.click, 'call', _386 => _386()]),
21523
21585
  children: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
21524
21586
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-8 w-8 text-ods-text-secondary mb-2" }),
21525
21587
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm text-ods-text-secondary font-['DM_Sans']", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
@@ -21604,7 +21666,7 @@ function SocialLinksManager({
21604
21666
  className = ""
21605
21667
  }) {
21606
21668
  const addLink = () => {
21607
- const firstPlatform = _optionalChain([platforms, 'access', _379 => _379[0], 'optionalAccess', _380 => _380.name]) || "website";
21669
+ const firstPlatform = _optionalChain([platforms, 'access', _387 => _387[0], 'optionalAccess', _388 => _388.name]) || "website";
21608
21670
  onChange([...links, { platform: firstPlatform, url: "" }]);
21609
21671
  };
21610
21672
  const removeLink = (index) => {
@@ -21616,7 +21678,7 @@ function SocialLinksManager({
21616
21678
  onChange(updated);
21617
21679
  };
21618
21680
  const getIcon = (link, platform) => {
21619
- const iconKey = _optionalChain([platform, 'optionalAccess', _381 => _381.icon_name]) || link.platform;
21681
+ const iconKey = _optionalChain([platform, 'optionalAccess', _389 => _389.icon_name]) || link.platform;
21620
21682
  const IconComponent = iconMap[iconKey];
21621
21683
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "w-5 h-5 text-ods-text-secondary" }) : null;
21622
21684
  };
@@ -21641,7 +21703,7 @@ function SocialLinksManager({
21641
21703
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21642
21704
  _chunkGRTZ23GLcjs.Input,
21643
21705
  {
21644
- placeholder: _optionalChain([platform, 'optionalAccess', _382 => _382.placeholder]) || "Profile URL",
21706
+ placeholder: _optionalChain([platform, 'optionalAccess', _390 => _390.placeholder]) || "Profile URL",
21645
21707
  value: link.url,
21646
21708
  onChange: (e) => updateLink(index, "url", e.target.value),
21647
21709
  onKeyDown: (e) => {
@@ -21993,7 +22055,7 @@ function useVideoOriginPreconnect({
21993
22055
  supabaseStorageOrigin
21994
22056
  } = {}) {
21995
22057
  const runtime = _chunkMEAR2WHScjs.useChatRuntime.call(void 0, );
21996
- const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _383 => _383.endpoints, 'access', _384 => _384.supabaseStorageOrigin])));
22058
+ const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _391 => _391.endpoints, 'access', _392 => _392.supabaseStorageOrigin])));
21997
22059
  try {
21998
22060
  ReactDOM2.default.preconnect(MUX_STREAM_ORIGIN, { crossOrigin: "anonymous" });
21999
22061
  ReactDOM2.default.preconnect(MUX_IMAGE_ORIGIN, { crossOrigin: "anonymous" });
@@ -22012,13 +22074,13 @@ function useVideoWarmup({
22012
22074
  nearMargin = "1000px"
22013
22075
  } = {}) {
22014
22076
  const runtime = _chunkMEAR2WHScjs.useChatRuntime.call(void 0, );
22015
- const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _385 => _385.endpoints, 'access', _386 => _386.supabaseStorageOrigin])));
22077
+ const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _393 => _393.endpoints, 'access', _394 => _394.supabaseStorageOrigin])));
22016
22078
  useVideoOriginPreconnect({ supabaseStorageOrigin: resolvedOrigin });
22017
22079
  const { ref, isNear } = _chunk27VVOBDBcjs.useNearViewport.call(void 0, nearMargin);
22018
22080
  _react.useEffect.call(void 0, () => {
22019
22081
  if (!isNear || !videoUrl || !resolvedOrigin) return;
22020
22082
  const conn = navigator.connection;
22021
- if (_optionalChain([conn, 'optionalAccess', _387 => _387.saveData]) === true) return;
22083
+ if (_optionalChain([conn, 'optionalAccess', _395 => _395.saveData]) === true) return;
22022
22084
  let videoOrigin;
22023
22085
  try {
22024
22086
  videoOrigin = new URL(videoUrl, "http://placeholder.local").origin;
@@ -22087,7 +22149,7 @@ function VideoSourceSelector({
22087
22149
  input.accept = "video/*";
22088
22150
  input.onchange = async (e) => {
22089
22151
  const target = e.target;
22090
- const file = _optionalChain([target, 'access', _388 => _388.files, 'optionalAccess', _389 => _389[0]]);
22152
+ const file = _optionalChain([target, 'access', _396 => _396.files, 'optionalAccess', _397 => _397[0]]);
22091
22153
  if (!file) return;
22092
22154
  setIsUploading(true);
22093
22155
  setUploadProgress(0);
@@ -22417,7 +22479,7 @@ function TranscriptSummaryEditor({
22417
22479
  {
22418
22480
  id: "subtitles",
22419
22481
  value: subtitles || "",
22420
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _390 => _390(e.target.value)]),
22482
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _398 => _398(e.target.value)]),
22421
22483
  placeholder: subtitlesPlaceholder,
22422
22484
  disabled: disabled || !onSubtitlesChange,
22423
22485
  className: "h-full w-full resize-none border-0 bg-transparent text-ods-text-primary placeholder:text-ods-text-secondary/50 focus:ring-0 focus:outline-none p-4 font-mono text-sm",
@@ -22570,7 +22632,7 @@ var AIEnrichSection = ({
22570
22632
  }) => {
22571
22633
  const hasResults = status === "success" || status === "error";
22572
22634
  const shouldDisable = disabled || !canEnrich;
22573
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _391 => _391.filter, 'call', _392 => _392((f) => !f.isFilled)]) || [];
22635
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _399 => _399.filter, 'call', _400 => _400((f) => !f.isFilled)]) || [];
22574
22636
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
22575
22637
  "div",
22576
22638
  {
@@ -22608,7 +22670,7 @@ var AIEnrichSection = ({
22608
22670
  {
22609
22671
  id: "ai-enrich-custom-instructions",
22610
22672
  value: _nullishCoalesce(customInstructions, () => ( "")),
22611
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _393 => _393(e.target.value)]),
22673
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _401 => _401(e.target.value)]),
22612
22674
  placeholder: customInstructionsPlaceholder,
22613
22675
  disabled: loading,
22614
22676
  maxLength: customInstructionsMaxLength,
@@ -22737,7 +22799,7 @@ function HighlightVideoSection({
22737
22799
  input.accept = "video/*";
22738
22800
  input.onchange = async (e) => {
22739
22801
  const target = e.target;
22740
- const file = _optionalChain([target, 'access', _394 => _394.files, 'optionalAccess', _395 => _395[0]]);
22802
+ const file = _optionalChain([target, 'access', _402 => _402.files, 'optionalAccess', _403 => _403[0]]);
22741
22803
  if (!file) return;
22742
22804
  setUploadError(null);
22743
22805
  try {
@@ -23239,7 +23301,7 @@ function HighlightVideoPreview({
23239
23301
  input.accept = "video/*";
23240
23302
  input.onchange = async (e) => {
23241
23303
  const target = e.target;
23242
- const file = _optionalChain([target, 'access', _396 => _396.files, 'optionalAccess', _397 => _397[0]]);
23304
+ const file = _optionalChain([target, 'access', _404 => _404.files, 'optionalAccess', _405 => _405[0]]);
23243
23305
  if (!file) return;
23244
23306
  await onUpload(file);
23245
23307
  };
@@ -23426,7 +23488,7 @@ function HighlightVideoCombinedSection({
23426
23488
  input.accept = "video/*";
23427
23489
  input.onchange = async (e) => {
23428
23490
  const target = e.target;
23429
- const file = _optionalChain([target, 'access', _398 => _398.files, 'optionalAccess', _399 => _399[0]]);
23491
+ const file = _optionalChain([target, 'access', _406 => _406.files, 'optionalAccess', _407 => _407[0]]);
23430
23492
  if (!file) return;
23431
23493
  await onUpload(file);
23432
23494
  };
@@ -23723,7 +23785,7 @@ var getApprovalLevelLabel = (level, editMode = false) => {
23723
23785
  return editMode ? "Set Global Permission" : "";
23724
23786
  }
23725
23787
  const option = approvalLevelOptions.find((opt) => opt.value === level);
23726
- return _optionalChain([option, 'optionalAccess', _400 => _400.label]) || level;
23788
+ return _optionalChain([option, 'optionalAccess', _408 => _408.label]) || level;
23727
23789
  };
23728
23790
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
23729
23791
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-bg border-b border-ods-border flex gap-4 items-center px-4 py-3", children: [
@@ -23837,7 +23899,6 @@ var CategorySection = ({
23837
23899
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23838
23900
  _chunkGRTZ23GLcjs.Button,
23839
23901
  {
23840
- type: "button",
23841
23902
  variant: "transparent",
23842
23903
  onClick: (e) => {
23843
23904
  e.stopPropagation();
@@ -23937,12 +23998,12 @@ function PhoneInput({
23937
23998
  const runValidation = _react.useCallback.call(void 0, (phone) => {
23938
23999
  if (!phone || digitCount(phone) === 0) {
23939
24000
  setIsInvalid(false);
23940
- _optionalChain([onValidationChange, 'optionalCall', _401 => _401(false)]);
24001
+ _optionalChain([onValidationChange, 'optionalCall', _409 => _409(false)]);
23941
24002
  return;
23942
24003
  }
23943
24004
  const invalid = !validatePhoneNumber(phone, countryCode);
23944
24005
  setIsInvalid(invalid);
23945
- _optionalChain([onValidationChange, 'optionalCall', _402 => _402(invalid)]);
24006
+ _optionalChain([onValidationChange, 'optionalCall', _410 => _410(invalid)]);
23946
24007
  }, [countryCode, digitCount, onValidationChange]);
23947
24008
  const debouncedValidation = _react.useCallback.call(void 0, (phone) => {
23948
24009
  if (debounceRef.current) clearTimeout(debounceRef.current);
@@ -23991,7 +24052,7 @@ function PhoneInput({
23991
24052
  debouncedValidation(val);
23992
24053
  } else if (digitCount(val) === 0) {
23993
24054
  setIsInvalid(false);
23994
- _optionalChain([onValidationChange, 'optionalCall', _403 => _403(false)]);
24055
+ _optionalChain([onValidationChange, 'optionalCall', _411 => _411(false)]);
23995
24056
  }
23996
24057
  }
23997
24058
  },
@@ -24327,19 +24388,19 @@ function NotificationsProvider({
24327
24388
  }, []);
24328
24389
  const markRead = React81.useCallback((id) => {
24329
24390
  dispatch({ type: "markRead", id });
24330
- void _optionalChain([actionsRef, 'access', _404 => _404.current, 'optionalAccess', _405 => _405.onMarkRead, 'optionalCall', _406 => _406(id)]);
24391
+ void _optionalChain([actionsRef, 'access', _412 => _412.current, 'optionalAccess', _413 => _413.onMarkRead, 'optionalCall', _414 => _414(id)]);
24331
24392
  }, []);
24332
24393
  const markAllRead = React81.useCallback(() => {
24333
24394
  dispatch({ type: "markAllRead" });
24334
- void _optionalChain([actionsRef, 'access', _407 => _407.current, 'optionalAccess', _408 => _408.onMarkAllRead, 'optionalCall', _409 => _409()]);
24395
+ void _optionalChain([actionsRef, 'access', _415 => _415.current, 'optionalAccess', _416 => _416.onMarkAllRead, 'optionalCall', _417 => _417()]);
24335
24396
  }, []);
24336
24397
  const markSettled = React81.useCallback((id) => {
24337
24398
  dispatch({ type: "markSettled", id });
24338
- void _optionalChain([actionsRef, 'access', _410 => _410.current, 'optionalAccess', _411 => _411.onMarkSettled, 'optionalCall', _412 => _412(id)]);
24399
+ void _optionalChain([actionsRef, 'access', _418 => _418.current, 'optionalAccess', _419 => _419.onMarkSettled, 'optionalCall', _420 => _420(id)]);
24339
24400
  }, []);
24340
24401
  const remove = React81.useCallback((id) => {
24341
24402
  dispatch({ type: "remove", id });
24342
- void _optionalChain([actionsRef, 'access', _413 => _413.current, 'optionalAccess', _414 => _414.onRemove, 'optionalCall', _415 => _415(id)]);
24403
+ void _optionalChain([actionsRef, 'access', _421 => _421.current, 'optionalAccess', _422 => _422.onRemove, 'optionalCall', _423 => _423(id)]);
24343
24404
  }, []);
24344
24405
  const clear = React81.useCallback(() => dispatch({ type: "clear" }), []);
24345
24406
  const open = React81.useCallback(() => setIsOpen(true), []);
@@ -24348,7 +24409,7 @@ function NotificationsProvider({
24348
24409
  const setShowPopups = React81.useCallback(
24349
24410
  (value2) => {
24350
24411
  setShowPopupsState(value2);
24351
- _optionalChain([onShowPopupsChange, 'optionalCall', _416 => _416(value2)]);
24412
+ _optionalChain([onShowPopupsChange, 'optionalCall', _424 => _424(value2)]);
24352
24413
  },
24353
24414
  [onShowPopupsChange]
24354
24415
  );
@@ -24445,7 +24506,7 @@ function NotificationTile({
24445
24506
  if (!counting) return;
24446
24507
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
24447
24508
  const timer = window.setTimeout(() => {
24448
- _optionalChain([onSettle, 'optionalCall', _417 => _417(id)]);
24509
+ _optionalChain([onSettle, 'optionalCall', _425 => _425(id)]);
24449
24510
  }, remaining);
24450
24511
  return () => window.clearTimeout(timer);
24451
24512
  }, [id, counting, initialElapsed, liveDurationMs, onSettle]);
@@ -24507,7 +24568,7 @@ function NotificationTile({
24507
24568
  "button",
24508
24569
  {
24509
24570
  type: "button",
24510
- onClick: () => _optionalChain([onSettle, 'optionalCall', _418 => _418(id)]),
24571
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _426 => _426(id)]),
24511
24572
  "aria-label": "Dismiss notification",
24512
24573
  tabIndex: isLive ? 0 : -1,
24513
24574
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
@@ -24626,7 +24687,7 @@ function DrawerScrollList({
24626
24687
  if (!sentinel || !root) return;
24627
24688
  const observer = new IntersectionObserver(
24628
24689
  (entries) => {
24629
- if (_optionalChain([entries, 'access', _419 => _419[0], 'optionalAccess', _420 => _420.isIntersecting])) _optionalChain([loadMoreRef, 'access', _421 => _421.current, 'optionalCall', _422 => _422()]);
24690
+ if (_optionalChain([entries, 'access', _427 => _427[0], 'optionalAccess', _428 => _428.isIntersecting])) _optionalChain([loadMoreRef, 'access', _429 => _429.current, 'optionalCall', _430 => _430()]);
24630
24691
  },
24631
24692
  { root, rootMargin: loadMoreRootMargin }
24632
24693
  );
@@ -24641,7 +24702,7 @@ function DrawerScrollList({
24641
24702
  className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
24642
24703
  children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
24643
24704
  unreadNotifications.map((n) => {
24644
- const custom = _optionalChain([renderTile, 'optionalCall', _423 => _423(n, { onComplete, onSettle, liveDurationMs })]);
24705
+ const custom = _optionalChain([renderTile, 'optionalCall', _431 => _431(n, { onComplete, onSettle, liveDurationMs })]);
24645
24706
  if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
24646
24707
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24647
24708
  NotificationTile,
@@ -24770,7 +24831,7 @@ function NotificationPopups({
24770
24831
  className
24771
24832
  ),
24772
24833
  children: live.map((n) => {
24773
- const custom = _optionalChain([renderTile, 'optionalCall', _424 => _424(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
24834
+ const custom = _optionalChain([renderTile, 'optionalCall', _432 => _432(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
24774
24835
  if (custom) {
24775
24836
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
24776
24837
  }
@@ -24809,19 +24870,19 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
24809
24870
  // src/components/features/notifications/types.ts
24810
24871
  var ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = "ADMIN_APPROVAL_REQUEST";
24811
24872
  function isApprovalNotification(notification) {
24812
- return _optionalChain([notification, 'access', _425 => _425.meta, 'optionalAccess', _426 => _426.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
24873
+ return _optionalChain([notification, 'access', _433 => _433.meta, 'optionalAccess', _434 => _434.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
24813
24874
  }
24814
24875
  function getApprovalMeta(notification) {
24815
24876
  if (!isApprovalNotification(notification)) return null;
24816
24877
  const meta = notification.meta;
24817
- const approvalRequestId = _optionalChain([meta, 'optionalAccess', _427 => _427.approvalRequestId]);
24818
- const toolCalls = _optionalChain([meta, 'optionalAccess', _428 => _428.toolCalls]);
24878
+ const approvalRequestId = _optionalChain([meta, 'optionalAccess', _435 => _435.approvalRequestId]);
24879
+ const toolCalls = _optionalChain([meta, 'optionalAccess', _436 => _436.toolCalls]);
24819
24880
  if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
24820
24881
  return {
24821
24882
  approvalRequestId,
24822
- dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _429 => _429.dialogId]), () => ( null)),
24823
- ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _430 => _430.ticketId]), () => ( null)),
24824
- approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _431 => _431.approvalType]), () => ( null)),
24883
+ dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _437 => _437.dialogId]), () => ( null)),
24884
+ ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _438 => _438.ticketId]), () => ( null)),
24885
+ approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _439 => _439.approvalType]), () => ( null)),
24825
24886
  toolCalls
24826
24887
  };
24827
24888
  }
@@ -25082,15 +25143,15 @@ function TicketCard({
25082
25143
  transform: _utilities.CSS.Transform.toString(sortable.transform),
25083
25144
  transition: sortable.transition
25084
25145
  };
25085
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _432 => _432.deviceHostnames, 'optionalAccess', _433 => _433.length]) || ticket.organizationName);
25146
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _440 => _440.deviceHostnames, 'optionalAccess', _441 => _441.length]) || ticket.organizationName);
25086
25147
  const deviceText = [
25087
- _optionalChain([ticket, 'access', _434 => _434.deviceHostnames, 'optionalAccess', _435 => _435.join, 'call', _436 => _436(", ")]),
25148
+ _optionalChain([ticket, 'access', _442 => _442.deviceHostnames, 'optionalAccess', _443 => _443.join, 'call', _444 => _444(", ")]),
25088
25149
  ticket.organizationName
25089
25150
  ].filter(Boolean).join(", ");
25090
25151
  const handleClick = (e) => {
25091
25152
  if (sortable.isDragging) e.preventDefault();
25092
25153
  };
25093
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _437 => _437.assignees, 'optionalAccess', _438 => _438.length]) || renderAssignSlot);
25154
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _445 => _445.assignees, 'optionalAccess', _446 => _446.length]) || renderAssignSlot);
25094
25155
  const rightSection = hasRightSection ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex shrink-0 items-center gap-[var(--spacing-system-xsf)]", children: [
25095
25156
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25096
25157
  _chunkC6ASEPZLcjs.Flag02Icon,
@@ -25099,7 +25160,7 @@ function TicketCard({
25099
25160
  "aria-label": `Priority: ${ticket.priority}`
25100
25161
  }
25101
25162
  ),
25102
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _439 => _439.assignees, 'optionalAccess', _440 => _440.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
25163
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _447 => _447.assignees, 'optionalAccess', _448 => _448.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
25103
25164
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25104
25165
  SquareAvatar,
25105
25166
  {
@@ -25128,7 +25189,7 @@ function TicketCard({
25128
25189
  ] }),
25129
25190
  rightSection
25130
25191
  ] }),
25131
- _optionalChain([ticket, 'access', _441 => _441.tags, 'optionalAccess', _442 => _442.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
25192
+ _optionalChain([ticket, 'access', _449 => _449.tags, 'optionalAccess', _450 => _450.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
25132
25193
  ] });
25133
25194
  const cardClasses = _chunkFIG2RKZFcjs.cn.call(void 0,
25134
25195
  "relative flex flex-col gap-[var(--spacing-system-sf)] rounded-md border border-ods-border bg-ods-bg p-[var(--spacing-system-sf)] select-none text-left",
@@ -25303,7 +25364,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
25303
25364
  const observer = new IntersectionObserver(
25304
25365
  (entries) => {
25305
25366
  if (entries.some((e) => e.isIntersecting)) {
25306
- _optionalChain([loadMoreRef, 'access', _443 => _443.current, 'optionalCall', _444 => _444(columnIdRef.current)]);
25367
+ _optionalChain([loadMoreRef, 'access', _451 => _451.current, 'optionalCall', _452 => _452(columnIdRef.current)]);
25307
25368
  }
25308
25369
  },
25309
25370
  { root, rootMargin: loadMoreRootMargin }
@@ -25332,7 +25393,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
25332
25393
  {
25333
25394
  ticket: t,
25334
25395
  columnId: column.id,
25335
- href: _optionalChain([getTicketHref, 'optionalCall', _445 => _445(t.id)]),
25396
+ href: _optionalChain([getTicketHref, 'optionalCall', _453 => _453(t.id)]),
25336
25397
  renderAssignSlot,
25337
25398
  dragDisabled: column.dragDisabled
25338
25399
  },
@@ -25428,17 +25489,17 @@ function Board({
25428
25489
  const pointer = _core.pointerWithin.call(void 0, args);
25429
25490
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
25430
25491
  const ticketHit = intersections.find(
25431
- (c) => _optionalChain([c, 'access', _446 => _446.data, 'optionalAccess', _447 => _447.droppableContainer, 'optionalAccess', _448 => _448.data, 'optionalAccess', _449 => _449.current, 'optionalAccess', _450 => _450.type]) === "ticket"
25492
+ (c) => _optionalChain([c, 'access', _454 => _454.data, 'optionalAccess', _455 => _455.droppableContainer, 'optionalAccess', _456 => _456.data, 'optionalAccess', _457 => _457.current, 'optionalAccess', _458 => _458.type]) === "ticket"
25432
25493
  );
25433
25494
  if (ticketHit) return [ticketHit];
25434
25495
  const columnHit = intersections.find(
25435
- (c) => _optionalChain([c, 'access', _451 => _451.data, 'optionalAccess', _452 => _452.droppableContainer, 'optionalAccess', _453 => _453.data, 'optionalAccess', _454 => _454.current, 'optionalAccess', _455 => _455.type]) === "column"
25496
+ (c) => _optionalChain([c, 'access', _459 => _459.data, 'optionalAccess', _460 => _460.droppableContainer, 'optionalAccess', _461 => _461.data, 'optionalAccess', _462 => _462.current, 'optionalAccess', _463 => _463.type]) === "column"
25436
25497
  );
25437
25498
  if (columnHit) {
25438
- const columnId = _optionalChain([columnHit, 'access', _456 => _456.data, 'optionalAccess', _457 => _457.droppableContainer, 'optionalAccess', _458 => _458.data, 'optionalAccess', _459 => _459.current, 'optionalAccess', _460 => _460.columnId]);
25499
+ const columnId = _optionalChain([columnHit, 'access', _464 => _464.data, 'optionalAccess', _465 => _465.droppableContainer, 'optionalAccess', _466 => _466.data, 'optionalAccess', _467 => _467.current, 'optionalAccess', _468 => _468.columnId]);
25439
25500
  const ticketsInColumn = args.droppableContainers.filter((c) => {
25440
25501
  const d = c.data.current;
25441
- return _optionalChain([d, 'optionalAccess', _461 => _461.type]) === "ticket" && d.columnId === columnId;
25502
+ return _optionalChain([d, 'optionalAccess', _469 => _469.type]) === "ticket" && d.columnId === columnId;
25442
25503
  });
25443
25504
  if (ticketsInColumn.length > 0) {
25444
25505
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -25463,20 +25524,20 @@ function Board({
25463
25524
  const overId = String(over.id);
25464
25525
  if (activeId === overId) return;
25465
25526
  const overData = over.data.current;
25466
- const fromColumnId = _optionalChain([locate, 'call', _462 => _462(items, activeId), 'optionalAccess', _463 => _463.columnId]);
25467
- const toColumnId = _optionalChain([overData, 'optionalAccess', _464 => _464.columnId]);
25527
+ const fromColumnId = _optionalChain([locate, 'call', _470 => _470(items, activeId), 'optionalAccess', _471 => _471.columnId]);
25528
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _472 => _472.columnId]);
25468
25529
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
25469
25530
  const origin = dragOriginRef.current;
25470
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _465 => _465.fromColumnId]) === toColumnId;
25531
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _473 => _473.fromColumnId]) === toColumnId;
25471
25532
  const targetCol = items.find((c) => c.id === toColumnId);
25472
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _466 => _466.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
25473
- if (_optionalChain([targetCol, 'optionalAccess', _467 => _467.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
25533
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _474 => _474.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
25534
+ if (_optionalChain([targetCol, 'optionalAccess', _475 => _475.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
25474
25535
  setItems((prev) => {
25475
25536
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
25476
25537
  const toCol = prev.find((c) => c.id === toColumnId);
25477
25538
  if (fromIndex < 0 || !toCol) return prev;
25478
25539
  let toIndex;
25479
- if (_optionalChain([overData, 'optionalAccess', _468 => _468.type]) === "column") {
25540
+ if (_optionalChain([overData, 'optionalAccess', _476 => _476.type]) === "column") {
25480
25541
  toIndex = toCol.tickets.length;
25481
25542
  } else {
25482
25543
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -25518,14 +25579,14 @@ function Board({
25518
25579
  const toColumnId = located.columnId;
25519
25580
  const isCrossColumn = origin.fromColumnId !== toColumnId;
25520
25581
  const targetCol = items.find((c) => c.id === toColumnId);
25521
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _469 => _469.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _470 => _470.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
25582
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _477 => _477.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _478 => _478.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
25522
25583
  setItems(columns);
25523
25584
  return;
25524
25585
  }
25525
25586
  let finalIndex = located.index;
25526
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _471 => _471.find, 'call', _472 => _472((c) => c.id === toColumnId), 'optionalAccess', _473 => _473.tickets]), () => ( []));
25587
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _479 => _479.find, 'call', _480 => _480((c) => c.id === toColumnId), 'optionalAccess', _481 => _481.tickets]), () => ( []));
25527
25588
  const overData = over.data.current;
25528
- if (_optionalChain([overData, 'optionalAccess', _474 => _474.type]) === "ticket") {
25589
+ if (_optionalChain([overData, 'optionalAccess', _482 => _482.type]) === "ticket") {
25529
25590
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
25530
25591
  if (overIndex >= 0 && overIndex !== located.index) {
25531
25592
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -25545,8 +25606,8 @@ function Board({
25545
25606
  ticketId: origin.ticketId,
25546
25607
  fromColumnId: origin.fromColumnId,
25547
25608
  toColumnId,
25548
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _475 => _475[finalIndex - 1], 'optionalAccess', _476 => _476.id]), () => ( null)),
25549
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _477 => _477[finalIndex + 1], 'optionalAccess', _478 => _478.id]), () => ( null))
25609
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _483 => _483[finalIndex - 1], 'optionalAccess', _484 => _484.id]), () => ( null)),
25610
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _485 => _485[finalIndex + 1], 'optionalAccess', _486 => _486.id]), () => ( null))
25550
25611
  });
25551
25612
  };
25552
25613
  const handleDragCancel = () => {
@@ -25575,8 +25636,8 @@ function Board({
25575
25636
  children: items.map((column, i) => {
25576
25637
  const prev = items[i - 1];
25577
25638
  const next = items[i + 1];
25578
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _479 => _479.system]));
25579
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _480 => _480.system]));
25639
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _487 => _487.system]));
25640
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _488 => _488.system]));
25580
25641
  const showGap = i > 0 && !joinLeft;
25581
25642
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React85.Fragment, { children: [
25582
25643
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -25635,7 +25696,7 @@ function locate(cols, ticketId) {
25635
25696
  return null;
25636
25697
  }
25637
25698
  function findIndexInColumn(cols, columnId, ticketId) {
25638
- return _nullishCoalesce(_optionalChain([cols, 'access', _481 => _481.find, 'call', _482 => _482((c) => c.id === columnId), 'optionalAccess', _483 => _483.tickets, 'access', _484 => _484.findIndex, 'call', _485 => _485((t) => t.id === ticketId)]), () => ( -1));
25699
+ return _nullishCoalesce(_optionalChain([cols, 'access', _489 => _489.find, 'call', _490 => _490((c) => c.id === columnId), 'optionalAccess', _491 => _491.tickets, 'access', _492 => _492.findIndex, 'call', _493 => _493((t) => t.id === ticketId)]), () => ( -1));
25639
25700
  }
25640
25701
 
25641
25702
  // src/components/features/board/types.ts
@@ -25883,7 +25944,7 @@ function Header2({ config, platform }) {
25883
25944
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
25884
25945
  "flex justify-start w-full",
25885
25946
  "font-bold text-[16px] leading-none tracking-[-0.32px]",
25886
- index < (_nullishCoalesce(_optionalChain([item, 'access', _486 => _486.children, 'optionalAccess', _487 => _487.length]), () => ( 0))) - 1 && "mb-1",
25947
+ index < (_nullishCoalesce(_optionalChain([item, 'access', _494 => _494.children, 'optionalAccess', _495 => _495.length]), () => ( 0))) - 1 && "mb-1",
25887
25948
  "text-ods-text-primary",
25888
25949
  // All dropdown items use primary text color
25889
25950
  child.isActive && "bg-ods-bg-hover"
@@ -25975,7 +26036,7 @@ function Header2({ config, platform }) {
25975
26036
  style: config.style,
25976
26037
  children: [
25977
26038
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
25978
- _optionalChain([config, 'access', _488 => _488.actions, 'optionalAccess', _489 => _489.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
26039
+ _optionalChain([config, 'access', _496 => _496.actions, 'optionalAccess', _497 => _497.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
25979
26040
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWBR7H6E3cjs.next_link_default, { href: config.logo.href, className: "transition-opacity duration-200 hover:opacity-80", children: config.logo.element })
25980
26041
  ] }),
25981
26042
  config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -25992,7 +26053,7 @@ function Header2({ config, platform }) {
25992
26053
  }
25993
26054
  ),
25994
26055
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-end gap-4 flex-shrink-0", children: [
25995
- _optionalChain([config, 'access', _490 => _490.actions, 'optionalAccess', _491 => _491.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
26056
+ _optionalChain([config, 'access', _498 => _498.actions, 'optionalAccess', _499 => _499.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
25996
26057
  config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25997
26058
  _chunkGRTZ23GLcjs.Button,
25998
26059
  {
@@ -26000,10 +26061,10 @@ function Header2({ config, platform }) {
26000
26061
  size: "icon",
26001
26062
  className: "flex md:hidden",
26002
26063
  onClick: () => {
26003
- _optionalChain([config, 'access', _492 => _492.mobile, 'optionalAccess', _493 => _493.onToggle, 'optionalCall', _494 => _494()]);
26064
+ _optionalChain([config, 'access', _500 => _500.mobile, 'optionalAccess', _501 => _501.onToggle, 'optionalCall', _502 => _502()]);
26004
26065
  },
26005
- "aria-label": _optionalChain([config, 'access', _495 => _495.mobile, 'optionalAccess', _496 => _496.isOpen]) ? "Close menu" : "Open menu",
26006
- leftIcon: _optionalChain([config, 'access', _497 => _497.mobile, 'optionalAccess', _498 => _498.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Menu01Icon, {})
26066
+ "aria-label": _optionalChain([config, 'access', _503 => _503.mobile, 'optionalAccess', _504 => _504.isOpen]) ? "Close menu" : "Open menu",
26067
+ leftIcon: _optionalChain([config, 'access', _505 => _505.mobile, 'optionalAccess', _506 => _506.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Menu01Icon, {})
26007
26068
  }
26008
26069
  )
26009
26070
  ] })
@@ -26020,10 +26081,10 @@ function Header2({ config, platform }) {
26020
26081
  // src/components/navigation/header-skeleton.tsx
26021
26082
 
26022
26083
  function HeaderSkeleton({ config }) {
26023
- const showNavigation = _optionalChain([config, 'optionalAccess', _499 => _499.navigation]) && config.navigation.items.length > 0;
26024
- const showActions = _optionalChain([config, 'optionalAccess', _500 => _500.actions, 'optionalAccess', _501 => _501.right]) && config.actions.right.length > 0;
26025
- const showMobileMenu = _optionalChain([config, 'optionalAccess', _502 => _502.mobile, 'optionalAccess', _503 => _503.enabled]);
26026
- const isAdminHeader = _optionalChain([config, 'optionalAccess', _504 => _504.className, 'optionalAccess', _505 => _505.includes, 'call', _506 => _506("admin")]);
26084
+ const showNavigation = _optionalChain([config, 'optionalAccess', _507 => _507.navigation]) && config.navigation.items.length > 0;
26085
+ const showActions = _optionalChain([config, 'optionalAccess', _508 => _508.actions, 'optionalAccess', _509 => _509.right]) && config.actions.right.length > 0;
26086
+ const showMobileMenu = _optionalChain([config, 'optionalAccess', _510 => _510.mobile, 'optionalAccess', _511 => _511.enabled]);
26087
+ const isAdminHeader = _optionalChain([config, 'optionalAccess', _512 => _512.className, 'optionalAccess', _513 => _513.includes, 'call', _514 => _514("admin")]);
26027
26088
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26028
26089
  "header",
26029
26090
  {
@@ -26032,11 +26093,11 @@ function HeaderSkeleton({ config }) {
26032
26093
  "bg-ods-card border-b border-ods-border backdrop-blur-sm",
26033
26094
  "px-6 py-3",
26034
26095
  "transition-opacity duration-300 ease-in-out",
26035
- _optionalChain([config, 'optionalAccess', _507 => _507.className])
26096
+ _optionalChain([config, 'optionalAccess', _515 => _515.className])
26036
26097
  ),
26037
26098
  children: [
26038
26099
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
26039
- isAdminHeader && _optionalChain([config, 'optionalAccess', _508 => _508.actions, 'optionalAccess', _509 => _509.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-10 bg-ods-border rounded animate-pulse" }) }),
26100
+ isAdminHeader && _optionalChain([config, 'optionalAccess', _516 => _516.actions, 'optionalAccess', _517 => _517.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-10 bg-ods-border rounded animate-pulse" }) }),
26040
26101
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
26041
26102
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
26042
26103
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
@@ -26044,8 +26105,8 @@ function HeaderSkeleton({ config }) {
26044
26105
  ] }),
26045
26106
  showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunkFIG2RKZFcjs.cn.call(void 0,
26046
26107
  "hidden md:flex items-center gap-2",
26047
- _optionalChain([config, 'optionalAccess', _510 => _510.navigation, 'optionalAccess', _511 => _511.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
26048
- _optionalChain([config, 'optionalAccess', _512 => _512.navigation, 'optionalAccess', _513 => _513.position]) === "right" && "ml-auto mr-4"
26108
+ _optionalChain([config, 'optionalAccess', _518 => _518.navigation, 'optionalAccess', _519 => _519.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
26109
+ _optionalChain([config, 'optionalAccess', _520 => _520.navigation, 'optionalAccess', _521 => _521.position]) === "right" && "ml-auto mr-4"
26049
26110
  ), children: [
26050
26111
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
26051
26112
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
@@ -26093,7 +26154,7 @@ function MobileNavPanel({ isOpen, config }) {
26093
26154
  _react.useEffect.call(void 0, () => {
26094
26155
  const handleKeyDown = (e) => {
26095
26156
  if (e.key === "Escape" && isOpen) {
26096
- _optionalChain([config, 'access', _514 => _514.onClose, 'optionalCall', _515 => _515()]);
26157
+ _optionalChain([config, 'access', _522 => _522.onClose, 'optionalCall', _523 => _523()]);
26097
26158
  }
26098
26159
  };
26099
26160
  if (isOpen) {
@@ -26110,7 +26171,7 @@ function MobileNavPanel({ isOpen, config }) {
26110
26171
  if (item.onClick) {
26111
26172
  item.onClick();
26112
26173
  }
26113
- _optionalChain([config, 'access', _516 => _516.onClose, 'optionalCall', _517 => _517()]);
26174
+ _optionalChain([config, 'access', _524 => _524.onClose, 'optionalCall', _525 => _525()]);
26114
26175
  };
26115
26176
  if (item.href) {
26116
26177
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -26328,7 +26389,7 @@ function SlidingSidebar({ config }) {
26328
26389
  variant: "transparent",
26329
26390
  size: "default",
26330
26391
  onClick: () => {
26331
- _optionalChain([item, 'access', _518 => _518.onClick, 'optionalCall', _519 => _519()]);
26392
+ _optionalChain([item, 'access', _526 => _526.onClick, 'optionalCall', _527 => _527()]);
26332
26393
  config.onClose();
26333
26394
  },
26334
26395
  leftIcon: item.icon,
@@ -26351,7 +26412,7 @@ function SlidingSidebar({ config }) {
26351
26412
  variant: "transparent",
26352
26413
  size: "default",
26353
26414
  onClick: () => {
26354
- _optionalChain([item, 'access', _520 => _520.onClick, 'optionalCall', _521 => _521()]);
26415
+ _optionalChain([item, 'access', _528 => _528.onClick, 'optionalCall', _529 => _529()]);
26355
26416
  config.onClose();
26356
26417
  },
26357
26418
  leftIcon: item.icon,
@@ -26478,7 +26539,7 @@ function StickySectionNav({
26478
26539
  ] });
26479
26540
  }
26480
26541
  function useSectionNavigation(sections, options) {
26481
- const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _522 => _522[0], 'optionalAccess', _523 => _523.id]) || "");
26542
+ const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _530 => _530[0], 'optionalAccess', _531 => _531.id]) || "");
26482
26543
  const isScrollingFromClick = _react.useRef.call(void 0, false);
26483
26544
  const { offset: offset2 = 100 } = options || {};
26484
26545
  const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
@@ -26502,7 +26563,7 @@ function useSectionNavigation(sections, options) {
26502
26563
  const handleScroll = () => {
26503
26564
  if (isScrollingFromClick.current) return;
26504
26565
  const scrollPosition = window.scrollY + offset2 + 50;
26505
- let currentSection = _optionalChain([sections, 'access', _524 => _524[0], 'optionalAccess', _525 => _525.id]) || "";
26566
+ let currentSection = _optionalChain([sections, 'access', _532 => _532[0], 'optionalAccess', _533 => _533.id]) || "";
26506
26567
  for (let i = sections.length - 1; i >= 0; i--) {
26507
26568
  const element = document.getElementById(sections[i].id);
26508
26569
  if (element && scrollPosition >= element.offsetTop) {
@@ -26697,7 +26758,7 @@ function NavigationSidebar({ config, disabled = false }) {
26697
26758
  } else {
26698
26759
  setDesktopMinimized((prev) => !prev);
26699
26760
  }
26700
- _optionalChain([config, 'access', _526 => _526.onToggleMinimized, 'optionalCall', _527 => _527()]);
26761
+ _optionalChain([config, 'access', _534 => _534.onToggleMinimized, 'optionalCall', _535 => _535()]);
26701
26762
  }, [isTablet, setDesktopMinimized, config]);
26702
26763
  const closeOverlay = _react.useCallback.call(void 0, () => {
26703
26764
  setTabletMinimized(true);
@@ -26711,11 +26772,11 @@ function NavigationSidebar({ config, disabled = false }) {
26711
26772
  return () => document.removeEventListener("keydown", handleKeyDown);
26712
26773
  }, [isOverlayOpen, closeOverlay]);
26713
26774
  const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
26714
- _optionalChain([event, 'optionalAccess', _528 => _528.stopPropagation, 'call', _529 => _529()]);
26775
+ _optionalChain([event, 'optionalAccess', _536 => _536.stopPropagation, 'call', _537 => _537()]);
26715
26776
  if (item.onClick) {
26716
26777
  item.onClick();
26717
26778
  } else if (item.path) {
26718
- _optionalChain([config, 'access', _530 => _530.onNavigate, 'optionalCall', _531 => _531(item.path)]);
26779
+ _optionalChain([config, 'access', _538 => _538.onNavigate, 'optionalCall', _539 => _539(item.path)]);
26719
26780
  }
26720
26781
  if (isTablet) setTabletMinimized(true);
26721
26782
  }, [config, isTablet]);
@@ -26860,11 +26921,11 @@ function HeaderGlobalSearch({
26860
26921
  };
26861
26922
  const handleSubmit = (e) => {
26862
26923
  e.preventDefault();
26863
- _optionalChain([onSubmit, 'optionalCall', _532 => _532(currentValue)]);
26924
+ _optionalChain([onSubmit, 'optionalCall', _540 => _540(currentValue)]);
26864
26925
  };
26865
26926
  const handleKeyDown = (e) => {
26866
26927
  if (e.key === "Enter") {
26867
- _optionalChain([onSubmit, 'optionalCall', _533 => _533(currentValue)]);
26928
+ _optionalChain([onSubmit, 'optionalCall', _541 => _541(currentValue)]);
26868
26929
  }
26869
26930
  };
26870
26931
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -26958,8 +27019,8 @@ function HeaderOrganizationFilter({
26958
27019
  className
26959
27020
  }) {
26960
27021
  const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
26961
- const displayName = _optionalChain([selectedOrg, 'optionalAccess', _534 => _534.name]) || "All Organizations";
26962
- const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _535 => _535.deviceCount]), () => ( totalDeviceCount));
27022
+ const displayName = _optionalChain([selectedOrg, 'optionalAccess', _542 => _542.name]) || "All Organizations";
27023
+ const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _543 => _543.deviceCount]), () => ( totalDeviceCount));
26963
27024
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGRTZ23GLcjs.DropdownMenu, { children: [
26964
27025
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGRTZ23GLcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26965
27026
  "button",
@@ -26984,11 +27045,11 @@ function HeaderOrganizationFilter({
26984
27045
  }
26985
27046
  ) }),
26986
27047
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGRTZ23GLcjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
26987
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGRTZ23GLcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _536 => _536("")]), children: "All Organizations" }),
27048
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGRTZ23GLcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _544 => _544("")]), children: "All Organizations" }),
26988
27049
  organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26989
27050
  _chunkGRTZ23GLcjs.DropdownMenuItem,
26990
27051
  {
26991
- onClick: () => _optionalChain([onOrgChange, 'optionalCall', _537 => _537(org.id)]),
27052
+ onClick: () => _optionalChain([onOrgChange, 'optionalCall', _545 => _545(org.id)]),
26992
27053
  children: org.name
26993
27054
  },
26994
27055
  org.id
@@ -27173,9 +27234,9 @@ function NotificationsHeaderButton({
27173
27234
  dimmedClass
27174
27235
  }) {
27175
27236
  const ctx = useOptionalNotifications();
27176
- const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _538 => _538.unreadCount]), () => ( fallbackUnreadCount))) > 0;
27177
- const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _539 => _539.isOpen]), () => ( false));
27178
- const onClick = _optionalChain([ctx, 'optionalAccess', _540 => _540.toggle]);
27237
+ const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _546 => _546.unreadCount]), () => ( fallbackUnreadCount))) > 0;
27238
+ const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _547 => _547.isOpen]), () => ( false));
27239
+ const onClick = _optionalChain([ctx, 'optionalAccess', _548 => _548.toggle]);
27179
27240
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27180
27241
  HeaderButton,
27181
27242
  {
@@ -27239,7 +27300,7 @@ var MobileBurgerMenu = React101.default.memo(function MobileBurgerMenu2({
27239
27300
  if (item.onClick) {
27240
27301
  item.onClick();
27241
27302
  } else if (item.path) {
27242
- _optionalChain([config, 'access', _541 => _541.onNavigate, 'optionalCall', _542 => _542(item.path)]);
27303
+ _optionalChain([config, 'access', _549 => _549.onNavigate, 'optionalCall', _550 => _550(item.path)]);
27243
27304
  }
27244
27305
  onClose();
27245
27306
  }, [config, onClose]);
@@ -27482,7 +27543,7 @@ var AppLayoutDrawerRoot = ({
27482
27543
  const handleOpenChange = React94.useCallback(
27483
27544
  (next) => {
27484
27545
  if (!isControlled) setInternalOpen(next);
27485
- _optionalChain([onOpenChange, 'optionalCall', _543 => _543(next)]);
27546
+ _optionalChain([onOpenChange, 'optionalCall', _551 => _551(next)]);
27486
27547
  },
27487
27548
  [isControlled, onOpenChange]
27488
27549
  );
@@ -27863,10 +27924,10 @@ var AppLayoutDrawerContent = React94.forwardRef(
27863
27924
  ),
27864
27925
  style,
27865
27926
  onInteractOutside: (event) => {
27866
- _optionalChain([onInteractOutside, 'optionalCall', _544 => _544(event)]);
27927
+ _optionalChain([onInteractOutside, 'optionalCall', _552 => _552(event)]);
27867
27928
  if (event.defaultPrevented) return;
27868
27929
  const target = event.target;
27869
- const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _545 => _545.contains, 'call', _546 => _546(target)]);
27930
+ const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _553 => _553.contains, 'call', _554 => _554(target)]);
27870
27931
  if (!isInsideContainer) {
27871
27932
  event.preventDefault();
27872
27933
  return;
@@ -28055,7 +28116,7 @@ var ShellTypeBadge = ({
28055
28116
  className,
28056
28117
  iconClassName
28057
28118
  }) => {
28058
- const normalizedType = _optionalChain([shellType, 'optionalAccess', _547 => _547.toUpperCase, 'call', _548 => _548()]);
28119
+ const normalizedType = _optionalChain([shellType, 'optionalAccess', _555 => _555.toUpperCase, 'call', _556 => _556()]);
28059
28120
  const label = getShellLabel(normalizedType);
28060
28121
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
28061
28122
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
@@ -28442,12 +28503,12 @@ function OnboardingWalkthrough({
28442
28503
  }
28443
28504
  }, [state.completedSteps, markComplete]);
28444
28505
  const handleStepSkip = (step) => {
28445
- _optionalChain([step, 'access', _549 => _549.onSkip, 'optionalCall', _550 => _550()]);
28506
+ _optionalChain([step, 'access', _557 => _557.onSkip, 'optionalCall', _558 => _558()]);
28446
28507
  markSkipped(step.id);
28447
28508
  };
28448
28509
  const handleDismiss = () => {
28449
28510
  dismissOnboarding();
28450
- _optionalChain([onDismiss, 'optionalCall', _551 => _551()]);
28511
+ _optionalChain([onDismiss, 'optionalCall', _559 => _559()]);
28451
28512
  };
28452
28513
  if (state.dismissed) {
28453
28514
  return null;
@@ -28577,7 +28638,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
28577
28638
  onKeyDown: (e) => {
28578
28639
  if (e.key === "Enter" || e.key === " ") {
28579
28640
  e.preventDefault();
28580
- _optionalChain([onClick, 'optionalCall', _552 => _552()]);
28641
+ _optionalChain([onClick, 'optionalCall', _560 => _560()]);
28581
28642
  }
28582
28643
  },
28583
28644
  children: [
@@ -28678,7 +28739,7 @@ var LogsList = React98.forwardRef(({
28678
28739
  log,
28679
28740
  isLast: index === logs.length - 1,
28680
28741
  showConnector,
28681
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _553 => _553(log)])
28742
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _561 => _561(log)])
28682
28743
  },
28683
28744
  log.id
28684
28745
  ))
@@ -28779,7 +28840,7 @@ var Slider = React100.forwardRef(
28779
28840
  ({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
28780
28841
  const handleChange = (e) => {
28781
28842
  const newValue = [Number(e.target.value)];
28782
- _optionalChain([onValueChange, 'optionalCall', _554 => _554(newValue)]);
28843
+ _optionalChain([onValueChange, 'optionalCall', _562 => _562(newValue)]);
28783
28844
  };
28784
28845
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28785
28846
  "input",
@@ -29210,7 +29271,7 @@ function CursorPaginationSimple({
29210
29271
  {
29211
29272
  variant: "transparent",
29212
29273
  size: "icon",
29213
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _555 => _555("")]),
29274
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _563 => _563("")]),
29214
29275
  disabled: !hasPreviousPage || loading,
29215
29276
  className: "h-8 w-8",
29216
29277
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -29222,7 +29283,7 @@ function CursorPaginationSimple({
29222
29283
  {
29223
29284
  variant: "transparent",
29224
29285
  size: "icon",
29225
- onClick: () => _optionalChain([onNext, 'optionalCall', _556 => _556("")]),
29286
+ onClick: () => _optionalChain([onNext, 'optionalCall', _564 => _564("")]),
29226
29287
  disabled: !hasNextPage || loading,
29227
29288
  className: "h-8 w-8",
29228
29289
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -29282,7 +29343,7 @@ function TableColumnFilterDropdown({
29282
29343
  placement = "bottom-start",
29283
29344
  dropdownClassName = "min-w-[240px]"
29284
29345
  }) {
29285
- const activeCount = _optionalChain([filters, 'optionalAccess', _557 => _557[columnKey], 'optionalAccess', _558 => _558.length]) || 0;
29346
+ const activeCount = _optionalChain([filters, 'optionalAccess', _565 => _565[columnKey], 'optionalAccess', _566 => _566.length]) || 0;
29286
29347
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29287
29348
  FiltersDropdown,
29288
29349
  {
@@ -29325,7 +29386,7 @@ function TableColumnFilterDropdown({
29325
29386
  delete newFilters[columnKey];
29326
29387
  onFilterChange(newFilters);
29327
29388
  },
29328
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _559 => _559[columnKey]]) || [] },
29389
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _567 => _567[columnKey]]) || [] },
29329
29390
  placement,
29330
29391
  dropdownClassName
29331
29392
  }
@@ -29622,7 +29683,7 @@ function TableRow({
29622
29683
  const keys = column.key.split(".");
29623
29684
  let value = item;
29624
29685
  for (const key of keys) {
29625
- value = _optionalChain([value, 'optionalAccess', _560 => _560[key]]);
29686
+ value = _optionalChain([value, 'optionalAccess', _568 => _568[key]]);
29626
29687
  }
29627
29688
  if (value === null || value === void 0) {
29628
29689
  return "-";
@@ -29692,7 +29753,7 @@ function TableRow({
29692
29753
  // src/components/ui/table/table.tsx
29693
29754
 
29694
29755
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
29695
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _561 => _561.length])) || Boolean(renderRowActions);
29756
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _569 => _569.length])) || Boolean(renderRowActions);
29696
29757
  const result = [...columns];
29697
29758
  if (hasActions) {
29698
29759
  const actionsColumn = {
@@ -29786,7 +29847,7 @@ function Table({
29786
29847
  return rowKey(item);
29787
29848
  }
29788
29849
  const key = item[rowKey];
29789
- return _optionalChain([key, 'optionalAccess', _562 => _562.toString, 'call', _563 => _563()]) || index.toString();
29850
+ return _optionalChain([key, 'optionalAccess', _570 => _570.toString, 'call', _571 => _571()]) || index.toString();
29790
29851
  };
29791
29852
  const getRowClassName = (item, index) => {
29792
29853
  if (typeof rowClassName === "function") {
@@ -29820,23 +29881,23 @@ function Table({
29820
29881
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
29821
29882
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
29822
29883
  const sentinelRef = _react.useRef.call(void 0, null);
29823
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _564 => _564.onLoadMore]));
29824
- onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _565 => _565.onLoadMore]);
29884
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _572 => _572.onLoadMore]));
29885
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _573 => _573.onLoadMore]);
29825
29886
  _react.useEffect.call(void 0, () => {
29826
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _566 => _566.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
29887
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _574 => _574.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
29827
29888
  const sentinel = sentinelRef.current;
29828
29889
  if (!sentinel) return;
29829
29890
  const observer = new IntersectionObserver(
29830
29891
  (entries) => {
29831
- if (_optionalChain([entries, 'access', _567 => _567[0], 'optionalAccess', _568 => _568.isIntersecting])) {
29832
- _optionalChain([onLoadMoreRef, 'access', _569 => _569.current, 'optionalCall', _570 => _570()]);
29892
+ if (_optionalChain([entries, 'access', _575 => _575[0], 'optionalAccess', _576 => _576.isIntersecting])) {
29893
+ _optionalChain([onLoadMoreRef, 'access', _577 => _577.current, 'optionalCall', _578 => _578()]);
29833
29894
  }
29834
29895
  },
29835
29896
  { rootMargin: "200px" }
29836
29897
  );
29837
29898
  observer.observe(sentinel);
29838
29899
  return () => observer.disconnect();
29839
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _571 => _571.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _572 => _572.isFetchingNextPage])]);
29900
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _579 => _579.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _580 => _580.isFetchingNextPage])]);
29840
29901
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
29841
29902
  showToolbar && bulkActions && selectedRows.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between bg-ods-card border border-ods-border rounded-[6px] p-3 mb-2", children: [
29842
29903
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -29907,7 +29968,7 @@ function Table({
29907
29968
  },
29908
29969
  getRowKey(item, index)
29909
29970
  )),
29910
- _optionalChain([infiniteScroll, 'optionalAccess', _573 => _573.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29971
+ _optionalChain([infiniteScroll, 'optionalAccess', _581 => _581.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29911
29972
  TableCardSkeleton,
29912
29973
  {
29913
29974
  columns,
@@ -29916,7 +29977,7 @@ function Table({
29916
29977
  hasChevron: Boolean(rowHref)
29917
29978
  }
29918
29979
  ),
29919
- _optionalChain([infiniteScroll, 'optionalAccess', _574 => _574.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
29980
+ _optionalChain([infiniteScroll, 'optionalAccess', _582 => _582.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
29920
29981
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
29921
29982
  "div",
29922
29983
  {
@@ -30274,7 +30335,7 @@ function QueryReportTable({
30274
30335
  );
30275
30336
  const handleExport = () => {
30276
30337
  exportToCSV(data, columns, exportFilename);
30277
- _optionalChain([onExport, 'optionalCall', _575 => _575()]);
30338
+ _optionalChain([onExport, 'optionalCall', _583 => _583()]);
30278
30339
  };
30279
30340
  const tableMinWidth = columns.length * (columnWidth + 16);
30280
30341
  const {
@@ -30447,7 +30508,7 @@ function DataTableColumnFilter({
30447
30508
  align = "left"
30448
30509
  }) {
30449
30510
  const currentValue = column.getFilterValue();
30450
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _576 => _576.length]), () => ( 0));
30511
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _584 => _584.length]), () => ( 0));
30451
30512
  const sections = _react.useMemo.call(void 0,
30452
30513
  () => [
30453
30514
  {
@@ -30527,7 +30588,7 @@ function DataTableHeader({
30527
30588
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
30528
30589
  if (header.isPlaceholder) return false;
30529
30590
  if (isLgUp) return true;
30530
- return Boolean(_optionalChain([header, 'access', _577 => _577.column, 'access', _578 => _578.columnDef, 'access', _579 => _579.meta, 'optionalAccess', _580 => _580.filter]));
30591
+ return Boolean(_optionalChain([header, 'access', _585 => _585.column, 'access', _586 => _586.columnDef, 'access', _587 => _587.meta, 'optionalAccess', _588 => _588.filter]));
30531
30592
  });
30532
30593
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30533
30594
  "div",
@@ -30557,20 +30618,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
30557
30618
  if (header.isPlaceholder) return null;
30558
30619
  const column = header.column;
30559
30620
  const meta = column.columnDef.meta;
30560
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _581 => _581.filter]));
30561
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _582 => _582.align]), () => ( "left"));
30562
- const canSort = _optionalChain([meta, 'optionalAccess', _583 => _583.sortable]) === true;
30563
- const sortDir = _optionalChain([sort, 'optionalAccess', _584 => _584.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
30621
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _589 => _589.filter]));
30622
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _590 => _590.align]), () => ( "left"));
30623
+ const canSort = _optionalChain([meta, 'optionalAccess', _591 => _591.sortable]) === true;
30624
+ const sortDir = _optionalChain([sort, 'optionalAccess', _592 => _592.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
30564
30625
  if (!isLgUp && !hasFilter) return null;
30565
30626
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30566
30627
  "div",
30567
30628
  {
30568
30629
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
30569
30630
  "flex items-stretch",
30570
- isLgUp && (_optionalChain([meta, 'optionalAccess', _585 => _585.width]) || "flex-1 min-w-0"),
30571
- _optionalChain([meta, 'optionalAccess', _586 => _586.headerClassName]),
30631
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _593 => _593.width]) || "flex-1 min-w-0"),
30632
+ _optionalChain([meta, 'optionalAccess', _594 => _594.headerClassName]),
30572
30633
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
30573
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _587 => _587.hideAt]))
30634
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _595 => _595.hideAt]))
30574
30635
  ),
30575
30636
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30576
30637
  DataTableColumnFilter,
@@ -30589,7 +30650,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
30589
30650
  isLgUp && alignJustify(align),
30590
30651
  canSort && "group cursor-pointer"
30591
30652
  ),
30592
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _588 => _588(column.id)]) : void 0,
30653
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _596 => _596(column.id)]) : void 0,
30593
30654
  children: [
30594
30655
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
30595
30656
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -30673,7 +30734,7 @@ function DataTableSkeleton({
30673
30734
  }) {
30674
30735
  const table = useDataTableContext();
30675
30736
  const columns = table.getVisibleFlatColumns();
30676
- const firstColumnId = _optionalChain([columns, 'access', _589 => _589[0], 'optionalAccess', _590 => _590.id]);
30737
+ const firstColumnId = _optionalChain([columns, 'access', _597 => _597[0], 'optionalAccess', _598 => _598.id]);
30677
30738
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
30678
30739
  "div",
30679
30740
  {
@@ -30697,7 +30758,7 @@ function DataTableSkeleton({
30697
30758
  {
30698
30759
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
30699
30760
  "flex flex-col justify-center shrink-0",
30700
- _optionalChain([meta, 'optionalAccess', _591 => _591.width]) || "flex-1"
30761
+ _optionalChain([meta, 'optionalAccess', _599 => _599.width]) || "flex-1"
30701
30762
  ),
30702
30763
  children: [
30703
30764
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
@@ -30746,7 +30807,7 @@ function DataTableRowImpl({
30746
30807
  const handleClick = _react.useCallback.call(void 0,
30747
30808
  (e) => {
30748
30809
  const target = e.target;
30749
- if (!_optionalChain([containerRef, 'access', _592 => _592.current, 'optionalAccess', _593 => _593.contains, 'call', _594 => _594(target)])) {
30810
+ if (!_optionalChain([containerRef, 'access', _600 => _600.current, 'optionalAccess', _601 => _601.contains, 'call', _602 => _602(target)])) {
30750
30811
  if (isLinkMode) e.preventDefault();
30751
30812
  return;
30752
30813
  }
@@ -30754,7 +30815,7 @@ function DataTableRowImpl({
30754
30815
  if (isLinkMode) e.preventDefault();
30755
30816
  return;
30756
30817
  }
30757
- _optionalChain([onClick, 'optionalCall', _595 => _595(row.original)]);
30818
+ _optionalChain([onClick, 'optionalCall', _603 => _603(row.original)]);
30758
30819
  },
30759
30820
  [onClick, row.original, isLinkMode]
30760
30821
  );
@@ -30779,10 +30840,10 @@ function DataTableRowImpl({
30779
30840
  {
30780
30841
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
30781
30842
  "flex flex-col overflow-hidden",
30782
- alignJustify(_optionalChain([meta, 'optionalAccess', _596 => _596.align])),
30783
- _optionalChain([meta, 'optionalAccess', _597 => _597.width]) || "flex-1 min-w-0",
30784
- _optionalChain([meta, 'optionalAccess', _598 => _598.cellClassName]),
30785
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _599 => _599.hideAt]))
30843
+ alignJustify(_optionalChain([meta, 'optionalAccess', _604 => _604.align])),
30844
+ _optionalChain([meta, 'optionalAccess', _605 => _605.width]) || "flex-1 min-w-0",
30845
+ _optionalChain([meta, 'optionalAccess', _606 => _606.cellClassName]),
30846
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _607 => _607.hideAt]))
30786
30847
  ),
30787
30848
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
30788
30849
  },
@@ -30860,7 +30921,7 @@ function DataTableBody({
30860
30921
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
30861
30922
  rows.map((row, index) => {
30862
30923
  const item = row.original;
30863
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _600 => _600(item)]), () => ( void 0));
30924
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _608 => _608(item)]), () => ( void 0));
30864
30925
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
30865
30926
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30866
30927
  DataTableRow,
@@ -30870,7 +30931,7 @@ function DataTableBody({
30870
30931
  href,
30871
30932
  compact,
30872
30933
  className: cls,
30873
- subRow: _optionalChain([renderSubRow, 'optionalCall', _601 => _601(item)])
30934
+ subRow: _optionalChain([renderSubRow, 'optionalCall', _609 => _609(item)])
30874
30935
  },
30875
30936
  row.id
30876
30937
  );
@@ -30925,7 +30986,7 @@ function DataTableInfiniteFooter({
30925
30986
  if (!sentinel) return;
30926
30987
  const observer = new IntersectionObserver(
30927
30988
  (entries) => {
30928
- if (_optionalChain([entries, 'access', _602 => _602[0], 'optionalAccess', _603 => _603.isIntersecting])) onLoadMoreRef.current();
30989
+ if (_optionalChain([entries, 'access', _610 => _610[0], 'optionalAccess', _611 => _611.isIntersecting])) onLoadMoreRef.current();
30929
30990
  },
30930
30991
  { rootMargin }
30931
30992
  );
@@ -30973,7 +31034,7 @@ function DataTableRowCount({
30973
31034
  const table = useDataTableContext();
30974
31035
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
30975
31036
  if (hideWhenEmpty && count === 0) return null;
30976
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _604 => _604(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
31037
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _612 => _612(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
30977
31038
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
30978
31039
  "span",
30979
31040
  {
@@ -31132,7 +31193,7 @@ function SearchInput({
31132
31193
  if (!showHiddenTags) return;
31133
31194
  const handleClick = (e) => {
31134
31195
  const target = e.target;
31135
- if (!_optionalChain([hiddenTagsRef, 'access', _605 => _605.current, 'optionalAccess', _606 => _606.contains, 'call', _607 => _607(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _608 => _608.current, 'optionalAccess', _609 => _609.contains, 'call', _610 => _610(target)])) {
31196
+ if (!_optionalChain([hiddenTagsRef, 'access', _613 => _613.current, 'optionalAccess', _614 => _614.contains, 'call', _615 => _615(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _616 => _616.current, 'optionalAccess', _617 => _617.contains, 'call', _618 => _618(target)])) {
31136
31197
  setShowHiddenTags(false);
31137
31198
  }
31138
31199
  };
@@ -31180,10 +31241,10 @@ function SearchInput({
31180
31241
  } else {
31181
31242
  setInternalValue("");
31182
31243
  }
31183
- _optionalChain([inputRef, 'access', _611 => _611.current, 'optionalAccess', _612 => _612.focus, 'call', _613 => _613()]);
31244
+ _optionalChain([inputRef, 'access', _619 => _619.current, 'optionalAccess', _620 => _620.focus, 'call', _621 => _621()]);
31184
31245
  };
31185
31246
  const handleResultClick = (result, e) => {
31186
- _optionalChain([onResultSelect, 'optionalCall', _614 => _614(
31247
+ _optionalChain([onResultSelect, 'optionalCall', _622 => _622(
31187
31248
  result,
31188
31249
  e ? {
31189
31250
  metaKey: e.metaKey,
@@ -31215,7 +31276,7 @@ function SearchInput({
31215
31276
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
31216
31277
  handleResultClick(flatResults[highlightedIndex]);
31217
31278
  } else {
31218
- _optionalChain([onSubmit, 'optionalCall', _615 => _615(currentValue)]);
31279
+ _optionalChain([onSubmit, 'optionalCall', _623 => _623(currentValue)]);
31219
31280
  }
31220
31281
  break;
31221
31282
  case "Escape":
@@ -31293,7 +31354,7 @@ function SearchInput({
31293
31354
  dropdownVisible && "!border-ods-accent"
31294
31355
  ),
31295
31356
  onClick: () => {
31296
- _optionalChain([inputRef, 'access', _616 => _616.current, 'optionalAccess', _617 => _617.focus, 'call', _618 => _618()]);
31357
+ _optionalChain([inputRef, 'access', _624 => _624.current, 'optionalAccess', _625 => _625.focus, 'call', _626 => _626()]);
31297
31358
  setIsOpen(true);
31298
31359
  },
31299
31360
  children: [
@@ -31377,10 +31438,10 @@ function SearchInput({
31377
31438
  align: "start",
31378
31439
  onOpenAutoFocus: (e) => {
31379
31440
  e.preventDefault();
31380
- _optionalChain([inputRef, 'access', _619 => _619.current, 'optionalAccess', _620 => _620.focus, 'call', _621 => _621()]);
31441
+ _optionalChain([inputRef, 'access', _627 => _627.current, 'optionalAccess', _628 => _628.focus, 'call', _629 => _629()]);
31381
31442
  },
31382
31443
  onInteractOutside: (e) => {
31383
- if (_optionalChain([containerRef, 'access', _622 => _622.current, 'optionalAccess', _623 => _623.contains, 'call', _624 => _624(e.target)])) {
31444
+ if (_optionalChain([containerRef, 'access', _630 => _630.current, 'optionalAccess', _631 => _631.contains, 'call', _632 => _632(e.target)])) {
31384
31445
  e.preventDefault();
31385
31446
  }
31386
31447
  },
@@ -31397,10 +31458,10 @@ function SearchInput({
31397
31458
  ref: hiddenTagsPopupRef,
31398
31459
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
31399
31460
  style: {
31400
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _625 => _625.current, 'optionalAccess', _626 => _626.getBoundingClientRect, 'call', _627 => _627(), 'access', _628 => _628.left]), () => ( 0))) : 0
31461
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _633 => _633.current, 'optionalAccess', _634 => _634.getBoundingClientRect, 'call', _635 => _635(), 'access', _636 => _636.left]), () => ( 0))) : 0
31401
31462
  },
31402
31463
  onRemove: (value2) => {
31403
- _optionalChain([onFilterRemove, 'optionalCall', _629 => _629(value2)]);
31464
+ _optionalChain([onFilterRemove, 'optionalCall', _637 => _637(value2)]);
31404
31465
  if (hiddenCount <= 1) setShowHiddenTags(false);
31405
31466
  }
31406
31467
  }
@@ -31451,7 +31512,7 @@ function FilterListItem({
31451
31512
  }) {
31452
31513
  const handleToggle = () => {
31453
31514
  if (disabled) return;
31454
- _optionalChain([onToggle, 'optionalCall', _630 => _630(!selected)]);
31515
+ _optionalChain([onToggle, 'optionalCall', _638 => _638(!selected)]);
31455
31516
  };
31456
31517
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
31457
31518
  "div",
@@ -31498,7 +31559,7 @@ function FilterListItem({
31498
31559
  CheckboxPrimitive4.Root,
31499
31560
  {
31500
31561
  checked: selected,
31501
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _631 => _631(c === true)]),
31562
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _639 => _639(c === true)]),
31502
31563
  onClick: (e) => e.stopPropagation(),
31503
31564
  disabled,
31504
31565
  "aria-label": title,
@@ -31597,7 +31658,7 @@ function TagSearchInput({
31597
31658
  if (!showHiddenTags) return;
31598
31659
  const handleClick = (e) => {
31599
31660
  const target = e.target;
31600
- if (!_optionalChain([hiddenTagsRef, 'access', _632 => _632.current, 'optionalAccess', _633 => _633.contains, 'call', _634 => _634(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _635 => _635.current, 'optionalAccess', _636 => _636.contains, 'call', _637 => _637(target)])) {
31661
+ if (!_optionalChain([hiddenTagsRef, 'access', _640 => _640.current, 'optionalAccess', _641 => _641.contains, 'call', _642 => _642(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _643 => _643.current, 'optionalAccess', _644 => _644.contains, 'call', _645 => _645(target)])) {
31601
31662
  setShowHiddenTags(false);
31602
31663
  }
31603
31664
  };
@@ -31613,13 +31674,13 @@ function TagSearchInput({
31613
31674
  e.preventDefault();
31614
31675
  onSubmit(searchValue);
31615
31676
  }
31616
- _optionalChain([onKeyDown, 'optionalCall', _638 => _638(e)]);
31677
+ _optionalChain([onKeyDown, 'optionalCall', _646 => _646(e)]);
31617
31678
  };
31618
31679
  const handleClearAll = (e) => {
31619
31680
  e.stopPropagation();
31620
31681
  e.preventDefault();
31621
- _optionalChain([onClearAll, 'optionalCall', _639 => _639()]);
31622
- _optionalChain([inputRef, 'access', _640 => _640.current, 'optionalAccess', _641 => _641.focus, 'call', _642 => _642()]);
31682
+ _optionalChain([onClearAll, 'optionalCall', _647 => _647()]);
31683
+ _optionalChain([inputRef, 'access', _648 => _648.current, 'optionalAccess', _649 => _649.focus, 'call', _650 => _650()]);
31623
31684
  };
31624
31685
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
31625
31686
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -31636,7 +31697,7 @@ function TagSearchInput({
31636
31697
  className
31637
31698
  ),
31638
31699
  onClick: () => {
31639
- if (!disabled) _optionalChain([inputRef, 'access', _643 => _643.current, 'optionalAccess', _644 => _644.focus, 'call', _645 => _645()]);
31700
+ if (!disabled) _optionalChain([inputRef, 'access', _651 => _651.current, 'optionalAccess', _652 => _652.focus, 'call', _653 => _653()]);
31640
31701
  },
31641
31702
  children: [
31642
31703
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0 flex items-center pl-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, { className: "text-ods-text-secondary size-4 md:size-6" }) }),
@@ -31708,7 +31769,7 @@ function TagSearchInput({
31708
31769
  items: hiddenTags,
31709
31770
  disabled,
31710
31771
  style: {
31711
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _646 => _646.current, 'optionalAccess', _647 => _647.getBoundingClientRect, 'call', _648 => _648(), 'access', _649 => _649.left]), () => ( 0))) : 0
31772
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _654 => _654.current, 'optionalAccess', _655 => _655.getBoundingClientRect, 'call', _656 => _656(), 'access', _657 => _657.left]), () => ( 0))) : 0
31712
31773
  },
31713
31774
  onRemove: (value) => {
31714
31775
  onTagRemove(value);
@@ -31809,7 +31870,7 @@ function MarkdownEditor({
31809
31870
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
31810
31871
  _react.useEffect.call(void 0, () => {
31811
31872
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
31812
- if (_optionalChain([mod, 'access', _650 => _650.commands, 'optionalAccess', _651 => _651.getExtraCommands])) {
31873
+ if (_optionalChain([mod, 'access', _658 => _658.commands, 'optionalAccess', _659 => _659.getExtraCommands])) {
31813
31874
  setDefaultExtraCommands(mod.commands.getExtraCommands());
31814
31875
  }
31815
31876
  });
@@ -31843,7 +31904,7 @@ function MarkdownEditor({
31843
31904
  const isImage = file.type.startsWith("image/");
31844
31905
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
31845
31906
  insertTextAtCursor(markdown);
31846
- _optionalChain([onFileUploaded, 'optionalCall', _652 => _652(url, file.name)]);
31907
+ _optionalChain([onFileUploaded, 'optionalCall', _660 => _660(url, file.name)]);
31847
31908
  } catch (error) {
31848
31909
  console.error("File upload failed:", error);
31849
31910
  setUploadProgress("Upload failed. Please try again.");
@@ -31856,7 +31917,7 @@ function MarkdownEditor({
31856
31917
  );
31857
31918
  const handleFileInputChange = _react.useCallback.call(void 0,
31858
31919
  (e) => {
31859
- const file = _optionalChain([e, 'access', _653 => _653.target, 'access', _654 => _654.files, 'optionalAccess', _655 => _655[0]]);
31920
+ const file = _optionalChain([e, 'access', _661 => _661.target, 'access', _662 => _662.files, 'optionalAccess', _663 => _663[0]]);
31860
31921
  if (file) {
31861
31922
  handleFileUpload(file);
31862
31923
  e.target.value = "";
@@ -31867,7 +31928,7 @@ function MarkdownEditor({
31867
31928
  const handlePaste = _react.useCallback.call(void 0,
31868
31929
  (e) => {
31869
31930
  if (!onUploadFile) return;
31870
- const items = _optionalChain([e, 'access', _656 => _656.clipboardData, 'optionalAccess', _657 => _657.items]);
31931
+ const items = _optionalChain([e, 'access', _664 => _664.clipboardData, 'optionalAccess', _665 => _665.items]);
31871
31932
  if (!items) return;
31872
31933
  for (const item of items) {
31873
31934
  if (item.type.startsWith("image/")) {
@@ -31892,7 +31953,7 @@ function MarkdownEditor({
31892
31953
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
31893
31954
  icon: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "w-3 h-3 animate-spin" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "w-3 h-3" }),
31894
31955
  execute: () => {
31895
- _optionalChain([fileInputRef, 'access', _658 => _658.current, 'optionalAccess', _659 => _659.click, 'call', _660 => _660()]);
31956
+ _optionalChain([fileInputRef, 'access', _666 => _666.current, 'optionalAccess', _667 => _667.click, 'call', _668 => _668()]);
31896
31957
  }
31897
31958
  } : null;
31898
31959
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -31904,7 +31965,7 @@ function MarkdownEditor({
31904
31965
  const EDGE_ZONE = 60;
31905
31966
  const MAX_SCROLL_SPEED = 15;
31906
31967
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
31907
- let node = _optionalChain([el, 'optionalAccess', _661 => _661.parentElement]);
31968
+ let node = _optionalChain([el, 'optionalAccess', _669 => _669.parentElement]);
31908
31969
  while (node && node !== document.documentElement) {
31909
31970
  const { overflowY } = window.getComputedStyle(node);
31910
31971
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -32047,7 +32108,7 @@ function matchesAccept(file, accept) {
32047
32108
  });
32048
32109
  }
32049
32110
  function dragHasFiles(e) {
32050
- const types = _optionalChain([e, 'access', _662 => _662.dataTransfer, 'optionalAccess', _663 => _663.types]);
32111
+ const types = _optionalChain([e, 'access', _670 => _670.dataTransfer, 'optionalAccess', _671 => _671.types]);
32051
32112
  if (!types) return false;
32052
32113
  for (let i = 0; i < types.length; i++) {
32053
32114
  if (types[i] === "Files") return true;
@@ -32142,7 +32203,7 @@ function FileUpload({
32142
32203
  e.stopPropagation();
32143
32204
  setDragActive(false);
32144
32205
  if (disabled) return;
32145
- if (_optionalChain([e, 'access', _664 => _664.dataTransfer, 'access', _665 => _665.files, 'optionalAccess', _666 => _666.length])) {
32206
+ if (_optionalChain([e, 'access', _672 => _672.dataTransfer, 'access', _673 => _673.files, 'optionalAccess', _674 => _674.length])) {
32146
32207
  handleFiles(e.dataTransfer.files);
32147
32208
  }
32148
32209
  };
@@ -32170,7 +32231,7 @@ function FileUpload({
32170
32231
  e.preventDefault();
32171
32232
  dragCounter = 0;
32172
32233
  setDragActive(false);
32173
- if (_optionalChain([e, 'access', _667 => _667.dataTransfer, 'optionalAccess', _668 => _668.files, 'optionalAccess', _669 => _669.length])) {
32234
+ if (_optionalChain([e, 'access', _675 => _675.dataTransfer, 'optionalAccess', _676 => _676.files, 'optionalAccess', _677 => _677.length])) {
32174
32235
  handleFilesRef.current(e.dataTransfer.files);
32175
32236
  }
32176
32237
  };
@@ -32192,7 +32253,7 @@ function FileUpload({
32192
32253
  };
32193
32254
  }, [acceptWindowDrops, disabled]);
32194
32255
  const handleFileSelect = (e) => {
32195
- if (_optionalChain([e, 'access', _670 => _670.target, 'access', _671 => _671.files, 'optionalAccess', _672 => _672.length])) {
32256
+ if (_optionalChain([e, 'access', _678 => _678.target, 'access', _679 => _679.files, 'optionalAccess', _680 => _680.length])) {
32196
32257
  handleFiles(e.target.files);
32197
32258
  }
32198
32259
  };
@@ -32209,7 +32270,7 @@ function FileUpload({
32209
32270
  };
32210
32271
  const openDialog = async () => {
32211
32272
  if (disabled) return;
32212
- _optionalChain([fileInputRef, 'access', _673 => _673.current, 'optionalAccess', _674 => _674.click, 'call', _675 => _675()]);
32273
+ _optionalChain([fileInputRef, 'access', _681 => _681.current, 'optionalAccess', _682 => _682.click, 'call', _683 => _683()]);
32213
32274
  };
32214
32275
  const displayError = error || validationError || void 0;
32215
32276
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -32287,7 +32348,7 @@ function FileUpload({
32287
32348
  "button",
32288
32349
  {
32289
32350
  type: "button",
32290
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _676 => _676(entry.id)]),
32351
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _684 => _684(entry.id)]),
32291
32352
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
32292
32353
  "aria-label": `Remove ${entry.fileName}`,
32293
32354
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -32410,7 +32471,7 @@ function ImageUploader({
32410
32471
  onChange(file);
32411
32472
  };
32412
32473
  const handleFileSelect = (e) => {
32413
- validateAndEmit(_optionalChain([e, 'access', _677 => _677.target, 'access', _678 => _678.files, 'optionalAccess', _679 => _679[0]]));
32474
+ validateAndEmit(_optionalChain([e, 'access', _685 => _685.target, 'access', _686 => _686.files, 'optionalAccess', _687 => _687[0]]));
32414
32475
  if (inputRef.current) inputRef.current.value = "";
32415
32476
  };
32416
32477
  const handleDrag = (e) => {
@@ -32425,11 +32486,11 @@ function ImageUploader({
32425
32486
  e.stopPropagation();
32426
32487
  setDragActive(false);
32427
32488
  if (!interactive) return;
32428
- validateAndEmit(_optionalChain([e, 'access', _680 => _680.dataTransfer, 'access', _681 => _681.files, 'optionalAccess', _682 => _682[0]]));
32489
+ validateAndEmit(_optionalChain([e, 'access', _688 => _688.dataTransfer, 'access', _689 => _689.files, 'optionalAccess', _690 => _690[0]]));
32429
32490
  };
32430
32491
  const openDialog = () => {
32431
32492
  if (!interactive) return;
32432
- _optionalChain([inputRef, 'access', _683 => _683.current, 'optionalAccess', _684 => _684.click, 'call', _685 => _685()]);
32493
+ _optionalChain([inputRef, 'access', _691 => _691.current, 'optionalAccess', _692 => _692.click, 'call', _693 => _693()]);
32433
32494
  };
32434
32495
  const handleRootKeyDown = (e) => {
32435
32496
  if (hasImage || !interactive) return;
@@ -32619,8 +32680,8 @@ function ColorPresetSelect({
32619
32680
  }) {
32620
32681
  const selectedPreset = presets.find((p) => p.key === presetKey);
32621
32682
  const isCustom = !selectedPreset;
32622
- const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _686 => _686.label]), () => ( "Custom"));
32623
- const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _687 => _687.color]), () => ( value));
32683
+ const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _694 => _694.label]), () => ( "Custom"));
32684
+ const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _695 => _695.color]), () => ( value));
32624
32685
  const groups = [
32625
32686
  {
32626
32687
  items: [
@@ -32910,7 +32971,7 @@ function TicketStatusConfigRow({
32910
32971
  _chunkGRTZ23GLcjs.Input,
32911
32972
  {
32912
32973
  value: name,
32913
- onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _688 => _688(e.target.value)]),
32974
+ onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _696 => _696(e.target.value)]),
32914
32975
  disabled: isSystem,
32915
32976
  readOnly: isSystem,
32916
32977
  "aria-label": "Status name",
@@ -32993,7 +33054,7 @@ function CompactAssigneeDropdown({
32993
33054
  return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
32994
33055
  }, [filtered, currentAssignee]);
32995
33056
  const handleSelect = (userId) => {
32996
- const next = _optionalChain([currentAssignee, 'optionalAccess', _689 => _689.id]) === userId ? null : userId;
33057
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _697 => _697.id]) === userId ? null : userId;
32997
33058
  onAssign(next);
32998
33059
  setIsOpen(false);
32999
33060
  };
@@ -33058,7 +33119,7 @@ function CompactAssigneeDropdown({
33058
33119
  }
33059
33120
  ) }),
33060
33121
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "max-h-80 overflow-y-auto py-[var(--spacing-system-xs)]", role: "listbox", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "Loading\u2026" }) : orderedOptions.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "No users found" }) : orderedOptions.map((opt) => {
33061
- const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _690 => _690.id]) === opt.value;
33122
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _698 => _698.id]) === opt.value;
33062
33123
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
33063
33124
  "button",
33064
33125
  {
@@ -33127,7 +33188,7 @@ function DefaultAssigneeDropdown({
33127
33188
  Autocomplete,
33128
33189
  {
33129
33190
  options,
33130
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _691 => _691.id]), () => ( null)),
33191
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _699 => _699.id]), () => ( null)),
33131
33192
  onChange: (val) => {
33132
33193
  onAssign(val);
33133
33194
  setIsEditing(false);
@@ -33516,14 +33577,14 @@ function TicketInfoSection({
33516
33577
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33517
33578
  SquareAvatar,
33518
33579
  {
33519
- src: _optionalChain([organization, 'optionalAccess', _692 => _692.imageSrc]),
33520
- alt: _optionalChain([organization, 'optionalAccess', _693 => _693.name]),
33521
- fallback: _optionalChain([organization, 'optionalAccess', _694 => _694.name]) || "Org",
33580
+ src: _optionalChain([organization, 'optionalAccess', _700 => _700.imageSrc]),
33581
+ alt: _optionalChain([organization, 'optionalAccess', _701 => _701.name]),
33582
+ fallback: _optionalChain([organization, 'optionalAccess', _702 => _702.name]) || "Org",
33522
33583
  size: "md",
33523
33584
  className: "shrink-0"
33524
33585
  }
33525
33586
  ),
33526
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _695 => _695.name]) || "Unassigned", label: "Organization" })
33587
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _703 => _703.name]) || "Unassigned", label: "Organization" })
33527
33588
  ] }),
33528
33589
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33529
33590
  AssigneeDropdown,
@@ -33544,10 +33605,10 @@ function TicketInfoSection({
33544
33605
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33545
33606
  InfoCell2,
33546
33607
  {
33547
- value: _optionalChain([device, 'optionalAccess', _696 => _696.name]) || "Unassigned",
33608
+ value: _optionalChain([device, 'optionalAccess', _704 => _704.name]) || "Unassigned",
33548
33609
  label: "Device",
33549
- icon: _optionalChain([device, 'optionalAccess', _697 => _697.icon]),
33550
- onClick: _optionalChain([device, 'optionalAccess', _698 => _698.onClick])
33610
+ icon: _optionalChain([device, 'optionalAccess', _705 => _705.icon]),
33611
+ onClick: _optionalChain([device, 'optionalAccess', _706 => _706.onClick])
33551
33612
  }
33552
33613
  ),
33553
33614
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -33876,7 +33937,7 @@ function RoadmapCard({
33876
33937
  const compactHref = safeHref(_nullishCoalesce(href, () => ( null)));
33877
33938
  const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
33878
33939
  const hasFigma = !!item.figmaUrl;
33879
- const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _699 => _699.screenshots, 'optionalAccess', _700 => _700.length]), () => ( 0))) > 0;
33940
+ const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _707 => _707.screenshots, 'optionalAccess', _708 => _708.length]), () => ( 0))) > 0;
33880
33941
  const typeLabel = getTaskTypeLabel(item.customItemId);
33881
33942
  const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
33882
33943
  const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -33895,7 +33956,7 @@ function RoadmapCard({
33895
33956
  unoptimized: true,
33896
33957
  className: "h-8 w-8 object-contain"
33897
33958
  }
33898
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _701 => _701.title, 'optionalAccess', _702 => _702.substring, 'call', _703 => _703(0, 2)]) || "??" })
33959
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _709 => _709.title, 'optionalAccess', _710 => _710.substring, 'call', _711 => _711(0, 2)]) || "??" })
33899
33960
  }
33900
33961
  ),
33901
33962
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -33970,7 +34031,7 @@ function RoadmapCard({
33970
34031
  unoptimized: true,
33971
34032
  className: "object-contain p-1"
33972
34033
  }
33973
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _704 => _704.title, 'optionalAccess', _705 => _705.substring, 'call', _706 => _706(0, 2)]) || "??" }) }),
34034
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _712 => _712.title, 'optionalAccess', _713 => _713.substring, 'call', _714 => _714(0, 2)]) || "??" }) }),
33974
34035
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
33975
34036
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[48px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-h3 text-ods-text-primary tracking-[-0.36px] flex-1 line-clamp-2", children: item.title }) }),
33976
34037
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-h5 text-ods-text-secondary uppercase tracking-[-0.28px] truncate", children: [
@@ -34480,7 +34541,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
34480
34541
  ] }) : null,
34481
34542
  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-[13px] leading-5 text-ods-text-secondary", children: item.preview }) }) : null
34482
34543
  ] }),
34483
- _optionalChain([anchorProps, 'optionalAccess', _707 => _707.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex shrink-0 items-center self-start h-5 text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "w-3.5 h-3.5" }) }) : null
34544
+ _optionalChain([anchorProps, 'optionalAccess', _715 => _715.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex shrink-0 items-center self-start h-5 text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "w-3.5 h-3.5" }) }) : null
34484
34545
  ] });
34485
34546
  if (!anchorProps) {
34486
34547
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
@@ -34550,7 +34611,7 @@ function getDefaultOptions() {
34550
34611
  // node_modules/date-fns/startOfWeek.mjs
34551
34612
  function startOfWeek(date, options) {
34552
34613
  const defaultOptions2 = getDefaultOptions();
34553
- const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _708 => _708.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _709 => _709.locale, 'optionalAccess', _710 => _710.options, 'optionalAccess', _711 => _711.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _712 => _712.locale, 'optionalAccess', _713 => _713.options, 'optionalAccess', _714 => _714.weekStartsOn]))), () => ( 0));
34614
+ const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _716 => _716.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _717 => _717.locale, 'optionalAccess', _718 => _718.options, 'optionalAccess', _719 => _719.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _720 => _720.locale, 'optionalAccess', _721 => _721.options, 'optionalAccess', _722 => _722.weekStartsOn]))), () => ( 0));
34554
34615
  const _date = toDate(date);
34555
34616
  const day = _date.getDay();
34556
34617
  const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
@@ -34725,7 +34786,7 @@ var formatDistance = (token, count, options) => {
34725
34786
  } else {
34726
34787
  result = tokenValue.other.replace("{{count}}", count.toString());
34727
34788
  }
34728
- if (_optionalChain([options, 'optionalAccess', _715 => _715.addSuffix])) {
34789
+ if (_optionalChain([options, 'optionalAccess', _723 => _723.addSuffix])) {
34729
34790
  if (options.comparison && options.comparison > 0) {
34730
34791
  return "in " + result;
34731
34792
  } else {
@@ -34792,15 +34853,15 @@ var formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale
34792
34853
  // node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs
34793
34854
  function buildLocalizeFn(args) {
34794
34855
  return (value, options) => {
34795
- const context = _optionalChain([options, 'optionalAccess', _716 => _716.context]) ? String(options.context) : "standalone";
34856
+ const context = _optionalChain([options, 'optionalAccess', _724 => _724.context]) ? String(options.context) : "standalone";
34796
34857
  let valuesArray;
34797
34858
  if (context === "formatting" && args.formattingValues) {
34798
34859
  const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
34799
- const width = _optionalChain([options, 'optionalAccess', _717 => _717.width]) ? String(options.width) : defaultWidth;
34860
+ const width = _optionalChain([options, 'optionalAccess', _725 => _725.width]) ? String(options.width) : defaultWidth;
34800
34861
  valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
34801
34862
  } else {
34802
34863
  const defaultWidth = args.defaultWidth;
34803
- const width = _optionalChain([options, 'optionalAccess', _718 => _718.width]) ? String(options.width) : args.defaultWidth;
34864
+ const width = _optionalChain([options, 'optionalAccess', _726 => _726.width]) ? String(options.width) : args.defaultWidth;
34804
34865
  valuesArray = args.values[width] || args.values[defaultWidth];
34805
34866
  }
34806
34867
  const index = args.argumentCallback ? args.argumentCallback(value) : value;
@@ -35180,7 +35241,7 @@ function getWeekYear(date, options) {
35180
35241
  const _date = toDate(date);
35181
35242
  const year = _date.getFullYear();
35182
35243
  const defaultOptions2 = getDefaultOptions();
35183
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _719 => _719.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _720 => _720.locale, 'optionalAccess', _721 => _721.options, 'optionalAccess', _722 => _722.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _723 => _723.locale, 'optionalAccess', _724 => _724.options, 'optionalAccess', _725 => _725.firstWeekContainsDate]))), () => ( 1));
35244
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _727 => _727.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _728 => _728.locale, 'optionalAccess', _729 => _729.options, 'optionalAccess', _730 => _730.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _731 => _731.locale, 'optionalAccess', _732 => _732.options, 'optionalAccess', _733 => _733.firstWeekContainsDate]))), () => ( 1));
35184
35245
  const firstWeekOfNextYear = constructFrom(date, 0);
35185
35246
  firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
35186
35247
  firstWeekOfNextYear.setHours(0, 0, 0, 0);
@@ -35201,7 +35262,7 @@ function getWeekYear(date, options) {
35201
35262
  // node_modules/date-fns/startOfWeekYear.mjs
35202
35263
  function startOfWeekYear(date, options) {
35203
35264
  const defaultOptions2 = getDefaultOptions();
35204
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _726 => _726.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _727 => _727.locale, 'optionalAccess', _728 => _728.options, 'optionalAccess', _729 => _729.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _730 => _730.locale, 'optionalAccess', _731 => _731.options, 'optionalAccess', _732 => _732.firstWeekContainsDate]))), () => ( 1));
35265
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _734 => _734.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _735 => _735.locale, 'optionalAccess', _736 => _736.options, 'optionalAccess', _737 => _737.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _738 => _738.locale, 'optionalAccess', _739 => _739.options, 'optionalAccess', _740 => _740.firstWeekContainsDate]))), () => ( 1));
35205
35266
  const year = getWeekYear(date, options);
35206
35267
  const firstWeek = constructFrom(date, 0);
35207
35268
  firstWeek.setFullYear(year, 0, firstWeekContainsDate);
@@ -36016,9 +36077,9 @@ var doubleQuoteRegExp = /''/g;
36016
36077
  var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
36017
36078
  function format(date, formatStr, options) {
36018
36079
  const defaultOptions2 = getDefaultOptions();
36019
- const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _733 => _733.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
36020
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _734 => _734.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _735 => _735.locale, 'optionalAccess', _736 => _736.options, 'optionalAccess', _737 => _737.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _738 => _738.locale, 'optionalAccess', _739 => _739.options, 'optionalAccess', _740 => _740.firstWeekContainsDate]))), () => ( 1));
36021
- const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _741 => _741.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _742 => _742.locale, 'optionalAccess', _743 => _743.options, 'optionalAccess', _744 => _744.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _745 => _745.locale, 'optionalAccess', _746 => _746.options, 'optionalAccess', _747 => _747.weekStartsOn]))), () => ( 0));
36080
+ const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _741 => _741.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
36081
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _742 => _742.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _743 => _743.locale, 'optionalAccess', _744 => _744.options, 'optionalAccess', _745 => _745.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _746 => _746.locale, 'optionalAccess', _747 => _747.options, 'optionalAccess', _748 => _748.firstWeekContainsDate]))), () => ( 1));
36082
+ const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _749 => _749.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _750 => _750.locale, 'optionalAccess', _751 => _751.options, 'optionalAccess', _752 => _752.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _753 => _753.locale, 'optionalAccess', _754 => _754.options, 'optionalAccess', _755 => _755.weekStartsOn]))), () => ( 0));
36022
36083
  const originalDate = toDate(date);
36023
36084
  if (!isValid(originalDate)) {
36024
36085
  throw new RangeError("Invalid time value");
@@ -36059,7 +36120,7 @@ function format(date, formatStr, options) {
36059
36120
  return parts.map((part) => {
36060
36121
  if (!part.isToken) return part.value;
36061
36122
  const token = part.value;
36062
- if (!_optionalChain([options, 'optionalAccess', _748 => _748.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _749 => _749.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
36123
+ if (!_optionalChain([options, 'optionalAccess', _756 => _756.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _757 => _757.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
36063
36124
  warnOrThrowProtectedError(token, formatStr, String(date));
36064
36125
  }
36065
36126
  const formatter = formatters[token[0]];
@@ -36237,7 +36298,7 @@ function ProgramCard({
36237
36298
  const dur = formatDurationFromRange(w.start_at, w.end_at);
36238
36299
  typeMeta = dur ? `${time} \xB7 ${dur}` : time;
36239
36300
  }
36240
- const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _750 => _750.labels, 'optionalAccess', _751 => _751.singular])].filter(
36301
+ const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _758 => _758.labels, 'optionalAccess', _759 => _759.singular])].filter(
36241
36302
  (s) => typeof s === "string" && s.length > 0
36242
36303
  );
36243
36304
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "a", { href, target, rel, className: _chunkFIG2RKZFcjs.cn.call(void 0, COMPACT_CARD_OUTER, className), children: [
@@ -36394,7 +36455,7 @@ function ProgramCard({
36394
36455
 
36395
36456
 
36396
36457
  function CampaignCardAdmin({ campaign, className, anchorProps }) {
36397
- const goalsCount = _optionalChain([campaign, 'access', _752 => _752.goals, 'optionalAccess', _753 => _753.length]) || 0;
36458
+ const goalsCount = _optionalChain([campaign, 'access', _760 => _760.goals, 'optionalAccess', _761 => _761.length]) || 0;
36398
36459
  const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
36399
36460
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Megaphone, { className: "h-5 w-5" }) }),
36400
36461
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -36485,33 +36546,6 @@ _chunkG7UE6RKVcjs.init_next_navigation.call(void 0, );
36485
36546
 
36486
36547
  // src/components/chat/hooks/use-chat-card-item.ts
36487
36548
  var _reactquery = require('@tanstack/react-query');
36488
- function extractItems(data) {
36489
- if (!data || typeof data !== "object") return [];
36490
- const obj = data;
36491
- if (Array.isArray(obj.items)) return obj.items;
36492
- if (Array.isArray(obj.posts)) return obj.posts;
36493
- if (Array.isArray(obj.campaigns)) return obj.campaigns;
36494
- if (Array.isArray(obj.completed) || Array.isArray(obj.inProgress)) {
36495
- const completed = Array.isArray(obj.completed) ? obj.completed : [];
36496
- const inProgress = Array.isArray(obj.inProgress) ? obj.inProgress : [];
36497
- return [...completed, ...inProgress];
36498
- }
36499
- if (Array.isArray(obj.data)) return obj.data;
36500
- if (Array.isArray(data)) return data;
36501
- return [];
36502
- }
36503
- function extractItemId(type, item) {
36504
- if (!item || typeof item !== "object") return null;
36505
- const obj = item;
36506
- if (type === "roadmap_item" || type === "delivery_item" || type === "internal_task") {
36507
- const ext = obj.external_id;
36508
- if (typeof ext === "string") return ext;
36509
- }
36510
- const id = obj.id;
36511
- if (typeof id === "string") return id;
36512
- if (typeof id === "number") return String(id);
36513
- return null;
36514
- }
36515
36549
  function useChatCardItem(type, id) {
36516
36550
  const runtime = _chunkMEAR2WHScjs.useRequiredChatRuntime.call(void 0, );
36517
36551
  const url = runtime.endpoints.buildListUrl(type, [id]);
@@ -36583,7 +36617,7 @@ function resolveSourceRowCTA(row, ctx = {}) {
36583
36617
  if (row.path && shouldFallbackToPathNav(row) && !row.externalUrl) {
36584
36618
  const safePath = sanitizePath(row.path);
36585
36619
  if (safePath) {
36586
- const docTarget = row.documentType ? _optionalChain([ctx, 'access', _754 => _754.docPlatformTargets, 'optionalAccess', _755 => _755[row.documentType]]) : void 0;
36620
+ const docTarget = row.documentType ? _optionalChain([ctx, 'access', _762 => _762.docPlatformTargets, 'optionalAccess', _763 => _763[row.documentType]]) : void 0;
36587
36621
  if (docTarget) {
36588
36622
  const seg = docTarget.basePath.split("/").filter(Boolean).join("/");
36589
36623
  const base = `${_chunkFIG2RKZFcjs.getBaseUrl.call(void 0, docTarget.platform)}${seg ? `/${seg}` : ""}/`;
@@ -36798,8 +36832,8 @@ function cardMenuGroups(href, discuss, openDetails) {
36798
36832
  if (href) {
36799
36833
  items.push({
36800
36834
  id: "open-details",
36801
- label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _756 => _756.label]), () => ( "Open Details")),
36802
- icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _757 => _757.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.EyeIcon, { size: 20 }))),
36835
+ label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _764 => _764.label]), () => ( "Open Details")),
36836
+ icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _765 => _765.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.EyeIcon, { size: 20 }))),
36803
36837
  // Main row → open the entity (same tab, soft Link nav).
36804
36838
  href,
36805
36839
  // Trailing 40px ↗ side-button → open in a new tab.
@@ -36829,8 +36863,8 @@ function HubspotTicketChatCard({
36829
36863
  isNewTab,
36830
36864
  discuss
36831
36865
  }) {
36832
- const status = typeof _optionalChain([chatRef, 'access', _758 => _758.metadata, 'optionalAccess', _759 => _759.status]) === "string" ? chatRef.metadata.status : void 0;
36833
- const statusLabel = typeof _optionalChain([chatRef, 'access', _760 => _760.metadata, 'optionalAccess', _761 => _761.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
36866
+ const status = typeof _optionalChain([chatRef, 'access', _766 => _766.metadata, 'optionalAccess', _767 => _767.status]) === "string" ? chatRef.metadata.status : void 0;
36867
+ const statusLabel = typeof _optionalChain([chatRef, 'access', _768 => _768.metadata, 'optionalAccess', _769 => _769.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
36834
36868
  const statusText = _nullishCoalesce(statusLabel, () => ( formatStatusToken(status)));
36835
36869
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36836
36870
  MingoInfoCard,
@@ -36853,7 +36887,7 @@ function SlackChatCard({
36853
36887
  isNewTab,
36854
36888
  discuss
36855
36889
  }) {
36856
- const channelName = typeof _optionalChain([chatRef, 'access', _762 => _762.metadata, 'optionalAccess', _763 => _763.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
36890
+ const channelName = typeof _optionalChain([chatRef, 'access', _770 => _770.metadata, 'optionalAccess', _771 => _771.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
36857
36891
  const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
36858
36892
  const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
36859
36893
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -36893,7 +36927,7 @@ function GenericFinancialChatCard({
36893
36927
  isNewTab,
36894
36928
  discuss
36895
36929
  }) {
36896
- const subtitle = typeof _optionalChain([chatRef, 'access', _764 => _764.metadata, 'optionalAccess', _765 => _765.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
36930
+ const subtitle = typeof _optionalChain([chatRef, 'access', _772 => _772.metadata, 'optionalAccess', _773 => _773.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
36897
36931
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36898
36932
  MingoInfoCard,
36899
36933
  {
@@ -36962,12 +36996,12 @@ function ProductReleaseChatCard({
36962
36996
  discuss
36963
36997
  }) {
36964
36998
  const releaseProps = buildProps(item);
36965
- const status = _optionalChain([item, 'optionalAccess', _766 => _766.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
36999
+ const status = _optionalChain([item, 'optionalAccess', _774 => _774.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
36966
37000
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36967
37001
  EntityMingoCard,
36968
37002
  {
36969
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _767 => _767.title]), () => ( "")),
36970
- description: _optionalChain([item, 'optionalAccess', _768 => _768.summary]) || releaseProps.formattedDate || void 0,
37003
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _775 => _775.title]), () => ( "")),
37004
+ description: _optionalChain([item, 'optionalAccess', _776 => _776.summary]) || releaseProps.formattedDate || void 0,
36971
37005
  cover: releaseProps.coverImage || void 0,
36972
37006
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Rocket02Icon, { size: 24 }),
36973
37007
  status,
@@ -36984,17 +37018,17 @@ function CampaignChatCard({
36984
37018
  isNewTab,
36985
37019
  discuss
36986
37020
  }) {
36987
- const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _769 => _769.goals])) ? item.goals.length : 0;
37021
+ const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _777 => _777.goals])) ? item.goals.length : 0;
36988
37022
  const meta = [
36989
- _optionalChain([item, 'optionalAccess', _770 => _770.start_date]) ? formatDateShort(item.start_date) : null,
37023
+ _optionalChain([item, 'optionalAccess', _778 => _778.start_date]) ? formatDateShort(item.start_date) : null,
36990
37024
  goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
36991
37025
  "Marketing campaign"
36992
37026
  ].filter(Boolean).join(" \xB7 ");
36993
37027
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36994
37028
  EntityMingoCard,
36995
37029
  {
36996
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _771 => _771.name]), () => ( "")),
36997
- description: meta || _optionalChain([item, 'optionalAccess', _772 => _772.description]) || void 0,
37030
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _779 => _779.name]), () => ( "")),
37031
+ description: meta || _optionalChain([item, 'optionalAccess', _780 => _780.description]) || void 0,
36998
37032
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Megaphone01Icon, { size: 24 }),
36999
37033
  chatRef,
37000
37034
  isNewTab,
@@ -37047,14 +37081,14 @@ function BlogChatCard({
37047
37081
  hasEmbeddedVideo,
37048
37082
  discuss
37049
37083
  }) {
37050
- const category = Array.isArray(_optionalChain([item, 'optionalAccess', _773 => _773.categories])) ? _optionalChain([item, 'access', _774 => _774.categories, 'access', _775 => _775.find, 'call', _776 => _776((c) => c && c.name), 'optionalAccess', _777 => _777.name]) : void 0;
37084
+ const category = Array.isArray(_optionalChain([item, 'optionalAccess', _781 => _781.categories])) ? _optionalChain([item, 'access', _782 => _782.categories, 'access', _783 => _783.find, 'call', _784 => _784((c) => c && c.name), 'optionalAccess', _785 => _785.name]) : void 0;
37051
37085
  const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
37052
37086
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
37053
37087
  EntityMingoCard,
37054
37088
  {
37055
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _778 => _778.title]), () => ( "")),
37056
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _779 => _779.summary]), () => ( void 0)),
37057
- cover: entityCover(_optionalChain([item, 'optionalAccess', _780 => _780.featured_image]), ogPlaceholder),
37089
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _786 => _786.title]), () => ( "")),
37090
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _787 => _787.summary]), () => ( void 0)),
37091
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _788 => _788.featured_image]), ogPlaceholder),
37058
37092
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.NewspaperIcon, { size: 24 }),
37059
37093
  status,
37060
37094
  chatRef,
@@ -37071,13 +37105,13 @@ function CaseStudyChatCard({
37071
37105
  ogPlaceholder,
37072
37106
  discuss
37073
37107
  }) {
37074
- const meta = [_optionalChain([item, 'optionalAccess', _781 => _781.msp, 'optionalAccess', _782 => _782.name]), _optionalChain([item, 'optionalAccess', _783 => _783.user, 'optionalAccess', _784 => _784.full_name])].filter(Boolean).join(" \xB7 ");
37108
+ const meta = [_optionalChain([item, 'optionalAccess', _789 => _789.msp, 'optionalAccess', _790 => _790.name]), _optionalChain([item, 'optionalAccess', _791 => _791.user, 'optionalAccess', _792 => _792.full_name])].filter(Boolean).join(" \xB7 ");
37075
37109
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
37076
37110
  EntityMingoCard,
37077
37111
  {
37078
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _785 => _785.title]), () => ( "")),
37079
- description: _optionalChain([item, 'optionalAccess', _786 => _786.summary]) || meta || void 0,
37080
- cover: entityCover(_optionalChain([item, 'optionalAccess', _787 => _787.featured_image]), ogPlaceholder),
37112
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _793 => _793.title]), () => ( "")),
37113
+ description: _optionalChain([item, 'optionalAccess', _794 => _794.summary]) || meta || void 0,
37114
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _795 => _795.featured_image]), ogPlaceholder),
37081
37115
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.TrophyIcon, { size: 24 }),
37082
37116
  status: { label: "Case study", variant: "grey" },
37083
37117
  chatRef,
@@ -37094,13 +37128,13 @@ function CustomerInterviewChatCard({
37094
37128
  ogPlaceholder,
37095
37129
  discuss
37096
37130
  }) {
37097
- const meta = [_optionalChain([item, 'optionalAccess', _788 => _788.user, 'optionalAccess', _789 => _789.full_name]), _optionalChain([item, 'optionalAccess', _790 => _790.msp, 'optionalAccess', _791 => _791.name])].filter(Boolean).join(" \xB7 ");
37131
+ const meta = [_optionalChain([item, 'optionalAccess', _796 => _796.user, 'optionalAccess', _797 => _797.full_name]), _optionalChain([item, 'optionalAccess', _798 => _798.msp, 'optionalAccess', _799 => _799.name])].filter(Boolean).join(" \xB7 ");
37098
37132
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
37099
37133
  EntityMingoCard,
37100
37134
  {
37101
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _792 => _792.title]), () => ( "")),
37102
- description: _optionalChain([item, 'optionalAccess', _793 => _793.video_summary]) || meta || void 0,
37103
- cover: entityCover(_optionalChain([item, 'optionalAccess', _794 => _794.featured_image]), ogPlaceholder),
37135
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _800 => _800.title]), () => ( "")),
37136
+ description: _optionalChain([item, 'optionalAccess', _801 => _801.video_summary]) || meta || void 0,
37137
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _802 => _802.featured_image]), ogPlaceholder),
37104
37138
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.MicrophoneIcon, { size: 24 }),
37105
37139
  status: { label: "Interview", variant: "grey" },
37106
37140
  chatRef,
@@ -37117,13 +37151,13 @@ function InvestorUpdateChatCard({
37117
37151
  ogPlaceholder,
37118
37152
  discuss
37119
37153
  }) {
37120
- const title = _optionalChain([item, 'optionalAccess', _795 => _795.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _796 => _796.update_number]), () => ( "?"))}`;
37154
+ const title = _optionalChain([item, 'optionalAccess', _803 => _803.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _804 => _804.update_number]), () => ( "?"))}`;
37121
37155
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
37122
37156
  EntityMingoCard,
37123
37157
  {
37124
37158
  title,
37125
- description: _optionalChain([item, 'optionalAccess', _797 => _797.strategic_update]) || _optionalChain([item, 'optionalAccess', _798 => _798.content]) || formatInvestorUpdatePeriod(_optionalChain([item, 'optionalAccess', _799 => _799.period_start]), _optionalChain([item, 'optionalAccess', _800 => _800.period_end])) || void 0,
37126
- cover: entityCover(_optionalChain([item, 'optionalAccess', _801 => _801.featured_image]), ogPlaceholder),
37159
+ description: _optionalChain([item, 'optionalAccess', _805 => _805.strategic_update]) || _optionalChain([item, 'optionalAccess', _806 => _806.content]) || formatInvestorUpdatePeriod(_optionalChain([item, 'optionalAccess', _807 => _807.period_start]), _optionalChain([item, 'optionalAccess', _808 => _808.period_end])) || void 0,
37160
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _809 => _809.featured_image]), ogPlaceholder),
37127
37161
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.PresentationLineIcon, { size: 24 }),
37128
37162
  status: { label: "Investor update", variant: "grey" },
37129
37163
  chatRef,
@@ -37140,12 +37174,12 @@ function OnboardingGuideChatCard({
37140
37174
  ogPlaceholder,
37141
37175
  discuss
37142
37176
  }) {
37143
- const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _802 => _802.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _803 => _803.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _804 => _804.og_image_url]), ogPlaceholder)));
37177
+ const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _810 => _810.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _811 => _811.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _812 => _812.og_image_url]), ogPlaceholder)));
37144
37178
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
37145
37179
  EntityMingoCard,
37146
37180
  {
37147
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _805 => _805.title]), () => ( "")),
37148
- description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _806 => _806.summary]), () => ( _optionalChain([item, 'optionalAccess', _807 => _807.description]))), () => ( void 0)),
37181
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _813 => _813.title]), () => ( "")),
37182
+ description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _814 => _814.summary]), () => ( _optionalChain([item, 'optionalAccess', _815 => _815.description]))), () => ( void 0)),
37149
37183
  cover,
37150
37184
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.CompassIcon, { size: 24 }),
37151
37185
  status: { label: "Guide", variant: "grey" },
@@ -37166,25 +37200,25 @@ function ProgramChatCard({
37166
37200
  discuss
37167
37201
  }) {
37168
37202
  const icon = configKey === "webinar" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.PresentationBarIcon, { size: 24 }) : configKey === "event" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.CalendarIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.MicrophoneIcon, { size: 24 });
37169
- const isScheduled = _optionalChain([item, 'optionalAccess', _808 => _808.status]) === "scheduled";
37203
+ const isScheduled = _optionalChain([item, 'optionalAccess', _816 => _816.status]) === "scheduled";
37170
37204
  let typeMeta;
37171
- if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _809 => _809.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
37205
+ if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _817 => _817.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
37172
37206
  typeMeta = formatDurationCompact(item.duration_seconds);
37173
- } else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess', _810 => _810.location_name]) === "string" && item.location_name.trim().length > 0) {
37207
+ } else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess', _818 => _818.location_name]) === "string" && item.location_name.trim().length > 0) {
37174
37208
  typeMeta = item.location_name;
37175
- } else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _811 => _811.start_at])) {
37209
+ } else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _819 => _819.start_at])) {
37176
37210
  const time = formatTimeWithTimezone(item.start_at, null);
37177
37211
  const dur = formatDurationFromRange(item.start_at, item.end_at);
37178
37212
  typeMeta = dur ? `${time} \xB7 ${dur}` : time;
37179
37213
  }
37180
- const itemDate = formatDateUTC(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _812 => _812.date]), () => ( null)), { fallback: "", timezone: "local" });
37214
+ const itemDate = formatDateUTC(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _820 => _820.date]), () => ( null)), { fallback: "", timezone: "local" });
37181
37215
  const meta = [itemDate, typeMeta].filter(Boolean).join(" \xB7 ");
37182
37216
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
37183
37217
  EntityMingoCard,
37184
37218
  {
37185
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _813 => _813.title]), () => ( "")),
37186
- description: meta || _optionalChain([item, 'optionalAccess', _814 => _814.description]) || void 0,
37187
- cover: entityCover(_optionalChain([item, 'optionalAccess', _815 => _815.cover_url]), ogPlaceholder),
37219
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _821 => _821.title]), () => ( "")),
37220
+ description: meta || _optionalChain([item, 'optionalAccess', _822 => _822.description]) || void 0,
37221
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _823 => _823.cover_url]), ogPlaceholder),
37188
37222
  fallbackIcon: icon,
37189
37223
  status: { label, variant: "grey" },
37190
37224
  chatRef,
@@ -37201,10 +37235,10 @@ function RoadmapChatCard({
37201
37235
  cardType,
37202
37236
  discuss
37203
37237
  }) {
37204
- const logoUrl = typeof _optionalChain([item, 'optionalAccess', _816 => _816.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
37205
- const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _817 => _817.customItemId]) != null;
37238
+ const logoUrl = typeof _optionalChain([item, 'optionalAccess', _824 => _824.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
37239
+ const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _825 => _825.customItemId]) != null;
37206
37240
  const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.TruckFastIcon, { size: 24 }) : cardType === "internal_task" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.CheckSquareIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.MapIcon, { size: 24 });
37207
- const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _818 => _818.customItemId]), className: "size-6" }) : logoUrl ? (
37241
+ const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _826 => _826.customItemId]), className: "size-6" }) : logoUrl ? (
37208
37242
  // Contained (not full-bleed) so the integration logo keeps its aspect
37209
37243
  // ratio inside the bordered icon box — matches RoadmapCard.
37210
37244
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src: logoUrl, alt: "", className: "size-6 object-contain" })
@@ -37212,10 +37246,10 @@ function RoadmapChatCard({
37212
37246
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
37213
37247
  EntityMingoCard,
37214
37248
  {
37215
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _819 => _819.title]), () => ( "")),
37216
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _820 => _820.description]), () => ( void 0)),
37249
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _827 => _827.title]), () => ( "")),
37250
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _828 => _828.description]), () => ( void 0)),
37217
37251
  fallbackIcon: icon,
37218
- status: statusPill(_optionalChain([item, 'optionalAccess', _821 => _821.status])),
37252
+ status: statusPill(_optionalChain([item, 'optionalAccess', _829 => _829.status])),
37219
37253
  chatRef,
37220
37254
  isNewTab,
37221
37255
  discuss,
@@ -37301,7 +37335,7 @@ function programRegistryEntries() {
37301
37335
  discuss: opts.discuss,
37302
37336
  configKey: cfg.configKey,
37303
37337
  label: cfg.configKey.charAt(0).toUpperCase() + cfg.configKey.slice(1),
37304
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _822 => _822.extras, 'optionalAccess', _823 => _823.buildOgPlaceholderUrl, 'optionalCall', _824 => _824(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _825 => _825.title]), () => ( "")))]), () => ( null))
37338
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _830 => _830.extras, 'optionalAccess', _831 => _831.buildOgPlaceholderUrl, 'optionalCall', _832 => _832(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _833 => _833.title]), () => ( "")))]), () => ( null))
37305
37339
  }
37306
37340
  )
37307
37341
  };
@@ -37447,8 +37481,8 @@ var CHAT_CARD_REGISTRY = {
37447
37481
  chatRef,
37448
37482
  isNewTab: opts.isNewTab,
37449
37483
  discuss: opts.discuss,
37450
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _826 => _826.extras, 'optionalAccess', _827 => _827.buildOgPlaceholderUrl, 'optionalCall', _828 => _828(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _829 => _829.title]), () => ( "")))]), () => ( null)),
37451
- hasEmbeddedVideo: _optionalChain([chatRef, 'access', _830 => _830.metadata, 'optionalAccess', _831 => _831.hasEmbeddedVideo]) === true
37484
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _834 => _834.extras, 'optionalAccess', _835 => _835.buildOgPlaceholderUrl, 'optionalCall', _836 => _836(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _837 => _837.title]), () => ( "")))]), () => ( null)),
37485
+ hasEmbeddedVideo: _optionalChain([chatRef, 'access', _838 => _838.metadata, 'optionalAccess', _839 => _839.hasEmbeddedVideo]) === true
37452
37486
  }
37453
37487
  )
37454
37488
  },
@@ -37465,7 +37499,7 @@ var CHAT_CARD_REGISTRY = {
37465
37499
  chatRef,
37466
37500
  isNewTab: opts.isNewTab,
37467
37501
  discuss: opts.discuss,
37468
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _832 => _832.extras, 'optionalAccess', _833 => _833.buildOgPlaceholderUrl, 'optionalCall', _834 => _834(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _835 => _835.title]), () => ( "")))]), () => ( null))
37502
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _840 => _840.extras, 'optionalAccess', _841 => _841.buildOgPlaceholderUrl, 'optionalCall', _842 => _842(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _843 => _843.title]), () => ( "")))]), () => ( null))
37469
37503
  }
37470
37504
  )
37471
37505
  },
@@ -37482,7 +37516,7 @@ var CHAT_CARD_REGISTRY = {
37482
37516
  chatRef,
37483
37517
  isNewTab: opts.isNewTab,
37484
37518
  discuss: opts.discuss,
37485
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _836 => _836.extras, 'optionalAccess', _837 => _837.buildOgPlaceholderUrl, 'optionalCall', _838 => _838(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _839 => _839.title]), () => ( "")))]), () => ( null))
37519
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _844 => _844.extras, 'optionalAccess', _845 => _845.buildOgPlaceholderUrl, 'optionalCall', _846 => _846(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _847 => _847.title]), () => ( "")))]), () => ( null))
37486
37520
  }
37487
37521
  )
37488
37522
  },
@@ -37493,7 +37527,7 @@ var CHAT_CARD_REGISTRY = {
37493
37527
  bareInline: true,
37494
37528
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductReleaseCardSkeleton, { size: "sm" }),
37495
37529
  render: (item, chatRef, opts) => {
37496
- const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _840 => _840.extras, 'optionalAccess', _841 => _841.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
37530
+ const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _848 => _848.extras, 'optionalAccess', _849 => _849.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
37497
37531
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
37498
37532
  ProductReleaseChatCard,
37499
37533
  {
@@ -37520,7 +37554,7 @@ var CHAT_CARD_REGISTRY = {
37520
37554
  chatRef,
37521
37555
  isNewTab: opts.isNewTab,
37522
37556
  discuss: opts.discuss,
37523
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _842 => _842.extras, 'optionalAccess', _843 => _843.buildOgPlaceholderUrl, 'optionalCall', _844 => _844(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _845 => _845.title]), () => ( "")))]), () => ( null))
37557
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _850 => _850.extras, 'optionalAccess', _851 => _851.buildOgPlaceholderUrl, 'optionalCall', _852 => _852(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _853 => _853.title]), () => ( "")))]), () => ( null))
37524
37558
  }
37525
37559
  )
37526
37560
  },
@@ -37539,7 +37573,7 @@ var CHAT_CARD_REGISTRY = {
37539
37573
  chatRef,
37540
37574
  isNewTab: opts.isNewTab,
37541
37575
  discuss: opts.discuss,
37542
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _846 => _846.extras, 'optionalAccess', _847 => _847.buildOgPlaceholderUrl, 'optionalCall', _848 => _848(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _849 => _849.title]), () => ( "")))]), () => ( null))
37576
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _854 => _854.extras, 'optionalAccess', _855 => _855.buildOgPlaceholderUrl, 'optionalCall', _856 => _856(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _857 => _857.title]), () => ( "")))]), () => ( null))
37543
37577
  }
37544
37578
  )
37545
37579
  },
@@ -37551,7 +37585,7 @@ var CHAT_CARD_REGISTRY = {
37551
37585
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
37552
37586
  // No public viewer — synthesize the hub-internal admin URL post-fetch
37553
37587
  // so the wrapper + isNewTab computation see the actual destination.
37554
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _850 => _850.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
37588
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _858 => _858.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
37555
37589
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
37556
37590
  CampaignChatCard,
37557
37591
  {
@@ -37577,12 +37611,12 @@ function ChatCardNavWrap({
37577
37611
  const onClickCapture = (e) => {
37578
37612
  if (!href) return;
37579
37613
  const targetEl = e.target;
37580
- if (_optionalChain([targetEl, 'optionalAccess', _851 => _851.closest, 'optionalCall', _852 => _852("button")])) return;
37581
- if (!_optionalChain([targetEl, 'optionalAccess', _853 => _853.closest, 'optionalCall', _854 => _854("a")])) return;
37614
+ if (_optionalChain([targetEl, 'optionalAccess', _859 => _859.closest, 'optionalCall', _860 => _860("button")])) return;
37615
+ if (!_optionalChain([targetEl, 'optionalAccess', _861 => _861.closest, 'optionalCall', _862 => _862("a")])) return;
37582
37616
  const handled = handleChatNavClick(e, runtime, { href, path, targetPlatform }, router.push);
37583
37617
  if (!handled) return;
37584
37618
  e.stopPropagation();
37585
- if (!isNewTab && _optionalChain([panel, 'optionalAccess', _855 => _855.closeChat])) panel.closeChat();
37619
+ if (!isNewTab && _optionalChain([panel, 'optionalAccess', _863 => _863.closeChat])) panel.closeChat();
37586
37620
  };
37587
37621
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
37588
37622
  }
@@ -37604,7 +37638,7 @@ function ChatCardLoader({
37604
37638
  title: chatRef.title,
37605
37639
  externalUrl: chatRef.url,
37606
37640
  targetPlatform: chatRef.targetPlatform,
37607
- path: typeof _optionalChain([chatRef, 'access', _856 => _856.metadata, 'optionalAccess', _857 => _857.path]) === "string" ? chatRef.metadata.path : null
37641
+ path: typeof _optionalChain([chatRef, 'access', _864 => _864.metadata, 'optionalAccess', _865 => _865.path]) === "string" ? chatRef.metadata.path : null
37608
37642
  },
37609
37643
  sourceRowCtxFromRuntime(runtime, { baseRoute, chipBasePlatform })
37610
37644
  );
@@ -37618,7 +37652,7 @@ function ChatCardLoader({
37618
37652
  const entry = CHAT_CARD_REGISTRY[resolvedChatRef.type];
37619
37653
  const fetchEntry = entry && entry.mode === "fetch" ? entry : null;
37620
37654
  const { item, isLoading } = useChatCardItem(
37621
- _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _858 => _858.contentRefType]), () => ( "")),
37655
+ _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _866 => _866.contentRefType]), () => ( "")),
37622
37656
  fetchEntry ? resolvedChatRef.id : ""
37623
37657
  );
37624
37658
  if (!entry) return null;
@@ -37649,7 +37683,7 @@ function ChatCardLoader({
37649
37683
  isNewTab,
37650
37684
  discuss
37651
37685
  };
37652
- const path = typeof _optionalChain([finalChatRef, 'access', _859 => _859.metadata, 'optionalAccess', _860 => _860.path]) === "string" ? finalChatRef.metadata.path : null;
37686
+ const path = typeof _optionalChain([finalChatRef, 'access', _867 => _867.metadata, 'optionalAccess', _868 => _868.path]) === "string" ? finalChatRef.metadata.path : null;
37653
37687
  const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
37654
37688
  ChatCardNavWrap,
37655
37689
  {
@@ -38175,7 +38209,7 @@ function useJetStreamDialogSubscription({
38175
38209
  const lifecycle = _chunkOZ3GH6OQcjs.startConnectionLifecycle.call(void 0, {
38176
38210
  conn: sharedConn,
38177
38211
  wsUrl,
38178
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _861 => _861.current, 'optionalCall', _862 => _862()]),
38212
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _869 => _869.current, 'optionalCall', _870 => _870()]),
38179
38213
  backoff: reconnectionBackoffRef.current,
38180
38214
  getFreshUrl: () => getNatsWsUrlRef.current(),
38181
38215
  // JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
@@ -38190,7 +38224,7 @@ function useJetStreamDialogSubscription({
38190
38224
  setReconnectionCount((c) => c + 1);
38191
38225
  }
38192
38226
  hadConnectionBeforeRef.current = true;
38193
- _optionalChain([onConnectRef, 'access', _863 => _863.current, 'optionalCall', _864 => _864()]);
38227
+ _optionalChain([onConnectRef, 'access', _871 => _871.current, 'optionalCall', _872 => _872()]);
38194
38228
  }
38195
38229
  if (status === "error") {
38196
38230
  console.warn("[JetStream] NATS protocol error:", evt.data);
@@ -38200,7 +38234,7 @@ function useJetStreamDialogSubscription({
38200
38234
  setIsConnected(false);
38201
38235
  setIsSubscribed(false);
38202
38236
  tearDownSubscription();
38203
- _optionalChain([onDisconnectRef, 'access', _865 => _865.current, 'optionalCall', _866 => _866()]);
38237
+ _optionalChain([onDisconnectRef, 'access', _873 => _873.current, 'optionalCall', _874 => _874()]);
38204
38238
  }
38205
38239
  }
38206
38240
  });
@@ -38279,7 +38313,7 @@ function useJetStreamDialogSubscription({
38279
38313
  }
38280
38314
  subscriptionRef.current = handle;
38281
38315
  setIsSubscribed(true);
38282
- _optionalChain([onSubscribedRef, 'access', _867 => _867.current, 'optionalCall', _868 => _868()]);
38316
+ _optionalChain([onSubscribedRef, 'access', _875 => _875.current, 'optionalCall', _876 => _876()]);
38283
38317
  } catch (e35) {
38284
38318
  if (!cancelled) {
38285
38319
  setIsSubscribed(false);
@@ -38392,20 +38426,20 @@ function useNatsDialogSubscription({
38392
38426
  const tearDownSubscriptions = () => {
38393
38427
  subscriptionRefs.current.forEach((sub) => {
38394
38428
  try {
38395
- _optionalChain([sub, 'optionalAccess', _869 => _869.unsubscribe, 'call', _870 => _870()]);
38429
+ _optionalChain([sub, 'optionalAccess', _877 => _877.unsubscribe, 'call', _878 => _878()]);
38396
38430
  } catch (e37) {
38397
38431
  }
38398
38432
  });
38399
38433
  subscriptionRefs.current.clear();
38400
38434
  lastSubscribedDialogIdRef.current = null;
38401
- _optionalChain([abortControllerRef, 'access', _871 => _871.current, 'optionalAccess', _872 => _872.abort, 'call', _873 => _873()]);
38435
+ _optionalChain([abortControllerRef, 'access', _879 => _879.current, 'optionalAccess', _880 => _880.abort, 'call', _881 => _881()]);
38402
38436
  abortControllerRef.current = null;
38403
38437
  };
38404
38438
  const isDisconnectStatus = (status) => status === "closed" || status === "disconnected" || status === "error";
38405
38439
  const lifecycle = _chunkOZ3GH6OQcjs.startConnectionLifecycle.call(void 0, {
38406
38440
  conn: sharedConn,
38407
38441
  wsUrl,
38408
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _874 => _874.current, 'optionalCall', _875 => _875()]),
38442
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _882 => _882.current, 'optionalCall', _883 => _883()]),
38409
38443
  backoff: reconnectionBackoffRef.current,
38410
38444
  getFreshUrl: () => getNatsWsUrlRef.current(),
38411
38445
  shouldRetryOn: isDisconnectStatus,
@@ -38416,13 +38450,13 @@ function useNatsDialogSubscription({
38416
38450
  setReconnectionCount((c) => c + 1);
38417
38451
  }
38418
38452
  hadConnectionBeforeRef.current = true;
38419
- _optionalChain([onConnectRef, 'access', _876 => _876.current, 'optionalCall', _877 => _877()]);
38453
+ _optionalChain([onConnectRef, 'access', _884 => _884.current, 'optionalCall', _885 => _885()]);
38420
38454
  }
38421
38455
  if (isDisconnectStatus(status)) {
38422
38456
  setIsConnected(false);
38423
38457
  setIsSubscribed(false);
38424
38458
  tearDownSubscriptions();
38425
- _optionalChain([onDisconnectRef, 'access', _878 => _878.current, 'optionalCall', _879 => _879()]);
38459
+ _optionalChain([onDisconnectRef, 'access', _886 => _886.current, 'optionalCall', _887 => _887()]);
38426
38460
  }
38427
38461
  }
38428
38462
  });
@@ -38453,13 +38487,13 @@ function useNatsDialogSubscription({
38453
38487
  setIsSubscribed(false);
38454
38488
  subscriptionRefs.current.forEach((sub) => {
38455
38489
  try {
38456
- _optionalChain([sub, 'optionalAccess', _880 => _880.unsubscribe, 'call', _881 => _881()]);
38490
+ _optionalChain([sub, 'optionalAccess', _888 => _888.unsubscribe, 'call', _889 => _889()]);
38457
38491
  } catch (e38) {
38458
38492
  }
38459
38493
  });
38460
38494
  subscriptionRefs.current.clear();
38461
38495
  lastSubscribedDialogIdRef.current = null;
38462
- _optionalChain([abortControllerRef, 'access', _882 => _882.current, 'optionalAccess', _883 => _883.abort, 'call', _884 => _884()]);
38496
+ _optionalChain([abortControllerRef, 'access', _890 => _890.current, 'optionalAccess', _891 => _891.abort, 'call', _892 => _892()]);
38463
38497
  abortControllerRef.current = null;
38464
38498
  }
38465
38499
  return;
@@ -38471,12 +38505,12 @@ function useNatsDialogSubscription({
38471
38505
  if (subscriptionRefs.current.size > 0) {
38472
38506
  subscriptionRefs.current.forEach((sub) => {
38473
38507
  try {
38474
- _optionalChain([sub, 'optionalAccess', _885 => _885.unsubscribe, 'call', _886 => _886()]);
38508
+ _optionalChain([sub, 'optionalAccess', _893 => _893.unsubscribe, 'call', _894 => _894()]);
38475
38509
  } catch (e39) {
38476
38510
  }
38477
38511
  });
38478
38512
  subscriptionRefs.current.clear();
38479
- _optionalChain([abortControllerRef, 'access', _887 => _887.current, 'optionalAccess', _888 => _888.abort, 'call', _889 => _889()]);
38513
+ _optionalChain([abortControllerRef, 'access', _895 => _895.current, 'optionalAccess', _896 => _896.abort, 'call', _897 => _897()]);
38480
38514
  }
38481
38515
  abortControllerRef.current = new AbortController();
38482
38516
  const abort = abortControllerRef.current;
@@ -38508,7 +38542,7 @@ function useNatsDialogSubscription({
38508
38542
  });
38509
38543
  lastSubscribedDialogIdRef.current = dialogId;
38510
38544
  setIsSubscribed(true);
38511
- _optionalChain([onSubscribedRef, 'access', _890 => _890.current, 'optionalCall', _891 => _891()]);
38545
+ _optionalChain([onSubscribedRef, 'access', _898 => _898.current, 'optionalCall', _899 => _899()]);
38512
38546
  };
38513
38547
  if (isConnectedRef.current) {
38514
38548
  createSubscriptions();
@@ -38518,7 +38552,7 @@ function useNatsDialogSubscription({
38518
38552
  abort.abort();
38519
38553
  subscriptionRefs.current.forEach((sub) => {
38520
38554
  try {
38521
- _optionalChain([sub, 'optionalAccess', _892 => _892.unsubscribe, 'call', _893 => _893()]);
38555
+ _optionalChain([sub, 'optionalAccess', _900 => _900.unsubscribe, 'call', _901 => _901()]);
38522
38556
  } catch (e41) {
38523
38557
  }
38524
38558
  });
@@ -38559,7 +38593,7 @@ function useNatsDialogSubscription({
38559
38593
  });
38560
38594
  lastSubscribedDialogIdRef.current = dialogId2;
38561
38595
  setIsSubscribed(true);
38562
- _optionalChain([onSubscribedRef, 'access', _894 => _894.current, 'optionalCall', _895 => _895()]);
38596
+ _optionalChain([onSubscribedRef, 'access', _902 => _902.current, 'optionalCall', _903 => _903()]);
38563
38597
  } else if (subscriptionRefs.current.size > 0) {
38564
38598
  setIsSubscribed(true);
38565
38599
  }
@@ -38567,10 +38601,10 @@ function useNatsDialogSubscription({
38567
38601
  return { isConnected, isSubscribed, reconnectionCount };
38568
38602
  }
38569
38603
  function buildNatsWsUrl(apiBaseUrl, options) {
38570
- const path = _optionalChain([options, 'optionalAccess', _896 => _896.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
38604
+ const path = _optionalChain([options, 'optionalAccess', _904 => _904.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
38571
38605
  const u = new URL(path, apiBaseUrl);
38572
38606
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
38573
- if (_optionalChain([options, 'optionalAccess', _897 => _897.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _898 => _898.token])) {
38607
+ if (_optionalChain([options, 'optionalAccess', _905 => _905.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _906 => _906.token])) {
38574
38608
  u.searchParams.set("authorization", options.token);
38575
38609
  }
38576
38610
  return u.toString();
@@ -38888,8 +38922,8 @@ var MessageSegmentAccumulator = class {
38888
38922
  type: "tool_execution",
38889
38923
  data: {
38890
38924
  ...toolData,
38891
- toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _899 => _899.data, 'access', _900 => _900.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _901 => _901.toolTitle]))),
38892
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _902 => _902.parameters])
38925
+ toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _907 => _907.data, 'access', _908 => _908.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _909 => _909.toolTitle]))),
38926
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _910 => _910.parameters])
38893
38927
  }
38894
38928
  };
38895
38929
  if (existingIndex !== -1) {
@@ -38913,8 +38947,8 @@ var MessageSegmentAccumulator = class {
38913
38947
  if (seg.type !== "approval_batch") return seg;
38914
38948
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
38915
38949
  if (!hasCall) return seg;
38916
- const prev = _optionalChain([seg, 'access', _903 => _903.data, 'access', _904 => _904.executions, 'optionalAccess', _905 => _905[execId]]);
38917
- const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _906 => _906.result]), success: _optionalChain([prev, 'optionalAccess', _907 => _907.success]) };
38950
+ const prev = _optionalChain([seg, 'access', _911 => _911.data, 'access', _912 => _912.executions, 'optionalAccess', _913 => _913[execId]]);
38951
+ const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _914 => _914.result]), success: _optionalChain([prev, 'optionalAccess', _915 => _915.success]) };
38918
38952
  matched = true;
38919
38953
  return {
38920
38954
  ...seg,
@@ -39034,10 +39068,10 @@ var MessageSegmentAccumulator = class {
39034
39068
  const segment = {
39035
39069
  type: "approval_request",
39036
39070
  data: {
39037
- command: _optionalChain([pendingApproval, 'optionalAccess', _908 => _908.command]) || "",
39038
- explanation: _optionalChain([pendingApproval, 'optionalAccess', _909 => _909.explanation]),
39071
+ command: _optionalChain([pendingApproval, 'optionalAccess', _916 => _916.command]) || "",
39072
+ explanation: _optionalChain([pendingApproval, 'optionalAccess', _917 => _917.explanation]),
39039
39073
  requestId,
39040
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _910 => _910.approvalType]) || approvalType
39074
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _918 => _918.approvalType]) || approvalType
39041
39075
  },
39042
39076
  status,
39043
39077
  onApprove: this.callbacks.onApprove,
@@ -39227,7 +39261,7 @@ function useRealtimeChunkProcessor(options) {
39227
39261
  if (initialState.escalatedApprovals) {
39228
39262
  pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
39229
39263
  initialState.escalatedApprovals.forEach((data, requestId) => {
39230
- _optionalChain([callbacks, 'access', _911 => _911.onEscalatedApproval, 'optionalCall', _912 => _912(requestId, data)]);
39264
+ _optionalChain([callbacks, 'access', _919 => _919.onEscalatedApproval, 'optionalCall', _920 => _920(requestId, data)]);
39231
39265
  });
39232
39266
  }
39233
39267
  hasEverStreamedRef.current = true;
@@ -39254,7 +39288,7 @@ function useRealtimeChunkProcessor(options) {
39254
39288
  if ((directModeFlagRef.current || sawDirectMessageRef.current) && !DIRECT_MODE_ALLOWED.has(action.action)) {
39255
39289
  if (isInStreamRef.current) {
39256
39290
  isInStreamRef.current = false;
39257
- _optionalChain([callbacks, 'access', _913 => _913.onStreamEnd, 'optionalCall', _914 => _914()]);
39291
+ _optionalChain([callbacks, 'access', _921 => _921.onStreamEnd, 'optionalCall', _922 => _922()]);
39258
39292
  accumulator.resetSegments();
39259
39293
  }
39260
39294
  return;
@@ -39263,32 +39297,32 @@ function useRealtimeChunkProcessor(options) {
39263
39297
  case "message_start":
39264
39298
  isInStreamRef.current = true;
39265
39299
  hasEverStreamedRef.current = true;
39266
- _optionalChain([callbacks, 'access', _915 => _915.onStreamStart, 'optionalCall', _916 => _916()]);
39300
+ _optionalChain([callbacks, 'access', _923 => _923.onStreamStart, 'optionalCall', _924 => _924()]);
39267
39301
  accumulator.resetSegments();
39268
39302
  break;
39269
39303
  case "message_end":
39270
39304
  isInStreamRef.current = false;
39271
- _optionalChain([callbacks, 'access', _917 => _917.onStreamEnd, 'optionalCall', _918 => _918()]);
39305
+ _optionalChain([callbacks, 'access', _925 => _925.onStreamEnd, 'optionalCall', _926 => _926()]);
39272
39306
  accumulator.resetSegments();
39273
39307
  break;
39274
39308
  case "metadata":
39275
- _optionalChain([callbacks, 'access', _919 => _919.onMetadata, 'optionalCall', _920 => _920(action)]);
39309
+ _optionalChain([callbacks, 'access', _927 => _927.onMetadata, 'optionalCall', _928 => _928(action)]);
39276
39310
  break;
39277
39311
  case "text": {
39278
39312
  const segments = accumulator.appendText(action.text);
39279
39313
  if (isInStreamRef.current || !hasEverStreamedRef.current) {
39280
- _optionalChain([callbacks, 'access', _921 => _921.onSegmentsUpdate, 'optionalCall', _922 => _922(segments)]);
39314
+ _optionalChain([callbacks, 'access', _929 => _929.onSegmentsUpdate, 'optionalCall', _930 => _930(segments)]);
39281
39315
  } else {
39282
- _optionalChain([callbacks, 'access', _923 => _923.onSegmentsUpdate, 'optionalCall', _924 => _924([{ type: "text", text: action.text }], { append: true })]);
39316
+ _optionalChain([callbacks, 'access', _931 => _931.onSegmentsUpdate, 'optionalCall', _932 => _932([{ type: "text", text: action.text }], { append: true })]);
39283
39317
  }
39284
39318
  break;
39285
39319
  }
39286
39320
  case "thinking": {
39287
39321
  const segments = accumulator.appendThinking(action.text);
39288
39322
  if (isInStreamRef.current || !hasEverStreamedRef.current) {
39289
- _optionalChain([callbacks, 'access', _925 => _925.onSegmentsUpdate, 'optionalCall', _926 => _926(segments)]);
39323
+ _optionalChain([callbacks, 'access', _933 => _933.onSegmentsUpdate, 'optionalCall', _934 => _934(segments)]);
39290
39324
  } else {
39291
- _optionalChain([callbacks, 'access', _927 => _927.onSegmentsUpdate, 'optionalCall', _928 => _928([{ type: "thinking", text: action.text }], { append: true })]);
39325
+ _optionalChain([callbacks, 'access', _935 => _935.onSegmentsUpdate, 'optionalCall', _936 => _936([{ type: "thinking", text: action.text }], { append: true })]);
39292
39326
  }
39293
39327
  break;
39294
39328
  }
@@ -39298,7 +39332,7 @@ function useRealtimeChunkProcessor(options) {
39298
39332
  break;
39299
39333
  }
39300
39334
  const segments = accumulator.addToolExecution(action.segment);
39301
- _optionalChain([callbacks, 'access', _929 => _929.onSegmentsUpdate, 'optionalCall', _930 => _930(segments)]);
39335
+ _optionalChain([callbacks, 'access', _937 => _937.onSegmentsUpdate, 'optionalCall', _938 => _938(segments)]);
39302
39336
  break;
39303
39337
  }
39304
39338
  case "approval_request": {
@@ -39312,10 +39346,10 @@ function useRealtimeChunkProcessor(options) {
39312
39346
  approvalType,
39313
39347
  status
39314
39348
  );
39315
- _optionalChain([callbacks, 'access', _931 => _931.onSegmentsUpdate, 'optionalCall', _932 => _932(segments)]);
39349
+ _optionalChain([callbacks, 'access', _939 => _939.onSegmentsUpdate, 'optionalCall', _940 => _940(segments)]);
39316
39350
  } else {
39317
39351
  pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
39318
- _optionalChain([callbacks, 'access', _933 => _933.onEscalatedApproval, 'optionalCall', _934 => _934(requestId, { command, explanation, approvalType })]);
39352
+ _optionalChain([callbacks, 'access', _941 => _941.onEscalatedApproval, 'optionalCall', _942 => _942(requestId, { command, explanation, approvalType })]);
39319
39353
  }
39320
39354
  break;
39321
39355
  }
@@ -39327,20 +39361,20 @@ function useRealtimeChunkProcessor(options) {
39327
39361
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
39328
39362
  pendingEscalatedRef.current.set(requestId, {
39329
39363
  command: summary,
39330
- explanation: _optionalChain([required, 'optionalAccess', _935 => _935.toolExplanation]),
39364
+ explanation: _optionalChain([required, 'optionalAccess', _943 => _943.toolExplanation]),
39331
39365
  approvalType,
39332
39366
  toolCalls
39333
39367
  });
39334
- _optionalChain([callbacks, 'access', _936 => _936.onEscalatedApproval, 'optionalCall', _937 => _937(requestId, {
39368
+ _optionalChain([callbacks, 'access', _944 => _944.onEscalatedApproval, 'optionalCall', _945 => _945(requestId, {
39335
39369
  command: summary,
39336
- explanation: _optionalChain([required, 'optionalAccess', _938 => _938.toolExplanation]),
39370
+ explanation: _optionalChain([required, 'optionalAccess', _946 => _946.toolExplanation]),
39337
39371
  approvalType
39338
39372
  })]);
39339
39373
  break;
39340
39374
  }
39341
39375
  if (batchApprovalsEnabled) {
39342
39376
  const segments2 = accumulator.addApprovalBatch(requestId, approvalType, toolCalls, status);
39343
- _optionalChain([callbacks, 'access', _939 => _939.onSegmentsUpdate, 'optionalCall', _940 => _940(segments2)]);
39377
+ _optionalChain([callbacks, 'access', _947 => _947.onSegmentsUpdate, 'optionalCall', _948 => _948(segments2)]);
39344
39378
  break;
39345
39379
  }
39346
39380
  let segments = accumulator.getSegments();
@@ -39354,7 +39388,7 @@ function useRealtimeChunkProcessor(options) {
39354
39388
  status
39355
39389
  );
39356
39390
  }
39357
- _optionalChain([callbacks, 'access', _941 => _941.onSegmentsUpdate, 'optionalCall', _942 => _942(segments)]);
39391
+ _optionalChain([callbacks, 'access', _949 => _949.onSegmentsUpdate, 'optionalCall', _950 => _950(segments)]);
39358
39392
  break;
39359
39393
  }
39360
39394
  case "approval_result": {
@@ -39363,7 +39397,7 @@ function useRealtimeChunkProcessor(options) {
39363
39397
  const status = approved ? "approved" : "rejected";
39364
39398
  if (escalatedData) {
39365
39399
  pendingEscalatedRef.current.delete(requestId);
39366
- _optionalChain([callbacks, 'access', _943 => _943.onEscalatedApprovalResult, 'optionalCall', _944 => _944(requestId, approved, {
39400
+ _optionalChain([callbacks, 'access', _951 => _951.onEscalatedApprovalResult, 'optionalCall', _952 => _952(requestId, approved, {
39367
39401
  command: escalatedData.command,
39368
39402
  explanation: escalatedData.explanation,
39369
39403
  approvalType: escalatedData.approvalType
@@ -39376,7 +39410,7 @@ function useRealtimeChunkProcessor(options) {
39376
39410
  escalatedData.toolCalls,
39377
39411
  status
39378
39412
  );
39379
- _optionalChain([callbacks, 'access', _945 => _945.onSegmentsUpdate, 'optionalCall', _946 => _946(segments)]);
39413
+ _optionalChain([callbacks, 'access', _953 => _953.onSegmentsUpdate, 'optionalCall', _954 => _954(segments)]);
39380
39414
  } else {
39381
39415
  let segments = accumulator.getSegments();
39382
39416
  for (const call of escalatedData.toolCalls) {
@@ -39389,7 +39423,7 @@ function useRealtimeChunkProcessor(options) {
39389
39423
  status
39390
39424
  );
39391
39425
  }
39392
- _optionalChain([callbacks, 'access', _947 => _947.onSegmentsUpdate, 'optionalCall', _948 => _948(segments)]);
39426
+ _optionalChain([callbacks, 'access', _955 => _955.onSegmentsUpdate, 'optionalCall', _956 => _956(segments)]);
39393
39427
  }
39394
39428
  } else {
39395
39429
  const segments = accumulator.addApprovalRequest(
@@ -39399,37 +39433,37 @@ function useRealtimeChunkProcessor(options) {
39399
39433
  escalatedData.approvalType,
39400
39434
  status
39401
39435
  );
39402
- _optionalChain([callbacks, 'access', _949 => _949.onSegmentsUpdate, 'optionalCall', _950 => _950(segments)]);
39436
+ _optionalChain([callbacks, 'access', _957 => _957.onSegmentsUpdate, 'optionalCall', _958 => _958(segments)]);
39403
39437
  }
39404
39438
  } else {
39405
39439
  accumulator.updateApprovalStatus(requestId, status);
39406
39440
  if (!callbacks.onApprovalResolved) {
39407
- _optionalChain([callbacks, 'access', _951 => _951.onSegmentsUpdate, 'optionalCall', _952 => _952(accumulator.getSegments())]);
39441
+ _optionalChain([callbacks, 'access', _959 => _959.onSegmentsUpdate, 'optionalCall', _960 => _960(accumulator.getSegments())]);
39408
39442
  }
39409
39443
  }
39410
- _optionalChain([callbacks, 'access', _953 => _953.onApprovalResolved, 'optionalCall', _954 => _954(requestId, status, approvalType)]);
39444
+ _optionalChain([callbacks, 'access', _961 => _961.onApprovalResolved, 'optionalCall', _962 => _962(requestId, status, approvalType)]);
39411
39445
  break;
39412
39446
  }
39413
39447
  case "error": {
39414
39448
  let message2;
39415
- if ("details" in action && _optionalChain([action, 'optionalAccess', _955 => _955.details])) {
39449
+ if ("details" in action && _optionalChain([action, 'optionalAccess', _963 => _963.details])) {
39416
39450
  try {
39417
- message2 = _optionalChain([JSON, 'access', _956 => _956.parse, 'call', _957 => _957(action.details), 'optionalAccess', _958 => _958.error, 'optionalAccess', _959 => _959.message]);
39451
+ message2 = _optionalChain([JSON, 'access', _964 => _964.parse, 'call', _965 => _965(action.details), 'optionalAccess', _966 => _966.error, 'optionalAccess', _967 => _967.message]);
39418
39452
  } catch (e43) {
39419
39453
  message2 = action.details;
39420
39454
  }
39421
39455
  }
39422
39456
  const segments = accumulator.addError(action.error, message2);
39423
- _optionalChain([callbacks, 'access', _960 => _960.onSegmentsUpdate, 'optionalCall', _961 => _961(segments)]);
39424
- _optionalChain([callbacks, 'access', _962 => _962.onError, 'optionalCall', _963 => _963(action.error, message2)]);
39457
+ _optionalChain([callbacks, 'access', _968 => _968.onSegmentsUpdate, 'optionalCall', _969 => _969(segments)]);
39458
+ _optionalChain([callbacks, 'access', _970 => _970.onError, 'optionalCall', _971 => _971(action.error, message2)]);
39425
39459
  break;
39426
39460
  }
39427
39461
  case "system": {
39428
- _optionalChain([callbacks, 'access', _964 => _964.onSystemMessage, 'optionalCall', _965 => _965(action.text)]);
39462
+ _optionalChain([callbacks, 'access', _972 => _972.onSystemMessage, 'optionalCall', _973 => _973(action.text)]);
39429
39463
  break;
39430
39464
  }
39431
39465
  case "direct_message": {
39432
- _optionalChain([callbacks, 'access', _966 => _966.onDirectMessage, 'optionalCall', _967 => _967(action.text, {
39466
+ _optionalChain([callbacks, 'access', _974 => _974.onDirectMessage, 'optionalCall', _975 => _975(action.text, {
39433
39467
  ownerType: action.ownerType,
39434
39468
  displayName: action.displayName,
39435
39469
  userId: action.userId
@@ -39437,29 +39471,29 @@ function useRealtimeChunkProcessor(options) {
39437
39471
  break;
39438
39472
  }
39439
39473
  case "message_request":
39440
- _optionalChain([callbacks, 'access', _968 => _968.onUserMessage, 'optionalCall', _969 => _969(action.text, {
39474
+ _optionalChain([callbacks, 'access', _976 => _976.onUserMessage, 'optionalCall', _977 => _977(action.text, {
39441
39475
  ownerType: action.ownerType,
39442
39476
  displayName: action.displayName,
39443
39477
  userId: action.userId
39444
39478
  })]);
39445
39479
  break;
39446
39480
  case "token_usage":
39447
- _optionalChain([callbacks, 'access', _970 => _970.onTokenUsage, 'optionalCall', _971 => _971(action.data)]);
39481
+ _optionalChain([callbacks, 'access', _978 => _978.onTokenUsage, 'optionalCall', _979 => _979(action.data)]);
39448
39482
  break;
39449
39483
  case "context_compaction_start": {
39450
39484
  const standalone = !isInStreamRef.current;
39451
39485
  const segments = accumulator.addContextCompaction();
39452
- _optionalChain([callbacks, 'access', _972 => _972.onSegmentsUpdate, 'optionalCall', _973 => _973(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
39486
+ _optionalChain([callbacks, 'access', _980 => _980.onSegmentsUpdate, 'optionalCall', _981 => _981(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
39453
39487
  break;
39454
39488
  }
39455
39489
  case "context_compaction_end": {
39456
39490
  const standalone = !isInStreamRef.current;
39457
39491
  const segments = accumulator.completeContextCompaction(action.summary);
39458
- _optionalChain([callbacks, 'access', _974 => _974.onSegmentsUpdate, 'optionalCall', _975 => _975(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
39492
+ _optionalChain([callbacks, 'access', _982 => _982.onSegmentsUpdate, 'optionalCall', _983 => _983(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
39459
39493
  break;
39460
39494
  }
39461
39495
  case "dialog_closed":
39462
- _optionalChain([callbacks, 'access', _976 => _976.onDialogClosed, 'optionalCall', _977 => _977()]);
39496
+ _optionalChain([callbacks, 'access', _984 => _984.onDialogClosed, 'optionalCall', _985 => _985()]);
39463
39497
  break;
39464
39498
  default:
39465
39499
  break;
@@ -39521,7 +39555,7 @@ function useSlashCommands(prefix, commandsUrl) {
39521
39555
  const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
39522
39556
  if (!cancelled) setCommands(next);
39523
39557
  } catch (err) {
39524
- if (!cancelled && _optionalChain([err, 'optionalAccess', _978 => _978.name]) !== "AbortError") {
39558
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _986 => _986.name]) !== "AbortError") {
39525
39559
  console.warn("[use-slash-commands] fetch failed:", err);
39526
39560
  }
39527
39561
  } finally {
@@ -39540,7 +39574,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
39540
39574
  const query = _reactquery.useQuery.call(void 0, {
39541
39575
  queryKey: ["chat-slash-commands", commandsUrl],
39542
39576
  queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
39543
- enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _979 => _979.enabled]), () => ( true)),
39577
+ enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _987 => _987.enabled]), () => ( true)),
39544
39578
  staleTime: Infinity,
39545
39579
  gcTime: Infinity
39546
39580
  });
@@ -39561,7 +39595,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
39561
39595
  var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
39562
39596
  function uploadWithProgress(url, file, token, onProgress, signal) {
39563
39597
  return new Promise((resolve, reject) => {
39564
- if (_optionalChain([signal, 'optionalAccess', _980 => _980.aborted])) {
39598
+ if (_optionalChain([signal, 'optionalAccess', _988 => _988.aborted])) {
39565
39599
  reject(new Error("Upload cancelled"));
39566
39600
  return;
39567
39601
  }
@@ -39575,7 +39609,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
39575
39609
  xhr.removeEventListener("error", handleError);
39576
39610
  xhr.removeEventListener("abort", handleAbort);
39577
39611
  xhr.removeEventListener("timeout", handleTimeout);
39578
- _optionalChain([signal, 'optionalAccess', _981 => _981.removeEventListener, 'call', _982 => _982("abort", handleSignalAbort)]);
39612
+ _optionalChain([signal, 'optionalAccess', _989 => _989.removeEventListener, 'call', _990 => _990("abort", handleSignalAbort)]);
39579
39613
  if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
39580
39614
  };
39581
39615
  const handleProgress = (event) => {
@@ -39611,7 +39645,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
39611
39645
  const handleSignalAbort = () => {
39612
39646
  xhr.abort();
39613
39647
  };
39614
- _optionalChain([signal, 'optionalAccess', _983 => _983.addEventListener, 'call', _984 => _984("abort", handleSignalAbort, { once: true })]);
39648
+ _optionalChain([signal, 'optionalAccess', _991 => _991.addEventListener, 'call', _992 => _992("abort", handleSignalAbort, { once: true })]);
39615
39649
  xhr.upload.addEventListener("progress", handleProgress);
39616
39650
  xhr.addEventListener("load", handleLoad);
39617
39651
  xhr.addEventListener("error", handleError);
@@ -39655,12 +39689,12 @@ function useChatAttachments() {
39655
39689
  try {
39656
39690
  sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
39657
39691
  } catch (err) {
39658
- if (_optionalChain([ctrl, 'optionalAccess', _985 => _985.signal, 'access', _986 => _986.aborted])) return;
39692
+ if (_optionalChain([ctrl, 'optionalAccess', _993 => _993.signal, 'access', _994 => _994.aborted])) return;
39659
39693
  throw new Error(
39660
39694
  `Could not read file content: ${err instanceof Error ? err.message : String(err)}`
39661
39695
  );
39662
39696
  }
39663
- if (_optionalChain([ctrl, 'optionalAccess', _987 => _987.signal, 'access', _988 => _988.aborted])) return;
39697
+ if (_optionalChain([ctrl, 'optionalAccess', _995 => _995.signal, 'access', _996 => _996.aborted])) return;
39664
39698
  if (!sniffed) {
39665
39699
  throw new Error("Unrecognized file format");
39666
39700
  }
@@ -39674,7 +39708,7 @@ function useChatAttachments() {
39674
39708
  const urlResp = await embedAuthedFetch(uploadUrlEndpoint, {
39675
39709
  method: "POST",
39676
39710
  headers: { "Content-Type": "application/json" },
39677
- signal: _optionalChain([ctrl, 'optionalAccess', _989 => _989.signal]),
39711
+ signal: _optionalChain([ctrl, 'optionalAccess', _997 => _997.signal]),
39678
39712
  body: JSON.stringify({
39679
39713
  fileName: att.file.name,
39680
39714
  // Pass the SNIFFED MIME (not `file.type`, which can be a
@@ -39700,9 +39734,9 @@ function useChatAttachments() {
39700
39734
  (pct) => {
39701
39735
  updateOne(att.id, { progress: pct });
39702
39736
  },
39703
- _optionalChain([ctrl, 'optionalAccess', _990 => _990.signal])
39737
+ _optionalChain([ctrl, 'optionalAccess', _998 => _998.signal])
39704
39738
  );
39705
- if (_optionalChain([ctrl, 'optionalAccess', _991 => _991.signal, 'access', _992 => _992.aborted])) return;
39739
+ if (_optionalChain([ctrl, 'optionalAccess', _999 => _999.signal, 'access', _1000 => _1000.aborted])) return;
39706
39740
  updateOne(att.id, {
39707
39741
  status: "ready",
39708
39742
  progress: 100,
@@ -39710,7 +39744,7 @@ function useChatAttachments() {
39710
39744
  viewToken: mintData.viewToken
39711
39745
  });
39712
39746
  } catch (err) {
39713
- if (_optionalChain([ctrl, 'optionalAccess', _993 => _993.signal, 'access', _994 => _994.aborted])) return;
39747
+ if (_optionalChain([ctrl, 'optionalAccess', _1001 => _1001.signal, 'access', _1002 => _1002.aborted])) return;
39714
39748
  const message2 = err instanceof Error ? err.message : String(err);
39715
39749
  updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
39716
39750
  } finally {
@@ -39861,7 +39895,7 @@ var ANON_DEFAULTS = {
39861
39895
  function useResolveChatIdentity(enabled) {
39862
39896
  const runtime = _chunkMEAR2WHScjs.useRequiredChatRuntime.call(void 0, );
39863
39897
  const url = runtime.endpoints.identityUrl;
39864
- const proxyEmail = _nullishCoalesce(_optionalChain([getEmbedProxyAuth, 'call', _995 => _995(), 'optionalAccess', _996 => _996.email]), () => ( null));
39898
+ const proxyEmail = _nullishCoalesce(_optionalChain([getEmbedProxyAuth, 'call', _1003 => _1003(), 'optionalAccess', _1004 => _1004.email]), () => ( null));
39865
39899
  const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
39866
39900
  const [isLoading, setIsLoading] = _react.useState.call(void 0, enabled);
39867
39901
  _react.useEffect.call(void 0, () => {
@@ -39949,7 +39983,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
39949
39983
  yield chunk;
39950
39984
  }
39951
39985
  } catch (err) {
39952
- if (_optionalChain([err, 'optionalAccess', _997 => _997.name]) === "AbortError" || ctrl.signal.aborted) {
39986
+ if (_optionalChain([err, 'optionalAccess', _1005 => _1005.name]) === "AbortError" || ctrl.signal.aborted) {
39953
39987
  return;
39954
39988
  }
39955
39989
  const errorMessage = err instanceof Error ? err.message : "An error occurred";
@@ -40000,7 +40034,7 @@ function useChat({
40000
40034
  const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
40001
40035
  onMessagesChangeRef.current = onMessagesChange;
40002
40036
  _react.useEffect.call(void 0, () => {
40003
- _optionalChain([onMessagesChangeRef, 'access', _998 => _998.current, 'optionalCall', _999 => _999(messages)]);
40037
+ _optionalChain([onMessagesChangeRef, 'access', _1006 => _1006.current, 'optionalCall', _1007 => _1007(messages)]);
40004
40038
  }, [messages]);
40005
40039
  const {
40006
40040
  streamMessage,
@@ -40037,7 +40071,7 @@ function useChat({
40037
40071
  name: "You",
40038
40072
  content: text,
40039
40073
  timestamp: /* @__PURE__ */ new Date(),
40040
- ..._optionalChain([options, 'optionalAccess', _1000 => _1000.hidden]) ? { hidden: true } : {}
40074
+ ..._optionalChain([options, 'optionalAccess', _1008 => _1008.hidden]) ? { hidden: true } : {}
40041
40075
  };
40042
40076
  addMessage(userMessage);
40043
40077
  setIsTyping(true);
@@ -40099,7 +40133,7 @@ function useChat({
40099
40133
  currentTextSegment = "";
40100
40134
  }
40101
40135
  const seg = segment;
40102
- const proposalId = _optionalChain([seg, 'access', _1001 => _1001.data, 'optionalAccess', _1002 => _1002.requestId]);
40136
+ const proposalId = _optionalChain([seg, 'access', _1009 => _1009.data, 'optionalAccess', _1010 => _1010.requestId]);
40103
40137
  const updateApprovalMessage = (transform) => {
40104
40138
  setMessages((prev) => {
40105
40139
  for (let i = prev.length - 1; i >= 0; i--) {
@@ -40108,7 +40142,7 @@ function useChat({
40108
40142
  if (!Array.isArray(m.content)) continue;
40109
40143
  const segments = m.content;
40110
40144
  const hasMatch = segments.some(
40111
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1003 => _1003.data, 'optionalAccess', _1004 => _1004.requestId]) === proposalId
40145
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1011 => _1011.data, 'optionalAccess', _1012 => _1012.requestId]) === proposalId
40112
40146
  );
40113
40147
  if (!hasMatch) continue;
40114
40148
  const next = [...prev];
@@ -40150,11 +40184,11 @@ function useChat({
40150
40184
  if (!Array.isArray(m.content)) continue;
40151
40185
  const segments = m.content;
40152
40186
  const hasMatch = segments.some(
40153
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1005 => _1005.data, 'optionalAccess', _1006 => _1006.requestId]) === decision.proposalId
40187
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1013 => _1013.data, 'optionalAccess', _1014 => _1014.requestId]) === decision.proposalId
40154
40188
  );
40155
40189
  if (!hasMatch) continue;
40156
40190
  const flipped = segments.map(
40157
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1007 => _1007.data, 'optionalAccess', _1008 => _1008.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
40191
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1015 => _1015.data, 'optionalAccess', _1016 => _1016.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
40158
40192
  );
40159
40193
  const next = [...prev];
40160
40194
  next[i] = { ...m, content: flipped };
@@ -40316,8 +40350,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
40316
40350
  })),
40317
40351
  { role: "user", content: message2 }
40318
40352
  ];
40319
- const targetPath = _optionalChain([extra, 'optionalAccess', _1009 => _1009.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
40320
- const requestBody = _optionalChain([extra, 'optionalAccess', _1010 => _1010.approvalAction]) ? {
40353
+ const targetPath = _optionalChain([extra, 'optionalAccess', _1017 => _1017.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
40354
+ const requestBody = _optionalChain([extra, 'optionalAccess', _1018 => _1018.approvalAction]) ? {
40321
40355
  proposal_id: extra.approvalAction.proposalId,
40322
40356
  action: extra.approvalAction.action,
40323
40357
  messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
@@ -40326,8 +40360,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
40326
40360
  }))
40327
40361
  } : {
40328
40362
  messages: apiMessages,
40329
- ..._optionalChain([extra, 'optionalAccess', _1011 => _1011.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
40330
- ..._optionalChain([extra, 'optionalAccess', _1012 => _1012.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
40363
+ ..._optionalChain([extra, 'optionalAccess', _1019 => _1019.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
40364
+ ..._optionalChain([extra, 'optionalAccess', _1020 => _1020.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
40331
40365
  };
40332
40366
  const response = await embedAuthedFetch(targetPath, {
40333
40367
  method: "POST",
@@ -40337,7 +40371,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
40337
40371
  if (!response.ok) {
40338
40372
  throw new Error(`Chat request failed: ${response.status}`);
40339
40373
  }
40340
- const reader = _optionalChain([response, 'access', _1013 => _1013.body, 'optionalAccess', _1014 => _1014.getReader, 'call', _1015 => _1015()]);
40374
+ const reader = _optionalChain([response, 'access', _1021 => _1021.body, 'optionalAccess', _1022 => _1022.getReader, 'call', _1023 => _1023()]);
40341
40375
  if (!reader) throw new Error("No response body");
40342
40376
  const decoder = new TextDecoder();
40343
40377
  let buffer = "";
@@ -40420,7 +40454,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
40420
40454
  const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
40421
40455
  const result = _nullishCoalesce(meta.result, () => ( null));
40422
40456
  const card = _nullishCoalesce(meta.card, () => ( null));
40423
- if (_optionalChain([card, 'optionalAccess', _1016 => _1016.ref, 'optionalAccess', _1017 => _1017.id]) && _optionalChain([card, 'optionalAccess', _1018 => _1018.type])) {
40457
+ if (_optionalChain([card, 'optionalAccess', _1024 => _1024.ref, 'optionalAccess', _1025 => _1025.id]) && _optionalChain([card, 'optionalAccess', _1026 => _1026.type])) {
40424
40458
  const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
40425
40459
  const key = buildChatRefKey(card.type, card.ref.id);
40426
40460
  refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
@@ -40433,8 +40467,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
40433
40467
  willAutoContinue: meta.willAutoContinue === true,
40434
40468
  ...toolName ? { toolName } : {},
40435
40469
  ...result ? { result } : {},
40436
- ..._optionalChain([card, 'optionalAccess', _1019 => _1019.marker]) ? { marker: card.marker } : {},
40437
- ..._optionalChain([card, 'optionalAccess', _1020 => _1020.ref]) ? { cardRef: card.ref } : {},
40470
+ ..._optionalChain([card, 'optionalAccess', _1027 => _1027.marker]) ? { marker: card.marker } : {},
40471
+ ..._optionalChain([card, 'optionalAccess', _1028 => _1028.ref]) ? { cardRef: card.ref } : {},
40438
40472
  ...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
40439
40473
  proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
40440
40474
  };
@@ -40553,7 +40587,7 @@ var DEFAULT_CHAT_SOURCE = "embed";
40553
40587
  var chatStorageKey = (source) => {
40554
40588
  const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
40555
40589
  const auth = getEmbedProxyAuth();
40556
- if (_optionalChain([auth, 'optionalAccess', _1021 => _1021.email])) {
40590
+ if (_optionalChain([auth, 'optionalAccess', _1029 => _1029.email])) {
40557
40591
  return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
40558
40592
  }
40559
40593
  return base;
@@ -40608,7 +40642,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
40608
40642
  const { active = true } = runtimeOptions;
40609
40643
  const runtime = _chunkMEAR2WHScjs.useRequiredChatRuntime.call(void 0, );
40610
40644
  const source = runtime.source || DEFAULT_CHAT_SOURCE;
40611
- const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1022 => _1022.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
40645
+ const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1030 => _1030.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
40612
40646
  const persistedRef = _react.useRef.call(void 0, null);
40613
40647
  if (persistedRef.current === null) {
40614
40648
  pruneStaleChatStorage(source);
@@ -40713,7 +40747,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
40713
40747
  const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
40714
40748
  sources = sourcesMapRef.current.get(lookupIdx);
40715
40749
  chatRefs = _nullishCoalesce(m.chatRefs, () => ( refsMapRef.current.get(lookupIdx)));
40716
- scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _1023 => _1023.current, 'access', _1024 => _1024.get, 'call', _1025 => _1025(lookupIdx), 'optionalAccess', _1026 => _1026.scrollAnchor]), () => ( void 0));
40750
+ scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _1031 => _1031.current, 'access', _1032 => _1032.get, 'call', _1033 => _1033(lookupIdx), 'optionalAccess', _1034 => _1034.scrollAnchor]), () => ( void 0));
40717
40751
  }
40718
40752
  return {
40719
40753
  id: m.id,
@@ -40761,7 +40795,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
40761
40795
  );
40762
40796
  return;
40763
40797
  }
40764
- const refSlug = typeof _optionalChain([reference, 'access', _1027 => _1027.metadata, 'optionalAccess', _1028 => _1028.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
40798
+ const refSlug = typeof _optionalChain([reference, 'access', _1035 => _1035.metadata, 'optionalAccess', _1036 => _1036.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
40765
40799
  const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
40766
40800
  const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
40767
40801
  const text = `/${cmdId} display "${escaped}"`;
@@ -40833,18 +40867,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
40833
40867
  clearMessages,
40834
40868
  streamingPhase,
40835
40869
  /** Provider key for the lib's `<ModelDisplay>` icon. */
40836
- currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1029 => _1029.provider]), () => ( null)),
40837
- currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1030 => _1030.modelLabel]), () => ( null)),
40838
- currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1031 => _1031.contextWindowMaxTokens]), () => ( null)),
40870
+ currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1037 => _1037.provider]), () => ( null)),
40871
+ currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1038 => _1038.modelLabel]), () => ( null)),
40872
+ currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1039 => _1039.contextWindowMaxTokens]), () => ( null)),
40839
40873
  /** Input tokens (known after server's message_start frame; null until). */
40840
- currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1032 => _1032.inputTokens]), () => ( null)),
40874
+ currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1040 => _1040.inputTokens]), () => ( null)),
40841
40875
  /** Output tokens (known only after server's trailing usage frame). */
40842
- currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1033 => _1033.outputTokens]), () => ( null)),
40876
+ currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1041 => _1041.outputTokens]), () => ( null)),
40843
40877
  /** Cache hit % (read / total-input × 100). null during streaming. */
40844
- currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1034 => _1034.cacheHitRatePct]), () => ( null)),
40878
+ currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1042 => _1042.cacheHitRatePct]), () => ( null)),
40845
40879
  /** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
40846
40880
  * token counts). null until the trailing usage frame lands. */
40847
- currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1035 => _1035.breakdown]), () => ( null)),
40881
+ currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1043 => _1043.breakdown]), () => ( null)),
40848
40882
  // ─── Dialog management — stubs for v1 ────────────────────────────────
40849
40883
  // Guide mode currently keeps its history in `localStorage` opaquely
40850
40884
  // under the hood (`runtime.source` namespaced key). Surfacing that
@@ -40902,15 +40936,15 @@ var noopRejectRequest = async (_id, _reason) => {
40902
40936
 
40903
40937
  // src/components/chat/utils/process-historical-messages.ts
40904
40938
  function getOwnerDisplayName(owner) {
40905
- if (_optionalChain([owner, 'optionalAccess', _1036 => _1036.type]) === OWNER_TYPE.ADMIN && owner.user) {
40939
+ if (_optionalChain([owner, 'optionalAccess', _1044 => _1044.type]) === OWNER_TYPE.ADMIN && owner.user) {
40906
40940
  const { firstName, lastName } = owner.user;
40907
40941
  const name = [firstName, lastName].filter(Boolean).join(" ");
40908
40942
  if (name) return name;
40909
40943
  }
40910
- return _optionalChain([owner, 'optionalAccess', _1037 => _1037.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
40944
+ return _optionalChain([owner, 'optionalAccess', _1045 => _1045.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
40911
40945
  }
40912
40946
  function getOwnerAvatar(owner) {
40913
- return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1038 => _1038.user, 'optionalAccess', _1039 => _1039.image, 'optionalAccess', _1040 => _1040.imageUrl]), () => ( void 0));
40947
+ return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1046 => _1046.user, 'optionalAccess', _1047 => _1047.image, 'optionalAccess', _1048 => _1048.imageUrl]), () => ( void 0));
40914
40948
  }
40915
40949
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
40916
40950
  messageDataArray.forEach((data) => {
@@ -40973,10 +41007,10 @@ function processHistoricalMessages(messages, options = {}) {
40973
41007
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
40974
41008
  return;
40975
41009
  }
40976
- const isUserMessage = _optionalChain([msg, 'access', _1041 => _1041.owner, 'optionalAccess', _1042 => _1042.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1043 => _1043.owner, 'optionalAccess', _1044 => _1044.type]) === OWNER_TYPE.ADMIN;
41010
+ const isUserMessage = _optionalChain([msg, 'access', _1049 => _1049.owner, 'optionalAccess', _1050 => _1050.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1051 => _1051.owner, 'optionalAccess', _1052 => _1052.type]) === OWNER_TYPE.ADMIN;
40977
41011
  if (isUserMessage) {
40978
41012
  flushAssistantMessage();
40979
- const userAuthorType = _optionalChain([msg, 'access', _1045 => _1045.owner, 'optionalAccess', _1046 => _1046.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
41013
+ const userAuthorType = _optionalChain([msg, 'access', _1053 => _1053.owner, 'optionalAccess', _1054 => _1054.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
40980
41014
  messageDataArray.forEach((data) => {
40981
41015
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
40982
41016
  processedMessages.push({
@@ -41001,7 +41035,7 @@ function processHistoricalMessages(messages, options = {}) {
41001
41035
  });
41002
41036
  const nextMsg = messages[index + 1];
41003
41037
  const isLastMessage = index === messages.length - 1;
41004
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1047 => _1047.owner, 'optionalAccess', _1048 => _1048.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1049 => _1049.owner, 'optionalAccess', _1050 => _1050.type]) === OWNER_TYPE.ADMIN);
41038
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1055 => _1055.owner, 'optionalAccess', _1056 => _1056.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1057 => _1057.owner, 'optionalAccess', _1058 => _1058.type]) === OWNER_TYPE.ADMIN);
41005
41039
  if (isLastMessage || nextIsFromUser) {
41006
41040
  flushAssistantMessage();
41007
41041
  }
@@ -41111,7 +41145,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
41111
41145
  }
41112
41146
  }
41113
41147
  } else {
41114
- _optionalChain([escalatedApprovals, 'optionalAccess', _1051 => _1051.set, 'call', _1052 => _1052(data.approvalRequestId, {
41148
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1059 => _1059.set, 'call', _1060 => _1060(data.approvalRequestId, {
41115
41149
  command: data.command || "",
41116
41150
  explanation: data.explanation,
41117
41151
  approvalType,
@@ -41124,8 +41158,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
41124
41158
  if ("approvalRequestId" in data && data.approvalRequestId) {
41125
41159
  const existingStatus = approvalStatuses[data.approvalRequestId];
41126
41160
  const status = existingStatus || (data.approved ? "approved" : "rejected");
41127
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1053 => _1053.get, 'call', _1054 => _1054(data.approvalRequestId)]);
41128
- if (_optionalChain([escalatedData, 'optionalAccess', _1055 => _1055.toolCalls]) && escalatedData.toolCalls.length > 0) {
41161
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1061 => _1061.get, 'call', _1062 => _1062(data.approvalRequestId)]);
41162
+ if (_optionalChain([escalatedData, 'optionalAccess', _1063 => _1063.toolCalls]) && escalatedData.toolCalls.length > 0) {
41129
41163
  if (batchApprovalsEnabled) {
41130
41164
  accumulator.addApprovalBatch(
41131
41165
  data.approvalRequestId,
@@ -41145,7 +41179,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
41145
41179
  );
41146
41180
  }
41147
41181
  }
41148
- _optionalChain([escalatedApprovals, 'optionalAccess', _1056 => _1056.delete, 'call', _1057 => _1057(data.approvalRequestId)]);
41182
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1064 => _1064.delete, 'call', _1065 => _1065(data.approvalRequestId)]);
41149
41183
  break;
41150
41184
  }
41151
41185
  if (escalatedData) {
@@ -41154,7 +41188,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
41154
41188
  explanation: escalatedData.explanation,
41155
41189
  approvalType: escalatedData.approvalType
41156
41190
  });
41157
- _optionalChain([escalatedApprovals, 'optionalAccess', _1058 => _1058.delete, 'call', _1059 => _1059(data.approvalRequestId)]);
41191
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1066 => _1066.delete, 'call', _1067 => _1067(data.approvalRequestId)]);
41158
41192
  }
41159
41193
  const before = accumulator.getSegments();
41160
41194
  const after = accumulator.updateApprovalStatus(data.approvalRequestId, status);
@@ -41170,9 +41204,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
41170
41204
  case MESSAGE_TYPE.ERROR:
41171
41205
  if ("error" in data) {
41172
41206
  let message2;
41173
- if ("details" in data && _optionalChain([data, 'optionalAccess', _1060 => _1060.details])) {
41207
+ if ("details" in data && _optionalChain([data, 'optionalAccess', _1068 => _1068.details])) {
41174
41208
  try {
41175
- message2 = _optionalChain([JSON, 'access', _1061 => _1061.parse, 'call', _1062 => _1062(data.details), 'optionalAccess', _1063 => _1063.error, 'optionalAccess', _1064 => _1064.message]);
41209
+ message2 = _optionalChain([JSON, 'access', _1069 => _1069.parse, 'call', _1070 => _1070(data.details), 'optionalAccess', _1071 => _1071.error, 'optionalAccess', _1072 => _1072.message]);
41176
41210
  } catch (e50) {
41177
41211
  message2 = data.details;
41178
41212
  }
@@ -41255,10 +41289,10 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
41255
41289
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
41256
41290
  return;
41257
41291
  }
41258
- const isUserMessage = _optionalChain([msg, 'access', _1065 => _1065.owner, 'optionalAccess', _1066 => _1066.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1067 => _1067.owner, 'optionalAccess', _1068 => _1068.type]) === OWNER_TYPE.ADMIN;
41292
+ const isUserMessage = _optionalChain([msg, 'access', _1073 => _1073.owner, 'optionalAccess', _1074 => _1074.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1075 => _1075.owner, 'optionalAccess', _1076 => _1076.type]) === OWNER_TYPE.ADMIN;
41259
41293
  if (isUserMessage) {
41260
41294
  flushAssistantMessage();
41261
- const userAuthorType = _optionalChain([msg, 'access', _1069 => _1069.owner, 'optionalAccess', _1070 => _1070.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
41295
+ const userAuthorType = _optionalChain([msg, 'access', _1077 => _1077.owner, 'optionalAccess', _1078 => _1078.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
41262
41296
  messageDataArray.forEach((data) => {
41263
41297
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
41264
41298
  processedMessages.push({
@@ -41283,7 +41317,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
41283
41317
  });
41284
41318
  const nextMsg = messages[index + 1];
41285
41319
  const isLastMessage = index === messages.length - 1;
41286
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1071 => _1071.owner, 'optionalAccess', _1072 => _1072.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1073 => _1073.owner, 'optionalAccess', _1074 => _1074.type]) === OWNER_TYPE.ADMIN);
41320
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1079 => _1079.owner, 'optionalAccess', _1080 => _1080.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1081 => _1081.owner, 'optionalAccess', _1082 => _1082.type]) === OWNER_TYPE.ADMIN);
41287
41321
  if (isLastMessage || nextIsFromUser) {
41288
41322
  flushAssistantMessage();
41289
41323
  }
@@ -41621,7 +41655,7 @@ function useNatsChatAdapter(config, options = {}) {
41621
41655
  }, [active, fetchDialogs, loadDialogsPage]);
41622
41656
  const sendMessage = _react.useCallback.call(void 0,
41623
41657
  async (text, sendOptions) => {
41624
- const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1075 => _1075.hidden]), () => ( false));
41658
+ const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1083 => _1083.hidden]), () => ( false));
41625
41659
  setMessages((prev) => [
41626
41660
  ...prev,
41627
41661
  {
@@ -41785,11 +41819,11 @@ function useNatsChatAdapter(config, options = {}) {
41785
41819
  // Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
41786
41820
  // contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
41787
41821
  // matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
41788
- currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1076 => _1076.provider]), () => ( modelProvider)), () => ( null)),
41789
- currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1077 => _1077.modelLabel]), () => ( modelLabel)), () => ( null)),
41790
- currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1078 => _1078.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1079 => _1079.contextWindowMaxTokens]))), () => ( null)),
41791
- currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1080 => _1080.inputTokensSize]), () => ( null)),
41792
- currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1081 => _1081.outputTokensSize]), () => ( null)),
41822
+ currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1084 => _1084.provider]), () => ( modelProvider)), () => ( null)),
41823
+ currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1085 => _1085.modelLabel]), () => ( modelLabel)), () => ( null)),
41824
+ currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1086 => _1086.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1087 => _1087.contextWindowMaxTokens]))), () => ( null)),
41825
+ currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1088 => _1088.inputTokensSize]), () => ( null)),
41826
+ currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1089 => _1089.outputTokensSize]), () => ( null)),
41793
41827
  currentCacheHitRatePct: null,
41794
41828
  currentUsageBreakdown: null,
41795
41829
  // Dialog management
@@ -42037,7 +42071,7 @@ function extractIncompleteMessageState(lastMessage) {
42037
42071
  break;
42038
42072
  case "approval_batch": {
42039
42073
  const allDone = !!segment.data.executions && segment.data.toolCalls.every(
42040
- (c) => _optionalChain([segment, 'access', _1082 => _1082.data, 'access', _1083 => _1083.executions, 'optionalAccess', _1084 => _1084[c.toolExecutionRequestId], 'optionalAccess', _1085 => _1085.status]) === "done"
42074
+ (c) => _optionalChain([segment, 'access', _1090 => _1090.data, 'access', _1091 => _1091.executions, 'optionalAccess', _1092 => _1092[c.toolExecutionRequestId], 'optionalAccess', _1093 => _1093.status]) === "done"
42041
42075
  );
42042
42076
  if (segment.status !== "rejected" && !allDone) {
42043
42077
  hasIncompleteState = true;
@@ -42061,110 +42095,6 @@ function extractIncompleteMessageState(lastMessage) {
42061
42095
  };
42062
42096
  }
42063
42097
 
42064
- // src/components/chat/utils/history-merge.ts
42065
- var SYNTHETIC_REALTIME_ID_PREFIXES = ["assistant-", "user-", "error-"];
42066
- function isSyntheticRealtimeId(id) {
42067
- return SYNTHETIC_REALTIME_ID_PREFIXES.some((prefix) => id.startsWith(prefix));
42068
- }
42069
- function flattenMessagePagesChronological(pages) {
42070
- if (!pages) return [];
42071
- return [...pages].reverse().flatMap((page) => [...page.messages].reverse());
42072
- }
42073
- function maxPersistedStreamSeq(pages) {
42074
- let max = 0;
42075
- if (!pages) return max;
42076
- for (const page of pages) {
42077
- for (const msg of page.messages) {
42078
- const seq = msg.lastChunkStreamSeq;
42079
- if (typeof seq === "number" && seq > max) max = seq;
42080
- }
42081
- }
42082
- return max;
42083
- }
42084
- function mergeHistoryWithRealtime(input) {
42085
- const {
42086
- processedHistory,
42087
- rawHistoryIds,
42088
- existingMessages,
42089
- streamingMessageId,
42090
- historyFetchedAt,
42091
- historyMaxStreamSeq = 0,
42092
- realtimeSeenStreamSeq = 0
42093
- } = input;
42094
- if (processedHistory.length === 0) return existingMessages;
42095
- const processedIds = new Set(processedHistory.map((m) => m.id));
42096
- const seqCoverageKnown = realtimeSeenStreamSeq > 0 && historyMaxStreamSeq > 0;
42097
- const historyCoversRealtime = seqCoverageKnown ? historyMaxStreamSeq >= realtimeSeenStreamSeq : null;
42098
- const trailing = processedHistory[processedHistory.length - 1];
42099
- const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1086 => _1086.role]) === "assistant" ? trailing : null;
42100
- const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _1087 => _1087.content, 'access', _1088 => _1088.find, 'call', _1089 => _1089((s) => s.type === "approval_batch"), 'optionalAccess', _1090 => _1090.data, 'optionalAccess', _1091 => _1091.approvalRequestId]), () => ( null)) : null;
42101
- let processedToUse = processedHistory;
42102
- const pinnedSyntheticIds = /* @__PURE__ */ new Set();
42103
- const droppedSyntheticIds = /* @__PURE__ */ new Set();
42104
- if (historyBatchId) {
42105
- const batchTwins = existingMessages.filter(
42106
- (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some(
42107
- (s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1092 => _1092.data, 'optionalAccess', _1093 => _1093.approvalRequestId]) === historyBatchId
42108
- )
42109
- );
42110
- const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
42111
- if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
42112
- const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1094 => _1094.content])) ? historyTrailingAssistant.content.length : 0;
42113
- const realtimeSize = existingWithSameBatch.content.length;
42114
- if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
42115
- processedToUse = processedHistory.slice(0, -1);
42116
- pinnedSyntheticIds.add(existingWithSameBatch.id);
42117
- } else {
42118
- droppedSyntheticIds.add(existingWithSameBatch.id);
42119
- }
42120
- }
42121
- }
42122
- const realtimeMessages = existingMessages.filter((m) => {
42123
- if (pinnedSyntheticIds.has(m.id)) return true;
42124
- if (droppedSyntheticIds.has(m.id)) return false;
42125
- if (processedIds.has(m.id)) return false;
42126
- if (_optionalChain([rawHistoryIds, 'optionalAccess', _1095 => _1095.has, 'call', _1096 => _1096(m.id)])) return false;
42127
- if (m.role === "user" && m.id.startsWith("optimistic-") && typeof m.content === "string") {
42128
- const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1097 => _1097.timestamp, 'optionalAccess', _1098 => _1098.getTime, 'call', _1099 => _1099()]), () => ( 0))) <= historyFetchedAt;
42129
- return !(canBeInSnapshot && processedToUse.some((pm) => pm.role === "user" && pm.content === m.content));
42130
- }
42131
- if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
42132
- const covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1100 => _1100.timestamp, 'optionalAccess', _1101 => _1101.getTime, 'call', _1102 => _1102()]), () => ( 0))) <= historyFetchedAt;
42133
- if (covered) return false;
42134
- }
42135
- return true;
42136
- });
42137
- return [...processedToUse, ...realtimeMessages];
42138
- }
42139
- function computeHistoryPrepend(processedHistory, existingMessages) {
42140
- const existingIds = new Set(existingMessages.map((m) => m.id));
42141
- const newMessages = [];
42142
- let boundaryMessageIndex = -1;
42143
- for (let i = 0; i < processedHistory.length; i++) {
42144
- if (existingIds.has(processedHistory[i].id)) {
42145
- boundaryMessageIndex = i;
42146
- break;
42147
- }
42148
- newMessages.push(processedHistory[i]);
42149
- }
42150
- let boundaryMessageId;
42151
- let boundaryUpdates;
42152
- if (boundaryMessageIndex >= 0) {
42153
- const boundaryMessage = processedHistory[boundaryMessageIndex];
42154
- const existingBoundary = existingMessages.find((m) => m.id === boundaryMessage.id);
42155
- if (existingBoundary) {
42156
- const existingContent = JSON.stringify(existingBoundary.content);
42157
- const newContent = JSON.stringify(boundaryMessage.content);
42158
- if (existingContent !== newContent) {
42159
- boundaryMessageId = boundaryMessage.id;
42160
- boundaryUpdates = { content: boundaryMessage.content };
42161
- }
42162
- }
42163
- }
42164
- if (newMessages.length === 0 && !boundaryUpdates) return null;
42165
- return { newMessages, boundaryMessageId, boundaryUpdates };
42166
- }
42167
-
42168
42098
  // src/components/chat/utils/chip-action-class.ts
42169
42099
  var CHIP_ACTION_BUTTON_CLASS = "text-[11px] font-medium text-ods-text-secondary hover:text-ods-text-primary bg-transparent hover:bg-ods-card-hover border border-ods-border rounded-md px-2 py-1 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus";
42170
42100
 
@@ -42349,7 +42279,7 @@ function useChatDialogManager({
42349
42279
  const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
42350
42280
  if (restoreTarget) {
42351
42281
  try {
42352
- await _optionalChain([unarchiveDialog, 'optionalCall', _1103 => _1103(restoreTarget.id)]);
42282
+ await _optionalChain([unarchiveDialog, 'optionalCall', _1094 => _1094(restoreTarget.id)]);
42353
42283
  } catch (err) {
42354
42284
  console.error("[useChatDialogManager] unarchive failed:", err);
42355
42285
  return;
@@ -42748,7 +42678,7 @@ function EmbeddableChatInner({
42748
42678
  }),
42749
42679
  [commandsUrl]
42750
42680
  );
42751
- const userName = _optionalChain([identityUser, 'optionalAccess', _1104 => _1104.firstName, 'optionalAccess', _1105 => _1105.trim, 'call', _1106 => _1106()]) || _optionalChain([identityUser, 'optionalAccess', _1107 => _1107.name, 'optionalAccess', _1108 => _1108.split, 'call', _1109 => _1109(" "), 'access', _1110 => _1110[0], 'optionalAccess', _1111 => _1111.trim, 'call', _1112 => _1112()]) || void 0;
42681
+ const userName = _optionalChain([identityUser, 'optionalAccess', _1095 => _1095.firstName, 'optionalAccess', _1096 => _1096.trim, 'call', _1097 => _1097()]) || _optionalChain([identityUser, 'optionalAccess', _1098 => _1098.name, 'optionalAccess', _1099 => _1099.split, 'call', _1100 => _1100(" "), 'access', _1101 => _1101[0], 'optionalAccess', _1102 => _1102.trim, 'call', _1103 => _1103()]) || void 0;
42752
42682
  const effectiveModes = _react.useMemo.call(void 0, () => {
42753
42683
  if (modes) return modes;
42754
42684
  const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
@@ -42757,17 +42687,17 @@ function EmbeddableChatInner({
42757
42687
  const mingoCaps = _react.useMemo.call(void 0, () => {
42758
42688
  if (mingoState) {
42759
42689
  return {
42760
- canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1113 => _1113.canRename]), () => ( false)),
42761
- canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1114 => _1114.canArchive]), () => ( false)),
42762
- fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1115 => _1115.fetchArchivedDialogs]),
42763
- unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1116 => _1116.unarchiveDialog])
42690
+ canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1104 => _1104.canRename]), () => ( false)),
42691
+ canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1105 => _1105.canArchive]), () => ( false)),
42692
+ fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1106 => _1106.fetchArchivedDialogs]),
42693
+ unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1107 => _1107.unarchiveDialog])
42764
42694
  };
42765
42695
  }
42766
42696
  return {
42767
- canRename: !!_optionalChain([effectiveModes, 'access', _1117 => _1117.mingo, 'optionalAccess', _1118 => _1118.renameDialog]),
42768
- canArchive: !!_optionalChain([effectiveModes, 'access', _1119 => _1119.mingo, 'optionalAccess', _1120 => _1120.archiveDialog]),
42769
- fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1121 => _1121.mingo, 'optionalAccess', _1122 => _1122.fetchArchivedDialogs]),
42770
- unarchiveDialog: _optionalChain([effectiveModes, 'access', _1123 => _1123.mingo, 'optionalAccess', _1124 => _1124.unarchiveDialog])
42697
+ canRename: !!_optionalChain([effectiveModes, 'access', _1108 => _1108.mingo, 'optionalAccess', _1109 => _1109.renameDialog]),
42698
+ canArchive: !!_optionalChain([effectiveModes, 'access', _1110 => _1110.mingo, 'optionalAccess', _1111 => _1111.archiveDialog]),
42699
+ fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1112 => _1112.mingo, 'optionalAccess', _1113 => _1113.fetchArchivedDialogs]),
42700
+ unarchiveDialog: _optionalChain([effectiveModes, 'access', _1114 => _1114.mingo, 'optionalAccess', _1115 => _1115.unarchiveDialog])
42771
42701
  };
42772
42702
  }, [mingoState, mingoDialogCapabilities, effectiveModes]);
42773
42703
  const hasMingoMode = !!effectiveModes.mingo || !!mingoState;
@@ -42779,7 +42709,7 @@ function EmbeddableChatInner({
42779
42709
  if (controlledActiveMode === void 0) {
42780
42710
  setUncontrolledActiveMode(next);
42781
42711
  }
42782
- _optionalChain([onActiveModeChange, 'optionalCall', _1125 => _1125(next)]);
42712
+ _optionalChain([onActiveModeChange, 'optionalCall', _1116 => _1116(next)]);
42783
42713
  },
42784
42714
  [controlledActiveMode, onActiveModeChange]
42785
42715
  );
@@ -42986,9 +42916,9 @@ function EmbeddableChatInner({
42986
42916
  const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
42987
42917
  const lastSources = _react.useMemo.call(void 0, () => {
42988
42918
  if (chatLoading) return void 0;
42989
- const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1126 => _1126.sources]);
42919
+ const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1117 => _1117.sources]);
42990
42920
  if (!sources || sources.length === 0) return void 0;
42991
- const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1127 => _1127.content]) || "";
42921
+ const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1118 => _1118.content]) || "";
42992
42922
  const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
42993
42923
  (m) => parseInt(m[1], 10)
42994
42924
  );
@@ -43035,7 +42965,7 @@ function EmbeddableChatInner({
43035
42965
  ChatPanelHeader,
43036
42966
  {
43037
42967
  showBack: hasConversation || guideCanReturnToMingo,
43038
- title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1128 => _1128.title]) || "New Chat" : isGuideEmpty ? "Mingo Guide" : "Current Chats",
42968
+ title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1119 => _1119.title]) || "New Chat" : isGuideEmpty ? "Mingo Guide" : "Current Chats",
43039
42969
  backAriaLabel: hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo",
43040
42970
  isArchivedView: isViewingArchived,
43041
42971
  onBack: hasConversation ? handleBack : () => handleActiveModeChange("mingo"),
@@ -43140,10 +43070,10 @@ function EmbeddableChatInner({
43140
43070
  subtitle: _nullishCoalesce(emptyStateGreeting, () => ( void 0)),
43141
43071
  ...guideWelcome,
43142
43072
  onQuickAction: (action) => {
43143
- _optionalChain([chatInputRef, 'access', _1129 => _1129.current, 'optionalAccess', _1130 => _1130.setValue, 'call', _1131 => _1131(
43073
+ _optionalChain([chatInputRef, 'access', _1120 => _1120.current, 'optionalAccess', _1121 => _1121.setValue, 'call', _1122 => _1122(
43144
43074
  _nullishCoalesce(action.prompt, () => ( action.label))
43145
43075
  )]);
43146
- _optionalChain([chatInputRef, 'access', _1132 => _1132.current, 'optionalAccess', _1133 => _1133.focus, 'call', _1134 => _1134()]);
43076
+ _optionalChain([chatInputRef, 'access', _1123 => _1123.current, 'optionalAccess', _1124 => _1124.focus, 'call', _1125 => _1125()]);
43147
43077
  },
43148
43078
  children: (chipCommands.length > 0 || !commandsLoaded) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "shrink-0 overflow-hidden rounded-md border border-ods-border", children: [
43149
43079
  !commandsLoaded && chipCommands.length === 0 && SKELETON_ROW_VARIANTS.map((variant, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -44095,5 +44025,7 @@ function EmbeddableChatInner({
44095
44025
 
44096
44026
 
44097
44027
 
44098
- exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.HiddenTagsPopup = HiddenTagsPopup; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Autocomplete = Autocomplete; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.HoneypotField = HoneypotField; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal2; exports.ModalContent = ModalContent2; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter2; exports.Modal2 = Modal; exports.ModalContent2 = ModalContent; exports.ModalHeader2 = ModalHeader; exports.ModalTitle2 = ModalTitle; exports.ModalFooter2 = ModalFooter; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.Progress = Progress; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.SquareAvatar = SquareAvatar; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.HEX_PATTERN = HEX_PATTERN; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.BlockCard = BlockCard; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.GuideModeBanner = GuideModeBanner; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.COMPACT_HEADER_BUTTON = COMPACT_HEADER_BUTTON; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.FlamingoLogo = FlamingoLogo; exports.OpenmspLogo = OpenmspLogo; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.fetchPriorityProp = fetchPriorityProp; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.resolveReleaseCover = resolveReleaseCover; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.useEntityCardLink = useEntityCardLink; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.getStatusColorScheme = getStatusColorScheme; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.getAppType = getAppType; exports.getEmbedProxyAuth = getEmbedProxyAuth; exports.getPersistedProxyEmail = getPersistedProxyEmail; exports.setEmbedProxyAuth = setEmbedProxyAuth; exports.clearEmbedProxyAuth = clearEmbedProxyAuth; exports.applyProxyAuth = applyProxyAuth; exports.setEmbedAuthAdapter = setEmbedAuthAdapter; exports.embedAuthedFetch = embedAuthedFetch; exports.useChatCardItem = useChatCardItem; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.useSseChatAdapter = useSseChatAdapter; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.BackButton = BackButton; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.PageHeading = PageHeading; exports.EntityImage = EntityImage; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; 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.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.hexToRgb = hexToRgb2; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.scrollElementIntoView = scrollElementIntoView; exports.buildListUrl = buildListUrl; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.init_pagination = init_pagination; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.MUX_STREAM_ORIGIN = MUX_STREAM_ORIGIN; exports.MUX_IMAGE_ORIGIN = MUX_IMAGE_ORIGIN; exports.useVideoOriginPreconnect = useVideoOriginPreconnect; exports.useVideoWarmup = useVideoWarmup; exports.getCaptionsUrl = getCaptionsUrl; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.FilterPillRow = FilterPillRow; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderMingoButton = HeaderMingoButton; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayout = AppLayout; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
44099
- //# sourceMappingURL=chunk-EPXROXYC.cjs.map
44028
+
44029
+
44030
+ exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.HiddenTagsPopup = HiddenTagsPopup; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Autocomplete = Autocomplete; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.HoneypotField = HoneypotField; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal2; exports.ModalContent = ModalContent2; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter2; exports.Modal2 = Modal; exports.ModalContent2 = ModalContent; exports.ModalHeader2 = ModalHeader; exports.ModalTitle2 = ModalTitle; exports.ModalFooter2 = ModalFooter; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.Progress = Progress; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.SquareAvatar = SquareAvatar; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.HEX_PATTERN = HEX_PATTERN; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.BlockCard = BlockCard; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.GuideModeBanner = GuideModeBanner; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.COMPACT_HEADER_BUTTON = COMPACT_HEADER_BUTTON; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.FlamingoLogo = FlamingoLogo; exports.OpenmspLogo = OpenmspLogo; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.fetchPriorityProp = fetchPriorityProp; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.resolveReleaseCover = resolveReleaseCover; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.useEntityCardLink = useEntityCardLink; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.getStatusColorScheme = getStatusColorScheme; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.getAppType = getAppType; exports.getEmbedProxyAuth = getEmbedProxyAuth; exports.getPersistedProxyEmail = getPersistedProxyEmail; exports.setEmbedProxyAuth = setEmbedProxyAuth; exports.clearEmbedProxyAuth = clearEmbedProxyAuth; exports.applyProxyAuth = applyProxyAuth; exports.setEmbedAuthAdapter = setEmbedAuthAdapter; exports.embedAuthedFetch = embedAuthedFetch; exports.extractItems = extractItems; exports.extractItemId = extractItemId; exports.useChatCardItem = useChatCardItem; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.useSseChatAdapter = useSseChatAdapter; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.BackButton = BackButton; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.PageHeading = PageHeading; exports.EntityImage = EntityImage; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; 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.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.hexToRgb = hexToRgb2; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.scrollElementIntoView = scrollElementIntoView; exports.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl; exports.CONTENT_REF_GROUPS = CONTENT_REF_GROUPS; exports.getContentRefLabel = getContentRefLabel; exports.getContentRefLabelOrTitleCase = getContentRefLabelOrTitleCase; exports.orderContentRefTypes = orderContentRefTypes; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.init_pagination = init_pagination; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.MUX_STREAM_ORIGIN = MUX_STREAM_ORIGIN; exports.MUX_IMAGE_ORIGIN = MUX_IMAGE_ORIGIN; exports.useVideoOriginPreconnect = useVideoOriginPreconnect; exports.useVideoWarmup = useVideoWarmup; exports.getCaptionsUrl = getCaptionsUrl; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.FilterPillRow = FilterPillRow; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderMingoButton = HeaderMingoButton; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayout = AppLayout; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
44031
+ //# sourceMappingURL=chunk-CZITXP77.cjs.map