@flamingo-stack/openframe-frontend-core 0.0.338 → 0.0.339-snapshot.20260630004216

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 (96) hide show
  1. package/dist/{chunk-FNPF5OQS.cjs → chunk-4K2M2WC4.cjs} +26 -26
  2. package/dist/{chunk-FNPF5OQS.cjs.map → chunk-4K2M2WC4.cjs.map} +1 -1
  3. package/dist/{chunk-JI7EPGRA.js → chunk-53MGSWCC.js} +4 -4
  4. package/dist/{chunk-FGVYJPT4.js → chunk-573LTCRV.js} +2 -2
  5. package/dist/{chunk-GOTCZBP2.js → chunk-7TENQYAJ.js} +2 -2
  6. package/dist/{chunk-IJ2OYHRH.cjs → chunk-BMSJTLGO.cjs} +12 -12
  7. package/dist/{chunk-IJ2OYHRH.cjs.map → chunk-BMSJTLGO.cjs.map} +1 -1
  8. package/dist/{chunk-IBCTHO3A.cjs → chunk-DFFOCQFO.cjs} +5 -5
  9. package/dist/{chunk-IBCTHO3A.cjs.map → chunk-DFFOCQFO.cjs.map} +1 -1
  10. package/dist/{chunk-RSA7DPZN.cjs → chunk-DRO773DG.cjs} +56 -56
  11. package/dist/{chunk-RSA7DPZN.cjs.map → chunk-DRO773DG.cjs.map} +1 -1
  12. package/dist/{chunk-2FDRZIX2.cjs → chunk-ERMMMQET.cjs} +683 -632
  13. package/dist/chunk-ERMMMQET.cjs.map +1 -0
  14. package/dist/{chunk-RLHOSQ7X.cjs → chunk-EXFHHZ2C.cjs} +9 -9
  15. package/dist/{chunk-RLHOSQ7X.cjs.map → chunk-EXFHHZ2C.cjs.map} +1 -1
  16. package/dist/{chunk-GFBCUSFN.js → chunk-GGFJ5OQ3.js} +4 -4
  17. package/dist/{chunk-YHDF4WMG.cjs → chunk-HVYR323G.cjs} +15 -15
  18. package/dist/{chunk-YHDF4WMG.cjs.map → chunk-HVYR323G.cjs.map} +1 -1
  19. package/dist/{chunk-HI367AS3.js → chunk-KE2PMD6A.js} +2 -2
  20. package/dist/{chunk-QJR7QLNW.cjs → chunk-L6YX6D26.cjs} +31 -31
  21. package/dist/{chunk-QJR7QLNW.cjs.map → chunk-L6YX6D26.cjs.map} +1 -1
  22. package/dist/{chunk-HKBV4OJK.js → chunk-MNLQMAY3.js} +2 -2
  23. package/dist/{chunk-3BWH262F.js → chunk-NC3DJLP5.js} +4 -4
  24. package/dist/{chunk-BG44XQB2.js → chunk-NDHQG4I4.js} +90 -39
  25. package/dist/chunk-NDHQG4I4.js.map +1 -0
  26. package/dist/{chunk-N7MH2OSW.js → chunk-OVN265XQ.js} +2 -2
  27. package/dist/{chunk-IVY5R6L2.cjs → chunk-SIK5LBUN.cjs} +25 -25
  28. package/dist/{chunk-IVY5R6L2.cjs.map → chunk-SIK5LBUN.cjs.map} +1 -1
  29. package/dist/{chunk-DPU7VTTV.js → chunk-T4SW6GOR.js} +4 -4
  30. package/dist/{chunk-A4X3DZSS.js → chunk-TOMTBXM7.js} +2 -2
  31. package/dist/{chunk-DPFJPCFL.cjs → chunk-TVCBMR3N.cjs} +7 -7
  32. package/dist/{chunk-DPFJPCFL.cjs.map → chunk-TVCBMR3N.cjs.map} +1 -1
  33. package/dist/{chunk-FDKTAOEO.cjs → chunk-VA3GDVOV.cjs} +37 -37
  34. package/dist/{chunk-FDKTAOEO.cjs.map → chunk-VA3GDVOV.cjs.map} +1 -1
  35. package/dist/{chunk-IOEGV4DP.js → chunk-W7J46YKF.js} +2 -2
  36. package/dist/{chunk-Y2VDAVIX.cjs → chunk-YEB5Z76W.cjs} +62 -62
  37. package/dist/{chunk-Y2VDAVIX.cjs.map → chunk-YEB5Z76W.cjs.map} +1 -1
  38. package/dist/components/case-studies/index.cjs +8 -8
  39. package/dist/components/case-studies/index.js +2 -2
  40. package/dist/components/chat/chat-quick-action-row.d.ts +5 -0
  41. package/dist/components/chat/chat-quick-action-row.d.ts.map +1 -1
  42. package/dist/components/chat/guide-welcome.d.ts +6 -1
  43. package/dist/components/chat/guide-welcome.d.ts.map +1 -1
  44. package/dist/components/chat/index.cjs +2 -2
  45. package/dist/components/chat/index.js +1 -1
  46. package/dist/components/contact/index.cjs +3 -3
  47. package/dist/components/contact/index.js +2 -2
  48. package/dist/components/docs/index.cjs +5 -5
  49. package/dist/components/docs/index.js +4 -4
  50. package/dist/components/embeds/index.cjs +3 -3
  51. package/dist/components/embeds/index.js +2 -2
  52. package/dist/components/faq/index.cjs +3 -3
  53. package/dist/components/faq/index.js +2 -2
  54. package/dist/components/features/index.cjs +2 -2
  55. package/dist/components/features/index.js +1 -1
  56. package/dist/components/help-center-pages/index.cjs +20 -20
  57. package/dist/components/help-center-pages/index.js +11 -11
  58. package/dist/components/index.cjs +121 -121
  59. package/dist/components/index.js +9 -9
  60. package/dist/components/layout/page-layout.d.ts +6 -1
  61. package/dist/components/layout/page-layout.d.ts.map +1 -1
  62. package/dist/components/layout/title-block.d.ts +8 -1
  63. package/dist/components/layout/title-block.d.ts.map +1 -1
  64. package/dist/components/navigation/index.cjs +2 -2
  65. package/dist/components/navigation/index.js +1 -1
  66. package/dist/components/onboarding-guides/index.cjs +5 -5
  67. package/dist/components/onboarding-guides/index.js +4 -4
  68. package/dist/components/related-content/index.cjs +3 -3
  69. package/dist/components/related-content/index.js +2 -2
  70. package/dist/components/tickets/index.cjs +5 -5
  71. package/dist/components/tickets/index.js +4 -4
  72. package/dist/components/ui/index.cjs +2 -2
  73. package/dist/components/ui/index.js +1 -1
  74. package/dist/components/ui/info-card.d.ts.map +1 -1
  75. package/dist/index.cjs +2 -2
  76. package/dist/index.js +1 -1
  77. package/package.json +1 -1
  78. package/src/components/chat/chat-quick-action-row.tsx +9 -0
  79. package/src/components/chat/embeddable-chat.tsx +24 -3
  80. package/src/components/chat/guide-welcome.tsx +10 -1
  81. package/src/components/layout/page-layout.tsx +10 -1
  82. package/src/components/layout/title-block.tsx +56 -5
  83. package/src/components/ui/info-card.tsx +55 -41
  84. package/dist/chunk-2FDRZIX2.cjs.map +0 -1
  85. package/dist/chunk-BG44XQB2.js.map +0 -1
  86. /package/dist/{chunk-JI7EPGRA.js.map → chunk-53MGSWCC.js.map} +0 -0
  87. /package/dist/{chunk-FGVYJPT4.js.map → chunk-573LTCRV.js.map} +0 -0
  88. /package/dist/{chunk-GOTCZBP2.js.map → chunk-7TENQYAJ.js.map} +0 -0
  89. /package/dist/{chunk-GFBCUSFN.js.map → chunk-GGFJ5OQ3.js.map} +0 -0
  90. /package/dist/{chunk-HI367AS3.js.map → chunk-KE2PMD6A.js.map} +0 -0
  91. /package/dist/{chunk-HKBV4OJK.js.map → chunk-MNLQMAY3.js.map} +0 -0
  92. /package/dist/{chunk-3BWH262F.js.map → chunk-NC3DJLP5.js.map} +0 -0
  93. /package/dist/{chunk-N7MH2OSW.js.map → chunk-OVN265XQ.js.map} +0 -0
  94. /package/dist/{chunk-DPU7VTTV.js.map → chunk-T4SW6GOR.js.map} +0 -0
  95. /package/dist/{chunk-A4X3DZSS.js.map → chunk-TOMTBXM7.js.map} +0 -0
  96. /package/dist/{chunk-IOEGV4DP.js.map → chunk-W7J46YKF.js.map} +0 -0
@@ -5672,6 +5672,10 @@ function ChipButton({ chip }) {
5672
5672
  {
5673
5673
  type: "button",
5674
5674
  onClick: chip.onSelect,
5675
+ onMouseEnter: chip.onHoverStart,
5676
+ onMouseLeave: chip.onHoverEnd,
5677
+ onFocus: chip.onHoverStart,
5678
+ onBlur: chip.onHoverEnd,
5675
5679
  className: "shrink-0 rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
5676
5680
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Tag, { variant: _nullishCoalesce(chip.variant, () => ( "outline")), icon: chip.icon, label: chip.label })
5677
5681
  }
@@ -6577,6 +6581,8 @@ function GuideWelcome({
6577
6581
  subtitleLoading = false,
6578
6582
  quickActions = [],
6579
6583
  onQuickAction,
6584
+ onQuickActionHover,
6585
+ onQuickActionHoverEnd,
6580
6586
  children,
6581
6587
  className
6582
6588
  }) {
@@ -6603,9 +6609,11 @@ function GuideWelcome({
6603
6609
  () => quickActions.map((action) => ({
6604
6610
  id: action.id,
6605
6611
  label: action.label,
6606
- onSelect: () => _optionalChain([onQuickAction, 'optionalCall', _102 => _102(action)])
6612
+ onSelect: () => _optionalChain([onQuickAction, 'optionalCall', _102 => _102(action)]),
6613
+ onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _103 => _103(action)]),
6614
+ onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _104 => _104()])
6607
6615
  })),
6608
- [quickActions, onQuickAction]
6616
+ [quickActions, onQuickAction, onQuickActionHover, onQuickActionHoverEnd]
6609
6617
  );
6610
6618
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
6611
6619
  "div",
@@ -7044,7 +7052,7 @@ function ChatDialogModals({
7044
7052
  RenameChatModal,
7045
7053
  {
7046
7054
  isOpen: renameTarget != null,
7047
- initialName: _nullishCoalesce(_optionalChain([renameTarget, 'optionalAccess', _103 => _103.title]), () => ( "")),
7055
+ initialName: _nullishCoalesce(_optionalChain([renameTarget, 'optionalAccess', _105 => _105.title]), () => ( "")),
7048
7056
  onClose: () => setRenameTarget(null),
7049
7057
  onSave: onConfirmRename
7050
7058
  }
@@ -7308,7 +7316,7 @@ function ChatAttachmentAddButton({
7308
7316
  const canAddMore = slotsAvailable > 0 && !disabled;
7309
7317
  const handlePick = () => {
7310
7318
  if (!canAddMore) return;
7311
- _optionalChain([fileInputRef, 'access', _104 => _104.current, 'optionalAccess', _105 => _105.click, 'call', _106 => _106()]);
7319
+ _optionalChain([fileInputRef, 'access', _106 => _106.current, 'optionalAccess', _107 => _107.click, 'call', _108 => _108()]);
7312
7320
  };
7313
7321
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
7314
7322
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -7674,7 +7682,7 @@ function ChatComposer({
7674
7682
  }) {
7675
7683
  const contextEnabled = !!contextPicker && !archived;
7676
7684
  const selected = _nullishCoalesce(selectedContextItems, () => ( []));
7677
- const entityTypes = _optionalChain([contextPicker, 'optionalAccess', _107 => _107.entityTypes]);
7685
+ const entityTypes = _optionalChain([contextPicker, 'optionalAccess', _109 => _109.entityTypes]);
7678
7686
  const iconByType = React23.useMemo(() => {
7679
7687
  const map = /* @__PURE__ */ new Map();
7680
7688
  for (const t of _nullishCoalesce(entityTypes, () => ( []))) map.set(t.type, t.icon);
@@ -7703,7 +7711,7 @@ function ChatComposer({
7703
7711
  startIcon: contextEnabled ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
7704
7712
  ChatComposerPlusMenu,
7705
7713
  {
7706
- onToggle: () => contextPickerOpen ? _optionalChain([onCloseContextPicker, 'optionalCall', _108 => _108()]) : _optionalChain([onOpenContextPicker, 'optionalCall', _109 => _109()]),
7714
+ onToggle: () => contextPickerOpen ? _optionalChain([onCloseContextPicker, 'optionalCall', _110 => _110()]) : _optionalChain([onOpenContextPicker, 'optionalCall', _111 => _111()]),
7707
7715
  open: contextPickerOpen,
7708
7716
  disabled: attachmentsDisabled,
7709
7717
  dropdown: contextPicker ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -7712,8 +7720,8 @@ function ChatComposer({
7712
7720
  open: contextPickerOpen,
7713
7721
  config: contextPicker,
7714
7722
  selectedItems: selected,
7715
- onToggleItem: (item) => _optionalChain([onToggleContextItem, 'optionalCall', _110 => _110(item)]),
7716
- onClose: () => _optionalChain([onCloseContextPicker, 'optionalCall', _111 => _111()]),
7723
+ onToggleItem: (item) => _optionalChain([onToggleContextItem, 'optionalCall', _112 => _112(item)]),
7724
+ onClose: () => _optionalChain([onCloseContextPicker, 'optionalCall', _113 => _113()]),
7717
7725
  mentionQuery
7718
7726
  }
7719
7727
  ) : void 0
@@ -7920,8 +7928,8 @@ ChatSidebarSkeleton.displayName = "ChatSidebarSkeleton";
7920
7928
  var DialogListItem = _react.forwardRef.call(void 0,
7921
7929
  ({ className, dialog, isActive, onDialogSelect, onClick, ...props }, ref) => {
7922
7930
  const handleClick = (e) => {
7923
- _optionalChain([onDialogSelect, 'optionalCall', _112 => _112(dialog.id)]);
7924
- _optionalChain([onClick, 'optionalCall', _113 => _113(e)]);
7931
+ _optionalChain([onDialogSelect, 'optionalCall', _114 => _114(dialog.id)]);
7932
+ _optionalChain([onClick, 'optionalCall', _115 => _115(e)]);
7925
7933
  };
7926
7934
  const formatTimestamp2 = (timestamp) => {
7927
7935
  if (!timestamp) return "";
@@ -7980,7 +7988,7 @@ var ChatSidebar = _react.forwardRef.call(void 0,
7980
7988
  (entries) => {
7981
7989
  const [entry] = entries;
7982
7990
  if (entry.isIntersecting && !isFetchingRef.current) {
7983
- _optionalChain([onLoadMoreRef, 'access', _114 => _114.current, 'optionalCall', _115 => _115()]);
7991
+ _optionalChain([onLoadMoreRef, 'access', _116 => _116.current, 'optionalCall', _117 => _117()]);
7984
7992
  }
7985
7993
  },
7986
7994
  { root: scrollContainer, rootMargin: "100px", threshold: 0.1 }
@@ -8096,7 +8104,7 @@ function isSameOriginAbsoluteHref(href) {
8096
8104
  function computeIsNewTab(runtime, href, targetPlatform) {
8097
8105
  if (!href) return false;
8098
8106
  if (runtime.navigation.mode === "embed") return !isSameOriginAbsoluteHref(href);
8099
- return _nullishCoalesce(_optionalChain([runtime, 'access', _116 => _116.navigation, 'access', _117 => _117.decideNewTab, 'optionalCall', _118 => _118({ href, targetPlatform })]), () => ( decideNewTab({
8107
+ return _nullishCoalesce(_optionalChain([runtime, 'access', _118 => _118.navigation, 'access', _119 => _119.decideNewTab, 'optionalCall', _120 => _120({ href, targetPlatform })]), () => ( decideNewTab({
8100
8108
  href,
8101
8109
  targetPlatform,
8102
8110
  currentSource: _nullishCoalesce(runtime.source, () => ( ""))
@@ -8160,7 +8168,7 @@ function resolveExternalNavigation(args) {
8160
8168
  function runNavigation(runtime, href, path, targetPlatform, fallbackNavigate) {
8161
8169
  const isNewTab = runtime ? computeIsNewTab(runtime, href, _nullishCoalesce(targetPlatform, () => ( null))) : false;
8162
8170
  if (isNewTab) {
8163
- if (_optionalChain([runtime, 'optionalAccess', _119 => _119.navigation, 'access', _120 => _120.openExternal])) runtime.navigation.openExternal(href);
8171
+ if (_optionalChain([runtime, 'optionalAccess', _121 => _121.navigation, 'access', _122 => _122.openExternal])) runtime.navigation.openExternal(href);
8164
8172
  else window.open(href, "_blank", NEW_TAB_FEATURES);
8165
8173
  return;
8166
8174
  }
@@ -8168,7 +8176,7 @@ function runNavigation(runtime, href, path, targetPlatform, fallbackNavigate) {
8168
8176
  if (target.includes("#") && _chunkDCIB6AK3cjs.navigateSamePageHash.call(void 0, target, { headerOffset: _chunkDCIB6AK3cjs.STICKY_HEADER_OFFSET_PX })) {
8169
8177
  return;
8170
8178
  }
8171
- const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _121 => _121.navigation, 'access', _122 => _122.navigate, 'optionalCall', _123 => _123({ href, path, targetPlatform })]), () => ( false));
8179
+ const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _123 => _123.navigation, 'access', _124 => _124.navigate, 'optionalCall', _125 => _125({ href, path, targetPlatform })]), () => ( false));
8172
8180
  if (!handled) {
8173
8181
  if (fallbackNavigate) fallbackNavigate(target);
8174
8182
  else window.location.assign(target);
@@ -8233,7 +8241,7 @@ function NavLinkAnchorViaRuntime({
8233
8241
  path,
8234
8242
  targetPlatform
8235
8243
  }, router.push);
8236
- if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _124 => _124.closeChat])) panel.closeChat();
8244
+ if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _126 => _126.closeChat])) panel.closeChat();
8237
8245
  };
8238
8246
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8239
8247
  "a",
@@ -8358,7 +8366,7 @@ function EntityAuthorCard({
8358
8366
  renderEmptyAuthor = false,
8359
8367
  className
8360
8368
  }) {
8361
- const hasAuthor = !!_optionalChain([author, 'optionalAccess', _125 => _125.full_name]);
8369
+ const hasAuthor = !!_optionalChain([author, 'optionalAccess', _127 => _127.full_name]);
8362
8370
  if (!hasAuthor && !renderEmptyAuthor) return null;
8363
8371
  const effectiveAuthor = hasAuthor ? author : EMPTY_AUTHOR_PLACEHOLDER;
8364
8372
  const formatted = publishedAt ? formatDate(publishedAt) : "";
@@ -8694,8 +8702,8 @@ function AdminContentCard({
8694
8702
  /* @__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 }),
8695
8703
  subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] text-ods-text-secondary truncate", children: subtitle }),
8696
8704
  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 }),
8697
- (Number(_optionalChain([platforms, 'optionalAccess', _126 => _126.length])) > 0 || badges) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 flex-wrap", children: [
8698
- _optionalChain([platforms, 'optionalAccess', _127 => _127.map, 'call', _128 => _128((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8705
+ (Number(_optionalChain([platforms, 'optionalAccess', _128 => _128.length])) > 0 || badges) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 flex-wrap", children: [
8706
+ _optionalChain([platforms, 'optionalAccess', _129 => _129.map, 'call', _130 => _130((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8699
8707
  PlatformBadge,
8700
8708
  {
8701
8709
  platform: { id: p.id || p.platform_id || "", name: p.name, display_name: p.display_name || p.name },
@@ -8751,8 +8759,8 @@ function WhatIShippedCard({ entry, placeholderUrl, actions, anchorProps, classNa
8751
8759
  ) : null,
8752
8760
  meta: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
8753
8761
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2 min-w-0", children: [
8754
- _optionalChain([entry, 'access', _129 => _129.author, 'optionalAccess', _130 => _130.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src: _nullishCoalesce(getProxiedImageUrl2(entry.author.avatar_url), () => ( entry.author.avatar_url)), alt: "", className: "h-5 w-5 rounded-full object-cover shrink-0" }) : null,
8755
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: _nullishCoalesce(_optionalChain([entry, 'access', _131 => _131.author, 'optionalAccess', _132 => _132.full_name]), () => ( "")) })
8762
+ _optionalChain([entry, 'access', _131 => _131.author, 'optionalAccess', _132 => _132.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src: _nullishCoalesce(getProxiedImageUrl2(entry.author.avatar_url), () => ( entry.author.avatar_url)), alt: "", className: "h-5 w-5 rounded-full object-cover shrink-0" }) : null,
8763
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: _nullishCoalesce(_optionalChain([entry, 'access', _133 => _133.author, 'optionalAccess', _134 => _134.full_name]), () => ( "")) })
8756
8764
  ] }),
8757
8765
  month ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: month }) : null
8758
8766
  ] }),
@@ -8837,7 +8845,7 @@ function fetchPriorityProp(priority) {
8837
8845
 
8838
8846
  if (typeof window !== "undefined") {
8839
8847
  const w = window;
8840
- if (!_optionalChain([w, 'access', _133 => _133.chrome, 'optionalAccess', _134 => _134.cast])) {
8848
+ if (!_optionalChain([w, 'access', _135 => _135.chrome, 'optionalAccess', _136 => _136.cast])) {
8841
8849
  w.chrome = { ..._nullishCoalesce(w.chrome, () => ( {})), cast: { isAvailable: false } };
8842
8850
  }
8843
8851
  }
@@ -9027,7 +9035,7 @@ function YouTubeFacadeInner({
9027
9035
  const iframe = iframeRef.current;
9028
9036
  if (!iframe) return;
9029
9037
  function subscribe() {
9030
- _optionalChain([iframe, 'optionalAccess', _135 => _135.contentWindow, 'optionalAccess', _136 => _136.postMessage, 'call', _137 => _137(
9038
+ _optionalChain([iframe, 'optionalAccess', _137 => _137.contentWindow, 'optionalAccess', _138 => _138.postMessage, 'call', _139 => _139(
9031
9039
  '{"event":"listening"}',
9032
9040
  YT_NOCOOKIE_ORIGIN
9033
9041
  )]);
@@ -9045,13 +9053,13 @@ function YouTubeFacadeInner({
9045
9053
  return;
9046
9054
  }
9047
9055
  if (!payload || payload.event !== "infoDelivery") return;
9048
- const state = _optionalChain([payload, 'access', _138 => _138.info, 'optionalAccess', _139 => _139.playerState]);
9056
+ const state = _optionalChain([payload, 'access', _140 => _140.info, 'optionalAccess', _141 => _141.playerState]);
9049
9057
  if (typeof state !== "number") return;
9050
9058
  if (state === YT_STATE_PLAYING) {
9051
9059
  if (blurTimer !== null) return;
9052
9060
  blurTimer = setTimeout(() => {
9053
9061
  blurTimer = null;
9054
- _optionalChain([iframeRef, 'access', _140 => _140.current, 'optionalAccess', _141 => _141.blur, 'call', _142 => _142()]);
9062
+ _optionalChain([iframeRef, 'access', _142 => _142.current, 'optionalAccess', _143 => _143.blur, 'call', _144 => _144()]);
9055
9063
  }, YT_PLAYING_BLUR_DELAY_MS);
9056
9064
  return;
9057
9065
  }
@@ -9657,7 +9665,7 @@ function ProductReleaseCard({
9657
9665
  changelogCounts
9658
9666
  }) {
9659
9667
  if (size === "lg") {
9660
- const totalChangelog = (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _143 => _143.features]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _144 => _144.fixes]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _145 => _145.improvements]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _146 => _146.breaking]), () => ( 0)));
9668
+ const totalChangelog = (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _145 => _145.features]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _146 => _146.fixes]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _147 => _147.improvements]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _148 => _148.breaking]), () => ( 0)));
9661
9669
  const valueCells = [
9662
9670
  releaseType && releaseTypeBadgeColor ? {
9663
9671
  value: releaseType.toUpperCase(),
@@ -9676,7 +9684,7 @@ function ProductReleaseCard({
9676
9684
  uppercase: false
9677
9685
  } : { value: "\u2014", label: "Released", uppercase: false }
9678
9686
  ];
9679
- const effectiveAuthor = _optionalChain([author, 'optionalAccess', _147 => _147.full_name]) ? author : { full_name: "\u2014", avatar_url: null, job_title: "Unknown" };
9687
+ const effectiveAuthor = _optionalChain([author, 'optionalAccess', _149 => _149.full_name]) ? author : { full_name: "\u2014", avatar_url: null, job_title: "Unknown" };
9680
9688
  const gridColsClass = "md:grid-cols-4";
9681
9689
  const dividerClass = "border-b md:border-b-0 md:border-r border-ods-border";
9682
9690
  const frameClass = _chunkFIG2RKZFcjs.cn.call(void 0,
@@ -10089,10 +10097,10 @@ function buildProductReleaseCardProps(item) {
10089
10097
  job_title: release.author.job_title
10090
10098
  } : void 0,
10091
10099
  changelogCounts: {
10092
- features: _nullishCoalesce(_optionalChain([release, 'access', _148 => _148.features_added, 'optionalAccess', _149 => _149.length]), () => ( 0)),
10093
- fixes: _nullishCoalesce(_optionalChain([release, 'access', _150 => _150.bugs_fixed, 'optionalAccess', _151 => _151.length]), () => ( 0)),
10094
- improvements: _nullishCoalesce(_optionalChain([release, 'access', _152 => _152.improvements, 'optionalAccess', _153 => _153.length]), () => ( 0)),
10095
- breaking: _nullishCoalesce(_optionalChain([release, 'access', _154 => _154.breaking_changes, 'optionalAccess', _155 => _155.length]), () => ( 0))
10100
+ features: _nullishCoalesce(_optionalChain([release, 'access', _150 => _150.features_added, 'optionalAccess', _151 => _151.length]), () => ( 0)),
10101
+ fixes: _nullishCoalesce(_optionalChain([release, 'access', _152 => _152.bugs_fixed, 'optionalAccess', _153 => _153.length]), () => ( 0)),
10102
+ improvements: _nullishCoalesce(_optionalChain([release, 'access', _154 => _154.improvements, 'optionalAccess', _155 => _155.length]), () => ( 0)),
10103
+ breaking: _nullishCoalesce(_optionalChain([release, 'access', _156 => _156.breaking_changes, 'optionalAccess', _157 => _157.length]), () => ( 0))
10096
10104
  }
10097
10105
  };
10098
10106
  }
@@ -10220,7 +10228,7 @@ function BlogCard({
10220
10228
  const displayImage = post.featured_image && !imageError ? post.featured_image : placeholderUrl;
10221
10229
  if (size === "sm") {
10222
10230
  const dateStr2 = post.published_at ? new Date(post.published_at).toLocaleDateString("en-US", { year: "numeric", month: "short", day: "numeric", timeZone: "UTC" }) : "";
10223
- const firstCategory = _optionalChain([post, 'access', _156 => _156.categories, 'optionalAccess', _157 => _157.find, 'call', _158 => _158((c) => c && c.name), 'optionalAccess', _159 => _159.name]);
10231
+ const firstCategory = _optionalChain([post, 'access', _158 => _158.categories, 'optionalAccess', _159 => _159.find, 'call', _160 => _160((c) => c && c.name), 'optionalAccess', _161 => _161.name]);
10224
10232
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
10225
10233
  "a",
10226
10234
  {
@@ -10426,14 +10434,14 @@ function CaseStudyCard({
10426
10434
  "img",
10427
10435
  {
10428
10436
  src: coverImage,
10429
- alt: `${_optionalChain([study, 'access', _160 => _160.msp, 'optionalAccess', _161 => _161.name]) || study.title} cover`,
10437
+ alt: `${_optionalChain([study, 'access', _162 => _162.msp, 'optionalAccess', _163 => _163.name]) || study.title} cover`,
10430
10438
  className: "absolute inset-0 block w-full h-full object-contain",
10431
10439
  onError: hideOnError
10432
10440
  }
10433
10441
  ) : null }),
10434
10442
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
10435
10443
  /* @__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 }) }),
10436
- /* @__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', _162 => _162.msp, 'optionalAccess', _163 => _163.name]), _optionalChain([study, 'access', _164 => _164.user, 'optionalAccess', _165 => _165.full_name])].filter(Boolean).join(" \xB7 ") || "Case study" }) }),
10444
+ /* @__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', _164 => _164.msp, 'optionalAccess', _165 => _165.name]), _optionalChain([study, 'access', _166 => _166.user, 'optionalAccess', _167 => _167.full_name])].filter(Boolean).join(" \xB7 ") || "Case study" }) }),
10437
10445
  /* @__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 }) })
10438
10446
  ] })
10439
10447
  ] });
@@ -10443,7 +10451,7 @@ function CaseStudyCard({
10443
10451
  _chunkXL4V2PYGcjs.next_image_default,
10444
10452
  {
10445
10453
  src: coverImage,
10446
- alt: _optionalChain([study, 'access', _166 => _166.msp, 'optionalAccess', _167 => _167.name]) || study.title,
10454
+ alt: _optionalChain([study, 'access', _168 => _168.msp, 'optionalAccess', _169 => _169.name]) || study.title,
10447
10455
  className: "w-full h-full object-cover",
10448
10456
  sizes: "(min-width: 1545px) 515px, (min-width: 1280px) 33vw, (min-width: 800px) 50vw, 100vw",
10449
10457
  fill: true,
@@ -10454,18 +10462,18 @@ function CaseStudyCard({
10454
10462
  /* @__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 }) }),
10455
10463
  /* @__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: [
10456
10464
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative shrink-0 w-12 h-12", children: [
10457
- _optionalChain([study, 'access', _168 => _168.user, 'optionalAccess', _169 => _169.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10465
+ _optionalChain([study, 'access', _170 => _170.user, 'optionalAccess', _171 => _171.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10458
10466
  _chunkXL4V2PYGcjs.next_image_default,
10459
10467
  {
10460
10468
  src: study.user.avatar_url,
10461
- alt: _optionalChain([study, 'access', _170 => _170.user, 'optionalAccess', _171 => _171.full_name]) || "User",
10469
+ alt: _optionalChain([study, 'access', _172 => _172.user, 'optionalAccess', _173 => _173.full_name]) || "User",
10462
10470
  className: "w-12 h-12 rounded-full object-cover bg-ods-background border border-ods-border",
10463
10471
  width: 48,
10464
10472
  height: 48,
10465
10473
  unoptimized: true
10466
10474
  }
10467
- ) : /* @__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', _172 => _172.user, 'optionalAccess', _173 => _173.full_name]) || "A").charAt(0).toUpperCase() }) }),
10468
- _optionalChain([study, 'access', _174 => _174.msp, 'optionalAccess', _175 => _175.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,
10475
+ ) : /* @__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', _174 => _174.user, 'optionalAccess', _175 => _175.full_name]) || "A").charAt(0).toUpperCase() }) }),
10476
+ _optionalChain([study, 'access', _176 => _176.msp, 'optionalAccess', _177 => _177.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,
10469
10477
  _chunkXL4V2PYGcjs.next_image_default,
10470
10478
  {
10471
10479
  src: study.msp.icon_url,
@@ -10479,13 +10487,13 @@ function CaseStudyCard({
10479
10487
  ] }),
10480
10488
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
10481
10489
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "font-['DM_Sans'] text-[16px] leading-[1.3] text-ods-text-primary truncate", children: [
10482
- _optionalChain([study, 'access', _176 => _176.user, 'optionalAccess', _177 => _177.full_name]) || "Anonymous",
10483
- _optionalChain([study, 'access', _178 => _178.msp, 'optionalAccess', _179 => _179.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
10490
+ _optionalChain([study, 'access', _178 => _178.user, 'optionalAccess', _179 => _179.full_name]) || "Anonymous",
10491
+ _optionalChain([study, 'access', _180 => _180.msp, 'optionalAccess', _181 => _181.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
10484
10492
  " \u2022 ",
10485
10493
  study.msp.name
10486
10494
  ] })
10487
10495
  ] }),
10488
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] leading-none text-ods-text-secondary truncate", children: _optionalChain([study, 'access', _180 => _180.user, 'optionalAccess', _181 => _181.job_title]) || "\xA0" })
10496
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] leading-none text-ods-text-secondary truncate", children: _optionalChain([study, 'access', _182 => _182.user, 'optionalAccess', _183 => _183.job_title]) || "\xA0" })
10489
10497
  ] })
10490
10498
  ] }) })
10491
10499
  ] }) });
@@ -10568,7 +10576,7 @@ function CustomerInterviewCard({
10568
10576
  ] }),
10569
10577
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
10570
10578
  /* @__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 }) }),
10571
- /* @__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', _182 => _182.user, 'optionalAccess', _183 => _183.full_name]), _optionalChain([interview, 'access', _184 => _184.msp, 'optionalAccess', _185 => _185.name])].filter(Boolean).join(" \xB7 ") || "Customer interview" }) }),
10579
+ /* @__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', _184 => _184.user, 'optionalAccess', _185 => _185.full_name]), _optionalChain([interview, 'access', _186 => _186.msp, 'optionalAccess', _187 => _187.name])].filter(Boolean).join(" \xB7 ") || "Customer interview" }) }),
10572
10580
  /* @__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 }) })
10573
10581
  ] })
10574
10582
  ] });
@@ -10590,15 +10598,15 @@ function CustomerInterviewCard({
10590
10598
  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 }) }),
10591
10599
  /* @__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: [
10592
10600
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative shrink-0 w-12 h-12", children: [
10593
- _optionalChain([interview, 'access', _186 => _186.user, 'optionalAccess', _187 => _187.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10601
+ _optionalChain([interview, 'access', _188 => _188.user, 'optionalAccess', _189 => _189.avatar_url]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10594
10602
  "img",
10595
10603
  {
10596
10604
  src: interview.user.avatar_url,
10597
- alt: _optionalChain([interview, 'access', _188 => _188.user, 'optionalAccess', _189 => _189.full_name]) || "Customer",
10605
+ alt: _optionalChain([interview, 'access', _190 => _190.user, 'optionalAccess', _191 => _191.full_name]) || "Customer",
10598
10606
  className: "w-12 h-12 rounded-full object-cover bg-ods-background border border-ods-border"
10599
10607
  }
10600
- ) : /* @__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', _190 => _190.user, 'optionalAccess', _191 => _191.full_name]) || "A").charAt(0).toUpperCase() }) }),
10601
- _optionalChain([interview, 'access', _192 => _192.msp, 'optionalAccess', _193 => _193.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,
10608
+ ) : /* @__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', _192 => _192.user, 'optionalAccess', _193 => _193.full_name]) || "A").charAt(0).toUpperCase() }) }),
10609
+ _optionalChain([interview, 'access', _194 => _194.msp, 'optionalAccess', _195 => _195.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,
10602
10610
  "img",
10603
10611
  {
10604
10612
  src: interview.msp.icon_url,
@@ -10609,13 +10617,13 @@ function CustomerInterviewCard({
10609
10617
  ] }),
10610
10618
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
10611
10619
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "font-['DM_Sans'] text-[16px] leading-[1.3] text-ods-text-primary truncate", children: [
10612
- _optionalChain([interview, 'access', _194 => _194.user, 'optionalAccess', _195 => _195.full_name]) || "Anonymous",
10613
- _optionalChain([interview, 'access', _196 => _196.msp, 'optionalAccess', _197 => _197.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
10620
+ _optionalChain([interview, 'access', _196 => _196.user, 'optionalAccess', _197 => _197.full_name]) || "Anonymous",
10621
+ _optionalChain([interview, 'access', _198 => _198.msp, 'optionalAccess', _199 => _199.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
10614
10622
  " \u2022 ",
10615
10623
  interview.msp.name
10616
10624
  ] })
10617
10625
  ] }),
10618
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] leading-none text-ods-text-secondary truncate", children: _optionalChain([interview, 'access', _198 => _198.user, 'optionalAccess', _199 => _199.job_title]) || " " })
10626
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-[14px] leading-none text-ods-text-secondary truncate", children: _optionalChain([interview, 'access', _200 => _200.user, 'optionalAccess', _201 => _201.job_title]) || " " })
10619
10627
  ] })
10620
10628
  ] }) })
10621
10629
  ] }) });
@@ -10628,7 +10636,7 @@ function CustomerInterviewCard({
10628
10636
  function formatInvestorUpdatePeriod(start, end, options) {
10629
10637
  if (!start && !end) return "";
10630
10638
  const fmt = (d) => new Date(d).toLocaleDateString("en-US", {
10631
- month: _optionalChain([options, 'optionalAccess', _200 => _200.monthFormat]) || "short",
10639
+ month: _optionalChain([options, 'optionalAccess', _202 => _202.monthFormat]) || "short",
10632
10640
  year: "numeric",
10633
10641
  // Pin to UTC so SSR (Vercel = UTC) and the client agree (React #418).
10634
10642
  timeZone: "UTC"
@@ -10720,7 +10728,7 @@ function InvestorUpdateCard({
10720
10728
  imageUrl: update.featured_image,
10721
10729
  placeholderUrl,
10722
10730
  title: update.title || `Update #${update.update_number || "?"}`,
10723
- summary: _optionalChain([update, 'access', _201 => _201.strategic_update, 'optionalAccess', _202 => _202.slice, 'call', _203 => _203(0, 120)]) || _optionalChain([update, 'access', _204 => _204.content, 'optionalAccess', _205 => _205.slice, 'call', _206 => _206(0, 120)]) || "No description",
10731
+ summary: _optionalChain([update, 'access', _203 => _203.strategic_update, 'optionalAccess', _204 => _204.slice, 'call', _205 => _205(0, 120)]) || _optionalChain([update, 'access', _206 => _206.content, 'optionalAccess', _207 => _207.slice, 'call', _208 => _208(0, 120)]) || "No description",
10724
10732
  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: [
10725
10733
  "#",
10726
10734
  update.update_number
@@ -10912,7 +10920,7 @@ function OnboardingGuideCard({
10912
10920
  const compactCover = coverImage || placeholderUrl || null;
10913
10921
  const hasVideoCover = !guide.featured_image && !!guide.main_video_thumbnail;
10914
10922
  const summary2 = stripMarkdownPreview(guide.video_summary || guide.content || "");
10915
- const author = _optionalChain([guide, 'access', _207 => _207.author, 'optionalAccess', _208 => _208.full_name, 'optionalAccess', _209 => _209.trim, 'call', _210 => _210()]) || "";
10923
+ const author = _optionalChain([guide, 'access', _209 => _209.author, 'optionalAccess', _210 => _210.full_name, 'optionalAccess', _211 => _211.trim, 'call', _212 => _212()]) || "";
10916
10924
  const subtitleParts = [
10917
10925
  `Step ${guide.step_order}`,
10918
10926
  guide.section,
@@ -11288,7 +11296,7 @@ function AutocompleteInner(props, ref) {
11288
11296
  if (!isInputControlled) {
11289
11297
  setInternalInputValue(value);
11290
11298
  }
11291
- _optionalChain([onInputChange, 'optionalCall', _211 => _211(value, reason)]);
11299
+ _optionalChain([onInputChange, 'optionalCall', _213 => _213(value, reason)]);
11292
11300
  };
11293
11301
  const [isOpen, setIsOpen] = _react.useState.call(void 0, false);
11294
11302
  const [highlightedIndex, setHighlightedIndex] = _react.useState.call(void 0, -1);
@@ -11316,8 +11324,8 @@ function AutocompleteInner(props, ref) {
11316
11324
  if (!showHiddenTags) return;
11317
11325
  const handleClick = (e) => {
11318
11326
  const target = e.target;
11319
- const inButton = _optionalChain([hiddenTagsRef, 'access', _212 => _212.current, 'optionalAccess', _213 => _213.contains, 'call', _214 => _214(target)]);
11320
- const inPopup = _optionalChain([hiddenTagsPopupRef, 'access', _215 => _215.current, 'optionalAccess', _216 => _216.contains, 'call', _217 => _217(target)]);
11327
+ const inButton = _optionalChain([hiddenTagsRef, 'access', _214 => _214.current, 'optionalAccess', _215 => _215.contains, 'call', _216 => _216(target)]);
11328
+ const inPopup = _optionalChain([hiddenTagsPopupRef, 'access', _217 => _217.current, 'optionalAccess', _218 => _218.contains, 'call', _219 => _219(target)]);
11321
11329
  if (!inButton && !inPopup) {
11322
11330
  setShowHiddenTags(false);
11323
11331
  }
@@ -11362,7 +11370,7 @@ function AutocompleteInner(props, ref) {
11362
11370
  }
11363
11371
  updateInputValue("", "reset");
11364
11372
  setIsOpen(false);
11365
- _optionalChain([onCreateOption, 'optionalCall', _218 => _218(trimmed)]);
11373
+ _optionalChain([onCreateOption, 'optionalCall', _220 => _220(trimmed)]);
11366
11374
  };
11367
11375
  _react.useEffect.call(void 0, () => {
11368
11376
  setHighlightedIndex(-1);
@@ -11386,7 +11394,7 @@ function AutocompleteInner(props, ref) {
11386
11394
  props.onChange([...valueArray, option.value]);
11387
11395
  }
11388
11396
  updateInputValue("", "reset");
11389
- _optionalChain([autoLimitTags, 'access', _219 => _219.inputRef, 'access', _220 => _220.current, 'optionalAccess', _221 => _221.focus, 'call', _222 => _222()]);
11397
+ _optionalChain([autoLimitTags, 'access', _221 => _221.inputRef, 'access', _222 => _222.current, 'optionalAccess', _223 => _223.focus, 'call', _224 => _224()]);
11390
11398
  } else {
11391
11399
  ;
11392
11400
  props.onChange(option.value);
@@ -11407,7 +11415,7 @@ function AutocompleteInner(props, ref) {
11407
11415
  if (!isInputControlled) {
11408
11416
  setInternalInputValue("");
11409
11417
  }
11410
- _optionalChain([onInputChange, 'optionalCall', _223 => _223("", "clear")]);
11418
+ _optionalChain([onInputChange, 'optionalCall', _225 => _225("", "clear")]);
11411
11419
  setIsOpen(false);
11412
11420
  };
11413
11421
  const handleKeyDown = (e) => {
@@ -11481,7 +11489,7 @@ function AutocompleteInner(props, ref) {
11481
11489
  ),
11482
11490
  onClick: () => {
11483
11491
  if (!disabled) {
11484
- _optionalChain([autoLimitTags, 'access', _224 => _224.inputRef, 'access', _225 => _225.current, 'optionalAccess', _226 => _226.focus, 'call', _227 => _227()]);
11492
+ _optionalChain([autoLimitTags, 'access', _226 => _226.inputRef, 'access', _227 => _227.current, 'optionalAccess', _228 => _228.focus, 'call', _229 => _229()]);
11485
11493
  openDropdown();
11486
11494
  }
11487
11495
  },
@@ -11597,10 +11605,10 @@ function AutocompleteInner(props, ref) {
11597
11605
  align: "start",
11598
11606
  onOpenAutoFocus: (e) => {
11599
11607
  e.preventDefault();
11600
- _optionalChain([autoLimitTags, 'access', _228 => _228.inputRef, 'access', _229 => _229.current, 'optionalAccess', _230 => _230.focus, 'call', _231 => _231()]);
11608
+ _optionalChain([autoLimitTags, 'access', _230 => _230.inputRef, 'access', _231 => _231.current, 'optionalAccess', _232 => _232.focus, 'call', _233 => _233()]);
11601
11609
  },
11602
11610
  onInteractOutside: (e) => {
11603
- if (_optionalChain([containerRef, 'access', _232 => _232.current, 'optionalAccess', _233 => _233.contains, 'call', _234 => _234(e.target)])) {
11611
+ if (_optionalChain([containerRef, 'access', _234 => _234.current, 'optionalAccess', _235 => _235.contains, 'call', _236 => _236(e.target)])) {
11604
11612
  e.preventDefault();
11605
11613
  }
11606
11614
  },
@@ -12013,7 +12021,7 @@ var defaultFormatDate = (date) => {
12013
12021
  });
12014
12022
  };
12015
12023
  var formatDateRange2 = (range, formatFn) => {
12016
- if (!_optionalChain([range, 'optionalAccess', _235 => _235.from])) return "";
12024
+ if (!_optionalChain([range, 'optionalAccess', _237 => _237.from])) return "";
12017
12025
  if (!range.to) return formatFn(range.from);
12018
12026
  return `${formatFn(range.from)} - ${formatFn(range.to)}`;
12019
12027
  };
@@ -12048,16 +12056,16 @@ function DatePickerCalendar({
12048
12056
  );
12049
12057
  const [hoveredDate, setHoveredDate] = React38.useState(void 0);
12050
12058
  const rangeSelected = draftRange;
12051
- const hasCompleteRange = mode === "range" && !!_optionalChain([rangeSelected, 'optionalAccess', _236 => _236.from]) && !!_optionalChain([rangeSelected, 'optionalAccess', _237 => _237.to]) && rangeSelected.from.getTime() !== rangeSelected.to.getTime();
12059
+ const hasCompleteRange = mode === "range" && !!_optionalChain([rangeSelected, 'optionalAccess', _238 => _238.from]) && !!_optionalChain([rangeSelected, 'optionalAccess', _239 => _239.to]) && rangeSelected.from.getTime() !== rangeSelected.to.getTime();
12052
12060
  const isPreviewDate = (date) => {
12053
- if (!_optionalChain([draftRange, 'optionalAccess', _238 => _238.from]) || draftRange.to || !hoveredDate) return false;
12061
+ if (!_optionalChain([draftRange, 'optionalAccess', _240 => _240.from]) || draftRange.to || !hoveredDate) return false;
12054
12062
  const start = Math.min(draftRange.from.getTime(), hoveredDate.getTime());
12055
12063
  const end = Math.max(draftRange.from.getTime(), hoveredDate.getTime());
12056
12064
  return date.getTime() >= start && date.getTime() <= end;
12057
12065
  };
12058
12066
  const handleRangeSelect = (triggerDate) => {
12059
12067
  if (!triggerDate) return;
12060
- if (!_optionalChain([draftRange, 'optionalAccess', _239 => _239.from]) || draftRange.to) {
12068
+ if (!_optionalChain([draftRange, 'optionalAccess', _241 => _241.from]) || draftRange.to) {
12061
12069
  setDraftRange({ from: triggerDate, to: void 0 });
12062
12070
  return;
12063
12071
  }
@@ -12122,7 +12130,7 @@ function DatePickerCalendar({
12122
12130
  range_middle: "range-middle !bg-[var(--ods-open-yellow-light)] !text-ods-card !font-medium !rounded-none hover:!bg-[var(--ods-open-yellow-light)]"
12123
12131
  };
12124
12132
  const [month, setMonth] = React38.useState(
12125
- mode === "single" ? selected || today : _optionalChain([selected, 'optionalAccess', _240 => _240.from]) || today
12133
+ mode === "single" ? selected || today : _optionalChain([selected, 'optionalAccess', _242 => _242.from]) || today
12126
12134
  );
12127
12135
  const handlePreviousMonth = () => {
12128
12136
  setMonth((prev) => {
@@ -12354,14 +12362,14 @@ function DatePicker(props) {
12354
12362
  }, [props.mode, props.value, formatDate2]);
12355
12363
  const handleSelect = (value) => {
12356
12364
  if (props.mode === "single") {
12357
- _optionalChain([props, 'access', _241 => _241.onChange, 'optionalCall', _242 => _242(value)]);
12365
+ _optionalChain([props, 'access', _243 => _243.onChange, 'optionalCall', _244 => _244(value)]);
12358
12366
  if (value) {
12359
12367
  setOpen(false);
12360
12368
  }
12361
12369
  } else {
12362
12370
  const range = value;
12363
- _optionalChain([props, 'access', _243 => _243.onChange, 'optionalCall', _244 => _244(range)]);
12364
- if (_optionalChain([range, 'optionalAccess', _245 => _245.from]) && _optionalChain([range, 'optionalAccess', _246 => _246.to])) {
12371
+ _optionalChain([props, 'access', _245 => _245.onChange, 'optionalCall', _246 => _246(range)]);
12372
+ if (_optionalChain([range, 'optionalAccess', _247 => _247.from]) && _optionalChain([range, 'optionalAccess', _248 => _248.to])) {
12365
12373
  setOpen(false);
12366
12374
  }
12367
12375
  }
@@ -12468,7 +12476,7 @@ function DatePickerInput({
12468
12476
  if (newDate && value) {
12469
12477
  newDate.setHours(value.getHours(), value.getMinutes(), 0, 0);
12470
12478
  }
12471
- _optionalChain([onChange, 'optionalCall', _247 => _247(newDate)]);
12479
+ _optionalChain([onChange, 'optionalCall', _249 => _249(newDate)]);
12472
12480
  if (newDate) {
12473
12481
  setOpen(false);
12474
12482
  }
@@ -12485,12 +12493,12 @@ function DatePickerInput({
12485
12493
  }
12486
12494
  }
12487
12495
  date.setHours(hours);
12488
- _optionalChain([onChange, 'optionalCall', _248 => _248(date)]);
12496
+ _optionalChain([onChange, 'optionalCall', _250 => _250(date)]);
12489
12497
  };
12490
12498
  const handleMinuteChange = (newMinute) => {
12491
12499
  const date = value ? new Date(value) : /* @__PURE__ */ new Date();
12492
12500
  date.setMinutes(parseInt(newMinute, 10));
12493
- _optionalChain([onChange, 'optionalCall', _249 => _249(date)]);
12501
+ _optionalChain([onChange, 'optionalCall', _251 => _251(date)]);
12494
12502
  };
12495
12503
  const handlePeriodChange = (newPeriod) => {
12496
12504
  const date = value ? new Date(value) : /* @__PURE__ */ new Date();
@@ -12501,7 +12509,7 @@ function DatePickerInput({
12501
12509
  hours += 12;
12502
12510
  }
12503
12511
  date.setHours(hours);
12504
- _optionalChain([onChange, 'optionalCall', _250 => _250(date)]);
12512
+ _optionalChain([onChange, 'optionalCall', _252 => _252(date)]);
12505
12513
  };
12506
12514
  const hourOptions = React38.useMemo(() => generateHourOptions(use24HourFormat), [use24HourFormat]);
12507
12515
  const minuteOptions = React38.useMemo(() => generateMinuteOptions(), []);
@@ -12662,7 +12670,7 @@ function DatePickerInputSimple({
12662
12670
  if (newDate && value) {
12663
12671
  newDate.setHours(value.getHours(), value.getMinutes(), 0, 0);
12664
12672
  }
12665
- _optionalChain([onChange, 'optionalCall', _251 => _251(newDate)]);
12673
+ _optionalChain([onChange, 'optionalCall', _253 => _253(newDate)]);
12666
12674
  if (newDate) {
12667
12675
  setOpen(false);
12668
12676
  }
@@ -12671,7 +12679,7 @@ function DatePickerInputSimple({
12671
12679
  const [hours, minutes] = newTime.split(":").map(Number);
12672
12680
  const date = value ? new Date(value) : /* @__PURE__ */ new Date();
12673
12681
  date.setHours(hours, minutes, 0, 0);
12674
- _optionalChain([onChange, 'optionalCall', _252 => _252(date)]);
12682
+ _optionalChain([onChange, 'optionalCall', _254 => _254(date)]);
12675
12683
  };
12676
12684
  const timeOptions = React38.useMemo(
12677
12685
  () => generateTimeOptions(timeInterval, use24HourFormat),
@@ -12770,17 +12778,17 @@ function DateFilterMenu({
12770
12778
  if (next) {
12771
12779
  resetDraft();
12772
12780
  } else {
12773
- _optionalChain([onClose, 'optionalCall', _253 => _253()]);
12781
+ _optionalChain([onClose, 'optionalCall', _255 => _255()]);
12774
12782
  }
12775
12783
  setOpen(next);
12776
12784
  };
12777
12785
  const handleApply = () => {
12778
12786
  const result = mode === "single" ? { sort: draftSort, date: draftSelected } : { sort: draftSort, range: draftSelected };
12779
- _optionalChain([onApply, 'optionalCall', _254 => _254(result)]);
12787
+ _optionalChain([onApply, 'optionalCall', _256 => _256(result)]);
12780
12788
  setOpen(false);
12781
12789
  };
12782
12790
  const handleClose = () => {
12783
- _optionalChain([onClose, 'optionalCall', _255 => _255()]);
12791
+ _optionalChain([onClose, 'optionalCall', _257 => _257()]);
12784
12792
  setOpen(false);
12785
12793
  };
12786
12794
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Popover.Root, { open, onOpenChange: handleOpenChange, children: [
@@ -12890,7 +12898,7 @@ function DurationInput({ value, onChange, invalid, className }) {
12890
12898
  setSegments((prev) => compose(prev) === value ? prev : split(value));
12891
12899
  }, [value]);
12892
12900
  const focusSegment = (i) => {
12893
- const el = _optionalChain([refs, 'access', _256 => _256[i], 'optionalAccess', _257 => _257.current]);
12901
+ const el = _optionalChain([refs, 'access', _258 => _258[i], 'optionalAccess', _259 => _259.current]);
12894
12902
  if (!el) return;
12895
12903
  el.focus();
12896
12904
  el.select();
@@ -13078,36 +13086,43 @@ function InfoCard({ data, className = "" }) {
13078
13086
  className
13079
13087
  ),
13080
13088
  children: [
13081
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "p-[var(--spacing-system-m)] flex flex-col gap-[var(--spacing-system-s)] items-start w-full", children: [
13082
- data.title && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)] self-stretch h-6", children: [
13083
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary truncate", title: data.title, children: data.title }),
13084
- data.icon
13089
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "p-[var(--spacing-system-m)] flex flex-col gap-[var(--spacing-system-l)] items-start w-full", children: [
13090
+ (data.title || data.subtitle) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-start self-stretch w-full", children: [
13091
+ data.title && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)] self-stretch", children: [
13092
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary truncate min-w-0", title: data.title, children: data.title }),
13093
+ data.icon
13094
+ ] }),
13095
+ data.subtitle && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)] self-stretch", children: [
13096
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-secondary truncate min-w-0", title: data.subtitle, children: data.subtitle }),
13097
+ !data.title && data.icon
13098
+ ] })
13085
13099
  ] }),
13086
- data.subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-h4 text-ods-text-secondary truncate self-stretch", title: data.subtitle, children: data.subtitle }),
13087
- data.items.map((item, index) => {
13088
- const values = Array.isArray(item.value) ? item.value : [item.value];
13089
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React114.default.Fragment, { children: values.map((val, valIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13090
- InfoCardValueRow,
13100
+ (data.items.length > 0 || data.progress) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xs)] items-start self-stretch w-full", children: [
13101
+ data.items.map((item, index) => {
13102
+ const values = Array.isArray(item.value) ? item.value : [item.value];
13103
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React114.default.Fragment, { children: values.map((val, valIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13104
+ InfoCardValueRow,
13105
+ {
13106
+ label: item.label,
13107
+ value: val,
13108
+ showLabel: valIndex === 0,
13109
+ copyable: item.copyable,
13110
+ icon: valIndex === 0 ? item.icon : void 0,
13111
+ copyAriaLabel: `Copy ${_nullishCoalesce(item.label, () => ( "value"))} ${valIndex + 1}`
13112
+ },
13113
+ `${index}-${valIndex}`
13114
+ )) }, index);
13115
+ }),
13116
+ data.progress && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13117
+ ProgressBar,
13091
13118
  {
13092
- label: item.label,
13093
- value: val,
13094
- showLabel: valIndex === 0,
13095
- copyable: item.copyable,
13096
- icon: valIndex === 0 ? item.icon : void 0,
13097
- copyAriaLabel: `Copy ${_nullishCoalesce(item.label, () => ( "value"))} ${valIndex + 1}`
13098
- },
13099
- `${index}-${valIndex}`
13100
- )) }, index);
13101
- }),
13102
- data.progress && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13103
- ProgressBar,
13104
- {
13105
- progress: data.progress.value,
13106
- warningThreshold: data.progress.warningThreshold,
13107
- criticalThreshold: data.progress.criticalThreshold,
13108
- inverted: data.progress.inverted
13109
- }
13110
- )
13119
+ progress: data.progress.value,
13120
+ warningThreshold: data.progress.warningThreshold,
13121
+ criticalThreshold: data.progress.criticalThreshold,
13122
+ inverted: data.progress.inverted
13123
+ }
13124
+ )
13125
+ ] })
13111
13126
  ] }),
13112
13127
  data.footer && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCardFooter, { footer: data.footer })
13113
13128
  ]
@@ -13220,7 +13235,7 @@ function CompactAssigneeDropdown({
13220
13235
  return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
13221
13236
  }, [filtered, currentAssignee]);
13222
13237
  const handleSelect = (userId) => {
13223
- const next = _optionalChain([currentAssignee, 'optionalAccess', _258 => _258.id]) === userId ? null : userId;
13238
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _260 => _260.id]) === userId ? null : userId;
13224
13239
  onAssign(next);
13225
13240
  setIsOpen(false);
13226
13241
  };
@@ -13285,7 +13300,7 @@ function CompactAssigneeDropdown({
13285
13300
  }
13286
13301
  ) }),
13287
13302
  /* @__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) => {
13288
- const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _259 => _259.id]) === opt.value;
13303
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _261 => _261.id]) === opt.value;
13289
13304
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
13290
13305
  "button",
13291
13306
  {
@@ -13354,7 +13369,7 @@ function DefaultAssigneeDropdown({
13354
13369
  Autocomplete,
13355
13370
  {
13356
13371
  options,
13357
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _260 => _260.id]), () => ( null)),
13372
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _262 => _262.id]), () => ( null)),
13358
13373
  onChange: (val) => {
13359
13374
  onAssign(val);
13360
13375
  setIsEditing(false);
@@ -13687,7 +13702,7 @@ var NoData = React114.default.forwardRef(function NoData2({
13687
13702
  ...props
13688
13703
  }, ref) {
13689
13704
  const hasMessage = !!(icon || title || description);
13690
- const hasActions = !!_optionalChain([actions, 'optionalAccess', _261 => _261.length]);
13705
+ const hasActions = !!_optionalChain([actions, 'optionalAccess', _263 => _263.length]);
13691
13706
  const footerButton = _nullishCoalesce(button, () => ( (buttonLabel != null ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13692
13707
  _chunkQJGRP2YEcjs.Button,
13693
13708
  {
@@ -13695,7 +13710,7 @@ var NoData = React114.default.forwardRef(function NoData2({
13695
13710
  leftIcon: buttonIcon,
13696
13711
  onClick: onButtonClick,
13697
13712
  ...buttonProps,
13698
- className: _chunkFIG2RKZFcjs.cn.call(void 0, "w-full md:w-auto", _optionalChain([buttonProps, 'optionalAccess', _262 => _262.className])),
13713
+ className: _chunkFIG2RKZFcjs.cn.call(void 0, "w-full md:w-auto", _optionalChain([buttonProps, 'optionalAccess', _264 => _264.className])),
13699
13714
  children: buttonLabel
13700
13715
  }
13701
13716
  ) : null)));
@@ -13930,7 +13945,7 @@ var Switch = React48.forwardRef(({ className, checked, onCheckedChange, ...props
13930
13945
  }, [checked]);
13931
13946
  const handleCheckedChange = (newChecked) => {
13932
13947
  setIsChecked(newChecked);
13933
- _optionalChain([onCheckedChange, 'optionalCall', _263 => _263(newChecked)]);
13948
+ _optionalChain([onCheckedChange, 'optionalCall', _265 => _265(newChecked)]);
13934
13949
  };
13935
13950
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13936
13951
  SwitchPrimitives.Root,
@@ -14316,7 +14331,7 @@ function TagsManager({
14316
14331
  const name = search.trim();
14317
14332
  if (!name) return;
14318
14333
  const result = await onCreateTag(name);
14319
- if (_optionalChain([result, 'optionalAccess', _264 => _264.id])) {
14334
+ if (_optionalChain([result, 'optionalAccess', _266 => _266.id])) {
14320
14335
  onChange([...selectedIds, result.id]);
14321
14336
  setSearch("");
14322
14337
  }
@@ -14324,7 +14339,7 @@ function TagsManager({
14324
14339
  const startEdit = React51.useCallback((id, name) => {
14325
14340
  setEditingId(id);
14326
14341
  setEditingName(name);
14327
- setTimeout(() => _optionalChain([editInputRef, 'access', _265 => _265.current, 'optionalAccess', _266 => _266.focus, 'call', _267 => _267()]), 0);
14342
+ setTimeout(() => _optionalChain([editInputRef, 'access', _267 => _267.current, 'optionalAccess', _268 => _268.focus, 'call', _269 => _269()]), 0);
14328
14343
  }, []);
14329
14344
  const confirmEdit = React51.useCallback(async () => {
14330
14345
  if (!onUpdateTag || !editingId || !editingName.trim()) return;
@@ -14351,7 +14366,7 @@ function TagsManager({
14351
14366
  e.stopPropagation();
14352
14367
  onChange([]);
14353
14368
  setSearch("");
14354
- _optionalChain([inputRef, 'access', _268 => _268.current, 'optionalAccess', _269 => _269.focus, 'call', _270 => _270()]);
14369
+ _optionalChain([inputRef, 'access', _270 => _270.current, 'optionalAccess', _271 => _271.focus, 'call', _272 => _272()]);
14355
14370
  },
14356
14371
  [onChange]
14357
14372
  );
@@ -14450,10 +14465,10 @@ function TagsManager({
14450
14465
  align: "start",
14451
14466
  onOpenAutoFocus: (e) => {
14452
14467
  e.preventDefault();
14453
- _optionalChain([inputRef, 'access', _271 => _271.current, 'optionalAccess', _272 => _272.focus, 'call', _273 => _273()]);
14468
+ _optionalChain([inputRef, 'access', _273 => _273.current, 'optionalAccess', _274 => _274.focus, 'call', _275 => _275()]);
14454
14469
  },
14455
14470
  onInteractOutside: (e) => {
14456
- if (_optionalChain([containerRef, 'access', _274 => _274.current, 'optionalAccess', _275 => _275.contains, 'call', _276 => _276(e.target)])) {
14471
+ if (_optionalChain([containerRef, 'access', _276 => _276.current, 'optionalAccess', _277 => _277.contains, 'call', _278 => _278(e.target)])) {
14457
14472
  e.preventDefault();
14458
14473
  }
14459
14474
  },
@@ -14738,7 +14753,7 @@ var Textarea = React52.forwardRef(
14738
14753
  "button",
14739
14754
  {
14740
14755
  type: "button",
14741
- "aria-label": _nullishCoalesce(_optionalChain([endIconButtonProps, 'optionalAccess', _277 => _277["aria-label"]]), () => ( "Submit")),
14756
+ "aria-label": _nullishCoalesce(_optionalChain([endIconButtonProps, 'optionalAccess', _279 => _279["aria-label"]]), () => ( "Submit")),
14742
14757
  ...endIconButtonProps,
14743
14758
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
14744
14759
  // `h-6` matches the textarea's `leading-6` line box so the icon's
@@ -14752,7 +14767,7 @@ var Textarea = React52.forwardRef(
14752
14767
  "cursor-pointer hover:text-ods-text-primary",
14753
14768
  "focus-visible:outline-none focus-visible:text-ods-accent",
14754
14769
  "disabled:cursor-not-allowed disabled:opacity-40 disabled:hover:text-ods-text-secondary",
14755
- _optionalChain([endIconButtonProps, 'optionalAccess', _278 => _278.className])
14770
+ _optionalChain([endIconButtonProps, 'optionalAccess', _280 => _280.className])
14756
14771
  ),
14757
14772
  children: endIcon
14758
14773
  }
@@ -15989,19 +16004,19 @@ function TabNavigation({
15989
16004
  const validTabIds = _react.useMemo.call(void 0, () => new Set(tabs.map((t) => t.id)), [tabs]);
15990
16005
  const getInitialTab = () => {
15991
16006
  if (isUrlSyncEnabled) {
15992
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _279 => _279.get, 'call', _280 => _280(paramName)]) || "";
16007
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _281 => _281.get, 'call', _282 => _282(paramName)]) || "";
15993
16008
  if (validTabIds.has(fromUrl)) {
15994
16009
  return fromUrl;
15995
16010
  }
15996
16011
  }
15997
- return defaultTab || _optionalChain([tabs, 'access', _281 => _281[0], 'optionalAccess', _282 => _282.id]) || "";
16012
+ return defaultTab || _optionalChain([tabs, 'access', _283 => _283[0], 'optionalAccess', _284 => _284.id]) || "";
15998
16013
  };
15999
16014
  const [internalActiveTab, setInternalActiveTab] = _react.useState.call(void 0, getInitialTab);
16000
16015
  const activeTab = isUrlSyncEnabled ? internalActiveTab : controlledActiveTab || "";
16001
16016
  _react.useEffect.call(void 0, () => {
16002
16017
  if (!isUrlSyncEnabled) return;
16003
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _283 => _283.get, 'call', _284 => _284(paramName)]) || "";
16004
- const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _285 => _285[0], 'optionalAccess', _286 => _286.id]) || "";
16018
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _285 => _285.get, 'call', _286 => _286(paramName)]) || "";
16019
+ const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _287 => _287[0], 'optionalAccess', _288 => _288.id]) || "";
16005
16020
  if (nextTab !== internalActiveTab) {
16006
16021
  setInternalActiveTab(nextTab);
16007
16022
  }
@@ -16009,13 +16024,13 @@ function TabNavigation({
16009
16024
  const handleTabChange = (tabId) => {
16010
16025
  if (isUrlSyncEnabled) {
16011
16026
  setInternalActiveTab(tabId);
16012
- const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _287 => _287.toString, 'call', _288 => _288()]));
16027
+ const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _289 => _289.toString, 'call', _290 => _290()]));
16013
16028
  params.set(paramName, tabId);
16014
16029
  const method = replaceState ? "replace" : "push";
16015
16030
  router[method](`${pathname}?${params.toString()}`);
16016
- _optionalChain([controlledOnTabChange, 'optionalCall', _289 => _289(tabId)]);
16031
+ _optionalChain([controlledOnTabChange, 'optionalCall', _291 => _291(tabId)]);
16017
16032
  } else {
16018
- _optionalChain([controlledOnTabChange, 'optionalCall', _290 => _290(tabId)]);
16033
+ _optionalChain([controlledOnTabChange, 'optionalCall', _292 => _292(tabId)]);
16019
16034
  }
16020
16035
  };
16021
16036
  const scrollRef = _react.useRef.call(void 0, null);
@@ -16103,7 +16118,7 @@ function TabNavigation({
16103
16118
  var getTabById = (tabs, tabId) => tabs.find((tab) => tab.id === tabId);
16104
16119
  var getTabComponent = (tabs, tabId) => {
16105
16120
  const tab = getTabById(tabs, tabId);
16106
- return _optionalChain([tab, 'optionalAccess', _291 => _291.component]) || null;
16121
+ return _optionalChain([tab, 'optionalAccess', _293 => _293.component]) || null;
16107
16122
  };
16108
16123
 
16109
16124
  // src/components/ui/alert.tsx
@@ -16365,13 +16380,13 @@ var SocialEmbedCache = class _SocialEmbedCache {
16365
16380
  errorData = await response.json();
16366
16381
  } catch (e19) {
16367
16382
  }
16368
- if (response.status === 404 && _optionalChain([errorData, 'optionalAccess', _292 => _292.error]) && _optionalChain([errorData, 'optionalAccess', _293 => _293.message])) {
16383
+ if (response.status === 404 && _optionalChain([errorData, 'optionalAccess', _294 => _294.error]) && _optionalChain([errorData, 'optionalAccess', _295 => _295.message])) {
16369
16384
  console.log(`\u{1F6AB} [${platformName} Proxy] Content unavailable: ${errorData.message}`);
16370
16385
  onError(errorData.message);
16371
16386
  onLoading(false);
16372
16387
  return;
16373
16388
  }
16374
- if (_optionalChain([errorData, 'optionalAccess', _294 => _294.error])) {
16389
+ if (_optionalChain([errorData, 'optionalAccess', _296 => _296.error])) {
16375
16390
  throw new Error(`Server error: ${errorData.error}`);
16376
16391
  }
16377
16392
  throw new Error(`Server proxy failed: ${response.status}`);
@@ -16823,7 +16838,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
16823
16838
  apiEndpoint: redditProxyUrl,
16824
16839
  dataValidator: validateRedditData,
16825
16840
  onDataUpdate: (data) => {
16826
- if (_optionalChain([data, 'access', _295 => _295[0], 'optionalAccess', _296 => _296.data, 'optionalAccess', _297 => _297.children, 'optionalAccess', _298 => _298[0], 'optionalAccess', _299 => _299.data])) {
16841
+ if (_optionalChain([data, 'access', _297 => _297[0], 'optionalAccess', _298 => _298.data, 'optionalAccess', _299 => _299.children, 'optionalAccess', _300 => _300[0], 'optionalAccess', _301 => _301.data])) {
16827
16842
  setRedditData(data[0].data.children[0].data);
16828
16843
  }
16829
16844
  },
@@ -16894,11 +16909,11 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
16894
16909
  gallery_data: redditData.gallery_data,
16895
16910
  media_metadata: redditData.media_metadata
16896
16911
  });
16897
- const video = _optionalChain([redditData, 'access', _300 => _300.media, 'optionalAccess', _301 => _301.reddit_video]) || _optionalChain([redditData, 'access', _302 => _302.secure_media, 'optionalAccess', _303 => _303.reddit_video]);
16912
+ const video = _optionalChain([redditData, 'access', _302 => _302.media, 'optionalAccess', _303 => _303.reddit_video]) || _optionalChain([redditData, 'access', _304 => _304.secure_media, 'optionalAccess', _305 => _305.reddit_video]);
16898
16913
  if (video && video.fallback_url) {
16899
16914
  console.log("\u{1F4F9} Found Reddit video:", video);
16900
16915
  let posterUrl = "";
16901
- if (_optionalChain([redditData, 'access', _304 => _304.preview, 'optionalAccess', _305 => _305.images, 'optionalAccess', _306 => _306[0], 'optionalAccess', _307 => _307.source, 'optionalAccess', _308 => _308.url])) {
16916
+ if (_optionalChain([redditData, 'access', _306 => _306.preview, 'optionalAccess', _307 => _307.images, 'optionalAccess', _308 => _308[0], 'optionalAccess', _309 => _309.source, 'optionalAccess', _310 => _310.url])) {
16902
16917
  posterUrl = redditData.preview.images[0].source.url.replace(/&amp;/g, "&");
16903
16918
  console.log("\u2705 Using preview image as video poster:", posterUrl);
16904
16919
  } else {
@@ -16951,7 +16966,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
16951
16966
  return media;
16952
16967
  }
16953
16968
  }
16954
- if (_optionalChain([redditData, 'access', _309 => _309.preview, 'optionalAccess', _310 => _310.images, 'optionalAccess', _311 => _311[0]]) && !redditData.is_video) {
16969
+ if (_optionalChain([redditData, 'access', _311 => _311.preview, 'optionalAccess', _312 => _312.images, 'optionalAccess', _313 => _313[0]]) && !redditData.is_video) {
16955
16970
  const imageData = redditData.preview.images[0];
16956
16971
  console.log("\u{1F5BC}\uFE0F Found preview image data:", imageData);
16957
16972
  let source = imageData.source;
@@ -16986,7 +17001,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
16986
17001
  } else if (directUrl.match(/\.(mp4|webm|mov|avi)(\?.*)?$/i)) {
16987
17002
  console.log("\u{1F3AC} Found direct video URL");
16988
17003
  let posterUrl = "";
16989
- if (_optionalChain([redditData, 'access', _312 => _312.preview, 'optionalAccess', _313 => _313.images, 'optionalAccess', _314 => _314[0], 'optionalAccess', _315 => _315.source, 'optionalAccess', _316 => _316.url])) {
17004
+ if (_optionalChain([redditData, 'access', _314 => _314.preview, 'optionalAccess', _315 => _315.images, 'optionalAccess', _316 => _316[0], 'optionalAccess', _317 => _317.source, 'optionalAccess', _318 => _318.url])) {
16990
17005
  posterUrl = redditData.preview.images[0].source.url.replace(/&amp;/g, "&");
16991
17006
  }
16992
17007
  media.push({
@@ -16999,7 +17014,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
16999
17014
  });
17000
17015
  } else if (directUrl.includes("imgur.com") && !directUrl.includes(".gifv")) {
17001
17016
  console.log("\u{1F310} Found Imgur link");
17002
- const imgurId = _optionalChain([directUrl, 'access', _317 => _317.match, 'call', _318 => _318(/imgur\.com\/([a-zA-Z0-9]+)/), 'optionalAccess', _319 => _319[1]]);
17017
+ const imgurId = _optionalChain([directUrl, 'access', _319 => _319.match, 'call', _320 => _320(/imgur\.com\/([a-zA-Z0-9]+)/), 'optionalAccess', _321 => _321[1]]);
17003
17018
  if (imgurId && !directUrl.includes("/a/") && !directUrl.includes("/gallery/")) {
17004
17019
  media.push({
17005
17020
  type: "image",
@@ -17148,7 +17163,7 @@ function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }) {
17148
17163
  const [loading, setLoading] = _react.useState.call(void 0, true);
17149
17164
  const [error, setError] = _react.useState.call(void 0, null);
17150
17165
  const initializationDone = _react.useRef.call(void 0, false);
17151
- const extractedTweetId = tweetId || _optionalChain([url, 'access', _320 => _320.match, 'call', _321 => _321(/status\/(\d+)/), 'optionalAccess', _322 => _322[1]]);
17166
+ const extractedTweetId = tweetId || _optionalChain([url, 'access', _322 => _322.match, 'call', _323 => _323(/status\/(\d+)/), 'optionalAccess', _324 => _324[1]]);
17152
17167
  const tweetUrl = url.includes("twitter.com") || url.includes("x.com") ? url : `https://twitter.com/twitter/status/${extractedTweetId}`;
17153
17168
  _react.useEffect.call(void 0, () => {
17154
17169
  if (initializationDone.current) return;
@@ -17215,10 +17230,10 @@ function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }) {
17215
17230
  const parser = new DOMParser();
17216
17231
  const doc = parser.parseFromString(tweetData.html, "text/html");
17217
17232
  const blockquote = doc.querySelector("blockquote");
17218
- const fullText = _optionalChain([blockquote, 'optionalAccess', _323 => _323.textContent]) || "";
17233
+ const fullText = _optionalChain([blockquote, 'optionalAccess', _325 => _325.textContent]) || "";
17219
17234
  const tweetText = fullText.replace(/- .* \(@.*\).*$/, "").trim();
17220
17235
  const username = tweetData.author_url ? tweetData.author_url.split("/").pop() : "";
17221
- const links = Array.from(_optionalChain([blockquote, 'optionalAccess', _324 => _324.querySelectorAll, 'call', _325 => _325("a")]) || []).map((link) => ({
17236
+ const links = Array.from(_optionalChain([blockquote, 'optionalAccess', _326 => _326.querySelectorAll, 'call', _327 => _327("a")]) || []).map((link) => ({
17222
17237
  url: link.href,
17223
17238
  text: link.textContent || link.href
17224
17239
  })).filter((link) => !link.url.includes("twitter.com") && !link.url.includes("x.com"));
@@ -17473,7 +17488,7 @@ var OGLinkPreview = ({
17473
17488
  const response = await fetch(endpoint);
17474
17489
  if (response.ok) {
17475
17490
  const data = await response.json();
17476
- if (_optionalChain([data, 'optionalAccess', _326 => _326.title]) && data.title !== "Link Preview Unavailable") {
17491
+ if (_optionalChain([data, 'optionalAccess', _328 => _328.title]) && data.title !== "Link Preview Unavailable") {
17477
17492
  setOgData(data);
17478
17493
  } else {
17479
17494
  setError(true);
@@ -17500,8 +17515,8 @@ var OGLinkPreview = ({
17500
17515
  type: "website",
17501
17516
  favicon: `https://www.google.com/s2/favicons?domain=${domain}&sz=32`
17502
17517
  } : null)));
17503
- const placeholderImageUrl = enablePlaceholder && buildPlaceholderUrl && _optionalChain([effectiveData, 'optionalAccess', _327 => _327.title]) ? buildPlaceholderUrl(effectiveData.title, effectiveData.siteName || domain) : null;
17504
- const resolvedImageUrl = _optionalChain([effectiveData, 'optionalAccess', _328 => _328.image]) && !imageError ? effectiveData.image : _optionalChain([effectiveData, 'optionalAccess', _329 => _329.originalImage]) && !originalImageError ? effectiveData.originalImage : fallbackImage && !fallbackImageError ? fallbackImage : placeholderImageUrl;
17518
+ const placeholderImageUrl = enablePlaceholder && buildPlaceholderUrl && _optionalChain([effectiveData, 'optionalAccess', _329 => _329.title]) ? buildPlaceholderUrl(effectiveData.title, effectiveData.siteName || domain) : null;
17519
+ const resolvedImageUrl = _optionalChain([effectiveData, 'optionalAccess', _330 => _330.image]) && !imageError ? effectiveData.image : _optionalChain([effectiveData, 'optionalAccess', _331 => _331.originalImage]) && !originalImageError ? effectiveData.originalImage : fallbackImage && !fallbackImageError ? fallbackImage : placeholderImageUrl;
17505
17520
  const hasImage = !!resolvedImageUrl;
17506
17521
  const isFallbackImage = resolvedImageUrl === fallbackImage;
17507
17522
  const isPlaceholder = resolvedImageUrl === placeholderImageUrl && !isFallbackImage;
@@ -17747,9 +17762,9 @@ function toFigmaEmbedUrl(url, opts) {
17747
17762
  if (match2) {
17748
17763
  const [, urlType, fileKey, titleSlug, queryString] = match2;
17749
17764
  const isSlides = urlType === "slides" || urlType === "deck";
17750
- const embedType = urlType === "proto" ? "proto" : isSlides ? _optionalChain([opts, 'optionalAccess', _330 => _330.slidesView]) === "browse" ? "slides" : "deck" : "design";
17765
+ const embedType = urlType === "proto" ? "proto" : isSlides ? _optionalChain([opts, 'optionalAccess', _332 => _332.slidesView]) === "browse" ? "slides" : "deck" : "design";
17751
17766
  const pathSuffix = titleSlug ? `/${titleSlug}` : "";
17752
- const params = new URLSearchParams(_optionalChain([queryString, 'optionalAccess', _331 => _331.replace, 'call', _332 => _332(/^\?/, "")]) || "");
17767
+ const params = new URLSearchParams(_optionalChain([queryString, 'optionalAccess', _333 => _333.replace, 'call', _334 => _334(/^\?/, "")]) || "");
17753
17768
  if (!params.has("embed-host")) {
17754
17769
  params.set("embed-host", "flamingo");
17755
17770
  }
@@ -17830,7 +17845,7 @@ function EmbedIframe({
17830
17845
  allow,
17831
17846
  referrerPolicy,
17832
17847
  loading,
17833
- allowFullScreen: _optionalChain([allow, 'optionalAccess', _333 => _333.includes, 'call', _334 => _334("fullscreen")]) ? void 0 : allowFullScreen
17848
+ allowFullScreen: _optionalChain([allow, 'optionalAccess', _335 => _335.includes, 'call', _336 => _336("fullscreen")]) ? void 0 : allowFullScreen
17834
17849
  },
17835
17850
  src
17836
17851
  )
@@ -18581,7 +18596,7 @@ var RichMarkdownInner = ({
18581
18596
  const extractText2 = (node) => {
18582
18597
  if (typeof node === "string") return node;
18583
18598
  if (Array.isArray(node)) return node.map(extractText2).join("");
18584
- if (_optionalChain([node, 'optionalAccess', _335 => _335.props, 'optionalAccess', _336 => _336.children])) return extractText2(node.props.children);
18599
+ if (_optionalChain([node, 'optionalAccess', _337 => _337.props, 'optionalAccess', _338 => _338.children])) return extractText2(node.props.children);
18585
18600
  return "";
18586
18601
  };
18587
18602
  const text = extractText2(children);
@@ -18597,7 +18612,7 @@ var RichMarkdownInner = ({
18597
18612
  const extractText2 = (node) => {
18598
18613
  if (typeof node === "string") return node;
18599
18614
  if (Array.isArray(node)) return node.map(extractText2).join("");
18600
- if (_optionalChain([node, 'optionalAccess', _337 => _337.props, 'optionalAccess', _338 => _338.children])) return extractText2(node.props.children);
18615
+ if (_optionalChain([node, 'optionalAccess', _339 => _339.props, 'optionalAccess', _340 => _340.children])) return extractText2(node.props.children);
18601
18616
  return "";
18602
18617
  };
18603
18618
  const text = extractText2(children);
@@ -18615,7 +18630,7 @@ var RichMarkdownInner = ({
18615
18630
  const extractText2 = (node) => {
18616
18631
  if (typeof node === "string") return node;
18617
18632
  if (Array.isArray(node)) return node.map(extractText2).join("");
18618
- if (_optionalChain([node, 'optionalAccess', _339 => _339.props, 'optionalAccess', _340 => _340.children])) return extractText2(node.props.children);
18633
+ if (_optionalChain([node, 'optionalAccess', _341 => _341.props, 'optionalAccess', _342 => _342.children])) return extractText2(node.props.children);
18619
18634
  return "";
18620
18635
  };
18621
18636
  const text = extractText2(children);
@@ -18633,7 +18648,7 @@ var RichMarkdownInner = ({
18633
18648
  const extractText2 = (node) => {
18634
18649
  if (typeof node === "string") return node;
18635
18650
  if (Array.isArray(node)) return node.map(extractText2).join("");
18636
- if (_optionalChain([node, 'optionalAccess', _341 => _341.props, 'optionalAccess', _342 => _342.children])) return extractText2(node.props.children);
18651
+ if (_optionalChain([node, 'optionalAccess', _343 => _343.props, 'optionalAccess', _344 => _344.children])) return extractText2(node.props.children);
18637
18652
  return "";
18638
18653
  };
18639
18654
  const text = extractText2(children);
@@ -18651,7 +18666,7 @@ var RichMarkdownInner = ({
18651
18666
  const extractText2 = (node) => {
18652
18667
  if (typeof node === "string") return node;
18653
18668
  if (Array.isArray(node)) return node.map(extractText2).join("");
18654
- if (_optionalChain([node, 'optionalAccess', _343 => _343.props, 'optionalAccess', _344 => _344.children])) return extractText2(node.props.children);
18669
+ if (_optionalChain([node, 'optionalAccess', _345 => _345.props, 'optionalAccess', _346 => _346.children])) return extractText2(node.props.children);
18655
18670
  return "";
18656
18671
  };
18657
18672
  const text = extractText2(children);
@@ -18669,7 +18684,7 @@ var RichMarkdownInner = ({
18669
18684
  const extractText2 = (node) => {
18670
18685
  if (typeof node === "string") return node;
18671
18686
  if (Array.isArray(node)) return node.map(extractText2).join("");
18672
- if (_optionalChain([node, 'optionalAccess', _345 => _345.props, 'optionalAccess', _346 => _346.children])) return extractText2(node.props.children);
18687
+ if (_optionalChain([node, 'optionalAccess', _347 => _347.props, 'optionalAccess', _348 => _348.children])) return extractText2(node.props.children);
18673
18688
  return "";
18674
18689
  };
18675
18690
  const text = extractText2(children);
@@ -18745,8 +18760,8 @@ var RichMarkdownInner = ({
18745
18760
  {
18746
18761
  href,
18747
18762
  className: `text-ods-accent no-underline relative transition-colors duration-200 hover:after:w-full after:content-[''] after:absolute after:w-0 after:h-0.5 after:-bottom-0.5 after:left-0 after:bg-ods-accent after:transition-all after:duration-300 ${className2 || ""}`,
18748
- target: _optionalChain([href, 'optionalAccess', _347 => _347.startsWith, 'call', _348 => _348("http")]) ? "_blank" : void 0,
18749
- rel: _optionalChain([href, 'optionalAccess', _349 => _349.startsWith, 'call', _350 => _350("http")]) ? "noopener noreferrer" : void 0,
18763
+ target: _optionalChain([href, 'optionalAccess', _349 => _349.startsWith, 'call', _350 => _350("http")]) ? "_blank" : void 0,
18764
+ rel: _optionalChain([href, 'optionalAccess', _351 => _351.startsWith, 'call', _352 => _352("http")]) ? "noopener noreferrer" : void 0,
18750
18765
  children
18751
18766
  }
18752
18767
  );
@@ -18870,7 +18885,7 @@ function ReleaseChangelogSection({
18870
18885
  className: "overflow-hidden transition-[max-height] duration-500",
18871
18886
  style: {
18872
18887
  transitionTimingFunction: "cubic-bezier(0.33, 1, 0.68, 1)",
18873
- maxHeight: previewExpanded || !previewNeedsFade ? _nullishCoalesce(_optionalChain([previewContentRef, 'access', _351 => _351.current, 'optionalAccess', _352 => _352.scrollHeight]), () => ( 2e3)) : PREVIEW_COLLAPSED_HEIGHT,
18888
+ maxHeight: previewExpanded || !previewNeedsFade ? _nullishCoalesce(_optionalChain([previewContentRef, 'access', _353 => _353.current, 'optionalAccess', _354 => _354.scrollHeight]), () => ( 2e3)) : PREVIEW_COLLAPSED_HEIGHT,
18874
18889
  ...previewNeedsFade && !previewExpanded ? {
18875
18890
  maskImage: "linear-gradient(to bottom, black 30%, transparent 100%)",
18876
18891
  WebkitMaskImage: "linear-gradient(to bottom, black 30%, transparent 100%)"
@@ -19307,16 +19322,16 @@ function FilterModal({
19307
19322
  };
19308
19323
  const handleReset = () => {
19309
19324
  onFilterChange({});
19310
- _optionalChain([onTagsChange, 'optionalCall', _353 => _353([])]);
19325
+ _optionalChain([onTagsChange, 'optionalCall', _355 => _355([])]);
19311
19326
  onClose();
19312
19327
  };
19313
19328
  const handleApply = () => {
19314
19329
  onFilterChange(selectedFilters);
19315
- _optionalChain([onTagsChange, 'optionalCall', _354 => _354(pendingTags)]);
19330
+ _optionalChain([onTagsChange, 'optionalCall', _356 => _356(pendingTags)]);
19316
19331
  onClose();
19317
19332
  };
19318
19333
  const getColumnDirection = (columnKey) => {
19319
- return _optionalChain([sortConfig, 'optionalAccess', _355 => _355.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
19334
+ return _optionalChain([sortConfig, 'optionalAccess', _357 => _357.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
19320
19335
  };
19321
19336
  const hasSort = !!sortConfig && sortConfig.columns.length > 0;
19322
19337
  const hasFilterGroups = filterGroups.length > 0;
@@ -19365,7 +19380,7 @@ function FilterModal({
19365
19380
  {
19366
19381
  column,
19367
19382
  currentDirection: getColumnDirection(column.key),
19368
- onSort: (direction) => _optionalChain([onSort, 'optionalCall', _356 => _356(column.key, direction)]),
19383
+ onSort: (direction) => _optionalChain([onSort, 'optionalCall', _358 => _358(column.key, direction)]),
19369
19384
  onClear: onSortClear ? () => onSortClear(column.key) : void 0
19370
19385
  },
19371
19386
  column.key
@@ -19551,7 +19566,7 @@ function IconButtonsVariant({
19551
19566
  }) {
19552
19567
  const desktopActions = actions.filter((a) => !a.showOnlyMobile);
19553
19568
  const hasMenuActions = !!menuActions && menuActions.some((g) => g.items.length > 0);
19554
- const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _357 => _357[0], 'access', _358 => _358.submenu, 'optionalAccess', _359 => _359.length]);
19569
+ const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _359 => _359[0], 'access', _360 => _360.submenu, 'optionalAccess', _361 => _361.length]);
19555
19570
  const singleAction = isSingleAction ? actions[0] : null;
19556
19571
  const useSingleActionMobile = isSingleAction && !hasMenuActions;
19557
19572
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -19983,6 +19998,15 @@ function EntityImage({ src, alt, fallbackText, className }) {
19983
19998
  // src/components/layout/title-block.tsx
19984
19999
 
19985
20000
  var TITLE_BLOCK_MIN_HEIGHT = "min-h-11 md:min-h-12";
20001
+ function TitleTextSkeleton({ widthClass, heightClass }) {
20002
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20003
+ "span",
20004
+ {
20005
+ "aria-hidden": true,
20006
+ className: _chunkFIG2RKZFcjs.cn.call(void 0, "inline-block max-w-full rounded-md bg-ods-border animate-pulse", widthClass, heightClass)
20007
+ }
20008
+ );
20009
+ }
19986
20010
  function TitleBlock({
19987
20011
  title,
19988
20012
  subtitle,
@@ -19994,7 +20018,9 @@ function TitleBlock({
19994
20018
  selector,
19995
20019
  variant = "plain",
19996
20020
  className,
19997
- titleSize = "h2"
20021
+ titleSize = "h2",
20022
+ titleAdornment,
20023
+ loading
19998
20024
  }) {
19999
20025
  const hasActions = actions && actions.length > 0;
20000
20026
  const hasMenuActions = !!menuActions && menuActions.some((g) => g.items.length > 0);
@@ -20025,7 +20051,7 @@ function TitleBlock({
20025
20051
  className: "hidden md:inline-flex"
20026
20052
  }
20027
20053
  ),
20028
- image || subtitle ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-m)] min-w-0 w-full", children: [
20054
+ image || subtitle || loading ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-m)] min-w-0 w-full", children: [
20029
20055
  image && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20030
20056
  EntityImage,
20031
20057
  {
@@ -20035,10 +20061,16 @@ function TitleBlock({
20035
20061
  }
20036
20062
  ),
20037
20063
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col justify-center min-w-0 flex-1", children: [
20038
- title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: _chunkFIG2RKZFcjs.cn.call(void 0, titleClass, "text-ods-text-primary truncate"), title, children: title }),
20039
- subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-secondary truncate", title: subtitle, children: subtitle })
20064
+ (loading || title) && (titleAdornment ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-m)] min-w-0 w-full", children: [
20065
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: _chunkFIG2RKZFcjs.cn.call(void 0, titleClass, "text-ods-text-primary truncate min-w-0"), title, children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TitleTextSkeleton, { widthClass: "w-48 md:w-72", heightClass: "h-4 md:h-6" }) : title }),
20066
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
20067
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: _chunkFIG2RKZFcjs.cn.call(void 0, titleClass, "text-ods-text-primary truncate"), title, children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TitleTextSkeleton, { widthClass: "w-48 md:w-72", heightClass: "h-4 md:h-6" }) : title })),
20068
+ subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-secondary truncate", title: subtitle, children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TitleTextSkeleton, { widthClass: "w-28 md:w-36", heightClass: "h-2.5 md:h-3" }) : subtitle })
20040
20069
  ] })
20041
- ] }) : title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: _chunkFIG2RKZFcjs.cn.call(void 0, titleClass, "text-ods-text-primary"), children: title })
20070
+ ] }) : title && (titleAdornment ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-m)] min-w-0 w-full", children: [
20071
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: _chunkFIG2RKZFcjs.cn.call(void 0, titleClass, "text-ods-text-primary truncate min-w-0"), title, children: title }),
20072
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
20073
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: _chunkFIG2RKZFcjs.cn.call(void 0, titleClass, "text-ods-text-primary"), children: title }))
20042
20074
  ] }),
20043
20075
  (hasActions || hasMenuActions || selector) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex gap-2 items-center shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20044
20076
  PageActions,
@@ -20070,11 +20102,13 @@ function PageLayout({
20070
20102
  className,
20071
20103
  contentClassName,
20072
20104
  showHeader = true,
20073
- titleSize
20105
+ titleSize,
20106
+ titleAdornment,
20107
+ loading
20074
20108
  }) {
20075
20109
  const hasActions = actions && actions.length > 0;
20076
20110
  const needsBottomPadding = hasActions && actionsVariant === "primary-buttons";
20077
- const hasHeader = showHeader && (title || subtitle || image || backButton || hasActions || selector);
20111
+ const hasHeader = showHeader && (title || subtitle || image || backButton || hasActions || selector || loading);
20078
20112
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col w-full", className), children: [
20079
20113
  hasHeader && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20080
20114
  TitleBlock,
@@ -20088,7 +20122,9 @@ function PageLayout({
20088
20122
  menuActions,
20089
20123
  selector,
20090
20124
  variant: headerVariant,
20091
- titleSize
20125
+ titleSize,
20126
+ titleAdornment,
20127
+ loading
20092
20128
  }
20093
20129
  ),
20094
20130
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col flex-1 gap-[var(--spacing-system-l)]", needsBottomPadding && "pb-28 md:pb-0", contentClassName), children })
@@ -20752,7 +20788,7 @@ function getShellIcon(shellType) {
20752
20788
  if (!shellType) return void 0;
20753
20789
  const normalized = shellType.toUpperCase();
20754
20790
  const shellDef = SHELL_TYPES.find((s) => s.id === normalized);
20755
- return _optionalChain([shellDef, 'optionalAccess', _360 => _360.icon]);
20791
+ return _optionalChain([shellDef, 'optionalAccess', _362 => _362.icon]);
20756
20792
  }
20757
20793
 
20758
20794
  // src/types/os.types.ts
@@ -20825,7 +20861,7 @@ function getOSIcon(osType) {
20825
20861
  const normalized = normalizeOSType(osType);
20826
20862
  if (!normalized) return void 0;
20827
20863
  const osTypeDef = OS_TYPES.find((t) => t.id === normalized);
20828
- return _optionalChain([osTypeDef, 'optionalAccess', _361 => _361.icon]);
20864
+ return _optionalChain([osTypeDef, 'optionalAccess', _363 => _363.icon]);
20829
20865
  }
20830
20866
  function getOSTypeDefinition(osType) {
20831
20867
  if (!osType) return void 0;
@@ -20835,7 +20871,7 @@ function getOSTypeDefinition(osType) {
20835
20871
  }
20836
20872
  function getOSPlatformId(osType) {
20837
20873
  const osTypeDef = getOSTypeDefinition(osType);
20838
- return _optionalChain([osTypeDef, 'optionalAccess', _362 => _362.platformId]);
20874
+ return _optionalChain([osTypeDef, 'optionalAccess', _364 => _364.platformId]);
20839
20875
  }
20840
20876
  function isOSPlatform(deviceOS, targetPlatform) {
20841
20877
  if (!deviceOS || !targetPlatform) return false;
@@ -20928,10 +20964,10 @@ var GENERIC_EMAIL_DOMAINS = [
20928
20964
  ];
20929
20965
  function extractDomainFromEmail(email) {
20930
20966
  if (!email || !email.includes("@")) return null;
20931
- return _optionalChain([email, 'access', _363 => _363.split, 'call', _364 => _364("@"), 'access', _365 => _365[1], 'optionalAccess', _366 => _366.toLowerCase, 'call', _367 => _367()]) || null;
20967
+ return _optionalChain([email, 'access', _365 => _365.split, 'call', _366 => _366("@"), 'access', _367 => _367[1], 'optionalAccess', _368 => _368.toLowerCase, 'call', _369 => _369()]) || null;
20932
20968
  }
20933
20969
  function normalizeDomain(domain) {
20934
- return _optionalChain([domain, 'optionalAccess', _368 => _368.toLowerCase, 'call', _369 => _369(), 'access', _370 => _370.replace, 'call', _371 => _371(/^https?:\/\//, ""), 'access', _372 => _372.replace, 'call', _373 => _373(/^www\./, ""), 'access', _374 => _374.split, 'call', _375 => _375("/"), 'access', _376 => _376[0], 'access', _377 => _377.trim, 'call', _378 => _378()]) || "";
20970
+ return _optionalChain([domain, 'optionalAccess', _370 => _370.toLowerCase, 'call', _371 => _371(), 'access', _372 => _372.replace, 'call', _373 => _373(/^https?:\/\//, ""), 'access', _374 => _374.replace, 'call', _375 => _375(/^www\./, ""), 'access', _376 => _376.split, 'call', _377 => _377("/"), 'access', _378 => _378[0], 'access', _379 => _379.trim, 'call', _380 => _380()]) || "";
20935
20971
  }
20936
20972
  function isGenericDomain(domain) {
20937
20973
  const normalized = normalizeDomain(domain);
@@ -21365,7 +21401,7 @@ function defaultTableIdForDocumentType(documentType) {
21365
21401
 
21366
21402
  // src/utils/sse-decision-frame.ts
21367
21403
  async function readLeadingDecisionFrame(response) {
21368
- const reader = _optionalChain([response, 'access', _379 => _379.body, 'optionalAccess', _380 => _380.getReader, 'call', _381 => _381()]);
21404
+ const reader = _optionalChain([response, 'access', _381 => _381.body, 'optionalAccess', _382 => _382.getReader, 'call', _383 => _383()]);
21369
21405
  if (!reader) throw new Error("readLeadingDecisionFrame: response has no body");
21370
21406
  const decoder = new TextDecoder();
21371
21407
  let buffer = "";
@@ -21394,9 +21430,9 @@ async function readLeadingDecisionFrame(response) {
21394
21430
  );
21395
21431
  }
21396
21432
  const obj = parsed;
21397
- if (_optionalChain([obj, 'optionalAccess', _382 => _382.kind]) !== "decision_resolved") {
21433
+ if (_optionalChain([obj, 'optionalAccess', _384 => _384.kind]) !== "decision_resolved") {
21398
21434
  throw new Error(
21399
- `readLeadingDecisionFrame: expected decision_resolved, got kind=${String(_optionalChain([obj, 'optionalAccess', _383 => _383.kind]))}`
21435
+ `readLeadingDecisionFrame: expected decision_resolved, got kind=${String(_optionalChain([obj, 'optionalAccess', _385 => _385.kind]))}`
21400
21436
  );
21401
21437
  }
21402
21438
  frame = normalizeDecisionFrame(obj);
@@ -21437,7 +21473,7 @@ var AUTO_CONTINUATION_DIRECTIVE_PREFIX = "[internal-auto-continuation]";
21437
21473
  function buildAutoContinuationDirective(toolName, opts = {}) {
21438
21474
  const ticketRef = opts.ticketId ? ` (ticket #${opts.ticketId})` : "";
21439
21475
  const ticketHash = opts.ticketId ? ` #${opts.ticketId}` : "";
21440
- const isClose = toolName === "update_ticket" && _optionalChain([opts, 'access', _384 => _384.status, 'optionalAccess', _385 => _385.toUpperCase, 'call', _386 => _386()]) === "CLOSED";
21476
+ const isClose = toolName === "update_ticket" && _optionalChain([opts, 'access', _386 => _386.status, 'optionalAccess', _387 => _387.toUpperCase, 'call', _388 => _388()]) === "CLOSED";
21441
21477
  if (toolName === "create_ticket") {
21442
21478
  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.`;
21443
21479
  }
@@ -21499,7 +21535,7 @@ function formatSingularLookupInvocation(cmdId, value) {
21499
21535
  return safe ? `/${cmdId} "${safe}"` : `/${cmdId}`;
21500
21536
  }
21501
21537
  function extractEntityIdFilter(override, expectedTableId) {
21502
- const f = _optionalChain([override, 'optionalAccess', _387 => _387.entityIdFilter]);
21538
+ const f = _optionalChain([override, 'optionalAccess', _389 => _389.entityIdFilter]);
21503
21539
  if (!f) return null;
21504
21540
  const tableId = typeof f.tableId === "string" ? f.tableId : "";
21505
21541
  const id = typeof f.id === "string" ? f.id : "";
@@ -21574,7 +21610,7 @@ function getTaskTypeLabel(customItemId) {
21574
21610
 
21575
21611
  // src/components/chat/utils/agent-status-message.ts
21576
21612
  function getStatusColorScheme(status) {
21577
- const s = _optionalChain([status, 'optionalAccess', _388 => _388.toLowerCase, 'call', _389 => _389()]) || "";
21613
+ const s = _optionalChain([status, 'optionalAccess', _390 => _390.toLowerCase, 'call', _391 => _391()]) || "";
21578
21614
  switch (status) {
21579
21615
  case "completed":
21580
21616
  case "success":
@@ -21856,10 +21892,10 @@ var CONTENT_REF_GROUPS = {
21856
21892
  what_i_shipped: { label: "What I Shipped", order: 10, layout: "grid", gridSize: "default" }
21857
21893
  };
21858
21894
  function getContentRefLabel(type) {
21859
- return _nullishCoalesce(_optionalChain([CONTENT_REF_GROUPS, 'access', _390 => _390[type], 'optionalAccess', _391 => _391.label]), () => ( null));
21895
+ return _nullishCoalesce(_optionalChain([CONTENT_REF_GROUPS, 'access', _392 => _392[type], 'optionalAccess', _393 => _393.label]), () => ( null));
21860
21896
  }
21861
21897
  function getContentRefLabelOrTitleCase(type) {
21862
- return _nullishCoalesce(_optionalChain([CONTENT_REF_GROUPS, 'access', _392 => _392[type], 'optionalAccess', _393 => _393.label]), () => ( type.replace(/_/g, " ").replace(/\b\w/g, (ch) => ch.toUpperCase())));
21898
+ return _nullishCoalesce(_optionalChain([CONTENT_REF_GROUPS, 'access', _394 => _394[type], 'optionalAccess', _395 => _395.label]), () => ( type.replace(/_/g, " ").replace(/\b\w/g, (ch) => ch.toUpperCase())));
21863
21899
  }
21864
21900
  function orderContentRefTypes(present) {
21865
21901
  const presentSet = new Set(present);
@@ -22018,7 +22054,7 @@ function getDocSourceDefaultPath(structure, folderIndexFile = DEFAULT_FOLDER_IND
22018
22054
  const firstFolderWithReadme = structure.find(
22019
22055
  (node) => node.type === "folder" && node.hasReadme && !!node.path
22020
22056
  );
22021
- return _nullishCoalesce(_optionalChain([firstFolderWithReadme, 'optionalAccess', _394 => _394.path]), () => ( null));
22057
+ return _nullishCoalesce(_optionalChain([firstFolderWithReadme, 'optionalAccess', _396 => _396.path]), () => ( null));
22022
22058
  }
22023
22059
 
22024
22060
  // src/utils/doc-path-utils.ts
@@ -22029,7 +22065,7 @@ function pathToNodeId(path) {
22029
22065
  return path.replace(/[\/\s]/g, "-").toLowerCase();
22030
22066
  }
22031
22067
  function normalizeDocPath(segments, folderIndexFile = DEFAULT_FOLDER_INDEX_FILE) {
22032
- const lowerPath = (_optionalChain([segments, 'optionalAccess', _395 => _395.join, 'call', _396 => _396("/")]) || "").toLowerCase();
22068
+ const lowerPath = (_optionalChain([segments, 'optionalAccess', _397 => _397.join, 'call', _398 => _398("/")]) || "").toLowerCase();
22033
22069
  const lowerIndex = folderIndexFile.toLowerCase();
22034
22070
  const suffix = `/${lowerIndex}`;
22035
22071
  if (lowerPath.endsWith(suffix)) return lowerPath.slice(0, -suffix.length);
@@ -22890,26 +22926,26 @@ function DeviceCard({
22890
22926
  ] }),
22891
22927
  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 })
22892
22928
  ] }),
22893
- _optionalChain([actions, 'access', _397 => _397.moreButton, 'optionalAccess', _398 => _398.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22929
+ _optionalChain([actions, 'access', _399 => _399.moreButton, 'optionalAccess', _400 => _400.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22894
22930
  "div",
22895
22931
  {
22896
22932
  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",
22897
22933
  onClick: (e) => {
22898
22934
  e.stopPropagation();
22899
- _optionalChain([actions, 'access', _399 => _399.moreButton, 'optionalAccess', _400 => _400.onClick, 'optionalCall', _401 => _401()]);
22935
+ _optionalChain([actions, 'access', _401 => _401.moreButton, 'optionalAccess', _402 => _402.onClick, 'optionalCall', _403 => _403()]);
22900
22936
  },
22901
22937
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
22902
22938
  }
22903
22939
  ),
22904
- _optionalChain([actions, 'access', _402 => _402.detailsButton, 'optionalAccess', _403 => _403.visible]) !== false && _optionalChain([actions, 'access', _404 => _404.detailsButton, 'optionalAccess', _405 => _405.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
22905
- _optionalChain([actions, 'access', _406 => _406.customActions, 'optionalAccess', _407 => _407.map, 'call', _408 => _408(
22940
+ _optionalChain([actions, 'access', _404 => _404.detailsButton, 'optionalAccess', _405 => _405.visible]) !== false && _optionalChain([actions, 'access', _406 => _406.detailsButton, 'optionalAccess', _407 => _407.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
22941
+ _optionalChain([actions, 'access', _408 => _408.customActions, 'optionalAccess', _409 => _409.map, 'call', _410 => _410(
22906
22942
  (action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22907
22943
  "div",
22908
22944
  {
22909
22945
  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",
22910
22946
  onClick: (e) => {
22911
22947
  e.stopPropagation();
22912
- _optionalChain([action, 'access', _409 => _409.onClick, 'optionalCall', _410 => _410()]);
22948
+ _optionalChain([action, 'access', _411 => _411.onClick, 'optionalCall', _412 => _412()]);
22913
22949
  },
22914
22950
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]", children: action.label })
22915
22951
  },
@@ -23409,7 +23445,7 @@ function MoreActionsMenu({
23409
23445
  ] });
23410
23446
  const handleActivate = (e) => {
23411
23447
  e.stopPropagation();
23412
- if (!item.disabled) _optionalChain([item, 'access', _411 => _411.onClick, 'optionalCall', _412 => _412()]);
23448
+ if (!item.disabled) _optionalChain([item, 'access', _413 => _413.onClick, 'optionalCall', _414 => _414()]);
23413
23449
  };
23414
23450
  if (item.href) {
23415
23451
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -23476,7 +23512,7 @@ function OrganizationCard({
23476
23512
  const handleActionClick = (e) => {
23477
23513
  e.preventDefault();
23478
23514
  e.stopPropagation();
23479
- _optionalChain([actionButton, 'optionalAccess', _413 => _413.onClick, 'call', _414 => _414(organization, e)]);
23515
+ _optionalChain([actionButton, 'optionalAccess', _415 => _415.onClick, 'call', _416 => _416(organization, e)]);
23480
23516
  };
23481
23517
  const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23482
23518
  "div",
@@ -24382,10 +24418,10 @@ var getContentDimensions = (config) => {
24382
24418
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
24383
24419
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
24384
24420
  const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
24385
- const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _415 => _415.mobileContentDimensions, 'optionalAccess', _416 => _416.width]))), () => ( defaultMobile.width));
24386
- const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _417 => _417.mobileContentDimensions, 'optionalAccess', _418 => _418.height]))), () => ( defaultMobile.height));
24387
- const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _419 => _419.desktopContentDimensions, 'optionalAccess', _420 => _420.width]))), () => ( defaultDesktop.width));
24388
- const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _421 => _421.desktopContentDimensions, 'optionalAccess', _422 => _422.height]))), () => ( defaultDesktop.height));
24421
+ const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _417 => _417.mobileContentDimensions, 'optionalAccess', _418 => _418.width]))), () => ( defaultMobile.width));
24422
+ const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _419 => _419.mobileContentDimensions, 'optionalAccess', _420 => _420.height]))), () => ( defaultMobile.height));
24423
+ const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _421 => _421.desktopContentDimensions, 'optionalAccess', _422 => _422.width]))), () => ( defaultDesktop.width));
24424
+ const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _423 => _423.desktopContentDimensions, 'optionalAccess', _424 => _424.height]))), () => ( defaultDesktop.height));
24389
24425
  return {
24390
24426
  mobile: { width: mobileWidth, height: mobileHeight },
24391
24427
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -24519,7 +24555,7 @@ function renderUnifiedUI(state, handlers, config, iframeRef) {
24519
24555
  const contentDimensions = getContentDimensions(config);
24520
24556
  const mobileHeight = contentDimensions.mobile.height;
24521
24557
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
24522
- return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _423 => _423.innerHeight]) * 0.85 || 650)}px`;
24558
+ return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _425 => _425.innerHeight]) * 0.85 || 650)}px`;
24523
24559
  })(),
24524
24560
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
24525
24561
  const contentDimensions = getContentDimensions(config);
@@ -24624,7 +24660,7 @@ var FigmaPrototypeViewer = ({
24624
24660
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
24625
24661
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
24626
24662
  const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
24627
- config.defaultSectionId || _optionalChain([config, 'access', _424 => _424.sections, 'access', _425 => _425[0], 'optionalAccess', _426 => _426.id]) || ""
24663
+ config.defaultSectionId || _optionalChain([config, 'access', _426 => _426.sections, 'access', _427 => _427[0], 'optionalAccess', _428 => _428.id]) || ""
24628
24664
  );
24629
24665
  const activeSection = externalActiveSection || internalActiveSection;
24630
24666
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -24714,7 +24750,7 @@ var FigmaPrototypeViewer = ({
24714
24750
  const handleMessage = (event) => {
24715
24751
  if (event.origin !== "https://www.figma.com") return;
24716
24752
  const validEvents = ["INITIAL_LOAD", "NEW_STATE", "PRESENTED_NODE_CHANGED"];
24717
- if (_optionalChain([event, 'access', _427 => _427.data, 'optionalAccess', _428 => _428.type]) && validEvents.includes(event.data.type)) {
24753
+ if (_optionalChain([event, 'access', _429 => _429.data, 'optionalAccess', _430 => _430.type]) && validEvents.includes(event.data.type)) {
24718
24754
  const figmaEvent = event.data;
24719
24755
  console.log("[Figma Event]", figmaEvent.type, viewMode);
24720
24756
  switch (figmaEvent.type) {
@@ -24724,19 +24760,19 @@ var FigmaPrototypeViewer = ({
24724
24760
  setIframeState("READY");
24725
24761
  break;
24726
24762
  case "PRESENTED_NODE_CHANGED":
24727
- if (_optionalChain([figmaEvent, 'access', _429 => _429.data, 'optionalAccess', _430 => _430.presentedNodeId])) {
24763
+ if (_optionalChain([figmaEvent, 'access', _431 => _431.data, 'optionalAccess', _432 => _432.presentedNodeId])) {
24728
24764
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
24729
24765
  if (!isNavigating) {
24730
24766
  const matchingSection = config.sections.find((s) => {
24731
- const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _431 => _431.data, 'optionalAccess', _432 => _432.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _433 => _433.data, 'optionalAccess', _434 => _434.presentedNodeId]);
24732
- const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _435 => _435.data, 'optionalAccess', _436 => _436.presentedNodeId]) || _optionalChain([s, 'access', _437 => _437.mobileStartingNodeId, 'optionalAccess', _438 => _438.replace, 'call', _439 => _439(":", "-")]) === _optionalChain([figmaEvent, 'access', _440 => _440.data, 'optionalAccess', _441 => _441.presentedNodeId]);
24767
+ const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _433 => _433.data, 'optionalAccess', _434 => _434.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _435 => _435.data, 'optionalAccess', _436 => _436.presentedNodeId]);
24768
+ const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _437 => _437.data, 'optionalAccess', _438 => _438.presentedNodeId]) || _optionalChain([s, 'access', _439 => _439.mobileStartingNodeId, 'optionalAccess', _440 => _440.replace, 'call', _441 => _441(":", "-")]) === _optionalChain([figmaEvent, 'access', _442 => _442.data, 'optionalAccess', _443 => _443.presentedNodeId]);
24733
24769
  return desktopMatch || mobileMatch;
24734
24770
  });
24735
24771
  if (matchingSection && matchingSection.id !== activeSection) {
24736
24772
  if (!externalActiveSection) {
24737
24773
  setInternalActiveSection(matchingSection.id);
24738
24774
  }
24739
- _optionalChain([config, 'access', _442 => _442.onSectionChange, 'optionalCall', _443 => _443(matchingSection.id)]);
24775
+ _optionalChain([config, 'access', _444 => _444.onSectionChange, 'optionalCall', _445 => _445(matchingSection.id)]);
24740
24776
  }
24741
24777
  }
24742
24778
  }
@@ -24749,7 +24785,7 @@ var FigmaPrototypeViewer = ({
24749
24785
  }, [config.sections, activeSection, isNavigating, externalActiveSection, config.onSectionChange, viewMode]);
24750
24786
  const navigateToSection = _react.useCallback.call(void 0, (sectionId) => {
24751
24787
  const section = config.sections.find((s) => s.id === sectionId);
24752
- if (!section || !_optionalChain([iframeRef, 'access', _444 => _444.current, 'optionalAccess', _445 => _445.contentWindow]) || !isInitialized) {
24788
+ if (!section || !_optionalChain([iframeRef, 'access', _446 => _446.current, 'optionalAccess', _447 => _447.contentWindow]) || !isInitialized) {
24753
24789
  return;
24754
24790
  }
24755
24791
  setIsNavigating(true);
@@ -24757,7 +24793,7 @@ var FigmaPrototypeViewer = ({
24757
24793
  if (!externalActiveSection) {
24758
24794
  setInternalActiveSection(sectionId);
24759
24795
  }
24760
- _optionalChain([config, 'access', _446 => _446.onSectionChange, 'optionalCall', _447 => _447(sectionId)]);
24796
+ _optionalChain([config, 'access', _448 => _448.onSectionChange, 'optionalCall', _449 => _449(sectionId)]);
24761
24797
  const command = {
24762
24798
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
24763
24799
  data: { nodeId }
@@ -25077,7 +25113,7 @@ var FiltersDropdown = ({
25077
25113
  defaults[section.id] = section.defaultSelected || [];
25078
25114
  });
25079
25115
  setSelectedFilters(defaults);
25080
- _optionalChain([onReset, 'optionalCall', _448 => _448()]);
25116
+ _optionalChain([onReset, 'optionalCall', _450 => _450()]);
25081
25117
  setIsOpen(false);
25082
25118
  };
25083
25119
  const handleApply = () => {
@@ -25370,7 +25406,7 @@ function MediaGalleryManager({
25370
25406
  const [deletingIndex, setDeletingIndex] = _react.useState.call(void 0, null);
25371
25407
  const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
25372
25408
  const handleFileSelect = _react.useCallback.call(void 0, async (event) => {
25373
- const file = _optionalChain([event, 'access', _449 => _449.target, 'access', _450 => _450.files, 'optionalAccess', _451 => _451[0]]);
25409
+ const file = _optionalChain([event, 'access', _451 => _451.target, 'access', _452 => _452.files, 'optionalAccess', _453 => _453[0]]);
25374
25410
  if (!file) return;
25375
25411
  let mediaType;
25376
25412
  if (file.type.startsWith("image/")) {
@@ -25485,7 +25521,7 @@ function MediaGalleryManager({
25485
25521
  {
25486
25522
  type: "button",
25487
25523
  variant: "outline",
25488
- onClick: () => _optionalChain([fileInputRef, 'access', _452 => _452.current, 'optionalAccess', _453 => _453.click, 'call', _454 => _454()]),
25524
+ onClick: () => _optionalChain([fileInputRef, 'access', _454 => _454.current, 'optionalAccess', _455 => _455.click, 'call', _456 => _456()]),
25489
25525
  disabled: isUploading,
25490
25526
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
25491
25527
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -26153,7 +26189,7 @@ function ReleaseMediaManager({
26153
26189
  const fileInputRef = _react.useRef.call(void 0, null);
26154
26190
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
26155
26191
  const handleFileSelect = async (event) => {
26156
- const file = _optionalChain([event, 'access', _455 => _455.target, 'access', _456 => _456.files, 'optionalAccess', _457 => _457[0]]);
26192
+ const file = _optionalChain([event, 'access', _457 => _457.target, 'access', _458 => _458.files, 'optionalAccess', _459 => _459[0]]);
26157
26193
  if (!file) return;
26158
26194
  let mediaType;
26159
26195
  if (file.type.startsWith("image/")) {
@@ -26233,7 +26269,7 @@ function ReleaseMediaManager({
26233
26269
  {
26234
26270
  type: "button",
26235
26271
  variant: "outline",
26236
- onClick: () => _optionalChain([fileInputRef, 'access', _458 => _458.current, 'optionalAccess', _459 => _459.click, 'call', _460 => _460()]),
26272
+ onClick: () => _optionalChain([fileInputRef, 'access', _460 => _460.current, 'optionalAccess', _461 => _461.click, 'call', _462 => _462()]),
26237
26273
  disabled: uploadingIndex !== null,
26238
26274
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
26239
26275
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -26448,7 +26484,7 @@ function SEOEditorPreview({
26448
26484
  const displayImage = hasOgImage || hasFeaturedImage;
26449
26485
  const handleImageUpload = async (event) => {
26450
26486
  if (!onOgImageUpload) return;
26451
- const file = _optionalChain([event, 'access', _461 => _461.target, 'access', _462 => _462.files, 'optionalAccess', _463 => _463[0]]);
26487
+ const file = _optionalChain([event, 'access', _463 => _463.target, 'access', _464 => _464.files, 'optionalAccess', _465 => _465[0]]);
26452
26488
  if (!file) return;
26453
26489
  setIsUploading(true);
26454
26490
  try {
@@ -26589,7 +26625,7 @@ function SEOEditorPreview({
26589
26625
  type: "button",
26590
26626
  variant: "outline",
26591
26627
  size: "icon",
26592
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _464 => _464.click, 'call', _465 => _465()]),
26628
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _466 => _466.click, 'call', _467 => _467()]),
26593
26629
  disabled: disabled || isUploading,
26594
26630
  className: "bg-white text-black hover:bg-gray-100 rounded-full opacity-0 group-hover:opacity-100",
26595
26631
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -26612,7 +26648,7 @@ function SEOEditorPreview({
26612
26648
  "div",
26613
26649
  {
26614
26650
  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",
26615
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _466 => _466.click, 'call', _467 => _467()]),
26651
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _468 => _468.click, 'call', _469 => _469()]),
26616
26652
  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: [
26617
26653
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-8 w-8 text-ods-text-secondary mb-2" }),
26618
26654
  /* @__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" })
@@ -26699,7 +26735,7 @@ function SocialLinksManager({
26699
26735
  className = ""
26700
26736
  }) {
26701
26737
  const addLink = () => {
26702
- const firstPlatform = _optionalChain([platforms, 'access', _468 => _468[0], 'optionalAccess', _469 => _469.name]) || "website";
26738
+ const firstPlatform = _optionalChain([platforms, 'access', _470 => _470[0], 'optionalAccess', _471 => _471.name]) || "website";
26703
26739
  onChange([...links, { platform: firstPlatform, url: "" }]);
26704
26740
  };
26705
26741
  const removeLink = (index) => {
@@ -26711,7 +26747,7 @@ function SocialLinksManager({
26711
26747
  onChange(updated);
26712
26748
  };
26713
26749
  const getIcon = (link, platform) => {
26714
- const iconKey = _optionalChain([platform, 'optionalAccess', _470 => _470.icon_name]) || link.platform;
26750
+ const iconKey = _optionalChain([platform, 'optionalAccess', _472 => _472.icon_name]) || link.platform;
26715
26751
  const IconComponent = iconMap[iconKey];
26716
26752
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "w-5 h-5 text-ods-text-secondary" }) : null;
26717
26753
  };
@@ -26736,7 +26772,7 @@ function SocialLinksManager({
26736
26772
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26737
26773
  _chunkQJGRP2YEcjs.Input,
26738
26774
  {
26739
- placeholder: _optionalChain([platform, 'optionalAccess', _471 => _471.placeholder]) || "Profile URL",
26775
+ placeholder: _optionalChain([platform, 'optionalAccess', _473 => _473.placeholder]) || "Profile URL",
26740
26776
  value: link.url,
26741
26777
  onChange: (e) => updateLink(index, "url", e.target.value),
26742
26778
  onKeyDown: (e) => {
@@ -27129,7 +27165,7 @@ function useVideoOriginPreconnect({
27129
27165
  supabaseStorageOrigin
27130
27166
  } = {}) {
27131
27167
  const runtime = _chunkN2DVKXN4cjs.useChatRuntime.call(void 0, );
27132
- const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _472 => _472.endpoints, 'access', _473 => _473.supabaseStorageOrigin])));
27168
+ const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _474 => _474.endpoints, 'access', _475 => _475.supabaseStorageOrigin])));
27133
27169
  try {
27134
27170
  ReactDOM2.default.preconnect(MUX_STREAM_ORIGIN, { crossOrigin: "anonymous" });
27135
27171
  ReactDOM2.default.preconnect(MUX_IMAGE_ORIGIN, { crossOrigin: "anonymous" });
@@ -27148,13 +27184,13 @@ function useVideoWarmup({
27148
27184
  nearMargin = "1000px"
27149
27185
  } = {}) {
27150
27186
  const runtime = _chunkN2DVKXN4cjs.useChatRuntime.call(void 0, );
27151
- const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _474 => _474.endpoints, 'access', _475 => _475.supabaseStorageOrigin])));
27187
+ const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _476 => _476.endpoints, 'access', _477 => _477.supabaseStorageOrigin])));
27152
27188
  useVideoOriginPreconnect({ supabaseStorageOrigin: resolvedOrigin });
27153
27189
  const { ref, isNear } = _chunkDCIB6AK3cjs.useNearViewport.call(void 0, nearMargin);
27154
27190
  _react.useEffect.call(void 0, () => {
27155
27191
  if (!isNear || !videoUrl || !resolvedOrigin) return;
27156
27192
  const conn = navigator.connection;
27157
- if (_optionalChain([conn, 'optionalAccess', _476 => _476.saveData]) === true) return;
27193
+ if (_optionalChain([conn, 'optionalAccess', _478 => _478.saveData]) === true) return;
27158
27194
  let videoOrigin;
27159
27195
  try {
27160
27196
  videoOrigin = new URL(videoUrl, "http://placeholder.local").origin;
@@ -27224,7 +27260,7 @@ function VideoSourceSelector({
27224
27260
  input.accept = "video/*";
27225
27261
  input.onchange = async (e) => {
27226
27262
  const target = e.target;
27227
- const file = _optionalChain([target, 'access', _477 => _477.files, 'optionalAccess', _478 => _478[0]]);
27263
+ const file = _optionalChain([target, 'access', _479 => _479.files, 'optionalAccess', _480 => _480[0]]);
27228
27264
  if (!file) return;
27229
27265
  setIsUploading(true);
27230
27266
  setUploadProgress(0);
@@ -27573,7 +27609,7 @@ function TranscriptSummaryEditor({
27573
27609
  {
27574
27610
  id: "subtitles",
27575
27611
  value: subtitles || "",
27576
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _479 => _479(e.target.value)]),
27612
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _481 => _481(e.target.value)]),
27577
27613
  placeholder: subtitlesPlaceholder,
27578
27614
  disabled: disabled || !onSubtitlesChange,
27579
27615
  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",
@@ -27726,7 +27762,7 @@ var AIEnrichSection = ({
27726
27762
  }) => {
27727
27763
  const hasResults = status === "success" || status === "error";
27728
27764
  const shouldDisable = disabled || !canEnrich;
27729
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _480 => _480.filter, 'call', _481 => _481((f) => !f.isFilled)]) || [];
27765
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _482 => _482.filter, 'call', _483 => _483((f) => !f.isFilled)]) || [];
27730
27766
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
27731
27767
  "div",
27732
27768
  {
@@ -27764,7 +27800,7 @@ var AIEnrichSection = ({
27764
27800
  {
27765
27801
  id: "ai-enrich-custom-instructions",
27766
27802
  value: _nullishCoalesce(customInstructions, () => ( "")),
27767
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _482 => _482(e.target.value)]),
27803
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _484 => _484(e.target.value)]),
27768
27804
  placeholder: customInstructionsPlaceholder,
27769
27805
  disabled: loading,
27770
27806
  maxLength: customInstructionsMaxLength,
@@ -27893,7 +27929,7 @@ function HighlightVideoSection({
27893
27929
  input.accept = "video/*";
27894
27930
  input.onchange = async (e) => {
27895
27931
  const target = e.target;
27896
- const file = _optionalChain([target, 'access', _483 => _483.files, 'optionalAccess', _484 => _484[0]]);
27932
+ const file = _optionalChain([target, 'access', _485 => _485.files, 'optionalAccess', _486 => _486[0]]);
27897
27933
  if (!file) return;
27898
27934
  setUploadError(null);
27899
27935
  try {
@@ -28388,7 +28424,7 @@ function HighlightVideoPreview({
28388
28424
  input.accept = "video/*";
28389
28425
  input.onchange = async (e) => {
28390
28426
  const target = e.target;
28391
- const file = _optionalChain([target, 'access', _485 => _485.files, 'optionalAccess', _486 => _486[0]]);
28427
+ const file = _optionalChain([target, 'access', _487 => _487.files, 'optionalAccess', _488 => _488[0]]);
28392
28428
  if (!file) return;
28393
28429
  await onUpload(file);
28394
28430
  };
@@ -28572,7 +28608,7 @@ function HighlightVideoCombinedSection({
28572
28608
  input.accept = "video/*";
28573
28609
  input.onchange = async (e) => {
28574
28610
  const target = e.target;
28575
- const file = _optionalChain([target, 'access', _487 => _487.files, 'optionalAccess', _488 => _488[0]]);
28611
+ const file = _optionalChain([target, 'access', _489 => _489.files, 'optionalAccess', _490 => _490[0]]);
28576
28612
  if (!file) return;
28577
28613
  await onUpload(file);
28578
28614
  };
@@ -28866,7 +28902,7 @@ var getApprovalLevelLabel = (level, editMode = false) => {
28866
28902
  return editMode ? "Set Global Permission" : "";
28867
28903
  }
28868
28904
  const option = approvalLevelOptions.find((opt) => opt.value === level);
28869
- return _optionalChain([option, 'optionalAccess', _489 => _489.label]) || level;
28905
+ return _optionalChain([option, 'optionalAccess', _491 => _491.label]) || level;
28870
28906
  };
28871
28907
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
28872
28908
  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: [
@@ -29080,12 +29116,12 @@ function PhoneInput({
29080
29116
  const runValidation = _react.useCallback.call(void 0, (phone) => {
29081
29117
  if (!phone || digitCount(phone) === 0) {
29082
29118
  setIsInvalid(false);
29083
- _optionalChain([onValidationChange, 'optionalCall', _490 => _490(false)]);
29119
+ _optionalChain([onValidationChange, 'optionalCall', _492 => _492(false)]);
29084
29120
  return;
29085
29121
  }
29086
29122
  const invalid = !validatePhoneNumber(phone, countryCode);
29087
29123
  setIsInvalid(invalid);
29088
- _optionalChain([onValidationChange, 'optionalCall', _491 => _491(invalid)]);
29124
+ _optionalChain([onValidationChange, 'optionalCall', _493 => _493(invalid)]);
29089
29125
  }, [countryCode, digitCount, onValidationChange]);
29090
29126
  const debouncedValidation = _react.useCallback.call(void 0, (phone) => {
29091
29127
  if (debounceRef.current) clearTimeout(debounceRef.current);
@@ -29134,7 +29170,7 @@ function PhoneInput({
29134
29170
  debouncedValidation(val);
29135
29171
  } else if (digitCount(val) === 0) {
29136
29172
  setIsInvalid(false);
29137
- _optionalChain([onValidationChange, 'optionalCall', _492 => _492(false)]);
29173
+ _optionalChain([onValidationChange, 'optionalCall', _494 => _494(false)]);
29138
29174
  }
29139
29175
  }
29140
29176
  },
@@ -29475,19 +29511,19 @@ function NotificationsProvider({
29475
29511
  }, []);
29476
29512
  const markRead = React92.useCallback((id) => {
29477
29513
  dispatch({ type: "markRead", id });
29478
- void _optionalChain([actionsRef, 'access', _493 => _493.current, 'optionalAccess', _494 => _494.onMarkRead, 'optionalCall', _495 => _495(id)]);
29514
+ void _optionalChain([actionsRef, 'access', _495 => _495.current, 'optionalAccess', _496 => _496.onMarkRead, 'optionalCall', _497 => _497(id)]);
29479
29515
  }, []);
29480
29516
  const markAllRead = React92.useCallback(() => {
29481
29517
  dispatch({ type: "markAllRead" });
29482
- void _optionalChain([actionsRef, 'access', _496 => _496.current, 'optionalAccess', _497 => _497.onMarkAllRead, 'optionalCall', _498 => _498()]);
29518
+ void _optionalChain([actionsRef, 'access', _498 => _498.current, 'optionalAccess', _499 => _499.onMarkAllRead, 'optionalCall', _500 => _500()]);
29483
29519
  }, []);
29484
29520
  const markSettled = React92.useCallback((id) => {
29485
29521
  dispatch({ type: "markSettled", id });
29486
- void _optionalChain([actionsRef, 'access', _499 => _499.current, 'optionalAccess', _500 => _500.onMarkSettled, 'optionalCall', _501 => _501(id)]);
29522
+ void _optionalChain([actionsRef, 'access', _501 => _501.current, 'optionalAccess', _502 => _502.onMarkSettled, 'optionalCall', _503 => _503(id)]);
29487
29523
  }, []);
29488
29524
  const remove = React92.useCallback((id) => {
29489
29525
  dispatch({ type: "remove", id });
29490
- void _optionalChain([actionsRef, 'access', _502 => _502.current, 'optionalAccess', _503 => _503.onRemove, 'optionalCall', _504 => _504(id)]);
29526
+ void _optionalChain([actionsRef, 'access', _504 => _504.current, 'optionalAccess', _505 => _505.onRemove, 'optionalCall', _506 => _506(id)]);
29491
29527
  }, []);
29492
29528
  const clear = React92.useCallback(() => dispatch({ type: "clear" }), []);
29493
29529
  const open = React92.useCallback(() => setIsOpen(true), []);
@@ -29496,14 +29532,14 @@ function NotificationsProvider({
29496
29532
  const setShowPopups = React92.useCallback(
29497
29533
  (value2) => {
29498
29534
  setShowPopupsState(value2);
29499
- _optionalChain([onShowPopupsChange, 'optionalCall', _505 => _505(value2)]);
29535
+ _optionalChain([onShowPopupsChange, 'optionalCall', _507 => _507(value2)]);
29500
29536
  },
29501
29537
  [onShowPopupsChange]
29502
29538
  );
29503
29539
  const setShowDesktopPopups = React92.useCallback(
29504
29540
  (value2) => {
29505
29541
  setShowDesktopPopupsState(value2);
29506
- _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _506 => _506(value2)]);
29542
+ _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _508 => _508(value2)]);
29507
29543
  },
29508
29544
  [onShowDesktopPopupsChange]
29509
29545
  );
@@ -29607,7 +29643,7 @@ function NotificationTile({
29607
29643
  if (!counting) return;
29608
29644
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
29609
29645
  const timer = window.setTimeout(() => {
29610
- _optionalChain([onSettle, 'optionalCall', _507 => _507(id)]);
29646
+ _optionalChain([onSettle, 'optionalCall', _509 => _509(id)]);
29611
29647
  }, remaining);
29612
29648
  return () => window.clearTimeout(timer);
29613
29649
  }, [id, counting, initialElapsed, liveDurationMs, onSettle]);
@@ -29669,7 +29705,7 @@ function NotificationTile({
29669
29705
  "button",
29670
29706
  {
29671
29707
  type: "button",
29672
- onClick: () => _optionalChain([onSettle, 'optionalCall', _508 => _508(id)]),
29708
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _510 => _510(id)]),
29673
29709
  "aria-label": "Dismiss notification",
29674
29710
  tabIndex: isLive ? 0 : -1,
29675
29711
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
@@ -29802,7 +29838,7 @@ function DrawerScrollList({
29802
29838
  if (!sentinel || !root) return;
29803
29839
  const observer = new IntersectionObserver(
29804
29840
  (entries) => {
29805
- if (_optionalChain([entries, 'access', _509 => _509[0], 'optionalAccess', _510 => _510.isIntersecting])) _optionalChain([loadMoreRef, 'access', _511 => _511.current, 'optionalCall', _512 => _512()]);
29841
+ if (_optionalChain([entries, 'access', _511 => _511[0], 'optionalAccess', _512 => _512.isIntersecting])) _optionalChain([loadMoreRef, 'access', _513 => _513.current, 'optionalCall', _514 => _514()]);
29806
29842
  },
29807
29843
  { root, rootMargin: loadMoreRootMargin }
29808
29844
  );
@@ -29817,7 +29853,7 @@ function DrawerScrollList({
29817
29853
  className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
29818
29854
  children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
29819
29855
  unreadNotifications.map((n) => {
29820
- const custom = _optionalChain([renderTile, 'optionalCall', _513 => _513(n, { onComplete, onSettle, liveDurationMs })]);
29856
+ const custom = _optionalChain([renderTile, 'optionalCall', _515 => _515(n, { onComplete, onSettle, liveDurationMs })]);
29821
29857
  if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
29822
29858
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29823
29859
  NotificationTile,
@@ -29981,7 +30017,7 @@ function NotificationPopups({
29981
30017
  className
29982
30018
  ),
29983
30019
  children: live.map((n) => {
29984
- const custom = _optionalChain([renderTile, 'optionalCall', _514 => _514(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
30020
+ const custom = _optionalChain([renderTile, 'optionalCall', _516 => _516(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
29985
30021
  if (custom) {
29986
30022
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
29987
30023
  }
@@ -30161,21 +30197,21 @@ function transformWebinarToProgram(webinar) {
30161
30197
  // src/components/features/notifications/types.ts
30162
30198
  var ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = "ADMIN_APPROVAL_REQUEST";
30163
30199
  function isApprovalNotification(notification) {
30164
- return _optionalChain([notification, 'access', _515 => _515.meta, 'optionalAccess', _516 => _516.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
30200
+ return _optionalChain([notification, 'access', _517 => _517.meta, 'optionalAccess', _518 => _518.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
30165
30201
  }
30166
30202
  function getApprovalMeta(notification) {
30167
30203
  if (!isApprovalNotification(notification)) return null;
30168
30204
  const meta = notification.meta;
30169
- const approvalRequestId = _optionalChain([meta, 'optionalAccess', _517 => _517.approvalRequestId]);
30170
- const toolCalls = _optionalChain([meta, 'optionalAccess', _518 => _518.toolCalls]);
30205
+ const approvalRequestId = _optionalChain([meta, 'optionalAccess', _519 => _519.approvalRequestId]);
30206
+ const toolCalls = _optionalChain([meta, 'optionalAccess', _520 => _520.toolCalls]);
30171
30207
  if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
30172
30208
  return {
30173
30209
  approvalRequestId,
30174
- dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _519 => _519.dialogId]), () => ( null)),
30175
- ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _520 => _520.ticketId]), () => ( null)),
30176
- approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _521 => _521.approvalType]), () => ( null)),
30177
- resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _522 => _522.resolution]), () => ( null)),
30178
- resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _523 => _523.resolvedByName]), () => ( null)),
30210
+ dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _521 => _521.dialogId]), () => ( null)),
30211
+ ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _522 => _522.ticketId]), () => ( null)),
30212
+ approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _523 => _523.approvalType]), () => ( null)),
30213
+ resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _524 => _524.resolution]), () => ( null)),
30214
+ resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _525 => _525.resolvedByName]), () => ( null)),
30179
30215
  toolCalls
30180
30216
  };
30181
30217
  }
@@ -30224,7 +30260,7 @@ function ApprovalRequestNotificationTile({
30224
30260
  const [pinned, setPinned] = _react.useState.call(void 0, defaultExpanded);
30225
30261
  const [localStatus, setLocalStatus] = _react.useState.call(void 0, null);
30226
30262
  const approval = getApprovalMeta(notification);
30227
- const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _524 => _524.resolution]));
30263
+ const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _526 => _526.resolution]));
30228
30264
  const status = resolvedStatus !== "pending" ? resolvedStatus : _nullishCoalesce(localStatus, () => ( "pending"));
30229
30265
  const batchData = _react.useMemo.call(void 0, () => approval ? approvalMetaToBatchData(approval) : null, [approval]);
30230
30266
  const { innerRef, containerStyle } = useCollapsible({ expanded });
@@ -30492,7 +30528,7 @@ function TimeTrackerPanel({
30492
30528
  error: showFieldError ? "Required if no notes added" : void 0,
30493
30529
  disableClientFilter: !!onTicketSearch,
30494
30530
  onInputChange: (value, reason) => {
30495
- if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _525 => _525(value)]);
30531
+ if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _527 => _527(value)]);
30496
30532
  }
30497
30533
  }
30498
30534
  )
@@ -30582,7 +30618,7 @@ function LastEntryRow({ entry, onClick }) {
30582
30618
  {
30583
30619
  variant: "outline",
30584
30620
  size: "icon",
30585
- onClick: () => _optionalChain([onClick, 'optionalCall', _526 => _526(entry)]),
30621
+ onClick: () => _optionalChain([onClick, 'optionalCall', _528 => _528(entry)]),
30586
30622
  disabled: !onClick,
30587
30623
  "aria-label": `Open entry: ${entry.title}`,
30588
30624
  className: "h-12 w-12 shrink-0 [&_svg]:!size-6",
@@ -30626,9 +30662,9 @@ function HeaderButton({
30626
30662
  function TimeTrackerHeaderButton({ className, disabled }) {
30627
30663
  const ctx = useOptionalTimeTracker();
30628
30664
  const elapsedLabel = useTrackerClock({
30629
- status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _527 => _527.status]), () => ( "ready")),
30630
- runningSince: _optionalChain([ctx, 'optionalAccess', _528 => _528.runningSince]),
30631
- accumulatedMs: _optionalChain([ctx, 'optionalAccess', _529 => _529.accumulatedMs])
30665
+ status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _529 => _529.status]), () => ( "ready")),
30666
+ runningSince: _optionalChain([ctx, 'optionalAccess', _530 => _530.runningSince]),
30667
+ accumulatedMs: _optionalChain([ctx, 'optionalAccess', _531 => _531.accumulatedMs])
30632
30668
  });
30633
30669
  if (!ctx) return null;
30634
30670
  const { isOpen, open, close, status } = ctx;
@@ -30911,15 +30947,15 @@ function TicketCard({
30911
30947
  transition: sortable.transition
30912
30948
  };
30913
30949
  if (showNewMessage) style.borderColor = columnColor;
30914
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _530 => _530.deviceHostnames, 'optionalAccess', _531 => _531.length]) || ticket.organizationName);
30950
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _532 => _532.deviceHostnames, 'optionalAccess', _533 => _533.length]) || ticket.organizationName);
30915
30951
  const deviceText = [
30916
- _optionalChain([ticket, 'access', _532 => _532.deviceHostnames, 'optionalAccess', _533 => _533.join, 'call', _534 => _534(", ")]),
30952
+ _optionalChain([ticket, 'access', _534 => _534.deviceHostnames, 'optionalAccess', _535 => _535.join, 'call', _536 => _536(", ")]),
30917
30953
  ticket.organizationName
30918
30954
  ].filter(Boolean).join(", ");
30919
30955
  const handleClick = (e) => {
30920
30956
  if (sortable.isDragging) e.preventDefault();
30921
30957
  };
30922
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _535 => _535.assignees, 'optionalAccess', _536 => _536.length]) || renderAssignSlot);
30958
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _537 => _537.assignees, 'optionalAccess', _538 => _538.length]) || renderAssignSlot);
30923
30959
  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: [
30924
30960
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30925
30961
  _chunkCCG4DARMcjs.Flag02Icon,
@@ -30928,7 +30964,7 @@ function TicketCard({
30928
30964
  "aria-label": `Priority: ${ticket.priority}`
30929
30965
  }
30930
30966
  ),
30931
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _537 => _537.assignees, 'optionalAccess', _538 => _538.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
30967
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _539 => _539.assignees, 'optionalAccess', _540 => _540.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
30932
30968
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30933
30969
  SquareAvatar,
30934
30970
  {
@@ -30959,7 +30995,7 @@ function TicketCard({
30959
30995
  ] }),
30960
30996
  rightSection
30961
30997
  ] }),
30962
- _optionalChain([ticket, 'access', _539 => _539.tags, 'optionalAccess', _540 => _540.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
30998
+ _optionalChain([ticket, 'access', _541 => _541.tags, 'optionalAccess', _542 => _542.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
30963
30999
  timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Tooltip, { children: [
30964
31000
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "pointer-events-auto text-h6 truncate text-ods-text-secondary", children: timestampLabel }) }),
30965
31001
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipContent, { children: tooltipLabel })
@@ -31159,7 +31195,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReje
31159
31195
  const observer = new IntersectionObserver(
31160
31196
  (entries) => {
31161
31197
  if (entries.some((e) => e.isIntersecting)) {
31162
- _optionalChain([loadMoreRef, 'access', _541 => _541.current, 'optionalCall', _542 => _542(columnIdRef.current)]);
31198
+ _optionalChain([loadMoreRef, 'access', _543 => _543.current, 'optionalCall', _544 => _544(columnIdRef.current)]);
31163
31199
  }
31164
31200
  },
31165
31201
  { root, rootMargin: loadMoreRootMargin }
@@ -31189,7 +31225,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReje
31189
31225
  ticket: t,
31190
31226
  columnId: column.id,
31191
31227
  columnColor: column.color,
31192
- href: _optionalChain([getTicketHref, 'optionalCall', _543 => _543(t.id)]),
31228
+ href: _optionalChain([getTicketHref, 'optionalCall', _545 => _545(t.id)]),
31193
31229
  renderAssignSlot,
31194
31230
  onApprove,
31195
31231
  onReject,
@@ -31289,17 +31325,17 @@ function Board({
31289
31325
  const pointer = _core.pointerWithin.call(void 0, args);
31290
31326
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
31291
31327
  const ticketHit = intersections.find(
31292
- (c) => _optionalChain([c, 'access', _544 => _544.data, 'optionalAccess', _545 => _545.droppableContainer, 'optionalAccess', _546 => _546.data, 'optionalAccess', _547 => _547.current, 'optionalAccess', _548 => _548.type]) === "ticket"
31328
+ (c) => _optionalChain([c, 'access', _546 => _546.data, 'optionalAccess', _547 => _547.droppableContainer, 'optionalAccess', _548 => _548.data, 'optionalAccess', _549 => _549.current, 'optionalAccess', _550 => _550.type]) === "ticket"
31293
31329
  );
31294
31330
  if (ticketHit) return [ticketHit];
31295
31331
  const columnHit = intersections.find(
31296
- (c) => _optionalChain([c, 'access', _549 => _549.data, 'optionalAccess', _550 => _550.droppableContainer, 'optionalAccess', _551 => _551.data, 'optionalAccess', _552 => _552.current, 'optionalAccess', _553 => _553.type]) === "column"
31332
+ (c) => _optionalChain([c, 'access', _551 => _551.data, 'optionalAccess', _552 => _552.droppableContainer, 'optionalAccess', _553 => _553.data, 'optionalAccess', _554 => _554.current, 'optionalAccess', _555 => _555.type]) === "column"
31297
31333
  );
31298
31334
  if (columnHit) {
31299
- const columnId = _optionalChain([columnHit, 'access', _554 => _554.data, 'optionalAccess', _555 => _555.droppableContainer, 'optionalAccess', _556 => _556.data, 'optionalAccess', _557 => _557.current, 'optionalAccess', _558 => _558.columnId]);
31335
+ const columnId = _optionalChain([columnHit, 'access', _556 => _556.data, 'optionalAccess', _557 => _557.droppableContainer, 'optionalAccess', _558 => _558.data, 'optionalAccess', _559 => _559.current, 'optionalAccess', _560 => _560.columnId]);
31300
31336
  const ticketsInColumn = args.droppableContainers.filter((c) => {
31301
31337
  const d = c.data.current;
31302
- return _optionalChain([d, 'optionalAccess', _559 => _559.type]) === "ticket" && d.columnId === columnId;
31338
+ return _optionalChain([d, 'optionalAccess', _561 => _561.type]) === "ticket" && d.columnId === columnId;
31303
31339
  });
31304
31340
  if (ticketsInColumn.length > 0) {
31305
31341
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -31324,20 +31360,20 @@ function Board({
31324
31360
  const overId = String(over.id);
31325
31361
  if (activeId === overId) return;
31326
31362
  const overData = over.data.current;
31327
- const fromColumnId = _optionalChain([locate, 'call', _560 => _560(items, activeId), 'optionalAccess', _561 => _561.columnId]);
31328
- const toColumnId = _optionalChain([overData, 'optionalAccess', _562 => _562.columnId]);
31363
+ const fromColumnId = _optionalChain([locate, 'call', _562 => _562(items, activeId), 'optionalAccess', _563 => _563.columnId]);
31364
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _564 => _564.columnId]);
31329
31365
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
31330
31366
  const origin = dragOriginRef.current;
31331
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _563 => _563.fromColumnId]) === toColumnId;
31367
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _565 => _565.fromColumnId]) === toColumnId;
31332
31368
  const targetCol = items.find((c) => c.id === toColumnId);
31333
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _564 => _564.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
31334
- if (_optionalChain([targetCol, 'optionalAccess', _565 => _565.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
31369
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _566 => _566.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
31370
+ if (_optionalChain([targetCol, 'optionalAccess', _567 => _567.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
31335
31371
  setItems((prev) => {
31336
31372
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
31337
31373
  const toCol = prev.find((c) => c.id === toColumnId);
31338
31374
  if (fromIndex < 0 || !toCol) return prev;
31339
31375
  let toIndex;
31340
- if (_optionalChain([overData, 'optionalAccess', _566 => _566.type]) === "column") {
31376
+ if (_optionalChain([overData, 'optionalAccess', _568 => _568.type]) === "column") {
31341
31377
  toIndex = toCol.tickets.length;
31342
31378
  } else {
31343
31379
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -31379,14 +31415,14 @@ function Board({
31379
31415
  const toColumnId = located.columnId;
31380
31416
  const isCrossColumn = origin.fromColumnId !== toColumnId;
31381
31417
  const targetCol = items.find((c) => c.id === toColumnId);
31382
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _567 => _567.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _568 => _568.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
31418
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _569 => _569.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _570 => _570.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
31383
31419
  setItems(columns);
31384
31420
  return;
31385
31421
  }
31386
31422
  let finalIndex = located.index;
31387
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _569 => _569.find, 'call', _570 => _570((c) => c.id === toColumnId), 'optionalAccess', _571 => _571.tickets]), () => ( []));
31423
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _571 => _571.find, 'call', _572 => _572((c) => c.id === toColumnId), 'optionalAccess', _573 => _573.tickets]), () => ( []));
31388
31424
  const overData = over.data.current;
31389
- if (_optionalChain([overData, 'optionalAccess', _572 => _572.type]) === "ticket") {
31425
+ if (_optionalChain([overData, 'optionalAccess', _574 => _574.type]) === "ticket") {
31390
31426
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
31391
31427
  if (overIndex >= 0 && overIndex !== located.index) {
31392
31428
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -31406,8 +31442,8 @@ function Board({
31406
31442
  ticketId: origin.ticketId,
31407
31443
  fromColumnId: origin.fromColumnId,
31408
31444
  toColumnId,
31409
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _573 => _573[finalIndex - 1], 'optionalAccess', _574 => _574.id]), () => ( null)),
31410
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _575 => _575[finalIndex + 1], 'optionalAccess', _576 => _576.id]), () => ( null))
31445
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _575 => _575[finalIndex - 1], 'optionalAccess', _576 => _576.id]), () => ( null)),
31446
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _577 => _577[finalIndex + 1], 'optionalAccess', _578 => _578.id]), () => ( null))
31411
31447
  });
31412
31448
  };
31413
31449
  const handleDragCancel = () => {
@@ -31436,8 +31472,8 @@ function Board({
31436
31472
  children: items.map((column, i) => {
31437
31473
  const prev = items[i - 1];
31438
31474
  const next = items[i + 1];
31439
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _577 => _577.system]));
31440
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _578 => _578.system]));
31475
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _579 => _579.system]));
31476
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _580 => _580.system]));
31441
31477
  const showGap = i > 0 && !joinLeft;
31442
31478
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React98.Fragment, { children: [
31443
31479
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -31490,7 +31526,7 @@ function Board({
31490
31526
  {
31491
31527
  ticket: activeTicket.ticket,
31492
31528
  columnId: activeTicket.columnId,
31493
- columnColor: _optionalChain([items, 'access', _579 => _579.find, 'call', _580 => _580((c) => c.id === activeTicket.columnId), 'optionalAccess', _581 => _581.color]),
31529
+ columnColor: _optionalChain([items, 'access', _581 => _581.find, 'call', _582 => _582((c) => c.id === activeTicket.columnId), 'optionalAccess', _583 => _583.color]),
31494
31530
  isOverlay: true
31495
31531
  }
31496
31532
  ) : null })
@@ -31506,7 +31542,7 @@ function locate(cols, ticketId) {
31506
31542
  return null;
31507
31543
  }
31508
31544
  function findIndexInColumn(cols, columnId, ticketId) {
31509
- return _nullishCoalesce(_optionalChain([cols, 'access', _582 => _582.find, 'call', _583 => _583((c) => c.id === columnId), 'optionalAccess', _584 => _584.tickets, 'access', _585 => _585.findIndex, 'call', _586 => _586((t) => t.id === ticketId)]), () => ( -1));
31545
+ return _nullishCoalesce(_optionalChain([cols, 'access', _584 => _584.find, 'call', _585 => _585((c) => c.id === columnId), 'optionalAccess', _586 => _586.tickets, 'access', _587 => _587.findIndex, 'call', _588 => _588((t) => t.id === ticketId)]), () => ( -1));
31510
31546
  }
31511
31547
 
31512
31548
  // src/components/features/board/types.ts
@@ -31754,7 +31790,7 @@ function Header2({ config, platform }) {
31754
31790
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
31755
31791
  "flex justify-start w-full",
31756
31792
  "font-bold text-[16px] leading-none tracking-[-0.32px]",
31757
- index < (_nullishCoalesce(_optionalChain([item, 'access', _587 => _587.children, 'optionalAccess', _588 => _588.length]), () => ( 0))) - 1 && "mb-1",
31793
+ index < (_nullishCoalesce(_optionalChain([item, 'access', _589 => _589.children, 'optionalAccess', _590 => _590.length]), () => ( 0))) - 1 && "mb-1",
31758
31794
  "text-ods-text-primary",
31759
31795
  // All dropdown items use primary text color
31760
31796
  child.isActive && "bg-ods-bg-hover"
@@ -31846,7 +31882,7 @@ function Header2({ config, platform }) {
31846
31882
  style: config.style,
31847
31883
  children: [
31848
31884
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
31849
- _optionalChain([config, 'access', _589 => _589.actions, 'optionalAccess', _590 => _590.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
31885
+ _optionalChain([config, 'access', _591 => _591.actions, 'optionalAccess', _592 => _592.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
31850
31886
  /* @__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 })
31851
31887
  ] }),
31852
31888
  config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -31863,7 +31899,7 @@ function Header2({ config, platform }) {
31863
31899
  }
31864
31900
  ),
31865
31901
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-end gap-4 flex-shrink-0", children: [
31866
- _optionalChain([config, 'access', _591 => _591.actions, 'optionalAccess', _592 => _592.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
31902
+ _optionalChain([config, 'access', _593 => _593.actions, 'optionalAccess', _594 => _594.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
31867
31903
  config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31868
31904
  _chunkQJGRP2YEcjs.Button,
31869
31905
  {
@@ -31871,10 +31907,10 @@ function Header2({ config, platform }) {
31871
31907
  size: "icon",
31872
31908
  className: "flex md:hidden",
31873
31909
  onClick: () => {
31874
- _optionalChain([config, 'access', _593 => _593.mobile, 'optionalAccess', _594 => _594.onToggle, 'optionalCall', _595 => _595()]);
31910
+ _optionalChain([config, 'access', _595 => _595.mobile, 'optionalAccess', _596 => _596.onToggle, 'optionalCall', _597 => _597()]);
31875
31911
  },
31876
- "aria-label": _optionalChain([config, 'access', _596 => _596.mobile, 'optionalAccess', _597 => _597.isOpen]) ? "Close menu" : "Open menu",
31877
- leftIcon: _optionalChain([config, 'access', _598 => _598.mobile, 'optionalAccess', _599 => _599.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.Menu01Icon, {})
31912
+ "aria-label": _optionalChain([config, 'access', _598 => _598.mobile, 'optionalAccess', _599 => _599.isOpen]) ? "Close menu" : "Open menu",
31913
+ leftIcon: _optionalChain([config, 'access', _600 => _600.mobile, 'optionalAccess', _601 => _601.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.Menu01Icon, {})
31878
31914
  }
31879
31915
  )
31880
31916
  ] })
@@ -31891,10 +31927,10 @@ function Header2({ config, platform }) {
31891
31927
  // src/components/navigation/header-skeleton.tsx
31892
31928
 
31893
31929
  function HeaderSkeleton({ config }) {
31894
- const showNavigation = _optionalChain([config, 'optionalAccess', _600 => _600.navigation]) && config.navigation.items.length > 0;
31895
- const showActions = _optionalChain([config, 'optionalAccess', _601 => _601.actions, 'optionalAccess', _602 => _602.right]) && config.actions.right.length > 0;
31896
- const showMobileMenu = _optionalChain([config, 'optionalAccess', _603 => _603.mobile, 'optionalAccess', _604 => _604.enabled]);
31897
- const isAdminHeader = _optionalChain([config, 'optionalAccess', _605 => _605.className, 'optionalAccess', _606 => _606.includes, 'call', _607 => _607("admin")]);
31930
+ const showNavigation = _optionalChain([config, 'optionalAccess', _602 => _602.navigation]) && config.navigation.items.length > 0;
31931
+ const showActions = _optionalChain([config, 'optionalAccess', _603 => _603.actions, 'optionalAccess', _604 => _604.right]) && config.actions.right.length > 0;
31932
+ const showMobileMenu = _optionalChain([config, 'optionalAccess', _605 => _605.mobile, 'optionalAccess', _606 => _606.enabled]);
31933
+ const isAdminHeader = _optionalChain([config, 'optionalAccess', _607 => _607.className, 'optionalAccess', _608 => _608.includes, 'call', _609 => _609("admin")]);
31898
31934
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
31899
31935
  "header",
31900
31936
  {
@@ -31903,11 +31939,11 @@ function HeaderSkeleton({ config }) {
31903
31939
  "bg-ods-card border-b border-ods-border backdrop-blur-sm",
31904
31940
  "px-6 py-3",
31905
31941
  "transition-opacity duration-300 ease-in-out",
31906
- _optionalChain([config, 'optionalAccess', _608 => _608.className])
31942
+ _optionalChain([config, 'optionalAccess', _610 => _610.className])
31907
31943
  ),
31908
31944
  children: [
31909
31945
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
31910
- isAdminHeader && _optionalChain([config, 'optionalAccess', _609 => _609.actions, 'optionalAccess', _610 => _610.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" }) }),
31946
+ isAdminHeader && _optionalChain([config, 'optionalAccess', _611 => _611.actions, 'optionalAccess', _612 => _612.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" }) }),
31911
31947
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
31912
31948
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
31913
31949
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
@@ -31915,8 +31951,8 @@ function HeaderSkeleton({ config }) {
31915
31951
  ] }),
31916
31952
  showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunkFIG2RKZFcjs.cn.call(void 0,
31917
31953
  "hidden md:flex items-center gap-2",
31918
- _optionalChain([config, 'optionalAccess', _611 => _611.navigation, 'optionalAccess', _612 => _612.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
31919
- _optionalChain([config, 'optionalAccess', _613 => _613.navigation, 'optionalAccess', _614 => _614.position]) === "right" && "ml-auto mr-4"
31954
+ _optionalChain([config, 'optionalAccess', _613 => _613.navigation, 'optionalAccess', _614 => _614.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
31955
+ _optionalChain([config, 'optionalAccess', _615 => _615.navigation, 'optionalAccess', _616 => _616.position]) === "right" && "ml-auto mr-4"
31920
31956
  ), children: [
31921
31957
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
31922
31958
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
@@ -31964,7 +32000,7 @@ function MobileNavPanel({ isOpen, config }) {
31964
32000
  _react.useEffect.call(void 0, () => {
31965
32001
  const handleKeyDown = (e) => {
31966
32002
  if (e.key === "Escape" && isOpen) {
31967
- _optionalChain([config, 'access', _615 => _615.onClose, 'optionalCall', _616 => _616()]);
32003
+ _optionalChain([config, 'access', _617 => _617.onClose, 'optionalCall', _618 => _618()]);
31968
32004
  }
31969
32005
  };
31970
32006
  if (isOpen) {
@@ -31981,7 +32017,7 @@ function MobileNavPanel({ isOpen, config }) {
31981
32017
  if (item.onClick) {
31982
32018
  item.onClick();
31983
32019
  }
31984
- _optionalChain([config, 'access', _617 => _617.onClose, 'optionalCall', _618 => _618()]);
32020
+ _optionalChain([config, 'access', _619 => _619.onClose, 'optionalCall', _620 => _620()]);
31985
32021
  };
31986
32022
  if (item.href) {
31987
32023
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -32151,7 +32187,7 @@ function SlidingSidebar({ config }) {
32151
32187
  variant: "transparent",
32152
32188
  size: "default",
32153
32189
  onClick: () => {
32154
- _optionalChain([item, 'access', _619 => _619.onClick, 'optionalCall', _620 => _620()]);
32190
+ _optionalChain([item, 'access', _621 => _621.onClick, 'optionalCall', _622 => _622()]);
32155
32191
  config.onClose();
32156
32192
  },
32157
32193
  leftIcon: item.icon,
@@ -32174,7 +32210,7 @@ function SlidingSidebar({ config }) {
32174
32210
  variant: "transparent",
32175
32211
  size: "default",
32176
32212
  onClick: () => {
32177
- _optionalChain([item, 'access', _621 => _621.onClick, 'optionalCall', _622 => _622()]);
32213
+ _optionalChain([item, 'access', _623 => _623.onClick, 'optionalCall', _624 => _624()]);
32178
32214
  config.onClose();
32179
32215
  },
32180
32216
  leftIcon: item.icon,
@@ -32301,7 +32337,7 @@ function StickySectionNav({
32301
32337
  ] });
32302
32338
  }
32303
32339
  function useSectionNavigation(sections, options) {
32304
- const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _623 => _623[0], 'optionalAccess', _624 => _624.id]) || "");
32340
+ const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _625 => _625[0], 'optionalAccess', _626 => _626.id]) || "");
32305
32341
  const isScrollingFromClick = _react.useRef.call(void 0, false);
32306
32342
  const { offset: offset2 = 100 } = options || {};
32307
32343
  const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
@@ -32325,7 +32361,7 @@ function useSectionNavigation(sections, options) {
32325
32361
  const handleScroll = () => {
32326
32362
  if (isScrollingFromClick.current) return;
32327
32363
  const scrollPosition = window.scrollY + offset2 + 50;
32328
- let currentSection = _optionalChain([sections, 'access', _625 => _625[0], 'optionalAccess', _626 => _626.id]) || "";
32364
+ let currentSection = _optionalChain([sections, 'access', _627 => _627[0], 'optionalAccess', _628 => _628.id]) || "";
32329
32365
  for (let i = sections.length - 1; i >= 0; i--) {
32330
32366
  const element = document.getElementById(sections[i].id);
32331
32367
  if (element && scrollPosition >= element.offsetTop) {
@@ -32526,7 +32562,7 @@ function NavigationSidebar({ config, disabled = false }) {
32526
32562
  } else {
32527
32563
  setDesktopMinimized((prev) => !prev);
32528
32564
  }
32529
- _optionalChain([config, 'access', _627 => _627.onToggleMinimized, 'optionalCall', _628 => _628()]);
32565
+ _optionalChain([config, 'access', _629 => _629.onToggleMinimized, 'optionalCall', _630 => _630()]);
32530
32566
  }, [isTablet, setDesktopMinimized, config]);
32531
32567
  const closeOverlay = _react.useCallback.call(void 0, () => {
32532
32568
  setTabletMinimized(true);
@@ -32540,11 +32576,11 @@ function NavigationSidebar({ config, disabled = false }) {
32540
32576
  return () => document.removeEventListener("keydown", handleKeyDown);
32541
32577
  }, [isOverlayOpen, closeOverlay]);
32542
32578
  const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
32543
- _optionalChain([event, 'optionalAccess', _629 => _629.stopPropagation, 'call', _630 => _630()]);
32579
+ _optionalChain([event, 'optionalAccess', _631 => _631.stopPropagation, 'call', _632 => _632()]);
32544
32580
  if (item.onClick) {
32545
32581
  item.onClick();
32546
32582
  } else if (item.path) {
32547
- _optionalChain([config, 'access', _631 => _631.onNavigate, 'optionalCall', _632 => _632(item.path)]);
32583
+ _optionalChain([config, 'access', _633 => _633.onNavigate, 'optionalCall', _634 => _634(item.path)]);
32548
32584
  }
32549
32585
  if (isTablet) setTabletMinimized(true);
32550
32586
  }, [config, isTablet]);
@@ -32664,11 +32700,11 @@ function HeaderGlobalSearch({
32664
32700
  };
32665
32701
  const handleSubmit = (e) => {
32666
32702
  e.preventDefault();
32667
- _optionalChain([onSubmit, 'optionalCall', _633 => _633(currentValue)]);
32703
+ _optionalChain([onSubmit, 'optionalCall', _635 => _635(currentValue)]);
32668
32704
  };
32669
32705
  const handleKeyDown = (e) => {
32670
32706
  if (e.key === "Enter") {
32671
- _optionalChain([onSubmit, 'optionalCall', _634 => _634(currentValue)]);
32707
+ _optionalChain([onSubmit, 'optionalCall', _636 => _636(currentValue)]);
32672
32708
  }
32673
32709
  };
32674
32710
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -32762,8 +32798,8 @@ function HeaderOrganizationFilter({
32762
32798
  className
32763
32799
  }) {
32764
32800
  const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
32765
- const displayName = _optionalChain([selectedOrg, 'optionalAccess', _635 => _635.name]) || "All Organizations";
32766
- const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _636 => _636.deviceCount]), () => ( totalDeviceCount));
32801
+ const displayName = _optionalChain([selectedOrg, 'optionalAccess', _637 => _637.name]) || "All Organizations";
32802
+ const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _638 => _638.deviceCount]), () => ( totalDeviceCount));
32767
32803
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkQJGRP2YEcjs.DropdownMenu, { children: [
32768
32804
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQJGRP2YEcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
32769
32805
  "button",
@@ -32788,11 +32824,11 @@ function HeaderOrganizationFilter({
32788
32824
  }
32789
32825
  ) }),
32790
32826
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkQJGRP2YEcjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
32791
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQJGRP2YEcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _637 => _637("")]), children: "All Organizations" }),
32827
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQJGRP2YEcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _639 => _639("")]), children: "All Organizations" }),
32792
32828
  organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32793
32829
  _chunkQJGRP2YEcjs.DropdownMenuItem,
32794
32830
  {
32795
- onClick: () => _optionalChain([onOrgChange, 'optionalCall', _638 => _638(org.id)]),
32831
+ onClick: () => _optionalChain([onOrgChange, 'optionalCall', _640 => _640(org.id)]),
32796
32832
  children: org.name
32797
32833
  },
32798
32834
  org.id
@@ -32982,9 +33018,9 @@ function NotificationsHeaderButton({
32982
33018
  dimmedClass
32983
33019
  }) {
32984
33020
  const ctx = useOptionalNotifications();
32985
- const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _639 => _639.unreadCount]), () => ( fallbackUnreadCount))) > 0;
32986
- const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _640 => _640.isOpen]), () => ( false));
32987
- const onClick = _optionalChain([ctx, 'optionalAccess', _641 => _641.toggle]);
33021
+ const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _641 => _641.unreadCount]), () => ( fallbackUnreadCount))) > 0;
33022
+ const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _642 => _642.isOpen]), () => ( false));
33023
+ const onClick = _optionalChain([ctx, 'optionalAccess', _643 => _643.toggle]);
32988
33024
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32989
33025
  HeaderButton,
32990
33026
  {
@@ -33048,7 +33084,7 @@ var MobileBurgerMenu = React114.default.memo(function MobileBurgerMenu2({
33048
33084
  if (item.onClick) {
33049
33085
  item.onClick();
33050
33086
  } else if (item.path) {
33051
- _optionalChain([config, 'access', _642 => _642.onNavigate, 'optionalCall', _643 => _643(item.path)]);
33087
+ _optionalChain([config, 'access', _644 => _644.onNavigate, 'optionalCall', _645 => _645(item.path)]);
33052
33088
  }
33053
33089
  onClose();
33054
33090
  }, [config, onClose]);
@@ -33291,7 +33327,7 @@ var AppLayoutDrawerRoot = ({
33291
33327
  const handleOpenChange = React107.useCallback(
33292
33328
  (next) => {
33293
33329
  if (!isControlled) setInternalOpen(next);
33294
- _optionalChain([onOpenChange, 'optionalCall', _644 => _644(next)]);
33330
+ _optionalChain([onOpenChange, 'optionalCall', _646 => _646(next)]);
33295
33331
  },
33296
33332
  [isControlled, onOpenChange]
33297
33333
  );
@@ -33672,10 +33708,10 @@ var AppLayoutDrawerContent = React107.forwardRef(
33672
33708
  ),
33673
33709
  style,
33674
33710
  onInteractOutside: (event) => {
33675
- _optionalChain([onInteractOutside, 'optionalCall', _645 => _645(event)]);
33711
+ _optionalChain([onInteractOutside, 'optionalCall', _647 => _647(event)]);
33676
33712
  if (event.defaultPrevented) return;
33677
33713
  const target = event.target;
33678
- const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _646 => _646.contains, 'call', _647 => _647(target)]);
33714
+ const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _648 => _648.contains, 'call', _649 => _649(target)]);
33679
33715
  if (!isInsideContainer) {
33680
33716
  event.preventDefault();
33681
33717
  return;
@@ -34088,7 +34124,7 @@ var ShellTypeBadge = ({
34088
34124
  className,
34089
34125
  iconClassName
34090
34126
  }) => {
34091
- const normalizedType = _optionalChain([shellType, 'optionalAccess', _648 => _648.toUpperCase, 'call', _649 => _649()]);
34127
+ const normalizedType = _optionalChain([shellType, 'optionalAccess', _650 => _650.toUpperCase, 'call', _651 => _651()]);
34092
34128
  const label = getShellLabel(normalizedType);
34093
34129
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
34094
34130
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
@@ -34475,12 +34511,12 @@ function OnboardingWalkthrough({
34475
34511
  }
34476
34512
  }, [state.completedSteps, markComplete]);
34477
34513
  const handleStepSkip = (step) => {
34478
- _optionalChain([step, 'access', _650 => _650.onSkip, 'optionalCall', _651 => _651()]);
34514
+ _optionalChain([step, 'access', _652 => _652.onSkip, 'optionalCall', _653 => _653()]);
34479
34515
  markSkipped(step.id);
34480
34516
  };
34481
34517
  const handleDismiss = () => {
34482
34518
  dismissOnboarding();
34483
- _optionalChain([onDismiss, 'optionalCall', _652 => _652()]);
34519
+ _optionalChain([onDismiss, 'optionalCall', _654 => _654()]);
34484
34520
  };
34485
34521
  if (state.dismissed) {
34486
34522
  return null;
@@ -34610,7 +34646,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
34610
34646
  onKeyDown: (e) => {
34611
34647
  if (e.key === "Enter" || e.key === " ") {
34612
34648
  e.preventDefault();
34613
- _optionalChain([onClick, 'optionalCall', _653 => _653()]);
34649
+ _optionalChain([onClick, 'optionalCall', _655 => _655()]);
34614
34650
  }
34615
34651
  },
34616
34652
  children: [
@@ -34711,7 +34747,7 @@ var LogsList = React111.forwardRef(({
34711
34747
  log,
34712
34748
  isLast: index === logs.length - 1,
34713
34749
  showConnector,
34714
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _654 => _654(log)])
34750
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _656 => _656(log)])
34715
34751
  },
34716
34752
  log.id
34717
34753
  ))
@@ -34815,7 +34851,7 @@ var Slider = React113.forwardRef(
34815
34851
  ({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
34816
34852
  const handleChange = (e) => {
34817
34853
  const newValue = [Number(e.target.value)];
34818
- _optionalChain([onValueChange, 'optionalCall', _655 => _655(newValue)]);
34854
+ _optionalChain([onValueChange, 'optionalCall', _657 => _657(newValue)]);
34819
34855
  };
34820
34856
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
34821
34857
  "input",
@@ -35246,7 +35282,7 @@ function CursorPaginationSimple({
35246
35282
  {
35247
35283
  variant: "transparent",
35248
35284
  size: "icon",
35249
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _656 => _656("")]),
35285
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _658 => _658("")]),
35250
35286
  disabled: !hasPreviousPage || loading,
35251
35287
  className: "h-8 w-8",
35252
35288
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -35258,7 +35294,7 @@ function CursorPaginationSimple({
35258
35294
  {
35259
35295
  variant: "transparent",
35260
35296
  size: "icon",
35261
- onClick: () => _optionalChain([onNext, 'optionalCall', _657 => _657("")]),
35297
+ onClick: () => _optionalChain([onNext, 'optionalCall', _659 => _659("")]),
35262
35298
  disabled: !hasNextPage || loading,
35263
35299
  className: "h-8 w-8",
35264
35300
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -35278,8 +35314,8 @@ function TableEmptyState({ message: message2, icon, action, className }) {
35278
35314
  icon: _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, {}))),
35279
35315
  title: _nullishCoalesce(message2, () => ( "No results found")),
35280
35316
  description: message2 == null ? "Try adjusting your search or filters" : void 0,
35281
- buttonLabel: _optionalChain([action, 'optionalAccess', _658 => _658.label]),
35282
- onButtonClick: _optionalChain([action, 'optionalAccess', _659 => _659.onClick]),
35317
+ buttonLabel: _optionalChain([action, 'optionalAccess', _660 => _660.label]),
35318
+ onButtonClick: _optionalChain([action, 'optionalAccess', _661 => _661.onClick]),
35283
35319
  className: _chunkFIG2RKZFcjs.cn.call(void 0, "py-[var(--spacing-system-xxl)]", className)
35284
35320
  }
35285
35321
  );
@@ -35300,7 +35336,7 @@ function TableColumnFilterDropdown({
35300
35336
  placement = "bottom-start",
35301
35337
  dropdownClassName = "min-w-[240px]"
35302
35338
  }) {
35303
- const activeCount = _optionalChain([filters, 'optionalAccess', _660 => _660[columnKey], 'optionalAccess', _661 => _661.length]) || 0;
35339
+ const activeCount = _optionalChain([filters, 'optionalAccess', _662 => _662[columnKey], 'optionalAccess', _663 => _663.length]) || 0;
35304
35340
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35305
35341
  FiltersDropdown,
35306
35342
  {
@@ -35343,7 +35379,7 @@ function TableColumnFilterDropdown({
35343
35379
  delete newFilters[columnKey];
35344
35380
  onFilterChange(newFilters);
35345
35381
  },
35346
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _662 => _662[columnKey]]) || [] },
35382
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _664 => _664[columnKey]]) || [] },
35347
35383
  placement,
35348
35384
  dropdownClassName
35349
35385
  }
@@ -35553,7 +35589,7 @@ function TableCardSkeleton({
35553
35589
  className,
35554
35590
  rowClassName
35555
35591
  }) {
35556
- const primaryKey = _optionalChain([(_nullishCoalesce(columns.find((c) => /flex-(1|\[)/.test(c.width || "")), () => ( columns[0]))), 'optionalAccess', _663 => _663.key]);
35592
+ const primaryKey = _optionalChain([(_nullishCoalesce(columns.find((c) => /flex-(1|\[)/.test(c.width || "")), () => ( columns[0]))), 'optionalAccess', _665 => _665.key]);
35557
35593
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
35558
35594
  "div",
35559
35595
  {
@@ -35641,7 +35677,7 @@ function TableRow({
35641
35677
  const keys = column.key.split(".");
35642
35678
  let value = item;
35643
35679
  for (const key of keys) {
35644
- value = _optionalChain([value, 'optionalAccess', _664 => _664[key]]);
35680
+ value = _optionalChain([value, 'optionalAccess', _666 => _666[key]]);
35645
35681
  }
35646
35682
  if (value === null || value === void 0) {
35647
35683
  return "-";
@@ -35711,7 +35747,7 @@ function TableRow({
35711
35747
  // src/components/ui/table/table.tsx
35712
35748
 
35713
35749
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
35714
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _665 => _665.length])) || Boolean(renderRowActions);
35750
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _667 => _667.length])) || Boolean(renderRowActions);
35715
35751
  const result = [...columns];
35716
35752
  if (hasActions) {
35717
35753
  const actionsColumn = {
@@ -35805,7 +35841,7 @@ function Table({
35805
35841
  return rowKey(item);
35806
35842
  }
35807
35843
  const key = item[rowKey];
35808
- return _optionalChain([key, 'optionalAccess', _666 => _666.toString, 'call', _667 => _667()]) || index.toString();
35844
+ return _optionalChain([key, 'optionalAccess', _668 => _668.toString, 'call', _669 => _669()]) || index.toString();
35809
35845
  };
35810
35846
  const getRowClassName = (item, index) => {
35811
35847
  if (typeof rowClassName === "function") {
@@ -35839,23 +35875,23 @@ function Table({
35839
35875
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
35840
35876
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
35841
35877
  const sentinelRef = _react.useRef.call(void 0, null);
35842
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _668 => _668.onLoadMore]));
35843
- onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _669 => _669.onLoadMore]);
35878
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _670 => _670.onLoadMore]));
35879
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _671 => _671.onLoadMore]);
35844
35880
  _react.useEffect.call(void 0, () => {
35845
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _670 => _670.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
35881
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _672 => _672.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
35846
35882
  const sentinel = sentinelRef.current;
35847
35883
  if (!sentinel) return;
35848
35884
  const observer = new IntersectionObserver(
35849
35885
  (entries) => {
35850
- if (_optionalChain([entries, 'access', _671 => _671[0], 'optionalAccess', _672 => _672.isIntersecting])) {
35851
- _optionalChain([onLoadMoreRef, 'access', _673 => _673.current, 'optionalCall', _674 => _674()]);
35886
+ if (_optionalChain([entries, 'access', _673 => _673[0], 'optionalAccess', _674 => _674.isIntersecting])) {
35887
+ _optionalChain([onLoadMoreRef, 'access', _675 => _675.current, 'optionalCall', _676 => _676()]);
35852
35888
  }
35853
35889
  },
35854
35890
  { rootMargin: "200px" }
35855
35891
  );
35856
35892
  observer.observe(sentinel);
35857
35893
  return () => observer.disconnect();
35858
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _675 => _675.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _676 => _676.isFetchingNextPage])]);
35894
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _677 => _677.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _678 => _678.isFetchingNextPage])]);
35859
35895
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
35860
35896
  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: [
35861
35897
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -35926,7 +35962,7 @@ function Table({
35926
35962
  },
35927
35963
  getRowKey(item, index)
35928
35964
  )),
35929
- _optionalChain([infiniteScroll, 'optionalAccess', _677 => _677.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35965
+ _optionalChain([infiniteScroll, 'optionalAccess', _679 => _679.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35930
35966
  TableCardSkeleton,
35931
35967
  {
35932
35968
  columns,
@@ -35935,7 +35971,7 @@ function Table({
35935
35971
  hasChevron: Boolean(rowHref)
35936
35972
  }
35937
35973
  ),
35938
- _optionalChain([infiniteScroll, 'optionalAccess', _678 => _678.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
35974
+ _optionalChain([infiniteScroll, 'optionalAccess', _680 => _680.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
35939
35975
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
35940
35976
  "div",
35941
35977
  {
@@ -36293,7 +36329,7 @@ function QueryReportTable({
36293
36329
  );
36294
36330
  const handleExport = () => {
36295
36331
  exportToCSV(data, columns, exportFilename);
36296
- _optionalChain([onExport, 'optionalCall', _679 => _679()]);
36332
+ _optionalChain([onExport, 'optionalCall', _681 => _681()]);
36297
36333
  };
36298
36334
  const tableMinWidth = columns.length * (columnWidth + 16);
36299
36335
  const {
@@ -36466,7 +36502,7 @@ function DataTableColumnFilter({
36466
36502
  align = "left"
36467
36503
  }) {
36468
36504
  const currentValue = column.getFilterValue();
36469
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _680 => _680.length]), () => ( 0));
36505
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _682 => _682.length]), () => ( 0));
36470
36506
  const sections = _react.useMemo.call(void 0,
36471
36507
  () => [
36472
36508
  {
@@ -36546,7 +36582,7 @@ function DataTableHeader({
36546
36582
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
36547
36583
  if (header.isPlaceholder) return false;
36548
36584
  if (isLgUp) return true;
36549
- return Boolean(_optionalChain([header, 'access', _681 => _681.column, 'access', _682 => _682.columnDef, 'access', _683 => _683.meta, 'optionalAccess', _684 => _684.filter]));
36585
+ return Boolean(_optionalChain([header, 'access', _683 => _683.column, 'access', _684 => _684.columnDef, 'access', _685 => _685.meta, 'optionalAccess', _686 => _686.filter]));
36550
36586
  });
36551
36587
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36552
36588
  "div",
@@ -36576,20 +36612,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
36576
36612
  if (header.isPlaceholder) return null;
36577
36613
  const column = header.column;
36578
36614
  const meta = column.columnDef.meta;
36579
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _685 => _685.filter]));
36580
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _686 => _686.align]), () => ( "left"));
36581
- const canSort = _optionalChain([meta, 'optionalAccess', _687 => _687.sortable]) === true;
36582
- const sortDir = _optionalChain([sort, 'optionalAccess', _688 => _688.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
36615
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _687 => _687.filter]));
36616
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _688 => _688.align]), () => ( "left"));
36617
+ const canSort = _optionalChain([meta, 'optionalAccess', _689 => _689.sortable]) === true;
36618
+ const sortDir = _optionalChain([sort, 'optionalAccess', _690 => _690.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
36583
36619
  if (!isLgUp && !hasFilter) return null;
36584
36620
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36585
36621
  "div",
36586
36622
  {
36587
36623
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
36588
36624
  "flex items-stretch",
36589
- isLgUp && (_optionalChain([meta, 'optionalAccess', _689 => _689.width]) || "flex-1 min-w-0"),
36590
- _optionalChain([meta, 'optionalAccess', _690 => _690.headerClassName]),
36625
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _691 => _691.width]) || "flex-1 min-w-0"),
36626
+ _optionalChain([meta, 'optionalAccess', _692 => _692.headerClassName]),
36591
36627
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
36592
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _691 => _691.hideAt]))
36628
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _693 => _693.hideAt]))
36593
36629
  ),
36594
36630
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36595
36631
  DataTableColumnFilter,
@@ -36608,7 +36644,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
36608
36644
  isLgUp && alignJustify(align),
36609
36645
  canSort && "group cursor-pointer"
36610
36646
  ),
36611
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _692 => _692(column.id)]) : void 0,
36647
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _694 => _694(column.id)]) : void 0,
36612
36648
  children: [
36613
36649
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
36614
36650
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -36673,7 +36709,7 @@ function DataTableSkeleton({
36673
36709
  }) {
36674
36710
  const table = useDataTableContext();
36675
36711
  const columns = table.getVisibleFlatColumns();
36676
- const firstColumnId = _optionalChain([columns, 'access', _693 => _693[0], 'optionalAccess', _694 => _694.id]);
36712
+ const firstColumnId = _optionalChain([columns, 'access', _695 => _695[0], 'optionalAccess', _696 => _696.id]);
36677
36713
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
36678
36714
  "div",
36679
36715
  {
@@ -36697,7 +36733,7 @@ function DataTableSkeleton({
36697
36733
  {
36698
36734
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
36699
36735
  "flex flex-col justify-center shrink-0",
36700
- _optionalChain([meta, 'optionalAccess', _695 => _695.width]) || "flex-1"
36736
+ _optionalChain([meta, 'optionalAccess', _697 => _697.width]) || "flex-1"
36701
36737
  ),
36702
36738
  children: [
36703
36739
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
@@ -36746,7 +36782,7 @@ function DataTableRowImpl({
36746
36782
  const handleClick = _react.useCallback.call(void 0,
36747
36783
  (e) => {
36748
36784
  const target = e.target;
36749
- if (!_optionalChain([containerRef, 'access', _696 => _696.current, 'optionalAccess', _697 => _697.contains, 'call', _698 => _698(target)])) {
36785
+ if (!_optionalChain([containerRef, 'access', _698 => _698.current, 'optionalAccess', _699 => _699.contains, 'call', _700 => _700(target)])) {
36750
36786
  if (isLinkMode) e.preventDefault();
36751
36787
  return;
36752
36788
  }
@@ -36754,7 +36790,7 @@ function DataTableRowImpl({
36754
36790
  if (isLinkMode) e.preventDefault();
36755
36791
  return;
36756
36792
  }
36757
- _optionalChain([onClick, 'optionalCall', _699 => _699(row.original)]);
36793
+ _optionalChain([onClick, 'optionalCall', _701 => _701(row.original)]);
36758
36794
  },
36759
36795
  [onClick, row.original, isLinkMode]
36760
36796
  );
@@ -36779,10 +36815,10 @@ function DataTableRowImpl({
36779
36815
  {
36780
36816
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
36781
36817
  "flex flex-col overflow-hidden",
36782
- alignJustify(_optionalChain([meta, 'optionalAccess', _700 => _700.align])),
36783
- _optionalChain([meta, 'optionalAccess', _701 => _701.width]) || "flex-1 min-w-0",
36784
- _optionalChain([meta, 'optionalAccess', _702 => _702.cellClassName]),
36785
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _703 => _703.hideAt]))
36818
+ alignJustify(_optionalChain([meta, 'optionalAccess', _702 => _702.align])),
36819
+ _optionalChain([meta, 'optionalAccess', _703 => _703.width]) || "flex-1 min-w-0",
36820
+ _optionalChain([meta, 'optionalAccess', _704 => _704.cellClassName]),
36821
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _705 => _705.hideAt]))
36786
36822
  ),
36787
36823
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
36788
36824
  },
@@ -36861,7 +36897,7 @@ function DataTableBody({
36861
36897
  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: [
36862
36898
  rows.map((row, index) => {
36863
36899
  const item = row.original;
36864
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _704 => _704(item)]), () => ( void 0));
36900
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _706 => _706(item)]), () => ( void 0));
36865
36901
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
36866
36902
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36867
36903
  DataTableRow,
@@ -36871,7 +36907,7 @@ function DataTableBody({
36871
36907
  href,
36872
36908
  compact,
36873
36909
  className: cls,
36874
- subRow: _optionalChain([renderSubRow, 'optionalCall', _705 => _705(item)])
36910
+ subRow: _optionalChain([renderSubRow, 'optionalCall', _707 => _707(item)])
36875
36911
  },
36876
36912
  row.id
36877
36913
  );
@@ -36926,7 +36962,7 @@ function DataTableInfiniteFooter({
36926
36962
  if (!sentinel) return;
36927
36963
  const observer = new IntersectionObserver(
36928
36964
  (entries) => {
36929
- if (_optionalChain([entries, 'access', _706 => _706[0], 'optionalAccess', _707 => _707.isIntersecting])) onLoadMoreRef.current();
36965
+ if (_optionalChain([entries, 'access', _708 => _708[0], 'optionalAccess', _709 => _709.isIntersecting])) onLoadMoreRef.current();
36930
36966
  },
36931
36967
  { rootMargin }
36932
36968
  );
@@ -36974,7 +37010,7 @@ function DataTableRowCount({
36974
37010
  const table = useDataTableContext();
36975
37011
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
36976
37012
  if (hideWhenEmpty && count === 0) return null;
36977
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _708 => _708(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
37013
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _710 => _710(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
36978
37014
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
36979
37015
  "span",
36980
37016
  {
@@ -37133,7 +37169,7 @@ function SearchInput({
37133
37169
  if (!showHiddenTags) return;
37134
37170
  const handleClick = (e) => {
37135
37171
  const target = e.target;
37136
- if (!_optionalChain([hiddenTagsRef, 'access', _709 => _709.current, 'optionalAccess', _710 => _710.contains, 'call', _711 => _711(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _712 => _712.current, 'optionalAccess', _713 => _713.contains, 'call', _714 => _714(target)])) {
37172
+ if (!_optionalChain([hiddenTagsRef, 'access', _711 => _711.current, 'optionalAccess', _712 => _712.contains, 'call', _713 => _713(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _714 => _714.current, 'optionalAccess', _715 => _715.contains, 'call', _716 => _716(target)])) {
37137
37173
  setShowHiddenTags(false);
37138
37174
  }
37139
37175
  };
@@ -37181,10 +37217,10 @@ function SearchInput({
37181
37217
  } else {
37182
37218
  setInternalValue("");
37183
37219
  }
37184
- _optionalChain([inputRef, 'access', _715 => _715.current, 'optionalAccess', _716 => _716.focus, 'call', _717 => _717()]);
37220
+ _optionalChain([inputRef, 'access', _717 => _717.current, 'optionalAccess', _718 => _718.focus, 'call', _719 => _719()]);
37185
37221
  };
37186
37222
  const handleResultClick = (result, e) => {
37187
- _optionalChain([onResultSelect, 'optionalCall', _718 => _718(
37223
+ _optionalChain([onResultSelect, 'optionalCall', _720 => _720(
37188
37224
  result,
37189
37225
  e ? {
37190
37226
  metaKey: e.metaKey,
@@ -37216,7 +37252,7 @@ function SearchInput({
37216
37252
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
37217
37253
  handleResultClick(flatResults[highlightedIndex]);
37218
37254
  } else {
37219
- _optionalChain([onSubmit, 'optionalCall', _719 => _719(currentValue)]);
37255
+ _optionalChain([onSubmit, 'optionalCall', _721 => _721(currentValue)]);
37220
37256
  }
37221
37257
  break;
37222
37258
  case "Escape":
@@ -37294,7 +37330,7 @@ function SearchInput({
37294
37330
  dropdownVisible && "!border-ods-accent"
37295
37331
  ),
37296
37332
  onClick: () => {
37297
- _optionalChain([inputRef, 'access', _720 => _720.current, 'optionalAccess', _721 => _721.focus, 'call', _722 => _722()]);
37333
+ _optionalChain([inputRef, 'access', _722 => _722.current, 'optionalAccess', _723 => _723.focus, 'call', _724 => _724()]);
37298
37334
  setIsOpen(true);
37299
37335
  },
37300
37336
  children: [
@@ -37378,10 +37414,10 @@ function SearchInput({
37378
37414
  align: "start",
37379
37415
  onOpenAutoFocus: (e) => {
37380
37416
  e.preventDefault();
37381
- _optionalChain([inputRef, 'access', _723 => _723.current, 'optionalAccess', _724 => _724.focus, 'call', _725 => _725()]);
37417
+ _optionalChain([inputRef, 'access', _725 => _725.current, 'optionalAccess', _726 => _726.focus, 'call', _727 => _727()]);
37382
37418
  },
37383
37419
  onInteractOutside: (e) => {
37384
- if (_optionalChain([containerRef, 'access', _726 => _726.current, 'optionalAccess', _727 => _727.contains, 'call', _728 => _728(e.target)])) {
37420
+ if (_optionalChain([containerRef, 'access', _728 => _728.current, 'optionalAccess', _729 => _729.contains, 'call', _730 => _730(e.target)])) {
37385
37421
  e.preventDefault();
37386
37422
  }
37387
37423
  },
@@ -37398,10 +37434,10 @@ function SearchInput({
37398
37434
  ref: hiddenTagsPopupRef,
37399
37435
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
37400
37436
  style: {
37401
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _729 => _729.current, 'optionalAccess', _730 => _730.getBoundingClientRect, 'call', _731 => _731(), 'access', _732 => _732.left]), () => ( 0))) : 0
37437
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _731 => _731.current, 'optionalAccess', _732 => _732.getBoundingClientRect, 'call', _733 => _733(), 'access', _734 => _734.left]), () => ( 0))) : 0
37402
37438
  },
37403
37439
  onRemove: (value2) => {
37404
- _optionalChain([onFilterRemove, 'optionalCall', _733 => _733(value2)]);
37440
+ _optionalChain([onFilterRemove, 'optionalCall', _735 => _735(value2)]);
37405
37441
  if (hiddenCount <= 1) setShowHiddenTags(false);
37406
37442
  }
37407
37443
  }
@@ -37452,7 +37488,7 @@ function FilterListItem({
37452
37488
  }) {
37453
37489
  const handleToggle = () => {
37454
37490
  if (disabled) return;
37455
- _optionalChain([onToggle, 'optionalCall', _734 => _734(!selected)]);
37491
+ _optionalChain([onToggle, 'optionalCall', _736 => _736(!selected)]);
37456
37492
  };
37457
37493
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
37458
37494
  "div",
@@ -37499,7 +37535,7 @@ function FilterListItem({
37499
37535
  CheckboxPrimitive4.Root,
37500
37536
  {
37501
37537
  checked: selected,
37502
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _735 => _735(c === true)]),
37538
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _737 => _737(c === true)]),
37503
37539
  onClick: (e) => e.stopPropagation(),
37504
37540
  disabled,
37505
37541
  "aria-label": title,
@@ -37598,7 +37634,7 @@ function TagSearchInput({
37598
37634
  if (!showHiddenTags) return;
37599
37635
  const handleClick = (e) => {
37600
37636
  const target = e.target;
37601
- if (!_optionalChain([hiddenTagsRef, 'access', _736 => _736.current, 'optionalAccess', _737 => _737.contains, 'call', _738 => _738(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _739 => _739.current, 'optionalAccess', _740 => _740.contains, 'call', _741 => _741(target)])) {
37637
+ if (!_optionalChain([hiddenTagsRef, 'access', _738 => _738.current, 'optionalAccess', _739 => _739.contains, 'call', _740 => _740(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _741 => _741.current, 'optionalAccess', _742 => _742.contains, 'call', _743 => _743(target)])) {
37602
37638
  setShowHiddenTags(false);
37603
37639
  }
37604
37640
  };
@@ -37614,13 +37650,13 @@ function TagSearchInput({
37614
37650
  e.preventDefault();
37615
37651
  onSubmit(searchValue);
37616
37652
  }
37617
- _optionalChain([onKeyDown, 'optionalCall', _742 => _742(e)]);
37653
+ _optionalChain([onKeyDown, 'optionalCall', _744 => _744(e)]);
37618
37654
  };
37619
37655
  const handleClearAll = (e) => {
37620
37656
  e.stopPropagation();
37621
37657
  e.preventDefault();
37622
- _optionalChain([onClearAll, 'optionalCall', _743 => _743()]);
37623
- _optionalChain([inputRef, 'access', _744 => _744.current, 'optionalAccess', _745 => _745.focus, 'call', _746 => _746()]);
37658
+ _optionalChain([onClearAll, 'optionalCall', _745 => _745()]);
37659
+ _optionalChain([inputRef, 'access', _746 => _746.current, 'optionalAccess', _747 => _747.focus, 'call', _748 => _748()]);
37624
37660
  };
37625
37661
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
37626
37662
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -37637,7 +37673,7 @@ function TagSearchInput({
37637
37673
  className
37638
37674
  ),
37639
37675
  onClick: () => {
37640
- if (!disabled) _optionalChain([inputRef, 'access', _747 => _747.current, 'optionalAccess', _748 => _748.focus, 'call', _749 => _749()]);
37676
+ if (!disabled) _optionalChain([inputRef, 'access', _749 => _749.current, 'optionalAccess', _750 => _750.focus, 'call', _751 => _751()]);
37641
37677
  },
37642
37678
  children: [
37643
37679
  /* @__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" }) }),
@@ -37709,7 +37745,7 @@ function TagSearchInput({
37709
37745
  items: hiddenTags,
37710
37746
  disabled,
37711
37747
  style: {
37712
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _750 => _750.current, 'optionalAccess', _751 => _751.getBoundingClientRect, 'call', _752 => _752(), 'access', _753 => _753.left]), () => ( 0))) : 0
37748
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _752 => _752.current, 'optionalAccess', _753 => _753.getBoundingClientRect, 'call', _754 => _754(), 'access', _755 => _755.left]), () => ( 0))) : 0
37713
37749
  },
37714
37750
  onRemove: (value) => {
37715
37751
  onTagRemove(value);
@@ -37810,7 +37846,7 @@ function MarkdownEditor({
37810
37846
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
37811
37847
  _react.useEffect.call(void 0, () => {
37812
37848
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
37813
- if (_optionalChain([mod, 'access', _754 => _754.commands, 'optionalAccess', _755 => _755.getExtraCommands])) {
37849
+ if (_optionalChain([mod, 'access', _756 => _756.commands, 'optionalAccess', _757 => _757.getExtraCommands])) {
37814
37850
  setDefaultExtraCommands(mod.commands.getExtraCommands());
37815
37851
  }
37816
37852
  });
@@ -37844,7 +37880,7 @@ function MarkdownEditor({
37844
37880
  const isImage = file.type.startsWith("image/");
37845
37881
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
37846
37882
  insertTextAtCursor(markdown);
37847
- _optionalChain([onFileUploaded, 'optionalCall', _756 => _756(url, file.name)]);
37883
+ _optionalChain([onFileUploaded, 'optionalCall', _758 => _758(url, file.name)]);
37848
37884
  } catch (error) {
37849
37885
  console.error("File upload failed:", error);
37850
37886
  setUploadProgress("Upload failed. Please try again.");
@@ -37857,7 +37893,7 @@ function MarkdownEditor({
37857
37893
  );
37858
37894
  const handleFileInputChange = _react.useCallback.call(void 0,
37859
37895
  (e) => {
37860
- const file = _optionalChain([e, 'access', _757 => _757.target, 'access', _758 => _758.files, 'optionalAccess', _759 => _759[0]]);
37896
+ const file = _optionalChain([e, 'access', _759 => _759.target, 'access', _760 => _760.files, 'optionalAccess', _761 => _761[0]]);
37861
37897
  if (file) {
37862
37898
  handleFileUpload(file);
37863
37899
  e.target.value = "";
@@ -37868,7 +37904,7 @@ function MarkdownEditor({
37868
37904
  const handlePaste = _react.useCallback.call(void 0,
37869
37905
  (e) => {
37870
37906
  if (!onUploadFile) return;
37871
- const items = _optionalChain([e, 'access', _760 => _760.clipboardData, 'optionalAccess', _761 => _761.items]);
37907
+ const items = _optionalChain([e, 'access', _762 => _762.clipboardData, 'optionalAccess', _763 => _763.items]);
37872
37908
  if (!items) return;
37873
37909
  for (const item of items) {
37874
37910
  if (item.type.startsWith("image/")) {
@@ -37893,7 +37929,7 @@ function MarkdownEditor({
37893
37929
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
37894
37930
  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" }),
37895
37931
  execute: () => {
37896
- _optionalChain([fileInputRef, 'access', _762 => _762.current, 'optionalAccess', _763 => _763.click, 'call', _764 => _764()]);
37932
+ _optionalChain([fileInputRef, 'access', _764 => _764.current, 'optionalAccess', _765 => _765.click, 'call', _766 => _766()]);
37897
37933
  }
37898
37934
  } : null;
37899
37935
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -37905,7 +37941,7 @@ function MarkdownEditor({
37905
37941
  const EDGE_ZONE = 60;
37906
37942
  const MAX_SCROLL_SPEED = 15;
37907
37943
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
37908
- let node = _optionalChain([el, 'optionalAccess', _765 => _765.parentElement]);
37944
+ let node = _optionalChain([el, 'optionalAccess', _767 => _767.parentElement]);
37909
37945
  while (node && node !== document.documentElement) {
37910
37946
  const { overflowY } = window.getComputedStyle(node);
37911
37947
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -38048,7 +38084,7 @@ function matchesAccept(file, accept) {
38048
38084
  });
38049
38085
  }
38050
38086
  function dragHasFiles(e) {
38051
- const types = _optionalChain([e, 'access', _766 => _766.dataTransfer, 'optionalAccess', _767 => _767.types]);
38087
+ const types = _optionalChain([e, 'access', _768 => _768.dataTransfer, 'optionalAccess', _769 => _769.types]);
38052
38088
  if (!types) return false;
38053
38089
  for (let i = 0; i < types.length; i++) {
38054
38090
  if (types[i] === "Files") return true;
@@ -38144,7 +38180,7 @@ function FileUpload({
38144
38180
  e.stopPropagation();
38145
38181
  setDragActive(false);
38146
38182
  if (disabled) return;
38147
- if (_optionalChain([e, 'access', _768 => _768.dataTransfer, 'access', _769 => _769.files, 'optionalAccess', _770 => _770.length])) {
38183
+ if (_optionalChain([e, 'access', _770 => _770.dataTransfer, 'access', _771 => _771.files, 'optionalAccess', _772 => _772.length])) {
38148
38184
  handleFiles(e.dataTransfer.files);
38149
38185
  }
38150
38186
  };
@@ -38172,7 +38208,7 @@ function FileUpload({
38172
38208
  e.preventDefault();
38173
38209
  dragCounter = 0;
38174
38210
  setDragActive(false);
38175
- if (_optionalChain([e, 'access', _771 => _771.dataTransfer, 'optionalAccess', _772 => _772.files, 'optionalAccess', _773 => _773.length])) {
38211
+ if (_optionalChain([e, 'access', _773 => _773.dataTransfer, 'optionalAccess', _774 => _774.files, 'optionalAccess', _775 => _775.length])) {
38176
38212
  handleFilesRef.current(e.dataTransfer.files);
38177
38213
  }
38178
38214
  };
@@ -38194,7 +38230,7 @@ function FileUpload({
38194
38230
  };
38195
38231
  }, [acceptWindowDrops, disabled]);
38196
38232
  const handleFileSelect = (e) => {
38197
- if (_optionalChain([e, 'access', _774 => _774.target, 'access', _775 => _775.files, 'optionalAccess', _776 => _776.length])) {
38233
+ if (_optionalChain([e, 'access', _776 => _776.target, 'access', _777 => _777.files, 'optionalAccess', _778 => _778.length])) {
38198
38234
  handleFiles(e.target.files);
38199
38235
  }
38200
38236
  };
@@ -38211,7 +38247,7 @@ function FileUpload({
38211
38247
  };
38212
38248
  const openDialog = async () => {
38213
38249
  if (disabled) return;
38214
- _optionalChain([fileInputRef, 'access', _777 => _777.current, 'optionalAccess', _778 => _778.click, 'call', _779 => _779()]);
38250
+ _optionalChain([fileInputRef, 'access', _779 => _779.current, 'optionalAccess', _780 => _780.click, 'call', _781 => _781()]);
38215
38251
  };
38216
38252
  const displayError = error || validationError || void 0;
38217
38253
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -38273,7 +38309,7 @@ function FileUpload({
38273
38309
  "button",
38274
38310
  {
38275
38311
  type: "button",
38276
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _780 => _780(entry.id)]),
38312
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _782 => _782(entry.id)]),
38277
38313
  className: "shrink-0 text-ods-error hover:opacity-80 transition-opacity",
38278
38314
  "aria-label": `Remove ${entry.fileName}`,
38279
38315
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.TrashIcon, { className: "size-6" })
@@ -38404,7 +38440,7 @@ function ImageUploader({
38404
38440
  onChange(file);
38405
38441
  };
38406
38442
  const handleFileSelect = (e) => {
38407
- validateAndEmit(_optionalChain([e, 'access', _781 => _781.target, 'access', _782 => _782.files, 'optionalAccess', _783 => _783[0]]));
38443
+ validateAndEmit(_optionalChain([e, 'access', _783 => _783.target, 'access', _784 => _784.files, 'optionalAccess', _785 => _785[0]]));
38408
38444
  if (inputRef.current) inputRef.current.value = "";
38409
38445
  };
38410
38446
  const handleDrag = (e) => {
@@ -38419,11 +38455,11 @@ function ImageUploader({
38419
38455
  e.stopPropagation();
38420
38456
  setDragActive(false);
38421
38457
  if (!interactive) return;
38422
- validateAndEmit(_optionalChain([e, 'access', _784 => _784.dataTransfer, 'access', _785 => _785.files, 'optionalAccess', _786 => _786[0]]));
38458
+ validateAndEmit(_optionalChain([e, 'access', _786 => _786.dataTransfer, 'access', _787 => _787.files, 'optionalAccess', _788 => _788[0]]));
38423
38459
  };
38424
38460
  const openDialog = () => {
38425
38461
  if (!interactive) return;
38426
- _optionalChain([inputRef, 'access', _787 => _787.current, 'optionalAccess', _788 => _788.click, 'call', _789 => _789()]);
38462
+ _optionalChain([inputRef, 'access', _789 => _789.current, 'optionalAccess', _790 => _790.click, 'call', _791 => _791()]);
38427
38463
  };
38428
38464
  const handleRootKeyDown = (e) => {
38429
38465
  if (hasImage || !interactive) return;
@@ -38614,8 +38650,8 @@ function ColorPresetSelect({
38614
38650
  }) {
38615
38651
  const selectedPreset = presets.find((p) => p.key === presetKey);
38616
38652
  const isCustom = !selectedPreset;
38617
- const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _790 => _790.label]), () => ( "Custom"));
38618
- const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _791 => _791.color]), () => ( value));
38653
+ const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _792 => _792.label]), () => ( "Custom"));
38654
+ const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _793 => _793.color]), () => ( value));
38619
38655
  const groups = [
38620
38656
  {
38621
38657
  items: [
@@ -38905,7 +38941,7 @@ function TicketStatusConfigRow({
38905
38941
  _chunkQJGRP2YEcjs.Input,
38906
38942
  {
38907
38943
  value: name,
38908
- onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _792 => _792(e.target.value)]),
38944
+ onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _794 => _794(e.target.value)]),
38909
38945
  disabled: isSystem,
38910
38946
  readOnly: isSystem,
38911
38947
  "aria-label": "Status name",
@@ -39278,14 +39314,14 @@ function TicketInfoSection({
39278
39314
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
39279
39315
  SquareAvatar,
39280
39316
  {
39281
- src: _optionalChain([organization, 'optionalAccess', _793 => _793.imageSrc]),
39282
- alt: _optionalChain([organization, 'optionalAccess', _794 => _794.name]),
39283
- fallback: _optionalChain([organization, 'optionalAccess', _795 => _795.name]) || "Org",
39317
+ src: _optionalChain([organization, 'optionalAccess', _795 => _795.imageSrc]),
39318
+ alt: _optionalChain([organization, 'optionalAccess', _796 => _796.name]),
39319
+ fallback: _optionalChain([organization, 'optionalAccess', _797 => _797.name]) || "Org",
39284
39320
  size: "md",
39285
39321
  className: "shrink-0"
39286
39322
  }
39287
39323
  ),
39288
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _796 => _796.name]) || "Unassigned", label: "Organization" })
39324
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _798 => _798.name]) || "Unassigned", label: "Organization" })
39289
39325
  ] }),
39290
39326
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
39291
39327
  AssigneeDropdown,
@@ -39306,10 +39342,10 @@ function TicketInfoSection({
39306
39342
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
39307
39343
  InfoCell2,
39308
39344
  {
39309
- value: _optionalChain([device, 'optionalAccess', _797 => _797.name]) || "Unassigned",
39345
+ value: _optionalChain([device, 'optionalAccess', _799 => _799.name]) || "Unassigned",
39310
39346
  label: "Device",
39311
- icon: _optionalChain([device, 'optionalAccess', _798 => _798.icon]),
39312
- onClick: _optionalChain([device, 'optionalAccess', _799 => _799.onClick])
39347
+ icon: _optionalChain([device, 'optionalAccess', _800 => _800.icon]),
39348
+ onClick: _optionalChain([device, 'optionalAccess', _801 => _801.onClick])
39313
39349
  }
39314
39350
  ),
39315
39351
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -39639,7 +39675,7 @@ function RoadmapCard({
39639
39675
  const compactHref = safeHref(_nullishCoalesce(href, () => ( null)));
39640
39676
  const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
39641
39677
  const hasFigma = !!item.figmaUrl;
39642
- const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _800 => _800.screenshots, 'optionalAccess', _801 => _801.length]), () => ( 0))) > 0;
39678
+ const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _802 => _802.screenshots, 'optionalAccess', _803 => _803.length]), () => ( 0))) > 0;
39643
39679
  const typeLabel = getTaskTypeLabel(item.customItemId);
39644
39680
  const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
39645
39681
  const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -39658,7 +39694,7 @@ function RoadmapCard({
39658
39694
  unoptimized: true,
39659
39695
  className: "h-8 w-8 object-contain"
39660
39696
  }
39661
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _802 => _802.title, 'optionalAccess', _803 => _803.substring, 'call', _804 => _804(0, 2)]) || "??" })
39697
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _804 => _804.title, 'optionalAccess', _805 => _805.substring, 'call', _806 => _806(0, 2)]) || "??" })
39662
39698
  }
39663
39699
  ),
39664
39700
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -39733,7 +39769,7 @@ function RoadmapCard({
39733
39769
  unoptimized: true,
39734
39770
  className: "object-contain p-1"
39735
39771
  }
39736
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _805 => _805.title, 'optionalAccess', _806 => _806.substring, 'call', _807 => _807(0, 2)]) || "??" }) }),
39772
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _807 => _807.title, 'optionalAccess', _808 => _808.substring, 'call', _809 => _809(0, 2)]) || "??" }) }),
39737
39773
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
39738
39774
  /* @__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 }) }),
39739
39775
  /* @__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: [
@@ -40243,7 +40279,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
40243
40279
  ] }) : null,
40244
40280
  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
40245
40281
  ] }),
40246
- _optionalChain([anchorProps, 'optionalAccess', _808 => _808.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
40282
+ _optionalChain([anchorProps, 'optionalAccess', _810 => _810.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
40247
40283
  ] });
40248
40284
  if (!anchorProps) {
40249
40285
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
@@ -40313,7 +40349,7 @@ function getDefaultOptions() {
40313
40349
  // node_modules/date-fns/startOfWeek.mjs
40314
40350
  function startOfWeek(date, options) {
40315
40351
  const defaultOptions2 = getDefaultOptions();
40316
- const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _809 => _809.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _810 => _810.locale, 'optionalAccess', _811 => _811.options, 'optionalAccess', _812 => _812.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _813 => _813.locale, 'optionalAccess', _814 => _814.options, 'optionalAccess', _815 => _815.weekStartsOn]))), () => ( 0));
40352
+ const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _811 => _811.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _812 => _812.locale, 'optionalAccess', _813 => _813.options, 'optionalAccess', _814 => _814.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _815 => _815.locale, 'optionalAccess', _816 => _816.options, 'optionalAccess', _817 => _817.weekStartsOn]))), () => ( 0));
40317
40353
  const _date = toDate(date);
40318
40354
  const day = _date.getDay();
40319
40355
  const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
@@ -40488,7 +40524,7 @@ var formatDistance = (token, count, options) => {
40488
40524
  } else {
40489
40525
  result = tokenValue.other.replace("{{count}}", count.toString());
40490
40526
  }
40491
- if (_optionalChain([options, 'optionalAccess', _816 => _816.addSuffix])) {
40527
+ if (_optionalChain([options, 'optionalAccess', _818 => _818.addSuffix])) {
40492
40528
  if (options.comparison && options.comparison > 0) {
40493
40529
  return "in " + result;
40494
40530
  } else {
@@ -40555,15 +40591,15 @@ var formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale
40555
40591
  // node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs
40556
40592
  function buildLocalizeFn(args) {
40557
40593
  return (value, options) => {
40558
- const context = _optionalChain([options, 'optionalAccess', _817 => _817.context]) ? String(options.context) : "standalone";
40594
+ const context = _optionalChain([options, 'optionalAccess', _819 => _819.context]) ? String(options.context) : "standalone";
40559
40595
  let valuesArray;
40560
40596
  if (context === "formatting" && args.formattingValues) {
40561
40597
  const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
40562
- const width = _optionalChain([options, 'optionalAccess', _818 => _818.width]) ? String(options.width) : defaultWidth;
40598
+ const width = _optionalChain([options, 'optionalAccess', _820 => _820.width]) ? String(options.width) : defaultWidth;
40563
40599
  valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
40564
40600
  } else {
40565
40601
  const defaultWidth = args.defaultWidth;
40566
- const width = _optionalChain([options, 'optionalAccess', _819 => _819.width]) ? String(options.width) : args.defaultWidth;
40602
+ const width = _optionalChain([options, 'optionalAccess', _821 => _821.width]) ? String(options.width) : args.defaultWidth;
40567
40603
  valuesArray = args.values[width] || args.values[defaultWidth];
40568
40604
  }
40569
40605
  const index = args.argumentCallback ? args.argumentCallback(value) : value;
@@ -40943,7 +40979,7 @@ function getWeekYear(date, options) {
40943
40979
  const _date = toDate(date);
40944
40980
  const year = _date.getFullYear();
40945
40981
  const defaultOptions2 = getDefaultOptions();
40946
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _820 => _820.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _821 => _821.locale, 'optionalAccess', _822 => _822.options, 'optionalAccess', _823 => _823.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _824 => _824.locale, 'optionalAccess', _825 => _825.options, 'optionalAccess', _826 => _826.firstWeekContainsDate]))), () => ( 1));
40982
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _822 => _822.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _823 => _823.locale, 'optionalAccess', _824 => _824.options, 'optionalAccess', _825 => _825.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _826 => _826.locale, 'optionalAccess', _827 => _827.options, 'optionalAccess', _828 => _828.firstWeekContainsDate]))), () => ( 1));
40947
40983
  const firstWeekOfNextYear = constructFrom(date, 0);
40948
40984
  firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
40949
40985
  firstWeekOfNextYear.setHours(0, 0, 0, 0);
@@ -40964,7 +41000,7 @@ function getWeekYear(date, options) {
40964
41000
  // node_modules/date-fns/startOfWeekYear.mjs
40965
41001
  function startOfWeekYear(date, options) {
40966
41002
  const defaultOptions2 = getDefaultOptions();
40967
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _827 => _827.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _828 => _828.locale, 'optionalAccess', _829 => _829.options, 'optionalAccess', _830 => _830.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _831 => _831.locale, 'optionalAccess', _832 => _832.options, 'optionalAccess', _833 => _833.firstWeekContainsDate]))), () => ( 1));
41003
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _829 => _829.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _830 => _830.locale, 'optionalAccess', _831 => _831.options, 'optionalAccess', _832 => _832.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _833 => _833.locale, 'optionalAccess', _834 => _834.options, 'optionalAccess', _835 => _835.firstWeekContainsDate]))), () => ( 1));
40968
41004
  const year = getWeekYear(date, options);
40969
41005
  const firstWeek = constructFrom(date, 0);
40970
41006
  firstWeek.setFullYear(year, 0, firstWeekContainsDate);
@@ -41779,9 +41815,9 @@ var doubleQuoteRegExp = /''/g;
41779
41815
  var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
41780
41816
  function format(date, formatStr, options) {
41781
41817
  const defaultOptions2 = getDefaultOptions();
41782
- const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _834 => _834.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
41783
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _835 => _835.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _836 => _836.locale, 'optionalAccess', _837 => _837.options, 'optionalAccess', _838 => _838.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _839 => _839.locale, 'optionalAccess', _840 => _840.options, 'optionalAccess', _841 => _841.firstWeekContainsDate]))), () => ( 1));
41784
- const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _842 => _842.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _843 => _843.locale, 'optionalAccess', _844 => _844.options, 'optionalAccess', _845 => _845.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _846 => _846.locale, 'optionalAccess', _847 => _847.options, 'optionalAccess', _848 => _848.weekStartsOn]))), () => ( 0));
41818
+ const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _836 => _836.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
41819
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _837 => _837.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _838 => _838.locale, 'optionalAccess', _839 => _839.options, 'optionalAccess', _840 => _840.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _841 => _841.locale, 'optionalAccess', _842 => _842.options, 'optionalAccess', _843 => _843.firstWeekContainsDate]))), () => ( 1));
41820
+ const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _844 => _844.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _845 => _845.locale, 'optionalAccess', _846 => _846.options, 'optionalAccess', _847 => _847.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _848 => _848.locale, 'optionalAccess', _849 => _849.options, 'optionalAccess', _850 => _850.weekStartsOn]))), () => ( 0));
41785
41821
  const originalDate = toDate(date);
41786
41822
  if (!isValid(originalDate)) {
41787
41823
  throw new RangeError("Invalid time value");
@@ -41822,7 +41858,7 @@ function format(date, formatStr, options) {
41822
41858
  return parts.map((part) => {
41823
41859
  if (!part.isToken) return part.value;
41824
41860
  const token = part.value;
41825
- if (!_optionalChain([options, 'optionalAccess', _849 => _849.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _850 => _850.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
41861
+ if (!_optionalChain([options, 'optionalAccess', _851 => _851.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _852 => _852.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
41826
41862
  warnOrThrowProtectedError(token, formatStr, String(date));
41827
41863
  }
41828
41864
  const formatter = formatters[token[0]];
@@ -42003,7 +42039,7 @@ function ProgramCard({
42003
42039
  const dur = formatDurationFromRange(w.start_at, w.end_at);
42004
42040
  typeMeta = dur ? `${time} \xB7 ${dur}` : time;
42005
42041
  }
42006
- const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _851 => _851.labels, 'optionalAccess', _852 => _852.singular])].filter(
42042
+ const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _853 => _853.labels, 'optionalAccess', _854 => _854.singular])].filter(
42007
42043
  (s) => typeof s === "string" && s.length > 0
42008
42044
  );
42009
42045
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "a", { href, target, rel, className: _chunkFIG2RKZFcjs.cn.call(void 0, COMPACT_CARD_OUTER, className), children: [
@@ -42160,7 +42196,7 @@ function ProgramCard({
42160
42196
 
42161
42197
 
42162
42198
  function CampaignCardAdmin({ campaign, className, anchorProps }) {
42163
- const goalsCount = _optionalChain([campaign, 'access', _853 => _853.goals, 'optionalAccess', _854 => _854.length]) || 0;
42199
+ const goalsCount = _optionalChain([campaign, 'access', _855 => _855.goals, 'optionalAccess', _856 => _856.length]) || 0;
42164
42200
  const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
42165
42201
  /* @__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" }) }),
42166
42202
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -42322,7 +42358,7 @@ function resolveSourceRowCTA(row, ctx = {}) {
42322
42358
  if (row.path && shouldFallbackToPathNav(row) && !row.externalUrl) {
42323
42359
  const safePath = sanitizePath(row.path);
42324
42360
  if (safePath) {
42325
- const docTarget = row.documentType ? _optionalChain([ctx, 'access', _855 => _855.docPlatformTargets, 'optionalAccess', _856 => _856[row.documentType]]) : void 0;
42361
+ const docTarget = row.documentType ? _optionalChain([ctx, 'access', _857 => _857.docPlatformTargets, 'optionalAccess', _858 => _858[row.documentType]]) : void 0;
42326
42362
  if (docTarget) {
42327
42363
  const seg = docTarget.basePath.split("/").filter(Boolean).join("/");
42328
42364
  const base = `${_chunkFIG2RKZFcjs.getBaseUrl.call(void 0, docTarget.platform)}${seg ? `/${seg}` : ""}/`;
@@ -42537,8 +42573,8 @@ function cardMenuGroups(href, discuss, openDetails) {
42537
42573
  if (href) {
42538
42574
  items.push({
42539
42575
  id: "open-details",
42540
- label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _857 => _857.label]), () => ( "Open Details")),
42541
- icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _858 => _858.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.EyeIcon, { size: 20 }))),
42576
+ label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _859 => _859.label]), () => ( "Open Details")),
42577
+ icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _860 => _860.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.EyeIcon, { size: 20 }))),
42542
42578
  // Main row → open the entity (same tab, soft Link nav).
42543
42579
  href,
42544
42580
  // Trailing 40px ↗ side-button → open in a new tab.
@@ -42568,8 +42604,8 @@ function HubspotTicketChatCard({
42568
42604
  isNewTab,
42569
42605
  discuss
42570
42606
  }) {
42571
- const status = typeof _optionalChain([chatRef, 'access', _859 => _859.metadata, 'optionalAccess', _860 => _860.status]) === "string" ? chatRef.metadata.status : void 0;
42572
- const statusLabel = typeof _optionalChain([chatRef, 'access', _861 => _861.metadata, 'optionalAccess', _862 => _862.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
42607
+ const status = typeof _optionalChain([chatRef, 'access', _861 => _861.metadata, 'optionalAccess', _862 => _862.status]) === "string" ? chatRef.metadata.status : void 0;
42608
+ const statusLabel = typeof _optionalChain([chatRef, 'access', _863 => _863.metadata, 'optionalAccess', _864 => _864.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
42573
42609
  const statusText = _nullishCoalesce(statusLabel, () => ( formatStatusToken(status)));
42574
42610
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42575
42611
  MingoInfoCard,
@@ -42592,7 +42628,7 @@ function FaqChatCard({
42592
42628
  isNewTab,
42593
42629
  discuss
42594
42630
  }) {
42595
- const section = typeof _optionalChain([chatRef, 'access', _863 => _863.metadata, 'optionalAccess', _864 => _864.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
42631
+ const section = typeof _optionalChain([chatRef, 'access', _865 => _865.metadata, 'optionalAccess', _866 => _866.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
42596
42632
  const statusLabel = section && section.length > 0 ? section : "FAQ";
42597
42633
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42598
42634
  MingoInfoCard,
@@ -42612,7 +42648,7 @@ function SlackChatCard({
42612
42648
  isNewTab,
42613
42649
  discuss
42614
42650
  }) {
42615
- const channelName = typeof _optionalChain([chatRef, 'access', _865 => _865.metadata, 'optionalAccess', _866 => _866.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
42651
+ const channelName = typeof _optionalChain([chatRef, 'access', _867 => _867.metadata, 'optionalAccess', _868 => _868.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
42616
42652
  const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
42617
42653
  const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
42618
42654
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -42652,7 +42688,7 @@ function GenericFinancialChatCard({
42652
42688
  isNewTab,
42653
42689
  discuss
42654
42690
  }) {
42655
- const subtitle = typeof _optionalChain([chatRef, 'access', _867 => _867.metadata, 'optionalAccess', _868 => _868.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
42691
+ const subtitle = typeof _optionalChain([chatRef, 'access', _869 => _869.metadata, 'optionalAccess', _870 => _870.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
42656
42692
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42657
42693
  MingoInfoCard,
42658
42694
  {
@@ -42721,12 +42757,12 @@ function ProductReleaseChatCard({
42721
42757
  discuss
42722
42758
  }) {
42723
42759
  const releaseProps = buildProps(item);
42724
- const status = _optionalChain([item, 'optionalAccess', _869 => _869.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
42760
+ const status = _optionalChain([item, 'optionalAccess', _871 => _871.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
42725
42761
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42726
42762
  EntityMingoCard,
42727
42763
  {
42728
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _870 => _870.title]), () => ( "")),
42729
- description: _optionalChain([item, 'optionalAccess', _871 => _871.summary]) || releaseProps.formattedDate || void 0,
42764
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _872 => _872.title]), () => ( "")),
42765
+ description: _optionalChain([item, 'optionalAccess', _873 => _873.summary]) || releaseProps.formattedDate || void 0,
42730
42766
  cover: releaseProps.coverImage || void 0,
42731
42767
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.Rocket02Icon, { size: 24 }),
42732
42768
  status,
@@ -42743,17 +42779,17 @@ function CampaignChatCard({
42743
42779
  isNewTab,
42744
42780
  discuss
42745
42781
  }) {
42746
- const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _872 => _872.goals])) ? item.goals.length : 0;
42782
+ const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _874 => _874.goals])) ? item.goals.length : 0;
42747
42783
  const meta = [
42748
- _optionalChain([item, 'optionalAccess', _873 => _873.start_date]) ? formatDateShort(item.start_date) : null,
42784
+ _optionalChain([item, 'optionalAccess', _875 => _875.start_date]) ? formatDateShort(item.start_date) : null,
42749
42785
  goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
42750
42786
  "Marketing campaign"
42751
42787
  ].filter(Boolean).join(" \xB7 ");
42752
42788
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42753
42789
  EntityMingoCard,
42754
42790
  {
42755
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _874 => _874.name]), () => ( "")),
42756
- description: meta || _optionalChain([item, 'optionalAccess', _875 => _875.description]) || void 0,
42791
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _876 => _876.name]), () => ( "")),
42792
+ description: meta || _optionalChain([item, 'optionalAccess', _877 => _877.description]) || void 0,
42757
42793
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.Megaphone01Icon, { size: 24 }),
42758
42794
  chatRef,
42759
42795
  isNewTab,
@@ -42806,14 +42842,14 @@ function BlogChatCard({
42806
42842
  hasEmbeddedVideo,
42807
42843
  discuss
42808
42844
  }) {
42809
- const category = Array.isArray(_optionalChain([item, 'optionalAccess', _876 => _876.categories])) ? _optionalChain([item, 'access', _877 => _877.categories, 'access', _878 => _878.find, 'call', _879 => _879((c) => c && c.name), 'optionalAccess', _880 => _880.name]) : void 0;
42845
+ const category = Array.isArray(_optionalChain([item, 'optionalAccess', _878 => _878.categories])) ? _optionalChain([item, 'access', _879 => _879.categories, 'access', _880 => _880.find, 'call', _881 => _881((c) => c && c.name), 'optionalAccess', _882 => _882.name]) : void 0;
42810
42846
  const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
42811
42847
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42812
42848
  EntityMingoCard,
42813
42849
  {
42814
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _881 => _881.title]), () => ( "")),
42815
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _882 => _882.summary]), () => ( void 0)),
42816
- cover: entityCover(_optionalChain([item, 'optionalAccess', _883 => _883.featured_image]), ogPlaceholder),
42850
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _883 => _883.title]), () => ( "")),
42851
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _884 => _884.summary]), () => ( void 0)),
42852
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _885 => _885.featured_image]), ogPlaceholder),
42817
42853
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.NewspaperIcon, { size: 24 }),
42818
42854
  status,
42819
42855
  chatRef,
@@ -42830,13 +42866,13 @@ function CaseStudyChatCard({
42830
42866
  ogPlaceholder,
42831
42867
  discuss
42832
42868
  }) {
42833
- const meta = [_optionalChain([item, 'optionalAccess', _884 => _884.msp, 'optionalAccess', _885 => _885.name]), _optionalChain([item, 'optionalAccess', _886 => _886.user, 'optionalAccess', _887 => _887.full_name])].filter(Boolean).join(" \xB7 ");
42869
+ const meta = [_optionalChain([item, 'optionalAccess', _886 => _886.msp, 'optionalAccess', _887 => _887.name]), _optionalChain([item, 'optionalAccess', _888 => _888.user, 'optionalAccess', _889 => _889.full_name])].filter(Boolean).join(" \xB7 ");
42834
42870
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42835
42871
  EntityMingoCard,
42836
42872
  {
42837
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _888 => _888.title]), () => ( "")),
42838
- description: _optionalChain([item, 'optionalAccess', _889 => _889.summary]) || meta || void 0,
42839
- cover: entityCover(_optionalChain([item, 'optionalAccess', _890 => _890.featured_image]), ogPlaceholder),
42873
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _890 => _890.title]), () => ( "")),
42874
+ description: _optionalChain([item, 'optionalAccess', _891 => _891.summary]) || meta || void 0,
42875
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _892 => _892.featured_image]), ogPlaceholder),
42840
42876
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.TrophyIcon, { size: 24 }),
42841
42877
  status: { label: "Case study", variant: "grey" },
42842
42878
  chatRef,
@@ -42853,13 +42889,13 @@ function CustomerInterviewChatCard({
42853
42889
  ogPlaceholder,
42854
42890
  discuss
42855
42891
  }) {
42856
- const meta = [_optionalChain([item, 'optionalAccess', _891 => _891.user, 'optionalAccess', _892 => _892.full_name]), _optionalChain([item, 'optionalAccess', _893 => _893.msp, 'optionalAccess', _894 => _894.name])].filter(Boolean).join(" \xB7 ");
42892
+ const meta = [_optionalChain([item, 'optionalAccess', _893 => _893.user, 'optionalAccess', _894 => _894.full_name]), _optionalChain([item, 'optionalAccess', _895 => _895.msp, 'optionalAccess', _896 => _896.name])].filter(Boolean).join(" \xB7 ");
42857
42893
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42858
42894
  EntityMingoCard,
42859
42895
  {
42860
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _895 => _895.title]), () => ( "")),
42861
- description: _optionalChain([item, 'optionalAccess', _896 => _896.video_summary]) || meta || void 0,
42862
- cover: entityCover(_optionalChain([item, 'optionalAccess', _897 => _897.featured_image]), ogPlaceholder),
42896
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _897 => _897.title]), () => ( "")),
42897
+ description: _optionalChain([item, 'optionalAccess', _898 => _898.video_summary]) || meta || void 0,
42898
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _899 => _899.featured_image]), ogPlaceholder),
42863
42899
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.MicrophoneIcon, { size: 24 }),
42864
42900
  status: { label: "Interview", variant: "grey" },
42865
42901
  chatRef,
@@ -42876,13 +42912,13 @@ function InvestorUpdateChatCard({
42876
42912
  ogPlaceholder,
42877
42913
  discuss
42878
42914
  }) {
42879
- const title = _optionalChain([item, 'optionalAccess', _898 => _898.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _899 => _899.update_number]), () => ( "?"))}`;
42915
+ const title = _optionalChain([item, 'optionalAccess', _900 => _900.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _901 => _901.update_number]), () => ( "?"))}`;
42880
42916
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42881
42917
  EntityMingoCard,
42882
42918
  {
42883
42919
  title,
42884
- description: _optionalChain([item, 'optionalAccess', _900 => _900.strategic_update]) || _optionalChain([item, 'optionalAccess', _901 => _901.content]) || formatInvestorUpdatePeriod(_optionalChain([item, 'optionalAccess', _902 => _902.period_start]), _optionalChain([item, 'optionalAccess', _903 => _903.period_end])) || void 0,
42885
- cover: entityCover(_optionalChain([item, 'optionalAccess', _904 => _904.featured_image]), ogPlaceholder),
42920
+ description: _optionalChain([item, 'optionalAccess', _902 => _902.strategic_update]) || _optionalChain([item, 'optionalAccess', _903 => _903.content]) || formatInvestorUpdatePeriod(_optionalChain([item, 'optionalAccess', _904 => _904.period_start]), _optionalChain([item, 'optionalAccess', _905 => _905.period_end])) || void 0,
42921
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _906 => _906.featured_image]), ogPlaceholder),
42886
42922
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.PresentationLineIcon, { size: 24 }),
42887
42923
  status: { label: "Investor update", variant: "grey" },
42888
42924
  chatRef,
@@ -42899,12 +42935,12 @@ function OnboardingGuideChatCard({
42899
42935
  ogPlaceholder,
42900
42936
  discuss
42901
42937
  }) {
42902
- const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _905 => _905.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _906 => _906.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _907 => _907.og_image_url]), ogPlaceholder)));
42938
+ const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _907 => _907.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _908 => _908.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _909 => _909.og_image_url]), ogPlaceholder)));
42903
42939
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42904
42940
  EntityMingoCard,
42905
42941
  {
42906
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _908 => _908.title]), () => ( "")),
42907
- description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _909 => _909.summary]), () => ( _optionalChain([item, 'optionalAccess', _910 => _910.description]))), () => ( void 0)),
42942
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _910 => _910.title]), () => ( "")),
42943
+ description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _911 => _911.summary]), () => ( _optionalChain([item, 'optionalAccess', _912 => _912.description]))), () => ( void 0)),
42908
42944
  cover,
42909
42945
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.CompassIcon, { size: 24 }),
42910
42946
  status: { label: "Guide", variant: "grey" },
@@ -42925,25 +42961,25 @@ function ProgramChatCard({
42925
42961
  discuss
42926
42962
  }) {
42927
42963
  const icon = configKey === "webinar" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.PresentationBarIcon, { size: 24 }) : configKey === "event" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.CalendarIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.MicrophoneIcon, { size: 24 });
42928
- const isScheduled = _optionalChain([item, 'optionalAccess', _911 => _911.status]) === "scheduled";
42964
+ const isScheduled = _optionalChain([item, 'optionalAccess', _913 => _913.status]) === "scheduled";
42929
42965
  let typeMeta;
42930
- if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _912 => _912.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
42966
+ if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _914 => _914.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
42931
42967
  typeMeta = formatDurationCompact(item.duration_seconds);
42932
- } else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess', _913 => _913.location_name]) === "string" && item.location_name.trim().length > 0) {
42968
+ } else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess', _915 => _915.location_name]) === "string" && item.location_name.trim().length > 0) {
42933
42969
  typeMeta = item.location_name;
42934
- } else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _914 => _914.start_at])) {
42970
+ } else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _916 => _916.start_at])) {
42935
42971
  const time = formatTimeWithTimezone(item.start_at, _nullishCoalesce(item.timezone, () => ( null)));
42936
42972
  const dur = formatDurationFromRange(item.start_at, item.end_at);
42937
42973
  typeMeta = dur ? `${time} \xB7 ${dur}` : time;
42938
42974
  }
42939
- const itemDate = formatDateUTC(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _915 => _915.date]), () => ( null)), { fallback: "", timezone: "local" });
42975
+ const itemDate = formatDateUTC(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _917 => _917.date]), () => ( null)), { fallback: "", timezone: "local" });
42940
42976
  const meta = [itemDate, typeMeta].filter(Boolean).join(" \xB7 ");
42941
42977
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42942
42978
  EntityMingoCard,
42943
42979
  {
42944
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _916 => _916.title]), () => ( "")),
42945
- description: meta || _optionalChain([item, 'optionalAccess', _917 => _917.description]) || void 0,
42946
- cover: entityCover(_optionalChain([item, 'optionalAccess', _918 => _918.cover_url]), ogPlaceholder),
42980
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _918 => _918.title]), () => ( "")),
42981
+ description: meta || _optionalChain([item, 'optionalAccess', _919 => _919.description]) || void 0,
42982
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _920 => _920.cover_url]), ogPlaceholder),
42947
42983
  fallbackIcon: icon,
42948
42984
  status: { label, variant: "grey" },
42949
42985
  chatRef,
@@ -42960,10 +42996,10 @@ function RoadmapChatCard({
42960
42996
  cardType,
42961
42997
  discuss
42962
42998
  }) {
42963
- const logoUrl = typeof _optionalChain([item, 'optionalAccess', _919 => _919.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
42964
- const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _920 => _920.customItemId]) != null;
42999
+ const logoUrl = typeof _optionalChain([item, 'optionalAccess', _921 => _921.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
43000
+ const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _922 => _922.customItemId]) != null;
42965
43001
  const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.TruckFastIcon, { size: 24 }) : cardType === "internal_task" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.CheckSquareIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.MapIcon, { size: 24 });
42966
- const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _921 => _921.customItemId]), className: "size-6" }) : logoUrl ? (
43002
+ const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _923 => _923.customItemId]), className: "size-6" }) : logoUrl ? (
42967
43003
  // Contained (not full-bleed) so the integration logo keeps its aspect
42968
43004
  // ratio inside the bordered icon box — matches RoadmapCard.
42969
43005
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src: logoUrl, alt: "", className: "size-6 object-contain" })
@@ -42971,10 +43007,10 @@ function RoadmapChatCard({
42971
43007
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42972
43008
  EntityMingoCard,
42973
43009
  {
42974
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _922 => _922.title]), () => ( "")),
42975
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _923 => _923.description]), () => ( void 0)),
43010
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _924 => _924.title]), () => ( "")),
43011
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _925 => _925.description]), () => ( void 0)),
42976
43012
  fallbackIcon: icon,
42977
- status: statusPill(_optionalChain([item, 'optionalAccess', _924 => _924.status])),
43013
+ status: statusPill(_optionalChain([item, 'optionalAccess', _926 => _926.status])),
42978
43014
  chatRef,
42979
43015
  isNewTab,
42980
43016
  discuss,
@@ -43060,7 +43096,7 @@ function programRegistryEntries() {
43060
43096
  discuss: opts.discuss,
43061
43097
  configKey: cfg.configKey,
43062
43098
  label: cfg.configKey.charAt(0).toUpperCase() + cfg.configKey.slice(1),
43063
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _925 => _925.extras, 'optionalAccess', _926 => _926.buildOgPlaceholderUrl, 'optionalCall', _927 => _927(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _928 => _928.title]), () => ( "")))]), () => ( null))
43099
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _927 => _927.extras, 'optionalAccess', _928 => _928.buildOgPlaceholderUrl, 'optionalCall', _929 => _929(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _930 => _930.title]), () => ( "")))]), () => ( null))
43064
43100
  }
43065
43101
  )
43066
43102
  };
@@ -43212,8 +43248,8 @@ var CHAT_CARD_REGISTRY = {
43212
43248
  chatRef,
43213
43249
  isNewTab: opts.isNewTab,
43214
43250
  discuss: opts.discuss,
43215
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _929 => _929.extras, 'optionalAccess', _930 => _930.buildOgPlaceholderUrl, 'optionalCall', _931 => _931(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _932 => _932.title]), () => ( "")))]), () => ( null)),
43216
- hasEmbeddedVideo: _optionalChain([chatRef, 'access', _933 => _933.metadata, 'optionalAccess', _934 => _934.hasEmbeddedVideo]) === true
43251
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _931 => _931.extras, 'optionalAccess', _932 => _932.buildOgPlaceholderUrl, 'optionalCall', _933 => _933(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _934 => _934.title]), () => ( "")))]), () => ( null)),
43252
+ hasEmbeddedVideo: _optionalChain([chatRef, 'access', _935 => _935.metadata, 'optionalAccess', _936 => _936.hasEmbeddedVideo]) === true
43217
43253
  }
43218
43254
  )
43219
43255
  },
@@ -43230,7 +43266,7 @@ var CHAT_CARD_REGISTRY = {
43230
43266
  chatRef,
43231
43267
  isNewTab: opts.isNewTab,
43232
43268
  discuss: opts.discuss,
43233
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _935 => _935.extras, 'optionalAccess', _936 => _936.buildOgPlaceholderUrl, 'optionalCall', _937 => _937(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _938 => _938.title]), () => ( "")))]), () => ( null))
43269
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _937 => _937.extras, 'optionalAccess', _938 => _938.buildOgPlaceholderUrl, 'optionalCall', _939 => _939(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _940 => _940.title]), () => ( "")))]), () => ( null))
43234
43270
  }
43235
43271
  )
43236
43272
  },
@@ -43247,7 +43283,7 @@ var CHAT_CARD_REGISTRY = {
43247
43283
  chatRef,
43248
43284
  isNewTab: opts.isNewTab,
43249
43285
  discuss: opts.discuss,
43250
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _939 => _939.extras, 'optionalAccess', _940 => _940.buildOgPlaceholderUrl, 'optionalCall', _941 => _941(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _942 => _942.title]), () => ( "")))]), () => ( null))
43286
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _941 => _941.extras, 'optionalAccess', _942 => _942.buildOgPlaceholderUrl, 'optionalCall', _943 => _943(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _944 => _944.title]), () => ( "")))]), () => ( null))
43251
43287
  }
43252
43288
  )
43253
43289
  },
@@ -43258,7 +43294,7 @@ var CHAT_CARD_REGISTRY = {
43258
43294
  bareInline: true,
43259
43295
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductReleaseCardSkeleton, { size: "sm" }),
43260
43296
  render: (item, chatRef, opts) => {
43261
- const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _943 => _943.extras, 'optionalAccess', _944 => _944.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
43297
+ const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _945 => _945.extras, 'optionalAccess', _946 => _946.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
43262
43298
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
43263
43299
  ProductReleaseChatCard,
43264
43300
  {
@@ -43285,7 +43321,7 @@ var CHAT_CARD_REGISTRY = {
43285
43321
  chatRef,
43286
43322
  isNewTab: opts.isNewTab,
43287
43323
  discuss: opts.discuss,
43288
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _945 => _945.extras, 'optionalAccess', _946 => _946.buildOgPlaceholderUrl, 'optionalCall', _947 => _947(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _948 => _948.title]), () => ( "")))]), () => ( null))
43324
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _947 => _947.extras, 'optionalAccess', _948 => _948.buildOgPlaceholderUrl, 'optionalCall', _949 => _949(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _950 => _950.title]), () => ( "")))]), () => ( null))
43289
43325
  }
43290
43326
  )
43291
43327
  },
@@ -43304,7 +43340,7 @@ var CHAT_CARD_REGISTRY = {
43304
43340
  chatRef,
43305
43341
  isNewTab: opts.isNewTab,
43306
43342
  discuss: opts.discuss,
43307
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _949 => _949.extras, 'optionalAccess', _950 => _950.buildOgPlaceholderUrl, 'optionalCall', _951 => _951(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _952 => _952.title]), () => ( "")))]), () => ( null))
43343
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _951 => _951.extras, 'optionalAccess', _952 => _952.buildOgPlaceholderUrl, 'optionalCall', _953 => _953(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _954 => _954.title]), () => ( "")))]), () => ( null))
43308
43344
  }
43309
43345
  )
43310
43346
  },
@@ -43316,7 +43352,7 @@ var CHAT_CARD_REGISTRY = {
43316
43352
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
43317
43353
  // No public viewer — synthesize the hub-internal admin URL post-fetch
43318
43354
  // so the wrapper + isNewTab computation see the actual destination.
43319
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _953 => _953.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
43355
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _955 => _955.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
43320
43356
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
43321
43357
  CampaignChatCard,
43322
43358
  {
@@ -43342,12 +43378,12 @@ function ChatCardNavWrap({
43342
43378
  const onClickCapture = (e) => {
43343
43379
  if (!href) return;
43344
43380
  const targetEl = e.target;
43345
- if (_optionalChain([targetEl, 'optionalAccess', _954 => _954.closest, 'optionalCall', _955 => _955("button")])) return;
43346
- if (!_optionalChain([targetEl, 'optionalAccess', _956 => _956.closest, 'optionalCall', _957 => _957("a")])) return;
43381
+ if (_optionalChain([targetEl, 'optionalAccess', _956 => _956.closest, 'optionalCall', _957 => _957("button")])) return;
43382
+ if (!_optionalChain([targetEl, 'optionalAccess', _958 => _958.closest, 'optionalCall', _959 => _959("a")])) return;
43347
43383
  const handled = handleChatNavClick(e, runtime, { href, path, targetPlatform }, router.push);
43348
43384
  if (!handled) return;
43349
43385
  e.stopPropagation();
43350
- if (!isNewTab && _optionalChain([panel, 'optionalAccess', _958 => _958.closeChat])) panel.closeChat();
43386
+ if (!isNewTab && _optionalChain([panel, 'optionalAccess', _960 => _960.closeChat])) panel.closeChat();
43351
43387
  };
43352
43388
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
43353
43389
  }
@@ -43369,7 +43405,7 @@ function ChatCardLoader({
43369
43405
  title: chatRef.title,
43370
43406
  externalUrl: chatRef.url,
43371
43407
  targetPlatform: chatRef.targetPlatform,
43372
- path: typeof _optionalChain([chatRef, 'access', _959 => _959.metadata, 'optionalAccess', _960 => _960.path]) === "string" ? chatRef.metadata.path : null
43408
+ path: typeof _optionalChain([chatRef, 'access', _961 => _961.metadata, 'optionalAccess', _962 => _962.path]) === "string" ? chatRef.metadata.path : null
43373
43409
  },
43374
43410
  sourceRowCtxFromRuntime(runtime, { baseRoute, chipBasePlatform })
43375
43411
  );
@@ -43383,7 +43419,7 @@ function ChatCardLoader({
43383
43419
  const entry = CHAT_CARD_REGISTRY[resolvedChatRef.type];
43384
43420
  const fetchEntry = entry && entry.mode === "fetch" ? entry : null;
43385
43421
  const { item, isLoading } = useChatCardItem(
43386
- _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _961 => _961.contentRefType]), () => ( "")),
43422
+ _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _963 => _963.contentRefType]), () => ( "")),
43387
43423
  fetchEntry ? resolvedChatRef.id : ""
43388
43424
  );
43389
43425
  if (!entry) return null;
@@ -43414,7 +43450,7 @@ function ChatCardLoader({
43414
43450
  isNewTab,
43415
43451
  discuss
43416
43452
  };
43417
- const path = typeof _optionalChain([finalChatRef, 'access', _962 => _962.metadata, 'optionalAccess', _963 => _963.path]) === "string" ? finalChatRef.metadata.path : null;
43453
+ const path = typeof _optionalChain([finalChatRef, 'access', _964 => _964.metadata, 'optionalAccess', _965 => _965.path]) === "string" ? finalChatRef.metadata.path : null;
43418
43454
  const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
43419
43455
  ChatCardNavWrap,
43420
43456
  {
@@ -43800,7 +43836,7 @@ function useJetStreamDialogSubscription({
43800
43836
  const lifecycle = _chunkPXXS27EEcjs.startConnectionLifecycle.call(void 0, {
43801
43837
  conn: sharedConn,
43802
43838
  wsUrl,
43803
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _964 => _964.current, 'optionalCall', _965 => _965()]),
43839
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _966 => _966.current, 'optionalCall', _967 => _967()]),
43804
43840
  backoff: reconnectionBackoffRef.current,
43805
43841
  getFreshUrl: () => getNatsWsUrlRef.current(),
43806
43842
  // JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
@@ -43815,7 +43851,7 @@ function useJetStreamDialogSubscription({
43815
43851
  setReconnectionCount((c) => c + 1);
43816
43852
  }
43817
43853
  hadConnectionBeforeRef.current = true;
43818
- _optionalChain([onConnectRef, 'access', _966 => _966.current, 'optionalCall', _967 => _967()]);
43854
+ _optionalChain([onConnectRef, 'access', _968 => _968.current, 'optionalCall', _969 => _969()]);
43819
43855
  }
43820
43856
  if (status === "error") {
43821
43857
  console.warn("[JetStream] NATS protocol error:", evt.data);
@@ -43825,7 +43861,7 @@ function useJetStreamDialogSubscription({
43825
43861
  setIsConnected(false);
43826
43862
  setIsSubscribed(false);
43827
43863
  tearDownSubscription();
43828
- _optionalChain([onDisconnectRef, 'access', _968 => _968.current, 'optionalCall', _969 => _969()]);
43864
+ _optionalChain([onDisconnectRef, 'access', _970 => _970.current, 'optionalCall', _971 => _971()]);
43829
43865
  }
43830
43866
  }
43831
43867
  });
@@ -43904,7 +43940,7 @@ function useJetStreamDialogSubscription({
43904
43940
  }
43905
43941
  subscriptionRef.current = handle;
43906
43942
  setIsSubscribed(true);
43907
- _optionalChain([onSubscribedRef, 'access', _970 => _970.current, 'optionalCall', _971 => _971()]);
43943
+ _optionalChain([onSubscribedRef, 'access', _972 => _972.current, 'optionalCall', _973 => _973()]);
43908
43944
  } catch (e44) {
43909
43945
  if (!cancelled) {
43910
43946
  setIsSubscribed(false);
@@ -44017,20 +44053,20 @@ function useNatsDialogSubscription({
44017
44053
  const tearDownSubscriptions = () => {
44018
44054
  subscriptionRefs.current.forEach((sub) => {
44019
44055
  try {
44020
- _optionalChain([sub, 'optionalAccess', _972 => _972.unsubscribe, 'call', _973 => _973()]);
44056
+ _optionalChain([sub, 'optionalAccess', _974 => _974.unsubscribe, 'call', _975 => _975()]);
44021
44057
  } catch (e46) {
44022
44058
  }
44023
44059
  });
44024
44060
  subscriptionRefs.current.clear();
44025
44061
  lastSubscribedDialogIdRef.current = null;
44026
- _optionalChain([abortControllerRef, 'access', _974 => _974.current, 'optionalAccess', _975 => _975.abort, 'call', _976 => _976()]);
44062
+ _optionalChain([abortControllerRef, 'access', _976 => _976.current, 'optionalAccess', _977 => _977.abort, 'call', _978 => _978()]);
44027
44063
  abortControllerRef.current = null;
44028
44064
  };
44029
44065
  const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
44030
44066
  const lifecycle = _chunkPXXS27EEcjs.startConnectionLifecycle.call(void 0, {
44031
44067
  conn: sharedConn,
44032
44068
  wsUrl,
44033
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _977 => _977.current, 'optionalCall', _978 => _978()]),
44069
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _979 => _979.current, 'optionalCall', _980 => _980()]),
44034
44070
  backoff: reconnectionBackoffRef.current,
44035
44071
  getFreshUrl: () => getNatsWsUrlRef.current(),
44036
44072
  shouldRetryOn: isDisconnectStatus,
@@ -44041,7 +44077,7 @@ function useNatsDialogSubscription({
44041
44077
  setReconnectionCount((c) => c + 1);
44042
44078
  }
44043
44079
  hadConnectionBeforeRef.current = true;
44044
- _optionalChain([onConnectRef, 'access', _979 => _979.current, 'optionalCall', _980 => _980()]);
44080
+ _optionalChain([onConnectRef, 'access', _981 => _981.current, 'optionalCall', _982 => _982()]);
44045
44081
  }
44046
44082
  if (status === "error") {
44047
44083
  console.warn("[NATS] protocol error:", evt.data);
@@ -44051,7 +44087,7 @@ function useNatsDialogSubscription({
44051
44087
  setIsConnected(false);
44052
44088
  setIsSubscribed(false);
44053
44089
  tearDownSubscriptions();
44054
- _optionalChain([onDisconnectRef, 'access', _981 => _981.current, 'optionalCall', _982 => _982()]);
44090
+ _optionalChain([onDisconnectRef, 'access', _983 => _983.current, 'optionalCall', _984 => _984()]);
44055
44091
  }
44056
44092
  }
44057
44093
  });
@@ -44082,13 +44118,13 @@ function useNatsDialogSubscription({
44082
44118
  setIsSubscribed(false);
44083
44119
  subscriptionRefs.current.forEach((sub) => {
44084
44120
  try {
44085
- _optionalChain([sub, 'optionalAccess', _983 => _983.unsubscribe, 'call', _984 => _984()]);
44121
+ _optionalChain([sub, 'optionalAccess', _985 => _985.unsubscribe, 'call', _986 => _986()]);
44086
44122
  } catch (e47) {
44087
44123
  }
44088
44124
  });
44089
44125
  subscriptionRefs.current.clear();
44090
44126
  lastSubscribedDialogIdRef.current = null;
44091
- _optionalChain([abortControllerRef, 'access', _985 => _985.current, 'optionalAccess', _986 => _986.abort, 'call', _987 => _987()]);
44127
+ _optionalChain([abortControllerRef, 'access', _987 => _987.current, 'optionalAccess', _988 => _988.abort, 'call', _989 => _989()]);
44092
44128
  abortControllerRef.current = null;
44093
44129
  }
44094
44130
  return;
@@ -44100,12 +44136,12 @@ function useNatsDialogSubscription({
44100
44136
  if (subscriptionRefs.current.size > 0) {
44101
44137
  subscriptionRefs.current.forEach((sub) => {
44102
44138
  try {
44103
- _optionalChain([sub, 'optionalAccess', _988 => _988.unsubscribe, 'call', _989 => _989()]);
44139
+ _optionalChain([sub, 'optionalAccess', _990 => _990.unsubscribe, 'call', _991 => _991()]);
44104
44140
  } catch (e48) {
44105
44141
  }
44106
44142
  });
44107
44143
  subscriptionRefs.current.clear();
44108
- _optionalChain([abortControllerRef, 'access', _990 => _990.current, 'optionalAccess', _991 => _991.abort, 'call', _992 => _992()]);
44144
+ _optionalChain([abortControllerRef, 'access', _992 => _992.current, 'optionalAccess', _993 => _993.abort, 'call', _994 => _994()]);
44109
44145
  }
44110
44146
  abortControllerRef.current = new AbortController();
44111
44147
  const abort = abortControllerRef.current;
@@ -44137,7 +44173,7 @@ function useNatsDialogSubscription({
44137
44173
  });
44138
44174
  lastSubscribedDialogIdRef.current = dialogId;
44139
44175
  setIsSubscribed(true);
44140
- _optionalChain([onSubscribedRef, 'access', _993 => _993.current, 'optionalCall', _994 => _994()]);
44176
+ _optionalChain([onSubscribedRef, 'access', _995 => _995.current, 'optionalCall', _996 => _996()]);
44141
44177
  };
44142
44178
  if (isConnectedRef.current) {
44143
44179
  createSubscriptions();
@@ -44147,7 +44183,7 @@ function useNatsDialogSubscription({
44147
44183
  abort.abort();
44148
44184
  subscriptionRefs.current.forEach((sub) => {
44149
44185
  try {
44150
- _optionalChain([sub, 'optionalAccess', _995 => _995.unsubscribe, 'call', _996 => _996()]);
44186
+ _optionalChain([sub, 'optionalAccess', _997 => _997.unsubscribe, 'call', _998 => _998()]);
44151
44187
  } catch (e50) {
44152
44188
  }
44153
44189
  });
@@ -44188,7 +44224,7 @@ function useNatsDialogSubscription({
44188
44224
  });
44189
44225
  lastSubscribedDialogIdRef.current = dialogId2;
44190
44226
  setIsSubscribed(true);
44191
- _optionalChain([onSubscribedRef, 'access', _997 => _997.current, 'optionalCall', _998 => _998()]);
44227
+ _optionalChain([onSubscribedRef, 'access', _999 => _999.current, 'optionalCall', _1000 => _1000()]);
44192
44228
  } else if (subscriptionRefs.current.size > 0) {
44193
44229
  setIsSubscribed(true);
44194
44230
  }
@@ -44196,10 +44232,10 @@ function useNatsDialogSubscription({
44196
44232
  return { isConnected, isSubscribed, reconnectionCount };
44197
44233
  }
44198
44234
  function buildNatsWsUrl(apiBaseUrl, options) {
44199
- const path = _optionalChain([options, 'optionalAccess', _999 => _999.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
44235
+ const path = _optionalChain([options, 'optionalAccess', _1001 => _1001.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
44200
44236
  const u = new URL(path, apiBaseUrl);
44201
44237
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
44202
- if (_optionalChain([options, 'optionalAccess', _1000 => _1000.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _1001 => _1001.token])) {
44238
+ if (_optionalChain([options, 'optionalAccess', _1002 => _1002.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _1003 => _1003.token])) {
44203
44239
  u.searchParams.set("authorization", options.token);
44204
44240
  }
44205
44241
  return u.toString();
@@ -44335,7 +44371,7 @@ function parseChunkToAction(chunk) {
44335
44371
  // is REQUIRED on `ChatContextItem`, so fall back to the id (same as the
44336
44372
  // historical path in `process-historical-messages.ts`) — keeps both
44337
44373
  // message sources producing an identical shape.
44338
- contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _1002 => _1002.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _1003 => _1003.id]) === "string").map((it) => ({ type: it.type, id: it.id, label: it.id })) : void 0
44374
+ contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _1004 => _1004.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _1005 => _1005.id]) === "string").map((it) => ({ type: it.type, id: it.id, label: it.id })) : void 0
44339
44375
  };
44340
44376
  case MESSAGE_TYPE.TOKEN_USAGE:
44341
44377
  return {
@@ -44527,8 +44563,8 @@ var MessageSegmentAccumulator = class {
44527
44563
  type: "tool_execution",
44528
44564
  data: {
44529
44565
  ...toolData,
44530
- toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _1004 => _1004.data, 'access', _1005 => _1005.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _1006 => _1006.toolTitle]))),
44531
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _1007 => _1007.parameters])
44566
+ toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _1006 => _1006.data, 'access', _1007 => _1007.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _1008 => _1008.toolTitle]))),
44567
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _1009 => _1009.parameters])
44532
44568
  }
44533
44569
  };
44534
44570
  if (existingIndex !== -1) {
@@ -44552,8 +44588,8 @@ var MessageSegmentAccumulator = class {
44552
44588
  if (seg.type !== "approval_batch") return seg;
44553
44589
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
44554
44590
  if (!hasCall) return seg;
44555
- const prev = _optionalChain([seg, 'access', _1008 => _1008.data, 'access', _1009 => _1009.executions, 'optionalAccess', _1010 => _1010[execId]]);
44556
- const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _1011 => _1011.result]), success: _optionalChain([prev, 'optionalAccess', _1012 => _1012.success]) };
44591
+ const prev = _optionalChain([seg, 'access', _1010 => _1010.data, 'access', _1011 => _1011.executions, 'optionalAccess', _1012 => _1012[execId]]);
44592
+ const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _1013 => _1013.result]), success: _optionalChain([prev, 'optionalAccess', _1014 => _1014.success]) };
44557
44593
  matched = true;
44558
44594
  return {
44559
44595
  ...seg,
@@ -44675,10 +44711,10 @@ var MessageSegmentAccumulator = class {
44675
44711
  const segment = {
44676
44712
  type: "approval_request",
44677
44713
  data: {
44678
- command: _optionalChain([pendingApproval, 'optionalAccess', _1013 => _1013.command]) || "",
44679
- explanation: _optionalChain([pendingApproval, 'optionalAccess', _1014 => _1014.explanation]),
44714
+ command: _optionalChain([pendingApproval, 'optionalAccess', _1015 => _1015.command]) || "",
44715
+ explanation: _optionalChain([pendingApproval, 'optionalAccess', _1016 => _1016.explanation]),
44680
44716
  requestId,
44681
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _1015 => _1015.approvalType]) || approvalType
44717
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _1017 => _1017.approvalType]) || approvalType
44682
44718
  },
44683
44719
  status,
44684
44720
  onApprove: this.callbacks.onApprove,
@@ -44870,7 +44906,7 @@ function useRealtimeChunkProcessor(options) {
44870
44906
  if (initialState.escalatedApprovals) {
44871
44907
  pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
44872
44908
  initialState.escalatedApprovals.forEach((data, requestId) => {
44873
- _optionalChain([callbacks, 'access', _1016 => _1016.onEscalatedApproval, 'optionalCall', _1017 => _1017(requestId, data)]);
44909
+ _optionalChain([callbacks, 'access', _1018 => _1018.onEscalatedApproval, 'optionalCall', _1019 => _1019(requestId, data)]);
44874
44910
  });
44875
44911
  }
44876
44912
  hasEverStreamedRef.current = true;
@@ -44891,12 +44927,12 @@ function useRealtimeChunkProcessor(options) {
44891
44927
  if (!action) return;
44892
44928
  const accumulator = accumulatorRef.current;
44893
44929
  const streamSeq = chunk && typeof chunk === "object" && typeof chunk.streamSeq === "number" ? chunk.streamSeq : void 0;
44894
- const emitSegments = (s, meta) => _optionalChain([callbacks, 'access', _1018 => _1018.onSegmentsUpdate, 'optionalCall', _1019 => _1019(s, streamSeq != null ? { ...meta, streamSeq } : meta)]);
44930
+ const emitSegments = (s, meta) => _optionalChain([callbacks, 'access', _1020 => _1020.onSegmentsUpdate, 'optionalCall', _1021 => _1021(s, streamSeq != null ? { ...meta, streamSeq } : meta)]);
44895
44931
  if (action.action === "direct_message") sawDirectMessageRef.current = true;
44896
44932
  if ((directModeFlagRef.current || sawDirectMessageRef.current) && !DIRECT_MODE_ALLOWED.has(action.action)) {
44897
44933
  if (isInStreamRef.current) {
44898
44934
  isInStreamRef.current = false;
44899
- _optionalChain([callbacks, 'access', _1020 => _1020.onStreamEnd, 'optionalCall', _1021 => _1021()]);
44935
+ _optionalChain([callbacks, 'access', _1022 => _1022.onStreamEnd, 'optionalCall', _1023 => _1023()]);
44900
44936
  accumulator.resetSegments();
44901
44937
  }
44902
44938
  return;
@@ -44905,16 +44941,16 @@ function useRealtimeChunkProcessor(options) {
44905
44941
  case "message_start":
44906
44942
  isInStreamRef.current = true;
44907
44943
  hasEverStreamedRef.current = true;
44908
- _optionalChain([callbacks, 'access', _1022 => _1022.onStreamStart, 'optionalCall', _1023 => _1023()]);
44944
+ _optionalChain([callbacks, 'access', _1024 => _1024.onStreamStart, 'optionalCall', _1025 => _1025()]);
44909
44945
  accumulator.resetSegments();
44910
44946
  break;
44911
44947
  case "message_end":
44912
44948
  isInStreamRef.current = false;
44913
- _optionalChain([callbacks, 'access', _1024 => _1024.onStreamEnd, 'optionalCall', _1025 => _1025()]);
44949
+ _optionalChain([callbacks, 'access', _1026 => _1026.onStreamEnd, 'optionalCall', _1027 => _1027()]);
44914
44950
  accumulator.resetSegments();
44915
44951
  break;
44916
44952
  case "metadata":
44917
- _optionalChain([callbacks, 'access', _1026 => _1026.onMetadata, 'optionalCall', _1027 => _1027(action)]);
44953
+ _optionalChain([callbacks, 'access', _1028 => _1028.onMetadata, 'optionalCall', _1029 => _1029(action)]);
44918
44954
  break;
44919
44955
  case "text": {
44920
44956
  const segments = accumulator.appendText(action.text);
@@ -44957,7 +44993,7 @@ function useRealtimeChunkProcessor(options) {
44957
44993
  emitSegments(segments);
44958
44994
  } else {
44959
44995
  pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
44960
- _optionalChain([callbacks, 'access', _1028 => _1028.onEscalatedApproval, 'optionalCall', _1029 => _1029(requestId, { command, explanation, approvalType })]);
44996
+ _optionalChain([callbacks, 'access', _1030 => _1030.onEscalatedApproval, 'optionalCall', _1031 => _1031(requestId, { command, explanation, approvalType })]);
44961
44997
  }
44962
44998
  break;
44963
44999
  }
@@ -44969,13 +45005,13 @@ function useRealtimeChunkProcessor(options) {
44969
45005
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
44970
45006
  pendingEscalatedRef.current.set(requestId, {
44971
45007
  command: summary,
44972
- explanation: _optionalChain([required, 'optionalAccess', _1030 => _1030.toolExplanation]),
45008
+ explanation: _optionalChain([required, 'optionalAccess', _1032 => _1032.toolExplanation]),
44973
45009
  approvalType,
44974
45010
  toolCalls
44975
45011
  });
44976
- _optionalChain([callbacks, 'access', _1031 => _1031.onEscalatedApproval, 'optionalCall', _1032 => _1032(requestId, {
45012
+ _optionalChain([callbacks, 'access', _1033 => _1033.onEscalatedApproval, 'optionalCall', _1034 => _1034(requestId, {
44977
45013
  command: summary,
44978
- explanation: _optionalChain([required, 'optionalAccess', _1033 => _1033.toolExplanation]),
45014
+ explanation: _optionalChain([required, 'optionalAccess', _1035 => _1035.toolExplanation]),
44979
45015
  approvalType
44980
45016
  })]);
44981
45017
  break;
@@ -45005,7 +45041,7 @@ function useRealtimeChunkProcessor(options) {
45005
45041
  const status = approved ? "approved" : "rejected";
45006
45042
  if (escalatedData) {
45007
45043
  pendingEscalatedRef.current.delete(requestId);
45008
- _optionalChain([callbacks, 'access', _1034 => _1034.onEscalatedApprovalResult, 'optionalCall', _1035 => _1035(requestId, approved, {
45044
+ _optionalChain([callbacks, 'access', _1036 => _1036.onEscalatedApprovalResult, 'optionalCall', _1037 => _1037(requestId, approved, {
45009
45045
  command: escalatedData.command,
45010
45046
  explanation: escalatedData.explanation,
45011
45047
  approvalType: escalatedData.approvalType
@@ -45051,29 +45087,29 @@ function useRealtimeChunkProcessor(options) {
45051
45087
  emitSegments(accumulator.getSegments());
45052
45088
  }
45053
45089
  }
45054
- _optionalChain([callbacks, 'access', _1036 => _1036.onApprovalResolved, 'optionalCall', _1037 => _1037(requestId, status, approvalType, resolvedByName)]);
45090
+ _optionalChain([callbacks, 'access', _1038 => _1038.onApprovalResolved, 'optionalCall', _1039 => _1039(requestId, status, approvalType, resolvedByName)]);
45055
45091
  break;
45056
45092
  }
45057
45093
  case "error": {
45058
45094
  let message2;
45059
- if ("details" in action && _optionalChain([action, 'optionalAccess', _1038 => _1038.details])) {
45095
+ if ("details" in action && _optionalChain([action, 'optionalAccess', _1040 => _1040.details])) {
45060
45096
  try {
45061
- message2 = _optionalChain([JSON, 'access', _1039 => _1039.parse, 'call', _1040 => _1040(action.details), 'optionalAccess', _1041 => _1041.error, 'optionalAccess', _1042 => _1042.message]);
45097
+ message2 = _optionalChain([JSON, 'access', _1041 => _1041.parse, 'call', _1042 => _1042(action.details), 'optionalAccess', _1043 => _1043.error, 'optionalAccess', _1044 => _1044.message]);
45062
45098
  } catch (e52) {
45063
45099
  message2 = action.details;
45064
45100
  }
45065
45101
  }
45066
45102
  const segments = accumulator.addError(action.error, message2);
45067
45103
  emitSegments(segments);
45068
- _optionalChain([callbacks, 'access', _1043 => _1043.onError, 'optionalCall', _1044 => _1044(action.error, message2)]);
45104
+ _optionalChain([callbacks, 'access', _1045 => _1045.onError, 'optionalCall', _1046 => _1046(action.error, message2)]);
45069
45105
  break;
45070
45106
  }
45071
45107
  case "system": {
45072
- _optionalChain([callbacks, 'access', _1045 => _1045.onSystemMessage, 'optionalCall', _1046 => _1046(action.text, { streamSeq })]);
45108
+ _optionalChain([callbacks, 'access', _1047 => _1047.onSystemMessage, 'optionalCall', _1048 => _1048(action.text, { streamSeq })]);
45073
45109
  break;
45074
45110
  }
45075
45111
  case "direct_message": {
45076
- _optionalChain([callbacks, 'access', _1047 => _1047.onDirectMessage, 'optionalCall', _1048 => _1048(action.text, {
45112
+ _optionalChain([callbacks, 'access', _1049 => _1049.onDirectMessage, 'optionalCall', _1050 => _1050(action.text, {
45077
45113
  ownerType: action.ownerType,
45078
45114
  displayName: action.displayName,
45079
45115
  userId: action.userId,
@@ -45082,7 +45118,7 @@ function useRealtimeChunkProcessor(options) {
45082
45118
  break;
45083
45119
  }
45084
45120
  case "message_request":
45085
- _optionalChain([callbacks, 'access', _1049 => _1049.onUserMessage, 'optionalCall', _1050 => _1050(action.text, {
45121
+ _optionalChain([callbacks, 'access', _1051 => _1051.onUserMessage, 'optionalCall', _1052 => _1052(action.text, {
45086
45122
  ownerType: action.ownerType,
45087
45123
  displayName: action.displayName,
45088
45124
  userId: action.userId,
@@ -45091,7 +45127,7 @@ function useRealtimeChunkProcessor(options) {
45091
45127
  })]);
45092
45128
  break;
45093
45129
  case "token_usage":
45094
- _optionalChain([callbacks, 'access', _1051 => _1051.onTokenUsage, 'optionalCall', _1052 => _1052(action.data)]);
45130
+ _optionalChain([callbacks, 'access', _1053 => _1053.onTokenUsage, 'optionalCall', _1054 => _1054(action.data)]);
45095
45131
  break;
45096
45132
  case "context_compaction_start": {
45097
45133
  const standalone = !isInStreamRef.current;
@@ -45106,7 +45142,7 @@ function useRealtimeChunkProcessor(options) {
45106
45142
  break;
45107
45143
  }
45108
45144
  case "dialog_closed":
45109
- _optionalChain([callbacks, 'access', _1053 => _1053.onDialogClosed, 'optionalCall', _1054 => _1054()]);
45145
+ _optionalChain([callbacks, 'access', _1055 => _1055.onDialogClosed, 'optionalCall', _1056 => _1056()]);
45110
45146
  break;
45111
45147
  default:
45112
45148
  break;
@@ -45153,7 +45189,7 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
45153
45189
  const data = await res.json();
45154
45190
  return _nullishCoalesce(data.commands, () => ( []));
45155
45191
  } catch (err) {
45156
- if (_optionalChain([err, 'optionalAccess', _1055 => _1055.name]) === "AbortError") throw err;
45192
+ if (_optionalChain([err, 'optionalAccess', _1057 => _1057.name]) === "AbortError") throw err;
45157
45193
  console.warn("[chat] slash-commands fetch failed, showing none:", err);
45158
45194
  return [];
45159
45195
  }
@@ -45174,7 +45210,7 @@ function useSlashCommands(prefix, commandsUrl) {
45174
45210
  const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
45175
45211
  if (!cancelled) setCommands(next);
45176
45212
  } catch (err) {
45177
- if (!cancelled && _optionalChain([err, 'optionalAccess', _1056 => _1056.name]) !== "AbortError") {
45213
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _1058 => _1058.name]) !== "AbortError") {
45178
45214
  console.warn("[use-slash-commands] fetch failed:", err);
45179
45215
  }
45180
45216
  } finally {
@@ -45193,7 +45229,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
45193
45229
  const query = _reactquery.useQuery.call(void 0, {
45194
45230
  queryKey: ["chat-slash-commands", commandsUrl],
45195
45231
  queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
45196
- enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1057 => _1057.enabled]), () => ( true)),
45232
+ enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1059 => _1059.enabled]), () => ( true)),
45197
45233
  staleTime: Infinity,
45198
45234
  gcTime: Infinity,
45199
45235
  // The commands registry is non-critical chrome — a failure degrades to an
@@ -45229,18 +45265,18 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
45229
45265
  }
45230
45266
  const data = await res.json();
45231
45267
  return {
45232
- greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1058 => _1058.greeting]), () => ( null)),
45233
- enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1059 => _1059.enabledRagTableIds]), () => ( [])),
45234
- suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1060 => _1060.suggestedQueries]), () => ( []))
45268
+ greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1060 => _1060.greeting]), () => ( null)),
45269
+ enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1061 => _1061.enabledRagTableIds]), () => ( [])),
45270
+ suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1062 => _1062.suggestedQueries]), () => ( []))
45235
45271
  };
45236
45272
  } catch (err) {
45237
- if (_optionalChain([err, 'optionalAccess', _1061 => _1061.name]) === "AbortError") throw err;
45273
+ if (_optionalChain([err, 'optionalAccess', _1063 => _1063.name]) === "AbortError") throw err;
45238
45274
  console.warn("[chat] empty-state config fetch failed, using neutral defaults:", err);
45239
45275
  return EMPTY_STATE_FALLBACK;
45240
45276
  }
45241
45277
  }
45242
45278
  function useEmptyStateConfig(emptyStateUrl, options) {
45243
- const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1062 => _1062.enabled]), () => ( true))) && !!emptyStateUrl;
45279
+ const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1064 => _1064.enabled]), () => ( true))) && !!emptyStateUrl;
45244
45280
  const query = _reactquery.useQuery.call(void 0, {
45245
45281
  queryKey: ["chat-empty-state", emptyStateUrl],
45246
45282
  queryFn: ({ signal }) => fetchEmptyStateConfig(signal, emptyStateUrl),
@@ -45269,7 +45305,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
45269
45305
  var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
45270
45306
  function uploadWithProgress(url, file, token, onProgress, signal) {
45271
45307
  return new Promise((resolve, reject) => {
45272
- if (_optionalChain([signal, 'optionalAccess', _1063 => _1063.aborted])) {
45308
+ if (_optionalChain([signal, 'optionalAccess', _1065 => _1065.aborted])) {
45273
45309
  reject(new Error("Upload cancelled"));
45274
45310
  return;
45275
45311
  }
@@ -45283,7 +45319,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
45283
45319
  xhr.removeEventListener("error", handleError);
45284
45320
  xhr.removeEventListener("abort", handleAbort);
45285
45321
  xhr.removeEventListener("timeout", handleTimeout);
45286
- _optionalChain([signal, 'optionalAccess', _1064 => _1064.removeEventListener, 'call', _1065 => _1065("abort", handleSignalAbort)]);
45322
+ _optionalChain([signal, 'optionalAccess', _1066 => _1066.removeEventListener, 'call', _1067 => _1067("abort", handleSignalAbort)]);
45287
45323
  if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
45288
45324
  };
45289
45325
  const handleProgress = (event) => {
@@ -45319,7 +45355,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
45319
45355
  const handleSignalAbort = () => {
45320
45356
  xhr.abort();
45321
45357
  };
45322
- _optionalChain([signal, 'optionalAccess', _1066 => _1066.addEventListener, 'call', _1067 => _1067("abort", handleSignalAbort, { once: true })]);
45358
+ _optionalChain([signal, 'optionalAccess', _1068 => _1068.addEventListener, 'call', _1069 => _1069("abort", handleSignalAbort, { once: true })]);
45323
45359
  xhr.upload.addEventListener("progress", handleProgress);
45324
45360
  xhr.addEventListener("load", handleLoad);
45325
45361
  xhr.addEventListener("error", handleError);
@@ -45363,12 +45399,12 @@ function useChatAttachments() {
45363
45399
  try {
45364
45400
  sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
45365
45401
  } catch (err) {
45366
- if (_optionalChain([ctrl, 'optionalAccess', _1068 => _1068.signal, 'access', _1069 => _1069.aborted])) return;
45402
+ if (_optionalChain([ctrl, 'optionalAccess', _1070 => _1070.signal, 'access', _1071 => _1071.aborted])) return;
45367
45403
  throw new Error(
45368
45404
  `Could not read file content: ${err instanceof Error ? err.message : String(err)}`
45369
45405
  );
45370
45406
  }
45371
- if (_optionalChain([ctrl, 'optionalAccess', _1070 => _1070.signal, 'access', _1071 => _1071.aborted])) return;
45407
+ if (_optionalChain([ctrl, 'optionalAccess', _1072 => _1072.signal, 'access', _1073 => _1073.aborted])) return;
45372
45408
  if (!sniffed) {
45373
45409
  throw new Error("Unrecognized file format");
45374
45410
  }
@@ -45382,7 +45418,7 @@ function useChatAttachments() {
45382
45418
  const urlResp = await _chunkDCIB6AK3cjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
45383
45419
  method: "POST",
45384
45420
  headers: { "Content-Type": "application/json" },
45385
- signal: _optionalChain([ctrl, 'optionalAccess', _1072 => _1072.signal]),
45421
+ signal: _optionalChain([ctrl, 'optionalAccess', _1074 => _1074.signal]),
45386
45422
  body: JSON.stringify({
45387
45423
  fileName: att.file.name,
45388
45424
  // Pass the SNIFFED MIME (not `file.type`, which can be a
@@ -45408,9 +45444,9 @@ function useChatAttachments() {
45408
45444
  (pct) => {
45409
45445
  updateOne(att.id, { progress: pct });
45410
45446
  },
45411
- _optionalChain([ctrl, 'optionalAccess', _1073 => _1073.signal])
45447
+ _optionalChain([ctrl, 'optionalAccess', _1075 => _1075.signal])
45412
45448
  );
45413
- if (_optionalChain([ctrl, 'optionalAccess', _1074 => _1074.signal, 'access', _1075 => _1075.aborted])) return;
45449
+ if (_optionalChain([ctrl, 'optionalAccess', _1076 => _1076.signal, 'access', _1077 => _1077.aborted])) return;
45414
45450
  updateOne(att.id, {
45415
45451
  status: "ready",
45416
45452
  progress: 100,
@@ -45418,7 +45454,7 @@ function useChatAttachments() {
45418
45454
  viewToken: mintData.viewToken
45419
45455
  });
45420
45456
  } catch (err) {
45421
- if (_optionalChain([ctrl, 'optionalAccess', _1076 => _1076.signal, 'access', _1077 => _1077.aborted])) return;
45457
+ if (_optionalChain([ctrl, 'optionalAccess', _1078 => _1078.signal, 'access', _1079 => _1079.aborted])) return;
45422
45458
  const message2 = err instanceof Error ? err.message : String(err);
45423
45459
  updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
45424
45460
  } finally {
@@ -45569,7 +45605,7 @@ var ANON_DEFAULTS = {
45569
45605
  function useResolveChatIdentity(enabled) {
45570
45606
  const runtime = _chunkN2DVKXN4cjs.useRequiredChatRuntime.call(void 0, );
45571
45607
  const url = runtime.endpoints.identityUrl;
45572
- const proxyEmail = _nullishCoalesce(_optionalChain([_chunkDCIB6AK3cjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _1078 => _1078.email]), () => ( null));
45608
+ const proxyEmail = _nullishCoalesce(_optionalChain([_chunkDCIB6AK3cjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _1080 => _1080.email]), () => ( null));
45573
45609
  const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
45574
45610
  const [isLoading, setIsLoading] = _react.useState.call(void 0, enabled);
45575
45611
  _react.useEffect.call(void 0, () => {
@@ -45660,7 +45696,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
45660
45696
  yield chunk;
45661
45697
  }
45662
45698
  } catch (err) {
45663
- if (_optionalChain([err, 'optionalAccess', _1079 => _1079.name]) === "AbortError" || ctrl.signal.aborted) {
45699
+ if (_optionalChain([err, 'optionalAccess', _1081 => _1081.name]) === "AbortError" || ctrl.signal.aborted) {
45664
45700
  return;
45665
45701
  }
45666
45702
  const errorMessage = err instanceof Error ? err.message : "An error occurred";
@@ -45711,7 +45747,7 @@ function useChat({
45711
45747
  const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
45712
45748
  onMessagesChangeRef.current = onMessagesChange;
45713
45749
  _react.useEffect.call(void 0, () => {
45714
- _optionalChain([onMessagesChangeRef, 'access', _1080 => _1080.current, 'optionalCall', _1081 => _1081(messages)]);
45750
+ _optionalChain([onMessagesChangeRef, 'access', _1082 => _1082.current, 'optionalCall', _1083 => _1083(messages)]);
45715
45751
  }, [messages]);
45716
45752
  const {
45717
45753
  streamMessage,
@@ -45748,7 +45784,7 @@ function useChat({
45748
45784
  name: "You",
45749
45785
  content: text,
45750
45786
  timestamp: /* @__PURE__ */ new Date(),
45751
- ..._optionalChain([options, 'optionalAccess', _1082 => _1082.hidden]) ? { hidden: true } : {}
45787
+ ..._optionalChain([options, 'optionalAccess', _1084 => _1084.hidden]) ? { hidden: true } : {}
45752
45788
  };
45753
45789
  addMessage(userMessage);
45754
45790
  setIsTyping(true);
@@ -45810,7 +45846,7 @@ function useChat({
45810
45846
  currentTextSegment = "";
45811
45847
  }
45812
45848
  const seg = segment;
45813
- const proposalId = _optionalChain([seg, 'access', _1083 => _1083.data, 'optionalAccess', _1084 => _1084.requestId]);
45849
+ const proposalId = _optionalChain([seg, 'access', _1085 => _1085.data, 'optionalAccess', _1086 => _1086.requestId]);
45814
45850
  const updateApprovalMessage = (transform) => {
45815
45851
  setMessages((prev) => {
45816
45852
  for (let i = prev.length - 1; i >= 0; i--) {
@@ -45819,7 +45855,7 @@ function useChat({
45819
45855
  if (!Array.isArray(m.content)) continue;
45820
45856
  const segments = m.content;
45821
45857
  const hasMatch = segments.some(
45822
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1085 => _1085.data, 'optionalAccess', _1086 => _1086.requestId]) === proposalId
45858
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1087 => _1087.data, 'optionalAccess', _1088 => _1088.requestId]) === proposalId
45823
45859
  );
45824
45860
  if (!hasMatch) continue;
45825
45861
  const next = [...prev];
@@ -45861,11 +45897,11 @@ function useChat({
45861
45897
  if (!Array.isArray(m.content)) continue;
45862
45898
  const segments = m.content;
45863
45899
  const hasMatch = segments.some(
45864
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1087 => _1087.data, 'optionalAccess', _1088 => _1088.requestId]) === decision.proposalId
45900
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1089 => _1089.data, 'optionalAccess', _1090 => _1090.requestId]) === decision.proposalId
45865
45901
  );
45866
45902
  if (!hasMatch) continue;
45867
45903
  const flipped = segments.map(
45868
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1089 => _1089.data, 'optionalAccess', _1090 => _1090.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
45904
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1091 => _1091.data, 'optionalAccess', _1092 => _1092.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
45869
45905
  );
45870
45906
  const next = [...prev];
45871
45907
  next[i] = { ...m, content: flipped };
@@ -46027,8 +46063,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
46027
46063
  })),
46028
46064
  { role: "user", content: message2 }
46029
46065
  ];
46030
- const targetPath = _optionalChain([extra, 'optionalAccess', _1091 => _1091.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
46031
- const requestBody = _optionalChain([extra, 'optionalAccess', _1092 => _1092.approvalAction]) ? {
46066
+ const targetPath = _optionalChain([extra, 'optionalAccess', _1093 => _1093.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
46067
+ const requestBody = _optionalChain([extra, 'optionalAccess', _1094 => _1094.approvalAction]) ? {
46032
46068
  proposal_id: extra.approvalAction.proposalId,
46033
46069
  action: extra.approvalAction.action,
46034
46070
  messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
@@ -46037,8 +46073,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
46037
46073
  }))
46038
46074
  } : {
46039
46075
  messages: apiMessages,
46040
- ..._optionalChain([extra, 'optionalAccess', _1093 => _1093.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
46041
- ..._optionalChain([extra, 'optionalAccess', _1094 => _1094.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
46076
+ ..._optionalChain([extra, 'optionalAccess', _1095 => _1095.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
46077
+ ..._optionalChain([extra, 'optionalAccess', _1096 => _1096.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
46042
46078
  };
46043
46079
  const response = await _chunkDCIB6AK3cjs.embedAuthedFetch.call(void 0, targetPath, {
46044
46080
  method: "POST",
@@ -46048,7 +46084,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
46048
46084
  if (!response.ok) {
46049
46085
  throw new Error(`Chat request failed: ${response.status}`);
46050
46086
  }
46051
- const reader = _optionalChain([response, 'access', _1095 => _1095.body, 'optionalAccess', _1096 => _1096.getReader, 'call', _1097 => _1097()]);
46087
+ const reader = _optionalChain([response, 'access', _1097 => _1097.body, 'optionalAccess', _1098 => _1098.getReader, 'call', _1099 => _1099()]);
46052
46088
  if (!reader) throw new Error("No response body");
46053
46089
  const decoder = new TextDecoder();
46054
46090
  let buffer = "";
@@ -46131,7 +46167,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
46131
46167
  const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
46132
46168
  const result = _nullishCoalesce(meta.result, () => ( null));
46133
46169
  const card = _nullishCoalesce(meta.card, () => ( null));
46134
- if (_optionalChain([card, 'optionalAccess', _1098 => _1098.ref, 'optionalAccess', _1099 => _1099.id]) && _optionalChain([card, 'optionalAccess', _1100 => _1100.type])) {
46170
+ if (_optionalChain([card, 'optionalAccess', _1100 => _1100.ref, 'optionalAccess', _1101 => _1101.id]) && _optionalChain([card, 'optionalAccess', _1102 => _1102.type])) {
46135
46171
  const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
46136
46172
  const key = buildChatRefKey(card.type, card.ref.id);
46137
46173
  refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
@@ -46144,8 +46180,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
46144
46180
  willAutoContinue: meta.willAutoContinue === true,
46145
46181
  ...toolName ? { toolName } : {},
46146
46182
  ...result ? { result } : {},
46147
- ..._optionalChain([card, 'optionalAccess', _1101 => _1101.marker]) ? { marker: card.marker } : {},
46148
- ..._optionalChain([card, 'optionalAccess', _1102 => _1102.ref]) ? { cardRef: card.ref } : {},
46183
+ ..._optionalChain([card, 'optionalAccess', _1103 => _1103.marker]) ? { marker: card.marker } : {},
46184
+ ..._optionalChain([card, 'optionalAccess', _1104 => _1104.ref]) ? { cardRef: card.ref } : {},
46149
46185
  ...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
46150
46186
  proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
46151
46187
  };
@@ -46264,7 +46300,7 @@ var DEFAULT_CHAT_SOURCE = "embed";
46264
46300
  var chatStorageKey = (source) => {
46265
46301
  const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
46266
46302
  const auth = _chunkDCIB6AK3cjs.getEmbedProxyAuth.call(void 0, );
46267
- if (_optionalChain([auth, 'optionalAccess', _1103 => _1103.email])) {
46303
+ if (_optionalChain([auth, 'optionalAccess', _1105 => _1105.email])) {
46268
46304
  return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
46269
46305
  }
46270
46306
  return base;
@@ -46319,7 +46355,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
46319
46355
  const { active = true } = runtimeOptions;
46320
46356
  const runtime = _chunkN2DVKXN4cjs.useRequiredChatRuntime.call(void 0, );
46321
46357
  const source = runtime.source || DEFAULT_CHAT_SOURCE;
46322
- const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1104 => _1104.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
46358
+ const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1106 => _1106.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
46323
46359
  const persistedRef = _react.useRef.call(void 0, null);
46324
46360
  if (persistedRef.current === null) {
46325
46361
  pruneStaleChatStorage(source);
@@ -46424,7 +46460,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
46424
46460
  const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
46425
46461
  sources = sourcesMapRef.current.get(lookupIdx);
46426
46462
  chatRefs = _nullishCoalesce(m.chatRefs, () => ( refsMapRef.current.get(lookupIdx)));
46427
- scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _1105 => _1105.current, 'access', _1106 => _1106.get, 'call', _1107 => _1107(lookupIdx), 'optionalAccess', _1108 => _1108.scrollAnchor]), () => ( void 0));
46463
+ scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _1107 => _1107.current, 'access', _1108 => _1108.get, 'call', _1109 => _1109(lookupIdx), 'optionalAccess', _1110 => _1110.scrollAnchor]), () => ( void 0));
46428
46464
  }
46429
46465
  return {
46430
46466
  id: m.id,
@@ -46472,7 +46508,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
46472
46508
  );
46473
46509
  return;
46474
46510
  }
46475
- const refSlug = typeof _optionalChain([reference, 'access', _1109 => _1109.metadata, 'optionalAccess', _1110 => _1110.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
46511
+ const refSlug = typeof _optionalChain([reference, 'access', _1111 => _1111.metadata, 'optionalAccess', _1112 => _1112.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
46476
46512
  const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
46477
46513
  const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
46478
46514
  const text = `/${cmdId} display "${escaped}"`;
@@ -46544,18 +46580,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
46544
46580
  clearMessages,
46545
46581
  streamingPhase,
46546
46582
  /** Provider key for the lib's `<ModelDisplay>` icon. */
46547
- currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1111 => _1111.provider]), () => ( null)),
46548
- currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1112 => _1112.modelLabel]), () => ( null)),
46549
- currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1113 => _1113.contextWindowMaxTokens]), () => ( null)),
46583
+ currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1113 => _1113.provider]), () => ( null)),
46584
+ currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1114 => _1114.modelLabel]), () => ( null)),
46585
+ currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1115 => _1115.contextWindowMaxTokens]), () => ( null)),
46550
46586
  /** Input tokens (known after server's message_start frame; null until). */
46551
- currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1114 => _1114.inputTokens]), () => ( null)),
46587
+ currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1116 => _1116.inputTokens]), () => ( null)),
46552
46588
  /** Output tokens (known only after server's trailing usage frame). */
46553
- currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1115 => _1115.outputTokens]), () => ( null)),
46589
+ currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1117 => _1117.outputTokens]), () => ( null)),
46554
46590
  /** Cache hit % (read / total-input × 100). null during streaming. */
46555
- currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1116 => _1116.cacheHitRatePct]), () => ( null)),
46591
+ currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1118 => _1118.cacheHitRatePct]), () => ( null)),
46556
46592
  /** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
46557
46593
  * token counts). null until the trailing usage frame lands. */
46558
- currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1117 => _1117.breakdown]), () => ( null)),
46594
+ currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1119 => _1119.breakdown]), () => ( null)),
46559
46595
  // ─── Dialog management — stubs for v1 ────────────────────────────────
46560
46596
  // Guide mode currently keeps its history in `localStorage` opaquely
46561
46597
  // under the hood (`runtime.source` namespaced key). Surfacing that
@@ -46613,15 +46649,15 @@ var noopRejectRequest = async (_id, _reason) => {
46613
46649
 
46614
46650
  // src/components/chat/utils/process-historical-messages.ts
46615
46651
  function getOwnerDisplayName(owner) {
46616
- if (_optionalChain([owner, 'optionalAccess', _1118 => _1118.type]) === OWNER_TYPE.ADMIN && owner.user) {
46652
+ if (_optionalChain([owner, 'optionalAccess', _1120 => _1120.type]) === OWNER_TYPE.ADMIN && owner.user) {
46617
46653
  const { firstName, lastName } = owner.user;
46618
46654
  const name = [firstName, lastName].filter(Boolean).join(" ");
46619
46655
  if (name) return name;
46620
46656
  }
46621
- return _optionalChain([owner, 'optionalAccess', _1119 => _1119.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
46657
+ return _optionalChain([owner, 'optionalAccess', _1121 => _1121.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
46622
46658
  }
46623
46659
  function getOwnerAvatar(owner) {
46624
- return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1120 => _1120.user, 'optionalAccess', _1121 => _1121.image, 'optionalAccess', _1122 => _1122.imageUrl]), () => ( void 0));
46660
+ return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1122 => _1122.user, 'optionalAccess', _1123 => _1123.image, 'optionalAccess', _1124 => _1124.imageUrl]), () => ( void 0));
46625
46661
  }
46626
46662
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
46627
46663
  messageDataArray.forEach((data) => {
@@ -46684,14 +46720,14 @@ function processHistoricalMessages(messages, options = {}) {
46684
46720
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
46685
46721
  return;
46686
46722
  }
46687
- const isUserMessage = _optionalChain([msg, 'access', _1123 => _1123.owner, 'optionalAccess', _1124 => _1124.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1125 => _1125.owner, 'optionalAccess', _1126 => _1126.type]) === OWNER_TYPE.ADMIN;
46723
+ const isUserMessage = _optionalChain([msg, 'access', _1125 => _1125.owner, 'optionalAccess', _1126 => _1126.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1127 => _1127.owner, 'optionalAccess', _1128 => _1128.type]) === OWNER_TYPE.ADMIN;
46688
46724
  if (isUserMessage) {
46689
46725
  flushAssistantMessage();
46690
- const userAuthorType = _optionalChain([msg, 'access', _1127 => _1127.owner, 'optionalAccess', _1128 => _1128.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
46726
+ const userAuthorType = _optionalChain([msg, 'access', _1129 => _1129.owner, 'optionalAccess', _1130 => _1130.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
46691
46727
  messageDataArray.forEach((data) => {
46692
46728
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
46693
46729
  const rawContext = data.contextItems;
46694
- const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1129 => _1129.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1130 => _1130.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
46730
+ const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1131 => _1131.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1132 => _1132.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
46695
46731
  processedMessages.push({
46696
46732
  id: msg.id,
46697
46733
  role: "user",
@@ -46715,7 +46751,7 @@ function processHistoricalMessages(messages, options = {}) {
46715
46751
  });
46716
46752
  const nextMsg = messages[index + 1];
46717
46753
  const isLastMessage = index === messages.length - 1;
46718
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1131 => _1131.owner, 'optionalAccess', _1132 => _1132.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1133 => _1133.owner, 'optionalAccess', _1134 => _1134.type]) === OWNER_TYPE.ADMIN);
46754
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1133 => _1133.owner, 'optionalAccess', _1134 => _1134.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1135 => _1135.owner, 'optionalAccess', _1136 => _1136.type]) === OWNER_TYPE.ADMIN);
46719
46755
  if (isLastMessage || nextIsFromUser) {
46720
46756
  flushAssistantMessage();
46721
46757
  }
@@ -46825,7 +46861,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
46825
46861
  }
46826
46862
  }
46827
46863
  } else {
46828
- _optionalChain([escalatedApprovals, 'optionalAccess', _1135 => _1135.set, 'call', _1136 => _1136(data.approvalRequestId, {
46864
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1137 => _1137.set, 'call', _1138 => _1138(data.approvalRequestId, {
46829
46865
  command: data.command || "",
46830
46866
  explanation: data.explanation,
46831
46867
  approvalType,
@@ -46839,8 +46875,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
46839
46875
  const existingStatus = approvalStatuses[data.approvalRequestId];
46840
46876
  const status = existingStatus || (data.approved ? "approved" : "rejected");
46841
46877
  const resolvedByName = "resolvedByName" in data ? data.resolvedByName : void 0;
46842
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1137 => _1137.get, 'call', _1138 => _1138(data.approvalRequestId)]);
46843
- if (_optionalChain([escalatedData, 'optionalAccess', _1139 => _1139.toolCalls]) && escalatedData.toolCalls.length > 0) {
46878
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1139 => _1139.get, 'call', _1140 => _1140(data.approvalRequestId)]);
46879
+ if (_optionalChain([escalatedData, 'optionalAccess', _1141 => _1141.toolCalls]) && escalatedData.toolCalls.length > 0) {
46844
46880
  if (batchApprovalsEnabled) {
46845
46881
  accumulator.addApprovalBatch(
46846
46882
  data.approvalRequestId,
@@ -46862,7 +46898,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
46862
46898
  );
46863
46899
  }
46864
46900
  }
46865
- _optionalChain([escalatedApprovals, 'optionalAccess', _1140 => _1140.delete, 'call', _1141 => _1141(data.approvalRequestId)]);
46901
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1142 => _1142.delete, 'call', _1143 => _1143(data.approvalRequestId)]);
46866
46902
  break;
46867
46903
  }
46868
46904
  if (escalatedData) {
@@ -46871,7 +46907,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
46871
46907
  explanation: escalatedData.explanation,
46872
46908
  approvalType: escalatedData.approvalType
46873
46909
  });
46874
- _optionalChain([escalatedApprovals, 'optionalAccess', _1142 => _1142.delete, 'call', _1143 => _1143(data.approvalRequestId)]);
46910
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1144 => _1144.delete, 'call', _1145 => _1145(data.approvalRequestId)]);
46875
46911
  }
46876
46912
  const before = accumulator.getSegments();
46877
46913
  const after = accumulator.updateApprovalStatus(data.approvalRequestId, status, resolvedByName);
@@ -46887,9 +46923,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
46887
46923
  case MESSAGE_TYPE.ERROR:
46888
46924
  if ("error" in data) {
46889
46925
  let message2;
46890
- if ("details" in data && _optionalChain([data, 'optionalAccess', _1144 => _1144.details])) {
46926
+ if ("details" in data && _optionalChain([data, 'optionalAccess', _1146 => _1146.details])) {
46891
46927
  try {
46892
- message2 = _optionalChain([JSON, 'access', _1145 => _1145.parse, 'call', _1146 => _1146(data.details), 'optionalAccess', _1147 => _1147.error, 'optionalAccess', _1148 => _1148.message]);
46928
+ message2 = _optionalChain([JSON, 'access', _1147 => _1147.parse, 'call', _1148 => _1148(data.details), 'optionalAccess', _1149 => _1149.error, 'optionalAccess', _1150 => _1150.message]);
46893
46929
  } catch (e59) {
46894
46930
  message2 = data.details;
46895
46931
  }
@@ -46972,14 +47008,14 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
46972
47008
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
46973
47009
  return;
46974
47010
  }
46975
- const isUserMessage = _optionalChain([msg, 'access', _1149 => _1149.owner, 'optionalAccess', _1150 => _1150.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1151 => _1151.owner, 'optionalAccess', _1152 => _1152.type]) === OWNER_TYPE.ADMIN;
47011
+ const isUserMessage = _optionalChain([msg, 'access', _1151 => _1151.owner, 'optionalAccess', _1152 => _1152.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1153 => _1153.owner, 'optionalAccess', _1154 => _1154.type]) === OWNER_TYPE.ADMIN;
46976
47012
  if (isUserMessage) {
46977
47013
  flushAssistantMessage();
46978
- const userAuthorType = _optionalChain([msg, 'access', _1153 => _1153.owner, 'optionalAccess', _1154 => _1154.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
47014
+ const userAuthorType = _optionalChain([msg, 'access', _1155 => _1155.owner, 'optionalAccess', _1156 => _1156.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
46979
47015
  messageDataArray.forEach((data) => {
46980
47016
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
46981
47017
  const rawContext = data.contextItems;
46982
- const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1155 => _1155.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1156 => _1156.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
47018
+ const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1157 => _1157.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1158 => _1158.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
46983
47019
  processedMessages.push({
46984
47020
  id: msg.id,
46985
47021
  role: "user",
@@ -47003,7 +47039,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
47003
47039
  });
47004
47040
  const nextMsg = messages[index + 1];
47005
47041
  const isLastMessage = index === messages.length - 1;
47006
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1157 => _1157.owner, 'optionalAccess', _1158 => _1158.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1159 => _1159.owner, 'optionalAccess', _1160 => _1160.type]) === OWNER_TYPE.ADMIN);
47042
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1159 => _1159.owner, 'optionalAccess', _1160 => _1160.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1161 => _1161.owner, 'optionalAccess', _1162 => _1162.type]) === OWNER_TYPE.ADMIN);
47007
47043
  if (isLastMessage || nextIsFromUser) {
47008
47044
  flushAssistantMessage();
47009
47045
  }
@@ -47339,7 +47375,7 @@ function useNatsChatAdapter(config, options = {}) {
47339
47375
  }, [active, fetchDialogs, loadDialogsPage]);
47340
47376
  const sendMessage = _react.useCallback.call(void 0,
47341
47377
  async (text, sendOptions) => {
47342
- const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1161 => _1161.hidden]), () => ( false));
47378
+ const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1163 => _1163.hidden]), () => ( false));
47343
47379
  setMessages((prev) => [
47344
47380
  ...prev,
47345
47381
  {
@@ -47503,11 +47539,11 @@ function useNatsChatAdapter(config, options = {}) {
47503
47539
  // Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
47504
47540
  // contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
47505
47541
  // matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
47506
- currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1162 => _1162.provider]), () => ( modelProvider)), () => ( null)),
47507
- currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1163 => _1163.modelLabel]), () => ( modelLabel)), () => ( null)),
47508
- currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1164 => _1164.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1165 => _1165.contextWindowMaxTokens]))), () => ( null)),
47509
- currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1166 => _1166.inputTokensSize]), () => ( null)),
47510
- currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1167 => _1167.outputTokensSize]), () => ( null)),
47542
+ currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1164 => _1164.provider]), () => ( modelProvider)), () => ( null)),
47543
+ currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1165 => _1165.modelLabel]), () => ( modelLabel)), () => ( null)),
47544
+ currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1166 => _1166.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1167 => _1167.contextWindowMaxTokens]))), () => ( null)),
47545
+ currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1168 => _1168.inputTokensSize]), () => ( null)),
47546
+ currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1169 => _1169.outputTokensSize]), () => ( null)),
47511
47547
  currentCacheHitRatePct: null,
47512
47548
  currentUsageBreakdown: null,
47513
47549
  // Dialog management
@@ -47755,7 +47791,7 @@ function extractIncompleteMessageState(lastMessage) {
47755
47791
  break;
47756
47792
  case "approval_batch": {
47757
47793
  const allDone = !!segment.data.executions && segment.data.toolCalls.every(
47758
- (c) => _optionalChain([segment, 'access', _1168 => _1168.data, 'access', _1169 => _1169.executions, 'optionalAccess', _1170 => _1170[c.toolExecutionRequestId], 'optionalAccess', _1171 => _1171.status]) === "done"
47794
+ (c) => _optionalChain([segment, 'access', _1170 => _1170.data, 'access', _1171 => _1171.executions, 'optionalAccess', _1172 => _1172[c.toolExecutionRequestId], 'optionalAccess', _1173 => _1173.status]) === "done"
47759
47795
  );
47760
47796
  if (segment.status !== "rejected" && !allDone) {
47761
47797
  hasIncompleteState = true;
@@ -47823,20 +47859,20 @@ function mergeHistoryWithRealtime(input) {
47823
47859
  const seqCoverageKnown = realtimeSeenStreamSeq > 0 && historyMaxStreamSeq > 0;
47824
47860
  const historyCoversRealtime = seqCoverageKnown ? historyMaxStreamSeq >= realtimeSeenStreamSeq : null;
47825
47861
  const trailing = processedHistory[processedHistory.length - 1];
47826
- const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1172 => _1172.role]) === "assistant" ? trailing : null;
47827
- const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _1173 => _1173.content, 'access', _1174 => _1174.find, 'call', _1175 => _1175((s) => s.type === "approval_batch"), 'optionalAccess', _1176 => _1176.data, 'optionalAccess', _1177 => _1177.approvalRequestId]), () => ( null)) : null;
47862
+ const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1174 => _1174.role]) === "assistant" ? trailing : null;
47863
+ const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _1175 => _1175.content, 'access', _1176 => _1176.find, 'call', _1177 => _1177((s) => s.type === "approval_batch"), 'optionalAccess', _1178 => _1178.data, 'optionalAccess', _1179 => _1179.approvalRequestId]), () => ( null)) : null;
47828
47864
  let processedToUse = processedHistory;
47829
47865
  const pinnedSyntheticIds = /* @__PURE__ */ new Set();
47830
47866
  const droppedSyntheticIds = /* @__PURE__ */ new Set();
47831
47867
  if (historyBatchId) {
47832
47868
  const batchTwins = existingMessages.filter(
47833
47869
  (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some(
47834
- (s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1178 => _1178.data, 'optionalAccess', _1179 => _1179.approvalRequestId]) === historyBatchId
47870
+ (s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1180 => _1180.data, 'optionalAccess', _1181 => _1181.approvalRequestId]) === historyBatchId
47835
47871
  )
47836
47872
  );
47837
47873
  const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
47838
47874
  if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
47839
- const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1180 => _1180.content])) ? historyTrailingAssistant.content.length : 0;
47875
+ const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1182 => _1182.content])) ? historyTrailingAssistant.content.length : 0;
47840
47876
  const realtimeSize = existingWithSameBatch.content.length;
47841
47877
  if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
47842
47878
  processedToUse = processedHistory.slice(0, -1);
@@ -47852,16 +47888,16 @@ function mergeHistoryWithRealtime(input) {
47852
47888
  if (pinnedSyntheticIds.has(m.id)) return true;
47853
47889
  if (droppedSyntheticIds.has(m.id)) return false;
47854
47890
  if (processedIds.has(m.id)) return false;
47855
- if (_optionalChain([rawHistoryIds, 'optionalAccess', _1181 => _1181.has, 'call', _1182 => _1182(m.id)])) return false;
47891
+ if (_optionalChain([rawHistoryIds, 'optionalAccess', _1183 => _1183.has, 'call', _1184 => _1184(m.id)])) return false;
47856
47892
  if (m.role === "user" && m.id.startsWith("optimistic-") && typeof m.content === "string") {
47857
- const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1183 => _1183.timestamp, 'optionalAccess', _1184 => _1184.getTime, 'call', _1185 => _1185()]), () => ( 0))) <= historyFetchedAt;
47893
+ const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1185 => _1185.timestamp, 'optionalAccess', _1186 => _1186.getTime, 'call', _1187 => _1187()]), () => ( 0))) <= historyFetchedAt;
47858
47894
  return !(canBeInSnapshot && processedToUse.some((pm) => pm.role === "user" && pm.content === m.content));
47859
47895
  }
47860
47896
  if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
47861
47897
  if (m.role === "assistant" && trailingAssistantText && assistantAnswerText(m.content) === trailingAssistantText) {
47862
47898
  return false;
47863
47899
  }
47864
- const covered = typeof m.streamSeq === "number" && historyMaxStreamSeq > 0 ? historyMaxStreamSeq >= m.streamSeq : historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1186 => _1186.timestamp, 'optionalAccess', _1187 => _1187.getTime, 'call', _1188 => _1188()]), () => ( 0))) <= historyFetchedAt;
47900
+ const covered = typeof m.streamSeq === "number" && historyMaxStreamSeq > 0 ? historyMaxStreamSeq >= m.streamSeq : historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1188 => _1188.timestamp, 'optionalAccess', _1189 => _1189.getTime, 'call', _1190 => _1190()]), () => ( 0))) <= historyFetchedAt;
47865
47901
  if (covered) return false;
47866
47902
  }
47867
47903
  return true;
@@ -48081,7 +48117,7 @@ function useChatDialogManager({
48081
48117
  const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
48082
48118
  if (restoreTarget) {
48083
48119
  try {
48084
- await _optionalChain([unarchiveDialog, 'optionalCall', _1189 => _1189(restoreTarget.id)]);
48120
+ await _optionalChain([unarchiveDialog, 'optionalCall', _1191 => _1191(restoreTarget.id)]);
48085
48121
  } catch (err) {
48086
48122
  console.error("[useChatDialogManager] unarchive failed:", err);
48087
48123
  return;
@@ -48476,6 +48512,7 @@ function EmbeddableChatInner({
48476
48512
  };
48477
48513
  }, [isOpen, shellLess]);
48478
48514
  const chatInputRef = _react.useRef.call(void 0, null);
48515
+ const quickActionDraftRef = _react.useRef.call(void 0, null);
48479
48516
  const slashCommandsProp = _react.useMemo.call(void 0,
48480
48517
  () => ({
48481
48518
  fetchCommands: (prefix, signal) => fetchSlashCommands(prefix, signal, commandsUrl),
@@ -48490,7 +48527,7 @@ function EmbeddableChatInner({
48490
48527
  }),
48491
48528
  [commandsUrl]
48492
48529
  );
48493
- const userName = _optionalChain([identityUser, 'optionalAccess', _1190 => _1190.firstName, 'optionalAccess', _1191 => _1191.trim, 'call', _1192 => _1192()]) || _optionalChain([identityUser, 'optionalAccess', _1193 => _1193.name, 'optionalAccess', _1194 => _1194.split, 'call', _1195 => _1195(" "), 'access', _1196 => _1196[0], 'optionalAccess', _1197 => _1197.trim, 'call', _1198 => _1198()]) || void 0;
48530
+ const userName = _optionalChain([identityUser, 'optionalAccess', _1192 => _1192.firstName, 'optionalAccess', _1193 => _1193.trim, 'call', _1194 => _1194()]) || _optionalChain([identityUser, 'optionalAccess', _1195 => _1195.name, 'optionalAccess', _1196 => _1196.split, 'call', _1197 => _1197(" "), 'access', _1198 => _1198[0], 'optionalAccess', _1199 => _1199.trim, 'call', _1200 => _1200()]) || void 0;
48494
48531
  const effectiveModes = _react.useMemo.call(void 0, () => {
48495
48532
  if (modes) return modes;
48496
48533
  const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
@@ -48499,19 +48536,19 @@ function EmbeddableChatInner({
48499
48536
  const mingoCaps = _react.useMemo.call(void 0, () => {
48500
48537
  if (mingoState) {
48501
48538
  return {
48502
- canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1199 => _1199.canRename]), () => ( false)),
48503
- canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1200 => _1200.canArchive]), () => ( false)),
48504
- fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1201 => _1201.fetchArchivedDialogs]),
48505
- unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1202 => _1202.unarchiveDialog]),
48506
- searchQuery: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1203 => _1203.searchQuery]),
48507
- onSearchChange: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1204 => _1204.onSearchChange])
48539
+ canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1201 => _1201.canRename]), () => ( false)),
48540
+ canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1202 => _1202.canArchive]), () => ( false)),
48541
+ fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1203 => _1203.fetchArchivedDialogs]),
48542
+ unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1204 => _1204.unarchiveDialog]),
48543
+ searchQuery: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1205 => _1205.searchQuery]),
48544
+ onSearchChange: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1206 => _1206.onSearchChange])
48508
48545
  };
48509
48546
  }
48510
48547
  return {
48511
- canRename: !!_optionalChain([effectiveModes, 'access', _1205 => _1205.mingo, 'optionalAccess', _1206 => _1206.renameDialog]),
48512
- canArchive: !!_optionalChain([effectiveModes, 'access', _1207 => _1207.mingo, 'optionalAccess', _1208 => _1208.archiveDialog]),
48513
- fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1209 => _1209.mingo, 'optionalAccess', _1210 => _1210.fetchArchivedDialogs]),
48514
- unarchiveDialog: _optionalChain([effectiveModes, 'access', _1211 => _1211.mingo, 'optionalAccess', _1212 => _1212.unarchiveDialog]),
48548
+ canRename: !!_optionalChain([effectiveModes, 'access', _1207 => _1207.mingo, 'optionalAccess', _1208 => _1208.renameDialog]),
48549
+ canArchive: !!_optionalChain([effectiveModes, 'access', _1209 => _1209.mingo, 'optionalAccess', _1210 => _1210.archiveDialog]),
48550
+ fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1211 => _1211.mingo, 'optionalAccess', _1212 => _1212.fetchArchivedDialogs]),
48551
+ unarchiveDialog: _optionalChain([effectiveModes, 'access', _1213 => _1213.mingo, 'optionalAccess', _1214 => _1214.unarchiveDialog]),
48515
48552
  searchQuery: void 0,
48516
48553
  onSearchChange: void 0
48517
48554
  };
@@ -48525,7 +48562,7 @@ function EmbeddableChatInner({
48525
48562
  if (controlledActiveMode === void 0) {
48526
48563
  setUncontrolledActiveMode(next);
48527
48564
  }
48528
- _optionalChain([onActiveModeChange, 'optionalCall', _1213 => _1213(next)]);
48565
+ _optionalChain([onActiveModeChange, 'optionalCall', _1215 => _1215(next)]);
48529
48566
  },
48530
48567
  [controlledActiveMode, onActiveModeChange]
48531
48568
  );
@@ -48579,7 +48616,7 @@ function EmbeddableChatInner({
48579
48616
  clear: clearAttachments
48580
48617
  } = useChatAttachments();
48581
48618
  const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
48582
- const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1214 => _1214.maxItems]), () => ( 10));
48619
+ const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1216 => _1216.maxItems]), () => ( 10));
48583
48620
  const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
48584
48621
  const [contextItems, setContextItems] = _react.useState.call(void 0, []);
48585
48622
  const [contextPickerOpen, setContextPickerOpen] = _react.useState.call(void 0, false);
@@ -48596,10 +48633,10 @@ function EmbeddableChatInner({
48596
48633
  }, [activeDialogId, activeMode]);
48597
48634
  const mentionMarkerByType = _react.useMemo.call(void 0, () => {
48598
48635
  const m = /* @__PURE__ */ new Map();
48599
- for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1215 => _1215.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
48636
+ for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1217 => _1217.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
48600
48637
  return m;
48601
- }, [_optionalChain([contextPicker, 'optionalAccess', _1216 => _1216.entityTypes])]);
48602
- const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _1217 => _1217.entityTypes]);
48638
+ }, [_optionalChain([contextPicker, 'optionalAccess', _1218 => _1218.entityTypes])]);
48639
+ const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _1219 => _1219.entityTypes]);
48603
48640
  const resolveContextIcon = _react.useMemo.call(void 0, () => {
48604
48641
  const byType = /* @__PURE__ */ new Map();
48605
48642
  for (const t of _nullishCoalesce(contextEntityTypes, () => ( []))) byType.set(t.type, t.icon);
@@ -48611,7 +48648,7 @@ function EmbeddableChatInner({
48611
48648
  if (mentionActiveRef.current) {
48612
48649
  if (contextItems.some((p) => `${p.type}:${p.id}` === key)) return;
48613
48650
  if (contextItems.length >= contextMaxItems) return;
48614
- _optionalChain([chatInputRef, 'access', _1218 => _1218.current, 'optionalAccess', _1219 => _1219.commitMention, 'call', _1220 => _1220(mentionTokenOf(key, mentionMarkerByType), {
48651
+ _optionalChain([chatInputRef, 'access', _1220 => _1220.current, 'optionalAccess', _1221 => _1221.commitMention, 'call', _1222 => _1222(mentionTokenOf(key, mentionMarkerByType), {
48615
48652
  label: item.label,
48616
48653
  icon: resolveContextIcon(item)
48617
48654
  })]);
@@ -48633,9 +48670,9 @@ function EmbeddableChatInner({
48633
48670
  setContextItems((prev) => prev.filter((p) => `${p.type}:${p.id}` !== key));
48634
48671
  if (mentionKeysRef.current.has(key)) {
48635
48672
  mentionKeysRef.current.delete(key);
48636
- const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _1221 => _1221.current, 'optionalAccess', _1222 => _1222.getValue, 'call', _1223 => _1223()]), () => ( ""));
48673
+ const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _1223 => _1223.current, 'optionalAccess', _1224 => _1224.getValue, 'call', _1225 => _1225()]), () => ( ""));
48637
48674
  const next = cur.replace(`@${mentionTokenOf(key, mentionMarkerByType)}`, "").replace(/\s{2,}/g, " ").trimStart();
48638
- _optionalChain([chatInputRef, 'access', _1224 => _1224.current, 'optionalAccess', _1225 => _1225.setValue, 'call', _1226 => _1226(next)]);
48675
+ _optionalChain([chatInputRef, 'access', _1226 => _1226.current, 'optionalAccess', _1227 => _1227.setValue, 'call', _1228 => _1228(next)]);
48639
48676
  }
48640
48677
  }, [mentionMarkerByType]);
48641
48678
  const handleContextValueChange = _react.useCallback.call(void 0, (value) => {
@@ -48652,7 +48689,7 @@ function EmbeddableChatInner({
48652
48689
  }, []);
48653
48690
  const closeContextPicker = _react.useCallback.call(void 0, () => {
48654
48691
  if (mentionActiveRef.current) {
48655
- _optionalChain([chatInputRef, 'access', _1227 => _1227.current, 'optionalAccess', _1228 => _1228.removeMentionTrigger, 'call', _1229 => _1229()]);
48692
+ _optionalChain([chatInputRef, 'access', _1229 => _1229.current, 'optionalAccess', _1230 => _1230.removeMentionTrigger, 'call', _1231 => _1231()]);
48656
48693
  }
48657
48694
  setContextPickerOpen(false);
48658
48695
  setMentionQuery(null);
@@ -48686,8 +48723,8 @@ function EmbeddableChatInner({
48686
48723
  []
48687
48724
  );
48688
48725
  const timestampCacheRef = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
48689
- const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _1230 => _1230.firstName]), _optionalChain([identityUser, 'optionalAccess', _1231 => _1231.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _1232 => _1232.name, 'optionalAccess', _1233 => _1233.trim, 'call', _1234 => _1234()]) || void 0 : void 0;
48690
- const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _1235 => _1235.avatarUrl, 'optionalAccess', _1236 => _1236.trim, 'call', _1237 => _1237()]) || void 0 : void 0;
48726
+ const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _1232 => _1232.firstName]), _optionalChain([identityUser, 'optionalAccess', _1233 => _1233.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _1234 => _1234.name, 'optionalAccess', _1235 => _1235.trim, 'call', _1236 => _1236()]) || void 0 : void 0;
48727
+ const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _1237 => _1237.avatarUrl, 'optionalAccess', _1238 => _1238.trim, 'call', _1239 => _1239()]) || void 0 : void 0;
48691
48728
  const messages = _react.useMemo.call(void 0, () => {
48692
48729
  const cache = timestampCacheRef.current;
48693
48730
  const seenIds = /* @__PURE__ */ new Set();
@@ -48835,9 +48872,9 @@ function EmbeddableChatInner({
48835
48872
  const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
48836
48873
  const lastSources = _react.useMemo.call(void 0, () => {
48837
48874
  if (chatLoading) return void 0;
48838
- const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1238 => _1238.sources]);
48875
+ const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1240 => _1240.sources]);
48839
48876
  if (!sources || sources.length === 0) return void 0;
48840
- const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1239 => _1239.content]) || "";
48877
+ const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1241 => _1241.content]) || "";
48841
48878
  const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
48842
48879
  (m) => parseInt(m[1], 10)
48843
48880
  );
@@ -48884,7 +48921,7 @@ function EmbeddableChatInner({
48884
48921
  ChatPanelHeader,
48885
48922
  {
48886
48923
  showBack: hasConversation || guideCanReturnToMingo,
48887
- title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1240 => _1240.title]) || "New Chat" : isGuideEmpty ? "Mingo Guide" : "Current Chats",
48924
+ title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1242 => _1242.title]) || "New Chat" : isGuideEmpty ? "Mingo Guide" : "Current Chats",
48888
48925
  backAriaLabel: hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo",
48889
48926
  isArchivedView: isViewingArchived,
48890
48927
  onBack: hasConversation ? handleBack : () => handleActiveModeChange("mingo"),
@@ -49002,10 +49039,24 @@ function EmbeddableChatInner({
49002
49039
  subtitle: _nullishCoalesce(effectiveGreeting, () => ( void 0)),
49003
49040
  subtitleLoading: emptyStateLoading,
49004
49041
  ...guideWelcome,
49005
- quickActions: _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _1241 => _1241.quickActions]), () => ( guideSuggestedActions)),
49042
+ quickActions: _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _1243 => _1243.quickActions]), () => ( guideSuggestedActions)),
49006
49043
  onQuickAction: (action) => {
49044
+ quickActionDraftRef.current = null;
49045
+ _optionalChain([chatInputRef, 'access', _1244 => _1244.current, 'optionalAccess', _1245 => _1245.setValue, 'call', _1246 => _1246("")]);
49007
49046
  handleSend(_nullishCoalesce(action.prompt, () => ( action.label)));
49008
49047
  },
49048
+ onQuickActionHover: (action) => {
49049
+ if (quickActionDraftRef.current === null) {
49050
+ quickActionDraftRef.current = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _1247 => _1247.current, 'optionalAccess', _1248 => _1248.getValue, 'call', _1249 => _1249()]), () => ( ""));
49051
+ }
49052
+ _optionalChain([chatInputRef, 'access', _1250 => _1250.current, 'optionalAccess', _1251 => _1251.setValue, 'call', _1252 => _1252(_nullishCoalesce(action.prompt, () => ( action.label)))]);
49053
+ },
49054
+ onQuickActionHoverEnd: () => {
49055
+ if (quickActionDraftRef.current !== null) {
49056
+ _optionalChain([chatInputRef, 'access', _1253 => _1253.current, 'optionalAccess', _1254 => _1254.setValue, 'call', _1255 => _1255(quickActionDraftRef.current)]);
49057
+ quickActionDraftRef.current = null;
49058
+ }
49059
+ },
49009
49060
  children: (chipCommands.length > 0 || !commandsLoaded) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "shrink-0 overflow-hidden rounded-md border border-ods-border", children: [
49010
49061
  !commandsLoaded && chipCommands.length === 0 && SKELETON_ROW_VARIANTS.map((variant, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
49011
49062
  MingoOnboardingCardSkeleton,
@@ -50079,4 +50130,4 @@ function EmbeddableChatInner({
50079
50130
 
50080
50131
 
50081
50132
  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.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.HoneypotField = HoneypotField; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatFileSize = formatFileSize; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatEntryMonthUTC = formatEntryMonthUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.SquareAvatar = SquareAvatar; exports.AssigneeDropdown = AssigneeDropdown; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.getReadableTextColor = getReadableTextColor; exports.HEX_PATTERN = HEX_PATTERN; exports.hexToRgb = hexToRgb; exports.rgbToHex = rgbToHex; exports.deriveHoverColor = deriveHoverColor; exports.deriveActiveColor = deriveActiveColor; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataMessage = NoDataMessage; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal2; exports.ModalContent = ModalContent2; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter2; exports.Modal2 = Modal; exports.ModalContent2 = ModalContent; exports.ModalHeader2 = ModalHeader; exports.ModalTitle2 = ModalTitle; exports.ModalFooter2 = ModalFooter; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.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.AIGeneratedBadge = AIGeneratedBadge; exports.Progress = Progress; exports.fetchPriorityProp = fetchPriorityProp; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.MediaCarousel = MediaCarousel; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.toGoogleSheetsEmbedUrl = toGoogleSheetsEmbedUrl; exports.toGoogleSheetsOriginalUrl = toGoogleSheetsOriginalUrl; exports.toFigmaEmbedUrl = toFigmaEmbedUrl; exports.isFigmaSlidesUrl = isFigmaSlidesUrl; exports.toFigmaOriginalUrl = toFigmaOriginalUrl; exports.EmbedIframe = EmbedIframe; exports.FigmaEmbed = FigmaEmbed; exports.MarkdownImage = MarkdownImage; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.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.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.ONBOARDING_ICONS = ONBOARDING_ICONS; exports.resolveOnboardingIcon = resolveOnboardingIcon; exports.ONBOARDING_ICON_OPTIONS = ONBOARDING_ICON_OPTIONS; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.BlockCard = BlockCard; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.ChatQuickAction = ChatQuickAction; exports.ChatQuickActionRow = ChatQuickActionRow; exports.ChatQuickActionRowSkeleton = ChatQuickActionRowSkeleton; 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.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.GuideModeBanner = GuideModeBanner; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.COMPACT_HEADER_BUTTON = COMPACT_HEADER_BUTTON; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.FlamingoLogo = FlamingoLogo; exports.OpenmspLogo = OpenmspLogo; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.getProxiedImageUrl2 = getProxiedImageUrl2; exports.WhatIShippedCard = WhatIShippedCard; exports.WhatIShippedCardSkeleton = WhatIShippedCardSkeleton; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.SECTION_HEADING_CLASS = SECTION_HEADING_CLASS; exports.PageHeading = PageHeading; 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.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.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.useSseChatAdapter = useSseChatAdapter; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.serializeJsonLd = serializeJsonLd; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.formatTicketRelativeTime = formatTicketRelativeTime; exports.formatTicketFullTimestamp = formatTicketFullTimestamp; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.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.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.CONTENT_REF_GROUPS = CONTENT_REF_GROUPS; exports.getContentRefLabel = getContentRefLabel; exports.getContentRefLabelOrTitleCase = getContentRefLabelOrTitleCase; exports.orderContentRefTypes = orderContentRefTypes; exports.buildSuggestionUrl = buildSuggestionUrl; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.extractSections = extractSections; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.init_pagination = init_pagination; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.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.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.FilterPillRow = FilterPillRow; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderMingoButton = HeaderMingoButton; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.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.MultiLevelNavigation = MultiLevelNavigation; exports.MobileNavigationDropdown = MobileNavigationDropdown; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.FAE_AVATAR_DATA_URI = FAE_AVATAR_DATA_URI; exports.assets = assets;
50082
- //# sourceMappingURL=chunk-2FDRZIX2.cjs.map
50133
+ //# sourceMappingURL=chunk-ERMMMQET.cjs.map