@flamingo-stack/openframe-frontend-core 0.0.210 → 0.0.212-snapshot.20260528112413

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 (128) hide show
  1. package/dist/{chunk-VBFOCTMD.cjs → chunk-35XIT2CF.cjs} +17 -17
  2. package/dist/{chunk-VBFOCTMD.cjs.map → chunk-35XIT2CF.cjs.map} +1 -1
  3. package/dist/{chunk-ATEUJQKU.js → chunk-3JWIJJ44.js} +2 -2
  4. package/dist/chunk-CZR7ARBA.js +698 -0
  5. package/dist/chunk-CZR7ARBA.js.map +1 -0
  6. package/dist/{chunk-UYQOPC57.js → chunk-HICZPTRR.js} +4 -351
  7. package/dist/chunk-HICZPTRR.js.map +1 -0
  8. package/dist/{chunk-WJBPLMBX.js → chunk-IK2X5YJU.js} +3 -3
  9. package/dist/{chunk-MDTIOPVS.cjs → chunk-OTKJASSX.cjs} +26 -26
  10. package/dist/{chunk-MDTIOPVS.cjs.map → chunk-OTKJASSX.cjs.map} +1 -1
  11. package/dist/chunk-OZ3GH6OQ.cjs +698 -0
  12. package/dist/chunk-OZ3GH6OQ.cjs.map +1 -0
  13. package/dist/{chunk-6RZYJICV.cjs → chunk-P5EE2VJX.cjs} +1 -1
  14. package/dist/chunk-P5EE2VJX.cjs.map +1 -0
  15. package/dist/{chunk-EH3RWVF3.cjs → chunk-WT5JV2GS.cjs} +8 -355
  16. package/dist/chunk-WT5JV2GS.cjs.map +1 -0
  17. package/dist/{chunk-TWKPYZNQ.cjs → chunk-ZDF6F7ED.cjs} +569 -694
  18. package/dist/chunk-ZDF6F7ED.cjs.map +1 -0
  19. package/dist/{chunk-7L4DWM7P.js → chunk-ZG2YY5E7.js} +1 -1
  20. package/dist/chunk-ZG2YY5E7.js.map +1 -0
  21. package/dist/{chunk-R5RNRH62.js → chunk-ZTJVRSN5.js} +422 -547
  22. package/dist/chunk-ZTJVRSN5.js.map +1 -0
  23. package/dist/components/chat/hooks/use-chat-identity.d.ts +3 -3
  24. package/dist/components/chat/hooks/use-chat-identity.d.ts.map +1 -1
  25. package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts.map +1 -1
  26. package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts +0 -9
  27. package/dist/components/chat/hooks/use-nats-dialog-subscription.d.ts.map +1 -1
  28. package/dist/components/chat/index.cjs +6 -5
  29. package/dist/components/chat/index.cjs.map +1 -1
  30. package/dist/components/chat/index.js +5 -4
  31. package/dist/components/contact/index.cjs +7 -6
  32. package/dist/components/contact/index.cjs.map +1 -1
  33. package/dist/components/contact/index.js +6 -5
  34. package/dist/components/features/index.cjs +6 -5
  35. package/dist/components/features/index.cjs.map +1 -1
  36. package/dist/components/features/index.js +5 -4
  37. package/dist/components/features/notifications/index.d.ts +2 -2
  38. package/dist/components/features/notifications/index.d.ts.map +1 -1
  39. package/dist/components/features/notifications/notifications-context.d.ts +16 -1
  40. package/dist/components/features/notifications/notifications-context.d.ts.map +1 -1
  41. package/dist/components/features/notifications/types.d.ts +4 -0
  42. package/dist/components/features/notifications/types.d.ts.map +1 -1
  43. package/dist/components/footer-waitlist-button.d.ts +21 -2
  44. package/dist/components/footer-waitlist-button.d.ts.map +1 -1
  45. package/dist/components/index.cjs +93 -96
  46. package/dist/components/index.cjs.map +1 -1
  47. package/dist/components/index.js +17 -20
  48. package/dist/components/index.js.map +1 -1
  49. package/dist/components/navigation/app-header.d.ts.map +1 -1
  50. package/dist/components/navigation/index.cjs +6 -5
  51. package/dist/components/navigation/index.cjs.map +1 -1
  52. package/dist/components/navigation/index.js +5 -4
  53. package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
  54. package/dist/components/tickets/help-center-card.d.ts.map +1 -1
  55. package/dist/components/tickets/index.cjs +144 -102
  56. package/dist/components/tickets/index.cjs.map +1 -1
  57. package/dist/components/tickets/index.js +98 -56
  58. package/dist/components/tickets/index.js.map +1 -1
  59. package/dist/components/tickets/ticket-row.d.ts.map +1 -1
  60. package/dist/components/ui/index.cjs +6 -5
  61. package/dist/components/ui/index.cjs.map +1 -1
  62. package/dist/components/ui/index.js +5 -4
  63. package/dist/contexts/chat-runtime-context.d.ts +6 -3
  64. package/dist/contexts/chat-runtime-context.d.ts.map +1 -1
  65. package/dist/contexts/index.cjs +2 -2
  66. package/dist/contexts/index.js +1 -1
  67. package/dist/embed-shims/index.cjs +3 -3
  68. package/dist/embed-shims/index.cjs.map +1 -1
  69. package/dist/embed-shims/index.js +4 -4
  70. package/dist/hooks/index.cjs +3 -2
  71. package/dist/hooks/index.cjs.map +1 -1
  72. package/dist/hooks/index.js +2 -1
  73. package/dist/index.cjs +8 -5
  74. package/dist/index.cjs.map +1 -1
  75. package/dist/index.js +7 -4
  76. package/dist/nats/index.cjs +28 -346
  77. package/dist/nats/index.cjs.map +1 -1
  78. package/dist/nats/index.d.ts +3 -0
  79. package/dist/nats/index.d.ts.map +1 -1
  80. package/dist/nats/index.js +30 -346
  81. package/dist/nats/index.js.map +1 -1
  82. package/dist/nats/nats-provider.d.ts +28 -0
  83. package/dist/nats/nats-provider.d.ts.map +1 -0
  84. package/dist/nats/nats.d.ts +1 -0
  85. package/dist/nats/nats.d.ts.map +1 -1
  86. package/dist/nats/shared-connection.d.ts +73 -0
  87. package/dist/nats/shared-connection.d.ts.map +1 -0
  88. package/dist/nats/use-nats-subscription.d.ts +18 -0
  89. package/dist/nats/use-nats-subscription.d.ts.map +1 -0
  90. package/dist/utils/index.cjs +10 -0
  91. package/dist/utils/index.cjs.map +1 -1
  92. package/dist/utils/index.d.ts +1 -0
  93. package/dist/utils/index.d.ts.map +1 -1
  94. package/dist/utils/index.js +10 -1
  95. package/dist/utils/index.js.map +1 -1
  96. package/dist/utils/scroll-into-view.d.ts +63 -0
  97. package/dist/utils/scroll-into-view.d.ts.map +1 -0
  98. package/package.json +1 -1
  99. package/src/components/chat/hooks/use-chat-identity.ts +8 -7
  100. package/src/components/chat/hooks/use-jetstream-dialog-subscription.ts +60 -207
  101. package/src/components/chat/hooks/use-nats-dialog-subscription.ts +71 -214
  102. package/src/components/features/notifications/index.ts +2 -1
  103. package/src/components/features/notifications/notifications-context.tsx +104 -6
  104. package/src/components/features/notifications/types.ts +5 -0
  105. package/src/components/footer-waitlist-button.tsx +33 -16
  106. package/src/components/navigation/app-header.tsx +7 -9
  107. package/src/components/navigation/sticky-section-nav.tsx +6 -4
  108. package/src/components/tickets/help-center-card.tsx +55 -1
  109. package/src/components/tickets/help-center-list.tsx +9 -1
  110. package/src/components/tickets/ticket-detail-drawer.tsx +19 -4
  111. package/src/components/tickets/ticket-row.tsx +30 -19
  112. package/src/contexts/chat-runtime-context.tsx +6 -3
  113. package/src/nats/index.ts +3 -0
  114. package/src/nats/nats-provider.tsx +146 -0
  115. package/src/nats/nats.ts +2 -0
  116. package/src/nats/shared-connection.ts +285 -0
  117. package/src/nats/use-nats-subscription.ts +99 -0
  118. package/src/stories/EmbeddableChat.stories.tsx +1 -1
  119. package/src/utils/index.ts +12 -0
  120. package/src/utils/scroll-into-view.ts +74 -0
  121. package/dist/chunk-6RZYJICV.cjs.map +0 -1
  122. package/dist/chunk-7L4DWM7P.js.map +0 -1
  123. package/dist/chunk-EH3RWVF3.cjs.map +0 -1
  124. package/dist/chunk-R5RNRH62.js.map +0 -1
  125. package/dist/chunk-TWKPYZNQ.cjs.map +0 -1
  126. package/dist/chunk-UYQOPC57.js.map +0 -1
  127. /package/dist/{chunk-ATEUJQKU.js.map → chunk-3JWIJJ44.js.map} +0 -0
  128. /package/dist/{chunk-WJBPLMBX.js.map → chunk-IK2X5YJU.js.map} +0 -0
@@ -16,8 +16,7 @@
16
16
 
17
17
 
18
18
 
19
-
20
- var _chunkEH3RWVF3cjs = require('./chunk-EH3RWVF3.cjs');
19
+ var _chunkWT5JV2GScjs = require('./chunk-WT5JV2GS.cjs');
21
20
 
22
21
 
23
22
 
@@ -129,7 +128,6 @@ var _chunk24KCAECRcjs = require('./chunk-24KCAECR.cjs');
129
128
 
130
129
 
131
130
 
132
-
133
131
 
134
132
 
135
133
  var _chunk65CPJ4SXcjs = require('./chunk-65CPJ4SX.cjs');
@@ -139,7 +137,10 @@ var _chunk65CPJ4SXcjs = require('./chunk-65CPJ4SX.cjs');
139
137
  var _chunkXQFFGR6Ucjs = require('./chunk-XQFFGR6U.cjs');
140
138
 
141
139
 
142
- var _chunk6RZYJICVcjs = require('./chunk-6RZYJICV.cjs');
140
+ var _chunkP5EE2VJXcjs = require('./chunk-P5EE2VJX.cjs');
141
+
142
+
143
+ var _chunkXL4V2PYGcjs = require('./chunk-XL4V2PYG.cjs');
143
144
 
144
145
 
145
146
  var _chunkBZFW3FOFcjs = require('./chunk-BZFW3FOF.cjs');
@@ -151,7 +152,9 @@ var _chunkBZFW3FOFcjs = require('./chunk-BZFW3FOF.cjs');
151
152
  var _chunkG7UE6RKVcjs = require('./chunk-G7UE6RKV.cjs');
152
153
 
153
154
 
154
- var _chunkXL4V2PYGcjs = require('./chunk-XL4V2PYG.cjs');
155
+
156
+
157
+ var _chunkOZ3GH6OQcjs = require('./chunk-OZ3GH6OQ.cjs');
155
158
 
156
159
 
157
160
 
@@ -772,7 +775,7 @@ function ToolCallRow({ call, expanded, onToggle, batchStatus, execution }) {
772
775
  onClick: onToggle,
773
776
  className: "flex gap-2 items-start w-full p-3 cursor-pointer text-left",
774
777
  children: [
775
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEH3RWVF3cjs.ToolIcon, { toolType, size: 16 }) }),
778
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWT5JV2GScjs.ToolIcon, { toolType, size: 16 }) }),
776
779
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
777
780
  "div",
778
781
  {
@@ -3175,7 +3178,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
3175
3178
  className: "flex gap-[var(--spacing-system-xs)] items-start p-[var(--spacing-system-s)] cursor-pointer text-left w-full",
3176
3179
  onClick: () => setExpanded((prev) => !prev),
3177
3180
  children: [
3178
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEH3RWVF3cjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
3181
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWT5JV2GScjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
3179
3182
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3180
3183
  "div",
3181
3184
  {
@@ -4776,7 +4779,7 @@ function NavLinkAnchorViaRuntime({
4776
4779
  className,
4777
4780
  children
4778
4781
  }) {
4779
- const runtime = _chunk6RZYJICVcjs.useRequiredChatRuntime.call(void 0, );
4782
+ const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
4780
4783
  const panel = useChatPanel();
4781
4784
  const resolvedHref = resolveHrefForRuntime(href, runtime);
4782
4785
  const isNewTab = computeIsNewTab(runtime, resolvedHref, _nullishCoalesce(targetPlatform, () => ( null)));
@@ -5416,7 +5419,7 @@ function AdminContentCard({
5416
5419
  const [imageError, setImageError] = _react.useState.call(void 0, false);
5417
5420
  const [imageLoaded, setImageLoaded] = _react.useState.call(void 0, false);
5418
5421
  const displayUrl = imageUrl && !imageError ? imageUrl : placeholderUrl;
5419
- const imageBgColor = _chunkEH3RWVF3cjs.useImageEdgeColor.call(void 0, displayUrl || null, "transparent");
5422
+ const imageBgColor = _chunkWT5JV2GScjs.useImageEdgeColor.call(void 0, displayUrl || null, "transparent");
5420
5423
  _react.useEffect.call(void 0, () => {
5421
5424
  setImageLoaded(false);
5422
5425
  }, [displayUrl]);
@@ -5975,7 +5978,7 @@ var RATIO_TO_CSS_ASPECT = {
5975
5978
  landscape: "16 / 9"
5976
5979
  };
5977
5980
  function LazyBite({ ratio, children }) {
5978
- const { ref, isNear } = _chunkEH3RWVF3cjs.useNearViewport.call(void 0, "500px");
5981
+ const { ref, isNear } = _chunkWT5JV2GScjs.useNearViewport.call(void 0, "500px");
5979
5982
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, style: { aspectRatio: RATIO_TO_CSS_ASPECT[ratio] }, children: isNear ? children : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full h-full bg-ods-card rounded-md" }) });
5980
5983
  }
5981
5984
  function VideoBitesDisplay({
@@ -7718,7 +7721,7 @@ function AutocompleteInner(props, ref) {
7718
7721
  }, [valueArray, options]);
7719
7722
  const selectedOption = !multiple && selectedOptions.length > 0 ? selectedOptions[0] : null;
7720
7723
  const inputPlaceholder = multiple ? valueArray.length === 0 ? placeholder : "Add More..." : placeholder;
7721
- const autoLimitTags = _chunkEH3RWVF3cjs.useAutoLimitTags.call(void 0, {
7724
+ const autoLimitTags = _chunkWT5JV2GScjs.useAutoLimitTags.call(void 0, {
7722
7725
  count: multiple ? selectedOptions.length : 0,
7723
7726
  limitTags: multiple ? limitTagsProp : 0,
7724
7727
  placeholder: inputPlaceholder
@@ -9116,7 +9119,7 @@ var ProgressBar = ({
9116
9119
  mobileHeight = 8,
9117
9120
  inverted = false
9118
9121
  }) => {
9119
- const isMdUp = _nullishCoalesce(_chunkEH3RWVF3cjs.useMdUp.call(void 0, ), () => ( true));
9122
+ const isMdUp = _nullishCoalesce(_chunkWT5JV2GScjs.useMdUp.call(void 0, ), () => ( true));
9120
9123
  const effectiveSegmentWidth = isMdUp ? segmentWidth : mobileSegmentWidth;
9121
9124
  const effectiveHeight = isMdUp ? height : mobileHeight;
9122
9125
  const containerRef = _react.useRef.call(void 0, null);
@@ -9211,7 +9214,7 @@ function InfoCard({ data, className = "" }) {
9211
9214
  );
9212
9215
  }
9213
9216
  function InfoCardValueRow({ label, value, showLabel, copyable, copyAriaLabel }) {
9214
- const { copy, copied } = _chunkEH3RWVF3cjs.useCopyToClipboard.call(void 0, );
9217
+ const { copy, copied } = _chunkWT5JV2GScjs.useCopyToClipboard.call(void 0, );
9215
9218
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-6 items-center gap-[var(--spacing-system-xs)] self-stretch w-full", children: [
9216
9219
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary whitespace-nowrap", children: showLabel ? label : "" }),
9217
9220
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 h-px bg-ods-divider" }),
@@ -12940,7 +12943,7 @@ function ListPageLayout({
12940
12943
  }) {
12941
12944
  const [mobileFilterOpen, setMobileFilterOpen] = _react.useState.call(void 0, false);
12942
12945
  const [localSearchValue, setLocalSearchValue] = _react.useState.call(void 0, searchValue);
12943
- const debouncedSearchValue = _chunkEH3RWVF3cjs.useDebounce.call(void 0, localSearchValue, 500);
12946
+ const debouncedSearchValue = _chunkWT5JV2GScjs.useDebounce.call(void 0, localSearchValue, 500);
12944
12947
  _react.useEffect.call(void 0, () => {
12945
12948
  setLocalSearchValue(searchValue);
12946
12949
  }, [searchValue]);
@@ -13743,7 +13746,7 @@ function toToolLabel(input) {
13743
13746
  if (!input) return "";
13744
13747
  const toolType = normalizeToolType(input);
13745
13748
  if (toolType) {
13746
- return _chunkEH3RWVF3cjs.toolLabels[toolType];
13749
+ return _chunkWT5JV2GScjs.toolLabels[toolType];
13747
13750
  }
13748
13751
  return input;
13749
13752
  }
@@ -13754,7 +13757,7 @@ function getToolTypeAliases(toolType) {
13754
13757
  return Object.entries(toolAliasMap).filter(([_, value]) => value === toolType).map(([key]) => key);
13755
13758
  }
13756
13759
  function getToolLabel(toolType) {
13757
- return _chunkEH3RWVF3cjs.toolLabels[toolType] || toolType;
13760
+ return _chunkWT5JV2GScjs.toolLabels[toolType] || toolType;
13758
13761
  }
13759
13762
 
13760
13763
  // src/types/shell.types.ts
@@ -15016,6 +15019,15 @@ var OPENFRAME_DEV_SECTIONS = {
15016
15019
  }
15017
15020
  };
15018
15021
 
15022
+ // src/utils/scroll-into-view.ts
15023
+ function scrollElementIntoView(target, options = {}) {
15024
+ if (typeof window === "undefined" || !target) return;
15025
+ const { headerOffset = 0, behavior = "smooth", adjustTargetY } = options;
15026
+ const rawTargetY = target.getBoundingClientRect().top + window.scrollY - headerOffset;
15027
+ const finalY = adjustTargetY ? adjustTargetY(rawTargetY) : rawTargetY;
15028
+ window.scrollTo({ top: Math.max(0, finalY), behavior });
15029
+ }
15030
+
15019
15031
  // src/components/ui/benefit-card.tsx
15020
15032
 
15021
15033
  var BenefitCard = ({
@@ -18720,7 +18732,7 @@ function PlatformFilterComponent({
18720
18732
  variant: selectedPlatform === platform.value ? "accent" : "outline",
18721
18733
  size,
18722
18734
  onClick: () => onPlatformChange(platform.value),
18723
- leftIcon: showIcons ? _chunkEH3RWVF3cjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
18735
+ leftIcon: showIcons ? _chunkWT5JV2GScjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
18724
18736
  className: "text-h3",
18725
18737
  children: platform.label
18726
18738
  },
@@ -21480,7 +21492,7 @@ var getApprovalLevelLabel = (level, editMode = false) => {
21480
21492
  };
21481
21493
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
21482
21494
  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: [
21483
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-bg border border-ods-border rounded-md flex items-center justify-center w-8 h-8", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEH3RWVF3cjs.ToolIcon, { toolType: policy.toolName, size: 16 }) }),
21495
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-bg border border-ods-border rounded-md flex items-center justify-center w-8 h-8", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWT5JV2GScjs.ToolIcon, { toolType: policy.toolName, size: 16 }) }),
21484
21496
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col min-w-0", children: [
21485
21497
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[16px] font-medium text-ods-text-primary truncate", title: policy.name, children: policy.name }),
21486
21498
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[12px] text-ods-text-secondary break-all font-mono", children: policy.commandPattern })
@@ -21790,7 +21802,7 @@ function WaitlistForm({
21790
21802
  const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
21791
21803
  const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
21792
21804
  const [countryCode, setCountryCode] = _react.useState.call(void 0, "US");
21793
- const { toast } = _chunkEH3RWVF3cjs.useToast.call(void 0, );
21805
+ const { toast } = _chunkWT5JV2GScjs.useToast.call(void 0, );
21794
21806
  const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
21795
21807
  const [isClient, setIsClient] = _react.useState.call(void 0, false);
21796
21808
  const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
@@ -21962,12 +21974,48 @@ function WaitlistForm({
21962
21974
 
21963
21975
 
21964
21976
  var NotificationsContext = React73.createContext(null);
21977
+ function mergeNotification(base, incoming) {
21978
+ const out = { ...base };
21979
+ for (const key of Object.keys(incoming)) {
21980
+ const value = incoming[key];
21981
+ if (value !== void 0) out[key] = value;
21982
+ }
21983
+ out.read = (_nullishCoalesce(incoming.read, () => ( false))) || (_nullishCoalesce(base.read, () => ( false))) || false;
21984
+ out.settled = (_nullishCoalesce(incoming.settled, () => ( false))) || (_nullishCoalesce(base.settled, () => ( false))) || false;
21985
+ return out;
21986
+ }
21965
21987
  function reducer(state, action) {
21966
21988
  switch (action.type) {
21967
21989
  case "add": {
21968
- const next = [action.notification, ...state.filter((n) => n.id !== action.notification.id)];
21990
+ const existing = state.find((n) => n.id === action.notification.id);
21991
+ if (existing) {
21992
+ const merged = mergeNotification(existing, action.notification);
21993
+ return [merged, ...state.filter((n) => n.id !== action.notification.id)];
21994
+ }
21995
+ const next = [action.notification, ...state];
21969
21996
  return next.length > action.max ? next.slice(0, action.max) : next;
21970
21997
  }
21998
+ case "upsert": {
21999
+ const existing = state.find((n) => n.id === action.notification.id);
22000
+ if (existing) {
22001
+ const merged = mergeNotification(existing, action.notification);
22002
+ return state.map((n) => n.id === action.notification.id ? merged : n);
22003
+ }
22004
+ const next = [action.notification, ...state];
22005
+ return next.length > action.max ? next.slice(0, action.max) : next;
22006
+ }
22007
+ case "set": {
22008
+ const existingById = new Map(state.map((n) => [n.id, n]));
22009
+ return action.notifications.map((incoming) => {
22010
+ const existing = existingById.get(incoming.id);
22011
+ if (!existing) return incoming;
22012
+ return {
22013
+ ...incoming,
22014
+ read: incoming.read || existing.read,
22015
+ settled: incoming.settled || existing.settled
22016
+ };
22017
+ });
22018
+ }
21971
22019
  case "markRead":
21972
22020
  return state.map((n) => n.id === action.id ? { ...n, read: true } : n);
21973
22021
  case "markAllRead":
@@ -21994,11 +22042,16 @@ function NotificationsProvider({
21994
22042
  maxNotifications = 50,
21995
22043
  defaultShowPopups = true,
21996
22044
  onShowPopupsChange,
21997
- onHistoryClick
22045
+ onHistoryClick,
22046
+ actions
21998
22047
  }) {
21999
22048
  const [notifications, dispatch] = React73.useReducer(reducer, initialNotifications);
22000
22049
  const [isOpen, setIsOpen] = React73.useState(false);
22001
22050
  const [showPopups, setShowPopupsState] = React73.useState(defaultShowPopups);
22051
+ const actionsRef = React73.useRef(actions);
22052
+ React73.useEffect(() => {
22053
+ actionsRef.current = actions;
22054
+ }, [actions]);
22002
22055
  const addNotification = React73.useCallback(
22003
22056
  (input) => {
22004
22057
  const id = _nullishCoalesce(input.id, () => ( generateId()));
@@ -22006,17 +22059,45 @@ function NotificationsProvider({
22006
22059
  ...input,
22007
22060
  id,
22008
22061
  createdAt: _nullishCoalesce(input.createdAt, () => ( Date.now())),
22009
- read: false
22062
+ read: _nullishCoalesce(input.read, () => ( false))
22010
22063
  };
22011
22064
  dispatch({ type: "add", notification, max: maxNotifications });
22012
22065
  return id;
22013
22066
  },
22014
22067
  [maxNotifications]
22015
22068
  );
22016
- const markRead = React73.useCallback((id) => dispatch({ type: "markRead", id }), []);
22017
- const markAllRead = React73.useCallback(() => dispatch({ type: "markAllRead" }), []);
22018
- const markSettled = React73.useCallback((id) => dispatch({ type: "markSettled", id }), []);
22019
- const remove = React73.useCallback((id) => dispatch({ type: "remove", id }), []);
22069
+ const upsertNotification = React73.useCallback(
22070
+ (input) => {
22071
+ const notification = {
22072
+ ...input,
22073
+ id: input.id,
22074
+ createdAt: _nullishCoalesce(input.createdAt, () => ( Date.now())),
22075
+ read: _nullishCoalesce(input.read, () => ( false))
22076
+ };
22077
+ dispatch({ type: "upsert", notification, max: maxNotifications });
22078
+ return input.id;
22079
+ },
22080
+ [maxNotifications]
22081
+ );
22082
+ const setNotifications = React73.useCallback((list) => {
22083
+ dispatch({ type: "set", notifications: list });
22084
+ }, []);
22085
+ const markRead = React73.useCallback((id) => {
22086
+ dispatch({ type: "markRead", id });
22087
+ void _optionalChain([actionsRef, 'access', _375 => _375.current, 'optionalAccess', _376 => _376.onMarkRead, 'optionalCall', _377 => _377(id)]);
22088
+ }, []);
22089
+ const markAllRead = React73.useCallback(() => {
22090
+ dispatch({ type: "markAllRead" });
22091
+ void _optionalChain([actionsRef, 'access', _378 => _378.current, 'optionalAccess', _379 => _379.onMarkAllRead, 'optionalCall', _380 => _380()]);
22092
+ }, []);
22093
+ const markSettled = React73.useCallback((id) => {
22094
+ dispatch({ type: "markSettled", id });
22095
+ void _optionalChain([actionsRef, 'access', _381 => _381.current, 'optionalAccess', _382 => _382.onMarkSettled, 'optionalCall', _383 => _383(id)]);
22096
+ }, []);
22097
+ const remove = React73.useCallback((id) => {
22098
+ dispatch({ type: "remove", id });
22099
+ void _optionalChain([actionsRef, 'access', _384 => _384.current, 'optionalAccess', _385 => _385.onRemove, 'optionalCall', _386 => _386(id)]);
22100
+ }, []);
22020
22101
  const clear = React73.useCallback(() => dispatch({ type: "clear" }), []);
22021
22102
  const open = React73.useCallback(() => setIsOpen(true), []);
22022
22103
  const close = React73.useCallback(() => setIsOpen(false), []);
@@ -22024,7 +22105,7 @@ function NotificationsProvider({
22024
22105
  const setShowPopups = React73.useCallback(
22025
22106
  (value2) => {
22026
22107
  setShowPopupsState(value2);
22027
- _optionalChain([onShowPopupsChange, 'optionalCall', _375 => _375(value2)]);
22108
+ _optionalChain([onShowPopupsChange, 'optionalCall', _387 => _387(value2)]);
22028
22109
  },
22029
22110
  [onShowPopupsChange]
22030
22111
  );
@@ -22039,6 +22120,8 @@ function NotificationsProvider({
22039
22120
  isOpen,
22040
22121
  showPopups,
22041
22122
  addNotification,
22123
+ upsertNotification,
22124
+ setNotifications,
22042
22125
  markRead,
22043
22126
  markAllRead,
22044
22127
  markSettled,
@@ -22056,6 +22139,8 @@ function NotificationsProvider({
22056
22139
  isOpen,
22057
22140
  showPopups,
22058
22141
  addNotification,
22142
+ upsertNotification,
22143
+ setNotifications,
22059
22144
  markRead,
22060
22145
  markAllRead,
22061
22146
  markSettled,
@@ -22105,7 +22190,7 @@ function NotificationTile({
22105
22190
  if (!isLive) return;
22106
22191
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
22107
22192
  const timer = window.setTimeout(() => {
22108
- _optionalChain([onSettle, 'optionalCall', _376 => _376(id)]);
22193
+ _optionalChain([onSettle, 'optionalCall', _388 => _388(id)]);
22109
22194
  }, remaining);
22110
22195
  return () => window.clearTimeout(timer);
22111
22196
  }, [id, isLive, initialElapsed, liveDurationMs, onSettle]);
@@ -22118,7 +22203,7 @@ function NotificationTile({
22118
22203
  ),
22119
22204
  children: [
22120
22205
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)] p-[var(--spacing-system-s)]", children: [
22121
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex size-6 shrink-0 items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk664KA5FIcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkEH3RWVF3cjs.dotColorByVariant[variant]) }) }),
22206
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex size-6 shrink-0 items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk664KA5FIcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkWT5JV2GScjs.dotColorByVariant[variant]) }) }),
22122
22207
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
22123
22208
  title ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-h4 text-ods-text-primary", title: typeof title === "string" ? title : void 0, children: title }) : null,
22124
22209
  description ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 line-clamp-2 text-ods-text-secondary", title: typeof description === "string" ? description : void 0, children: description }) : null
@@ -22143,7 +22228,7 @@ function NotificationTile({
22143
22228
  "button",
22144
22229
  {
22145
22230
  type: "button",
22146
- onClick: () => _optionalChain([onSettle, 'optionalCall', _377 => _377(id)]),
22231
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _389 => _389(id)]),
22147
22232
  "aria-label": "Dismiss notification",
22148
22233
  tabIndex: isLive ? 0 : -1,
22149
22234
  className: _chunk664KA5FIcjs.cn.call(void 0,
@@ -22159,7 +22244,7 @@ function NotificationTile({
22159
22244
  "aria-hidden": true,
22160
22245
  className: _chunk664KA5FIcjs.cn.call(void 0,
22161
22246
  "absolute inset-x-0 -bottom-px h-1 origin-left",
22162
- _chunkEH3RWVF3cjs.progressColorByVariant[variant]
22247
+ _chunkWT5JV2GScjs.progressColorByVariant[variant]
22163
22248
  ),
22164
22249
  style: {
22165
22250
  animation: `toast-progress ${liveDurationMs}ms linear forwards`,
@@ -22427,15 +22512,15 @@ function TicketCard({
22427
22512
  transform: _utilities.CSS.Transform.toString(sortable.transform),
22428
22513
  transition: sortable.transition
22429
22514
  };
22430
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _378 => _378.deviceHostnames, 'optionalAccess', _379 => _379.length]) || ticket.organizationName);
22515
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _390 => _390.deviceHostnames, 'optionalAccess', _391 => _391.length]) || ticket.organizationName);
22431
22516
  const deviceText = [
22432
- _optionalChain([ticket, 'access', _380 => _380.deviceHostnames, 'optionalAccess', _381 => _381.join, 'call', _382 => _382(", ")]),
22517
+ _optionalChain([ticket, 'access', _392 => _392.deviceHostnames, 'optionalAccess', _393 => _393.join, 'call', _394 => _394(", ")]),
22433
22518
  ticket.organizationName
22434
22519
  ].filter(Boolean).join(", ");
22435
22520
  const handleClick = (e) => {
22436
22521
  if (sortable.isDragging) e.preventDefault();
22437
22522
  };
22438
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _383 => _383.assignees, 'optionalAccess', _384 => _384.length]) || renderAssignSlot);
22523
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _395 => _395.assignees, 'optionalAccess', _396 => _396.length]) || renderAssignSlot);
22439
22524
  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: [
22440
22525
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22441
22526
  _chunk65CPJ4SXcjs.Flag02Icon,
@@ -22444,7 +22529,7 @@ function TicketCard({
22444
22529
  "aria-label": `Priority: ${ticket.priority}`
22445
22530
  }
22446
22531
  ),
22447
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _385 => _385.assignees, 'optionalAccess', _386 => _386.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
22532
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _397 => _397.assignees, 'optionalAccess', _398 => _398.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
22448
22533
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22449
22534
  SquareAvatar,
22450
22535
  {
@@ -22473,7 +22558,7 @@ function TicketCard({
22473
22558
  ] }),
22474
22559
  rightSection
22475
22560
  ] }),
22476
- _optionalChain([ticket, 'access', _387 => _387.tags, 'optionalAccess', _388 => _388.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
22561
+ _optionalChain([ticket, 'access', _399 => _399.tags, 'optionalAccess', _400 => _400.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
22477
22562
  ] });
22478
22563
  const cardClasses = _chunk664KA5FIcjs.cn.call(void 0,
22479
22564
  "relative flex flex-col gap-[var(--spacing-system-sf)] rounded-md border border-ods-border bg-ods-bg p-[var(--spacing-system-sf)] select-none text-left",
@@ -22646,7 +22731,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
22646
22731
  const observer = new IntersectionObserver(
22647
22732
  (entries) => {
22648
22733
  if (entries.some((e) => e.isIntersecting)) {
22649
- _optionalChain([loadMoreRef, 'access', _389 => _389.current, 'optionalCall', _390 => _390(columnIdRef.current)]);
22734
+ _optionalChain([loadMoreRef, 'access', _401 => _401.current, 'optionalCall', _402 => _402(columnIdRef.current)]);
22650
22735
  }
22651
22736
  },
22652
22737
  { root, rootMargin: loadMoreRootMargin }
@@ -22675,7 +22760,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
22675
22760
  {
22676
22761
  ticket: t,
22677
22762
  columnId: column.id,
22678
- href: _optionalChain([getTicketHref, 'optionalCall', _391 => _391(t.id)]),
22763
+ href: _optionalChain([getTicketHref, 'optionalCall', _403 => _403(t.id)]),
22679
22764
  renderAssignSlot,
22680
22765
  dragDisabled: column.dragDisabled
22681
22766
  },
@@ -22707,7 +22792,7 @@ function EmptyState2() {
22707
22792
  // src/components/features/board/use-board-collapse.ts
22708
22793
 
22709
22794
  function useBoardCollapse(storageKey) {
22710
- const [persisted, setPersisted] = _chunkEH3RWVF3cjs.useLocalStorage.call(void 0,
22795
+ const [persisted, setPersisted] = _chunkWT5JV2GScjs.useLocalStorage.call(void 0,
22711
22796
  _nullishCoalesce(storageKey, () => ( "__board_collapse_unused__")),
22712
22797
  {}
22713
22798
  );
@@ -22754,7 +22839,7 @@ function Board({
22754
22839
  onThumbPointerDown,
22755
22840
  onThumbPointerMove,
22756
22841
  onThumbPointerUp
22757
- } = _chunkEH3RWVF3cjs.useHorizontalScrollbar.call(void 0, );
22842
+ } = _chunkWT5JV2GScjs.useHorizontalScrollbar.call(void 0, );
22758
22843
  const [items, setItems] = React77.useState(columns);
22759
22844
  const isDraggingRef = React77.useRef(false);
22760
22845
  React77.useEffect(() => {
@@ -22770,17 +22855,17 @@ function Board({
22770
22855
  const pointer = _core.pointerWithin.call(void 0, args);
22771
22856
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
22772
22857
  const ticketHit = intersections.find(
22773
- (c) => _optionalChain([c, 'access', _392 => _392.data, 'optionalAccess', _393 => _393.droppableContainer, 'optionalAccess', _394 => _394.data, 'optionalAccess', _395 => _395.current, 'optionalAccess', _396 => _396.type]) === "ticket"
22858
+ (c) => _optionalChain([c, 'access', _404 => _404.data, 'optionalAccess', _405 => _405.droppableContainer, 'optionalAccess', _406 => _406.data, 'optionalAccess', _407 => _407.current, 'optionalAccess', _408 => _408.type]) === "ticket"
22774
22859
  );
22775
22860
  if (ticketHit) return [ticketHit];
22776
22861
  const columnHit = intersections.find(
22777
- (c) => _optionalChain([c, 'access', _397 => _397.data, 'optionalAccess', _398 => _398.droppableContainer, 'optionalAccess', _399 => _399.data, 'optionalAccess', _400 => _400.current, 'optionalAccess', _401 => _401.type]) === "column"
22862
+ (c) => _optionalChain([c, 'access', _409 => _409.data, 'optionalAccess', _410 => _410.droppableContainer, 'optionalAccess', _411 => _411.data, 'optionalAccess', _412 => _412.current, 'optionalAccess', _413 => _413.type]) === "column"
22778
22863
  );
22779
22864
  if (columnHit) {
22780
- const columnId = _optionalChain([columnHit, 'access', _402 => _402.data, 'optionalAccess', _403 => _403.droppableContainer, 'optionalAccess', _404 => _404.data, 'optionalAccess', _405 => _405.current, 'optionalAccess', _406 => _406.columnId]);
22865
+ const columnId = _optionalChain([columnHit, 'access', _414 => _414.data, 'optionalAccess', _415 => _415.droppableContainer, 'optionalAccess', _416 => _416.data, 'optionalAccess', _417 => _417.current, 'optionalAccess', _418 => _418.columnId]);
22781
22866
  const ticketsInColumn = args.droppableContainers.filter((c) => {
22782
22867
  const d = c.data.current;
22783
- return _optionalChain([d, 'optionalAccess', _407 => _407.type]) === "ticket" && d.columnId === columnId;
22868
+ return _optionalChain([d, 'optionalAccess', _419 => _419.type]) === "ticket" && d.columnId === columnId;
22784
22869
  });
22785
22870
  if (ticketsInColumn.length > 0) {
22786
22871
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -22805,20 +22890,20 @@ function Board({
22805
22890
  const overId = String(over.id);
22806
22891
  if (activeId === overId) return;
22807
22892
  const overData = over.data.current;
22808
- const fromColumnId = _optionalChain([locate, 'call', _408 => _408(items, activeId), 'optionalAccess', _409 => _409.columnId]);
22809
- const toColumnId = _optionalChain([overData, 'optionalAccess', _410 => _410.columnId]);
22893
+ const fromColumnId = _optionalChain([locate, 'call', _420 => _420(items, activeId), 'optionalAccess', _421 => _421.columnId]);
22894
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _422 => _422.columnId]);
22810
22895
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
22811
22896
  const origin = dragOriginRef.current;
22812
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _411 => _411.fromColumnId]) === toColumnId;
22897
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _423 => _423.fromColumnId]) === toColumnId;
22813
22898
  const targetCol = items.find((c) => c.id === toColumnId);
22814
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _412 => _412.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
22815
- if (_optionalChain([targetCol, 'optionalAccess', _413 => _413.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
22899
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _424 => _424.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
22900
+ if (_optionalChain([targetCol, 'optionalAccess', _425 => _425.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
22816
22901
  setItems((prev) => {
22817
22902
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
22818
22903
  const toCol = prev.find((c) => c.id === toColumnId);
22819
22904
  if (fromIndex < 0 || !toCol) return prev;
22820
22905
  let toIndex;
22821
- if (_optionalChain([overData, 'optionalAccess', _414 => _414.type]) === "column") {
22906
+ if (_optionalChain([overData, 'optionalAccess', _426 => _426.type]) === "column") {
22822
22907
  toIndex = toCol.tickets.length;
22823
22908
  } else {
22824
22909
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -22860,14 +22945,14 @@ function Board({
22860
22945
  const toColumnId = located.columnId;
22861
22946
  const isCrossColumn = origin.fromColumnId !== toColumnId;
22862
22947
  const targetCol = items.find((c) => c.id === toColumnId);
22863
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _415 => _415.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _416 => _416.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
22948
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _427 => _427.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _428 => _428.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
22864
22949
  setItems(columns);
22865
22950
  return;
22866
22951
  }
22867
22952
  let finalIndex = located.index;
22868
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _417 => _417.find, 'call', _418 => _418((c) => c.id === toColumnId), 'optionalAccess', _419 => _419.tickets]), () => ( []));
22953
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _429 => _429.find, 'call', _430 => _430((c) => c.id === toColumnId), 'optionalAccess', _431 => _431.tickets]), () => ( []));
22869
22954
  const overData = over.data.current;
22870
- if (_optionalChain([overData, 'optionalAccess', _420 => _420.type]) === "ticket") {
22955
+ if (_optionalChain([overData, 'optionalAccess', _432 => _432.type]) === "ticket") {
22871
22956
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
22872
22957
  if (overIndex >= 0 && overIndex !== located.index) {
22873
22958
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -22887,8 +22972,8 @@ function Board({
22887
22972
  ticketId: origin.ticketId,
22888
22973
  fromColumnId: origin.fromColumnId,
22889
22974
  toColumnId,
22890
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _421 => _421[finalIndex - 1], 'optionalAccess', _422 => _422.id]), () => ( null)),
22891
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _423 => _423[finalIndex + 1], 'optionalAccess', _424 => _424.id]), () => ( null))
22975
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _433 => _433[finalIndex - 1], 'optionalAccess', _434 => _434.id]), () => ( null)),
22976
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _435 => _435[finalIndex + 1], 'optionalAccess', _436 => _436.id]), () => ( null))
22892
22977
  });
22893
22978
  };
22894
22979
  const handleDragCancel = () => {
@@ -22917,8 +23002,8 @@ function Board({
22917
23002
  children: items.map((column, i) => {
22918
23003
  const prev = items[i - 1];
22919
23004
  const next = items[i + 1];
22920
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _425 => _425.system]));
22921
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _426 => _426.system]));
23005
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _437 => _437.system]));
23006
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _438 => _438.system]));
22922
23007
  const showGap = i > 0 && !joinLeft;
22923
23008
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React77.Fragment, { children: [
22924
23009
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -22976,7 +23061,7 @@ function locate(cols, ticketId) {
22976
23061
  return null;
22977
23062
  }
22978
23063
  function findIndexInColumn(cols, columnId, ticketId) {
22979
- return _nullishCoalesce(_optionalChain([cols, 'access', _427 => _427.find, 'call', _428 => _428((c) => c.id === columnId), 'optionalAccess', _429 => _429.tickets, 'access', _430 => _430.findIndex, 'call', _431 => _431((t) => t.id === ticketId)]), () => ( -1));
23064
+ return _nullishCoalesce(_optionalChain([cols, 'access', _439 => _439.find, 'call', _440 => _440((c) => c.id === columnId), 'optionalAccess', _441 => _441.tickets, 'access', _442 => _442.findIndex, 'call', _443 => _443((t) => t.id === ticketId)]), () => ( -1));
22980
23065
  }
22981
23066
 
22982
23067
  // src/components/features/board/types.ts
@@ -23165,7 +23250,7 @@ function Header2({ config, platform }) {
23165
23250
  className: _chunk664KA5FIcjs.cn.call(void 0,
23166
23251
  "flex justify-start w-full",
23167
23252
  "font-bold text-[16px] leading-none tracking-[-0.32px]",
23168
- index < (_nullishCoalesce(_optionalChain([item, 'access', _432 => _432.children, 'optionalAccess', _433 => _433.length]), () => ( 0))) - 1 && "mb-1",
23253
+ index < (_nullishCoalesce(_optionalChain([item, 'access', _444 => _444.children, 'optionalAccess', _445 => _445.length]), () => ( 0))) - 1 && "mb-1",
23169
23254
  "text-ods-text-primary",
23170
23255
  // All dropdown items use primary text color
23171
23256
  child.isActive && "bg-ods-bg-hover"
@@ -23257,7 +23342,7 @@ function Header2({ config, platform }) {
23257
23342
  style: config.style,
23258
23343
  children: [
23259
23344
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
23260
- _optionalChain([config, 'access', _434 => _434.actions, 'optionalAccess', _435 => _435.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
23345
+ _optionalChain([config, 'access', _446 => _446.actions, 'optionalAccess', _447 => _447.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
23261
23346
  /* @__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 })
23262
23347
  ] }),
23263
23348
  config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -23274,7 +23359,7 @@ function Header2({ config, platform }) {
23274
23359
  }
23275
23360
  ),
23276
23361
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-end gap-4 flex-shrink-0", children: [
23277
- _optionalChain([config, 'access', _436 => _436.actions, 'optionalAccess', _437 => _437.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
23362
+ _optionalChain([config, 'access', _448 => _448.actions, 'optionalAccess', _449 => _449.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
23278
23363
  config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23279
23364
  _chunkUXZ3ZJ3Mcjs.Button,
23280
23365
  {
@@ -23282,10 +23367,10 @@ function Header2({ config, platform }) {
23282
23367
  size: "icon",
23283
23368
  className: "flex md:hidden",
23284
23369
  onClick: () => {
23285
- _optionalChain([config, 'access', _438 => _438.mobile, 'optionalAccess', _439 => _439.onToggle, 'optionalCall', _440 => _440()]);
23370
+ _optionalChain([config, 'access', _450 => _450.mobile, 'optionalAccess', _451 => _451.onToggle, 'optionalCall', _452 => _452()]);
23286
23371
  },
23287
- "aria-label": _optionalChain([config, 'access', _441 => _441.mobile, 'optionalAccess', _442 => _442.isOpen]) ? "Close menu" : "Open menu",
23288
- leftIcon: _optionalChain([config, 'access', _443 => _443.mobile, 'optionalAccess', _444 => _444.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk65CPJ4SXcjs.Menu01Icon, {})
23372
+ "aria-label": _optionalChain([config, 'access', _453 => _453.mobile, 'optionalAccess', _454 => _454.isOpen]) ? "Close menu" : "Open menu",
23373
+ leftIcon: _optionalChain([config, 'access', _455 => _455.mobile, 'optionalAccess', _456 => _456.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk65CPJ4SXcjs.Menu01Icon, {})
23289
23374
  }
23290
23375
  )
23291
23376
  ] })
@@ -23302,10 +23387,10 @@ function Header2({ config, platform }) {
23302
23387
  // src/components/navigation/header-skeleton.tsx
23303
23388
 
23304
23389
  function HeaderSkeleton({ config }) {
23305
- const showNavigation = _optionalChain([config, 'optionalAccess', _445 => _445.navigation]) && config.navigation.items.length > 0;
23306
- const showActions = _optionalChain([config, 'optionalAccess', _446 => _446.actions, 'optionalAccess', _447 => _447.right]) && config.actions.right.length > 0;
23307
- const showMobileMenu = _optionalChain([config, 'optionalAccess', _448 => _448.mobile, 'optionalAccess', _449 => _449.enabled]);
23308
- const isAdminHeader = _optionalChain([config, 'optionalAccess', _450 => _450.className, 'optionalAccess', _451 => _451.includes, 'call', _452 => _452("admin")]);
23390
+ const showNavigation = _optionalChain([config, 'optionalAccess', _457 => _457.navigation]) && config.navigation.items.length > 0;
23391
+ const showActions = _optionalChain([config, 'optionalAccess', _458 => _458.actions, 'optionalAccess', _459 => _459.right]) && config.actions.right.length > 0;
23392
+ const showMobileMenu = _optionalChain([config, 'optionalAccess', _460 => _460.mobile, 'optionalAccess', _461 => _461.enabled]);
23393
+ const isAdminHeader = _optionalChain([config, 'optionalAccess', _462 => _462.className, 'optionalAccess', _463 => _463.includes, 'call', _464 => _464("admin")]);
23309
23394
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23310
23395
  "header",
23311
23396
  {
@@ -23314,11 +23399,11 @@ function HeaderSkeleton({ config }) {
23314
23399
  "bg-ods-card border-b border-ods-border backdrop-blur-sm",
23315
23400
  "px-6 py-3",
23316
23401
  "transition-opacity duration-300 ease-in-out",
23317
- _optionalChain([config, 'optionalAccess', _453 => _453.className])
23402
+ _optionalChain([config, 'optionalAccess', _465 => _465.className])
23318
23403
  ),
23319
23404
  children: [
23320
23405
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
23321
- isAdminHeader && _optionalChain([config, 'optionalAccess', _454 => _454.actions, 'optionalAccess', _455 => _455.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" }) }),
23406
+ isAdminHeader && _optionalChain([config, 'optionalAccess', _466 => _466.actions, 'optionalAccess', _467 => _467.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" }) }),
23322
23407
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
23323
23408
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
23324
23409
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
@@ -23326,8 +23411,8 @@ function HeaderSkeleton({ config }) {
23326
23411
  ] }),
23327
23412
  showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunk664KA5FIcjs.cn.call(void 0,
23328
23413
  "hidden md:flex items-center gap-2",
23329
- _optionalChain([config, 'optionalAccess', _456 => _456.navigation, 'optionalAccess', _457 => _457.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
23330
- _optionalChain([config, 'optionalAccess', _458 => _458.navigation, 'optionalAccess', _459 => _459.position]) === "right" && "ml-auto mr-4"
23414
+ _optionalChain([config, 'optionalAccess', _468 => _468.navigation, 'optionalAccess', _469 => _469.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
23415
+ _optionalChain([config, 'optionalAccess', _470 => _470.navigation, 'optionalAccess', _471 => _471.position]) === "right" && "ml-auto mr-4"
23331
23416
  ), children: [
23332
23417
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
23333
23418
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
@@ -23375,7 +23460,7 @@ function MobileNavPanel({ isOpen, config }) {
23375
23460
  _react.useEffect.call(void 0, () => {
23376
23461
  const handleKeyDown = (e) => {
23377
23462
  if (e.key === "Escape" && isOpen) {
23378
- _optionalChain([config, 'access', _460 => _460.onClose, 'optionalCall', _461 => _461()]);
23463
+ _optionalChain([config, 'access', _472 => _472.onClose, 'optionalCall', _473 => _473()]);
23379
23464
  }
23380
23465
  };
23381
23466
  if (isOpen) {
@@ -23392,7 +23477,7 @@ function MobileNavPanel({ isOpen, config }) {
23392
23477
  if (item.onClick) {
23393
23478
  item.onClick();
23394
23479
  }
23395
- _optionalChain([config, 'access', _462 => _462.onClose, 'optionalCall', _463 => _463()]);
23480
+ _optionalChain([config, 'access', _474 => _474.onClose, 'optionalCall', _475 => _475()]);
23396
23481
  };
23397
23482
  if (item.href) {
23398
23483
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -23610,7 +23695,7 @@ function SlidingSidebar({ config }) {
23610
23695
  variant: "transparent",
23611
23696
  size: "default",
23612
23697
  onClick: () => {
23613
- _optionalChain([item, 'access', _464 => _464.onClick, 'optionalCall', _465 => _465()]);
23698
+ _optionalChain([item, 'access', _476 => _476.onClick, 'optionalCall', _477 => _477()]);
23614
23699
  config.onClose();
23615
23700
  },
23616
23701
  leftIcon: item.icon,
@@ -23633,7 +23718,7 @@ function SlidingSidebar({ config }) {
23633
23718
  variant: "transparent",
23634
23719
  size: "default",
23635
23720
  onClick: () => {
23636
- _optionalChain([item, 'access', _466 => _466.onClick, 'optionalCall', _467 => _467()]);
23721
+ _optionalChain([item, 'access', _478 => _478.onClick, 'optionalCall', _479 => _479()]);
23637
23722
  config.onClose();
23638
23723
  },
23639
23724
  leftIcon: item.icon,
@@ -23760,7 +23845,7 @@ function StickySectionNav({
23760
23845
  ] });
23761
23846
  }
23762
23847
  function useSectionNavigation(sections, options) {
23763
- const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _468 => _468[0], 'optionalAccess', _469 => _469.id]) || "");
23848
+ const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _480 => _480[0], 'optionalAccess', _481 => _481.id]) || "");
23764
23849
  const isScrollingFromClick = _react.useRef.call(void 0, false);
23765
23850
  const { offset: offset2 = 100 } = options || {};
23766
23851
  const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
@@ -23768,8 +23853,7 @@ function useSectionNavigation(sections, options) {
23768
23853
  if (!targetElement) return;
23769
23854
  isScrollingFromClick.current = true;
23770
23855
  setActiveSection(sectionId);
23771
- const top = targetElement.offsetTop - offset2;
23772
- window.scrollTo({ top, behavior: "smooth" });
23856
+ scrollElementIntoView(targetElement, { headerOffset: offset2 });
23773
23857
  setTimeout(() => {
23774
23858
  isScrollingFromClick.current = false;
23775
23859
  }, 500);
@@ -23785,7 +23869,7 @@ function useSectionNavigation(sections, options) {
23785
23869
  const handleScroll = () => {
23786
23870
  if (isScrollingFromClick.current) return;
23787
23871
  const scrollPosition = window.scrollY + offset2 + 50;
23788
- let currentSection = _optionalChain([sections, 'access', _470 => _470[0], 'optionalAccess', _471 => _471.id]) || "";
23872
+ let currentSection = _optionalChain([sections, 'access', _482 => _482[0], 'optionalAccess', _483 => _483.id]) || "";
23789
23873
  for (let i = sections.length - 1; i >= 0; i--) {
23790
23874
  const element = document.getElementById(sections[i].id);
23791
23875
  if (element && scrollPosition >= element.offsetTop) {
@@ -23959,10 +24043,10 @@ var MINIMIZED_WIDTH = 56;
23959
24043
  var EXPANDED_WIDTH = 224;
23960
24044
  var STORAGE_KEY = "of.navigationSidebar.minimized";
23961
24045
  function NavigationSidebar({ config, disabled = false }) {
23962
- const isMdUp = _nullishCoalesce(_chunkEH3RWVF3cjs.useMdUp.call(void 0, ), () => ( false));
23963
- const isLgUp = _nullishCoalesce(_chunkEH3RWVF3cjs.useLgUp.call(void 0, ), () => ( false));
24046
+ const isMdUp = _nullishCoalesce(_chunkWT5JV2GScjs.useMdUp.call(void 0, ), () => ( false));
24047
+ const isLgUp = _nullishCoalesce(_chunkWT5JV2GScjs.useLgUp.call(void 0, ), () => ( false));
23964
24048
  const isTablet = isMdUp && !isLgUp;
23965
- const [desktopMinimized, setDesktopMinimized] = _chunkEH3RWVF3cjs.useLocalStorage.call(void 0,
24049
+ const [desktopMinimized, setDesktopMinimized] = _chunkWT5JV2GScjs.useLocalStorage.call(void 0,
23966
24050
  STORAGE_KEY,
23967
24051
  _nullishCoalesce(config.minimized, () => ( false))
23968
24052
  );
@@ -23980,7 +24064,7 @@ function NavigationSidebar({ config, disabled = false }) {
23980
24064
  } else {
23981
24065
  setDesktopMinimized((prev) => !prev);
23982
24066
  }
23983
- _optionalChain([config, 'access', _472 => _472.onToggleMinimized, 'optionalCall', _473 => _473()]);
24067
+ _optionalChain([config, 'access', _484 => _484.onToggleMinimized, 'optionalCall', _485 => _485()]);
23984
24068
  }, [isTablet, setDesktopMinimized, config]);
23985
24069
  const closeOverlay = _react.useCallback.call(void 0, () => {
23986
24070
  setTabletMinimized(true);
@@ -23994,11 +24078,11 @@ function NavigationSidebar({ config, disabled = false }) {
23994
24078
  return () => document.removeEventListener("keydown", handleKeyDown);
23995
24079
  }, [isOverlayOpen, closeOverlay]);
23996
24080
  const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
23997
- _optionalChain([event, 'optionalAccess', _474 => _474.stopPropagation, 'call', _475 => _475()]);
24081
+ _optionalChain([event, 'optionalAccess', _486 => _486.stopPropagation, 'call', _487 => _487()]);
23998
24082
  if (item.onClick) {
23999
24083
  item.onClick();
24000
24084
  } else if (item.path) {
24001
- _optionalChain([config, 'access', _476 => _476.onNavigate, 'optionalCall', _477 => _477(item.path)]);
24085
+ _optionalChain([config, 'access', _488 => _488.onNavigate, 'optionalCall', _489 => _489(item.path)]);
24002
24086
  }
24003
24087
  if (isTablet) setTabletMinimized(true);
24004
24088
  }, [config, isTablet]);
@@ -24143,11 +24227,11 @@ function HeaderGlobalSearch({
24143
24227
  };
24144
24228
  const handleSubmit = (e) => {
24145
24229
  e.preventDefault();
24146
- _optionalChain([onSubmit, 'optionalCall', _478 => _478(currentValue)]);
24230
+ _optionalChain([onSubmit, 'optionalCall', _490 => _490(currentValue)]);
24147
24231
  };
24148
24232
  const handleKeyDown = (e) => {
24149
24233
  if (e.key === "Enter") {
24150
- _optionalChain([onSubmit, 'optionalCall', _479 => _479(currentValue)]);
24234
+ _optionalChain([onSubmit, 'optionalCall', _491 => _491(currentValue)]);
24151
24235
  }
24152
24236
  };
24153
24237
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -24193,8 +24277,8 @@ function HeaderOrganizationFilter({
24193
24277
  className
24194
24278
  }) {
24195
24279
  const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
24196
- const displayName = _optionalChain([selectedOrg, 'optionalAccess', _480 => _480.name]) || "All Organizations";
24197
- const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _481 => _481.deviceCount]), () => ( totalDeviceCount));
24280
+ const displayName = _optionalChain([selectedOrg, 'optionalAccess', _492 => _492.name]) || "All Organizations";
24281
+ const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _493 => _493.deviceCount]), () => ( totalDeviceCount));
24198
24282
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkUXZ3ZJ3Mcjs.DropdownMenu, { children: [
24199
24283
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24200
24284
  "button",
@@ -24219,11 +24303,11 @@ function HeaderOrganizationFilter({
24219
24303
  }
24220
24304
  ) }),
24221
24305
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkUXZ3ZJ3Mcjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
24222
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _482 => _482("")]), children: "All Organizations" }),
24306
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUXZ3ZJ3Mcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _494 => _494("")]), children: "All Organizations" }),
24223
24307
  organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24224
24308
  _chunkUXZ3ZJ3Mcjs.DropdownMenuItem,
24225
24309
  {
24226
- onClick: () => _optionalChain([onOrgChange, 'optionalCall', _483 => _483(org.id)]),
24310
+ onClick: () => _optionalChain([onOrgChange, 'optionalCall', _495 => _495(org.id)]),
24227
24311
  children: org.name
24228
24312
  },
24229
24313
  org.id
@@ -24254,7 +24338,7 @@ var AppHeader = React92.default.memo(function AppHeader2({
24254
24338
  onToggleMobileMenu,
24255
24339
  disabled = false
24256
24340
  }) {
24257
- const isMdUp = _nullishCoalesce(_chunkEH3RWVF3cjs.useMdUp.call(void 0, ), () => ( false));
24341
+ const isMdUp = _nullishCoalesce(_chunkWT5JV2GScjs.useMdUp.call(void 0, ), () => ( false));
24258
24342
  const dimmedClass = disabled ? "pointer-events-none opacity-50" : "";
24259
24343
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24260
24344
  "header",
@@ -24395,16 +24479,20 @@ function NotificationsHeaderButton({
24395
24479
  dimmedClass
24396
24480
  }) {
24397
24481
  const ctx = useOptionalNotifications();
24398
- const unreadCount = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _484 => _484.unreadCount]), () => ( fallbackUnreadCount));
24399
- const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _485 => _485.isOpen]), () => ( false));
24400
- const onClick = _optionalChain([ctx, 'optionalAccess', _486 => _486.toggle]);
24401
- const Icon2 = unreadCount > 0 ? _chunk65CPJ4SXcjs.BellRingingIcon : _chunk65CPJ4SXcjs.BellIcon;
24482
+ const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _496 => _496.unreadCount]), () => ( fallbackUnreadCount))) > 0;
24483
+ const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _497 => _497.isOpen]), () => ( false));
24484
+ const onClick = _optionalChain([ctx, 'optionalAccess', _498 => _498.toggle]);
24402
24485
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24403
24486
  HeaderButton,
24404
24487
  {
24405
- icon: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative w-full h-full flex items-center justify-center", children: [
24406
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon2, { className: "h-4 w-4 md:w-6 md:h-6" }),
24407
- unreadCount > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "absolute top-2 right-2 bg-ods-accent text-ods-text-on-accent text-[8px] rounded-full w-3 h-3 md:w-4 md:h-4 flex items-center justify-center", children: unreadCount > 9 ? "9+" : unreadCount })
24488
+ icon: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative w-4 h-4 md:w-6 md:h-6", children: [
24489
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk65CPJ4SXcjs.BellIcon, { className: "w-full h-full" }),
24490
+ hasUnread && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24491
+ "span",
24492
+ {
24493
+ className: "absolute top-0 right-0 bg-ods-warning rounded-full w-1.5 h-1.5 md:w-2 md:h-2"
24494
+ }
24495
+ )
24408
24496
  ] }),
24409
24497
  "aria-label": "Notifications",
24410
24498
  onClick,
@@ -24457,7 +24545,7 @@ var MobileBurgerMenu = React92.default.memo(function MobileBurgerMenu2({
24457
24545
  if (item.onClick) {
24458
24546
  item.onClick();
24459
24547
  } else if (item.path) {
24460
- _optionalChain([config, 'access', _487 => _487.onNavigate, 'optionalCall', _488 => _488(item.path)]);
24548
+ _optionalChain([config, 'access', _499 => _499.onNavigate, 'optionalCall', _500 => _500(item.path)]);
24461
24549
  }
24462
24550
  onClose();
24463
24551
  }, [config, onClose]);
@@ -24753,7 +24841,7 @@ var ToolBadge = ({
24753
24841
  }) => {
24754
24842
  const label = getToolLabel(toolType);
24755
24843
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "flex items-center gap-1 text-ods-text-secondary", className), children: [
24756
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEH3RWVF3cjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
24844
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWT5JV2GScjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
24757
24845
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: label })
24758
24846
  ] });
24759
24847
  };
@@ -24801,7 +24889,7 @@ var ShellTypeBadge = ({
24801
24889
  className,
24802
24890
  iconClassName
24803
24891
  }) => {
24804
- const normalizedType = _optionalChain([shellType, 'optionalAccess', _489 => _489.toUpperCase, 'call', _490 => _490()]);
24892
+ const normalizedType = _optionalChain([shellType, 'optionalAccess', _501 => _501.toUpperCase, 'call', _502 => _502()]);
24805
24893
  const label = getShellLabel(normalizedType);
24806
24894
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
24807
24895
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
@@ -25125,7 +25213,7 @@ function OnboardingWalkthrough({
25125
25213
  isStepSkipped,
25126
25214
  allStepsComplete,
25127
25215
  markMultipleComplete
25128
- } = _chunkEH3RWVF3cjs.useOnboardingState.call(void 0, storageKey);
25216
+ } = _chunkWT5JV2GScjs.useOnboardingState.call(void 0, storageKey);
25129
25217
  const hasAutoMarkedRef = _react.useRef.call(void 0, false);
25130
25218
  const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
25131
25219
  const lastCompletionStatusRef = _react.useRef.call(void 0, null);
@@ -25188,12 +25276,12 @@ function OnboardingWalkthrough({
25188
25276
  }
25189
25277
  }, [state.completedSteps, markComplete]);
25190
25278
  const handleStepSkip = (step) => {
25191
- _optionalChain([step, 'access', _491 => _491.onSkip, 'optionalCall', _492 => _492()]);
25279
+ _optionalChain([step, 'access', _503 => _503.onSkip, 'optionalCall', _504 => _504()]);
25192
25280
  markSkipped(step.id);
25193
25281
  };
25194
25282
  const handleDismiss = () => {
25195
25283
  dismissOnboarding();
25196
- _optionalChain([onDismiss, 'optionalCall', _493 => _493()]);
25284
+ _optionalChain([onDismiss, 'optionalCall', _505 => _505()]);
25197
25285
  };
25198
25286
  if (state.dismissed) {
25199
25287
  return null;
@@ -25323,7 +25411,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
25323
25411
  onKeyDown: (e) => {
25324
25412
  if (e.key === "Enter" || e.key === " ") {
25325
25413
  e.preventDefault();
25326
- _optionalChain([onClick, 'optionalCall', _494 => _494()]);
25414
+ _optionalChain([onClick, 'optionalCall', _506 => _506()]);
25327
25415
  }
25328
25416
  },
25329
25417
  children: [
@@ -25332,7 +25420,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
25332
25420
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-5 text-white", children: log.title }),
25333
25421
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
25334
25422
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['Azeret_Mono'] font-normal text-[13px] leading-4 text-[#888888] uppercase tracking-wider", children: formatTimestamp(log.timestamp) }),
25335
- log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEH3RWVF3cjs.ToolIcon, { toolType: log.toolType, size: 16 })
25423
+ log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWT5JV2GScjs.ToolIcon, { toolType: log.toolType, size: 16 })
25336
25424
  ] })
25337
25425
  ] })
25338
25426
  ]
@@ -25424,7 +25512,7 @@ var LogsList = React88.forwardRef(({
25424
25512
  log,
25425
25513
  isLast: index === logs.length - 1,
25426
25514
  showConnector,
25427
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _495 => _495(log)])
25515
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _507 => _507(log)])
25428
25516
  },
25429
25517
  log.id
25430
25518
  ))
@@ -25469,7 +25557,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
25469
25557
  }
25470
25558
  function ServiceCardRowItem({ row }) {
25471
25559
  const [revealed, setRevealed] = _react.useState.call(void 0, false);
25472
- const { copy, copied } = _chunkEH3RWVF3cjs.useCopyToClipboard.call(void 0, );
25560
+ const { copy, copied } = _chunkWT5JV2GScjs.useCopyToClipboard.call(void 0, );
25473
25561
  const actions = _react.useMemo.call(void 0, () => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }), [row]);
25474
25562
  const displayValue = row.isSecret ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MaskedValue, { value: row.value, isRevealed: revealed }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: row.value });
25475
25563
  const handleCopy = () => copy(_nullishCoalesce(row.copyValue, () => ( row.value)));
@@ -25525,7 +25613,7 @@ var Slider = React90.forwardRef(
25525
25613
  ({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
25526
25614
  const handleChange = (e) => {
25527
25615
  const newValue = [Number(e.target.value)];
25528
- _optionalChain([onValueChange, 'optionalCall', _496 => _496(newValue)]);
25616
+ _optionalChain([onValueChange, 'optionalCall', _508 => _508(newValue)]);
25529
25617
  };
25530
25618
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25531
25619
  "input",
@@ -25978,7 +26066,7 @@ function CursorPaginationSimple({
25978
26066
  {
25979
26067
  variant: "transparent",
25980
26068
  size: "icon",
25981
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _497 => _497("")]),
26069
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _509 => _509("")]),
25982
26070
  disabled: !hasPreviousPage || loading,
25983
26071
  className: "h-8 w-8",
25984
26072
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -25990,7 +26078,7 @@ function CursorPaginationSimple({
25990
26078
  {
25991
26079
  variant: "transparent",
25992
26080
  size: "icon",
25993
- onClick: () => _optionalChain([onNext, 'optionalCall', _498 => _498("")]),
26081
+ onClick: () => _optionalChain([onNext, 'optionalCall', _510 => _510("")]),
25994
26082
  disabled: !hasNextPage || loading,
25995
26083
  className: "h-8 w-8",
25996
26084
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -26050,7 +26138,7 @@ function TableColumnFilterDropdown({
26050
26138
  placement = "bottom-start",
26051
26139
  dropdownClassName = "min-w-[240px]"
26052
26140
  }) {
26053
- const activeCount = _optionalChain([filters, 'optionalAccess', _499 => _499[columnKey], 'optionalAccess', _500 => _500.length]) || 0;
26141
+ const activeCount = _optionalChain([filters, 'optionalAccess', _511 => _511[columnKey], 'optionalAccess', _512 => _512.length]) || 0;
26054
26142
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26055
26143
  FiltersDropdown,
26056
26144
  {
@@ -26093,7 +26181,7 @@ function TableColumnFilterDropdown({
26093
26181
  delete newFilters[columnKey];
26094
26182
  onFilterChange(newFilters);
26095
26183
  },
26096
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _501 => _501[columnKey]]) || [] },
26184
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _513 => _513[columnKey]]) || [] },
26097
26185
  placement,
26098
26186
  dropdownClassName
26099
26187
  }
@@ -26168,7 +26256,7 @@ function TableHeader({
26168
26256
  }
26169
26257
  return sortDirection === "asc" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk65CPJ4SXcjs.Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk65CPJ4SXcjs.Arrow01DownIcon, { className: "w-4 h-4 text-ods-accent" });
26170
26258
  };
26171
- const isLgUp = _nullishCoalesce(_chunkEH3RWVF3cjs.useLgUp.call(void 0, ), () => ( false));
26259
+ const isLgUp = _nullishCoalesce(_chunkWT5JV2GScjs.useLgUp.call(void 0, ), () => ( false));
26172
26260
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26173
26261
  "div",
26174
26262
  {
@@ -26390,7 +26478,7 @@ function TableRow({
26390
26478
  const keys = column.key.split(".");
26391
26479
  let value = item;
26392
26480
  for (const key of keys) {
26393
- value = _optionalChain([value, 'optionalAccess', _502 => _502[key]]);
26481
+ value = _optionalChain([value, 'optionalAccess', _514 => _514[key]]);
26394
26482
  }
26395
26483
  if (value === null || value === void 0) {
26396
26484
  return "-";
@@ -26460,7 +26548,7 @@ function TableRow({
26460
26548
  // src/components/ui/table/table.tsx
26461
26549
 
26462
26550
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
26463
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _503 => _503.length])) || Boolean(renderRowActions);
26551
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _515 => _515.length])) || Boolean(renderRowActions);
26464
26552
  const result = [...columns];
26465
26553
  if (hasActions) {
26466
26554
  const actionsColumn = {
@@ -26554,7 +26642,7 @@ function Table({
26554
26642
  return rowKey(item);
26555
26643
  }
26556
26644
  const key = item[rowKey];
26557
- return _optionalChain([key, 'optionalAccess', _504 => _504.toString, 'call', _505 => _505()]) || index.toString();
26645
+ return _optionalChain([key, 'optionalAccess', _516 => _516.toString, 'call', _517 => _517()]) || index.toString();
26558
26646
  };
26559
26647
  const getRowClassName = (item, index) => {
26560
26648
  if (typeof rowClassName === "function") {
@@ -26588,23 +26676,23 @@ function Table({
26588
26676
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
26589
26677
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
26590
26678
  const sentinelRef = _react.useRef.call(void 0, null);
26591
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _506 => _506.onLoadMore]));
26592
- onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _507 => _507.onLoadMore]);
26679
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _518 => _518.onLoadMore]));
26680
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _519 => _519.onLoadMore]);
26593
26681
  _react.useEffect.call(void 0, () => {
26594
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _508 => _508.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
26682
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _520 => _520.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
26595
26683
  const sentinel = sentinelRef.current;
26596
26684
  if (!sentinel) return;
26597
26685
  const observer = new IntersectionObserver(
26598
26686
  (entries) => {
26599
- if (_optionalChain([entries, 'access', _509 => _509[0], 'optionalAccess', _510 => _510.isIntersecting])) {
26600
- _optionalChain([onLoadMoreRef, 'access', _511 => _511.current, 'optionalCall', _512 => _512()]);
26687
+ if (_optionalChain([entries, 'access', _521 => _521[0], 'optionalAccess', _522 => _522.isIntersecting])) {
26688
+ _optionalChain([onLoadMoreRef, 'access', _523 => _523.current, 'optionalCall', _524 => _524()]);
26601
26689
  }
26602
26690
  },
26603
26691
  { rootMargin: "200px" }
26604
26692
  );
26605
26693
  observer.observe(sentinel);
26606
26694
  return () => observer.disconnect();
26607
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _513 => _513.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _514 => _514.isFetchingNextPage])]);
26695
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _525 => _525.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _526 => _526.isFetchingNextPage])]);
26608
26696
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
26609
26697
  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: [
26610
26698
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -26675,7 +26763,7 @@ function Table({
26675
26763
  },
26676
26764
  getRowKey(item, index)
26677
26765
  )),
26678
- _optionalChain([infiniteScroll, 'optionalAccess', _515 => _515.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26766
+ _optionalChain([infiniteScroll, 'optionalAccess', _527 => _527.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26679
26767
  TableCardSkeleton,
26680
26768
  {
26681
26769
  columns,
@@ -26684,7 +26772,7 @@ function Table({
26684
26772
  hasChevron: Boolean(rowHref)
26685
26773
  }
26686
26774
  ),
26687
- _optionalChain([infiniteScroll, 'optionalAccess', _516 => _516.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
26775
+ _optionalChain([infiniteScroll, 'optionalAccess', _528 => _528.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
26688
26776
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26689
26777
  "div",
26690
26778
  {
@@ -27042,7 +27130,7 @@ function QueryReportTable({
27042
27130
  );
27043
27131
  const handleExport = () => {
27044
27132
  exportToCSV(data, columns, exportFilename);
27045
- _optionalChain([onExport, 'optionalCall', _517 => _517()]);
27133
+ _optionalChain([onExport, 'optionalCall', _529 => _529()]);
27046
27134
  };
27047
27135
  const tableMinWidth = columns.length * (columnWidth + 16);
27048
27136
  const {
@@ -27058,7 +27146,7 @@ function QueryReportTable({
27058
27146
  onThumbPointerDown,
27059
27147
  onThumbPointerMove,
27060
27148
  onThumbPointerUp
27061
- } = _chunkEH3RWVF3cjs.useHorizontalScrollbar.call(void 0, );
27149
+ } = _chunkWT5JV2GScjs.useHorizontalScrollbar.call(void 0, );
27062
27150
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "flex flex-col w-full", isCompact ? "gap-0" : "gap-6", className), children: [
27063
27151
  !isCompact && (title || headerActions || showExport && data.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end justify-between pt-6", children: [
27064
27152
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "font-mono font-semibold text-[32px] leading-[40px] text-ods-text-primary", children: title }),
@@ -27215,7 +27303,7 @@ function DataTableColumnFilter({
27215
27303
  align = "left"
27216
27304
  }) {
27217
27305
  const currentValue = column.getFilterValue();
27218
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _518 => _518.length]), () => ( 0));
27306
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _530 => _530.length]), () => ( 0));
27219
27307
  const sections = _react.useMemo.call(void 0,
27220
27308
  () => [
27221
27309
  {
@@ -27289,13 +27377,13 @@ function DataTableHeader({
27289
27377
  onSortChange
27290
27378
  }) {
27291
27379
  const table = useDataTableContext();
27292
- const isLgUp = _nullishCoalesce(_chunkEH3RWVF3cjs.useLgUp.call(void 0, ), () => ( false));
27380
+ const isLgUp = _nullishCoalesce(_chunkWT5JV2GScjs.useLgUp.call(void 0, ), () => ( false));
27293
27381
  const headerGroup = table.getHeaderGroups()[0];
27294
27382
  if (!headerGroup) return null;
27295
27383
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
27296
27384
  if (header.isPlaceholder) return false;
27297
27385
  if (isLgUp) return true;
27298
- return Boolean(_optionalChain([header, 'access', _519 => _519.column, 'access', _520 => _520.columnDef, 'access', _521 => _521.meta, 'optionalAccess', _522 => _522.filter]));
27386
+ return Boolean(_optionalChain([header, 'access', _531 => _531.column, 'access', _532 => _532.columnDef, 'access', _533 => _533.meta, 'optionalAccess', _534 => _534.filter]));
27299
27387
  });
27300
27388
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27301
27389
  "div",
@@ -27325,20 +27413,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
27325
27413
  if (header.isPlaceholder) return null;
27326
27414
  const column = header.column;
27327
27415
  const meta = column.columnDef.meta;
27328
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _523 => _523.filter]));
27329
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _524 => _524.align]), () => ( "left"));
27330
- const canSort = _optionalChain([meta, 'optionalAccess', _525 => _525.sortable]) === true;
27331
- const sortDir = _optionalChain([sort, 'optionalAccess', _526 => _526.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
27416
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _535 => _535.filter]));
27417
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _536 => _536.align]), () => ( "left"));
27418
+ const canSort = _optionalChain([meta, 'optionalAccess', _537 => _537.sortable]) === true;
27419
+ const sortDir = _optionalChain([sort, 'optionalAccess', _538 => _538.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
27332
27420
  if (!isLgUp && !hasFilter) return null;
27333
27421
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27334
27422
  "div",
27335
27423
  {
27336
27424
  className: _chunk664KA5FIcjs.cn.call(void 0,
27337
27425
  "flex items-stretch",
27338
- isLgUp && (_optionalChain([meta, 'optionalAccess', _527 => _527.width]) || "flex-1 min-w-0"),
27339
- _optionalChain([meta, 'optionalAccess', _528 => _528.headerClassName]),
27426
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _539 => _539.width]) || "flex-1 min-w-0"),
27427
+ _optionalChain([meta, 'optionalAccess', _540 => _540.headerClassName]),
27340
27428
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
27341
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _529 => _529.hideAt]))
27429
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _541 => _541.hideAt]))
27342
27430
  ),
27343
27431
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27344
27432
  DataTableColumnFilter,
@@ -27357,7 +27445,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
27357
27445
  isLgUp && alignJustify(align),
27358
27446
  canSort && "group cursor-pointer"
27359
27447
  ),
27360
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _530 => _530(column.id)]) : void 0,
27448
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _542 => _542(column.id)]) : void 0,
27361
27449
  children: [
27362
27450
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
27363
27451
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -27441,7 +27529,7 @@ function DataTableSkeleton({
27441
27529
  }) {
27442
27530
  const table = useDataTableContext();
27443
27531
  const columns = table.getVisibleFlatColumns();
27444
- const firstColumnId = _optionalChain([columns, 'access', _531 => _531[0], 'optionalAccess', _532 => _532.id]);
27532
+ const firstColumnId = _optionalChain([columns, 'access', _543 => _543[0], 'optionalAccess', _544 => _544.id]);
27445
27533
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
27446
27534
  "div",
27447
27535
  {
@@ -27465,7 +27553,7 @@ function DataTableSkeleton({
27465
27553
  {
27466
27554
  className: _chunk664KA5FIcjs.cn.call(void 0,
27467
27555
  "flex flex-col justify-center shrink-0",
27468
- _optionalChain([meta, 'optionalAccess', _533 => _533.width]) || "flex-1"
27556
+ _optionalChain([meta, 'optionalAccess', _545 => _545.width]) || "flex-1"
27469
27557
  ),
27470
27558
  children: [
27471
27559
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
@@ -27511,7 +27599,7 @@ function DataTableRowImpl({
27511
27599
  const handleClick = _react.useCallback.call(void 0,
27512
27600
  (e) => {
27513
27601
  const target = e.target;
27514
- if (!_optionalChain([containerRef, 'access', _534 => _534.current, 'optionalAccess', _535 => _535.contains, 'call', _536 => _536(target)])) {
27602
+ if (!_optionalChain([containerRef, 'access', _546 => _546.current, 'optionalAccess', _547 => _547.contains, 'call', _548 => _548(target)])) {
27515
27603
  if (isLinkMode) e.preventDefault();
27516
27604
  return;
27517
27605
  }
@@ -27519,7 +27607,7 @@ function DataTableRowImpl({
27519
27607
  if (isLinkMode) e.preventDefault();
27520
27608
  return;
27521
27609
  }
27522
- _optionalChain([onClick, 'optionalCall', _537 => _537(row.original)]);
27610
+ _optionalChain([onClick, 'optionalCall', _549 => _549(row.original)]);
27523
27611
  },
27524
27612
  [onClick, row.original, isLinkMode]
27525
27613
  );
@@ -27542,10 +27630,10 @@ function DataTableRowImpl({
27542
27630
  {
27543
27631
  className: _chunk664KA5FIcjs.cn.call(void 0,
27544
27632
  "flex flex-col overflow-hidden",
27545
- alignJustify(_optionalChain([meta, 'optionalAccess', _538 => _538.align])),
27546
- _optionalChain([meta, 'optionalAccess', _539 => _539.width]) || "flex-1 min-w-0",
27547
- _optionalChain([meta, 'optionalAccess', _540 => _540.cellClassName]),
27548
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _541 => _541.hideAt]))
27633
+ alignJustify(_optionalChain([meta, 'optionalAccess', _550 => _550.align])),
27634
+ _optionalChain([meta, 'optionalAccess', _551 => _551.width]) || "flex-1 min-w-0",
27635
+ _optionalChain([meta, 'optionalAccess', _552 => _552.cellClassName]),
27636
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _553 => _553.hideAt]))
27549
27637
  ),
27550
27638
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
27551
27639
  },
@@ -27610,7 +27698,7 @@ function DataTableBody({
27610
27698
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
27611
27699
  rows.map((row, index) => {
27612
27700
  const item = row.original;
27613
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _542 => _542(item)]), () => ( void 0));
27701
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _554 => _554(item)]), () => ( void 0));
27614
27702
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
27615
27703
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27616
27704
  DataTableRow,
@@ -27674,7 +27762,7 @@ function DataTableInfiniteFooter({
27674
27762
  if (!sentinel) return;
27675
27763
  const observer = new IntersectionObserver(
27676
27764
  (entries) => {
27677
- if (_optionalChain([entries, 'access', _543 => _543[0], 'optionalAccess', _544 => _544.isIntersecting])) onLoadMoreRef.current();
27765
+ if (_optionalChain([entries, 'access', _555 => _555[0], 'optionalAccess', _556 => _556.isIntersecting])) onLoadMoreRef.current();
27678
27766
  },
27679
27767
  { rootMargin }
27680
27768
  );
@@ -27722,7 +27810,7 @@ function DataTableRowCount({
27722
27810
  const table = useDataTableContext();
27723
27811
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
27724
27812
  if (hideWhenEmpty && count === 0) return null;
27725
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _545 => _545(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
27813
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _557 => _557(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
27726
27814
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
27727
27815
  "span",
27728
27816
  {
@@ -27851,7 +27939,7 @@ function SearchInput({
27851
27939
  }) {
27852
27940
  const [internalValue, setInternalValue] = React94.useState(defaultValue);
27853
27941
  const currentValue = onChange ? _nullishCoalesce(value, () => ( "")) : internalValue;
27854
- const debouncedValue = _chunkEH3RWVF3cjs.useDebounce.call(void 0, currentValue, debounceMs);
27942
+ const debouncedValue = _chunkWT5JV2GScjs.useDebounce.call(void 0, currentValue, debounceMs);
27855
27943
  const [isOpen, setIsOpen] = React94.useState(false);
27856
27944
  const [highlightedIndex, setHighlightedIndex] = React94.useState(-1);
27857
27945
  const containerRef = React94.useRef(null);
@@ -27863,7 +27951,7 @@ function SearchInput({
27863
27951
  textMeasureRef,
27864
27952
  badgeRef,
27865
27953
  inputRef
27866
- } = _chunkEH3RWVF3cjs.useAutoLimitTags.call(void 0, {
27954
+ } = _chunkWT5JV2GScjs.useAutoLimitTags.call(void 0, {
27867
27955
  count: filterChips.length,
27868
27956
  limitTags,
27869
27957
  // When chips exist, pass empty placeholder so the hook only reserves input minWidth,
@@ -27878,7 +27966,7 @@ function SearchInput({
27878
27966
  if (!showHiddenTags) return;
27879
27967
  const handleClick = (e) => {
27880
27968
  const target = e.target;
27881
- if (!_optionalChain([hiddenTagsRef, 'access', _546 => _546.current, 'optionalAccess', _547 => _547.contains, 'call', _548 => _548(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _549 => _549.current, 'optionalAccess', _550 => _550.contains, 'call', _551 => _551(target)])) {
27969
+ if (!_optionalChain([hiddenTagsRef, 'access', _558 => _558.current, 'optionalAccess', _559 => _559.contains, 'call', _560 => _560(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _561 => _561.current, 'optionalAccess', _562 => _562.contains, 'call', _563 => _563(target)])) {
27882
27970
  setShowHiddenTags(false);
27883
27971
  }
27884
27972
  };
@@ -27926,10 +28014,10 @@ function SearchInput({
27926
28014
  } else {
27927
28015
  setInternalValue("");
27928
28016
  }
27929
- _optionalChain([inputRef, 'access', _552 => _552.current, 'optionalAccess', _553 => _553.focus, 'call', _554 => _554()]);
28017
+ _optionalChain([inputRef, 'access', _564 => _564.current, 'optionalAccess', _565 => _565.focus, 'call', _566 => _566()]);
27930
28018
  };
27931
28019
  const handleResultClick = (result, e) => {
27932
- _optionalChain([onResultSelect, 'optionalCall', _555 => _555(
28020
+ _optionalChain([onResultSelect, 'optionalCall', _567 => _567(
27933
28021
  result,
27934
28022
  e ? {
27935
28023
  metaKey: e.metaKey,
@@ -27961,7 +28049,7 @@ function SearchInput({
27961
28049
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
27962
28050
  handleResultClick(flatResults[highlightedIndex]);
27963
28051
  } else {
27964
- _optionalChain([onSubmit, 'optionalCall', _556 => _556(currentValue)]);
28052
+ _optionalChain([onSubmit, 'optionalCall', _568 => _568(currentValue)]);
27965
28053
  }
27966
28054
  break;
27967
28055
  case "Escape":
@@ -28039,7 +28127,7 @@ function SearchInput({
28039
28127
  dropdownVisible && "!border-ods-accent"
28040
28128
  ),
28041
28129
  onClick: () => {
28042
- _optionalChain([inputRef, 'access', _557 => _557.current, 'optionalAccess', _558 => _558.focus, 'call', _559 => _559()]);
28130
+ _optionalChain([inputRef, 'access', _569 => _569.current, 'optionalAccess', _570 => _570.focus, 'call', _571 => _571()]);
28043
28131
  setIsOpen(true);
28044
28132
  },
28045
28133
  children: [
@@ -28123,10 +28211,10 @@ function SearchInput({
28123
28211
  align: "start",
28124
28212
  onOpenAutoFocus: (e) => {
28125
28213
  e.preventDefault();
28126
- _optionalChain([inputRef, 'access', _560 => _560.current, 'optionalAccess', _561 => _561.focus, 'call', _562 => _562()]);
28214
+ _optionalChain([inputRef, 'access', _572 => _572.current, 'optionalAccess', _573 => _573.focus, 'call', _574 => _574()]);
28127
28215
  },
28128
28216
  onInteractOutside: (e) => {
28129
- if (_optionalChain([containerRef, 'access', _563 => _563.current, 'optionalAccess', _564 => _564.contains, 'call', _565 => _565(e.target)])) {
28217
+ if (_optionalChain([containerRef, 'access', _575 => _575.current, 'optionalAccess', _576 => _576.contains, 'call', _577 => _577(e.target)])) {
28130
28218
  e.preventDefault();
28131
28219
  }
28132
28220
  },
@@ -28143,10 +28231,10 @@ function SearchInput({
28143
28231
  ref: hiddenTagsPopupRef,
28144
28232
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
28145
28233
  style: {
28146
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _566 => _566.current, 'optionalAccess', _567 => _567.getBoundingClientRect, 'call', _568 => _568(), 'access', _569 => _569.left]), () => ( 0))) : 0
28234
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _578 => _578.current, 'optionalAccess', _579 => _579.getBoundingClientRect, 'call', _580 => _580(), 'access', _581 => _581.left]), () => ( 0))) : 0
28147
28235
  },
28148
28236
  onRemove: (value2) => {
28149
- _optionalChain([onFilterRemove, 'optionalCall', _570 => _570(value2)]);
28237
+ _optionalChain([onFilterRemove, 'optionalCall', _582 => _582(value2)]);
28150
28238
  if (hiddenCount <= 1) setShowHiddenTags(false);
28151
28239
  }
28152
28240
  }
@@ -28197,7 +28285,7 @@ function FilterListItem({
28197
28285
  }) {
28198
28286
  const handleToggle = () => {
28199
28287
  if (disabled) return;
28200
- _optionalChain([onToggle, 'optionalCall', _571 => _571(!selected)]);
28288
+ _optionalChain([onToggle, 'optionalCall', _583 => _583(!selected)]);
28201
28289
  };
28202
28290
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28203
28291
  "div",
@@ -28244,7 +28332,7 @@ function FilterListItem({
28244
28332
  CheckboxPrimitive4.Root,
28245
28333
  {
28246
28334
  checked: selected,
28247
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _572 => _572(c === true)]),
28335
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _584 => _584(c === true)]),
28248
28336
  onClick: (e) => e.stopPropagation(),
28249
28337
  disabled,
28250
28338
  "aria-label": title,
@@ -28330,7 +28418,7 @@ function TagSearchInput({
28330
28418
  textMeasureRef,
28331
28419
  badgeRef,
28332
28420
  inputRef
28333
- } = _chunkEH3RWVF3cjs.useAutoLimitTags.call(void 0, {
28421
+ } = _chunkWT5JV2GScjs.useAutoLimitTags.call(void 0, {
28334
28422
  count: tags.length,
28335
28423
  limitTags,
28336
28424
  placeholder: currentPlaceholder
@@ -28343,7 +28431,7 @@ function TagSearchInput({
28343
28431
  if (!showHiddenTags) return;
28344
28432
  const handleClick = (e) => {
28345
28433
  const target = e.target;
28346
- if (!_optionalChain([hiddenTagsRef, 'access', _573 => _573.current, 'optionalAccess', _574 => _574.contains, 'call', _575 => _575(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _576 => _576.current, 'optionalAccess', _577 => _577.contains, 'call', _578 => _578(target)])) {
28434
+ if (!_optionalChain([hiddenTagsRef, 'access', _585 => _585.current, 'optionalAccess', _586 => _586.contains, 'call', _587 => _587(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _588 => _588.current, 'optionalAccess', _589 => _589.contains, 'call', _590 => _590(target)])) {
28347
28435
  setShowHiddenTags(false);
28348
28436
  }
28349
28437
  };
@@ -28359,13 +28447,13 @@ function TagSearchInput({
28359
28447
  e.preventDefault();
28360
28448
  onSubmit(searchValue);
28361
28449
  }
28362
- _optionalChain([onKeyDown, 'optionalCall', _579 => _579(e)]);
28450
+ _optionalChain([onKeyDown, 'optionalCall', _591 => _591(e)]);
28363
28451
  };
28364
28452
  const handleClearAll = (e) => {
28365
28453
  e.stopPropagation();
28366
28454
  e.preventDefault();
28367
- _optionalChain([onClearAll, 'optionalCall', _580 => _580()]);
28368
- _optionalChain([inputRef, 'access', _581 => _581.current, 'optionalAccess', _582 => _582.focus, 'call', _583 => _583()]);
28455
+ _optionalChain([onClearAll, 'optionalCall', _592 => _592()]);
28456
+ _optionalChain([inputRef, 'access', _593 => _593.current, 'optionalAccess', _594 => _594.focus, 'call', _595 => _595()]);
28369
28457
  };
28370
28458
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
28371
28459
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -28382,7 +28470,7 @@ function TagSearchInput({
28382
28470
  className
28383
28471
  ),
28384
28472
  onClick: () => {
28385
- if (!disabled) _optionalChain([inputRef, 'access', _584 => _584.current, 'optionalAccess', _585 => _585.focus, 'call', _586 => _586()]);
28473
+ if (!disabled) _optionalChain([inputRef, 'access', _596 => _596.current, 'optionalAccess', _597 => _597.focus, 'call', _598 => _598()]);
28386
28474
  },
28387
28475
  children: [
28388
28476
  /* @__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" }) }),
@@ -28454,7 +28542,7 @@ function TagSearchInput({
28454
28542
  items: hiddenTags,
28455
28543
  disabled,
28456
28544
  style: {
28457
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _587 => _587.current, 'optionalAccess', _588 => _588.getBoundingClientRect, 'call', _589 => _589(), 'access', _590 => _590.left]), () => ( 0))) : 0
28545
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _599 => _599.current, 'optionalAccess', _600 => _600.getBoundingClientRect, 'call', _601 => _601(), 'access', _602 => _602.left]), () => ( 0))) : 0
28458
28546
  },
28459
28547
  onRemove: (value) => {
28460
28548
  onTagRemove(value);
@@ -28555,7 +28643,7 @@ function MarkdownEditor({
28555
28643
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
28556
28644
  _react.useEffect.call(void 0, () => {
28557
28645
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
28558
- if (_optionalChain([mod, 'access', _591 => _591.commands, 'optionalAccess', _592 => _592.getExtraCommands])) {
28646
+ if (_optionalChain([mod, 'access', _603 => _603.commands, 'optionalAccess', _604 => _604.getExtraCommands])) {
28559
28647
  setDefaultExtraCommands(mod.commands.getExtraCommands());
28560
28648
  }
28561
28649
  });
@@ -28589,7 +28677,7 @@ function MarkdownEditor({
28589
28677
  const isImage = file.type.startsWith("image/");
28590
28678
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
28591
28679
  insertTextAtCursor(markdown);
28592
- _optionalChain([onFileUploaded, 'optionalCall', _593 => _593(url, file.name)]);
28680
+ _optionalChain([onFileUploaded, 'optionalCall', _605 => _605(url, file.name)]);
28593
28681
  } catch (error) {
28594
28682
  console.error("File upload failed:", error);
28595
28683
  setUploadProgress("Upload failed. Please try again.");
@@ -28602,7 +28690,7 @@ function MarkdownEditor({
28602
28690
  );
28603
28691
  const handleFileInputChange = _react.useCallback.call(void 0,
28604
28692
  (e) => {
28605
- const file = _optionalChain([e, 'access', _594 => _594.target, 'access', _595 => _595.files, 'optionalAccess', _596 => _596[0]]);
28693
+ const file = _optionalChain([e, 'access', _606 => _606.target, 'access', _607 => _607.files, 'optionalAccess', _608 => _608[0]]);
28606
28694
  if (file) {
28607
28695
  handleFileUpload(file);
28608
28696
  e.target.value = "";
@@ -28613,7 +28701,7 @@ function MarkdownEditor({
28613
28701
  const handlePaste = _react.useCallback.call(void 0,
28614
28702
  (e) => {
28615
28703
  if (!onUploadFile) return;
28616
- const items = _optionalChain([e, 'access', _597 => _597.clipboardData, 'optionalAccess', _598 => _598.items]);
28704
+ const items = _optionalChain([e, 'access', _609 => _609.clipboardData, 'optionalAccess', _610 => _610.items]);
28617
28705
  if (!items) return;
28618
28706
  for (const item of items) {
28619
28707
  if (item.type.startsWith("image/")) {
@@ -28638,7 +28726,7 @@ function MarkdownEditor({
28638
28726
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
28639
28727
  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" }),
28640
28728
  execute: () => {
28641
- _optionalChain([fileInputRef, 'access', _599 => _599.current, 'optionalAccess', _600 => _600.click, 'call', _601 => _601()]);
28729
+ _optionalChain([fileInputRef, 'access', _611 => _611.current, 'optionalAccess', _612 => _612.click, 'call', _613 => _613()]);
28642
28730
  }
28643
28731
  } : null;
28644
28732
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -28650,7 +28738,7 @@ function MarkdownEditor({
28650
28738
  const EDGE_ZONE = 60;
28651
28739
  const MAX_SCROLL_SPEED = 15;
28652
28740
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
28653
- let node = _optionalChain([el, 'optionalAccess', _602 => _602.parentElement]);
28741
+ let node = _optionalChain([el, 'optionalAccess', _614 => _614.parentElement]);
28654
28742
  while (node && node !== document.documentElement) {
28655
28743
  const { overflowY } = window.getComputedStyle(node);
28656
28744
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -28793,7 +28881,7 @@ function matchesAccept(file, accept) {
28793
28881
  });
28794
28882
  }
28795
28883
  function dragHasFiles(e) {
28796
- const types = _optionalChain([e, 'access', _603 => _603.dataTransfer, 'optionalAccess', _604 => _604.types]);
28884
+ const types = _optionalChain([e, 'access', _615 => _615.dataTransfer, 'optionalAccess', _616 => _616.types]);
28797
28885
  if (!types) return false;
28798
28886
  for (let i = 0; i < types.length; i++) {
28799
28887
  if (types[i] === "Files") return true;
@@ -28888,7 +28976,7 @@ function FileUpload({
28888
28976
  e.stopPropagation();
28889
28977
  setDragActive(false);
28890
28978
  if (disabled) return;
28891
- if (_optionalChain([e, 'access', _605 => _605.dataTransfer, 'access', _606 => _606.files, 'optionalAccess', _607 => _607.length])) {
28979
+ if (_optionalChain([e, 'access', _617 => _617.dataTransfer, 'access', _618 => _618.files, 'optionalAccess', _619 => _619.length])) {
28892
28980
  handleFiles(e.dataTransfer.files);
28893
28981
  }
28894
28982
  };
@@ -28916,7 +29004,7 @@ function FileUpload({
28916
29004
  e.preventDefault();
28917
29005
  dragCounter = 0;
28918
29006
  setDragActive(false);
28919
- if (_optionalChain([e, 'access', _608 => _608.dataTransfer, 'optionalAccess', _609 => _609.files, 'optionalAccess', _610 => _610.length])) {
29007
+ if (_optionalChain([e, 'access', _620 => _620.dataTransfer, 'optionalAccess', _621 => _621.files, 'optionalAccess', _622 => _622.length])) {
28920
29008
  handleFilesRef.current(e.dataTransfer.files);
28921
29009
  }
28922
29010
  };
@@ -28938,7 +29026,7 @@ function FileUpload({
28938
29026
  };
28939
29027
  }, [acceptWindowDrops, disabled]);
28940
29028
  const handleFileSelect = (e) => {
28941
- if (_optionalChain([e, 'access', _611 => _611.target, 'access', _612 => _612.files, 'optionalAccess', _613 => _613.length])) {
29029
+ if (_optionalChain([e, 'access', _623 => _623.target, 'access', _624 => _624.files, 'optionalAccess', _625 => _625.length])) {
28942
29030
  handleFiles(e.target.files);
28943
29031
  }
28944
29032
  };
@@ -28955,7 +29043,7 @@ function FileUpload({
28955
29043
  };
28956
29044
  const openDialog = async () => {
28957
29045
  if (disabled) return;
28958
- _optionalChain([fileInputRef, 'access', _614 => _614.current, 'optionalAccess', _615 => _615.click, 'call', _616 => _616()]);
29046
+ _optionalChain([fileInputRef, 'access', _626 => _626.current, 'optionalAccess', _627 => _627.click, 'call', _628 => _628()]);
28959
29047
  };
28960
29048
  const displayError = error || validationError || void 0;
28961
29049
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -29033,7 +29121,7 @@ function FileUpload({
29033
29121
  "button",
29034
29122
  {
29035
29123
  type: "button",
29036
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _617 => _617(entry.id)]),
29124
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _629 => _629(entry.id)]),
29037
29125
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
29038
29126
  "aria-label": `Remove ${entry.fileName}`,
29039
29127
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -29156,7 +29244,7 @@ function ImageUploader({
29156
29244
  onChange(file);
29157
29245
  };
29158
29246
  const handleFileSelect = (e) => {
29159
- validateAndEmit(_optionalChain([e, 'access', _618 => _618.target, 'access', _619 => _619.files, 'optionalAccess', _620 => _620[0]]));
29247
+ validateAndEmit(_optionalChain([e, 'access', _630 => _630.target, 'access', _631 => _631.files, 'optionalAccess', _632 => _632[0]]));
29160
29248
  if (inputRef.current) inputRef.current.value = "";
29161
29249
  };
29162
29250
  const handleDrag = (e) => {
@@ -29171,11 +29259,11 @@ function ImageUploader({
29171
29259
  e.stopPropagation();
29172
29260
  setDragActive(false);
29173
29261
  if (!interactive) return;
29174
- validateAndEmit(_optionalChain([e, 'access', _621 => _621.dataTransfer, 'access', _622 => _622.files, 'optionalAccess', _623 => _623[0]]));
29262
+ validateAndEmit(_optionalChain([e, 'access', _633 => _633.dataTransfer, 'access', _634 => _634.files, 'optionalAccess', _635 => _635[0]]));
29175
29263
  };
29176
29264
  const openDialog = () => {
29177
29265
  if (!interactive) return;
29178
- _optionalChain([inputRef, 'access', _624 => _624.current, 'optionalAccess', _625 => _625.click, 'call', _626 => _626()]);
29266
+ _optionalChain([inputRef, 'access', _636 => _636.current, 'optionalAccess', _637 => _637.click, 'call', _638 => _638()]);
29179
29267
  };
29180
29268
  const handleRootKeyDown = (e) => {
29181
29269
  if (hasImage || !interactive) return;
@@ -29332,7 +29420,7 @@ function CompactAssigneeDropdown({
29332
29420
  return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
29333
29421
  }, [filtered, currentAssignee]);
29334
29422
  const handleSelect = (userId) => {
29335
- const next = _optionalChain([currentAssignee, 'optionalAccess', _627 => _627.id]) === userId ? null : userId;
29423
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _639 => _639.id]) === userId ? null : userId;
29336
29424
  onAssign(next);
29337
29425
  setIsOpen(false);
29338
29426
  };
@@ -29397,7 +29485,7 @@ function CompactAssigneeDropdown({
29397
29485
  }
29398
29486
  ) }),
29399
29487
  /* @__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) => {
29400
- const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _628 => _628.id]) === opt.value;
29488
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _640 => _640.id]) === opt.value;
29401
29489
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
29402
29490
  "button",
29403
29491
  {
@@ -29466,7 +29554,7 @@ function DefaultAssigneeDropdown({
29466
29554
  Autocomplete,
29467
29555
  {
29468
29556
  options,
29469
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _629 => _629.id]), () => ( null)),
29557
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _641 => _641.id]), () => ( null)),
29470
29558
  onChange: (val) => {
29471
29559
  onAssign(val);
29472
29560
  setIsEditing(false);
@@ -29832,14 +29920,14 @@ function TicketInfoSection({
29832
29920
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29833
29921
  SquareAvatar,
29834
29922
  {
29835
- src: _optionalChain([organization, 'optionalAccess', _630 => _630.imageSrc]),
29836
- alt: _optionalChain([organization, 'optionalAccess', _631 => _631.name]),
29837
- fallback: _optionalChain([organization, 'optionalAccess', _632 => _632.name]) || "Org",
29923
+ src: _optionalChain([organization, 'optionalAccess', _642 => _642.imageSrc]),
29924
+ alt: _optionalChain([organization, 'optionalAccess', _643 => _643.name]),
29925
+ fallback: _optionalChain([organization, 'optionalAccess', _644 => _644.name]) || "Org",
29838
29926
  size: "md",
29839
29927
  className: "shrink-0"
29840
29928
  }
29841
29929
  ),
29842
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _633 => _633.name]) || "Unassigned", label: "Organization" })
29930
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _645 => _645.name]) || "Unassigned", label: "Organization" })
29843
29931
  ] }),
29844
29932
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29845
29933
  AssigneeDropdown,
@@ -29860,10 +29948,10 @@ function TicketInfoSection({
29860
29948
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29861
29949
  InfoCell2,
29862
29950
  {
29863
- value: _optionalChain([device, 'optionalAccess', _634 => _634.name]) || "Unassigned",
29951
+ value: _optionalChain([device, 'optionalAccess', _646 => _646.name]) || "Unassigned",
29864
29952
  label: "Device",
29865
- icon: _optionalChain([device, 'optionalAccess', _635 => _635.icon]),
29866
- onClick: _optionalChain([device, 'optionalAccess', _636 => _636.onClick])
29953
+ icon: _optionalChain([device, 'optionalAccess', _647 => _647.icon]),
29954
+ onClick: _optionalChain([device, 'optionalAccess', _648 => _648.onClick])
29867
29955
  }
29868
29956
  ),
29869
29957
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -30149,7 +30237,7 @@ function RoadmapCard({
30149
30237
  const compactHref = safeHref(_nullishCoalesce(href, () => ( null)));
30150
30238
  const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
30151
30239
  const hasFigma = !!item.figmaUrl;
30152
- const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _637 => _637.screenshots, 'optionalAccess', _638 => _638.length]), () => ( 0))) > 0;
30240
+ const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _649 => _649.screenshots, 'optionalAccess', _650 => _650.length]), () => ( 0))) > 0;
30153
30241
  const typeLabel = getTaskTypeLabel(item.customItemId);
30154
30242
  const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
30155
30243
  const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -30168,7 +30256,7 @@ function RoadmapCard({
30168
30256
  unoptimized: true,
30169
30257
  className: "h-8 w-8 object-contain"
30170
30258
  }
30171
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _639 => _639.title, 'optionalAccess', _640 => _640.substring, 'call', _641 => _641(0, 2)]) || "??" })
30259
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _651 => _651.title, 'optionalAccess', _652 => _652.substring, 'call', _653 => _653(0, 2)]) || "??" })
30172
30260
  }
30173
30261
  ),
30174
30262
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -30243,7 +30331,7 @@ function RoadmapCard({
30243
30331
  unoptimized: true,
30244
30332
  className: "object-contain p-1"
30245
30333
  }
30246
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _642 => _642.title, 'optionalAccess', _643 => _643.substring, 'call', _644 => _644(0, 2)]) || "??" }) }),
30334
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _654 => _654.title, 'optionalAccess', _655 => _655.substring, 'call', _656 => _656(0, 2)]) || "??" }) }),
30247
30335
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
30248
30336
  /* @__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 }) }),
30249
30337
  /* @__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: [
@@ -30750,7 +30838,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
30750
30838
  ] }) : null,
30751
30839
  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
30752
30840
  ] }),
30753
- _optionalChain([anchorProps, 'optionalAccess', _645 => _645.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
30841
+ _optionalChain([anchorProps, 'optionalAccess', _657 => _657.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
30754
30842
  ] });
30755
30843
  if (!anchorProps) {
30756
30844
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
@@ -30820,7 +30908,7 @@ function getDefaultOptions() {
30820
30908
  // node_modules/date-fns/startOfWeek.mjs
30821
30909
  function startOfWeek(date, options) {
30822
30910
  const defaultOptions2 = getDefaultOptions();
30823
- const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _646 => _646.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _647 => _647.locale, 'optionalAccess', _648 => _648.options, 'optionalAccess', _649 => _649.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _650 => _650.locale, 'optionalAccess', _651 => _651.options, 'optionalAccess', _652 => _652.weekStartsOn]))), () => ( 0));
30911
+ const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _658 => _658.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _659 => _659.locale, 'optionalAccess', _660 => _660.options, 'optionalAccess', _661 => _661.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _662 => _662.locale, 'optionalAccess', _663 => _663.options, 'optionalAccess', _664 => _664.weekStartsOn]))), () => ( 0));
30824
30912
  const _date = toDate(date);
30825
30913
  const day = _date.getDay();
30826
30914
  const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
@@ -30995,7 +31083,7 @@ var formatDistance = (token, count, options) => {
30995
31083
  } else {
30996
31084
  result = tokenValue.other.replace("{{count}}", count.toString());
30997
31085
  }
30998
- if (_optionalChain([options, 'optionalAccess', _653 => _653.addSuffix])) {
31086
+ if (_optionalChain([options, 'optionalAccess', _665 => _665.addSuffix])) {
30999
31087
  if (options.comparison && options.comparison > 0) {
31000
31088
  return "in " + result;
31001
31089
  } else {
@@ -31062,15 +31150,15 @@ var formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale
31062
31150
  // node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs
31063
31151
  function buildLocalizeFn(args) {
31064
31152
  return (value, options) => {
31065
- const context = _optionalChain([options, 'optionalAccess', _654 => _654.context]) ? String(options.context) : "standalone";
31153
+ const context = _optionalChain([options, 'optionalAccess', _666 => _666.context]) ? String(options.context) : "standalone";
31066
31154
  let valuesArray;
31067
31155
  if (context === "formatting" && args.formattingValues) {
31068
31156
  const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
31069
- const width = _optionalChain([options, 'optionalAccess', _655 => _655.width]) ? String(options.width) : defaultWidth;
31157
+ const width = _optionalChain([options, 'optionalAccess', _667 => _667.width]) ? String(options.width) : defaultWidth;
31070
31158
  valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
31071
31159
  } else {
31072
31160
  const defaultWidth = args.defaultWidth;
31073
- const width = _optionalChain([options, 'optionalAccess', _656 => _656.width]) ? String(options.width) : args.defaultWidth;
31161
+ const width = _optionalChain([options, 'optionalAccess', _668 => _668.width]) ? String(options.width) : args.defaultWidth;
31074
31162
  valuesArray = args.values[width] || args.values[defaultWidth];
31075
31163
  }
31076
31164
  const index = args.argumentCallback ? args.argumentCallback(value) : value;
@@ -31450,7 +31538,7 @@ function getWeekYear(date, options) {
31450
31538
  const _date = toDate(date);
31451
31539
  const year = _date.getFullYear();
31452
31540
  const defaultOptions2 = getDefaultOptions();
31453
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _657 => _657.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _658 => _658.locale, 'optionalAccess', _659 => _659.options, 'optionalAccess', _660 => _660.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _661 => _661.locale, 'optionalAccess', _662 => _662.options, 'optionalAccess', _663 => _663.firstWeekContainsDate]))), () => ( 1));
31541
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _669 => _669.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _670 => _670.locale, 'optionalAccess', _671 => _671.options, 'optionalAccess', _672 => _672.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _673 => _673.locale, 'optionalAccess', _674 => _674.options, 'optionalAccess', _675 => _675.firstWeekContainsDate]))), () => ( 1));
31454
31542
  const firstWeekOfNextYear = constructFrom(date, 0);
31455
31543
  firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
31456
31544
  firstWeekOfNextYear.setHours(0, 0, 0, 0);
@@ -31471,7 +31559,7 @@ function getWeekYear(date, options) {
31471
31559
  // node_modules/date-fns/startOfWeekYear.mjs
31472
31560
  function startOfWeekYear(date, options) {
31473
31561
  const defaultOptions2 = getDefaultOptions();
31474
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _664 => _664.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _665 => _665.locale, 'optionalAccess', _666 => _666.options, 'optionalAccess', _667 => _667.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _668 => _668.locale, 'optionalAccess', _669 => _669.options, 'optionalAccess', _670 => _670.firstWeekContainsDate]))), () => ( 1));
31562
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _676 => _676.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _677 => _677.locale, 'optionalAccess', _678 => _678.options, 'optionalAccess', _679 => _679.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _680 => _680.locale, 'optionalAccess', _681 => _681.options, 'optionalAccess', _682 => _682.firstWeekContainsDate]))), () => ( 1));
31475
31563
  const year = getWeekYear(date, options);
31476
31564
  const firstWeek = constructFrom(date, 0);
31477
31565
  firstWeek.setFullYear(year, 0, firstWeekContainsDate);
@@ -32286,9 +32374,9 @@ var doubleQuoteRegExp = /''/g;
32286
32374
  var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
32287
32375
  function format(date, formatStr, options) {
32288
32376
  const defaultOptions2 = getDefaultOptions();
32289
- const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _671 => _671.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
32290
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _672 => _672.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _673 => _673.locale, 'optionalAccess', _674 => _674.options, 'optionalAccess', _675 => _675.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _676 => _676.locale, 'optionalAccess', _677 => _677.options, 'optionalAccess', _678 => _678.firstWeekContainsDate]))), () => ( 1));
32291
- const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _679 => _679.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _680 => _680.locale, 'optionalAccess', _681 => _681.options, 'optionalAccess', _682 => _682.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _683 => _683.locale, 'optionalAccess', _684 => _684.options, 'optionalAccess', _685 => _685.weekStartsOn]))), () => ( 0));
32377
+ const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _683 => _683.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
32378
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _684 => _684.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _685 => _685.locale, 'optionalAccess', _686 => _686.options, 'optionalAccess', _687 => _687.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _688 => _688.locale, 'optionalAccess', _689 => _689.options, 'optionalAccess', _690 => _690.firstWeekContainsDate]))), () => ( 1));
32379
+ const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _691 => _691.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _692 => _692.locale, 'optionalAccess', _693 => _693.options, 'optionalAccess', _694 => _694.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _695 => _695.locale, 'optionalAccess', _696 => _696.options, 'optionalAccess', _697 => _697.weekStartsOn]))), () => ( 0));
32292
32380
  const originalDate = toDate(date);
32293
32381
  if (!isValid(originalDate)) {
32294
32382
  throw new RangeError("Invalid time value");
@@ -32329,7 +32417,7 @@ function format(date, formatStr, options) {
32329
32417
  return parts.map((part) => {
32330
32418
  if (!part.isToken) return part.value;
32331
32419
  const token = part.value;
32332
- if (!_optionalChain([options, 'optionalAccess', _686 => _686.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _687 => _687.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
32420
+ if (!_optionalChain([options, 'optionalAccess', _698 => _698.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _699 => _699.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
32333
32421
  warnOrThrowProtectedError(token, formatStr, String(date));
32334
32422
  }
32335
32423
  const formatter = formatters[token[0]];
@@ -32495,7 +32583,7 @@ function ProgramCard({
32495
32583
  const dur = formatDurationFromRange(w.start_at, w.end_at);
32496
32584
  typeMeta = dur ? `${time} \xB7 ${dur}` : time;
32497
32585
  }
32498
- const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _688 => _688.labels, 'optionalAccess', _689 => _689.singular])].filter(
32586
+ const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _700 => _700.labels, 'optionalAccess', _701 => _701.singular])].filter(
32499
32587
  (s) => typeof s === "string" && s.length > 0
32500
32588
  );
32501
32589
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "a", { href, target, rel, className: _chunk664KA5FIcjs.cn.call(void 0, COMPACT_CARD_OUTER, className), children: [
@@ -32652,7 +32740,7 @@ function ProgramCard({
32652
32740
 
32653
32741
 
32654
32742
  function CampaignCardAdmin({ campaign, className, anchorProps }) {
32655
- const goalsCount = _optionalChain([campaign, 'access', _690 => _690.goals, 'optionalAccess', _691 => _691.length]) || 0;
32743
+ const goalsCount = _optionalChain([campaign, 'access', _702 => _702.goals, 'optionalAccess', _703 => _703.length]) || 0;
32656
32744
  const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
32657
32745
  /* @__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" }) }),
32658
32746
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -32770,7 +32858,7 @@ function extractItemId(type, item) {
32770
32858
  return null;
32771
32859
  }
32772
32860
  function useChatCardItem(type, id) {
32773
- const runtime = _chunk6RZYJICVcjs.useRequiredChatRuntime.call(void 0, );
32861
+ const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
32774
32862
  const url = runtime.endpoints.buildListUrl(type, [id]);
32775
32863
  const query = _reactquery.useQuery.call(void 0, {
32776
32864
  queryKey: ["chat-card-item", type, id],
@@ -32947,11 +33035,11 @@ function HubspotTicketChatCard({
32947
33035
  chatRef,
32948
33036
  isNewTab
32949
33037
  }) {
32950
- const status = typeof _optionalChain([chatRef, 'access', _692 => _692.metadata, 'optionalAccess', _693 => _693.status]) === "string" ? chatRef.metadata.status : void 0;
32951
- const statusLabel = typeof _optionalChain([chatRef, 'access', _694 => _694.metadata, 'optionalAccess', _695 => _695.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
32952
- const priority = typeof _optionalChain([chatRef, 'access', _696 => _696.metadata, 'optionalAccess', _697 => _697.priority]) === "string" ? chatRef.metadata.priority : void 0;
32953
- const customerCompany = typeof _optionalChain([chatRef, 'access', _698 => _698.metadata, 'optionalAccess', _699 => _699.customerCompany]) === "string" ? chatRef.metadata.customerCompany : void 0;
32954
- const customerEmail = typeof _optionalChain([chatRef, 'access', _700 => _700.metadata, 'optionalAccess', _701 => _701.customerEmail]) === "string" ? chatRef.metadata.customerEmail : void 0;
33038
+ const status = typeof _optionalChain([chatRef, 'access', _704 => _704.metadata, 'optionalAccess', _705 => _705.status]) === "string" ? chatRef.metadata.status : void 0;
33039
+ const statusLabel = typeof _optionalChain([chatRef, 'access', _706 => _706.metadata, 'optionalAccess', _707 => _707.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
33040
+ const priority = typeof _optionalChain([chatRef, 'access', _708 => _708.metadata, 'optionalAccess', _709 => _709.priority]) === "string" ? chatRef.metadata.priority : void 0;
33041
+ const customerCompany = typeof _optionalChain([chatRef, 'access', _710 => _710.metadata, 'optionalAccess', _711 => _711.customerCompany]) === "string" ? chatRef.metadata.customerCompany : void 0;
33042
+ const customerEmail = typeof _optionalChain([chatRef, 'access', _712 => _712.metadata, 'optionalAccess', _713 => _713.customerEmail]) === "string" ? chatRef.metadata.customerEmail : void 0;
32955
33043
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32956
33044
  HubspotTicketCard,
32957
33045
  {
@@ -32973,7 +33061,7 @@ function HubspotTicketChatCard({
32973
33061
  );
32974
33062
  }
32975
33063
  function SlackChatCard({ chatRef, isNewTab }) {
32976
- const channelName = typeof _optionalChain([chatRef, 'access', _702 => _702.metadata, 'optionalAccess', _703 => _703.channelName]) === "string" ? chatRef.metadata.channelName : void 0;
33064
+ const channelName = typeof _optionalChain([chatRef, 'access', _714 => _714.metadata, 'optionalAccess', _715 => _715.channelName]) === "string" ? chatRef.metadata.channelName : void 0;
32977
33065
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32978
33066
  SlackMessageCard,
32979
33067
  {
@@ -32996,7 +33084,7 @@ function DataRoomDocChatCard({
32996
33084
  chipBasePlatform,
32997
33085
  isNewTab
32998
33086
  }) {
32999
- const path = typeof _optionalChain([chatRef, 'access', _704 => _704.metadata, 'optionalAccess', _705 => _705.path]) === "string" ? chatRef.metadata.path : void 0;
33087
+ const path = typeof _optionalChain([chatRef, 'access', _716 => _716.metadata, 'optionalAccess', _717 => _717.path]) === "string" ? chatRef.metadata.path : void 0;
33000
33088
  const badgeText = chatRef.sourceRepo ? getSourceLabel(chatRef.sourceRepo) : "Document";
33001
33089
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33002
33090
  DataRoomDocCard,
@@ -33022,8 +33110,8 @@ function GenericFinancialChatCard({
33022
33110
  scheme,
33023
33111
  isNewTab
33024
33112
  }) {
33025
- const facts = Array.isArray(_optionalChain([chatRef, 'access', _706 => _706.metadata, 'optionalAccess', _707 => _707.facts])) ? chatRef.metadata.facts : null;
33026
- const subtitle = typeof _optionalChain([chatRef, 'access', _708 => _708.metadata, 'optionalAccess', _709 => _709.subtitle]) === "string" ? chatRef.metadata.subtitle : null;
33113
+ const facts = Array.isArray(_optionalChain([chatRef, 'access', _718 => _718.metadata, 'optionalAccess', _719 => _719.facts])) ? chatRef.metadata.facts : null;
33114
+ const subtitle = typeof _optionalChain([chatRef, 'access', _720 => _720.metadata, 'optionalAccess', _721 => _721.subtitle]) === "string" ? chatRef.metadata.subtitle : null;
33027
33115
  const anchorProps = buildAnchorProps(
33028
33116
  chatRef.url,
33029
33117
  isNewTab
@@ -33185,7 +33273,7 @@ function programRegistryEntries() {
33185
33273
  contentRefType: cfg.contentRefType,
33186
33274
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProgramCardSkeleton, { size: "sm" }),
33187
33275
  render: (item, chatRef, opts) => {
33188
- const config = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _710 => _710.extras, 'optionalAccess', _711 => _711.programConfigs, 'optionalAccess', _712 => _712[cfg.configKey]]), () => ( DEFAULT_PROGRAM_CONFIGS[cfg.configKey]));
33276
+ const config = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _722 => _722.extras, 'optionalAccess', _723 => _723.programConfigs, 'optionalAccess', _724 => _724[cfg.configKey]]), () => ( DEFAULT_PROGRAM_CONFIGS[cfg.configKey]));
33189
33277
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33190
33278
  ProgramCard,
33191
33279
  {
@@ -33271,8 +33359,8 @@ var CHAT_CARD_REGISTRY = {
33271
33359
  DataRoomDocChatCard,
33272
33360
  {
33273
33361
  chatRef,
33274
- baseRoute: _optionalChain([opts, 'optionalAccess', _713 => _713.baseRoute]),
33275
- chipBasePlatform: _optionalChain([opts, 'optionalAccess', _714 => _714.chipBasePlatform]),
33362
+ baseRoute: _optionalChain([opts, 'optionalAccess', _725 => _725.baseRoute]),
33363
+ chipBasePlatform: _optionalChain([opts, 'optionalAccess', _726 => _726.chipBasePlatform]),
33276
33364
  isNewTab: opts.isNewTab
33277
33365
  }
33278
33366
  )
@@ -33284,8 +33372,8 @@ var CHAT_CARD_REGISTRY = {
33284
33372
  DataRoomDocChatCard,
33285
33373
  {
33286
33374
  chatRef,
33287
- baseRoute: _optionalChain([opts, 'optionalAccess', _715 => _715.baseRoute]),
33288
- chipBasePlatform: _optionalChain([opts, 'optionalAccess', _716 => _716.chipBasePlatform]),
33375
+ baseRoute: _optionalChain([opts, 'optionalAccess', _727 => _727.baseRoute]),
33376
+ chipBasePlatform: _optionalChain([opts, 'optionalAccess', _728 => _728.chipBasePlatform]),
33289
33377
  isNewTab: opts.isNewTab
33290
33378
  }
33291
33379
  )
@@ -33310,9 +33398,9 @@ var CHAT_CARD_REGISTRY = {
33310
33398
  size: "sm",
33311
33399
  href: _nullishCoalesce(chatRef.url, () => ( "")),
33312
33400
  targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
33313
- placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _717 => _717.extras, 'optionalAccess', _718 => _718.buildOgPlaceholderUrl, 'optionalCall', _719 => _719(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _720 => _720.title]), () => ( "")))]), () => ( null)),
33401
+ placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _729 => _729.extras, 'optionalAccess', _730 => _730.buildOgPlaceholderUrl, 'optionalCall', _731 => _731(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _732 => _732.title]), () => ( "")))]), () => ( null)),
33314
33402
  ...newTabAnchorAttrs(opts.isNewTab),
33315
- hasEmbeddedVideo: _optionalChain([chatRef, 'access', _721 => _721.metadata, 'optionalAccess', _722 => _722.hasEmbeddedVideo]) === true
33403
+ hasEmbeddedVideo: _optionalChain([chatRef, 'access', _733 => _733.metadata, 'optionalAccess', _734 => _734.hasEmbeddedVideo]) === true
33316
33404
  }
33317
33405
  )
33318
33406
  },
@@ -33328,7 +33416,7 @@ var CHAT_CARD_REGISTRY = {
33328
33416
  size: "sm",
33329
33417
  href: _nullishCoalesce(chatRef.url, () => ( "")),
33330
33418
  targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
33331
- placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _723 => _723.extras, 'optionalAccess', _724 => _724.buildOgPlaceholderUrl, 'optionalCall', _725 => _725(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _726 => _726.title]), () => ( "")))]), () => ( null)),
33419
+ placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _735 => _735.extras, 'optionalAccess', _736 => _736.buildOgPlaceholderUrl, 'optionalCall', _737 => _737(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _738 => _738.title]), () => ( "")))]), () => ( null)),
33332
33420
  ...newTabAnchorAttrs(opts.isNewTab)
33333
33421
  }
33334
33422
  )
@@ -33345,7 +33433,7 @@ var CHAT_CARD_REGISTRY = {
33345
33433
  size: "sm",
33346
33434
  href: _nullishCoalesce(chatRef.url, () => ( "")),
33347
33435
  targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
33348
- placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _727 => _727.extras, 'optionalAccess', _728 => _728.buildOgPlaceholderUrl, 'optionalCall', _729 => _729(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _730 => _730.title]), () => ( "")))]), () => ( null)),
33436
+ placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _739 => _739.extras, 'optionalAccess', _740 => _740.buildOgPlaceholderUrl, 'optionalCall', _741 => _741(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _742 => _742.title]), () => ( "")))]), () => ( null)),
33349
33437
  ...newTabAnchorAttrs(opts.isNewTab)
33350
33438
  }
33351
33439
  )
@@ -33356,7 +33444,7 @@ var CHAT_CARD_REGISTRY = {
33356
33444
  contentRefType: "product_release",
33357
33445
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductReleaseCardSkeleton, { size: "sm" }),
33358
33446
  render: (item, chatRef, opts) => {
33359
- const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _731 => _731.extras, 'optionalAccess', _732 => _732.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
33447
+ const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _743 => _743.extras, 'optionalAccess', _744 => _744.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
33360
33448
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33361
33449
  ProductReleaseChatCard,
33362
33450
  {
@@ -33381,7 +33469,7 @@ var CHAT_CARD_REGISTRY = {
33381
33469
  size: "sm",
33382
33470
  href: _nullishCoalesce(chatRef.url, () => ( "")),
33383
33471
  targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
33384
- placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _733 => _733.extras, 'optionalAccess', _734 => _734.buildOgPlaceholderUrl, 'optionalCall', _735 => _735(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _736 => _736.title]), () => ( "")))]), () => ( null)),
33472
+ placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _745 => _745.extras, 'optionalAccess', _746 => _746.buildOgPlaceholderUrl, 'optionalCall', _747 => _747(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _748 => _748.title]), () => ( "")))]), () => ( null)),
33385
33473
  ...newTabAnchorAttrs(opts.isNewTab)
33386
33474
  }
33387
33475
  )
@@ -33399,7 +33487,7 @@ var CHAT_CARD_REGISTRY = {
33399
33487
  size: "sm",
33400
33488
  href: _nullishCoalesce(chatRef.url, () => ( "")),
33401
33489
  targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
33402
- placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _737 => _737.extras, 'optionalAccess', _738 => _738.buildOgPlaceholderUrl, 'optionalCall', _739 => _739(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _740 => _740.title]), () => ( "")))]), () => ( null)),
33490
+ placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _749 => _749.extras, 'optionalAccess', _750 => _750.buildOgPlaceholderUrl, 'optionalCall', _751 => _751(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _752 => _752.title]), () => ( "")))]), () => ( null)),
33403
33491
  ...newTabAnchorAttrs(opts.isNewTab)
33404
33492
  }
33405
33493
  )
@@ -33411,7 +33499,7 @@ var CHAT_CARD_REGISTRY = {
33411
33499
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
33412
33500
  // No public viewer — synthesize the hub-internal admin URL post-fetch
33413
33501
  // so the wrapper + isNewTab computation see the actual destination.
33414
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _741 => _741.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
33502
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _753 => _753.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
33415
33503
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33416
33504
  CampaignChatCard,
33417
33505
  {
@@ -33430,17 +33518,17 @@ function ChatCardNavWrap({
33430
33518
  isNewTab,
33431
33519
  children
33432
33520
  }) {
33433
- const runtime = _chunk6RZYJICVcjs.useRequiredChatRuntime.call(void 0, );
33521
+ const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
33434
33522
  const panel = useChatPanel();
33435
33523
  const onClickCapture = (e) => {
33436
33524
  if (!href) return;
33437
33525
  const targetEl = e.target;
33438
- if (_optionalChain([targetEl, 'optionalAccess', _742 => _742.closest, 'optionalCall', _743 => _743("button")])) return;
33439
- if (!_optionalChain([targetEl, 'optionalAccess', _744 => _744.closest, 'optionalCall', _745 => _745("a")])) return;
33526
+ if (_optionalChain([targetEl, 'optionalAccess', _754 => _754.closest, 'optionalCall', _755 => _755("button")])) return;
33527
+ if (!_optionalChain([targetEl, 'optionalAccess', _756 => _756.closest, 'optionalCall', _757 => _757("a")])) return;
33440
33528
  const handled = handleChatNavClick(e, runtime, { href, path, targetPlatform });
33441
33529
  if (!handled) return;
33442
33530
  e.stopPropagation();
33443
- if (!isNewTab && _optionalChain([panel, 'optionalAccess', _746 => _746.closeChat])) panel.closeChat();
33531
+ if (!isNewTab && _optionalChain([panel, 'optionalAccess', _758 => _758.closeChat])) panel.closeChat();
33444
33532
  };
33445
33533
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
33446
33534
  }
@@ -33452,7 +33540,7 @@ function ChatCardLoader({
33452
33540
  chipBasePlatform,
33453
33541
  extras
33454
33542
  }) {
33455
- const runtime = _chunk6RZYJICVcjs.useRequiredChatRuntime.call(void 0, );
33543
+ const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
33456
33544
  const resolvedChatRef = React92.default.useMemo(() => {
33457
33545
  const cta = resolveSourceRowCTA(
33458
33546
  {
@@ -33462,7 +33550,7 @@ function ChatCardLoader({
33462
33550
  title: chatRef.title,
33463
33551
  externalUrl: chatRef.url,
33464
33552
  targetPlatform: chatRef.targetPlatform,
33465
- path: typeof _optionalChain([chatRef, 'access', _747 => _747.metadata, 'optionalAccess', _748 => _748.path]) === "string" ? chatRef.metadata.path : null
33553
+ path: typeof _optionalChain([chatRef, 'access', _759 => _759.metadata, 'optionalAccess', _760 => _760.path]) === "string" ? chatRef.metadata.path : null
33466
33554
  },
33467
33555
  {
33468
33556
  baseRoute,
@@ -33480,7 +33568,7 @@ function ChatCardLoader({
33480
33568
  const entry = CHAT_CARD_REGISTRY[resolvedChatRef.type];
33481
33569
  const fetchEntry = entry && entry.mode === "fetch" ? entry : null;
33482
33570
  const { item, isLoading } = useChatCardItem(
33483
- _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _749 => _749.contentRefType]), () => ( "")),
33571
+ _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _761 => _761.contentRefType]), () => ( "")),
33484
33572
  fetchEntry ? resolvedChatRef.id : ""
33485
33573
  );
33486
33574
  if (!entry) return null;
@@ -33490,7 +33578,7 @@ function ChatCardLoader({
33490
33578
  } : resolvedChatRef;
33491
33579
  const isNewTab = computeIsNewTab(runtime, finalChatRef.url, _nullishCoalesce(finalChatRef.targetPlatform, () => ( null)));
33492
33580
  const renderOpts = { baseRoute, chipBasePlatform, extras, isNewTab };
33493
- const path = typeof _optionalChain([finalChatRef, 'access', _750 => _750.metadata, 'optionalAccess', _751 => _751.path]) === "string" ? finalChatRef.metadata.path : null;
33581
+ const path = typeof _optionalChain([finalChatRef, 'access', _762 => _762.metadata, 'optionalAccess', _763 => _763.path]) === "string" ? finalChatRef.metadata.path : null;
33494
33582
  const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33495
33583
  ChatCardNavWrap,
33496
33584
  {
@@ -33907,7 +33995,6 @@ function useChunkCatchup({
33907
33995
 
33908
33996
  // src/components/chat/hooks/use-jetstream-dialog-subscription.ts
33909
33997
 
33910
- var shared = null;
33911
33998
  var DEFAULT_INACTIVE_THRESHOLD_MS = 5 * 6e4;
33912
33999
  var DEFAULT_STREAM_NAME = "CHAT_CHUNKS";
33913
34000
  function useJetStreamDialogSubscription({
@@ -33970,68 +34057,16 @@ function useJetStreamDialogSubscription({
33970
34057
  inactiveThresholdRef.current = inactiveThresholdMs;
33971
34058
  }, [inactiveThresholdMs]);
33972
34059
  const hadConnectionBeforeRef = _react.useRef.call(void 0, false);
33973
- const acquireClient = _react.useCallback.call(void 0,
33974
- (url) => {
33975
- if (_optionalChain([shared, 'optionalAccess', _752 => _752.wsUrl]) !== url) {
33976
- if (shared) {
33977
- if (shared.closeTimer) clearTimeout(shared.closeTimer);
33978
- const old = shared;
33979
- shared = null;
33980
- void old.client.close().catch(() => {
33981
- });
33982
- }
33983
- const { name = "openframe-frontend-jetstream", user = "machine", pass = "" } = clientConfig;
33984
- const client = _chunkEH3RWVF3cjs.createNatsClient.call(void 0, {
33985
- servers: url,
33986
- name,
33987
- user,
33988
- pass,
33989
- connectTimeoutMs: NETWORK_CONFIG.CONNECT_TIMEOUT_MS,
33990
- reconnect: false,
33991
- pingIntervalMs: NETWORK_CONFIG.PING_INTERVAL_MS,
33992
- maxPingOut: NETWORK_CONFIG.MAX_PING_OUT
33993
- });
33994
- shared = {
33995
- wsUrl: url,
33996
- client,
33997
- connectPromise: null,
33998
- refCount: 0,
33999
- closeTimer: null,
34000
- retryTimer: null
34001
- };
34002
- }
34003
- shared.refCount += 1;
34004
- if (shared.closeTimer) {
34005
- clearTimeout(shared.closeTimer);
34006
- shared.closeTimer = null;
34007
- }
34008
- return shared;
34009
- },
34010
- [clientConfig]
34011
- );
34012
- const releaseClient = _react.useCallback.call(void 0, (url) => {
34013
- if (!shared || shared.wsUrl !== url) return;
34014
- shared.refCount = Math.max(0, shared.refCount - 1);
34015
- if (shared.refCount > 0) return;
34016
- shared.closeTimer = setTimeout(() => {
34017
- const s = shared;
34018
- shared = null;
34019
- if (s) {
34020
- if (s.retryTimer) {
34021
- clearTimeout(s.retryTimer);
34022
- s.retryTimer = null;
34023
- }
34024
- void s.client.close().catch(() => {
34025
- });
34026
- }
34027
- }, NETWORK_CONFIG.SHARED_CLOSE_DELAY_MS);
34028
- }, []);
34060
+ const clientConfigRef = _react.useRef.call(void 0, clientConfig);
34061
+ _react.useEffect.call(void 0, () => {
34062
+ clientConfigRef.current = clientConfig;
34063
+ }, [clientConfig]);
34029
34064
  const currentWsUrlRef = _react.useRef.call(void 0, "");
34065
+ const wsUrl = getNatsWsUrl();
34030
34066
  _react.useEffect.call(void 0, () => {
34031
- const wsUrl = getNatsWsUrl();
34032
34067
  if (!enabled || !wsUrl) {
34033
34068
  if (currentWsUrlRef.current && clientRef.current) {
34034
- releaseClient(currentWsUrlRef.current);
34069
+ _chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
34035
34070
  clientRef.current = null;
34036
34071
  currentWsUrlRef.current = "";
34037
34072
  setIsConnected(false);
@@ -34042,137 +34077,79 @@ function useJetStreamDialogSubscription({
34042
34077
  return;
34043
34078
  }
34044
34079
  if (currentWsUrlRef.current && currentWsUrlRef.current !== wsUrl && clientRef.current) {
34045
- releaseClient(currentWsUrlRef.current);
34080
+ _chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
34046
34081
  clientRef.current = null;
34047
34082
  setIsConnected(false);
34048
34083
  }
34049
34084
  currentWsUrlRef.current = wsUrl;
34050
- const sharedConn = acquireClient(wsUrl);
34085
+ const cfg = clientConfigRef.current;
34086
+ const sharedConn = _chunkOZ3GH6OQcjs.acquireClient.call(void 0, wsUrl, {
34087
+ name: _nullishCoalesce(cfg.name, () => ( "openframe-frontend-jetstream")),
34088
+ user: _nullishCoalesce(cfg.user, () => ( "machine")),
34089
+ pass: _nullishCoalesce(cfg.pass, () => ( ""))
34090
+ });
34051
34091
  const client = sharedConn.client;
34052
34092
  clientRef.current = client;
34053
- setIsConnected(false);
34054
- let closed = false;
34055
- let retryAttempt = 0;
34056
- function scheduleRetry() {
34057
- if (closed) return;
34058
- if (shared !== sharedConn) return;
34059
- if (sharedConn.retryTimer) {
34060
- clearTimeout(sharedConn.retryTimer);
34061
- sharedConn.retryTimer = null;
34062
- }
34063
- const cfg = _nullishCoalesce(reconnectionBackoffRef.current, () => ( {}));
34064
- const fastRetries = _nullishCoalesce(cfg.fastRetries, () => ( 0));
34065
- const fastDelay = _nullishCoalesce(cfg.fastRetryDelayMs, () => ( NETWORK_CONFIG.RETRY_INITIAL_DELAY_MS));
34066
- const baseDelay = _nullishCoalesce(cfg.initialDelayMs, () => ( NETWORK_CONFIG.RETRY_INITIAL_DELAY_MS));
34067
- const maxDelay = _nullishCoalesce(cfg.maxDelayMs, () => ( NETWORK_CONFIG.RETRY_MAX_DELAY_MS));
34068
- const multiplier = _nullishCoalesce(cfg.multiplier, () => ( NETWORK_CONFIG.RETRY_BACKOFF_MULTIPLIER));
34069
- const delay2 = retryAttempt < fastRetries ? fastDelay : Math.min(baseDelay * multiplier ** (retryAttempt - fastRetries), maxDelay);
34070
- const jitteredDelay = delay2 * (0.5 + Math.random() * 0.5);
34071
- retryAttempt++;
34072
- sharedConn.retryTimer = setTimeout(async () => {
34073
- sharedConn.retryTimer = null;
34074
- if (closed) return;
34075
- if (shared !== sharedConn) return;
34093
+ setIsConnected(client.isConnected());
34094
+ const tearDownSubscription = () => {
34095
+ if (subscriptionRef.current) {
34076
34096
  try {
34077
- await _optionalChain([onBeforeReconnectRef, 'access', _753 => _753.current, 'optionalCall', _754 => _754()]);
34097
+ subscriptionRef.current.unsubscribe();
34078
34098
  } catch (e24) {
34079
34099
  }
34080
- if (closed) return;
34081
- if (shared !== sharedConn) return;
34082
- const freshUrl = getNatsWsUrlRef.current();
34083
- if (freshUrl !== wsUrl) return;
34084
- try {
34085
- sharedConn.connectPromise = null;
34086
- sharedConn.connectPromise = client.connect();
34087
- await sharedConn.connectPromise;
34088
- if (!closed && shared === sharedConn) {
34089
- retryAttempt = 0;
34090
- setIsConnected(true);
34091
- }
34092
- } catch (e25) {
34093
- sharedConn.connectPromise = null;
34094
- if (!closed && shared === sharedConn) {
34095
- scheduleRetry();
34096
- }
34097
- }
34098
- }, jitteredDelay);
34099
- }
34100
- const unsubscribeStatus = client.onStatus((event) => {
34101
- const connected = event.status === "connected";
34102
- const disconnected = event.status === "closed" || event.status === "disconnected";
34103
- if (connected) {
34104
- setIsConnected(true);
34105
- if (hadConnectionBeforeRef.current) {
34106
- setReconnectionCount((c) => c + 1);
34107
- }
34108
- hadConnectionBeforeRef.current = true;
34109
- retryAttempt = 0;
34110
- _optionalChain([onConnectRef, 'access', _755 => _755.current, 'optionalCall', _756 => _756()]);
34111
- }
34112
- if (event.status === "error") {
34113
- console.warn("[JetStream] NATS protocol error:", event.data);
34114
- return;
34115
- }
34116
- if (disconnected) {
34117
- setIsConnected(false);
34118
- setIsSubscribed(false);
34119
- if (subscriptionRef.current) {
34120
- try {
34121
- subscriptionRef.current.unsubscribe();
34122
- } catch (e26) {
34123
- }
34124
- subscriptionRef.current = null;
34125
- }
34126
- _optionalChain([onDisconnectRef, 'access', _757 => _757.current, 'optionalCall', _758 => _758()]);
34127
- scheduleRetry();
34100
+ subscriptionRef.current = null;
34128
34101
  }
34129
- });
34130
- (async () => {
34131
- try {
34132
- sharedConn.connectPromise || (sharedConn.connectPromise = client.connect());
34133
- await sharedConn.connectPromise;
34134
- if (!closed) {
34102
+ };
34103
+ const lifecycle = _chunkOZ3GH6OQcjs.startConnectionLifecycle.call(void 0, {
34104
+ conn: sharedConn,
34105
+ wsUrl,
34106
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _764 => _764.current, 'optionalCall', _765 => _765()]),
34107
+ backoff: reconnectionBackoffRef.current,
34108
+ getFreshUrl: () => getNatsWsUrlRef.current(),
34109
+ // JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
34110
+ // Violation when CONSUMER.CREATE is denied) without closing the WebSocket.
34111
+ // Retrying on 'error' would loop onBeforeReconnect on every -ERR; let the
34112
+ // subscribe effect surface those via its own rejected promise instead.
34113
+ shouldRetryOn: (status) => status === "closed" || status === "disconnected",
34114
+ onStatusChange: (status, evt) => {
34115
+ if (status === "connected") {
34135
34116
  setIsConnected(true);
34117
+ if (hadConnectionBeforeRef.current) {
34118
+ setReconnectionCount((c) => c + 1);
34119
+ }
34136
34120
  hadConnectionBeforeRef.current = true;
34121
+ _optionalChain([onConnectRef, 'access', _766 => _766.current, 'optionalCall', _767 => _767()]);
34122
+ }
34123
+ if (status === "error") {
34124
+ console.warn("[JetStream] NATS protocol error:", evt.data);
34125
+ return;
34137
34126
  }
34138
- } catch (e27) {
34139
- sharedConn.connectPromise = null;
34140
- if (!closed) {
34127
+ if (status === "closed" || status === "disconnected") {
34141
34128
  setIsConnected(false);
34142
- _optionalChain([onDisconnectRef, 'access', _759 => _759.current, 'optionalCall', _760 => _760()]);
34143
- scheduleRetry();
34129
+ setIsSubscribed(false);
34130
+ tearDownSubscription();
34131
+ _optionalChain([onDisconnectRef, 'access', _768 => _768.current, 'optionalCall', _769 => _769()]);
34144
34132
  }
34145
34133
  }
34146
- })();
34134
+ });
34147
34135
  return () => {
34148
- closed = true;
34136
+ lifecycle.stop();
34149
34137
  setIsConnected(false);
34150
34138
  setIsSubscribed(false);
34151
- unsubscribeStatus();
34152
- if (sharedConn.retryTimer) {
34153
- clearTimeout(sharedConn.retryTimer);
34154
- sharedConn.retryTimer = null;
34155
- }
34156
- if (subscriptionRef.current) {
34157
- try {
34158
- subscriptionRef.current.unsubscribe();
34159
- } catch (e28) {
34160
- }
34161
- subscriptionRef.current = null;
34162
- }
34139
+ tearDownSubscription();
34163
34140
  if (clientRef.current && currentWsUrlRef.current) {
34164
- releaseClient(currentWsUrlRef.current);
34141
+ _chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
34165
34142
  clientRef.current = null;
34166
34143
  currentWsUrlRef.current = "";
34167
34144
  }
34168
34145
  };
34169
- }, [enabled, getNatsWsUrl, acquireClient, releaseClient]);
34146
+ }, [enabled, wsUrl]);
34170
34147
  _react.useEffect.call(void 0, () => {
34171
34148
  if (!enabled || !dialogId || !isConnected) {
34172
34149
  if (subscriptionRef.current) {
34173
34150
  try {
34174
34151
  subscriptionRef.current.unsubscribe();
34175
- } catch (e29) {
34152
+ } catch (e25) {
34176
34153
  }
34177
34154
  subscriptionRef.current = null;
34178
34155
  }
@@ -34209,7 +34186,7 @@ function useJetStreamDialogSubscription({
34209
34186
  parsed.streamSeq = streamSeq;
34210
34187
  }
34211
34188
  cb(parsed, topic);
34212
- } catch (e30) {
34189
+ } catch (e26) {
34213
34190
  }
34214
34191
  },
34215
34192
  {
@@ -34224,14 +34201,14 @@ function useJetStreamDialogSubscription({
34224
34201
  if (cancelled) {
34225
34202
  try {
34226
34203
  handle.unsubscribe();
34227
- } catch (e31) {
34204
+ } catch (e27) {
34228
34205
  }
34229
34206
  return;
34230
34207
  }
34231
34208
  subscriptionRef.current = handle;
34232
34209
  setIsSubscribed(true);
34233
- _optionalChain([onSubscribedRef, 'access', _761 => _761.current, 'optionalCall', _762 => _762()]);
34234
- } catch (e32) {
34210
+ _optionalChain([onSubscribedRef, 'access', _770 => _770.current, 'optionalCall', _771 => _771()]);
34211
+ } catch (e28) {
34235
34212
  if (!cancelled) {
34236
34213
  setIsSubscribed(false);
34237
34214
  }
@@ -34243,7 +34220,7 @@ function useJetStreamDialogSubscription({
34243
34220
  if (subscriptionRef.current) {
34244
34221
  try {
34245
34222
  subscriptionRef.current.unsubscribe();
34246
- } catch (e33) {
34223
+ } catch (e29) {
34247
34224
  }
34248
34225
  subscriptionRef.current = null;
34249
34226
  }
@@ -34259,7 +34236,6 @@ function useJetStreamDialogSubscription({
34259
34236
 
34260
34237
  // src/components/chat/hooks/use-nats-dialog-subscription.ts
34261
34238
 
34262
- var shared2 = null;
34263
34239
  function useNatsDialogSubscription({
34264
34240
  enabled,
34265
34241
  dialogId,
@@ -34307,56 +34283,16 @@ function useNatsDialogSubscription({
34307
34283
  _react.useEffect.call(void 0, () => {
34308
34284
  reconnectionBackoffRef.current = reconnectionBackoff;
34309
34285
  }, [reconnectionBackoff]);
34310
- const acquireClient = _react.useCallback.call(void 0, (url) => {
34311
- if (_optionalChain([shared2, 'optionalAccess', _763 => _763.wsUrl]) !== url) {
34312
- if (shared2) {
34313
- shared2.closeTimer && clearTimeout(shared2.closeTimer);
34314
- const old = shared2;
34315
- shared2 = null;
34316
- void old.client.close().catch(() => {
34317
- });
34318
- }
34319
- const { name = "openframe-frontend", user = "machine", pass = "" } = clientConfig;
34320
- const client = _chunkEH3RWVF3cjs.createNatsClient.call(void 0, {
34321
- servers: url,
34322
- name,
34323
- user,
34324
- pass,
34325
- connectTimeoutMs: NETWORK_CONFIG.CONNECT_TIMEOUT_MS,
34326
- reconnect: false,
34327
- pingIntervalMs: NETWORK_CONFIG.PING_INTERVAL_MS,
34328
- maxPingOut: NETWORK_CONFIG.MAX_PING_OUT
34329
- });
34330
- shared2 = { wsUrl: url, client, connectPromise: null, refCount: 0, closeTimer: null, retryTimer: null };
34331
- }
34332
- shared2.refCount += 1;
34333
- shared2.closeTimer && clearTimeout(shared2.closeTimer);
34334
- shared2.closeTimer = null;
34335
- return shared2;
34286
+ const clientConfigRef = _react.useRef.call(void 0, clientConfig);
34287
+ _react.useEffect.call(void 0, () => {
34288
+ clientConfigRef.current = clientConfig;
34336
34289
  }, [clientConfig]);
34337
- const releaseClient = _react.useCallback.call(void 0, (url) => {
34338
- if (!shared2 || shared2.wsUrl !== url) return;
34339
- shared2.refCount = Math.max(0, shared2.refCount - 1);
34340
- if (shared2.refCount > 0) return;
34341
- shared2.closeTimer = setTimeout(() => {
34342
- const s = shared2;
34343
- shared2 = null;
34344
- if (s) {
34345
- if (s.retryTimer) {
34346
- clearTimeout(s.retryTimer);
34347
- s.retryTimer = null;
34348
- }
34349
- void s.client.close().catch(() => {
34350
- });
34351
- }
34352
- }, NETWORK_CONFIG.SHARED_CLOSE_DELAY_MS);
34353
- }, []);
34354
34290
  const currentWsUrlRef = _react.useRef.call(void 0, "");
34291
+ const wsUrl = getNatsWsUrl();
34355
34292
  _react.useEffect.call(void 0, () => {
34356
- const wsUrl = getNatsWsUrl();
34357
34293
  if (!enabled || !wsUrl) {
34358
34294
  if (currentWsUrlRef.current && clientRef.current) {
34359
- releaseClient(currentWsUrlRef.current);
34295
+ _chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
34360
34296
  clientRef.current = null;
34361
34297
  currentWsUrlRef.current = "";
34362
34298
  setIsConnected(false);
@@ -34367,131 +34303,69 @@ function useNatsDialogSubscription({
34367
34303
  return;
34368
34304
  }
34369
34305
  if (currentWsUrlRef.current && currentWsUrlRef.current !== wsUrl && clientRef.current) {
34370
- releaseClient(currentWsUrlRef.current);
34306
+ _chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
34371
34307
  clientRef.current = null;
34372
34308
  setIsConnected(false);
34373
34309
  }
34374
34310
  currentWsUrlRef.current = wsUrl;
34375
- const sharedConn = acquireClient(wsUrl);
34311
+ const cfg = clientConfigRef.current;
34312
+ const sharedConn = _chunkOZ3GH6OQcjs.acquireClient.call(void 0, wsUrl, {
34313
+ name: _nullishCoalesce(cfg.name, () => ( "openframe-frontend")),
34314
+ user: _nullishCoalesce(cfg.user, () => ( "machine")),
34315
+ pass: _nullishCoalesce(cfg.pass, () => ( ""))
34316
+ });
34376
34317
  const client = sharedConn.client;
34377
34318
  clientRef.current = client;
34378
- setIsConnected(false);
34379
- let closed = false;
34380
- let retryAttempt = 0;
34381
- function scheduleRetry() {
34382
- if (closed) return;
34383
- if (shared2 !== sharedConn) return;
34384
- if (sharedConn.retryTimer) {
34385
- clearTimeout(sharedConn.retryTimer);
34386
- sharedConn.retryTimer = null;
34387
- }
34388
- const cfg = _nullishCoalesce(reconnectionBackoffRef.current, () => ( {}));
34389
- const fastRetries = _nullishCoalesce(cfg.fastRetries, () => ( 0));
34390
- const fastDelay = _nullishCoalesce(cfg.fastRetryDelayMs, () => ( NETWORK_CONFIG.RETRY_INITIAL_DELAY_MS));
34391
- const baseDelay = _nullishCoalesce(cfg.initialDelayMs, () => ( NETWORK_CONFIG.RETRY_INITIAL_DELAY_MS));
34392
- const maxDelay = _nullishCoalesce(cfg.maxDelayMs, () => ( NETWORK_CONFIG.RETRY_MAX_DELAY_MS));
34393
- const multiplier = _nullishCoalesce(cfg.multiplier, () => ( NETWORK_CONFIG.RETRY_BACKOFF_MULTIPLIER));
34394
- const delay2 = retryAttempt < fastRetries ? fastDelay : Math.min(baseDelay * multiplier ** (retryAttempt - fastRetries), maxDelay);
34395
- const jitteredDelay = delay2 * (0.5 + Math.random() * 0.5);
34396
- retryAttempt++;
34397
- sharedConn.retryTimer = setTimeout(async () => {
34398
- sharedConn.retryTimer = null;
34399
- if (closed) return;
34400
- if (shared2 !== sharedConn) return;
34401
- try {
34402
- await _optionalChain([onBeforeReconnectRef, 'access', _764 => _764.current, 'optionalCall', _765 => _765()]);
34403
- } catch (e34) {
34404
- }
34405
- if (closed) return;
34406
- if (shared2 !== sharedConn) return;
34407
- const freshUrl = getNatsWsUrlRef.current();
34408
- if (freshUrl !== wsUrl) return;
34319
+ setIsConnected(client.isConnected());
34320
+ const tearDownSubscriptions = () => {
34321
+ subscriptionRefs.current.forEach((sub) => {
34409
34322
  try {
34410
- sharedConn.connectPromise = null;
34411
- sharedConn.connectPromise = client.connect();
34412
- await sharedConn.connectPromise;
34413
- if (!closed && shared2 === sharedConn) {
34414
- retryAttempt = 0;
34415
- setIsConnected(true);
34416
- }
34417
- } catch (e35) {
34418
- sharedConn.connectPromise = null;
34419
- if (!closed && shared2 === sharedConn) {
34420
- scheduleRetry();
34421
- }
34323
+ _optionalChain([sub, 'optionalAccess', _772 => _772.unsubscribe, 'call', _773 => _773()]);
34324
+ } catch (e30) {
34422
34325
  }
34423
- }, jitteredDelay);
34424
- }
34425
- const unsubscribeStatus = client.onStatus((event) => {
34426
- const connected = event.status === "connected";
34427
- const disconnected = ["closed", "disconnected", "error"].includes(event.status);
34428
- if (connected) {
34429
- setIsConnected(true);
34430
- if (hadConnectionBeforeRef.current) {
34431
- setReconnectionCount((c) => c + 1);
34432
- }
34433
- hadConnectionBeforeRef.current = true;
34434
- retryAttempt = 0;
34435
- _optionalChain([onConnectRef, 'access', _766 => _766.current, 'optionalCall', _767 => _767()]);
34436
- }
34437
- if (disconnected) {
34438
- setIsConnected(false);
34439
- setIsSubscribed(false);
34440
- subscriptionRefs.current.forEach((sub) => {
34441
- try {
34442
- _optionalChain([sub, 'optionalAccess', _768 => _768.unsubscribe, 'call', _769 => _769()]);
34443
- } catch (e36) {
34444
- }
34445
- });
34446
- subscriptionRefs.current.clear();
34447
- lastSubscribedDialogIdRef.current = null;
34448
- _optionalChain([abortControllerRef, 'access', _770 => _770.current, 'optionalAccess', _771 => _771.abort, 'call', _772 => _772()]);
34449
- abortControllerRef.current = null;
34450
- _optionalChain([onDisconnectRef, 'access', _773 => _773.current, 'optionalCall', _774 => _774()]);
34451
- scheduleRetry();
34452
- }
34453
- });
34454
- (async () => {
34455
- try {
34456
- sharedConn.connectPromise || (sharedConn.connectPromise = client.connect());
34457
- await sharedConn.connectPromise;
34458
- if (!closed) {
34326
+ });
34327
+ subscriptionRefs.current.clear();
34328
+ lastSubscribedDialogIdRef.current = null;
34329
+ _optionalChain([abortControllerRef, 'access', _774 => _774.current, 'optionalAccess', _775 => _775.abort, 'call', _776 => _776()]);
34330
+ abortControllerRef.current = null;
34331
+ };
34332
+ const isDisconnectStatus = (status) => status === "closed" || status === "disconnected" || status === "error";
34333
+ const lifecycle = _chunkOZ3GH6OQcjs.startConnectionLifecycle.call(void 0, {
34334
+ conn: sharedConn,
34335
+ wsUrl,
34336
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _777 => _777.current, 'optionalCall', _778 => _778()]),
34337
+ backoff: reconnectionBackoffRef.current,
34338
+ getFreshUrl: () => getNatsWsUrlRef.current(),
34339
+ shouldRetryOn: isDisconnectStatus,
34340
+ onStatusChange: (status) => {
34341
+ if (status === "connected") {
34459
34342
  setIsConnected(true);
34343
+ if (hadConnectionBeforeRef.current) {
34344
+ setReconnectionCount((c) => c + 1);
34345
+ }
34460
34346
  hadConnectionBeforeRef.current = true;
34347
+ _optionalChain([onConnectRef, 'access', _779 => _779.current, 'optionalCall', _780 => _780()]);
34461
34348
  }
34462
- } catch (e37) {
34463
- sharedConn.connectPromise = null;
34464
- if (!closed) {
34349
+ if (isDisconnectStatus(status)) {
34465
34350
  setIsConnected(false);
34466
- _optionalChain([onDisconnectRef, 'access', _775 => _775.current, 'optionalCall', _776 => _776()]);
34467
- scheduleRetry();
34351
+ setIsSubscribed(false);
34352
+ tearDownSubscriptions();
34353
+ _optionalChain([onDisconnectRef, 'access', _781 => _781.current, 'optionalCall', _782 => _782()]);
34468
34354
  }
34469
34355
  }
34470
- })();
34356
+ });
34471
34357
  return () => {
34472
- closed = true;
34358
+ lifecycle.stop();
34473
34359
  setIsConnected(false);
34474
34360
  setIsSubscribed(false);
34475
- unsubscribeStatus();
34476
- if (sharedConn.retryTimer) {
34477
- clearTimeout(sharedConn.retryTimer);
34478
- sharedConn.retryTimer = null;
34479
- }
34480
- subscriptionRefs.current.forEach((sub) => {
34481
- try {
34482
- _optionalChain([sub, 'optionalAccess', _777 => _777.unsubscribe, 'call', _778 => _778()]);
34483
- } catch (e38) {
34484
- }
34485
- });
34486
- subscriptionRefs.current.clear();
34487
- lastSubscribedDialogIdRef.current = null;
34361
+ tearDownSubscriptions();
34488
34362
  if (clientRef.current && currentWsUrlRef.current) {
34489
- releaseClient(currentWsUrlRef.current);
34363
+ _chunkOZ3GH6OQcjs.releaseClient.call(void 0, currentWsUrlRef.current);
34490
34364
  clientRef.current = null;
34491
34365
  currentWsUrlRef.current = "";
34492
34366
  }
34493
34367
  };
34494
- }, [enabled, getNatsWsUrl, acquireClient, releaseClient]);
34368
+ }, [enabled, wsUrl]);
34495
34369
  const topicsKey = topics.join(",");
34496
34370
  const lastSubscribedDialogIdRef = _react.useRef.call(void 0, null);
34497
34371
  const isConnectedRef = _react.useRef.call(void 0, isConnected);
@@ -34507,13 +34381,13 @@ function useNatsDialogSubscription({
34507
34381
  setIsSubscribed(false);
34508
34382
  subscriptionRefs.current.forEach((sub) => {
34509
34383
  try {
34510
- _optionalChain([sub, 'optionalAccess', _779 => _779.unsubscribe, 'call', _780 => _780()]);
34511
- } catch (e39) {
34384
+ _optionalChain([sub, 'optionalAccess', _783 => _783.unsubscribe, 'call', _784 => _784()]);
34385
+ } catch (e31) {
34512
34386
  }
34513
34387
  });
34514
34388
  subscriptionRefs.current.clear();
34515
34389
  lastSubscribedDialogIdRef.current = null;
34516
- _optionalChain([abortControllerRef, 'access', _781 => _781.current, 'optionalAccess', _782 => _782.abort, 'call', _783 => _783()]);
34390
+ _optionalChain([abortControllerRef, 'access', _785 => _785.current, 'optionalAccess', _786 => _786.abort, 'call', _787 => _787()]);
34517
34391
  abortControllerRef.current = null;
34518
34392
  }
34519
34393
  return;
@@ -34525,12 +34399,12 @@ function useNatsDialogSubscription({
34525
34399
  if (subscriptionRefs.current.size > 0) {
34526
34400
  subscriptionRefs.current.forEach((sub) => {
34527
34401
  try {
34528
- _optionalChain([sub, 'optionalAccess', _784 => _784.unsubscribe, 'call', _785 => _785()]);
34529
- } catch (e40) {
34402
+ _optionalChain([sub, 'optionalAccess', _788 => _788.unsubscribe, 'call', _789 => _789()]);
34403
+ } catch (e32) {
34530
34404
  }
34531
34405
  });
34532
34406
  subscriptionRefs.current.clear();
34533
- _optionalChain([abortControllerRef, 'access', _786 => _786.current, 'optionalAccess', _787 => _787.abort, 'call', _788 => _788()]);
34407
+ _optionalChain([abortControllerRef, 'access', _790 => _790.current, 'optionalAccess', _791 => _791.abort, 'call', _792 => _792()]);
34534
34408
  }
34535
34409
  abortControllerRef.current = new AbortController();
34536
34410
  const abort = abortControllerRef.current;
@@ -34549,7 +34423,7 @@ function useNatsDialogSubscription({
34549
34423
  const dataStr = decoder.decode(msg.data);
34550
34424
  const parsed = JSON.parse(dataStr);
34551
34425
  onEventRef.current(parsed, messageType);
34552
- } catch (e41) {
34426
+ } catch (e33) {
34553
34427
  }
34554
34428
  };
34555
34429
  topics.forEach((topic) => {
@@ -34562,7 +34436,7 @@ function useNatsDialogSubscription({
34562
34436
  });
34563
34437
  lastSubscribedDialogIdRef.current = dialogId;
34564
34438
  setIsSubscribed(true);
34565
- _optionalChain([onSubscribedRef, 'access', _789 => _789.current, 'optionalCall', _790 => _790()]);
34439
+ _optionalChain([onSubscribedRef, 'access', _793 => _793.current, 'optionalCall', _794 => _794()]);
34566
34440
  };
34567
34441
  if (isConnectedRef.current) {
34568
34442
  createSubscriptions();
@@ -34572,8 +34446,8 @@ function useNatsDialogSubscription({
34572
34446
  abort.abort();
34573
34447
  subscriptionRefs.current.forEach((sub) => {
34574
34448
  try {
34575
- _optionalChain([sub, 'optionalAccess', _791 => _791.unsubscribe, 'call', _792 => _792()]);
34576
- } catch (e42) {
34449
+ _optionalChain([sub, 'optionalAccess', _795 => _795.unsubscribe, 'call', _796 => _796()]);
34450
+ } catch (e34) {
34577
34451
  }
34578
34452
  });
34579
34453
  subscriptionRefs.current.clear();
@@ -34600,7 +34474,7 @@ function useNatsDialogSubscription({
34600
34474
  const dataStr = decoder.decode(msg.data);
34601
34475
  const parsed = JSON.parse(dataStr);
34602
34476
  onEventRef.current(parsed, messageType);
34603
- } catch (e43) {
34477
+ } catch (e35) {
34604
34478
  }
34605
34479
  };
34606
34480
  topics.forEach((topic) => {
@@ -34613,7 +34487,7 @@ function useNatsDialogSubscription({
34613
34487
  });
34614
34488
  lastSubscribedDialogIdRef.current = dialogId2;
34615
34489
  setIsSubscribed(true);
34616
- _optionalChain([onSubscribedRef, 'access', _793 => _793.current, 'optionalCall', _794 => _794()]);
34490
+ _optionalChain([onSubscribedRef, 'access', _797 => _797.current, 'optionalCall', _798 => _798()]);
34617
34491
  } else if (subscriptionRefs.current.size > 0) {
34618
34492
  setIsSubscribed(true);
34619
34493
  }
@@ -34621,10 +34495,10 @@ function useNatsDialogSubscription({
34621
34495
  return { isConnected, isSubscribed, reconnectionCount };
34622
34496
  }
34623
34497
  function buildNatsWsUrl(apiBaseUrl, options) {
34624
- const path = _optionalChain([options, 'optionalAccess', _795 => _795.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
34498
+ const path = _optionalChain([options, 'optionalAccess', _799 => _799.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
34625
34499
  const u = new URL(path, apiBaseUrl);
34626
34500
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
34627
- if (_optionalChain([options, 'optionalAccess', _796 => _796.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _797 => _797.token])) {
34501
+ if (_optionalChain([options, 'optionalAccess', _800 => _800.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _801 => _801.token])) {
34628
34502
  u.searchParams.set("authorization", options.token);
34629
34503
  }
34630
34504
  return u.toString();
@@ -34940,8 +34814,8 @@ var MessageSegmentAccumulator = class {
34940
34814
  type: "tool_execution",
34941
34815
  data: {
34942
34816
  ...toolData,
34943
- toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _798 => _798.data, 'access', _799 => _799.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _800 => _800.toolTitle]))),
34944
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _801 => _801.parameters])
34817
+ toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _802 => _802.data, 'access', _803 => _803.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _804 => _804.toolTitle]))),
34818
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _805 => _805.parameters])
34945
34819
  }
34946
34820
  };
34947
34821
  if (existingIndex !== -1) {
@@ -34965,8 +34839,8 @@ var MessageSegmentAccumulator = class {
34965
34839
  if (seg.type !== "approval_batch") return seg;
34966
34840
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
34967
34841
  if (!hasCall) return seg;
34968
- const prev = _optionalChain([seg, 'access', _802 => _802.data, 'access', _803 => _803.executions, 'optionalAccess', _804 => _804[execId]]);
34969
- const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _805 => _805.result]), success: _optionalChain([prev, 'optionalAccess', _806 => _806.success]) };
34842
+ const prev = _optionalChain([seg, 'access', _806 => _806.data, 'access', _807 => _807.executions, 'optionalAccess', _808 => _808[execId]]);
34843
+ const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _809 => _809.result]), success: _optionalChain([prev, 'optionalAccess', _810 => _810.success]) };
34970
34844
  matched = true;
34971
34845
  return {
34972
34846
  ...seg,
@@ -35086,10 +34960,10 @@ var MessageSegmentAccumulator = class {
35086
34960
  const segment = {
35087
34961
  type: "approval_request",
35088
34962
  data: {
35089
- command: _optionalChain([pendingApproval, 'optionalAccess', _807 => _807.command]) || "",
35090
- explanation: _optionalChain([pendingApproval, 'optionalAccess', _808 => _808.explanation]),
34963
+ command: _optionalChain([pendingApproval, 'optionalAccess', _811 => _811.command]) || "",
34964
+ explanation: _optionalChain([pendingApproval, 'optionalAccess', _812 => _812.explanation]),
35091
34965
  requestId,
35092
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _809 => _809.approvalType]) || approvalType
34966
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _813 => _813.approvalType]) || approvalType
35093
34967
  },
35094
34968
  status,
35095
34969
  onApprove: this.callbacks.onApprove,
@@ -35277,7 +35151,7 @@ function useRealtimeChunkProcessor(options) {
35277
35151
  if (initialState.escalatedApprovals) {
35278
35152
  pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
35279
35153
  initialState.escalatedApprovals.forEach((data, requestId) => {
35280
- _optionalChain([callbacks, 'access', _810 => _810.onEscalatedApproval, 'optionalCall', _811 => _811(requestId, data)]);
35154
+ _optionalChain([callbacks, 'access', _814 => _814.onEscalatedApproval, 'optionalCall', _815 => _815(requestId, data)]);
35281
35155
  });
35282
35156
  }
35283
35157
  hasEverStreamedRef.current = true;
@@ -35299,32 +35173,32 @@ function useRealtimeChunkProcessor(options) {
35299
35173
  case "message_start":
35300
35174
  isInStreamRef.current = true;
35301
35175
  hasEverStreamedRef.current = true;
35302
- _optionalChain([callbacks, 'access', _812 => _812.onStreamStart, 'optionalCall', _813 => _813()]);
35176
+ _optionalChain([callbacks, 'access', _816 => _816.onStreamStart, 'optionalCall', _817 => _817()]);
35303
35177
  accumulator.resetSegments();
35304
35178
  break;
35305
35179
  case "message_end":
35306
35180
  isInStreamRef.current = false;
35307
- _optionalChain([callbacks, 'access', _814 => _814.onStreamEnd, 'optionalCall', _815 => _815()]);
35181
+ _optionalChain([callbacks, 'access', _818 => _818.onStreamEnd, 'optionalCall', _819 => _819()]);
35308
35182
  accumulator.resetSegments();
35309
35183
  break;
35310
35184
  case "metadata":
35311
- _optionalChain([callbacks, 'access', _816 => _816.onMetadata, 'optionalCall', _817 => _817(action)]);
35185
+ _optionalChain([callbacks, 'access', _820 => _820.onMetadata, 'optionalCall', _821 => _821(action)]);
35312
35186
  break;
35313
35187
  case "text": {
35314
35188
  const segments = accumulator.appendText(action.text);
35315
35189
  if (isInStreamRef.current || !hasEverStreamedRef.current) {
35316
- _optionalChain([callbacks, 'access', _818 => _818.onSegmentsUpdate, 'optionalCall', _819 => _819(segments)]);
35190
+ _optionalChain([callbacks, 'access', _822 => _822.onSegmentsUpdate, 'optionalCall', _823 => _823(segments)]);
35317
35191
  } else {
35318
- _optionalChain([callbacks, 'access', _820 => _820.onSegmentsUpdate, 'optionalCall', _821 => _821([{ type: "text", text: action.text }], { append: true })]);
35192
+ _optionalChain([callbacks, 'access', _824 => _824.onSegmentsUpdate, 'optionalCall', _825 => _825([{ type: "text", text: action.text }], { append: true })]);
35319
35193
  }
35320
35194
  break;
35321
35195
  }
35322
35196
  case "thinking": {
35323
35197
  const segments = accumulator.appendThinking(action.text);
35324
35198
  if (isInStreamRef.current || !hasEverStreamedRef.current) {
35325
- _optionalChain([callbacks, 'access', _822 => _822.onSegmentsUpdate, 'optionalCall', _823 => _823(segments)]);
35199
+ _optionalChain([callbacks, 'access', _826 => _826.onSegmentsUpdate, 'optionalCall', _827 => _827(segments)]);
35326
35200
  } else {
35327
- _optionalChain([callbacks, 'access', _824 => _824.onSegmentsUpdate, 'optionalCall', _825 => _825([{ type: "thinking", text: action.text }], { append: true })]);
35201
+ _optionalChain([callbacks, 'access', _828 => _828.onSegmentsUpdate, 'optionalCall', _829 => _829([{ type: "thinking", text: action.text }], { append: true })]);
35328
35202
  }
35329
35203
  break;
35330
35204
  }
@@ -35334,7 +35208,7 @@ function useRealtimeChunkProcessor(options) {
35334
35208
  break;
35335
35209
  }
35336
35210
  const segments = accumulator.addToolExecution(action.segment);
35337
- _optionalChain([callbacks, 'access', _826 => _826.onSegmentsUpdate, 'optionalCall', _827 => _827(segments)]);
35211
+ _optionalChain([callbacks, 'access', _830 => _830.onSegmentsUpdate, 'optionalCall', _831 => _831(segments)]);
35338
35212
  break;
35339
35213
  }
35340
35214
  case "approval_request": {
@@ -35348,10 +35222,10 @@ function useRealtimeChunkProcessor(options) {
35348
35222
  approvalType,
35349
35223
  status
35350
35224
  );
35351
- _optionalChain([callbacks, 'access', _828 => _828.onSegmentsUpdate, 'optionalCall', _829 => _829(segments)]);
35225
+ _optionalChain([callbacks, 'access', _832 => _832.onSegmentsUpdate, 'optionalCall', _833 => _833(segments)]);
35352
35226
  } else {
35353
35227
  pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
35354
- _optionalChain([callbacks, 'access', _830 => _830.onEscalatedApproval, 'optionalCall', _831 => _831(requestId, { command, explanation, approvalType })]);
35228
+ _optionalChain([callbacks, 'access', _834 => _834.onEscalatedApproval, 'optionalCall', _835 => _835(requestId, { command, explanation, approvalType })]);
35355
35229
  }
35356
35230
  break;
35357
35231
  }
@@ -35363,20 +35237,20 @@ function useRealtimeChunkProcessor(options) {
35363
35237
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
35364
35238
  pendingEscalatedRef.current.set(requestId, {
35365
35239
  command: summary,
35366
- explanation: _optionalChain([required, 'optionalAccess', _832 => _832.toolExplanation]),
35240
+ explanation: _optionalChain([required, 'optionalAccess', _836 => _836.toolExplanation]),
35367
35241
  approvalType,
35368
35242
  toolCalls
35369
35243
  });
35370
- _optionalChain([callbacks, 'access', _833 => _833.onEscalatedApproval, 'optionalCall', _834 => _834(requestId, {
35244
+ _optionalChain([callbacks, 'access', _837 => _837.onEscalatedApproval, 'optionalCall', _838 => _838(requestId, {
35371
35245
  command: summary,
35372
- explanation: _optionalChain([required, 'optionalAccess', _835 => _835.toolExplanation]),
35246
+ explanation: _optionalChain([required, 'optionalAccess', _839 => _839.toolExplanation]),
35373
35247
  approvalType
35374
35248
  })]);
35375
35249
  break;
35376
35250
  }
35377
35251
  if (batchApprovalsEnabled) {
35378
35252
  const segments2 = accumulator.addApprovalBatch(requestId, approvalType, toolCalls, status);
35379
- _optionalChain([callbacks, 'access', _836 => _836.onSegmentsUpdate, 'optionalCall', _837 => _837(segments2)]);
35253
+ _optionalChain([callbacks, 'access', _840 => _840.onSegmentsUpdate, 'optionalCall', _841 => _841(segments2)]);
35380
35254
  break;
35381
35255
  }
35382
35256
  let segments = accumulator.getSegments();
@@ -35390,7 +35264,7 @@ function useRealtimeChunkProcessor(options) {
35390
35264
  status
35391
35265
  );
35392
35266
  }
35393
- _optionalChain([callbacks, 'access', _838 => _838.onSegmentsUpdate, 'optionalCall', _839 => _839(segments)]);
35267
+ _optionalChain([callbacks, 'access', _842 => _842.onSegmentsUpdate, 'optionalCall', _843 => _843(segments)]);
35394
35268
  break;
35395
35269
  }
35396
35270
  case "approval_result": {
@@ -35399,7 +35273,7 @@ function useRealtimeChunkProcessor(options) {
35399
35273
  const status = approved ? "approved" : "rejected";
35400
35274
  if (escalatedData) {
35401
35275
  pendingEscalatedRef.current.delete(requestId);
35402
- _optionalChain([callbacks, 'access', _840 => _840.onEscalatedApprovalResult, 'optionalCall', _841 => _841(requestId, approved, {
35276
+ _optionalChain([callbacks, 'access', _844 => _844.onEscalatedApprovalResult, 'optionalCall', _845 => _845(requestId, approved, {
35403
35277
  command: escalatedData.command,
35404
35278
  explanation: escalatedData.explanation,
35405
35279
  approvalType: escalatedData.approvalType
@@ -35412,7 +35286,7 @@ function useRealtimeChunkProcessor(options) {
35412
35286
  escalatedData.toolCalls,
35413
35287
  status
35414
35288
  );
35415
- _optionalChain([callbacks, 'access', _842 => _842.onSegmentsUpdate, 'optionalCall', _843 => _843(segments)]);
35289
+ _optionalChain([callbacks, 'access', _846 => _846.onSegmentsUpdate, 'optionalCall', _847 => _847(segments)]);
35416
35290
  } else {
35417
35291
  let segments = accumulator.getSegments();
35418
35292
  for (const call of escalatedData.toolCalls) {
@@ -35425,7 +35299,7 @@ function useRealtimeChunkProcessor(options) {
35425
35299
  status
35426
35300
  );
35427
35301
  }
35428
- _optionalChain([callbacks, 'access', _844 => _844.onSegmentsUpdate, 'optionalCall', _845 => _845(segments)]);
35302
+ _optionalChain([callbacks, 'access', _848 => _848.onSegmentsUpdate, 'optionalCall', _849 => _849(segments)]);
35429
35303
  }
35430
35304
  } else {
35431
35305
  const segments = accumulator.addApprovalRequest(
@@ -35435,65 +35309,65 @@ function useRealtimeChunkProcessor(options) {
35435
35309
  escalatedData.approvalType,
35436
35310
  status
35437
35311
  );
35438
- _optionalChain([callbacks, 'access', _846 => _846.onSegmentsUpdate, 'optionalCall', _847 => _847(segments)]);
35312
+ _optionalChain([callbacks, 'access', _850 => _850.onSegmentsUpdate, 'optionalCall', _851 => _851(segments)]);
35439
35313
  }
35440
35314
  } else {
35441
35315
  accumulator.updateApprovalStatus(requestId, status);
35442
35316
  if (!callbacks.onApprovalResolved) {
35443
- _optionalChain([callbacks, 'access', _848 => _848.onSegmentsUpdate, 'optionalCall', _849 => _849(accumulator.getSegments())]);
35317
+ _optionalChain([callbacks, 'access', _852 => _852.onSegmentsUpdate, 'optionalCall', _853 => _853(accumulator.getSegments())]);
35444
35318
  }
35445
35319
  }
35446
- _optionalChain([callbacks, 'access', _850 => _850.onApprovalResolved, 'optionalCall', _851 => _851(requestId, status, approvalType)]);
35320
+ _optionalChain([callbacks, 'access', _854 => _854.onApprovalResolved, 'optionalCall', _855 => _855(requestId, status, approvalType)]);
35447
35321
  break;
35448
35322
  }
35449
35323
  case "error": {
35450
35324
  let message2;
35451
- if ("details" in action && _optionalChain([action, 'optionalAccess', _852 => _852.details])) {
35325
+ if ("details" in action && _optionalChain([action, 'optionalAccess', _856 => _856.details])) {
35452
35326
  try {
35453
- message2 = _optionalChain([JSON, 'access', _853 => _853.parse, 'call', _854 => _854(action.details), 'optionalAccess', _855 => _855.error, 'optionalAccess', _856 => _856.message]);
35454
- } catch (e44) {
35327
+ message2 = _optionalChain([JSON, 'access', _857 => _857.parse, 'call', _858 => _858(action.details), 'optionalAccess', _859 => _859.error, 'optionalAccess', _860 => _860.message]);
35328
+ } catch (e36) {
35455
35329
  message2 = action.details;
35456
35330
  }
35457
35331
  }
35458
35332
  const segments = accumulator.addError(action.error, message2);
35459
- _optionalChain([callbacks, 'access', _857 => _857.onSegmentsUpdate, 'optionalCall', _858 => _858(segments)]);
35460
- _optionalChain([callbacks, 'access', _859 => _859.onError, 'optionalCall', _860 => _860(action.error, message2)]);
35333
+ _optionalChain([callbacks, 'access', _861 => _861.onSegmentsUpdate, 'optionalCall', _862 => _862(segments)]);
35334
+ _optionalChain([callbacks, 'access', _863 => _863.onError, 'optionalCall', _864 => _864(action.error, message2)]);
35461
35335
  break;
35462
35336
  }
35463
35337
  case "system": {
35464
- _optionalChain([callbacks, 'access', _861 => _861.onSystemMessage, 'optionalCall', _862 => _862(action.text)]);
35338
+ _optionalChain([callbacks, 'access', _865 => _865.onSystemMessage, 'optionalCall', _866 => _866(action.text)]);
35465
35339
  break;
35466
35340
  }
35467
35341
  case "direct_message": {
35468
- _optionalChain([callbacks, 'access', _863 => _863.onDirectMessage, 'optionalCall', _864 => _864(action.text, {
35342
+ _optionalChain([callbacks, 'access', _867 => _867.onDirectMessage, 'optionalCall', _868 => _868(action.text, {
35469
35343
  ownerType: action.ownerType,
35470
35344
  displayName: action.displayName
35471
35345
  })]);
35472
35346
  break;
35473
35347
  }
35474
35348
  case "message_request":
35475
- _optionalChain([callbacks, 'access', _865 => _865.onUserMessage, 'optionalCall', _866 => _866(action.text, {
35349
+ _optionalChain([callbacks, 'access', _869 => _869.onUserMessage, 'optionalCall', _870 => _870(action.text, {
35476
35350
  ownerType: action.ownerType,
35477
35351
  displayName: action.displayName
35478
35352
  })]);
35479
35353
  break;
35480
35354
  case "token_usage":
35481
- _optionalChain([callbacks, 'access', _867 => _867.onTokenUsage, 'optionalCall', _868 => _868(action.data)]);
35355
+ _optionalChain([callbacks, 'access', _871 => _871.onTokenUsage, 'optionalCall', _872 => _872(action.data)]);
35482
35356
  break;
35483
35357
  case "context_compaction_start": {
35484
35358
  const standalone = !isInStreamRef.current;
35485
35359
  const segments = accumulator.addContextCompaction();
35486
- _optionalChain([callbacks, 'access', _869 => _869.onSegmentsUpdate, 'optionalCall', _870 => _870(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
35360
+ _optionalChain([callbacks, 'access', _873 => _873.onSegmentsUpdate, 'optionalCall', _874 => _874(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
35487
35361
  break;
35488
35362
  }
35489
35363
  case "context_compaction_end": {
35490
35364
  const standalone = !isInStreamRef.current;
35491
35365
  const segments = accumulator.completeContextCompaction(action.summary);
35492
- _optionalChain([callbacks, 'access', _871 => _871.onSegmentsUpdate, 'optionalCall', _872 => _872(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
35366
+ _optionalChain([callbacks, 'access', _875 => _875.onSegmentsUpdate, 'optionalCall', _876 => _876(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
35493
35367
  break;
35494
35368
  }
35495
35369
  case "dialog_closed":
35496
- _optionalChain([callbacks, 'access', _873 => _873.onDialogClosed, 'optionalCall', _874 => _874()]);
35370
+ _optionalChain([callbacks, 'access', _877 => _877.onDialogClosed, 'optionalCall', _878 => _878()]);
35497
35371
  break;
35498
35372
  default:
35499
35373
  break;
@@ -35553,7 +35427,7 @@ function useSlashCommands(prefix, commandsUrl) {
35553
35427
  const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
35554
35428
  if (!cancelled) setCommands(next);
35555
35429
  } catch (err) {
35556
- if (!cancelled && _optionalChain([err, 'optionalAccess', _875 => _875.name]) !== "AbortError") {
35430
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _879 => _879.name]) !== "AbortError") {
35557
35431
  console.warn("[use-slash-commands] fetch failed:", err);
35558
35432
  }
35559
35433
  } finally {
@@ -35578,7 +35452,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
35578
35452
  var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
35579
35453
  function uploadWithProgress(url, file, token, onProgress, signal) {
35580
35454
  return new Promise((resolve, reject) => {
35581
- if (_optionalChain([signal, 'optionalAccess', _876 => _876.aborted])) {
35455
+ if (_optionalChain([signal, 'optionalAccess', _880 => _880.aborted])) {
35582
35456
  reject(new Error("Upload cancelled"));
35583
35457
  return;
35584
35458
  }
@@ -35592,7 +35466,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
35592
35466
  xhr.removeEventListener("error", handleError);
35593
35467
  xhr.removeEventListener("abort", handleAbort);
35594
35468
  xhr.removeEventListener("timeout", handleTimeout);
35595
- _optionalChain([signal, 'optionalAccess', _877 => _877.removeEventListener, 'call', _878 => _878("abort", handleSignalAbort)]);
35469
+ _optionalChain([signal, 'optionalAccess', _881 => _881.removeEventListener, 'call', _882 => _882("abort", handleSignalAbort)]);
35596
35470
  if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
35597
35471
  };
35598
35472
  const handleProgress = (event) => {
@@ -35628,7 +35502,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
35628
35502
  const handleSignalAbort = () => {
35629
35503
  xhr.abort();
35630
35504
  };
35631
- _optionalChain([signal, 'optionalAccess', _879 => _879.addEventListener, 'call', _880 => _880("abort", handleSignalAbort, { once: true })]);
35505
+ _optionalChain([signal, 'optionalAccess', _883 => _883.addEventListener, 'call', _884 => _884("abort", handleSignalAbort, { once: true })]);
35632
35506
  xhr.upload.addEventListener("progress", handleProgress);
35633
35507
  xhr.addEventListener("load", handleLoad);
35634
35508
  xhr.addEventListener("error", handleError);
@@ -35644,7 +35518,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
35644
35518
  });
35645
35519
  }
35646
35520
  function useChatAttachments() {
35647
- const runtime = _chunk6RZYJICVcjs.useRequiredChatRuntime.call(void 0, );
35521
+ const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
35648
35522
  const uploadUrlEndpoint = runtime.endpoints.attachmentUploadUrl;
35649
35523
  const [attachments, setAttachments] = _react.useState.call(void 0, []);
35650
35524
  const controllersRef = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
@@ -35672,12 +35546,12 @@ function useChatAttachments() {
35672
35546
  try {
35673
35547
  sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
35674
35548
  } catch (err) {
35675
- if (_optionalChain([ctrl, 'optionalAccess', _881 => _881.signal, 'access', _882 => _882.aborted])) return;
35549
+ if (_optionalChain([ctrl, 'optionalAccess', _885 => _885.signal, 'access', _886 => _886.aborted])) return;
35676
35550
  throw new Error(
35677
35551
  `Could not read file content: ${err instanceof Error ? err.message : String(err)}`
35678
35552
  );
35679
35553
  }
35680
- if (_optionalChain([ctrl, 'optionalAccess', _883 => _883.signal, 'access', _884 => _884.aborted])) return;
35554
+ if (_optionalChain([ctrl, 'optionalAccess', _887 => _887.signal, 'access', _888 => _888.aborted])) return;
35681
35555
  if (!sniffed) {
35682
35556
  throw new Error("Unrecognized file format");
35683
35557
  }
@@ -35691,7 +35565,7 @@ function useChatAttachments() {
35691
35565
  const urlResp = await embedAuthedFetch(uploadUrlEndpoint, {
35692
35566
  method: "POST",
35693
35567
  headers: { "Content-Type": "application/json" },
35694
- signal: _optionalChain([ctrl, 'optionalAccess', _885 => _885.signal]),
35568
+ signal: _optionalChain([ctrl, 'optionalAccess', _889 => _889.signal]),
35695
35569
  body: JSON.stringify({
35696
35570
  fileName: att.file.name,
35697
35571
  // Pass the SNIFFED MIME (not `file.type`, which can be a
@@ -35717,9 +35591,9 @@ function useChatAttachments() {
35717
35591
  (pct) => {
35718
35592
  updateOne(att.id, { progress: pct });
35719
35593
  },
35720
- _optionalChain([ctrl, 'optionalAccess', _886 => _886.signal])
35594
+ _optionalChain([ctrl, 'optionalAccess', _890 => _890.signal])
35721
35595
  );
35722
- if (_optionalChain([ctrl, 'optionalAccess', _887 => _887.signal, 'access', _888 => _888.aborted])) return;
35596
+ if (_optionalChain([ctrl, 'optionalAccess', _891 => _891.signal, 'access', _892 => _892.aborted])) return;
35723
35597
  updateOne(att.id, {
35724
35598
  status: "ready",
35725
35599
  progress: 100,
@@ -35727,7 +35601,7 @@ function useChatAttachments() {
35727
35601
  viewToken: mintData.viewToken
35728
35602
  });
35729
35603
  } catch (err) {
35730
- if (_optionalChain([ctrl, 'optionalAccess', _889 => _889.signal, 'access', _890 => _890.aborted])) return;
35604
+ if (_optionalChain([ctrl, 'optionalAccess', _893 => _893.signal, 'access', _894 => _894.aborted])) return;
35731
35605
  const message2 = err instanceof Error ? err.message : String(err);
35732
35606
  updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
35733
35607
  } finally {
@@ -35817,7 +35691,7 @@ function useChatAttachments() {
35817
35691
 
35818
35692
  var CLOSED = { isOpen: false, images: [], initialIndex: 0 };
35819
35693
  function useChatAttachmentImageGallery() {
35820
- const runtime = _chunk6RZYJICVcjs.useRequiredChatRuntime.call(void 0, );
35694
+ const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
35821
35695
  const viewUrlPrefix = runtime.endpoints.attachmentViewUrlPrefix;
35822
35696
  const panelRef = _react.useRef.call(void 0, null);
35823
35697
  const [state, setState] = _react.useState.call(void 0, CLOSED);
@@ -35876,9 +35750,9 @@ var ANON_DEFAULTS = {
35876
35750
  user: null
35877
35751
  };
35878
35752
  function useChatIdentity() {
35879
- const runtime = _chunk6RZYJICVcjs.useRequiredChatRuntime.call(void 0, );
35880
- const url = runtime.endpoints.chatIdentityUrl;
35881
- const proxyEmail = _nullishCoalesce(_optionalChain([getEmbedProxyAuth, 'call', _891 => _891(), 'optionalAccess', _892 => _892.email]), () => ( null));
35753
+ const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
35754
+ const url = runtime.endpoints.identityUrl;
35755
+ const proxyEmail = _nullishCoalesce(_optionalChain([getEmbedProxyAuth, 'call', _895 => _895(), 'optionalAccess', _896 => _896.email]), () => ( null));
35882
35756
  const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
35883
35757
  const [isLoading, setIsLoading] = _react.useState.call(void 0, true);
35884
35758
  _react.useEffect.call(void 0, () => {
@@ -35955,7 +35829,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
35955
35829
  yield chunk;
35956
35830
  }
35957
35831
  } catch (err) {
35958
- if (_optionalChain([err, 'optionalAccess', _893 => _893.name]) === "AbortError" || ctrl.signal.aborted) {
35832
+ if (_optionalChain([err, 'optionalAccess', _897 => _897.name]) === "AbortError" || ctrl.signal.aborted) {
35959
35833
  return;
35960
35834
  }
35961
35835
  const errorMessage = err instanceof Error ? err.message : "An error occurred";
@@ -36006,7 +35880,7 @@ function useChat({
36006
35880
  const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
36007
35881
  onMessagesChangeRef.current = onMessagesChange;
36008
35882
  _react.useEffect.call(void 0, () => {
36009
- _optionalChain([onMessagesChangeRef, 'access', _894 => _894.current, 'optionalCall', _895 => _895(messages)]);
35883
+ _optionalChain([onMessagesChangeRef, 'access', _898 => _898.current, 'optionalCall', _899 => _899(messages)]);
36010
35884
  }, [messages]);
36011
35885
  const {
36012
35886
  streamMessage,
@@ -36043,7 +35917,7 @@ function useChat({
36043
35917
  name: "You",
36044
35918
  content: text,
36045
35919
  timestamp: /* @__PURE__ */ new Date(),
36046
- ..._optionalChain([options, 'optionalAccess', _896 => _896.hidden]) ? { hidden: true } : {}
35920
+ ..._optionalChain([options, 'optionalAccess', _900 => _900.hidden]) ? { hidden: true } : {}
36047
35921
  };
36048
35922
  addMessage(userMessage);
36049
35923
  setIsTyping(true);
@@ -36105,7 +35979,7 @@ function useChat({
36105
35979
  currentTextSegment = "";
36106
35980
  }
36107
35981
  const seg = segment;
36108
- const proposalId = _optionalChain([seg, 'access', _897 => _897.data, 'optionalAccess', _898 => _898.requestId]);
35982
+ const proposalId = _optionalChain([seg, 'access', _901 => _901.data, 'optionalAccess', _902 => _902.requestId]);
36109
35983
  const updateApprovalMessage = (transform) => {
36110
35984
  setMessages((prev) => {
36111
35985
  for (let i = prev.length - 1; i >= 0; i--) {
@@ -36114,7 +35988,7 @@ function useChat({
36114
35988
  if (!Array.isArray(m.content)) continue;
36115
35989
  const segments = m.content;
36116
35990
  const hasMatch = segments.some(
36117
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _899 => _899.data, 'optionalAccess', _900 => _900.requestId]) === proposalId
35991
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _903 => _903.data, 'optionalAccess', _904 => _904.requestId]) === proposalId
36118
35992
  );
36119
35993
  if (!hasMatch) continue;
36120
35994
  const next = [...prev];
@@ -36156,11 +36030,11 @@ function useChat({
36156
36030
  if (!Array.isArray(m.content)) continue;
36157
36031
  const segments = m.content;
36158
36032
  const hasMatch = segments.some(
36159
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _901 => _901.data, 'optionalAccess', _902 => _902.requestId]) === decision.proposalId
36033
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _905 => _905.data, 'optionalAccess', _906 => _906.requestId]) === decision.proposalId
36160
36034
  );
36161
36035
  if (!hasMatch) continue;
36162
36036
  const flipped = segments.map(
36163
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _903 => _903.data, 'optionalAccess', _904 => _904.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
36037
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _907 => _907.data, 'optionalAccess', _908 => _908.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
36164
36038
  );
36165
36039
  const next = [...prev];
36166
36040
  next[i] = { ...m, content: flipped };
@@ -36322,8 +36196,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36322
36196
  })),
36323
36197
  { role: "user", content: message2 }
36324
36198
  ];
36325
- const targetPath = _optionalChain([extra, 'optionalAccess', _905 => _905.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
36326
- const requestBody = _optionalChain([extra, 'optionalAccess', _906 => _906.approvalAction]) ? {
36199
+ const targetPath = _optionalChain([extra, 'optionalAccess', _909 => _909.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
36200
+ const requestBody = _optionalChain([extra, 'optionalAccess', _910 => _910.approvalAction]) ? {
36327
36201
  proposal_id: extra.approvalAction.proposalId,
36328
36202
  action: extra.approvalAction.action,
36329
36203
  messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
@@ -36332,8 +36206,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36332
36206
  }))
36333
36207
  } : {
36334
36208
  messages: apiMessages,
36335
- ..._optionalChain([extra, 'optionalAccess', _907 => _907.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
36336
- ..._optionalChain([extra, 'optionalAccess', _908 => _908.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
36209
+ ..._optionalChain([extra, 'optionalAccess', _911 => _911.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
36210
+ ..._optionalChain([extra, 'optionalAccess', _912 => _912.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
36337
36211
  };
36338
36212
  const response = await embedAuthedFetch(targetPath, {
36339
36213
  method: "POST",
@@ -36343,7 +36217,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36343
36217
  if (!response.ok) {
36344
36218
  throw new Error(`Chat request failed: ${response.status}`);
36345
36219
  }
36346
- const reader = _optionalChain([response, 'access', _909 => _909.body, 'optionalAccess', _910 => _910.getReader, 'call', _911 => _911()]);
36220
+ const reader = _optionalChain([response, 'access', _913 => _913.body, 'optionalAccess', _914 => _914.getReader, 'call', _915 => _915()]);
36347
36221
  if (!reader) throw new Error("No response body");
36348
36222
  const decoder = new TextDecoder();
36349
36223
  let buffer = "";
@@ -36395,7 +36269,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36395
36269
  let meta;
36396
36270
  try {
36397
36271
  meta = JSON.parse(metaStr);
36398
- } catch (e45) {
36272
+ } catch (e37) {
36399
36273
  inText = true;
36400
36274
  setStreamingPhase("streaming");
36401
36275
  if (buffer.length > 0) {
@@ -36426,7 +36300,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36426
36300
  const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
36427
36301
  const result = _nullishCoalesce(meta.result, () => ( null));
36428
36302
  const card = _nullishCoalesce(meta.card, () => ( null));
36429
- if (_optionalChain([card, 'optionalAccess', _912 => _912.ref, 'optionalAccess', _913 => _913.id]) && _optionalChain([card, 'optionalAccess', _914 => _914.type])) {
36303
+ if (_optionalChain([card, 'optionalAccess', _916 => _916.ref, 'optionalAccess', _917 => _917.id]) && _optionalChain([card, 'optionalAccess', _918 => _918.type])) {
36430
36304
  const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
36431
36305
  const key = buildChatRefKey(card.type, card.ref.id);
36432
36306
  refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
@@ -36439,8 +36313,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36439
36313
  willAutoContinue: meta.willAutoContinue === true,
36440
36314
  ...toolName ? { toolName } : {},
36441
36315
  ...result ? { result } : {},
36442
- ..._optionalChain([card, 'optionalAccess', _915 => _915.marker]) ? { marker: card.marker } : {},
36443
- ..._optionalChain([card, 'optionalAccess', _916 => _916.ref]) ? { cardRef: card.ref } : {},
36316
+ ..._optionalChain([card, 'optionalAccess', _919 => _919.marker]) ? { marker: card.marker } : {},
36317
+ ..._optionalChain([card, 'optionalAccess', _920 => _920.ref]) ? { cardRef: card.ref } : {},
36444
36318
  ...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
36445
36319
  proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
36446
36320
  };
@@ -36542,7 +36416,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36542
36416
  });
36543
36417
  bumpMetaTick();
36544
36418
  }
36545
- } catch (e46) {
36419
+ } catch (e38) {
36546
36420
  }
36547
36421
  }
36548
36422
  };
@@ -36558,7 +36432,7 @@ var CHAT_STORAGE_VERSION = 1;
36558
36432
  var chatStorageKey = (source) => {
36559
36433
  const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
36560
36434
  const auth = getEmbedProxyAuth();
36561
- if (_optionalChain([auth, 'optionalAccess', _917 => _917.email])) {
36435
+ if (_optionalChain([auth, 'optionalAccess', _921 => _921.email])) {
36562
36436
  return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
36563
36437
  }
36564
36438
  return base;
@@ -36581,7 +36455,7 @@ function pruneStaleChatStorage(source) {
36581
36455
  for (const k of toRemove) {
36582
36456
  window.localStorage.removeItem(k);
36583
36457
  }
36584
- } catch (e47) {
36458
+ } catch (e39) {
36585
36459
  }
36586
36460
  }
36587
36461
  function loadPersistedChat(source) {
@@ -36598,7 +36472,7 @@ function loadPersistedChat(source) {
36598
36472
  }
36599
36473
  }
36600
36474
  return parsed;
36601
- } catch (e48) {
36475
+ } catch (e40) {
36602
36476
  return null;
36603
36477
  }
36604
36478
  }
@@ -36606,18 +36480,18 @@ function savePersistedChat(source, state) {
36606
36480
  if (typeof window === "undefined") return;
36607
36481
  try {
36608
36482
  window.localStorage.setItem(chatStorageKey(source), JSON.stringify(state));
36609
- } catch (e49) {
36483
+ } catch (e41) {
36610
36484
  }
36611
36485
  }
36612
36486
  function useSseChatAdapter(options) {
36613
- const runtime = _chunk6RZYJICVcjs.useRequiredChatRuntime.call(void 0, );
36487
+ const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
36614
36488
  const source = runtime.source;
36615
36489
  if (!source) {
36616
36490
  throw new Error(
36617
36491
  "[useSseChatAdapter] runtime.source is required \u2014 got empty string. Wire `source` on your <ChatRuntimeContext.Provider value={...}>. Hub default: <HubRuntimeProvider source={currentPlatform()}>; embedded apps: pass your own platform/tenant identifier."
36618
36492
  );
36619
36493
  }
36620
- const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _918 => _918.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
36494
+ const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _922 => _922.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
36621
36495
  const persistedRef = _react.useRef.call(void 0, null);
36622
36496
  if (persistedRef.current === null) {
36623
36497
  pruneStaleChatStorage(source);
@@ -36685,7 +36559,7 @@ function useSseChatAdapter(options) {
36685
36559
  }
36686
36560
  setCmdIdByTableId(map);
36687
36561
  }).catch((err) => {
36688
- if (!cancelled && _optionalChain([err, 'optionalAccess', _919 => _919.name]) !== "AbortError") {
36562
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _923 => _923.name]) !== "AbortError") {
36689
36563
  console.warn(
36690
36564
  "[useSseChatAdapter] failed to fetch slash commands for displayRef:",
36691
36565
  err
@@ -36738,7 +36612,7 @@ function useSseChatAdapter(options) {
36738
36612
  const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
36739
36613
  sources = sourcesMapRef.current.get(lookupIdx);
36740
36614
  chatRefs = _nullishCoalesce(m.chatRefs, () => ( refsMapRef.current.get(lookupIdx)));
36741
- scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _920 => _920.current, 'access', _921 => _921.get, 'call', _922 => _922(lookupIdx), 'optionalAccess', _923 => _923.scrollAnchor]), () => ( void 0));
36615
+ scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _924 => _924.current, 'access', _925 => _925.get, 'call', _926 => _926(lookupIdx), 'optionalAccess', _927 => _927.scrollAnchor]), () => ( void 0));
36742
36616
  }
36743
36617
  return {
36744
36618
  id: m.id,
@@ -36786,7 +36660,7 @@ function useSseChatAdapter(options) {
36786
36660
  );
36787
36661
  return;
36788
36662
  }
36789
- const refSlug = typeof _optionalChain([reference, 'access', _924 => _924.metadata, 'optionalAccess', _925 => _925.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
36663
+ const refSlug = typeof _optionalChain([reference, 'access', _928 => _928.metadata, 'optionalAccess', _929 => _929.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
36790
36664
  const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
36791
36665
  const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
36792
36666
  const text = `/${cmdId} display "${escaped}"`;
@@ -36833,7 +36707,7 @@ function useSseChatAdapter(options) {
36833
36707
  if (typeof window !== "undefined") {
36834
36708
  try {
36835
36709
  window.localStorage.removeItem(chatStorageKey(source));
36836
- } catch (e50) {
36710
+ } catch (e42) {
36837
36711
  }
36838
36712
  }
36839
36713
  }, [chatClearMessages, source, bumpMetaTick]);
@@ -36858,18 +36732,18 @@ function useSseChatAdapter(options) {
36858
36732
  clearMessages,
36859
36733
  streamingPhase,
36860
36734
  /** Provider key for the lib's `<ModelDisplay>` icon. */
36861
- currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _926 => _926.provider]), () => ( null)),
36862
- currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _927 => _927.modelLabel]), () => ( null)),
36863
- currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _928 => _928.contextWindowMaxTokens]), () => ( null)),
36735
+ currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _930 => _930.provider]), () => ( null)),
36736
+ currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _931 => _931.modelLabel]), () => ( null)),
36737
+ currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _932 => _932.contextWindowMaxTokens]), () => ( null)),
36864
36738
  /** Input tokens (known after server's message_start frame; null until). */
36865
- currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _929 => _929.inputTokens]), () => ( null)),
36739
+ currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _933 => _933.inputTokens]), () => ( null)),
36866
36740
  /** Output tokens (known only after server's trailing usage frame). */
36867
- currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _930 => _930.outputTokens]), () => ( null)),
36741
+ currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _934 => _934.outputTokens]), () => ( null)),
36868
36742
  /** Cache hit % (read / total-input × 100). null during streaming. */
36869
- currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _931 => _931.cacheHitRatePct]), () => ( null)),
36743
+ currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _935 => _935.cacheHitRatePct]), () => ( null)),
36870
36744
  /** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
36871
36745
  * token counts). null until the trailing usage frame lands. */
36872
- currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _932 => _932.breakdown]), () => ( null))
36746
+ currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _936 => _936.breakdown]), () => ( null))
36873
36747
  };
36874
36748
  }
36875
36749
 
@@ -36960,7 +36834,7 @@ function useNatsChatAdapter(config, options = {}) {
36960
36834
  });
36961
36835
  const sendMessage = _react.useCallback.call(void 0,
36962
36836
  async (text, sendOptions) => {
36963
- const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _933 => _933.hidden]), () => ( false));
36837
+ const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _937 => _937.hidden]), () => ( false));
36964
36838
  setMessages((prev) => [
36965
36839
  ...prev,
36966
36840
  {
@@ -37103,7 +36977,7 @@ function useUnifiedChat(options) {
37103
36977
 
37104
36978
  // src/components/chat/hooks/use-proxied-image-url.ts
37105
36979
  function useProxiedImageUrl(url) {
37106
- const r = _chunk6RZYJICVcjs.useRequiredChatRuntime.call(void 0, );
36980
+ const r = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
37107
36981
  return _nullishCoalesce(getProxiedImageUrl(_nullishCoalesce(url, () => ( "")), {
37108
36982
  proxyPrefix: r.endpoints.imageProxyUrlPrefix,
37109
36983
  skipDomains: r.endpoints.imageProxySkipDomains,
@@ -37113,12 +36987,12 @@ function useProxiedImageUrl(url) {
37113
36987
 
37114
36988
  // src/components/chat/utils/process-historical-messages.ts
37115
36989
  function getOwnerDisplayName(owner) {
37116
- if (_optionalChain([owner, 'optionalAccess', _934 => _934.type]) === OWNER_TYPE.ADMIN && owner.user) {
36990
+ if (_optionalChain([owner, 'optionalAccess', _938 => _938.type]) === OWNER_TYPE.ADMIN && owner.user) {
37117
36991
  const { firstName, lastName } = owner.user;
37118
36992
  const name = [firstName, lastName].filter(Boolean).join(" ");
37119
36993
  if (name) return name;
37120
36994
  }
37121
- return _optionalChain([owner, 'optionalAccess', _935 => _935.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
36995
+ return _optionalChain([owner, 'optionalAccess', _939 => _939.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
37122
36996
  }
37123
36997
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
37124
36998
  messageDataArray.forEach((data) => {
@@ -37181,10 +37055,10 @@ function processHistoricalMessages(messages, options = {}) {
37181
37055
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
37182
37056
  return;
37183
37057
  }
37184
- const isUserMessage = _optionalChain([msg, 'access', _936 => _936.owner, 'optionalAccess', _937 => _937.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _938 => _938.owner, 'optionalAccess', _939 => _939.type]) === OWNER_TYPE.ADMIN;
37058
+ const isUserMessage = _optionalChain([msg, 'access', _940 => _940.owner, 'optionalAccess', _941 => _941.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _942 => _942.owner, 'optionalAccess', _943 => _943.type]) === OWNER_TYPE.ADMIN;
37185
37059
  if (isUserMessage) {
37186
37060
  flushAssistantMessage();
37187
- const userAuthorType = _optionalChain([msg, 'access', _940 => _940.owner, 'optionalAccess', _941 => _941.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
37061
+ const userAuthorType = _optionalChain([msg, 'access', _944 => _944.owner, 'optionalAccess', _945 => _945.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
37188
37062
  messageDataArray.forEach((data) => {
37189
37063
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
37190
37064
  processedMessages.push({
@@ -37208,7 +37082,7 @@ function processHistoricalMessages(messages, options = {}) {
37208
37082
  });
37209
37083
  const nextMsg = messages[index + 1];
37210
37084
  const isLastMessage = index === messages.length - 1;
37211
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _942 => _942.owner, 'optionalAccess', _943 => _943.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _944 => _944.owner, 'optionalAccess', _945 => _945.type]) === OWNER_TYPE.ADMIN);
37085
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _946 => _946.owner, 'optionalAccess', _947 => _947.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _948 => _948.owner, 'optionalAccess', _949 => _949.type]) === OWNER_TYPE.ADMIN);
37212
37086
  if (isLastMessage || nextIsFromUser) {
37213
37087
  flushAssistantMessage();
37214
37088
  }
@@ -37318,7 +37192,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
37318
37192
  }
37319
37193
  }
37320
37194
  } else {
37321
- _optionalChain([escalatedApprovals, 'optionalAccess', _946 => _946.set, 'call', _947 => _947(data.approvalRequestId, {
37195
+ _optionalChain([escalatedApprovals, 'optionalAccess', _950 => _950.set, 'call', _951 => _951(data.approvalRequestId, {
37322
37196
  command: data.command || "",
37323
37197
  explanation: data.explanation,
37324
37198
  approvalType,
@@ -37331,8 +37205,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
37331
37205
  if ("approvalRequestId" in data && data.approvalRequestId) {
37332
37206
  const existingStatus = approvalStatuses[data.approvalRequestId];
37333
37207
  const status = existingStatus || (data.approved ? "approved" : "rejected");
37334
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _948 => _948.get, 'call', _949 => _949(data.approvalRequestId)]);
37335
- if (_optionalChain([escalatedData, 'optionalAccess', _950 => _950.toolCalls]) && escalatedData.toolCalls.length > 0) {
37208
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _952 => _952.get, 'call', _953 => _953(data.approvalRequestId)]);
37209
+ if (_optionalChain([escalatedData, 'optionalAccess', _954 => _954.toolCalls]) && escalatedData.toolCalls.length > 0) {
37336
37210
  if (batchApprovalsEnabled) {
37337
37211
  accumulator.addApprovalBatch(
37338
37212
  data.approvalRequestId,
@@ -37352,7 +37226,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
37352
37226
  );
37353
37227
  }
37354
37228
  }
37355
- _optionalChain([escalatedApprovals, 'optionalAccess', _951 => _951.delete, 'call', _952 => _952(data.approvalRequestId)]);
37229
+ _optionalChain([escalatedApprovals, 'optionalAccess', _955 => _955.delete, 'call', _956 => _956(data.approvalRequestId)]);
37356
37230
  break;
37357
37231
  }
37358
37232
  if (escalatedData) {
@@ -37361,7 +37235,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
37361
37235
  explanation: escalatedData.explanation,
37362
37236
  approvalType: escalatedData.approvalType
37363
37237
  });
37364
- _optionalChain([escalatedApprovals, 'optionalAccess', _953 => _953.delete, 'call', _954 => _954(data.approvalRequestId)]);
37238
+ _optionalChain([escalatedApprovals, 'optionalAccess', _957 => _957.delete, 'call', _958 => _958(data.approvalRequestId)]);
37365
37239
  }
37366
37240
  const before = accumulator.getSegments();
37367
37241
  const after = accumulator.updateApprovalStatus(data.approvalRequestId, status);
@@ -37377,10 +37251,10 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
37377
37251
  case MESSAGE_TYPE.ERROR:
37378
37252
  if ("error" in data) {
37379
37253
  let message2;
37380
- if ("details" in data && _optionalChain([data, 'optionalAccess', _955 => _955.details])) {
37254
+ if ("details" in data && _optionalChain([data, 'optionalAccess', _959 => _959.details])) {
37381
37255
  try {
37382
- message2 = _optionalChain([JSON, 'access', _956 => _956.parse, 'call', _957 => _957(data.details), 'optionalAccess', _958 => _958.error, 'optionalAccess', _959 => _959.message]);
37383
- } catch (e51) {
37256
+ message2 = _optionalChain([JSON, 'access', _960 => _960.parse, 'call', _961 => _961(data.details), 'optionalAccess', _962 => _962.error, 'optionalAccess', _963 => _963.message]);
37257
+ } catch (e43) {
37384
37258
  message2 = data.details;
37385
37259
  }
37386
37260
  }
@@ -37462,10 +37336,10 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
37462
37336
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
37463
37337
  return;
37464
37338
  }
37465
- const isUserMessage = _optionalChain([msg, 'access', _960 => _960.owner, 'optionalAccess', _961 => _961.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _962 => _962.owner, 'optionalAccess', _963 => _963.type]) === OWNER_TYPE.ADMIN;
37339
+ const isUserMessage = _optionalChain([msg, 'access', _964 => _964.owner, 'optionalAccess', _965 => _965.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _966 => _966.owner, 'optionalAccess', _967 => _967.type]) === OWNER_TYPE.ADMIN;
37466
37340
  if (isUserMessage) {
37467
37341
  flushAssistantMessage();
37468
- const userAuthorType = _optionalChain([msg, 'access', _964 => _964.owner, 'optionalAccess', _965 => _965.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
37342
+ const userAuthorType = _optionalChain([msg, 'access', _968 => _968.owner, 'optionalAccess', _969 => _969.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
37469
37343
  messageDataArray.forEach((data) => {
37470
37344
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
37471
37345
  processedMessages.push({
@@ -37489,7 +37363,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
37489
37363
  });
37490
37364
  const nextMsg = messages[index + 1];
37491
37365
  const isLastMessage = index === messages.length - 1;
37492
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _966 => _966.owner, 'optionalAccess', _967 => _967.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _968 => _968.owner, 'optionalAccess', _969 => _969.type]) === OWNER_TYPE.ADMIN);
37366
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _970 => _970.owner, 'optionalAccess', _971 => _971.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _972 => _972.owner, 'optionalAccess', _973 => _973.type]) === OWNER_TYPE.ADMIN);
37493
37367
  if (isLastMessage || nextIsFromUser) {
37494
37368
  flushAssistantMessage();
37495
37369
  }
@@ -37549,7 +37423,7 @@ function extractIncompleteMessageState(lastMessage) {
37549
37423
  break;
37550
37424
  case "approval_batch": {
37551
37425
  const allDone = !!segment.data.executions && segment.data.toolCalls.every(
37552
- (c) => _optionalChain([segment, 'access', _970 => _970.data, 'access', _971 => _971.executions, 'optionalAccess', _972 => _972[c.toolExecutionRequestId], 'optionalAccess', _973 => _973.status]) === "done"
37426
+ (c) => _optionalChain([segment, 'access', _974 => _974.data, 'access', _975 => _975.executions, 'optionalAccess', _976 => _976[c.toolExecutionRequestId], 'optionalAccess', _977 => _977.status]) === "done"
37553
37427
  );
37554
37428
  if (segment.status !== "rejected" && !allDone) {
37555
37429
  hasIncompleteState = true;
@@ -37593,7 +37467,7 @@ function chatChipClass({ tone, density = "chip", extra }) {
37593
37467
 
37594
37468
  // node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs
37595
37469
 
37596
- var useLayoutEffect22 = _optionalChain([globalThis, 'optionalAccess', _974 => _974.document]) ? React108.useLayoutEffect : () => {
37470
+ var useLayoutEffect22 = _optionalChain([globalThis, 'optionalAccess', _978 => _978.document]) ? React108.useLayoutEffect : () => {
37597
37471
  };
37598
37472
 
37599
37473
  // node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
@@ -37631,7 +37505,7 @@ function useControllableState({
37631
37505
  if (isControlled) {
37632
37506
  const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;
37633
37507
  if (value2 !== prop) {
37634
- _optionalChain([onChangeRef, 'access', _975 => _975.current, 'optionalCall', _976 => _976(value2)]);
37508
+ _optionalChain([onChangeRef, 'access', _979 => _979.current, 'optionalCall', _980 => _980(value2)]);
37635
37509
  }
37636
37510
  } else {
37637
37511
  setUncontrolledProp(nextValue);
@@ -37653,7 +37527,7 @@ function useUncontrolledState({
37653
37527
  }, [onChange]);
37654
37528
  React109.useEffect(() => {
37655
37529
  if (prevValueRef.current !== value) {
37656
- _optionalChain([onChangeRef, 'access', _977 => _977.current, 'optionalCall', _978 => _978(value)]);
37530
+ _optionalChain([onChangeRef, 'access', _981 => _981.current, 'optionalCall', _982 => _982(value)]);
37657
37531
  prevValueRef.current = value;
37658
37532
  }
37659
37533
  }, [value, prevValueRef]);
@@ -37782,7 +37656,7 @@ function SourceChip({
37782
37656
  onClose,
37783
37657
  onDiscuss
37784
37658
  }) {
37785
- const runtime = _chunk6RZYJICVcjs.useRequiredChatRuntime.call(void 0, );
37659
+ const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
37786
37660
  const cta = resolveSourceRowCTA(
37787
37661
  {
37788
37662
  sourceRepo: src.sourceRepo,
@@ -38008,7 +37882,7 @@ function EmbeddableChatInner({
38008
37882
  onActiveModeChange,
38009
37883
  defaultActiveMode
38010
37884
  }) {
38011
- const runtime = _chunk6RZYJICVcjs.useRequiredChatRuntime.call(void 0, );
37885
+ const runtime = _chunkP5EE2VJXcjs.useRequiredChatRuntime.call(void 0, );
38012
37886
  const source = runtime.source;
38013
37887
  const commandsUrl = runtime.endpoints.commandsUrl;
38014
37888
  const { attachmentsEnabled, user: identityUser } = useChatIdentity();
@@ -38077,7 +37951,7 @@ function EmbeddableChatInner({
38077
37951
  setCommandsById(map);
38078
37952
  setCommandsLoaded(true);
38079
37953
  }).catch((err) => {
38080
- if (!cancelled && _optionalChain([err, 'optionalAccess', _979 => _979.name]) !== "AbortError") {
37954
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _983 => _983.name]) !== "AbortError") {
38081
37955
  console.warn("[embeddable-chat] failed to fetch slash commands:", err);
38082
37956
  setCommandsLoaded(true);
38083
37957
  }
@@ -38101,7 +37975,7 @@ function EmbeddableChatInner({
38101
37975
  }),
38102
37976
  [commandsUrl]
38103
37977
  );
38104
- const userName = _optionalChain([identityUser, 'optionalAccess', _980 => _980.firstName, 'optionalAccess', _981 => _981.trim, 'call', _982 => _982()]) || _optionalChain([identityUser, 'optionalAccess', _983 => _983.name, 'optionalAccess', _984 => _984.split, 'call', _985 => _985(" "), 'access', _986 => _986[0], 'optionalAccess', _987 => _987.trim, 'call', _988 => _988()]) || void 0;
37978
+ const userName = _optionalChain([identityUser, 'optionalAccess', _984 => _984.firstName, 'optionalAccess', _985 => _985.trim, 'call', _986 => _986()]) || _optionalChain([identityUser, 'optionalAccess', _987 => _987.name, 'optionalAccess', _988 => _988.split, 'call', _989 => _989(" "), 'access', _990 => _990[0], 'optionalAccess', _991 => _991.trim, 'call', _992 => _992()]) || void 0;
38105
37979
  const effectiveModes = _react.useMemo.call(void 0, () => {
38106
37980
  if (modes) return modes;
38107
37981
  const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
@@ -38115,7 +37989,7 @@ function EmbeddableChatInner({
38115
37989
  if (controlledActiveMode === void 0) {
38116
37990
  setUncontrolledActiveMode(next);
38117
37991
  }
38118
- _optionalChain([onActiveModeChange, 'optionalCall', _989 => _989(next)]);
37992
+ _optionalChain([onActiveModeChange, 'optionalCall', _993 => _993(next)]);
38119
37993
  },
38120
37994
  [controlledActiveMode, onActiveModeChange]
38121
37995
  );
@@ -38235,9 +38109,9 @@ function EmbeddableChatInner({
38235
38109
  const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
38236
38110
  const lastSources = _react.useMemo.call(void 0, () => {
38237
38111
  if (chatLoading) return void 0;
38238
- const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _990 => _990.sources]);
38112
+ const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _994 => _994.sources]);
38239
38113
  if (!sources || sources.length === 0) return void 0;
38240
- const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _991 => _991.content]) || "";
38114
+ const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _995 => _995.content]) || "";
38241
38115
  const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
38242
38116
  (m) => parseInt(m[1], 10)
38243
38117
  );
@@ -39211,5 +39085,6 @@ function EmbeddableChatInner({
39211
39085
 
39212
39086
 
39213
39087
 
39214
- 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.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.Modal2 = Modal2; exports.ModalContent2 = ModalContent2; exports.ModalHeader2 = ModalHeader2; exports.ModalTitle2 = ModalTitle2; exports.ModalFooter2 = ModalFooter2; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.Progress = Progress; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.SquareAvatar = SquareAvatar; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.BlockCard = BlockCard; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; 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.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; 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.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.FlamingoLogo = FlamingoLogo; exports.OpenmspLogo = OpenmspLogo; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.fetchPriorityProp = fetchPriorityProp; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.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.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; 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.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; 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.getAppType = getAppType; exports.getEmbedProxyAuth = getEmbedProxyAuth; exports.getPersistedProxyEmail = getPersistedProxyEmail; exports.setEmbedProxyAuth = setEmbedProxyAuth; exports.clearEmbedProxyAuth = clearEmbedProxyAuth; exports.applyProxyAuth = applyProxyAuth; exports.embedAuthedFetch = embedAuthedFetch; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; 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.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.useProxiedImageUrl = useProxiedImageUrl; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.BackButton = BackButton; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.hexToRgb = hexToRgb; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.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 = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.MoreActionsMenu = MoreActionsMenu; exports.DropdownButton = DropdownButton; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; 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.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.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.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.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.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
39215
- //# sourceMappingURL=chunk-TWKPYZNQ.cjs.map
39088
+
39089
+ 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.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.Modal2 = Modal2; exports.ModalContent2 = ModalContent2; exports.ModalHeader2 = ModalHeader2; exports.ModalTitle2 = ModalTitle2; exports.ModalFooter2 = ModalFooter2; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.Progress = Progress; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.SquareAvatar = SquareAvatar; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.BlockCard = BlockCard; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; 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.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; 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.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.FlamingoLogo = FlamingoLogo; exports.OpenmspLogo = OpenmspLogo; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.fetchPriorityProp = fetchPriorityProp; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.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.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; 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.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; 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.getAppType = getAppType; exports.getEmbedProxyAuth = getEmbedProxyAuth; exports.getPersistedProxyEmail = getPersistedProxyEmail; exports.setEmbedProxyAuth = setEmbedProxyAuth; exports.clearEmbedProxyAuth = clearEmbedProxyAuth; exports.applyProxyAuth = applyProxyAuth; exports.embedAuthedFetch = embedAuthedFetch; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; 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.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.useProxiedImageUrl = useProxiedImageUrl; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.BackButton = BackButton; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.hexToRgb = hexToRgb; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.scrollElementIntoView = scrollElementIntoView; exports.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 = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.MoreActionsMenu = MoreActionsMenu; exports.DropdownButton = DropdownButton; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; 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.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.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.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.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.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
39090
+ //# sourceMappingURL=chunk-ZDF6F7ED.cjs.map