@flamingo-stack/openframe-frontend-core 0.0.263 → 0.0.264

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 (68) hide show
  1. package/dist/{chunk-C3FAOQAH.cjs → chunk-3LWUHLPK.cjs} +28 -28
  2. package/dist/{chunk-C3FAOQAH.cjs.map → chunk-3LWUHLPK.cjs.map} +1 -1
  3. package/dist/{chunk-U7UDESAU.js → chunk-6ZEKKAAL.js} +2 -2
  4. package/dist/{chunk-YC357BPF.js → chunk-JOUI6TQY.js} +3 -3
  5. package/dist/{chunk-2XUWR7AH.cjs → chunk-P67D545X.cjs} +11 -11
  6. package/dist/{chunk-2XUWR7AH.cjs.map → chunk-P67D545X.cjs.map} +1 -1
  7. package/dist/{chunk-3DC6MHW6.cjs → chunk-QLWBBCI5.cjs} +491 -391
  8. package/dist/chunk-QLWBBCI5.cjs.map +1 -0
  9. package/dist/{chunk-36HLBLDK.cjs → chunk-SIYHXLFH.cjs} +462 -454
  10. package/dist/chunk-SIYHXLFH.cjs.map +1 -0
  11. package/dist/{chunk-ALEKX56R.js → chunk-SSUUMPAQ.js} +2 -2
  12. package/dist/{chunk-6AIXHYBZ.js → chunk-VYTU7JZR.js} +64 -56
  13. package/dist/chunk-VYTU7JZR.js.map +1 -0
  14. package/dist/{chunk-6GBA6YJN.js → chunk-ZMFT5XOB.js} +576 -476
  15. package/dist/chunk-ZMFT5XOB.js.map +1 -0
  16. package/dist/{chunk-XKA7UFED.cjs → chunk-ZOOTBYZO.cjs} +30 -30
  17. package/dist/{chunk-XKA7UFED.cjs.map → chunk-ZOOTBYZO.cjs.map} +1 -1
  18. package/dist/components/chat/index.cjs +3 -3
  19. package/dist/components/chat/index.js +2 -2
  20. package/dist/components/contact/index.cjs +4 -4
  21. package/dist/components/contact/index.js +3 -3
  22. package/dist/components/features/index.cjs +3 -3
  23. package/dist/components/features/index.js +2 -2
  24. package/dist/components/features/notifications/notification-drawer.d.ts.map +1 -1
  25. package/dist/components/features/notifications/notifications-context.d.ts +9 -1
  26. package/dist/components/features/notifications/notifications-context.d.ts.map +1 -1
  27. package/dist/components/index.cjs +50 -50
  28. package/dist/components/index.js +4 -4
  29. package/dist/components/navigation/index.cjs +3 -3
  30. package/dist/components/navigation/index.js +2 -2
  31. package/dist/components/navigation/sliding-sidebar.d.ts.map +1 -1
  32. package/dist/components/related-content/index.cjs +4 -4
  33. package/dist/components/related-content/index.js +3 -3
  34. package/dist/components/tickets/index.cjs +58 -58
  35. package/dist/components/tickets/index.js +4 -4
  36. package/dist/components/ui/drawer.d.ts +5 -0
  37. package/dist/components/ui/drawer.d.ts.map +1 -1
  38. package/dist/components/ui/index.cjs +3 -3
  39. package/dist/components/ui/index.js +2 -2
  40. package/dist/hooks/index.cjs +6 -2
  41. package/dist/hooks/index.cjs.map +1 -1
  42. package/dist/hooks/index.js +5 -1
  43. package/dist/hooks/ui/index.d.ts +6 -4
  44. package/dist/hooks/ui/index.d.ts.map +1 -1
  45. package/dist/hooks/ui/use-header-height.d.ts +8 -0
  46. package/dist/hooks/ui/use-header-height.d.ts.map +1 -0
  47. package/dist/hooks/ui/use-horizontal-scrollbar.d.ts.map +1 -1
  48. package/dist/hooks/ui/use-notification-permission.d.ts +14 -0
  49. package/dist/hooks/ui/use-notification-permission.d.ts.map +1 -0
  50. package/dist/index.cjs +7 -3
  51. package/dist/index.cjs.map +1 -1
  52. package/dist/index.js +6 -2
  53. package/package.json +1 -1
  54. package/src/components/features/notifications/notification-drawer.tsx +51 -2
  55. package/src/components/features/notifications/notifications-context.tsx +26 -0
  56. package/src/components/navigation/sliding-sidebar.tsx +3 -82
  57. package/src/components/ui/drawer.tsx +17 -6
  58. package/src/hooks/ui/index.ts +6 -4
  59. package/src/hooks/ui/use-header-height.ts +55 -0
  60. package/src/hooks/ui/use-horizontal-scrollbar.ts +19 -2
  61. package/src/hooks/ui/use-notification-permission.ts +64 -0
  62. package/dist/chunk-36HLBLDK.cjs.map +0 -1
  63. package/dist/chunk-3DC6MHW6.cjs.map +0 -1
  64. package/dist/chunk-6AIXHYBZ.js.map +0 -1
  65. package/dist/chunk-6GBA6YJN.js.map +0 -1
  66. /package/dist/{chunk-U7UDESAU.js.map → chunk-6ZEKKAAL.js.map} +0 -0
  67. /package/dist/{chunk-YC357BPF.js.map → chunk-JOUI6TQY.js.map} +0 -0
  68. /package/dist/{chunk-ALEKX56R.js.map → chunk-SSUUMPAQ.js.map} +0 -0
@@ -14,7 +14,9 @@
14
14
 
15
15
 
16
16
 
17
- var _chunk3DC6MHW6cjs = require('./chunk-3DC6MHW6.cjs');
17
+
18
+
19
+ var _chunkQLWBBCI5cjs = require('./chunk-QLWBBCI5.cjs');
18
20
 
19
21
 
20
22
  var _chunk7VMEOFEAcjs = require('./chunk-7VMEOFEA.cjs');
@@ -759,7 +761,7 @@ function ToolCallRow({ call, expanded, onToggle, batchStatus, execution }) {
759
761
  onClick: onToggle,
760
762
  className: "flex gap-2 items-start w-full p-3 cursor-pointer text-left",
761
763
  children: [
762
- /* @__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, _chunk3DC6MHW6cjs.ToolIcon, { toolType, size: 16 }) }),
764
+ /* @__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, _chunkQLWBBCI5cjs.ToolIcon, { toolType, size: 16 }) }),
763
765
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
764
766
  "div",
765
767
  {
@@ -2336,7 +2338,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
2336
2338
  className: "flex gap-[var(--spacing-system-xs)] items-start p-[var(--spacing-system-s)] cursor-pointer text-left w-full",
2337
2339
  onClick: () => setExpanded((prev) => !prev),
2338
2340
  children: [
2339
- /* @__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, _chunk3DC6MHW6cjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
2341
+ /* @__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, _chunkQLWBBCI5cjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
2340
2342
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2341
2343
  "div",
2342
2344
  {
@@ -5872,7 +5874,7 @@ function AdminContentCard({
5872
5874
  const [imageError, setImageError] = _react.useState.call(void 0, false);
5873
5875
  const [imageLoaded, setImageLoaded] = _react.useState.call(void 0, false);
5874
5876
  const displayUrl = imageUrl && !imageError ? imageUrl : placeholderUrl;
5875
- const imageBgColor = _chunk3DC6MHW6cjs.useImageEdgeColor.call(void 0, displayUrl || null, "transparent");
5877
+ const imageBgColor = _chunkQLWBBCI5cjs.useImageEdgeColor.call(void 0, displayUrl || null, "transparent");
5876
5878
  _react.useEffect.call(void 0, () => {
5877
5879
  setImageLoaded(false);
5878
5880
  }, [displayUrl]);
@@ -8764,7 +8766,7 @@ var ProgressBar = ({
8764
8766
  mobileHeight = 8,
8765
8767
  inverted = false
8766
8768
  }) => {
8767
- const isMdUp = _nullishCoalesce(_chunk3DC6MHW6cjs.useMdUp.call(void 0, ), () => ( true));
8769
+ const isMdUp = _nullishCoalesce(_chunkQLWBBCI5cjs.useMdUp.call(void 0, ), () => ( true));
8768
8770
  const effectiveSegmentWidth = isMdUp ? segmentWidth : mobileSegmentWidth;
8769
8771
  const effectiveHeight = isMdUp ? height : mobileHeight;
8770
8772
  const containerRef = _react.useRef.call(void 0, null);
@@ -8883,7 +8885,7 @@ function InfoCardFooter({ footer }) {
8883
8885
  ] });
8884
8886
  }
8885
8887
  function InfoCardValueRow({ label, value, showLabel, copyable, copyAriaLabel }) {
8886
- const { copy, copied } = _chunk3DC6MHW6cjs.useCopyToClipboard.call(void 0, );
8888
+ const { copy, copied } = _chunkQLWBBCI5cjs.useCopyToClipboard.call(void 0, );
8887
8889
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-6 items-center gap-[var(--spacing-system-xs)] self-stretch w-full", children: [
8888
8890
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary whitespace-nowrap", children: showLabel ? label : "" }),
8889
8891
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 h-px bg-ods-divider" }),
@@ -10406,12 +10408,14 @@ var DrawerContent = React40.forwardRef(
10406
10408
  style,
10407
10409
  panelStyle,
10408
10410
  panelClassName,
10411
+ offsetHeader = false,
10409
10412
  children,
10410
10413
  ...props
10411
10414
  }, ref) => {
10412
10415
  const resolvedSide = _nullishCoalesce(side, () => ( "right"));
10413
10416
  const isHorizontal = HORIZONTAL_SIDES.has(resolvedSide);
10414
10417
  const initialSize = _nullishCoalesce(defaultSize, () => ( (isHorizontal ? 560 : 480)));
10418
+ const headerHeight = _chunkQLWBBCI5cjs.useHeaderHeight.call(void 0, );
10415
10419
  const [isMobile, setIsMobile] = React40.useState(false);
10416
10420
  React40.useEffect(() => {
10417
10421
  if (typeof window === "undefined") return;
@@ -10438,7 +10442,7 @@ var DrawerContent = React40.forwardRef(
10438
10442
  {
10439
10443
  ref,
10440
10444
  className: _chunkFIG2RKZFcjs.cn.call(void 0, drawerVariants({ side, flush })),
10441
- style,
10445
+ style: { ...offsetHeader ? { top: headerHeight } : {}, ...style },
10442
10446
  ...props,
10443
10447
  children: [
10444
10448
  applyInlineSize ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -10484,7 +10488,7 @@ var DrawerHeader = ({
10484
10488
  }
10485
10489
  );
10486
10490
  DrawerHeader.displayName = "DrawerHeader";
10487
- var DrawerTitle = React40.forwardRef(({ className, children, actions, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-4", children: [
10491
+ var DrawerTitle = React40.forwardRef(({ className, children, actions, hideClose, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-4", children: [
10488
10492
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10489
10493
  DialogPrimitive2.Title,
10490
10494
  {
@@ -10498,7 +10502,7 @@ var DrawerTitle = React40.forwardRef(({ className, children, actions, ...props }
10498
10502
  }
10499
10503
  ),
10500
10504
  actions,
10501
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, DialogPrimitive2.Close, { className: "shrink-0 rounded-sm text-ods-text-secondary transition-colors hover:text-ods-text-primary outline-none ring-0 focus:outline-none focus:ring-0 focus-visible:outline-none focus-visible:ring-0", children: [
10505
+ !hideClose && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, DialogPrimitive2.Close, { className: "shrink-0 rounded-sm text-ods-text-secondary transition-colors hover:text-ods-text-primary outline-none ring-0 focus:outline-none focus:ring-0 focus-visible:outline-none focus-visible:ring-0", children: [
10502
10506
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-6" }),
10503
10507
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", children: "Close" })
10504
10508
  ] })
@@ -12330,7 +12334,7 @@ function toToolLabel(input) {
12330
12334
  if (!input) return "";
12331
12335
  const toolType = normalizeToolType(input);
12332
12336
  if (toolType) {
12333
- return _chunk3DC6MHW6cjs.toolLabels[toolType];
12337
+ return _chunkQLWBBCI5cjs.toolLabels[toolType];
12334
12338
  }
12335
12339
  return input;
12336
12340
  }
@@ -12341,7 +12345,7 @@ function getToolTypeAliases(toolType) {
12341
12345
  return Object.entries(toolAliasMap).filter(([_, value]) => value === toolType).map(([key]) => key);
12342
12346
  }
12343
12347
  function getToolLabel(toolType) {
12344
- return _chunk3DC6MHW6cjs.toolLabels[toolType] || toolType;
12348
+ return _chunkQLWBBCI5cjs.toolLabels[toolType] || toolType;
12345
12349
  }
12346
12350
 
12347
12351
  // src/types/shell.types.ts
@@ -17327,7 +17331,7 @@ function PlatformFilterComponent({
17327
17331
  variant: selectedPlatform === platform.value ? "accent" : "outline",
17328
17332
  size,
17329
17333
  onClick: () => onPlatformChange(platform.value),
17330
- leftIcon: showIcons ? _chunk3DC6MHW6cjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
17334
+ leftIcon: showIcons ? _chunkQLWBBCI5cjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
17331
17335
  className: "text-h3",
17332
17336
  children: platform.label
17333
17337
  },
@@ -20086,7 +20090,7 @@ var getApprovalLevelLabel = (level, editMode = false) => {
20086
20090
  };
20087
20091
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
20088
20092
  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: [
20089
- /* @__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, _chunk3DC6MHW6cjs.ToolIcon, { toolType: policy.toolName, size: 16 }) }),
20093
+ /* @__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, _chunkQLWBBCI5cjs.ToolIcon, { toolType: policy.toolName, size: 16 }) }),
20090
20094
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col min-w-0", children: [
20091
20095
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[16px] font-medium text-ods-text-primary truncate", title: policy.name, children: policy.name }),
20092
20096
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[12px] text-ods-text-secondary break-all font-mono", children: policy.commandPattern })
@@ -20397,8 +20401,8 @@ function WaitlistForm({
20397
20401
  const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
20398
20402
  const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
20399
20403
  const [countryCode, setCountryCode] = _react.useState.call(void 0, "US");
20400
- const { toast } = _chunk3DC6MHW6cjs.useToast.call(void 0, );
20401
- const { honeypotInputProps, getSignals, resetSignals } = _chunk3DC6MHW6cjs.useHumanitySignals.call(void 0, );
20404
+ const { toast } = _chunkQLWBBCI5cjs.useToast.call(void 0, );
20405
+ const { honeypotInputProps, getSignals, resetSignals } = _chunkQLWBBCI5cjs.useHumanitySignals.call(void 0, );
20402
20406
  const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
20403
20407
  const [isClient, setIsClient] = _react.useState.call(void 0, false);
20404
20408
  const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
@@ -20640,6 +20644,8 @@ function NotificationsProvider({
20640
20644
  maxNotifications = 50,
20641
20645
  defaultShowPopups = true,
20642
20646
  onShowPopupsChange,
20647
+ defaultShowDesktopPopups = false,
20648
+ onShowDesktopPopupsChange,
20643
20649
  onHistoryClick,
20644
20650
  actions,
20645
20651
  hasMore = false,
@@ -20650,6 +20656,8 @@ function NotificationsProvider({
20650
20656
  const [notifications, dispatch] = React69.useReducer(reducer, initialNotifications);
20651
20657
  const [isOpen, setIsOpen] = React69.useState(false);
20652
20658
  const [showPopups, setShowPopupsState] = React69.useState(defaultShowPopups);
20659
+ const [showDesktopPopups, setShowDesktopPopupsState] = React69.useState(defaultShowDesktopPopups);
20660
+ const desktopPopupsConfigured = onShowDesktopPopupsChange !== void 0;
20653
20661
  const actionsRef = React69.useRef(actions);
20654
20662
  React69.useEffect(() => {
20655
20663
  actionsRef.current = actions;
@@ -20711,6 +20719,13 @@ function NotificationsProvider({
20711
20719
  },
20712
20720
  [onShowPopupsChange]
20713
20721
  );
20722
+ const setShowDesktopPopups = React69.useCallback(
20723
+ (value2) => {
20724
+ setShowDesktopPopupsState(value2);
20725
+ _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _363 => _363(value2)]);
20726
+ },
20727
+ [onShowDesktopPopupsChange]
20728
+ );
20714
20729
  const unreadCount = React69.useMemo(
20715
20730
  () => notifications.reduce((acc, n) => n.read ? acc : acc + 1, 0),
20716
20731
  [notifications]
@@ -20733,6 +20748,9 @@ function NotificationsProvider({
20733
20748
  close,
20734
20749
  toggle,
20735
20750
  setShowPopups,
20751
+ showDesktopPopups,
20752
+ setShowDesktopPopups,
20753
+ desktopPopupsConfigured,
20736
20754
  onHistoryClick,
20737
20755
  hasMore,
20738
20756
  isLoadingMore,
@@ -20744,6 +20762,9 @@ function NotificationsProvider({
20744
20762
  unreadCount,
20745
20763
  isOpen,
20746
20764
  showPopups,
20765
+ showDesktopPopups,
20766
+ setShowDesktopPopups,
20767
+ desktopPopupsConfigured,
20747
20768
  addNotification,
20748
20769
  upsertNotification,
20749
20770
  setNotifications,
@@ -20803,7 +20824,7 @@ function NotificationTile({
20803
20824
  if (!counting) return;
20804
20825
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
20805
20826
  const timer = window.setTimeout(() => {
20806
- _optionalChain([onSettle, 'optionalCall', _363 => _363(id)]);
20827
+ _optionalChain([onSettle, 'optionalCall', _364 => _364(id)]);
20807
20828
  }, remaining);
20808
20829
  return () => window.clearTimeout(timer);
20809
20830
  }, [id, counting, initialElapsed, liveDurationMs, onSettle]);
@@ -20823,7 +20844,7 @@ function NotificationTile({
20823
20844
  children ? "border-b border-ods-border" : null
20824
20845
  ),
20825
20846
  children: [
20826
- /* @__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: _chunkFIG2RKZFcjs.cn.call(void 0, "size-1.5 rounded-full", _chunk3DC6MHW6cjs.dotColorByVariant[variant]) }) }),
20847
+ /* @__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: _chunkFIG2RKZFcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkQLWBBCI5cjs.dotColorByVariant[variant]) }) }),
20827
20848
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
20828
20849
  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,
20829
20850
  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
@@ -20849,7 +20870,7 @@ function NotificationTile({
20849
20870
  "aria-hidden": true,
20850
20871
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
20851
20872
  "absolute inset-x-0 -bottom-px h-1 origin-left",
20852
- _chunk3DC6MHW6cjs.progressColorByVariant[variant]
20873
+ _chunkQLWBBCI5cjs.progressColorByVariant[variant]
20853
20874
  ),
20854
20875
  style: {
20855
20876
  animation: `toast-progress ${liveDurationMs}ms linear forwards`,
@@ -20865,7 +20886,7 @@ function NotificationTile({
20865
20886
  "button",
20866
20887
  {
20867
20888
  type: "button",
20868
- onClick: () => _optionalChain([onSettle, 'optionalCall', _364 => _364(id)]),
20889
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _365 => _365(id)]),
20869
20890
  "aria-label": "Dismiss notification",
20870
20891
  tabIndex: isLive ? 0 : -1,
20871
20892
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
@@ -20901,6 +20922,9 @@ function NotificationDrawer({
20901
20922
  markAllRead,
20902
20923
  markSettled,
20903
20924
  setShowPopups,
20925
+ showDesktopPopups,
20926
+ setShowDesktopPopups,
20927
+ desktopPopupsConfigured,
20904
20928
  onHistoryClick,
20905
20929
  hasMore,
20906
20930
  isLoadingMore,
@@ -20914,6 +20938,7 @@ function NotificationDrawer({
20914
20938
  {
20915
20939
  side: "right",
20916
20940
  "aria-describedby": void 0,
20941
+ offsetHeader: true,
20917
20942
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
20918
20943
  "w-[calc(100vw-2rem)] sm:w-[26rem] sm:max-w-[calc(100vw-2rem)] gap-[var(--spacing-system-m)] p-[var(--spacing-system-zero)]",
20919
20944
  className
@@ -20922,6 +20947,7 @@ function NotificationDrawer({
20922
20947
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-m)] pt-[var(--spacing-system-m)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20923
20948
  DrawerTitle,
20924
20949
  {
20950
+ hideClose: true,
20925
20951
  className: "truncate",
20926
20952
  actions: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20927
20953
  "button",
@@ -20951,7 +20977,10 @@ function NotificationDrawer({
20951
20977
  }
20952
20978
  ),
20953
20979
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xs)] px-[var(--spacing-system-m)] pb-[var(--spacing-system-m)]", children: [
20954
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ShowNotificationsToggleRow, { checked: showPopups, onChange: setShowPopups }),
20980
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "overflow-hidden rounded-md border border-ods-border bg-ods-card", children: [
20981
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ShowNotificationsToggleRow, { checked: showPopups, onChange: setShowPopups }),
20982
+ desktopPopupsConfigured && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DesktopNotificationsToggleRow, { checked: showDesktopPopups, onChange: setShowDesktopPopups })
20983
+ ] }),
20955
20984
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20956
20985
  NotificationsHistoryButton,
20957
20986
  {
@@ -20988,7 +21017,7 @@ function DrawerScrollList({
20988
21017
  if (!sentinel || !root) return;
20989
21018
  const observer = new IntersectionObserver(
20990
21019
  (entries) => {
20991
- if (_optionalChain([entries, 'access', _365 => _365[0], 'optionalAccess', _366 => _366.isIntersecting])) _optionalChain([loadMoreRef, 'access', _367 => _367.current, 'optionalCall', _368 => _368()]);
21020
+ if (_optionalChain([entries, 'access', _366 => _366[0], 'optionalAccess', _367 => _367.isIntersecting])) _optionalChain([loadMoreRef, 'access', _368 => _368.current, 'optionalCall', _369 => _369()]);
20992
21021
  },
20993
21022
  { root, rootMargin: loadMoreRootMargin }
20994
21023
  );
@@ -21003,7 +21032,7 @@ function DrawerScrollList({
21003
21032
  className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
21004
21033
  children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
21005
21034
  unreadNotifications.map((n) => {
21006
- const custom = _optionalChain([renderTile, 'optionalCall', _369 => _369(n, { onComplete, onSettle, liveDurationMs })]);
21035
+ const custom = _optionalChain([renderTile, 'optionalCall', _370 => _370(n, { onComplete, onSettle, liveDurationMs })]);
21007
21036
  if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
21008
21037
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21009
21038
  NotificationTile,
@@ -21047,7 +21076,7 @@ function EmptyState() {
21047
21076
  ] });
21048
21077
  }
21049
21078
  function ShowNotificationsToggleRow({ checked, onChange }) {
21050
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-s)] rounded-md border border-ods-border bg-ods-card p-[var(--spacing-system-sf)]", children: [
21079
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-s)] border-b border-ods-border p-[var(--spacing-system-sf)]", children: [
21051
21080
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21052
21081
  Switch,
21053
21082
  {
@@ -21062,6 +21091,33 @@ function ShowNotificationsToggleRow({ checked, onChange }) {
21062
21091
  ] })
21063
21092
  ] });
21064
21093
  }
21094
+ function DesktopNotificationsToggleRow({ checked, onChange }) {
21095
+ const { supported, permission, request } = _chunkQLWBBCI5cjs.useNotificationPermission.call(void 0, );
21096
+ if (!supported) return null;
21097
+ const blocked = permission === "denied";
21098
+ const handleChange = async (value) => {
21099
+ if (!value || permission === "granted") {
21100
+ onChange(value);
21101
+ return;
21102
+ }
21103
+ if (await request() === "granted") onChange(true);
21104
+ };
21105
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-s)] border-b border-ods-border p-[var(--spacing-system-sf)]", children: [
21106
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21107
+ Switch,
21108
+ {
21109
+ checked: checked && permission === "granted",
21110
+ disabled: blocked,
21111
+ onCheckedChange: handleChange,
21112
+ "aria-label": "Show desktop notifications"
21113
+ }
21114
+ ),
21115
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
21116
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "text-h4", blocked ? "text-ods-text-secondary" : "text-ods-text-primary"), children: "Desktop Notifications" }),
21117
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-secondary", children: blocked ? "Enable notifications in your browser settings" : "Notify when this tab is in the background" })
21118
+ ] })
21119
+ ] });
21120
+ }
21065
21121
  function NotificationsHistoryButton({ onClick }) {
21066
21122
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21067
21123
  _chunkN5UOJC3Vcjs.Button,
@@ -21132,7 +21188,7 @@ function NotificationPopups({
21132
21188
  className
21133
21189
  ),
21134
21190
  children: live.map((n) => {
21135
- const custom = _optionalChain([renderTile, 'optionalCall', _370 => _370(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
21191
+ const custom = _optionalChain([renderTile, 'optionalCall', _371 => _371(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
21136
21192
  if (custom) {
21137
21193
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
21138
21194
  }
@@ -21171,19 +21227,19 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
21171
21227
  // src/components/features/notifications/types.ts
21172
21228
  var ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = "ADMIN_APPROVAL_REQUEST";
21173
21229
  function isApprovalNotification(notification) {
21174
- return _optionalChain([notification, 'access', _371 => _371.meta, 'optionalAccess', _372 => _372.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
21230
+ return _optionalChain([notification, 'access', _372 => _372.meta, 'optionalAccess', _373 => _373.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
21175
21231
  }
21176
21232
  function getApprovalMeta(notification) {
21177
21233
  if (!isApprovalNotification(notification)) return null;
21178
21234
  const meta = notification.meta;
21179
- const approvalRequestId = _optionalChain([meta, 'optionalAccess', _373 => _373.approvalRequestId]);
21180
- const toolCalls = _optionalChain([meta, 'optionalAccess', _374 => _374.toolCalls]);
21235
+ const approvalRequestId = _optionalChain([meta, 'optionalAccess', _374 => _374.approvalRequestId]);
21236
+ const toolCalls = _optionalChain([meta, 'optionalAccess', _375 => _375.toolCalls]);
21181
21237
  if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
21182
21238
  return {
21183
21239
  approvalRequestId,
21184
- dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _375 => _375.dialogId]), () => ( null)),
21185
- ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _376 => _376.ticketId]), () => ( null)),
21186
- approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _377 => _377.approvalType]), () => ( null)),
21240
+ dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _376 => _376.dialogId]), () => ( null)),
21241
+ ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _377 => _377.ticketId]), () => ( null)),
21242
+ approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _378 => _378.approvalType]), () => ( null)),
21187
21243
  toolCalls
21188
21244
  };
21189
21245
  }
@@ -21444,15 +21500,15 @@ function TicketCard({
21444
21500
  transform: _utilities.CSS.Transform.toString(sortable.transform),
21445
21501
  transition: sortable.transition
21446
21502
  };
21447
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _378 => _378.deviceHostnames, 'optionalAccess', _379 => _379.length]) || ticket.organizationName);
21503
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _379 => _379.deviceHostnames, 'optionalAccess', _380 => _380.length]) || ticket.organizationName);
21448
21504
  const deviceText = [
21449
- _optionalChain([ticket, 'access', _380 => _380.deviceHostnames, 'optionalAccess', _381 => _381.join, 'call', _382 => _382(", ")]),
21505
+ _optionalChain([ticket, 'access', _381 => _381.deviceHostnames, 'optionalAccess', _382 => _382.join, 'call', _383 => _383(", ")]),
21450
21506
  ticket.organizationName
21451
21507
  ].filter(Boolean).join(", ");
21452
21508
  const handleClick = (e) => {
21453
21509
  if (sortable.isDragging) e.preventDefault();
21454
21510
  };
21455
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _383 => _383.assignees, 'optionalAccess', _384 => _384.length]) || renderAssignSlot);
21511
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _384 => _384.assignees, 'optionalAccess', _385 => _385.length]) || renderAssignSlot);
21456
21512
  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: [
21457
21513
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21458
21514
  _chunkC6ASEPZLcjs.Flag02Icon,
@@ -21461,7 +21517,7 @@ function TicketCard({
21461
21517
  "aria-label": `Priority: ${ticket.priority}`
21462
21518
  }
21463
21519
  ),
21464
- 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: [
21520
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _386 => _386.assignees, 'optionalAccess', _387 => _387.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
21465
21521
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21466
21522
  _chunk7MNBE7XAcjs.SquareAvatar,
21467
21523
  {
@@ -21490,7 +21546,7 @@ function TicketCard({
21490
21546
  ] }),
21491
21547
  rightSection
21492
21548
  ] }),
21493
- _optionalChain([ticket, 'access', _387 => _387.tags, 'optionalAccess', _388 => _388.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
21549
+ _optionalChain([ticket, 'access', _388 => _388.tags, 'optionalAccess', _389 => _389.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
21494
21550
  ] });
21495
21551
  const cardClasses = _chunkFIG2RKZFcjs.cn.call(void 0,
21496
21552
  "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",
@@ -21665,7 +21721,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
21665
21721
  const observer = new IntersectionObserver(
21666
21722
  (entries) => {
21667
21723
  if (entries.some((e) => e.isIntersecting)) {
21668
- _optionalChain([loadMoreRef, 'access', _389 => _389.current, 'optionalCall', _390 => _390(columnIdRef.current)]);
21724
+ _optionalChain([loadMoreRef, 'access', _390 => _390.current, 'optionalCall', _391 => _391(columnIdRef.current)]);
21669
21725
  }
21670
21726
  },
21671
21727
  { root, rootMargin: loadMoreRootMargin }
@@ -21694,7 +21750,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
21694
21750
  {
21695
21751
  ticket: t,
21696
21752
  columnId: column.id,
21697
- href: _optionalChain([getTicketHref, 'optionalCall', _391 => _391(t.id)]),
21753
+ href: _optionalChain([getTicketHref, 'optionalCall', _392 => _392(t.id)]),
21698
21754
  renderAssignSlot,
21699
21755
  dragDisabled: column.dragDisabled
21700
21756
  },
@@ -21726,7 +21782,7 @@ function EmptyState2() {
21726
21782
  // src/components/features/board/use-board-collapse.ts
21727
21783
 
21728
21784
  function useBoardCollapse(storageKey) {
21729
- const [persisted, setPersisted] = _chunk3DC6MHW6cjs.useLocalStorage.call(void 0,
21785
+ const [persisted, setPersisted] = _chunkQLWBBCI5cjs.useLocalStorage.call(void 0,
21730
21786
  _nullishCoalesce(storageKey, () => ( "__board_collapse_unused__")),
21731
21787
  {}
21732
21788
  );
@@ -21774,7 +21830,7 @@ function Board({
21774
21830
  onThumbPointerDown,
21775
21831
  onThumbPointerMove,
21776
21832
  onThumbPointerUp
21777
- } = _chunk3DC6MHW6cjs.useHorizontalScrollbar.call(void 0, );
21833
+ } = _chunkQLWBBCI5cjs.useHorizontalScrollbar.call(void 0, );
21778
21834
  const [items, setItems] = React73.useState(columns);
21779
21835
  const isDraggingRef = React73.useRef(false);
21780
21836
  React73.useEffect(() => {
@@ -21790,17 +21846,17 @@ function Board({
21790
21846
  const pointer = _core.pointerWithin.call(void 0, args);
21791
21847
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
21792
21848
  const ticketHit = intersections.find(
21793
- (c) => _optionalChain([c, 'access', _392 => _392.data, 'optionalAccess', _393 => _393.droppableContainer, 'optionalAccess', _394 => _394.data, 'optionalAccess', _395 => _395.current, 'optionalAccess', _396 => _396.type]) === "ticket"
21849
+ (c) => _optionalChain([c, 'access', _393 => _393.data, 'optionalAccess', _394 => _394.droppableContainer, 'optionalAccess', _395 => _395.data, 'optionalAccess', _396 => _396.current, 'optionalAccess', _397 => _397.type]) === "ticket"
21794
21850
  );
21795
21851
  if (ticketHit) return [ticketHit];
21796
21852
  const columnHit = intersections.find(
21797
- (c) => _optionalChain([c, 'access', _397 => _397.data, 'optionalAccess', _398 => _398.droppableContainer, 'optionalAccess', _399 => _399.data, 'optionalAccess', _400 => _400.current, 'optionalAccess', _401 => _401.type]) === "column"
21853
+ (c) => _optionalChain([c, 'access', _398 => _398.data, 'optionalAccess', _399 => _399.droppableContainer, 'optionalAccess', _400 => _400.data, 'optionalAccess', _401 => _401.current, 'optionalAccess', _402 => _402.type]) === "column"
21798
21854
  );
21799
21855
  if (columnHit) {
21800
- const columnId = _optionalChain([columnHit, 'access', _402 => _402.data, 'optionalAccess', _403 => _403.droppableContainer, 'optionalAccess', _404 => _404.data, 'optionalAccess', _405 => _405.current, 'optionalAccess', _406 => _406.columnId]);
21856
+ const columnId = _optionalChain([columnHit, 'access', _403 => _403.data, 'optionalAccess', _404 => _404.droppableContainer, 'optionalAccess', _405 => _405.data, 'optionalAccess', _406 => _406.current, 'optionalAccess', _407 => _407.columnId]);
21801
21857
  const ticketsInColumn = args.droppableContainers.filter((c) => {
21802
21858
  const d = c.data.current;
21803
- return _optionalChain([d, 'optionalAccess', _407 => _407.type]) === "ticket" && d.columnId === columnId;
21859
+ return _optionalChain([d, 'optionalAccess', _408 => _408.type]) === "ticket" && d.columnId === columnId;
21804
21860
  });
21805
21861
  if (ticketsInColumn.length > 0) {
21806
21862
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -21825,20 +21881,20 @@ function Board({
21825
21881
  const overId = String(over.id);
21826
21882
  if (activeId === overId) return;
21827
21883
  const overData = over.data.current;
21828
- const fromColumnId = _optionalChain([locate, 'call', _408 => _408(items, activeId), 'optionalAccess', _409 => _409.columnId]);
21829
- const toColumnId = _optionalChain([overData, 'optionalAccess', _410 => _410.columnId]);
21884
+ const fromColumnId = _optionalChain([locate, 'call', _409 => _409(items, activeId), 'optionalAccess', _410 => _410.columnId]);
21885
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _411 => _411.columnId]);
21830
21886
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
21831
21887
  const origin = dragOriginRef.current;
21832
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _411 => _411.fromColumnId]) === toColumnId;
21888
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _412 => _412.fromColumnId]) === toColumnId;
21833
21889
  const targetCol = items.find((c) => c.id === toColumnId);
21834
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _412 => _412.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
21835
- if (_optionalChain([targetCol, 'optionalAccess', _413 => _413.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
21890
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _413 => _413.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
21891
+ if (_optionalChain([targetCol, 'optionalAccess', _414 => _414.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
21836
21892
  setItems((prev) => {
21837
21893
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
21838
21894
  const toCol = prev.find((c) => c.id === toColumnId);
21839
21895
  if (fromIndex < 0 || !toCol) return prev;
21840
21896
  let toIndex;
21841
- if (_optionalChain([overData, 'optionalAccess', _414 => _414.type]) === "column") {
21897
+ if (_optionalChain([overData, 'optionalAccess', _415 => _415.type]) === "column") {
21842
21898
  toIndex = toCol.tickets.length;
21843
21899
  } else {
21844
21900
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -21880,14 +21936,14 @@ function Board({
21880
21936
  const toColumnId = located.columnId;
21881
21937
  const isCrossColumn = origin.fromColumnId !== toColumnId;
21882
21938
  const targetCol = items.find((c) => c.id === toColumnId);
21883
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _415 => _415.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _416 => _416.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
21939
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _416 => _416.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _417 => _417.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
21884
21940
  setItems(columns);
21885
21941
  return;
21886
21942
  }
21887
21943
  let finalIndex = located.index;
21888
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _417 => _417.find, 'call', _418 => _418((c) => c.id === toColumnId), 'optionalAccess', _419 => _419.tickets]), () => ( []));
21944
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _418 => _418.find, 'call', _419 => _419((c) => c.id === toColumnId), 'optionalAccess', _420 => _420.tickets]), () => ( []));
21889
21945
  const overData = over.data.current;
21890
- if (_optionalChain([overData, 'optionalAccess', _420 => _420.type]) === "ticket") {
21946
+ if (_optionalChain([overData, 'optionalAccess', _421 => _421.type]) === "ticket") {
21891
21947
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
21892
21948
  if (overIndex >= 0 && overIndex !== located.index) {
21893
21949
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -21907,8 +21963,8 @@ function Board({
21907
21963
  ticketId: origin.ticketId,
21908
21964
  fromColumnId: origin.fromColumnId,
21909
21965
  toColumnId,
21910
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _421 => _421[finalIndex - 1], 'optionalAccess', _422 => _422.id]), () => ( null)),
21911
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _423 => _423[finalIndex + 1], 'optionalAccess', _424 => _424.id]), () => ( null))
21966
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _422 => _422[finalIndex - 1], 'optionalAccess', _423 => _423.id]), () => ( null)),
21967
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _424 => _424[finalIndex + 1], 'optionalAccess', _425 => _425.id]), () => ( null))
21912
21968
  });
21913
21969
  };
21914
21970
  const handleDragCancel = () => {
@@ -21937,8 +21993,8 @@ function Board({
21937
21993
  children: items.map((column, i) => {
21938
21994
  const prev = items[i - 1];
21939
21995
  const next = items[i + 1];
21940
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _425 => _425.system]));
21941
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _426 => _426.system]));
21996
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _426 => _426.system]));
21997
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _427 => _427.system]));
21942
21998
  const showGap = i > 0 && !joinLeft;
21943
21999
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React73.Fragment, { children: [
21944
22000
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -21997,7 +22053,7 @@ function locate(cols, ticketId) {
21997
22053
  return null;
21998
22054
  }
21999
22055
  function findIndexInColumn(cols, columnId, ticketId) {
22000
- 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));
22056
+ return _nullishCoalesce(_optionalChain([cols, 'access', _428 => _428.find, 'call', _429 => _429((c) => c.id === columnId), 'optionalAccess', _430 => _430.tickets, 'access', _431 => _431.findIndex, 'call', _432 => _432((t) => t.id === ticketId)]), () => ( -1));
22001
22057
  }
22002
22058
 
22003
22059
  // src/components/features/board/types.ts
@@ -22245,7 +22301,7 @@ function Header2({ config, platform }) {
22245
22301
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
22246
22302
  "flex justify-start w-full",
22247
22303
  "font-bold text-[16px] leading-none tracking-[-0.32px]",
22248
- index < (_nullishCoalesce(_optionalChain([item, 'access', _432 => _432.children, 'optionalAccess', _433 => _433.length]), () => ( 0))) - 1 && "mb-1",
22304
+ index < (_nullishCoalesce(_optionalChain([item, 'access', _433 => _433.children, 'optionalAccess', _434 => _434.length]), () => ( 0))) - 1 && "mb-1",
22249
22305
  "text-ods-text-primary",
22250
22306
  // All dropdown items use primary text color
22251
22307
  child.isActive && "bg-ods-bg-hover"
@@ -22337,7 +22393,7 @@ function Header2({ config, platform }) {
22337
22393
  style: config.style,
22338
22394
  children: [
22339
22395
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
22340
- _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 }),
22396
+ _optionalChain([config, 'access', _435 => _435.actions, 'optionalAccess', _436 => _436.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
22341
22397
  /* @__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 })
22342
22398
  ] }),
22343
22399
  config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -22354,7 +22410,7 @@ function Header2({ config, platform }) {
22354
22410
  }
22355
22411
  ),
22356
22412
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-end gap-4 flex-shrink-0", children: [
22357
- _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 }),
22413
+ _optionalChain([config, 'access', _437 => _437.actions, 'optionalAccess', _438 => _438.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
22358
22414
  config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22359
22415
  _chunkN5UOJC3Vcjs.Button,
22360
22416
  {
@@ -22362,10 +22418,10 @@ function Header2({ config, platform }) {
22362
22418
  size: "icon",
22363
22419
  className: "flex md:hidden",
22364
22420
  onClick: () => {
22365
- _optionalChain([config, 'access', _438 => _438.mobile, 'optionalAccess', _439 => _439.onToggle, 'optionalCall', _440 => _440()]);
22421
+ _optionalChain([config, 'access', _439 => _439.mobile, 'optionalAccess', _440 => _440.onToggle, 'optionalCall', _441 => _441()]);
22366
22422
  },
22367
- "aria-label": _optionalChain([config, 'access', _441 => _441.mobile, 'optionalAccess', _442 => _442.isOpen]) ? "Close menu" : "Open menu",
22368
- leftIcon: _optionalChain([config, 'access', _443 => _443.mobile, 'optionalAccess', _444 => _444.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Menu01Icon, {})
22423
+ "aria-label": _optionalChain([config, 'access', _442 => _442.mobile, 'optionalAccess', _443 => _443.isOpen]) ? "Close menu" : "Open menu",
22424
+ leftIcon: _optionalChain([config, 'access', _444 => _444.mobile, 'optionalAccess', _445 => _445.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Menu01Icon, {})
22369
22425
  }
22370
22426
  )
22371
22427
  ] })
@@ -22382,10 +22438,10 @@ function Header2({ config, platform }) {
22382
22438
  // src/components/navigation/header-skeleton.tsx
22383
22439
 
22384
22440
  function HeaderSkeleton({ config }) {
22385
- const showNavigation = _optionalChain([config, 'optionalAccess', _445 => _445.navigation]) && config.navigation.items.length > 0;
22386
- const showActions = _optionalChain([config, 'optionalAccess', _446 => _446.actions, 'optionalAccess', _447 => _447.right]) && config.actions.right.length > 0;
22387
- const showMobileMenu = _optionalChain([config, 'optionalAccess', _448 => _448.mobile, 'optionalAccess', _449 => _449.enabled]);
22388
- const isAdminHeader = _optionalChain([config, 'optionalAccess', _450 => _450.className, 'optionalAccess', _451 => _451.includes, 'call', _452 => _452("admin")]);
22441
+ const showNavigation = _optionalChain([config, 'optionalAccess', _446 => _446.navigation]) && config.navigation.items.length > 0;
22442
+ const showActions = _optionalChain([config, 'optionalAccess', _447 => _447.actions, 'optionalAccess', _448 => _448.right]) && config.actions.right.length > 0;
22443
+ const showMobileMenu = _optionalChain([config, 'optionalAccess', _449 => _449.mobile, 'optionalAccess', _450 => _450.enabled]);
22444
+ const isAdminHeader = _optionalChain([config, 'optionalAccess', _451 => _451.className, 'optionalAccess', _452 => _452.includes, 'call', _453 => _453("admin")]);
22389
22445
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
22390
22446
  "header",
22391
22447
  {
@@ -22394,11 +22450,11 @@ function HeaderSkeleton({ config }) {
22394
22450
  "bg-ods-card border-b border-ods-border backdrop-blur-sm",
22395
22451
  "px-6 py-3",
22396
22452
  "transition-opacity duration-300 ease-in-out",
22397
- _optionalChain([config, 'optionalAccess', _453 => _453.className])
22453
+ _optionalChain([config, 'optionalAccess', _454 => _454.className])
22398
22454
  ),
22399
22455
  children: [
22400
22456
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
22401
- 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" }) }),
22457
+ isAdminHeader && _optionalChain([config, 'optionalAccess', _455 => _455.actions, 'optionalAccess', _456 => _456.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" }) }),
22402
22458
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
22403
22459
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
22404
22460
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
@@ -22406,8 +22462,8 @@ function HeaderSkeleton({ config }) {
22406
22462
  ] }),
22407
22463
  showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunkFIG2RKZFcjs.cn.call(void 0,
22408
22464
  "hidden md:flex items-center gap-2",
22409
- _optionalChain([config, 'optionalAccess', _456 => _456.navigation, 'optionalAccess', _457 => _457.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
22410
- _optionalChain([config, 'optionalAccess', _458 => _458.navigation, 'optionalAccess', _459 => _459.position]) === "right" && "ml-auto mr-4"
22465
+ _optionalChain([config, 'optionalAccess', _457 => _457.navigation, 'optionalAccess', _458 => _458.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
22466
+ _optionalChain([config, 'optionalAccess', _459 => _459.navigation, 'optionalAccess', _460 => _460.position]) === "right" && "ml-auto mr-4"
22411
22467
  ), children: [
22412
22468
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
22413
22469
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
@@ -22455,7 +22511,7 @@ function MobileNavPanel({ isOpen, config }) {
22455
22511
  _react.useEffect.call(void 0, () => {
22456
22512
  const handleKeyDown = (e) => {
22457
22513
  if (e.key === "Escape" && isOpen) {
22458
- _optionalChain([config, 'access', _460 => _460.onClose, 'optionalCall', _461 => _461()]);
22514
+ _optionalChain([config, 'access', _461 => _461.onClose, 'optionalCall', _462 => _462()]);
22459
22515
  }
22460
22516
  };
22461
22517
  if (isOpen) {
@@ -22472,7 +22528,7 @@ function MobileNavPanel({ isOpen, config }) {
22472
22528
  if (item.onClick) {
22473
22529
  item.onClick();
22474
22530
  }
22475
- _optionalChain([config, 'access', _462 => _462.onClose, 'optionalCall', _463 => _463()]);
22531
+ _optionalChain([config, 'access', _463 => _463.onClose, 'optionalCall', _464 => _464()]);
22476
22532
  };
22477
22533
  if (item.href) {
22478
22534
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -22567,57 +22623,9 @@ _chunkN5UOJC3Vcjs.init_button2.call(void 0, );
22567
22623
  function SlidingSidebar({ config }) {
22568
22624
  const [expandedItems, setExpandedItems] = _react.useState.call(void 0, /* @__PURE__ */ new Set());
22569
22625
  const [mounted, setMounted] = _react.useState.call(void 0, false);
22570
- const [headerHeight, setHeaderHeight] = _react.useState.call(void 0, 64);
22626
+ const headerHeight = _chunkQLWBBCI5cjs.useHeaderHeight.call(void 0, );
22571
22627
  _react.useEffect.call(void 0, () => {
22572
22628
  setMounted(true);
22573
- const calculateHeaderHeight = () => {
22574
- let totalHeight = 0;
22575
- const header2 = document.querySelector("header");
22576
- if (header2) {
22577
- totalHeight += header2.offsetHeight;
22578
- }
22579
- const announcementBar2 = document.querySelector("[data-announcement-bar]");
22580
- if (announcementBar2 && announcementBar2 instanceof HTMLElement) {
22581
- totalHeight += announcementBar2.offsetHeight;
22582
- }
22583
- if (totalHeight > 0) {
22584
- setHeaderHeight(totalHeight);
22585
- } else {
22586
- setHeaderHeight(64);
22587
- }
22588
- };
22589
- setTimeout(calculateHeaderHeight, 100);
22590
- calculateHeaderHeight();
22591
- window.addEventListener("resize", calculateHeaderHeight);
22592
- const resizeObserver = new ResizeObserver(calculateHeaderHeight);
22593
- const header = document.querySelector("header");
22594
- if (header) {
22595
- resizeObserver.observe(header);
22596
- }
22597
- const announcementBar = document.querySelector("[data-announcement-bar]");
22598
- if (announcementBar) {
22599
- resizeObserver.observe(announcementBar);
22600
- }
22601
- const mutationObserver = new MutationObserver((mutations) => {
22602
- for (const mutation of mutations) {
22603
- if (mutation.type === "childList") {
22604
- calculateHeaderHeight();
22605
- const newAnnouncementBar = document.querySelector("[data-announcement-bar]");
22606
- if (newAnnouncementBar) {
22607
- resizeObserver.observe(newAnnouncementBar);
22608
- }
22609
- }
22610
- }
22611
- });
22612
- mutationObserver.observe(document.body, {
22613
- childList: true,
22614
- subtree: true
22615
- });
22616
- return () => {
22617
- window.removeEventListener("resize", calculateHeaderHeight);
22618
- resizeObserver.disconnect();
22619
- mutationObserver.disconnect();
22620
- };
22621
22629
  }, []);
22622
22630
  const toggleExpanded = (itemId) => {
22623
22631
  const newExpanded = new Set(expandedItems);
@@ -22690,7 +22698,7 @@ function SlidingSidebar({ config }) {
22690
22698
  variant: "transparent",
22691
22699
  size: "default",
22692
22700
  onClick: () => {
22693
- _optionalChain([item, 'access', _464 => _464.onClick, 'optionalCall', _465 => _465()]);
22701
+ _optionalChain([item, 'access', _465 => _465.onClick, 'optionalCall', _466 => _466()]);
22694
22702
  config.onClose();
22695
22703
  },
22696
22704
  leftIcon: item.icon,
@@ -22713,7 +22721,7 @@ function SlidingSidebar({ config }) {
22713
22721
  variant: "transparent",
22714
22722
  size: "default",
22715
22723
  onClick: () => {
22716
- _optionalChain([item, 'access', _466 => _466.onClick, 'optionalCall', _467 => _467()]);
22724
+ _optionalChain([item, 'access', _467 => _467.onClick, 'optionalCall', _468 => _468()]);
22717
22725
  config.onClose();
22718
22726
  },
22719
22727
  leftIcon: item.icon,
@@ -22840,7 +22848,7 @@ function StickySectionNav({
22840
22848
  ] });
22841
22849
  }
22842
22850
  function useSectionNavigation(sections, options) {
22843
- const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _468 => _468[0], 'optionalAccess', _469 => _469.id]) || "");
22851
+ const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _469 => _469[0], 'optionalAccess', _470 => _470.id]) || "");
22844
22852
  const isScrollingFromClick = _react.useRef.call(void 0, false);
22845
22853
  const { offset: offset2 = 100 } = options || {};
22846
22854
  const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
@@ -22864,7 +22872,7 @@ function useSectionNavigation(sections, options) {
22864
22872
  const handleScroll = () => {
22865
22873
  if (isScrollingFromClick.current) return;
22866
22874
  const scrollPosition = window.scrollY + offset2 + 50;
22867
- let currentSection = _optionalChain([sections, 'access', _470 => _470[0], 'optionalAccess', _471 => _471.id]) || "";
22875
+ let currentSection = _optionalChain([sections, 'access', _471 => _471[0], 'optionalAccess', _472 => _472.id]) || "";
22868
22876
  for (let i = sections.length - 1; i >= 0; i--) {
22869
22877
  const element = document.getElementById(sections[i].id);
22870
22878
  if (element && scrollPosition >= element.offsetTop) {
@@ -23044,10 +23052,10 @@ var MINIMIZED_WIDTH = 56;
23044
23052
  var EXPANDED_WIDTH = 224;
23045
23053
  var STORAGE_KEY = "of.navigationSidebar.minimized";
23046
23054
  function NavigationSidebar({ config, disabled = false }) {
23047
- const isMdUp = _nullishCoalesce(_chunk3DC6MHW6cjs.useMdUp.call(void 0, ), () => ( false));
23048
- const isLgUp = _nullishCoalesce(_chunk3DC6MHW6cjs.useLgUp.call(void 0, ), () => ( false));
23055
+ const isMdUp = _nullishCoalesce(_chunkQLWBBCI5cjs.useMdUp.call(void 0, ), () => ( false));
23056
+ const isLgUp = _nullishCoalesce(_chunkQLWBBCI5cjs.useLgUp.call(void 0, ), () => ( false));
23049
23057
  const isTablet = isMdUp && !isLgUp;
23050
- const [desktopMinimized, setDesktopMinimized] = _chunk3DC6MHW6cjs.useLocalStorage.call(void 0,
23058
+ const [desktopMinimized, setDesktopMinimized] = _chunkQLWBBCI5cjs.useLocalStorage.call(void 0,
23051
23059
  STORAGE_KEY,
23052
23060
  _nullishCoalesce(config.minimized, () => ( false))
23053
23061
  );
@@ -23065,7 +23073,7 @@ function NavigationSidebar({ config, disabled = false }) {
23065
23073
  } else {
23066
23074
  setDesktopMinimized((prev) => !prev);
23067
23075
  }
23068
- _optionalChain([config, 'access', _472 => _472.onToggleMinimized, 'optionalCall', _473 => _473()]);
23076
+ _optionalChain([config, 'access', _473 => _473.onToggleMinimized, 'optionalCall', _474 => _474()]);
23069
23077
  }, [isTablet, setDesktopMinimized, config]);
23070
23078
  const closeOverlay = _react.useCallback.call(void 0, () => {
23071
23079
  setTabletMinimized(true);
@@ -23079,11 +23087,11 @@ function NavigationSidebar({ config, disabled = false }) {
23079
23087
  return () => document.removeEventListener("keydown", handleKeyDown);
23080
23088
  }, [isOverlayOpen, closeOverlay]);
23081
23089
  const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
23082
- _optionalChain([event, 'optionalAccess', _474 => _474.stopPropagation, 'call', _475 => _475()]);
23090
+ _optionalChain([event, 'optionalAccess', _475 => _475.stopPropagation, 'call', _476 => _476()]);
23083
23091
  if (item.onClick) {
23084
23092
  item.onClick();
23085
23093
  } else if (item.path) {
23086
- _optionalChain([config, 'access', _476 => _476.onNavigate, 'optionalCall', _477 => _477(item.path)]);
23094
+ _optionalChain([config, 'access', _477 => _477.onNavigate, 'optionalCall', _478 => _478(item.path)]);
23087
23095
  }
23088
23096
  if (isTablet) setTabletMinimized(true);
23089
23097
  }, [config, isTablet]);
@@ -23228,11 +23236,11 @@ function HeaderGlobalSearch({
23228
23236
  };
23229
23237
  const handleSubmit = (e) => {
23230
23238
  e.preventDefault();
23231
- _optionalChain([onSubmit, 'optionalCall', _478 => _478(currentValue)]);
23239
+ _optionalChain([onSubmit, 'optionalCall', _479 => _479(currentValue)]);
23232
23240
  };
23233
23241
  const handleKeyDown = (e) => {
23234
23242
  if (e.key === "Enter") {
23235
- _optionalChain([onSubmit, 'optionalCall', _479 => _479(currentValue)]);
23243
+ _optionalChain([onSubmit, 'optionalCall', _480 => _480(currentValue)]);
23236
23244
  }
23237
23245
  };
23238
23246
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -23326,8 +23334,8 @@ function HeaderOrganizationFilter({
23326
23334
  className
23327
23335
  }) {
23328
23336
  const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
23329
- const displayName = _optionalChain([selectedOrg, 'optionalAccess', _480 => _480.name]) || "All Organizations";
23330
- const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _481 => _481.deviceCount]), () => ( totalDeviceCount));
23337
+ const displayName = _optionalChain([selectedOrg, 'optionalAccess', _481 => _481.name]) || "All Organizations";
23338
+ const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _482 => _482.deviceCount]), () => ( totalDeviceCount));
23331
23339
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkN5UOJC3Vcjs.DropdownMenu, { children: [
23332
23340
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkN5UOJC3Vcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23333
23341
  "button",
@@ -23352,11 +23360,11 @@ function HeaderOrganizationFilter({
23352
23360
  }
23353
23361
  ) }),
23354
23362
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkN5UOJC3Vcjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
23355
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkN5UOJC3Vcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _482 => _482("")]), children: "All Organizations" }),
23363
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkN5UOJC3Vcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _483 => _483("")]), children: "All Organizations" }),
23356
23364
  organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23357
23365
  _chunkN5UOJC3Vcjs.DropdownMenuItem,
23358
23366
  {
23359
- onClick: () => _optionalChain([onOrgChange, 'optionalCall', _483 => _483(org.id)]),
23367
+ onClick: () => _optionalChain([onOrgChange, 'optionalCall', _484 => _484(org.id)]),
23360
23368
  children: org.name
23361
23369
  },
23362
23370
  org.id
@@ -23390,7 +23398,7 @@ var AppHeader = React89.default.memo(function AppHeader2({
23390
23398
  onToggleMobileMenu,
23391
23399
  disabled = false
23392
23400
  }) {
23393
- const isMdUp = _nullishCoalesce(_chunk3DC6MHW6cjs.useMdUp.call(void 0, ), () => ( false));
23401
+ const isMdUp = _nullishCoalesce(_chunkQLWBBCI5cjs.useMdUp.call(void 0, ), () => ( false));
23394
23402
  const dimmedClass = disabled ? "pointer-events-none opacity-50" : "";
23395
23403
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23396
23404
  "header",
@@ -23541,9 +23549,9 @@ function NotificationsHeaderButton({
23541
23549
  dimmedClass
23542
23550
  }) {
23543
23551
  const ctx = useOptionalNotifications();
23544
- const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _484 => _484.unreadCount]), () => ( fallbackUnreadCount))) > 0;
23545
- const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _485 => _485.isOpen]), () => ( false));
23546
- const onClick = _optionalChain([ctx, 'optionalAccess', _486 => _486.toggle]);
23552
+ const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _485 => _485.unreadCount]), () => ( fallbackUnreadCount))) > 0;
23553
+ const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _486 => _486.isOpen]), () => ( false));
23554
+ const onClick = _optionalChain([ctx, 'optionalAccess', _487 => _487.toggle]);
23547
23555
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23548
23556
  HeaderButton,
23549
23557
  {
@@ -23607,7 +23615,7 @@ var MobileBurgerMenu = React89.default.memo(function MobileBurgerMenu2({
23607
23615
  if (item.onClick) {
23608
23616
  item.onClick();
23609
23617
  } else if (item.path) {
23610
- _optionalChain([config, 'access', _487 => _487.onNavigate, 'optionalCall', _488 => _488(item.path)]);
23618
+ _optionalChain([config, 'access', _488 => _488.onNavigate, 'optionalCall', _489 => _489(item.path)]);
23611
23619
  }
23612
23620
  onClose();
23613
23621
  }, [config, onClose]);
@@ -23850,7 +23858,7 @@ var AppLayoutDrawerRoot = ({
23850
23858
  const handleOpenChange = React82.useCallback(
23851
23859
  (next) => {
23852
23860
  if (!isControlled) setInternalOpen(next);
23853
- _optionalChain([onOpenChange, 'optionalCall', _489 => _489(next)]);
23861
+ _optionalChain([onOpenChange, 'optionalCall', _490 => _490(next)]);
23854
23862
  },
23855
23863
  [isControlled, onOpenChange]
23856
23864
  );
@@ -24231,10 +24239,10 @@ var AppLayoutDrawerContent = React82.forwardRef(
24231
24239
  ),
24232
24240
  style,
24233
24241
  onInteractOutside: (event) => {
24234
- _optionalChain([onInteractOutside, 'optionalCall', _490 => _490(event)]);
24242
+ _optionalChain([onInteractOutside, 'optionalCall', _491 => _491(event)]);
24235
24243
  if (event.defaultPrevented) return;
24236
24244
  const target = event.target;
24237
- const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _491 => _491.contains, 'call', _492 => _492(target)]);
24245
+ const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _492 => _492.contains, 'call', _493 => _493(target)]);
24238
24246
  if (!isInsideContainer) {
24239
24247
  event.preventDefault();
24240
24248
  return;
@@ -24375,7 +24383,7 @@ var ToolBadge = ({
24375
24383
  }) => {
24376
24384
  const label = getToolLabel(toolType);
24377
24385
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex items-center gap-1 text-ods-text-secondary", className), children: [
24378
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3DC6MHW6cjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
24386
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQLWBBCI5cjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
24379
24387
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: label })
24380
24388
  ] });
24381
24389
  };
@@ -24423,7 +24431,7 @@ var ShellTypeBadge = ({
24423
24431
  className,
24424
24432
  iconClassName
24425
24433
  }) => {
24426
- const normalizedType = _optionalChain([shellType, 'optionalAccess', _493 => _493.toUpperCase, 'call', _494 => _494()]);
24434
+ const normalizedType = _optionalChain([shellType, 'optionalAccess', _494 => _494.toUpperCase, 'call', _495 => _495()]);
24427
24435
  const label = getShellLabel(normalizedType);
24428
24436
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
24429
24437
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
@@ -24747,7 +24755,7 @@ function OnboardingWalkthrough({
24747
24755
  isStepSkipped,
24748
24756
  allStepsComplete,
24749
24757
  markMultipleComplete
24750
- } = _chunk3DC6MHW6cjs.useOnboardingState.call(void 0, storageKey);
24758
+ } = _chunkQLWBBCI5cjs.useOnboardingState.call(void 0, storageKey);
24751
24759
  const hasAutoMarkedRef = _react.useRef.call(void 0, false);
24752
24760
  const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
24753
24761
  const lastCompletionStatusRef = _react.useRef.call(void 0, null);
@@ -24810,12 +24818,12 @@ function OnboardingWalkthrough({
24810
24818
  }
24811
24819
  }, [state.completedSteps, markComplete]);
24812
24820
  const handleStepSkip = (step) => {
24813
- _optionalChain([step, 'access', _495 => _495.onSkip, 'optionalCall', _496 => _496()]);
24821
+ _optionalChain([step, 'access', _496 => _496.onSkip, 'optionalCall', _497 => _497()]);
24814
24822
  markSkipped(step.id);
24815
24823
  };
24816
24824
  const handleDismiss = () => {
24817
24825
  dismissOnboarding();
24818
- _optionalChain([onDismiss, 'optionalCall', _497 => _497()]);
24826
+ _optionalChain([onDismiss, 'optionalCall', _498 => _498()]);
24819
24827
  };
24820
24828
  if (state.dismissed) {
24821
24829
  return null;
@@ -24945,7 +24953,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
24945
24953
  onKeyDown: (e) => {
24946
24954
  if (e.key === "Enter" || e.key === " ") {
24947
24955
  e.preventDefault();
24948
- _optionalChain([onClick, 'optionalCall', _498 => _498()]);
24956
+ _optionalChain([onClick, 'optionalCall', _499 => _499()]);
24949
24957
  }
24950
24958
  },
24951
24959
  children: [
@@ -24954,7 +24962,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
24954
24962
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-5 text-white", children: log.title }),
24955
24963
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
24956
24964
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['Azeret_Mono'] font-normal text-[13px] leading-4 text-ods-text-secondary uppercase tracking-wider", children: formatTimestamp(log.timestamp) }),
24957
- log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3DC6MHW6cjs.ToolIcon, { toolType: log.toolType, size: 16 })
24965
+ log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQLWBBCI5cjs.ToolIcon, { toolType: log.toolType, size: 16 })
24958
24966
  ] })
24959
24967
  ] })
24960
24968
  ]
@@ -25046,7 +25054,7 @@ var LogsList = React86.forwardRef(({
25046
25054
  log,
25047
25055
  isLast: index === logs.length - 1,
25048
25056
  showConnector,
25049
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _499 => _499(log)])
25057
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _500 => _500(log)])
25050
25058
  },
25051
25059
  log.id
25052
25060
  ))
@@ -25091,7 +25099,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
25091
25099
  }
25092
25100
  function ServiceCardRowItem({ row }) {
25093
25101
  const [revealed, setRevealed] = _react.useState.call(void 0, false);
25094
- const { copy, copied } = _chunk3DC6MHW6cjs.useCopyToClipboard.call(void 0, );
25102
+ const { copy, copied } = _chunkQLWBBCI5cjs.useCopyToClipboard.call(void 0, );
25095
25103
  const actions = _react.useMemo.call(void 0, () => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }), [row]);
25096
25104
  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 });
25097
25105
  const handleCopy = () => copy(_nullishCoalesce(row.copyValue, () => ( row.value)));
@@ -25147,7 +25155,7 @@ var Slider = React88.forwardRef(
25147
25155
  ({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
25148
25156
  const handleChange = (e) => {
25149
25157
  const newValue = [Number(e.target.value)];
25150
- _optionalChain([onValueChange, 'optionalCall', _500 => _500(newValue)]);
25158
+ _optionalChain([onValueChange, 'optionalCall', _501 => _501(newValue)]);
25151
25159
  };
25152
25160
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25153
25161
  "input",
@@ -25459,7 +25467,7 @@ function CursorPaginationSimple({
25459
25467
  {
25460
25468
  variant: "transparent",
25461
25469
  size: "icon",
25462
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _501 => _501("")]),
25470
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _502 => _502("")]),
25463
25471
  disabled: !hasPreviousPage || loading,
25464
25472
  className: "h-8 w-8",
25465
25473
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -25471,7 +25479,7 @@ function CursorPaginationSimple({
25471
25479
  {
25472
25480
  variant: "transparent",
25473
25481
  size: "icon",
25474
- onClick: () => _optionalChain([onNext, 'optionalCall', _502 => _502("")]),
25482
+ onClick: () => _optionalChain([onNext, 'optionalCall', _503 => _503("")]),
25475
25483
  disabled: !hasNextPage || loading,
25476
25484
  className: "h-8 w-8",
25477
25485
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -25531,7 +25539,7 @@ function TableColumnFilterDropdown({
25531
25539
  placement = "bottom-start",
25532
25540
  dropdownClassName = "min-w-[240px]"
25533
25541
  }) {
25534
- const activeCount = _optionalChain([filters, 'optionalAccess', _503 => _503[columnKey], 'optionalAccess', _504 => _504.length]) || 0;
25542
+ const activeCount = _optionalChain([filters, 'optionalAccess', _504 => _504[columnKey], 'optionalAccess', _505 => _505.length]) || 0;
25535
25543
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25536
25544
  FiltersDropdown,
25537
25545
  {
@@ -25574,7 +25582,7 @@ function TableColumnFilterDropdown({
25574
25582
  delete newFilters[columnKey];
25575
25583
  onFilterChange(newFilters);
25576
25584
  },
25577
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _505 => _505[columnKey]]) || [] },
25585
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _506 => _506[columnKey]]) || [] },
25578
25586
  placement,
25579
25587
  dropdownClassName
25580
25588
  }
@@ -25649,7 +25657,7 @@ function TableHeader({
25649
25657
  }
25650
25658
  return sortDirection === "asc" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Arrow01DownIcon, { className: "w-4 h-4 text-ods-accent" });
25651
25659
  };
25652
- const isLgUp = _nullishCoalesce(_chunk3DC6MHW6cjs.useLgUp.call(void 0, ), () => ( false));
25660
+ const isLgUp = _nullishCoalesce(_chunkQLWBBCI5cjs.useLgUp.call(void 0, ), () => ( false));
25653
25661
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25654
25662
  "div",
25655
25663
  {
@@ -25871,7 +25879,7 @@ function TableRow({
25871
25879
  const keys = column.key.split(".");
25872
25880
  let value = item;
25873
25881
  for (const key of keys) {
25874
- value = _optionalChain([value, 'optionalAccess', _506 => _506[key]]);
25882
+ value = _optionalChain([value, 'optionalAccess', _507 => _507[key]]);
25875
25883
  }
25876
25884
  if (value === null || value === void 0) {
25877
25885
  return "-";
@@ -25941,7 +25949,7 @@ function TableRow({
25941
25949
  // src/components/ui/table/table.tsx
25942
25950
 
25943
25951
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
25944
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _507 => _507.length])) || Boolean(renderRowActions);
25952
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _508 => _508.length])) || Boolean(renderRowActions);
25945
25953
  const result = [...columns];
25946
25954
  if (hasActions) {
25947
25955
  const actionsColumn = {
@@ -26035,7 +26043,7 @@ function Table({
26035
26043
  return rowKey(item);
26036
26044
  }
26037
26045
  const key = item[rowKey];
26038
- return _optionalChain([key, 'optionalAccess', _508 => _508.toString, 'call', _509 => _509()]) || index.toString();
26046
+ return _optionalChain([key, 'optionalAccess', _509 => _509.toString, 'call', _510 => _510()]) || index.toString();
26039
26047
  };
26040
26048
  const getRowClassName = (item, index) => {
26041
26049
  if (typeof rowClassName === "function") {
@@ -26069,23 +26077,23 @@ function Table({
26069
26077
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
26070
26078
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
26071
26079
  const sentinelRef = _react.useRef.call(void 0, null);
26072
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _510 => _510.onLoadMore]));
26073
- onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _511 => _511.onLoadMore]);
26080
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _511 => _511.onLoadMore]));
26081
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _512 => _512.onLoadMore]);
26074
26082
  _react.useEffect.call(void 0, () => {
26075
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _512 => _512.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
26083
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _513 => _513.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
26076
26084
  const sentinel = sentinelRef.current;
26077
26085
  if (!sentinel) return;
26078
26086
  const observer = new IntersectionObserver(
26079
26087
  (entries) => {
26080
- if (_optionalChain([entries, 'access', _513 => _513[0], 'optionalAccess', _514 => _514.isIntersecting])) {
26081
- _optionalChain([onLoadMoreRef, 'access', _515 => _515.current, 'optionalCall', _516 => _516()]);
26088
+ if (_optionalChain([entries, 'access', _514 => _514[0], 'optionalAccess', _515 => _515.isIntersecting])) {
26089
+ _optionalChain([onLoadMoreRef, 'access', _516 => _516.current, 'optionalCall', _517 => _517()]);
26082
26090
  }
26083
26091
  },
26084
26092
  { rootMargin: "200px" }
26085
26093
  );
26086
26094
  observer.observe(sentinel);
26087
26095
  return () => observer.disconnect();
26088
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _517 => _517.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _518 => _518.isFetchingNextPage])]);
26096
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _518 => _518.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _519 => _519.isFetchingNextPage])]);
26089
26097
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
26090
26098
  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: [
26091
26099
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -26156,7 +26164,7 @@ function Table({
26156
26164
  },
26157
26165
  getRowKey(item, index)
26158
26166
  )),
26159
- _optionalChain([infiniteScroll, 'optionalAccess', _519 => _519.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26167
+ _optionalChain([infiniteScroll, 'optionalAccess', _520 => _520.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26160
26168
  TableCardSkeleton,
26161
26169
  {
26162
26170
  columns,
@@ -26165,7 +26173,7 @@ function Table({
26165
26173
  hasChevron: Boolean(rowHref)
26166
26174
  }
26167
26175
  ),
26168
- _optionalChain([infiniteScroll, 'optionalAccess', _520 => _520.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
26176
+ _optionalChain([infiniteScroll, 'optionalAccess', _521 => _521.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
26169
26177
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26170
26178
  "div",
26171
26179
  {
@@ -26523,7 +26531,7 @@ function QueryReportTable({
26523
26531
  );
26524
26532
  const handleExport = () => {
26525
26533
  exportToCSV(data, columns, exportFilename);
26526
- _optionalChain([onExport, 'optionalCall', _521 => _521()]);
26534
+ _optionalChain([onExport, 'optionalCall', _522 => _522()]);
26527
26535
  };
26528
26536
  const tableMinWidth = columns.length * (columnWidth + 16);
26529
26537
  const {
@@ -26539,7 +26547,7 @@ function QueryReportTable({
26539
26547
  onThumbPointerDown,
26540
26548
  onThumbPointerMove,
26541
26549
  onThumbPointerUp
26542
- } = _chunk3DC6MHW6cjs.useHorizontalScrollbar.call(void 0, );
26550
+ } = _chunkQLWBBCI5cjs.useHorizontalScrollbar.call(void 0, );
26543
26551
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col w-full", isCompact ? "gap-0" : "gap-6", className), children: [
26544
26552
  !isCompact && (title || headerActions || showExport && data.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end justify-between pt-6", children: [
26545
26553
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "font-mono font-semibold text-[32px] leading-[40px] text-ods-text-primary", children: title }),
@@ -26696,7 +26704,7 @@ function DataTableColumnFilter({
26696
26704
  align = "left"
26697
26705
  }) {
26698
26706
  const currentValue = column.getFilterValue();
26699
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _522 => _522.length]), () => ( 0));
26707
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _523 => _523.length]), () => ( 0));
26700
26708
  const sections = _react.useMemo.call(void 0,
26701
26709
  () => [
26702
26710
  {
@@ -26770,13 +26778,13 @@ function DataTableHeader({
26770
26778
  onSortChange
26771
26779
  }) {
26772
26780
  const table = useDataTableContext();
26773
- const isLgUp = _nullishCoalesce(_chunk3DC6MHW6cjs.useLgUp.call(void 0, ), () => ( false));
26781
+ const isLgUp = _nullishCoalesce(_chunkQLWBBCI5cjs.useLgUp.call(void 0, ), () => ( false));
26774
26782
  const headerGroup = table.getHeaderGroups()[0];
26775
26783
  if (!headerGroup) return null;
26776
26784
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
26777
26785
  if (header.isPlaceholder) return false;
26778
26786
  if (isLgUp) return true;
26779
- return Boolean(_optionalChain([header, 'access', _523 => _523.column, 'access', _524 => _524.columnDef, 'access', _525 => _525.meta, 'optionalAccess', _526 => _526.filter]));
26787
+ return Boolean(_optionalChain([header, 'access', _524 => _524.column, 'access', _525 => _525.columnDef, 'access', _526 => _526.meta, 'optionalAccess', _527 => _527.filter]));
26780
26788
  });
26781
26789
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26782
26790
  "div",
@@ -26806,20 +26814,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
26806
26814
  if (header.isPlaceholder) return null;
26807
26815
  const column = header.column;
26808
26816
  const meta = column.columnDef.meta;
26809
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _527 => _527.filter]));
26810
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _528 => _528.align]), () => ( "left"));
26811
- const canSort = _optionalChain([meta, 'optionalAccess', _529 => _529.sortable]) === true;
26812
- const sortDir = _optionalChain([sort, 'optionalAccess', _530 => _530.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
26817
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _528 => _528.filter]));
26818
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _529 => _529.align]), () => ( "left"));
26819
+ const canSort = _optionalChain([meta, 'optionalAccess', _530 => _530.sortable]) === true;
26820
+ const sortDir = _optionalChain([sort, 'optionalAccess', _531 => _531.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
26813
26821
  if (!isLgUp && !hasFilter) return null;
26814
26822
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26815
26823
  "div",
26816
26824
  {
26817
26825
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
26818
26826
  "flex items-stretch",
26819
- isLgUp && (_optionalChain([meta, 'optionalAccess', _531 => _531.width]) || "flex-1 min-w-0"),
26820
- _optionalChain([meta, 'optionalAccess', _532 => _532.headerClassName]),
26827
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _532 => _532.width]) || "flex-1 min-w-0"),
26828
+ _optionalChain([meta, 'optionalAccess', _533 => _533.headerClassName]),
26821
26829
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
26822
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _533 => _533.hideAt]))
26830
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _534 => _534.hideAt]))
26823
26831
  ),
26824
26832
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26825
26833
  DataTableColumnFilter,
@@ -26838,7 +26846,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
26838
26846
  isLgUp && alignJustify(align),
26839
26847
  canSort && "group cursor-pointer"
26840
26848
  ),
26841
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _534 => _534(column.id)]) : void 0,
26849
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _535 => _535(column.id)]) : void 0,
26842
26850
  children: [
26843
26851
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
26844
26852
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -26922,7 +26930,7 @@ function DataTableSkeleton({
26922
26930
  }) {
26923
26931
  const table = useDataTableContext();
26924
26932
  const columns = table.getVisibleFlatColumns();
26925
- const firstColumnId = _optionalChain([columns, 'access', _535 => _535[0], 'optionalAccess', _536 => _536.id]);
26933
+ const firstColumnId = _optionalChain([columns, 'access', _536 => _536[0], 'optionalAccess', _537 => _537.id]);
26926
26934
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26927
26935
  "div",
26928
26936
  {
@@ -26946,7 +26954,7 @@ function DataTableSkeleton({
26946
26954
  {
26947
26955
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
26948
26956
  "flex flex-col justify-center shrink-0",
26949
- _optionalChain([meta, 'optionalAccess', _537 => _537.width]) || "flex-1"
26957
+ _optionalChain([meta, 'optionalAccess', _538 => _538.width]) || "flex-1"
26950
26958
  ),
26951
26959
  children: [
26952
26960
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
@@ -26995,7 +27003,7 @@ function DataTableRowImpl({
26995
27003
  const handleClick = _react.useCallback.call(void 0,
26996
27004
  (e) => {
26997
27005
  const target = e.target;
26998
- if (!_optionalChain([containerRef, 'access', _538 => _538.current, 'optionalAccess', _539 => _539.contains, 'call', _540 => _540(target)])) {
27006
+ if (!_optionalChain([containerRef, 'access', _539 => _539.current, 'optionalAccess', _540 => _540.contains, 'call', _541 => _541(target)])) {
26999
27007
  if (isLinkMode) e.preventDefault();
27000
27008
  return;
27001
27009
  }
@@ -27003,7 +27011,7 @@ function DataTableRowImpl({
27003
27011
  if (isLinkMode) e.preventDefault();
27004
27012
  return;
27005
27013
  }
27006
- _optionalChain([onClick, 'optionalCall', _541 => _541(row.original)]);
27014
+ _optionalChain([onClick, 'optionalCall', _542 => _542(row.original)]);
27007
27015
  },
27008
27016
  [onClick, row.original, isLinkMode]
27009
27017
  );
@@ -27028,10 +27036,10 @@ function DataTableRowImpl({
27028
27036
  {
27029
27037
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
27030
27038
  "flex flex-col overflow-hidden",
27031
- alignJustify(_optionalChain([meta, 'optionalAccess', _542 => _542.align])),
27032
- _optionalChain([meta, 'optionalAccess', _543 => _543.width]) || "flex-1 min-w-0",
27033
- _optionalChain([meta, 'optionalAccess', _544 => _544.cellClassName]),
27034
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _545 => _545.hideAt]))
27039
+ alignJustify(_optionalChain([meta, 'optionalAccess', _543 => _543.align])),
27040
+ _optionalChain([meta, 'optionalAccess', _544 => _544.width]) || "flex-1 min-w-0",
27041
+ _optionalChain([meta, 'optionalAccess', _545 => _545.cellClassName]),
27042
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _546 => _546.hideAt]))
27035
27043
  ),
27036
27044
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
27037
27045
  },
@@ -27109,7 +27117,7 @@ function DataTableBody({
27109
27117
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
27110
27118
  rows.map((row, index) => {
27111
27119
  const item = row.original;
27112
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _546 => _546(item)]), () => ( void 0));
27120
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _547 => _547(item)]), () => ( void 0));
27113
27121
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
27114
27122
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27115
27123
  DataTableRow,
@@ -27119,7 +27127,7 @@ function DataTableBody({
27119
27127
  href,
27120
27128
  compact,
27121
27129
  className: cls,
27122
- subRow: _optionalChain([renderSubRow, 'optionalCall', _547 => _547(item)])
27130
+ subRow: _optionalChain([renderSubRow, 'optionalCall', _548 => _548(item)])
27123
27131
  },
27124
27132
  row.id
27125
27133
  );
@@ -27174,7 +27182,7 @@ function DataTableInfiniteFooter({
27174
27182
  if (!sentinel) return;
27175
27183
  const observer = new IntersectionObserver(
27176
27184
  (entries) => {
27177
- if (_optionalChain([entries, 'access', _548 => _548[0], 'optionalAccess', _549 => _549.isIntersecting])) onLoadMoreRef.current();
27185
+ if (_optionalChain([entries, 'access', _549 => _549[0], 'optionalAccess', _550 => _550.isIntersecting])) onLoadMoreRef.current();
27178
27186
  },
27179
27187
  { rootMargin }
27180
27188
  );
@@ -27222,7 +27230,7 @@ function DataTableRowCount({
27222
27230
  const table = useDataTableContext();
27223
27231
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
27224
27232
  if (hideWhenEmpty && count === 0) return null;
27225
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _550 => _550(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
27233
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _551 => _551(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
27226
27234
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
27227
27235
  "span",
27228
27236
  {
@@ -27307,7 +27315,7 @@ function FilterListItem({
27307
27315
  }) {
27308
27316
  const handleToggle = () => {
27309
27317
  if (disabled) return;
27310
- _optionalChain([onToggle, 'optionalCall', _551 => _551(!selected)]);
27318
+ _optionalChain([onToggle, 'optionalCall', _552 => _552(!selected)]);
27311
27319
  };
27312
27320
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
27313
27321
  "div",
@@ -27354,7 +27362,7 @@ function FilterListItem({
27354
27362
  CheckboxPrimitive4.Root,
27355
27363
  {
27356
27364
  checked: selected,
27357
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _552 => _552(c === true)]),
27365
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _553 => _553(c === true)]),
27358
27366
  onClick: (e) => e.stopPropagation(),
27359
27367
  disabled,
27360
27368
  "aria-label": title,
@@ -27453,7 +27461,7 @@ function TagSearchInput({
27453
27461
  if (!showHiddenTags) return;
27454
27462
  const handleClick = (e) => {
27455
27463
  const target = e.target;
27456
- if (!_optionalChain([hiddenTagsRef, 'access', _553 => _553.current, 'optionalAccess', _554 => _554.contains, 'call', _555 => _555(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _556 => _556.current, 'optionalAccess', _557 => _557.contains, 'call', _558 => _558(target)])) {
27464
+ if (!_optionalChain([hiddenTagsRef, 'access', _554 => _554.current, 'optionalAccess', _555 => _555.contains, 'call', _556 => _556(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _557 => _557.current, 'optionalAccess', _558 => _558.contains, 'call', _559 => _559(target)])) {
27457
27465
  setShowHiddenTags(false);
27458
27466
  }
27459
27467
  };
@@ -27469,13 +27477,13 @@ function TagSearchInput({
27469
27477
  e.preventDefault();
27470
27478
  onSubmit(searchValue);
27471
27479
  }
27472
- _optionalChain([onKeyDown, 'optionalCall', _559 => _559(e)]);
27480
+ _optionalChain([onKeyDown, 'optionalCall', _560 => _560(e)]);
27473
27481
  };
27474
27482
  const handleClearAll = (e) => {
27475
27483
  e.stopPropagation();
27476
27484
  e.preventDefault();
27477
- _optionalChain([onClearAll, 'optionalCall', _560 => _560()]);
27478
- _optionalChain([inputRef, 'access', _561 => _561.current, 'optionalAccess', _562 => _562.focus, 'call', _563 => _563()]);
27485
+ _optionalChain([onClearAll, 'optionalCall', _561 => _561()]);
27486
+ _optionalChain([inputRef, 'access', _562 => _562.current, 'optionalAccess', _563 => _563.focus, 'call', _564 => _564()]);
27479
27487
  };
27480
27488
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
27481
27489
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -27492,7 +27500,7 @@ function TagSearchInput({
27492
27500
  className
27493
27501
  ),
27494
27502
  onClick: () => {
27495
- if (!disabled) _optionalChain([inputRef, 'access', _564 => _564.current, 'optionalAccess', _565 => _565.focus, 'call', _566 => _566()]);
27503
+ if (!disabled) _optionalChain([inputRef, 'access', _565 => _565.current, 'optionalAccess', _566 => _566.focus, 'call', _567 => _567()]);
27496
27504
  },
27497
27505
  children: [
27498
27506
  /* @__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" }) }),
@@ -27564,7 +27572,7 @@ function TagSearchInput({
27564
27572
  items: hiddenTags,
27565
27573
  disabled,
27566
27574
  style: {
27567
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _567 => _567.current, 'optionalAccess', _568 => _568.getBoundingClientRect, 'call', _569 => _569(), 'access', _570 => _570.left]), () => ( 0))) : 0
27575
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _568 => _568.current, 'optionalAccess', _569 => _569.getBoundingClientRect, 'call', _570 => _570(), 'access', _571 => _571.left]), () => ( 0))) : 0
27568
27576
  },
27569
27577
  onRemove: (value) => {
27570
27578
  onTagRemove(value);
@@ -27665,7 +27673,7 @@ function MarkdownEditor({
27665
27673
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
27666
27674
  _react.useEffect.call(void 0, () => {
27667
27675
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
27668
- if (_optionalChain([mod, 'access', _571 => _571.commands, 'optionalAccess', _572 => _572.getExtraCommands])) {
27676
+ if (_optionalChain([mod, 'access', _572 => _572.commands, 'optionalAccess', _573 => _573.getExtraCommands])) {
27669
27677
  setDefaultExtraCommands(mod.commands.getExtraCommands());
27670
27678
  }
27671
27679
  });
@@ -27699,7 +27707,7 @@ function MarkdownEditor({
27699
27707
  const isImage = file.type.startsWith("image/");
27700
27708
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
27701
27709
  insertTextAtCursor(markdown);
27702
- _optionalChain([onFileUploaded, 'optionalCall', _573 => _573(url, file.name)]);
27710
+ _optionalChain([onFileUploaded, 'optionalCall', _574 => _574(url, file.name)]);
27703
27711
  } catch (error) {
27704
27712
  console.error("File upload failed:", error);
27705
27713
  setUploadProgress("Upload failed. Please try again.");
@@ -27712,7 +27720,7 @@ function MarkdownEditor({
27712
27720
  );
27713
27721
  const handleFileInputChange = _react.useCallback.call(void 0,
27714
27722
  (e) => {
27715
- const file = _optionalChain([e, 'access', _574 => _574.target, 'access', _575 => _575.files, 'optionalAccess', _576 => _576[0]]);
27723
+ const file = _optionalChain([e, 'access', _575 => _575.target, 'access', _576 => _576.files, 'optionalAccess', _577 => _577[0]]);
27716
27724
  if (file) {
27717
27725
  handleFileUpload(file);
27718
27726
  e.target.value = "";
@@ -27723,7 +27731,7 @@ function MarkdownEditor({
27723
27731
  const handlePaste = _react.useCallback.call(void 0,
27724
27732
  (e) => {
27725
27733
  if (!onUploadFile) return;
27726
- const items = _optionalChain([e, 'access', _577 => _577.clipboardData, 'optionalAccess', _578 => _578.items]);
27734
+ const items = _optionalChain([e, 'access', _578 => _578.clipboardData, 'optionalAccess', _579 => _579.items]);
27727
27735
  if (!items) return;
27728
27736
  for (const item of items) {
27729
27737
  if (item.type.startsWith("image/")) {
@@ -27748,7 +27756,7 @@ function MarkdownEditor({
27748
27756
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
27749
27757
  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" }),
27750
27758
  execute: () => {
27751
- _optionalChain([fileInputRef, 'access', _579 => _579.current, 'optionalAccess', _580 => _580.click, 'call', _581 => _581()]);
27759
+ _optionalChain([fileInputRef, 'access', _580 => _580.current, 'optionalAccess', _581 => _581.click, 'call', _582 => _582()]);
27752
27760
  }
27753
27761
  } : null;
27754
27762
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -27760,7 +27768,7 @@ function MarkdownEditor({
27760
27768
  const EDGE_ZONE = 60;
27761
27769
  const MAX_SCROLL_SPEED = 15;
27762
27770
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
27763
- let node = _optionalChain([el, 'optionalAccess', _582 => _582.parentElement]);
27771
+ let node = _optionalChain([el, 'optionalAccess', _583 => _583.parentElement]);
27764
27772
  while (node && node !== document.documentElement) {
27765
27773
  const { overflowY } = window.getComputedStyle(node);
27766
27774
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -27903,7 +27911,7 @@ function matchesAccept(file, accept) {
27903
27911
  });
27904
27912
  }
27905
27913
  function dragHasFiles(e) {
27906
- const types = _optionalChain([e, 'access', _583 => _583.dataTransfer, 'optionalAccess', _584 => _584.types]);
27914
+ const types = _optionalChain([e, 'access', _584 => _584.dataTransfer, 'optionalAccess', _585 => _585.types]);
27907
27915
  if (!types) return false;
27908
27916
  for (let i = 0; i < types.length; i++) {
27909
27917
  if (types[i] === "Files") return true;
@@ -27998,7 +28006,7 @@ function FileUpload({
27998
28006
  e.stopPropagation();
27999
28007
  setDragActive(false);
28000
28008
  if (disabled) return;
28001
- if (_optionalChain([e, 'access', _585 => _585.dataTransfer, 'access', _586 => _586.files, 'optionalAccess', _587 => _587.length])) {
28009
+ if (_optionalChain([e, 'access', _586 => _586.dataTransfer, 'access', _587 => _587.files, 'optionalAccess', _588 => _588.length])) {
28002
28010
  handleFiles(e.dataTransfer.files);
28003
28011
  }
28004
28012
  };
@@ -28026,7 +28034,7 @@ function FileUpload({
28026
28034
  e.preventDefault();
28027
28035
  dragCounter = 0;
28028
28036
  setDragActive(false);
28029
- if (_optionalChain([e, 'access', _588 => _588.dataTransfer, 'optionalAccess', _589 => _589.files, 'optionalAccess', _590 => _590.length])) {
28037
+ if (_optionalChain([e, 'access', _589 => _589.dataTransfer, 'optionalAccess', _590 => _590.files, 'optionalAccess', _591 => _591.length])) {
28030
28038
  handleFilesRef.current(e.dataTransfer.files);
28031
28039
  }
28032
28040
  };
@@ -28048,7 +28056,7 @@ function FileUpload({
28048
28056
  };
28049
28057
  }, [acceptWindowDrops, disabled]);
28050
28058
  const handleFileSelect = (e) => {
28051
- if (_optionalChain([e, 'access', _591 => _591.target, 'access', _592 => _592.files, 'optionalAccess', _593 => _593.length])) {
28059
+ if (_optionalChain([e, 'access', _592 => _592.target, 'access', _593 => _593.files, 'optionalAccess', _594 => _594.length])) {
28052
28060
  handleFiles(e.target.files);
28053
28061
  }
28054
28062
  };
@@ -28065,7 +28073,7 @@ function FileUpload({
28065
28073
  };
28066
28074
  const openDialog = async () => {
28067
28075
  if (disabled) return;
28068
- _optionalChain([fileInputRef, 'access', _594 => _594.current, 'optionalAccess', _595 => _595.click, 'call', _596 => _596()]);
28076
+ _optionalChain([fileInputRef, 'access', _595 => _595.current, 'optionalAccess', _596 => _596.click, 'call', _597 => _597()]);
28069
28077
  };
28070
28078
  const displayError = error || validationError || void 0;
28071
28079
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -28143,7 +28151,7 @@ function FileUpload({
28143
28151
  "button",
28144
28152
  {
28145
28153
  type: "button",
28146
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _597 => _597(entry.id)]),
28154
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _598 => _598(entry.id)]),
28147
28155
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
28148
28156
  "aria-label": `Remove ${entry.fileName}`,
28149
28157
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -28266,7 +28274,7 @@ function ImageUploader({
28266
28274
  onChange(file);
28267
28275
  };
28268
28276
  const handleFileSelect = (e) => {
28269
- validateAndEmit(_optionalChain([e, 'access', _598 => _598.target, 'access', _599 => _599.files, 'optionalAccess', _600 => _600[0]]));
28277
+ validateAndEmit(_optionalChain([e, 'access', _599 => _599.target, 'access', _600 => _600.files, 'optionalAccess', _601 => _601[0]]));
28270
28278
  if (inputRef.current) inputRef.current.value = "";
28271
28279
  };
28272
28280
  const handleDrag = (e) => {
@@ -28281,11 +28289,11 @@ function ImageUploader({
28281
28289
  e.stopPropagation();
28282
28290
  setDragActive(false);
28283
28291
  if (!interactive) return;
28284
- validateAndEmit(_optionalChain([e, 'access', _601 => _601.dataTransfer, 'access', _602 => _602.files, 'optionalAccess', _603 => _603[0]]));
28292
+ validateAndEmit(_optionalChain([e, 'access', _602 => _602.dataTransfer, 'access', _603 => _603.files, 'optionalAccess', _604 => _604[0]]));
28285
28293
  };
28286
28294
  const openDialog = () => {
28287
28295
  if (!interactive) return;
28288
- _optionalChain([inputRef, 'access', _604 => _604.current, 'optionalAccess', _605 => _605.click, 'call', _606 => _606()]);
28296
+ _optionalChain([inputRef, 'access', _605 => _605.current, 'optionalAccess', _606 => _606.click, 'call', _607 => _607()]);
28289
28297
  };
28290
28298
  const handleRootKeyDown = (e) => {
28291
28299
  if (hasImage || !interactive) return;
@@ -28475,8 +28483,8 @@ function ColorPresetSelect({
28475
28483
  }) {
28476
28484
  const selectedPreset = presets.find((p) => p.key === presetKey);
28477
28485
  const isCustom = !selectedPreset;
28478
- const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _607 => _607.label]), () => ( "Custom"));
28479
- const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _608 => _608.color]), () => ( value));
28486
+ const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _608 => _608.label]), () => ( "Custom"));
28487
+ const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _609 => _609.color]), () => ( value));
28480
28488
  const groups = [
28481
28489
  {
28482
28490
  items: [
@@ -28766,7 +28774,7 @@ function TicketStatusConfigRow({
28766
28774
  _chunk6JINAOI7cjs.Input,
28767
28775
  {
28768
28776
  value: name,
28769
- onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _609 => _609(e.target.value)]),
28777
+ onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _610 => _610(e.target.value)]),
28770
28778
  disabled: isSystem,
28771
28779
  readOnly: isSystem,
28772
28780
  "aria-label": "Status name",
@@ -28849,7 +28857,7 @@ function CompactAssigneeDropdown({
28849
28857
  return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
28850
28858
  }, [filtered, currentAssignee]);
28851
28859
  const handleSelect = (userId) => {
28852
- const next = _optionalChain([currentAssignee, 'optionalAccess', _610 => _610.id]) === userId ? null : userId;
28860
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _611 => _611.id]) === userId ? null : userId;
28853
28861
  onAssign(next);
28854
28862
  setIsOpen(false);
28855
28863
  };
@@ -28914,7 +28922,7 @@ function CompactAssigneeDropdown({
28914
28922
  }
28915
28923
  ) }),
28916
28924
  /* @__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) => {
28917
- const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _611 => _611.id]) === opt.value;
28925
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _612 => _612.id]) === opt.value;
28918
28926
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28919
28927
  "button",
28920
28928
  {
@@ -28983,7 +28991,7 @@ function DefaultAssigneeDropdown({
28983
28991
  Autocomplete,
28984
28992
  {
28985
28993
  options,
28986
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _612 => _612.id]), () => ( null)),
28994
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _613 => _613.id]), () => ( null)),
28987
28995
  onChange: (val) => {
28988
28996
  onAssign(val);
28989
28997
  setIsEditing(false);
@@ -29372,14 +29380,14 @@ function TicketInfoSection({
29372
29380
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29373
29381
  _chunk7MNBE7XAcjs.SquareAvatar,
29374
29382
  {
29375
- src: _optionalChain([organization, 'optionalAccess', _613 => _613.imageSrc]),
29376
- alt: _optionalChain([organization, 'optionalAccess', _614 => _614.name]),
29377
- fallback: _optionalChain([organization, 'optionalAccess', _615 => _615.name]) || "Org",
29383
+ src: _optionalChain([organization, 'optionalAccess', _614 => _614.imageSrc]),
29384
+ alt: _optionalChain([organization, 'optionalAccess', _615 => _615.name]),
29385
+ fallback: _optionalChain([organization, 'optionalAccess', _616 => _616.name]) || "Org",
29378
29386
  size: "md",
29379
29387
  className: "shrink-0"
29380
29388
  }
29381
29389
  ),
29382
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _616 => _616.name]) || "Unassigned", label: "Organization" })
29390
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _617 => _617.name]) || "Unassigned", label: "Organization" })
29383
29391
  ] }),
29384
29392
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29385
29393
  AssigneeDropdown,
@@ -29400,10 +29408,10 @@ function TicketInfoSection({
29400
29408
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29401
29409
  InfoCell2,
29402
29410
  {
29403
- value: _optionalChain([device, 'optionalAccess', _617 => _617.name]) || "Unassigned",
29411
+ value: _optionalChain([device, 'optionalAccess', _618 => _618.name]) || "Unassigned",
29404
29412
  label: "Device",
29405
- icon: _optionalChain([device, 'optionalAccess', _618 => _618.icon]),
29406
- onClick: _optionalChain([device, 'optionalAccess', _619 => _619.onClick])
29413
+ icon: _optionalChain([device, 'optionalAccess', _619 => _619.icon]),
29414
+ onClick: _optionalChain([device, 'optionalAccess', _620 => _620.onClick])
29407
29415
  }
29408
29416
  ),
29409
29417
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -29699,7 +29707,7 @@ function RoadmapCard({
29699
29707
  const compactHref = _chunk7MNBE7XAcjs.safeHref.call(void 0, _nullishCoalesce(href, () => ( null)));
29700
29708
  const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
29701
29709
  const hasFigma = !!item.figmaUrl;
29702
- const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _620 => _620.screenshots, 'optionalAccess', _621 => _621.length]), () => ( 0))) > 0;
29710
+ const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _621 => _621.screenshots, 'optionalAccess', _622 => _622.length]), () => ( 0))) > 0;
29703
29711
  const typeLabel = getTaskTypeLabel(item.customItemId);
29704
29712
  const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
29705
29713
  const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -29718,7 +29726,7 @@ function RoadmapCard({
29718
29726
  unoptimized: true,
29719
29727
  className: "h-8 w-8 object-contain"
29720
29728
  }
29721
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _622 => _622.title, 'optionalAccess', _623 => _623.substring, 'call', _624 => _624(0, 2)]) || "??" })
29729
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _623 => _623.title, 'optionalAccess', _624 => _624.substring, 'call', _625 => _625(0, 2)]) || "??" })
29722
29730
  }
29723
29731
  ),
29724
29732
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk7MNBE7XAcjs.COMPACT_CARD_TEXT_COL, children: [
@@ -29793,7 +29801,7 @@ function RoadmapCard({
29793
29801
  unoptimized: true,
29794
29802
  className: "object-contain p-1"
29795
29803
  }
29796
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _625 => _625.title, 'optionalAccess', _626 => _626.substring, 'call', _627 => _627(0, 2)]) || "??" }) }),
29804
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _626 => _626.title, 'optionalAccess', _627 => _627.substring, 'call', _628 => _628(0, 2)]) || "??" }) }),
29797
29805
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
29798
29806
  /* @__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 }) }),
29799
29807
  /* @__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: [
@@ -30303,7 +30311,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
30303
30311
  ] }) : null,
30304
30312
  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
30305
30313
  ] }),
30306
- _optionalChain([anchorProps, 'optionalAccess', _628 => _628.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
30314
+ _optionalChain([anchorProps, 'optionalAccess', _629 => _629.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
30307
30315
  ] });
30308
30316
  if (!anchorProps) {
30309
30317
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunk7MNBE7XAcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
@@ -30373,7 +30381,7 @@ function getDefaultOptions() {
30373
30381
  // node_modules/date-fns/startOfWeek.mjs
30374
30382
  function startOfWeek(date, options) {
30375
30383
  const defaultOptions2 = getDefaultOptions();
30376
- const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _629 => _629.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _630 => _630.locale, 'optionalAccess', _631 => _631.options, 'optionalAccess', _632 => _632.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _633 => _633.locale, 'optionalAccess', _634 => _634.options, 'optionalAccess', _635 => _635.weekStartsOn]))), () => ( 0));
30384
+ const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _630 => _630.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _631 => _631.locale, 'optionalAccess', _632 => _632.options, 'optionalAccess', _633 => _633.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _634 => _634.locale, 'optionalAccess', _635 => _635.options, 'optionalAccess', _636 => _636.weekStartsOn]))), () => ( 0));
30377
30385
  const _date = toDate(date);
30378
30386
  const day = _date.getDay();
30379
30387
  const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
@@ -30548,7 +30556,7 @@ var formatDistance = (token, count, options) => {
30548
30556
  } else {
30549
30557
  result = tokenValue.other.replace("{{count}}", count.toString());
30550
30558
  }
30551
- if (_optionalChain([options, 'optionalAccess', _636 => _636.addSuffix])) {
30559
+ if (_optionalChain([options, 'optionalAccess', _637 => _637.addSuffix])) {
30552
30560
  if (options.comparison && options.comparison > 0) {
30553
30561
  return "in " + result;
30554
30562
  } else {
@@ -30615,15 +30623,15 @@ var formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale
30615
30623
  // node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs
30616
30624
  function buildLocalizeFn(args) {
30617
30625
  return (value, options) => {
30618
- const context = _optionalChain([options, 'optionalAccess', _637 => _637.context]) ? String(options.context) : "standalone";
30626
+ const context = _optionalChain([options, 'optionalAccess', _638 => _638.context]) ? String(options.context) : "standalone";
30619
30627
  let valuesArray;
30620
30628
  if (context === "formatting" && args.formattingValues) {
30621
30629
  const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
30622
- const width = _optionalChain([options, 'optionalAccess', _638 => _638.width]) ? String(options.width) : defaultWidth;
30630
+ const width = _optionalChain([options, 'optionalAccess', _639 => _639.width]) ? String(options.width) : defaultWidth;
30623
30631
  valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
30624
30632
  } else {
30625
30633
  const defaultWidth = args.defaultWidth;
30626
- const width = _optionalChain([options, 'optionalAccess', _639 => _639.width]) ? String(options.width) : args.defaultWidth;
30634
+ const width = _optionalChain([options, 'optionalAccess', _640 => _640.width]) ? String(options.width) : args.defaultWidth;
30627
30635
  valuesArray = args.values[width] || args.values[defaultWidth];
30628
30636
  }
30629
30637
  const index = args.argumentCallback ? args.argumentCallback(value) : value;
@@ -31003,7 +31011,7 @@ function getWeekYear(date, options) {
31003
31011
  const _date = toDate(date);
31004
31012
  const year = _date.getFullYear();
31005
31013
  const defaultOptions2 = getDefaultOptions();
31006
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _640 => _640.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _641 => _641.locale, 'optionalAccess', _642 => _642.options, 'optionalAccess', _643 => _643.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _644 => _644.locale, 'optionalAccess', _645 => _645.options, 'optionalAccess', _646 => _646.firstWeekContainsDate]))), () => ( 1));
31014
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _641 => _641.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _642 => _642.locale, 'optionalAccess', _643 => _643.options, 'optionalAccess', _644 => _644.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _645 => _645.locale, 'optionalAccess', _646 => _646.options, 'optionalAccess', _647 => _647.firstWeekContainsDate]))), () => ( 1));
31007
31015
  const firstWeekOfNextYear = constructFrom(date, 0);
31008
31016
  firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
31009
31017
  firstWeekOfNextYear.setHours(0, 0, 0, 0);
@@ -31024,7 +31032,7 @@ function getWeekYear(date, options) {
31024
31032
  // node_modules/date-fns/startOfWeekYear.mjs
31025
31033
  function startOfWeekYear(date, options) {
31026
31034
  const defaultOptions2 = getDefaultOptions();
31027
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _647 => _647.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _648 => _648.locale, 'optionalAccess', _649 => _649.options, 'optionalAccess', _650 => _650.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _651 => _651.locale, 'optionalAccess', _652 => _652.options, 'optionalAccess', _653 => _653.firstWeekContainsDate]))), () => ( 1));
31035
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _648 => _648.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _649 => _649.locale, 'optionalAccess', _650 => _650.options, 'optionalAccess', _651 => _651.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _652 => _652.locale, 'optionalAccess', _653 => _653.options, 'optionalAccess', _654 => _654.firstWeekContainsDate]))), () => ( 1));
31028
31036
  const year = getWeekYear(date, options);
31029
31037
  const firstWeek = constructFrom(date, 0);
31030
31038
  firstWeek.setFullYear(year, 0, firstWeekContainsDate);
@@ -31839,9 +31847,9 @@ var doubleQuoteRegExp = /''/g;
31839
31847
  var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
31840
31848
  function format(date, formatStr, options) {
31841
31849
  const defaultOptions2 = getDefaultOptions();
31842
- const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _654 => _654.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
31843
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _655 => _655.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _656 => _656.locale, 'optionalAccess', _657 => _657.options, 'optionalAccess', _658 => _658.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _659 => _659.locale, 'optionalAccess', _660 => _660.options, 'optionalAccess', _661 => _661.firstWeekContainsDate]))), () => ( 1));
31844
- const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _662 => _662.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _663 => _663.locale, 'optionalAccess', _664 => _664.options, 'optionalAccess', _665 => _665.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _666 => _666.locale, 'optionalAccess', _667 => _667.options, 'optionalAccess', _668 => _668.weekStartsOn]))), () => ( 0));
31850
+ const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _655 => _655.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
31851
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _656 => _656.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _657 => _657.locale, 'optionalAccess', _658 => _658.options, 'optionalAccess', _659 => _659.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _660 => _660.locale, 'optionalAccess', _661 => _661.options, 'optionalAccess', _662 => _662.firstWeekContainsDate]))), () => ( 1));
31852
+ const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _663 => _663.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _664 => _664.locale, 'optionalAccess', _665 => _665.options, 'optionalAccess', _666 => _666.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _667 => _667.locale, 'optionalAccess', _668 => _668.options, 'optionalAccess', _669 => _669.weekStartsOn]))), () => ( 0));
31845
31853
  const originalDate = toDate(date);
31846
31854
  if (!isValid(originalDate)) {
31847
31855
  throw new RangeError("Invalid time value");
@@ -31882,7 +31890,7 @@ function format(date, formatStr, options) {
31882
31890
  return parts.map((part) => {
31883
31891
  if (!part.isToken) return part.value;
31884
31892
  const token = part.value;
31885
- if (!_optionalChain([options, 'optionalAccess', _669 => _669.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _670 => _670.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
31893
+ if (!_optionalChain([options, 'optionalAccess', _670 => _670.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _671 => _671.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
31886
31894
  warnOrThrowProtectedError(token, formatStr, String(date));
31887
31895
  }
31888
31896
  const formatter = formatters[token[0]];
@@ -32060,7 +32068,7 @@ function ProgramCard({
32060
32068
  const dur = _chunk7MNBE7XAcjs.formatDurationFromRange.call(void 0, w.start_at, w.end_at);
32061
32069
  typeMeta = dur ? `${time} \xB7 ${dur}` : time;
32062
32070
  }
32063
- const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _671 => _671.labels, 'optionalAccess', _672 => _672.singular])].filter(
32071
+ const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _672 => _672.labels, 'optionalAccess', _673 => _673.singular])].filter(
32064
32072
  (s) => typeof s === "string" && s.length > 0
32065
32073
  );
32066
32074
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "a", { href, target, rel, className: _chunkFIG2RKZFcjs.cn.call(void 0, _chunk7MNBE7XAcjs.COMPACT_CARD_OUTER, className), children: [
@@ -32217,7 +32225,7 @@ function ProgramCard({
32217
32225
 
32218
32226
 
32219
32227
  function CampaignCardAdmin({ campaign, className, anchorProps }) {
32220
- const goalsCount = _optionalChain([campaign, 'access', _673 => _673.goals, 'optionalAccess', _674 => _674.length]) || 0;
32228
+ const goalsCount = _optionalChain([campaign, 'access', _674 => _674.goals, 'optionalAccess', _675 => _675.length]) || 0;
32221
32229
  const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
32222
32230
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk7MNBE7XAcjs.COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Megaphone, { className: "h-5 w-5" }) }),
32223
32231
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk7MNBE7XAcjs.COMPACT_CARD_TEXT_COL, children: [
@@ -32504,8 +32512,8 @@ function cardMenuGroups(href, discuss, openDetails) {
32504
32512
  if (href) {
32505
32513
  items.push({
32506
32514
  id: "open-details",
32507
- label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _675 => _675.label]), () => ( "Open Details")),
32508
- icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _676 => _676.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.EyeIcon, { size: 20 }))),
32515
+ label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _676 => _676.label]), () => ( "Open Details")),
32516
+ icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _677 => _677.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.EyeIcon, { size: 20 }))),
32509
32517
  // Main row → open the entity (same tab, soft Link nav).
32510
32518
  href,
32511
32519
  // Trailing 40px ↗ side-button → open in a new tab.
@@ -32535,8 +32543,8 @@ function HubspotTicketChatCard({
32535
32543
  isNewTab,
32536
32544
  discuss
32537
32545
  }) {
32538
- const status = typeof _optionalChain([chatRef, 'access', _677 => _677.metadata, 'optionalAccess', _678 => _678.status]) === "string" ? chatRef.metadata.status : void 0;
32539
- const statusLabel = typeof _optionalChain([chatRef, 'access', _679 => _679.metadata, 'optionalAccess', _680 => _680.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
32546
+ const status = typeof _optionalChain([chatRef, 'access', _678 => _678.metadata, 'optionalAccess', _679 => _679.status]) === "string" ? chatRef.metadata.status : void 0;
32547
+ const statusLabel = typeof _optionalChain([chatRef, 'access', _680 => _680.metadata, 'optionalAccess', _681 => _681.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
32540
32548
  const statusText = _nullishCoalesce(statusLabel, () => ( formatStatusToken(status)));
32541
32549
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32542
32550
  MingoInfoCard,
@@ -32559,7 +32567,7 @@ function SlackChatCard({
32559
32567
  isNewTab,
32560
32568
  discuss
32561
32569
  }) {
32562
- const channelName = typeof _optionalChain([chatRef, 'access', _681 => _681.metadata, 'optionalAccess', _682 => _682.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
32570
+ const channelName = typeof _optionalChain([chatRef, 'access', _682 => _682.metadata, 'optionalAccess', _683 => _683.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
32563
32571
  const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
32564
32572
  const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
32565
32573
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -32599,7 +32607,7 @@ function GenericFinancialChatCard({
32599
32607
  isNewTab,
32600
32608
  discuss
32601
32609
  }) {
32602
- const subtitle = typeof _optionalChain([chatRef, 'access', _683 => _683.metadata, 'optionalAccess', _684 => _684.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
32610
+ const subtitle = typeof _optionalChain([chatRef, 'access', _684 => _684.metadata, 'optionalAccess', _685 => _685.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
32603
32611
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32604
32612
  MingoInfoCard,
32605
32613
  {
@@ -32668,12 +32676,12 @@ function ProductReleaseChatCard({
32668
32676
  discuss
32669
32677
  }) {
32670
32678
  const releaseProps = buildProps(item);
32671
- const status = _optionalChain([item, 'optionalAccess', _685 => _685.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
32679
+ const status = _optionalChain([item, 'optionalAccess', _686 => _686.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
32672
32680
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32673
32681
  EntityMingoCard,
32674
32682
  {
32675
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _686 => _686.title]), () => ( "")),
32676
- description: _optionalChain([item, 'optionalAccess', _687 => _687.summary]) || releaseProps.formattedDate || void 0,
32683
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _687 => _687.title]), () => ( "")),
32684
+ description: _optionalChain([item, 'optionalAccess', _688 => _688.summary]) || releaseProps.formattedDate || void 0,
32677
32685
  cover: releaseProps.coverImage || void 0,
32678
32686
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Rocket02Icon, { size: 24 }),
32679
32687
  status,
@@ -32690,17 +32698,17 @@ function CampaignChatCard({
32690
32698
  isNewTab,
32691
32699
  discuss
32692
32700
  }) {
32693
- const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _688 => _688.goals])) ? item.goals.length : 0;
32701
+ const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _689 => _689.goals])) ? item.goals.length : 0;
32694
32702
  const meta = [
32695
- _optionalChain([item, 'optionalAccess', _689 => _689.start_date]) ? formatDateShort(item.start_date) : null,
32703
+ _optionalChain([item, 'optionalAccess', _690 => _690.start_date]) ? formatDateShort(item.start_date) : null,
32696
32704
  goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
32697
32705
  "Marketing campaign"
32698
32706
  ].filter(Boolean).join(" \xB7 ");
32699
32707
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32700
32708
  EntityMingoCard,
32701
32709
  {
32702
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _690 => _690.name]), () => ( "")),
32703
- description: meta || _optionalChain([item, 'optionalAccess', _691 => _691.description]) || void 0,
32710
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _691 => _691.name]), () => ( "")),
32711
+ description: meta || _optionalChain([item, 'optionalAccess', _692 => _692.description]) || void 0,
32704
32712
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Megaphone01Icon, { size: 24 }),
32705
32713
  chatRef,
32706
32714
  isNewTab,
@@ -32753,14 +32761,14 @@ function BlogChatCard({
32753
32761
  hasEmbeddedVideo,
32754
32762
  discuss
32755
32763
  }) {
32756
- const category = Array.isArray(_optionalChain([item, 'optionalAccess', _692 => _692.categories])) ? _optionalChain([item, 'access', _693 => _693.categories, 'access', _694 => _694.find, 'call', _695 => _695((c) => c && c.name), 'optionalAccess', _696 => _696.name]) : void 0;
32764
+ const category = Array.isArray(_optionalChain([item, 'optionalAccess', _693 => _693.categories])) ? _optionalChain([item, 'access', _694 => _694.categories, 'access', _695 => _695.find, 'call', _696 => _696((c) => c && c.name), 'optionalAccess', _697 => _697.name]) : void 0;
32757
32765
  const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
32758
32766
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32759
32767
  EntityMingoCard,
32760
32768
  {
32761
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _697 => _697.title]), () => ( "")),
32762
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _698 => _698.summary]), () => ( void 0)),
32763
- cover: entityCover(_optionalChain([item, 'optionalAccess', _699 => _699.featured_image]), ogPlaceholder),
32769
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _698 => _698.title]), () => ( "")),
32770
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _699 => _699.summary]), () => ( void 0)),
32771
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _700 => _700.featured_image]), ogPlaceholder),
32764
32772
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.NewspaperIcon, { size: 24 }),
32765
32773
  status,
32766
32774
  chatRef,
@@ -32777,13 +32785,13 @@ function CaseStudyChatCard({
32777
32785
  ogPlaceholder,
32778
32786
  discuss
32779
32787
  }) {
32780
- const meta = [_optionalChain([item, 'optionalAccess', _700 => _700.msp, 'optionalAccess', _701 => _701.name]), _optionalChain([item, 'optionalAccess', _702 => _702.user, 'optionalAccess', _703 => _703.full_name])].filter(Boolean).join(" \xB7 ");
32788
+ const meta = [_optionalChain([item, 'optionalAccess', _701 => _701.msp, 'optionalAccess', _702 => _702.name]), _optionalChain([item, 'optionalAccess', _703 => _703.user, 'optionalAccess', _704 => _704.full_name])].filter(Boolean).join(" \xB7 ");
32781
32789
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32782
32790
  EntityMingoCard,
32783
32791
  {
32784
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _704 => _704.title]), () => ( "")),
32785
- description: _optionalChain([item, 'optionalAccess', _705 => _705.summary]) || meta || void 0,
32786
- cover: entityCover(_optionalChain([item, 'optionalAccess', _706 => _706.featured_image]), ogPlaceholder),
32792
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _705 => _705.title]), () => ( "")),
32793
+ description: _optionalChain([item, 'optionalAccess', _706 => _706.summary]) || meta || void 0,
32794
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _707 => _707.featured_image]), ogPlaceholder),
32787
32795
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.TrophyIcon, { size: 24 }),
32788
32796
  status: { label: "Case study", variant: "grey" },
32789
32797
  chatRef,
@@ -32800,13 +32808,13 @@ function CustomerInterviewChatCard({
32800
32808
  ogPlaceholder,
32801
32809
  discuss
32802
32810
  }) {
32803
- const meta = [_optionalChain([item, 'optionalAccess', _707 => _707.user, 'optionalAccess', _708 => _708.full_name]), _optionalChain([item, 'optionalAccess', _709 => _709.msp, 'optionalAccess', _710 => _710.name])].filter(Boolean).join(" \xB7 ");
32811
+ const meta = [_optionalChain([item, 'optionalAccess', _708 => _708.user, 'optionalAccess', _709 => _709.full_name]), _optionalChain([item, 'optionalAccess', _710 => _710.msp, 'optionalAccess', _711 => _711.name])].filter(Boolean).join(" \xB7 ");
32804
32812
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32805
32813
  EntityMingoCard,
32806
32814
  {
32807
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _711 => _711.title]), () => ( "")),
32808
- description: _optionalChain([item, 'optionalAccess', _712 => _712.video_summary]) || meta || void 0,
32809
- cover: entityCover(_optionalChain([item, 'optionalAccess', _713 => _713.featured_image]), ogPlaceholder),
32815
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _712 => _712.title]), () => ( "")),
32816
+ description: _optionalChain([item, 'optionalAccess', _713 => _713.video_summary]) || meta || void 0,
32817
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _714 => _714.featured_image]), ogPlaceholder),
32810
32818
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.MicrophoneIcon, { size: 24 }),
32811
32819
  status: { label: "Interview", variant: "grey" },
32812
32820
  chatRef,
@@ -32823,13 +32831,13 @@ function InvestorUpdateChatCard({
32823
32831
  ogPlaceholder,
32824
32832
  discuss
32825
32833
  }) {
32826
- const title = _optionalChain([item, 'optionalAccess', _714 => _714.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _715 => _715.update_number]), () => ( "?"))}`;
32834
+ const title = _optionalChain([item, 'optionalAccess', _715 => _715.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _716 => _716.update_number]), () => ( "?"))}`;
32827
32835
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32828
32836
  EntityMingoCard,
32829
32837
  {
32830
32838
  title,
32831
- description: _optionalChain([item, 'optionalAccess', _716 => _716.strategic_update]) || _optionalChain([item, 'optionalAccess', _717 => _717.content]) || formatInvestorUpdatePeriod(_optionalChain([item, 'optionalAccess', _718 => _718.period_start]), _optionalChain([item, 'optionalAccess', _719 => _719.period_end])) || void 0,
32832
- cover: entityCover(_optionalChain([item, 'optionalAccess', _720 => _720.featured_image]), ogPlaceholder),
32839
+ description: _optionalChain([item, 'optionalAccess', _717 => _717.strategic_update]) || _optionalChain([item, 'optionalAccess', _718 => _718.content]) || formatInvestorUpdatePeriod(_optionalChain([item, 'optionalAccess', _719 => _719.period_start]), _optionalChain([item, 'optionalAccess', _720 => _720.period_end])) || void 0,
32840
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _721 => _721.featured_image]), ogPlaceholder),
32833
32841
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.PresentationLineIcon, { size: 24 }),
32834
32842
  status: { label: "Investor update", variant: "grey" },
32835
32843
  chatRef,
@@ -32846,12 +32854,12 @@ function OnboardingGuideChatCard({
32846
32854
  ogPlaceholder,
32847
32855
  discuss
32848
32856
  }) {
32849
- const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _721 => _721.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _722 => _722.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _723 => _723.og_image_url]), ogPlaceholder)));
32857
+ const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _722 => _722.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _723 => _723.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _724 => _724.og_image_url]), ogPlaceholder)));
32850
32858
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32851
32859
  EntityMingoCard,
32852
32860
  {
32853
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _724 => _724.title]), () => ( "")),
32854
- description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _725 => _725.summary]), () => ( _optionalChain([item, 'optionalAccess', _726 => _726.description]))), () => ( void 0)),
32861
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _725 => _725.title]), () => ( "")),
32862
+ description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _726 => _726.summary]), () => ( _optionalChain([item, 'optionalAccess', _727 => _727.description]))), () => ( void 0)),
32855
32863
  cover,
32856
32864
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.CompassIcon, { size: 24 }),
32857
32865
  status: { label: "Guide", variant: "grey" },
@@ -32872,25 +32880,25 @@ function ProgramChatCard({
32872
32880
  discuss
32873
32881
  }) {
32874
32882
  const icon = configKey === "webinar" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.PresentationBarIcon, { size: 24 }) : configKey === "event" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.CalendarIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.MicrophoneIcon, { size: 24 });
32875
- const isScheduled = _optionalChain([item, 'optionalAccess', _727 => _727.status]) === "scheduled";
32883
+ const isScheduled = _optionalChain([item, 'optionalAccess', _728 => _728.status]) === "scheduled";
32876
32884
  let typeMeta;
32877
- if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _728 => _728.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
32885
+ if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _729 => _729.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
32878
32886
  typeMeta = _chunk7MNBE7XAcjs.formatDurationCompact.call(void 0, item.duration_seconds);
32879
- } else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess', _729 => _729.location_name]) === "string" && item.location_name.trim().length > 0) {
32887
+ } else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess', _730 => _730.location_name]) === "string" && item.location_name.trim().length > 0) {
32880
32888
  typeMeta = item.location_name;
32881
- } else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _730 => _730.start_at])) {
32889
+ } else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _731 => _731.start_at])) {
32882
32890
  const time = _chunk7MNBE7XAcjs.formatTimeWithTimezone.call(void 0, item.start_at, null);
32883
32891
  const dur = _chunk7MNBE7XAcjs.formatDurationFromRange.call(void 0, item.start_at, item.end_at);
32884
32892
  typeMeta = dur ? `${time} \xB7 ${dur}` : time;
32885
32893
  }
32886
- const itemDate = _chunk7MNBE7XAcjs.formatDateUTC.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _731 => _731.date]), () => ( null)), { fallback: "", timezone: "local" });
32894
+ const itemDate = _chunk7MNBE7XAcjs.formatDateUTC.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _732 => _732.date]), () => ( null)), { fallback: "", timezone: "local" });
32887
32895
  const meta = [itemDate, typeMeta].filter(Boolean).join(" \xB7 ");
32888
32896
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32889
32897
  EntityMingoCard,
32890
32898
  {
32891
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _732 => _732.title]), () => ( "")),
32892
- description: meta || _optionalChain([item, 'optionalAccess', _733 => _733.description]) || void 0,
32893
- cover: entityCover(_optionalChain([item, 'optionalAccess', _734 => _734.cover_url]), ogPlaceholder),
32899
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _733 => _733.title]), () => ( "")),
32900
+ description: meta || _optionalChain([item, 'optionalAccess', _734 => _734.description]) || void 0,
32901
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _735 => _735.cover_url]), ogPlaceholder),
32894
32902
  fallbackIcon: icon,
32895
32903
  status: { label, variant: "grey" },
32896
32904
  chatRef,
@@ -32907,10 +32915,10 @@ function RoadmapChatCard({
32907
32915
  cardType,
32908
32916
  discuss
32909
32917
  }) {
32910
- const logoUrl = typeof _optionalChain([item, 'optionalAccess', _735 => _735.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
32911
- const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _736 => _736.customItemId]) != null;
32918
+ const logoUrl = typeof _optionalChain([item, 'optionalAccess', _736 => _736.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
32919
+ const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _737 => _737.customItemId]) != null;
32912
32920
  const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.TruckFastIcon, { size: 24 }) : cardType === "internal_task" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.CheckSquareIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.MapIcon, { size: 24 });
32913
- const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _737 => _737.customItemId]), className: "size-6" }) : logoUrl ? (
32921
+ const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _738 => _738.customItemId]), className: "size-6" }) : logoUrl ? (
32914
32922
  // Contained (not full-bleed) so the integration logo keeps its aspect
32915
32923
  // ratio inside the bordered icon box — matches RoadmapCard.
32916
32924
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src: logoUrl, alt: "", className: "size-6 object-contain" })
@@ -32918,10 +32926,10 @@ function RoadmapChatCard({
32918
32926
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32919
32927
  EntityMingoCard,
32920
32928
  {
32921
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _738 => _738.title]), () => ( "")),
32922
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _739 => _739.description]), () => ( void 0)),
32929
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _739 => _739.title]), () => ( "")),
32930
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _740 => _740.description]), () => ( void 0)),
32923
32931
  fallbackIcon: icon,
32924
- status: statusPill(_optionalChain([item, 'optionalAccess', _740 => _740.status])),
32932
+ status: statusPill(_optionalChain([item, 'optionalAccess', _741 => _741.status])),
32925
32933
  chatRef,
32926
32934
  isNewTab,
32927
32935
  discuss,
@@ -33007,7 +33015,7 @@ function programRegistryEntries() {
33007
33015
  discuss: opts.discuss,
33008
33016
  configKey: cfg.configKey,
33009
33017
  label: cfg.configKey.charAt(0).toUpperCase() + cfg.configKey.slice(1),
33010
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _741 => _741.extras, 'optionalAccess', _742 => _742.buildOgPlaceholderUrl, 'optionalCall', _743 => _743(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _744 => _744.title]), () => ( "")))]), () => ( null))
33018
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _742 => _742.extras, 'optionalAccess', _743 => _743.buildOgPlaceholderUrl, 'optionalCall', _744 => _744(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _745 => _745.title]), () => ( "")))]), () => ( null))
33011
33019
  }
33012
33020
  )
33013
33021
  };
@@ -33153,8 +33161,8 @@ var CHAT_CARD_REGISTRY = {
33153
33161
  chatRef,
33154
33162
  isNewTab: opts.isNewTab,
33155
33163
  discuss: opts.discuss,
33156
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _745 => _745.extras, 'optionalAccess', _746 => _746.buildOgPlaceholderUrl, 'optionalCall', _747 => _747(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _748 => _748.title]), () => ( "")))]), () => ( null)),
33157
- hasEmbeddedVideo: _optionalChain([chatRef, 'access', _749 => _749.metadata, 'optionalAccess', _750 => _750.hasEmbeddedVideo]) === true
33164
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _746 => _746.extras, 'optionalAccess', _747 => _747.buildOgPlaceholderUrl, 'optionalCall', _748 => _748(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _749 => _749.title]), () => ( "")))]), () => ( null)),
33165
+ hasEmbeddedVideo: _optionalChain([chatRef, 'access', _750 => _750.metadata, 'optionalAccess', _751 => _751.hasEmbeddedVideo]) === true
33158
33166
  }
33159
33167
  )
33160
33168
  },
@@ -33171,7 +33179,7 @@ var CHAT_CARD_REGISTRY = {
33171
33179
  chatRef,
33172
33180
  isNewTab: opts.isNewTab,
33173
33181
  discuss: opts.discuss,
33174
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _751 => _751.extras, 'optionalAccess', _752 => _752.buildOgPlaceholderUrl, 'optionalCall', _753 => _753(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _754 => _754.title]), () => ( "")))]), () => ( null))
33182
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _752 => _752.extras, 'optionalAccess', _753 => _753.buildOgPlaceholderUrl, 'optionalCall', _754 => _754(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _755 => _755.title]), () => ( "")))]), () => ( null))
33175
33183
  }
33176
33184
  )
33177
33185
  },
@@ -33188,7 +33196,7 @@ var CHAT_CARD_REGISTRY = {
33188
33196
  chatRef,
33189
33197
  isNewTab: opts.isNewTab,
33190
33198
  discuss: opts.discuss,
33191
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _755 => _755.extras, 'optionalAccess', _756 => _756.buildOgPlaceholderUrl, 'optionalCall', _757 => _757(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _758 => _758.title]), () => ( "")))]), () => ( null))
33199
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _756 => _756.extras, 'optionalAccess', _757 => _757.buildOgPlaceholderUrl, 'optionalCall', _758 => _758(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _759 => _759.title]), () => ( "")))]), () => ( null))
33192
33200
  }
33193
33201
  )
33194
33202
  },
@@ -33199,7 +33207,7 @@ var CHAT_CARD_REGISTRY = {
33199
33207
  bareInline: true,
33200
33208
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductReleaseCardSkeleton, { size: "sm" }),
33201
33209
  render: (item, chatRef, opts) => {
33202
- const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _759 => _759.extras, 'optionalAccess', _760 => _760.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
33210
+ const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _760 => _760.extras, 'optionalAccess', _761 => _761.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
33203
33211
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33204
33212
  ProductReleaseChatCard,
33205
33213
  {
@@ -33226,7 +33234,7 @@ var CHAT_CARD_REGISTRY = {
33226
33234
  chatRef,
33227
33235
  isNewTab: opts.isNewTab,
33228
33236
  discuss: opts.discuss,
33229
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _761 => _761.extras, 'optionalAccess', _762 => _762.buildOgPlaceholderUrl, 'optionalCall', _763 => _763(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _764 => _764.title]), () => ( "")))]), () => ( null))
33237
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _762 => _762.extras, 'optionalAccess', _763 => _763.buildOgPlaceholderUrl, 'optionalCall', _764 => _764(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _765 => _765.title]), () => ( "")))]), () => ( null))
33230
33238
  }
33231
33239
  )
33232
33240
  },
@@ -33245,7 +33253,7 @@ var CHAT_CARD_REGISTRY = {
33245
33253
  chatRef,
33246
33254
  isNewTab: opts.isNewTab,
33247
33255
  discuss: opts.discuss,
33248
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _765 => _765.extras, 'optionalAccess', _766 => _766.buildOgPlaceholderUrl, 'optionalCall', _767 => _767(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _768 => _768.title]), () => ( "")))]), () => ( null))
33256
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _766 => _766.extras, 'optionalAccess', _767 => _767.buildOgPlaceholderUrl, 'optionalCall', _768 => _768(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _769 => _769.title]), () => ( "")))]), () => ( null))
33249
33257
  }
33250
33258
  )
33251
33259
  },
@@ -33257,7 +33265,7 @@ var CHAT_CARD_REGISTRY = {
33257
33265
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
33258
33266
  // No public viewer — synthesize the hub-internal admin URL post-fetch
33259
33267
  // so the wrapper + isNewTab computation see the actual destination.
33260
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _769 => _769.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
33268
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _770 => _770.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
33261
33269
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33262
33270
  CampaignChatCard,
33263
33271
  {
@@ -33283,12 +33291,12 @@ function ChatCardNavWrap({
33283
33291
  const onClickCapture = (e) => {
33284
33292
  if (!href) return;
33285
33293
  const targetEl = e.target;
33286
- if (_optionalChain([targetEl, 'optionalAccess', _770 => _770.closest, 'optionalCall', _771 => _771("button")])) return;
33287
- if (!_optionalChain([targetEl, 'optionalAccess', _772 => _772.closest, 'optionalCall', _773 => _773("a")])) return;
33294
+ if (_optionalChain([targetEl, 'optionalAccess', _771 => _771.closest, 'optionalCall', _772 => _772("button")])) return;
33295
+ if (!_optionalChain([targetEl, 'optionalAccess', _773 => _773.closest, 'optionalCall', _774 => _774("a")])) return;
33288
33296
  const handled = handleChatNavClick(e, runtime, { href, path, targetPlatform }, router.push);
33289
33297
  if (!handled) return;
33290
33298
  e.stopPropagation();
33291
- if (!isNewTab && _optionalChain([panel, 'optionalAccess', _774 => _774.closeChat])) panel.closeChat();
33299
+ if (!isNewTab && _optionalChain([panel, 'optionalAccess', _775 => _775.closeChat])) panel.closeChat();
33292
33300
  };
33293
33301
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
33294
33302
  }
@@ -33310,7 +33318,7 @@ function ChatCardLoader({
33310
33318
  title: chatRef.title,
33311
33319
  externalUrl: chatRef.url,
33312
33320
  targetPlatform: chatRef.targetPlatform,
33313
- path: typeof _optionalChain([chatRef, 'access', _775 => _775.metadata, 'optionalAccess', _776 => _776.path]) === "string" ? chatRef.metadata.path : null
33321
+ path: typeof _optionalChain([chatRef, 'access', _776 => _776.metadata, 'optionalAccess', _777 => _777.path]) === "string" ? chatRef.metadata.path : null
33314
33322
  },
33315
33323
  _chunk7MNBE7XAcjs.sourceRowCtxFromRuntime.call(void 0, runtime, { baseRoute, chipBasePlatform })
33316
33324
  );
@@ -33324,7 +33332,7 @@ function ChatCardLoader({
33324
33332
  const entry = CHAT_CARD_REGISTRY[resolvedChatRef.type];
33325
33333
  const fetchEntry = entry && entry.mode === "fetch" ? entry : null;
33326
33334
  const { item, isLoading } = useChatCardItem(
33327
- _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _777 => _777.contentRefType]), () => ( "")),
33335
+ _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _778 => _778.contentRefType]), () => ( "")),
33328
33336
  fetchEntry ? resolvedChatRef.id : ""
33329
33337
  );
33330
33338
  if (!entry) return null;
@@ -33355,7 +33363,7 @@ function ChatCardLoader({
33355
33363
  isNewTab,
33356
33364
  discuss
33357
33365
  };
33358
- const path = typeof _optionalChain([finalChatRef, 'access', _778 => _778.metadata, 'optionalAccess', _779 => _779.path]) === "string" ? finalChatRef.metadata.path : null;
33366
+ const path = typeof _optionalChain([finalChatRef, 'access', _779 => _779.metadata, 'optionalAccess', _780 => _780.path]) === "string" ? finalChatRef.metadata.path : null;
33359
33367
  const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33360
33368
  ChatCardNavWrap,
33361
33369
  {
@@ -33881,7 +33889,7 @@ function useJetStreamDialogSubscription({
33881
33889
  const lifecycle = _chunkPXXS27EEcjs.startConnectionLifecycle.call(void 0, {
33882
33890
  conn: sharedConn,
33883
33891
  wsUrl,
33884
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _780 => _780.current, 'optionalCall', _781 => _781()]),
33892
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _781 => _781.current, 'optionalCall', _782 => _782()]),
33885
33893
  backoff: reconnectionBackoffRef.current,
33886
33894
  getFreshUrl: () => getNatsWsUrlRef.current(),
33887
33895
  // JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
@@ -33896,7 +33904,7 @@ function useJetStreamDialogSubscription({
33896
33904
  setReconnectionCount((c) => c + 1);
33897
33905
  }
33898
33906
  hadConnectionBeforeRef.current = true;
33899
- _optionalChain([onConnectRef, 'access', _782 => _782.current, 'optionalCall', _783 => _783()]);
33907
+ _optionalChain([onConnectRef, 'access', _783 => _783.current, 'optionalCall', _784 => _784()]);
33900
33908
  }
33901
33909
  if (status === "error") {
33902
33910
  console.warn("[JetStream] NATS protocol error:", evt.data);
@@ -33906,7 +33914,7 @@ function useJetStreamDialogSubscription({
33906
33914
  setIsConnected(false);
33907
33915
  setIsSubscribed(false);
33908
33916
  tearDownSubscription();
33909
- _optionalChain([onDisconnectRef, 'access', _784 => _784.current, 'optionalCall', _785 => _785()]);
33917
+ _optionalChain([onDisconnectRef, 'access', _785 => _785.current, 'optionalCall', _786 => _786()]);
33910
33918
  }
33911
33919
  }
33912
33920
  });
@@ -33985,7 +33993,7 @@ function useJetStreamDialogSubscription({
33985
33993
  }
33986
33994
  subscriptionRef.current = handle;
33987
33995
  setIsSubscribed(true);
33988
- _optionalChain([onSubscribedRef, 'access', _786 => _786.current, 'optionalCall', _787 => _787()]);
33996
+ _optionalChain([onSubscribedRef, 'access', _787 => _787.current, 'optionalCall', _788 => _788()]);
33989
33997
  } catch (e27) {
33990
33998
  if (!cancelled) {
33991
33999
  setIsSubscribed(false);
@@ -34098,20 +34106,20 @@ function useNatsDialogSubscription({
34098
34106
  const tearDownSubscriptions = () => {
34099
34107
  subscriptionRefs.current.forEach((sub) => {
34100
34108
  try {
34101
- _optionalChain([sub, 'optionalAccess', _788 => _788.unsubscribe, 'call', _789 => _789()]);
34109
+ _optionalChain([sub, 'optionalAccess', _789 => _789.unsubscribe, 'call', _790 => _790()]);
34102
34110
  } catch (e29) {
34103
34111
  }
34104
34112
  });
34105
34113
  subscriptionRefs.current.clear();
34106
34114
  lastSubscribedDialogIdRef.current = null;
34107
- _optionalChain([abortControllerRef, 'access', _790 => _790.current, 'optionalAccess', _791 => _791.abort, 'call', _792 => _792()]);
34115
+ _optionalChain([abortControllerRef, 'access', _791 => _791.current, 'optionalAccess', _792 => _792.abort, 'call', _793 => _793()]);
34108
34116
  abortControllerRef.current = null;
34109
34117
  };
34110
34118
  const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
34111
34119
  const lifecycle = _chunkPXXS27EEcjs.startConnectionLifecycle.call(void 0, {
34112
34120
  conn: sharedConn,
34113
34121
  wsUrl,
34114
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _793 => _793.current, 'optionalCall', _794 => _794()]),
34122
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _794 => _794.current, 'optionalCall', _795 => _795()]),
34115
34123
  backoff: reconnectionBackoffRef.current,
34116
34124
  getFreshUrl: () => getNatsWsUrlRef.current(),
34117
34125
  shouldRetryOn: isDisconnectStatus,
@@ -34122,7 +34130,7 @@ function useNatsDialogSubscription({
34122
34130
  setReconnectionCount((c) => c + 1);
34123
34131
  }
34124
34132
  hadConnectionBeforeRef.current = true;
34125
- _optionalChain([onConnectRef, 'access', _795 => _795.current, 'optionalCall', _796 => _796()]);
34133
+ _optionalChain([onConnectRef, 'access', _796 => _796.current, 'optionalCall', _797 => _797()]);
34126
34134
  }
34127
34135
  if (status === "error") {
34128
34136
  console.warn("[NATS] protocol error:", evt.data);
@@ -34132,7 +34140,7 @@ function useNatsDialogSubscription({
34132
34140
  setIsConnected(false);
34133
34141
  setIsSubscribed(false);
34134
34142
  tearDownSubscriptions();
34135
- _optionalChain([onDisconnectRef, 'access', _797 => _797.current, 'optionalCall', _798 => _798()]);
34143
+ _optionalChain([onDisconnectRef, 'access', _798 => _798.current, 'optionalCall', _799 => _799()]);
34136
34144
  }
34137
34145
  }
34138
34146
  });
@@ -34163,13 +34171,13 @@ function useNatsDialogSubscription({
34163
34171
  setIsSubscribed(false);
34164
34172
  subscriptionRefs.current.forEach((sub) => {
34165
34173
  try {
34166
- _optionalChain([sub, 'optionalAccess', _799 => _799.unsubscribe, 'call', _800 => _800()]);
34174
+ _optionalChain([sub, 'optionalAccess', _800 => _800.unsubscribe, 'call', _801 => _801()]);
34167
34175
  } catch (e30) {
34168
34176
  }
34169
34177
  });
34170
34178
  subscriptionRefs.current.clear();
34171
34179
  lastSubscribedDialogIdRef.current = null;
34172
- _optionalChain([abortControllerRef, 'access', _801 => _801.current, 'optionalAccess', _802 => _802.abort, 'call', _803 => _803()]);
34180
+ _optionalChain([abortControllerRef, 'access', _802 => _802.current, 'optionalAccess', _803 => _803.abort, 'call', _804 => _804()]);
34173
34181
  abortControllerRef.current = null;
34174
34182
  }
34175
34183
  return;
@@ -34181,12 +34189,12 @@ function useNatsDialogSubscription({
34181
34189
  if (subscriptionRefs.current.size > 0) {
34182
34190
  subscriptionRefs.current.forEach((sub) => {
34183
34191
  try {
34184
- _optionalChain([sub, 'optionalAccess', _804 => _804.unsubscribe, 'call', _805 => _805()]);
34192
+ _optionalChain([sub, 'optionalAccess', _805 => _805.unsubscribe, 'call', _806 => _806()]);
34185
34193
  } catch (e31) {
34186
34194
  }
34187
34195
  });
34188
34196
  subscriptionRefs.current.clear();
34189
- _optionalChain([abortControllerRef, 'access', _806 => _806.current, 'optionalAccess', _807 => _807.abort, 'call', _808 => _808()]);
34197
+ _optionalChain([abortControllerRef, 'access', _807 => _807.current, 'optionalAccess', _808 => _808.abort, 'call', _809 => _809()]);
34190
34198
  }
34191
34199
  abortControllerRef.current = new AbortController();
34192
34200
  const abort = abortControllerRef.current;
@@ -34218,7 +34226,7 @@ function useNatsDialogSubscription({
34218
34226
  });
34219
34227
  lastSubscribedDialogIdRef.current = dialogId;
34220
34228
  setIsSubscribed(true);
34221
- _optionalChain([onSubscribedRef, 'access', _809 => _809.current, 'optionalCall', _810 => _810()]);
34229
+ _optionalChain([onSubscribedRef, 'access', _810 => _810.current, 'optionalCall', _811 => _811()]);
34222
34230
  };
34223
34231
  if (isConnectedRef.current) {
34224
34232
  createSubscriptions();
@@ -34228,7 +34236,7 @@ function useNatsDialogSubscription({
34228
34236
  abort.abort();
34229
34237
  subscriptionRefs.current.forEach((sub) => {
34230
34238
  try {
34231
- _optionalChain([sub, 'optionalAccess', _811 => _811.unsubscribe, 'call', _812 => _812()]);
34239
+ _optionalChain([sub, 'optionalAccess', _812 => _812.unsubscribe, 'call', _813 => _813()]);
34232
34240
  } catch (e33) {
34233
34241
  }
34234
34242
  });
@@ -34269,7 +34277,7 @@ function useNatsDialogSubscription({
34269
34277
  });
34270
34278
  lastSubscribedDialogIdRef.current = dialogId2;
34271
34279
  setIsSubscribed(true);
34272
- _optionalChain([onSubscribedRef, 'access', _813 => _813.current, 'optionalCall', _814 => _814()]);
34280
+ _optionalChain([onSubscribedRef, 'access', _814 => _814.current, 'optionalCall', _815 => _815()]);
34273
34281
  } else if (subscriptionRefs.current.size > 0) {
34274
34282
  setIsSubscribed(true);
34275
34283
  }
@@ -34277,10 +34285,10 @@ function useNatsDialogSubscription({
34277
34285
  return { isConnected, isSubscribed, reconnectionCount };
34278
34286
  }
34279
34287
  function buildNatsWsUrl(apiBaseUrl, options) {
34280
- const path = _optionalChain([options, 'optionalAccess', _815 => _815.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
34288
+ const path = _optionalChain([options, 'optionalAccess', _816 => _816.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
34281
34289
  const u = new URL(path, apiBaseUrl);
34282
34290
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
34283
- if (_optionalChain([options, 'optionalAccess', _816 => _816.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _817 => _817.token])) {
34291
+ if (_optionalChain([options, 'optionalAccess', _817 => _817.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _818 => _818.token])) {
34284
34292
  u.searchParams.set("authorization", options.token);
34285
34293
  }
34286
34294
  return u.toString();
@@ -34598,8 +34606,8 @@ var MessageSegmentAccumulator = class {
34598
34606
  type: "tool_execution",
34599
34607
  data: {
34600
34608
  ...toolData,
34601
- toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _818 => _818.data, 'access', _819 => _819.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _820 => _820.toolTitle]))),
34602
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _821 => _821.parameters])
34609
+ toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _819 => _819.data, 'access', _820 => _820.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _821 => _821.toolTitle]))),
34610
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _822 => _822.parameters])
34603
34611
  }
34604
34612
  };
34605
34613
  if (existingIndex !== -1) {
@@ -34623,8 +34631,8 @@ var MessageSegmentAccumulator = class {
34623
34631
  if (seg.type !== "approval_batch") return seg;
34624
34632
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
34625
34633
  if (!hasCall) return seg;
34626
- const prev = _optionalChain([seg, 'access', _822 => _822.data, 'access', _823 => _823.executions, 'optionalAccess', _824 => _824[execId]]);
34627
- const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _825 => _825.result]), success: _optionalChain([prev, 'optionalAccess', _826 => _826.success]) };
34634
+ const prev = _optionalChain([seg, 'access', _823 => _823.data, 'access', _824 => _824.executions, 'optionalAccess', _825 => _825[execId]]);
34635
+ const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _826 => _826.result]), success: _optionalChain([prev, 'optionalAccess', _827 => _827.success]) };
34628
34636
  matched = true;
34629
34637
  return {
34630
34638
  ...seg,
@@ -34744,10 +34752,10 @@ var MessageSegmentAccumulator = class {
34744
34752
  const segment = {
34745
34753
  type: "approval_request",
34746
34754
  data: {
34747
- command: _optionalChain([pendingApproval, 'optionalAccess', _827 => _827.command]) || "",
34748
- explanation: _optionalChain([pendingApproval, 'optionalAccess', _828 => _828.explanation]),
34755
+ command: _optionalChain([pendingApproval, 'optionalAccess', _828 => _828.command]) || "",
34756
+ explanation: _optionalChain([pendingApproval, 'optionalAccess', _829 => _829.explanation]),
34749
34757
  requestId,
34750
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _829 => _829.approvalType]) || approvalType
34758
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _830 => _830.approvalType]) || approvalType
34751
34759
  },
34752
34760
  status,
34753
34761
  onApprove: this.callbacks.onApprove,
@@ -34937,7 +34945,7 @@ function useRealtimeChunkProcessor(options) {
34937
34945
  if (initialState.escalatedApprovals) {
34938
34946
  pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
34939
34947
  initialState.escalatedApprovals.forEach((data, requestId) => {
34940
- _optionalChain([callbacks, 'access', _830 => _830.onEscalatedApproval, 'optionalCall', _831 => _831(requestId, data)]);
34948
+ _optionalChain([callbacks, 'access', _831 => _831.onEscalatedApproval, 'optionalCall', _832 => _832(requestId, data)]);
34941
34949
  });
34942
34950
  }
34943
34951
  hasEverStreamedRef.current = true;
@@ -34964,7 +34972,7 @@ function useRealtimeChunkProcessor(options) {
34964
34972
  if ((directModeFlagRef.current || sawDirectMessageRef.current) && !DIRECT_MODE_ALLOWED.has(action.action)) {
34965
34973
  if (isInStreamRef.current) {
34966
34974
  isInStreamRef.current = false;
34967
- _optionalChain([callbacks, 'access', _832 => _832.onStreamEnd, 'optionalCall', _833 => _833()]);
34975
+ _optionalChain([callbacks, 'access', _833 => _833.onStreamEnd, 'optionalCall', _834 => _834()]);
34968
34976
  accumulator.resetSegments();
34969
34977
  }
34970
34978
  return;
@@ -34973,32 +34981,32 @@ function useRealtimeChunkProcessor(options) {
34973
34981
  case "message_start":
34974
34982
  isInStreamRef.current = true;
34975
34983
  hasEverStreamedRef.current = true;
34976
- _optionalChain([callbacks, 'access', _834 => _834.onStreamStart, 'optionalCall', _835 => _835()]);
34984
+ _optionalChain([callbacks, 'access', _835 => _835.onStreamStart, 'optionalCall', _836 => _836()]);
34977
34985
  accumulator.resetSegments();
34978
34986
  break;
34979
34987
  case "message_end":
34980
34988
  isInStreamRef.current = false;
34981
- _optionalChain([callbacks, 'access', _836 => _836.onStreamEnd, 'optionalCall', _837 => _837()]);
34989
+ _optionalChain([callbacks, 'access', _837 => _837.onStreamEnd, 'optionalCall', _838 => _838()]);
34982
34990
  accumulator.resetSegments();
34983
34991
  break;
34984
34992
  case "metadata":
34985
- _optionalChain([callbacks, 'access', _838 => _838.onMetadata, 'optionalCall', _839 => _839(action)]);
34993
+ _optionalChain([callbacks, 'access', _839 => _839.onMetadata, 'optionalCall', _840 => _840(action)]);
34986
34994
  break;
34987
34995
  case "text": {
34988
34996
  const segments = accumulator.appendText(action.text);
34989
34997
  if (isInStreamRef.current || !hasEverStreamedRef.current) {
34990
- _optionalChain([callbacks, 'access', _840 => _840.onSegmentsUpdate, 'optionalCall', _841 => _841(segments)]);
34998
+ _optionalChain([callbacks, 'access', _841 => _841.onSegmentsUpdate, 'optionalCall', _842 => _842(segments)]);
34991
34999
  } else {
34992
- _optionalChain([callbacks, 'access', _842 => _842.onSegmentsUpdate, 'optionalCall', _843 => _843([{ type: "text", text: action.text }], { append: true })]);
35000
+ _optionalChain([callbacks, 'access', _843 => _843.onSegmentsUpdate, 'optionalCall', _844 => _844([{ type: "text", text: action.text }], { append: true })]);
34993
35001
  }
34994
35002
  break;
34995
35003
  }
34996
35004
  case "thinking": {
34997
35005
  const segments = accumulator.appendThinking(action.text);
34998
35006
  if (isInStreamRef.current || !hasEverStreamedRef.current) {
34999
- _optionalChain([callbacks, 'access', _844 => _844.onSegmentsUpdate, 'optionalCall', _845 => _845(segments)]);
35007
+ _optionalChain([callbacks, 'access', _845 => _845.onSegmentsUpdate, 'optionalCall', _846 => _846(segments)]);
35000
35008
  } else {
35001
- _optionalChain([callbacks, 'access', _846 => _846.onSegmentsUpdate, 'optionalCall', _847 => _847([{ type: "thinking", text: action.text }], { append: true })]);
35009
+ _optionalChain([callbacks, 'access', _847 => _847.onSegmentsUpdate, 'optionalCall', _848 => _848([{ type: "thinking", text: action.text }], { append: true })]);
35002
35010
  }
35003
35011
  break;
35004
35012
  }
@@ -35008,7 +35016,7 @@ function useRealtimeChunkProcessor(options) {
35008
35016
  break;
35009
35017
  }
35010
35018
  const segments = accumulator.addToolExecution(action.segment);
35011
- _optionalChain([callbacks, 'access', _848 => _848.onSegmentsUpdate, 'optionalCall', _849 => _849(segments)]);
35019
+ _optionalChain([callbacks, 'access', _849 => _849.onSegmentsUpdate, 'optionalCall', _850 => _850(segments)]);
35012
35020
  break;
35013
35021
  }
35014
35022
  case "approval_request": {
@@ -35022,10 +35030,10 @@ function useRealtimeChunkProcessor(options) {
35022
35030
  approvalType,
35023
35031
  status
35024
35032
  );
35025
- _optionalChain([callbacks, 'access', _850 => _850.onSegmentsUpdate, 'optionalCall', _851 => _851(segments)]);
35033
+ _optionalChain([callbacks, 'access', _851 => _851.onSegmentsUpdate, 'optionalCall', _852 => _852(segments)]);
35026
35034
  } else {
35027
35035
  pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
35028
- _optionalChain([callbacks, 'access', _852 => _852.onEscalatedApproval, 'optionalCall', _853 => _853(requestId, { command, explanation, approvalType })]);
35036
+ _optionalChain([callbacks, 'access', _853 => _853.onEscalatedApproval, 'optionalCall', _854 => _854(requestId, { command, explanation, approvalType })]);
35029
35037
  }
35030
35038
  break;
35031
35039
  }
@@ -35037,20 +35045,20 @@ function useRealtimeChunkProcessor(options) {
35037
35045
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
35038
35046
  pendingEscalatedRef.current.set(requestId, {
35039
35047
  command: summary,
35040
- explanation: _optionalChain([required, 'optionalAccess', _854 => _854.toolExplanation]),
35048
+ explanation: _optionalChain([required, 'optionalAccess', _855 => _855.toolExplanation]),
35041
35049
  approvalType,
35042
35050
  toolCalls
35043
35051
  });
35044
- _optionalChain([callbacks, 'access', _855 => _855.onEscalatedApproval, 'optionalCall', _856 => _856(requestId, {
35052
+ _optionalChain([callbacks, 'access', _856 => _856.onEscalatedApproval, 'optionalCall', _857 => _857(requestId, {
35045
35053
  command: summary,
35046
- explanation: _optionalChain([required, 'optionalAccess', _857 => _857.toolExplanation]),
35054
+ explanation: _optionalChain([required, 'optionalAccess', _858 => _858.toolExplanation]),
35047
35055
  approvalType
35048
35056
  })]);
35049
35057
  break;
35050
35058
  }
35051
35059
  if (batchApprovalsEnabled) {
35052
35060
  const segments2 = accumulator.addApprovalBatch(requestId, approvalType, toolCalls, status);
35053
- _optionalChain([callbacks, 'access', _858 => _858.onSegmentsUpdate, 'optionalCall', _859 => _859(segments2)]);
35061
+ _optionalChain([callbacks, 'access', _859 => _859.onSegmentsUpdate, 'optionalCall', _860 => _860(segments2)]);
35054
35062
  break;
35055
35063
  }
35056
35064
  let segments = accumulator.getSegments();
@@ -35064,7 +35072,7 @@ function useRealtimeChunkProcessor(options) {
35064
35072
  status
35065
35073
  );
35066
35074
  }
35067
- _optionalChain([callbacks, 'access', _860 => _860.onSegmentsUpdate, 'optionalCall', _861 => _861(segments)]);
35075
+ _optionalChain([callbacks, 'access', _861 => _861.onSegmentsUpdate, 'optionalCall', _862 => _862(segments)]);
35068
35076
  break;
35069
35077
  }
35070
35078
  case "approval_result": {
@@ -35073,7 +35081,7 @@ function useRealtimeChunkProcessor(options) {
35073
35081
  const status = approved ? "approved" : "rejected";
35074
35082
  if (escalatedData) {
35075
35083
  pendingEscalatedRef.current.delete(requestId);
35076
- _optionalChain([callbacks, 'access', _862 => _862.onEscalatedApprovalResult, 'optionalCall', _863 => _863(requestId, approved, {
35084
+ _optionalChain([callbacks, 'access', _863 => _863.onEscalatedApprovalResult, 'optionalCall', _864 => _864(requestId, approved, {
35077
35085
  command: escalatedData.command,
35078
35086
  explanation: escalatedData.explanation,
35079
35087
  approvalType: escalatedData.approvalType
@@ -35086,7 +35094,7 @@ function useRealtimeChunkProcessor(options) {
35086
35094
  escalatedData.toolCalls,
35087
35095
  status
35088
35096
  );
35089
- _optionalChain([callbacks, 'access', _864 => _864.onSegmentsUpdate, 'optionalCall', _865 => _865(segments)]);
35097
+ _optionalChain([callbacks, 'access', _865 => _865.onSegmentsUpdate, 'optionalCall', _866 => _866(segments)]);
35090
35098
  } else {
35091
35099
  let segments = accumulator.getSegments();
35092
35100
  for (const call of escalatedData.toolCalls) {
@@ -35099,7 +35107,7 @@ function useRealtimeChunkProcessor(options) {
35099
35107
  status
35100
35108
  );
35101
35109
  }
35102
- _optionalChain([callbacks, 'access', _866 => _866.onSegmentsUpdate, 'optionalCall', _867 => _867(segments)]);
35110
+ _optionalChain([callbacks, 'access', _867 => _867.onSegmentsUpdate, 'optionalCall', _868 => _868(segments)]);
35103
35111
  }
35104
35112
  } else {
35105
35113
  const segments = accumulator.addApprovalRequest(
@@ -35109,37 +35117,37 @@ function useRealtimeChunkProcessor(options) {
35109
35117
  escalatedData.approvalType,
35110
35118
  status
35111
35119
  );
35112
- _optionalChain([callbacks, 'access', _868 => _868.onSegmentsUpdate, 'optionalCall', _869 => _869(segments)]);
35120
+ _optionalChain([callbacks, 'access', _869 => _869.onSegmentsUpdate, 'optionalCall', _870 => _870(segments)]);
35113
35121
  }
35114
35122
  } else {
35115
35123
  accumulator.updateApprovalStatus(requestId, status);
35116
35124
  if (!callbacks.onApprovalResolved) {
35117
- _optionalChain([callbacks, 'access', _870 => _870.onSegmentsUpdate, 'optionalCall', _871 => _871(accumulator.getSegments())]);
35125
+ _optionalChain([callbacks, 'access', _871 => _871.onSegmentsUpdate, 'optionalCall', _872 => _872(accumulator.getSegments())]);
35118
35126
  }
35119
35127
  }
35120
- _optionalChain([callbacks, 'access', _872 => _872.onApprovalResolved, 'optionalCall', _873 => _873(requestId, status, approvalType)]);
35128
+ _optionalChain([callbacks, 'access', _873 => _873.onApprovalResolved, 'optionalCall', _874 => _874(requestId, status, approvalType)]);
35121
35129
  break;
35122
35130
  }
35123
35131
  case "error": {
35124
35132
  let message2;
35125
- if ("details" in action && _optionalChain([action, 'optionalAccess', _874 => _874.details])) {
35133
+ if ("details" in action && _optionalChain([action, 'optionalAccess', _875 => _875.details])) {
35126
35134
  try {
35127
- message2 = _optionalChain([JSON, 'access', _875 => _875.parse, 'call', _876 => _876(action.details), 'optionalAccess', _877 => _877.error, 'optionalAccess', _878 => _878.message]);
35135
+ message2 = _optionalChain([JSON, 'access', _876 => _876.parse, 'call', _877 => _877(action.details), 'optionalAccess', _878 => _878.error, 'optionalAccess', _879 => _879.message]);
35128
35136
  } catch (e35) {
35129
35137
  message2 = action.details;
35130
35138
  }
35131
35139
  }
35132
35140
  const segments = accumulator.addError(action.error, message2);
35133
- _optionalChain([callbacks, 'access', _879 => _879.onSegmentsUpdate, 'optionalCall', _880 => _880(segments)]);
35134
- _optionalChain([callbacks, 'access', _881 => _881.onError, 'optionalCall', _882 => _882(action.error, message2)]);
35141
+ _optionalChain([callbacks, 'access', _880 => _880.onSegmentsUpdate, 'optionalCall', _881 => _881(segments)]);
35142
+ _optionalChain([callbacks, 'access', _882 => _882.onError, 'optionalCall', _883 => _883(action.error, message2)]);
35135
35143
  break;
35136
35144
  }
35137
35145
  case "system": {
35138
- _optionalChain([callbacks, 'access', _883 => _883.onSystemMessage, 'optionalCall', _884 => _884(action.text)]);
35146
+ _optionalChain([callbacks, 'access', _884 => _884.onSystemMessage, 'optionalCall', _885 => _885(action.text)]);
35139
35147
  break;
35140
35148
  }
35141
35149
  case "direct_message": {
35142
- _optionalChain([callbacks, 'access', _885 => _885.onDirectMessage, 'optionalCall', _886 => _886(action.text, {
35150
+ _optionalChain([callbacks, 'access', _886 => _886.onDirectMessage, 'optionalCall', _887 => _887(action.text, {
35143
35151
  ownerType: action.ownerType,
35144
35152
  displayName: action.displayName,
35145
35153
  userId: action.userId
@@ -35147,29 +35155,29 @@ function useRealtimeChunkProcessor(options) {
35147
35155
  break;
35148
35156
  }
35149
35157
  case "message_request":
35150
- _optionalChain([callbacks, 'access', _887 => _887.onUserMessage, 'optionalCall', _888 => _888(action.text, {
35158
+ _optionalChain([callbacks, 'access', _888 => _888.onUserMessage, 'optionalCall', _889 => _889(action.text, {
35151
35159
  ownerType: action.ownerType,
35152
35160
  displayName: action.displayName,
35153
35161
  userId: action.userId
35154
35162
  })]);
35155
35163
  break;
35156
35164
  case "token_usage":
35157
- _optionalChain([callbacks, 'access', _889 => _889.onTokenUsage, 'optionalCall', _890 => _890(action.data)]);
35165
+ _optionalChain([callbacks, 'access', _890 => _890.onTokenUsage, 'optionalCall', _891 => _891(action.data)]);
35158
35166
  break;
35159
35167
  case "context_compaction_start": {
35160
35168
  const standalone = !isInStreamRef.current;
35161
35169
  const segments = accumulator.addContextCompaction();
35162
- _optionalChain([callbacks, 'access', _891 => _891.onSegmentsUpdate, 'optionalCall', _892 => _892(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
35170
+ _optionalChain([callbacks, 'access', _892 => _892.onSegmentsUpdate, 'optionalCall', _893 => _893(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
35163
35171
  break;
35164
35172
  }
35165
35173
  case "context_compaction_end": {
35166
35174
  const standalone = !isInStreamRef.current;
35167
35175
  const segments = accumulator.completeContextCompaction(action.summary);
35168
- _optionalChain([callbacks, 'access', _893 => _893.onSegmentsUpdate, 'optionalCall', _894 => _894(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
35176
+ _optionalChain([callbacks, 'access', _894 => _894.onSegmentsUpdate, 'optionalCall', _895 => _895(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
35169
35177
  break;
35170
35178
  }
35171
35179
  case "dialog_closed":
35172
- _optionalChain([callbacks, 'access', _895 => _895.onDialogClosed, 'optionalCall', _896 => _896()]);
35180
+ _optionalChain([callbacks, 'access', _896 => _896.onDialogClosed, 'optionalCall', _897 => _897()]);
35173
35181
  break;
35174
35182
  default:
35175
35183
  break;
@@ -35231,7 +35239,7 @@ function useSlashCommands(prefix, commandsUrl) {
35231
35239
  const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
35232
35240
  if (!cancelled) setCommands(next);
35233
35241
  } catch (err) {
35234
- if (!cancelled && _optionalChain([err, 'optionalAccess', _897 => _897.name]) !== "AbortError") {
35242
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _898 => _898.name]) !== "AbortError") {
35235
35243
  console.warn("[use-slash-commands] fetch failed:", err);
35236
35244
  }
35237
35245
  } finally {
@@ -35250,7 +35258,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
35250
35258
  const query = _reactquery.useQuery.call(void 0, {
35251
35259
  queryKey: ["chat-slash-commands", commandsUrl],
35252
35260
  queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
35253
- enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _898 => _898.enabled]), () => ( true)),
35261
+ enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _899 => _899.enabled]), () => ( true)),
35254
35262
  staleTime: Infinity,
35255
35263
  gcTime: Infinity
35256
35264
  });
@@ -35271,7 +35279,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
35271
35279
  var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
35272
35280
  function uploadWithProgress(url, file, token, onProgress, signal) {
35273
35281
  return new Promise((resolve, reject) => {
35274
- if (_optionalChain([signal, 'optionalAccess', _899 => _899.aborted])) {
35282
+ if (_optionalChain([signal, 'optionalAccess', _900 => _900.aborted])) {
35275
35283
  reject(new Error("Upload cancelled"));
35276
35284
  return;
35277
35285
  }
@@ -35285,7 +35293,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
35285
35293
  xhr.removeEventListener("error", handleError);
35286
35294
  xhr.removeEventListener("abort", handleAbort);
35287
35295
  xhr.removeEventListener("timeout", handleTimeout);
35288
- _optionalChain([signal, 'optionalAccess', _900 => _900.removeEventListener, 'call', _901 => _901("abort", handleSignalAbort)]);
35296
+ _optionalChain([signal, 'optionalAccess', _901 => _901.removeEventListener, 'call', _902 => _902("abort", handleSignalAbort)]);
35289
35297
  if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
35290
35298
  };
35291
35299
  const handleProgress = (event) => {
@@ -35321,7 +35329,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
35321
35329
  const handleSignalAbort = () => {
35322
35330
  xhr.abort();
35323
35331
  };
35324
- _optionalChain([signal, 'optionalAccess', _902 => _902.addEventListener, 'call', _903 => _903("abort", handleSignalAbort, { once: true })]);
35332
+ _optionalChain([signal, 'optionalAccess', _903 => _903.addEventListener, 'call', _904 => _904("abort", handleSignalAbort, { once: true })]);
35325
35333
  xhr.upload.addEventListener("progress", handleProgress);
35326
35334
  xhr.addEventListener("load", handleLoad);
35327
35335
  xhr.addEventListener("error", handleError);
@@ -35365,12 +35373,12 @@ function useChatAttachments() {
35365
35373
  try {
35366
35374
  sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
35367
35375
  } catch (err) {
35368
- if (_optionalChain([ctrl, 'optionalAccess', _904 => _904.signal, 'access', _905 => _905.aborted])) return;
35376
+ if (_optionalChain([ctrl, 'optionalAccess', _905 => _905.signal, 'access', _906 => _906.aborted])) return;
35369
35377
  throw new Error(
35370
35378
  `Could not read file content: ${err instanceof Error ? err.message : String(err)}`
35371
35379
  );
35372
35380
  }
35373
- if (_optionalChain([ctrl, 'optionalAccess', _906 => _906.signal, 'access', _907 => _907.aborted])) return;
35381
+ if (_optionalChain([ctrl, 'optionalAccess', _907 => _907.signal, 'access', _908 => _908.aborted])) return;
35374
35382
  if (!sniffed) {
35375
35383
  throw new Error("Unrecognized file format");
35376
35384
  }
@@ -35384,7 +35392,7 @@ function useChatAttachments() {
35384
35392
  const urlResp = await embedAuthedFetch(uploadUrlEndpoint, {
35385
35393
  method: "POST",
35386
35394
  headers: { "Content-Type": "application/json" },
35387
- signal: _optionalChain([ctrl, 'optionalAccess', _908 => _908.signal]),
35395
+ signal: _optionalChain([ctrl, 'optionalAccess', _909 => _909.signal]),
35388
35396
  body: JSON.stringify({
35389
35397
  fileName: att.file.name,
35390
35398
  // Pass the SNIFFED MIME (not `file.type`, which can be a
@@ -35410,9 +35418,9 @@ function useChatAttachments() {
35410
35418
  (pct) => {
35411
35419
  updateOne(att.id, { progress: pct });
35412
35420
  },
35413
- _optionalChain([ctrl, 'optionalAccess', _909 => _909.signal])
35421
+ _optionalChain([ctrl, 'optionalAccess', _910 => _910.signal])
35414
35422
  );
35415
- if (_optionalChain([ctrl, 'optionalAccess', _910 => _910.signal, 'access', _911 => _911.aborted])) return;
35423
+ if (_optionalChain([ctrl, 'optionalAccess', _911 => _911.signal, 'access', _912 => _912.aborted])) return;
35416
35424
  updateOne(att.id, {
35417
35425
  status: "ready",
35418
35426
  progress: 100,
@@ -35420,7 +35428,7 @@ function useChatAttachments() {
35420
35428
  viewToken: mintData.viewToken
35421
35429
  });
35422
35430
  } catch (err) {
35423
- if (_optionalChain([ctrl, 'optionalAccess', _912 => _912.signal, 'access', _913 => _913.aborted])) return;
35431
+ if (_optionalChain([ctrl, 'optionalAccess', _913 => _913.signal, 'access', _914 => _914.aborted])) return;
35424
35432
  const message2 = err instanceof Error ? err.message : String(err);
35425
35433
  updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
35426
35434
  } finally {
@@ -35571,7 +35579,7 @@ var ANON_DEFAULTS = {
35571
35579
  function useResolveChatIdentity(enabled) {
35572
35580
  const runtime = _chunkMEAR2WHScjs.useRequiredChatRuntime.call(void 0, );
35573
35581
  const url = runtime.endpoints.identityUrl;
35574
- const proxyEmail = _nullishCoalesce(_optionalChain([getEmbedProxyAuth, 'call', _914 => _914(), 'optionalAccess', _915 => _915.email]), () => ( null));
35582
+ const proxyEmail = _nullishCoalesce(_optionalChain([getEmbedProxyAuth, 'call', _915 => _915(), 'optionalAccess', _916 => _916.email]), () => ( null));
35575
35583
  const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
35576
35584
  const [isLoading, setIsLoading] = _react.useState.call(void 0, enabled);
35577
35585
  _react.useEffect.call(void 0, () => {
@@ -35659,7 +35667,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
35659
35667
  yield chunk;
35660
35668
  }
35661
35669
  } catch (err) {
35662
- if (_optionalChain([err, 'optionalAccess', _916 => _916.name]) === "AbortError" || ctrl.signal.aborted) {
35670
+ if (_optionalChain([err, 'optionalAccess', _917 => _917.name]) === "AbortError" || ctrl.signal.aborted) {
35663
35671
  return;
35664
35672
  }
35665
35673
  const errorMessage = err instanceof Error ? err.message : "An error occurred";
@@ -35710,7 +35718,7 @@ function useChat({
35710
35718
  const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
35711
35719
  onMessagesChangeRef.current = onMessagesChange;
35712
35720
  _react.useEffect.call(void 0, () => {
35713
- _optionalChain([onMessagesChangeRef, 'access', _917 => _917.current, 'optionalCall', _918 => _918(messages)]);
35721
+ _optionalChain([onMessagesChangeRef, 'access', _918 => _918.current, 'optionalCall', _919 => _919(messages)]);
35714
35722
  }, [messages]);
35715
35723
  const {
35716
35724
  streamMessage,
@@ -35747,7 +35755,7 @@ function useChat({
35747
35755
  name: "You",
35748
35756
  content: text,
35749
35757
  timestamp: /* @__PURE__ */ new Date(),
35750
- ..._optionalChain([options, 'optionalAccess', _919 => _919.hidden]) ? { hidden: true } : {}
35758
+ ..._optionalChain([options, 'optionalAccess', _920 => _920.hidden]) ? { hidden: true } : {}
35751
35759
  };
35752
35760
  addMessage(userMessage);
35753
35761
  setIsTyping(true);
@@ -35809,7 +35817,7 @@ function useChat({
35809
35817
  currentTextSegment = "";
35810
35818
  }
35811
35819
  const seg = segment;
35812
- const proposalId = _optionalChain([seg, 'access', _920 => _920.data, 'optionalAccess', _921 => _921.requestId]);
35820
+ const proposalId = _optionalChain([seg, 'access', _921 => _921.data, 'optionalAccess', _922 => _922.requestId]);
35813
35821
  const updateApprovalMessage = (transform) => {
35814
35822
  setMessages((prev) => {
35815
35823
  for (let i = prev.length - 1; i >= 0; i--) {
@@ -35818,7 +35826,7 @@ function useChat({
35818
35826
  if (!Array.isArray(m.content)) continue;
35819
35827
  const segments = m.content;
35820
35828
  const hasMatch = segments.some(
35821
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _922 => _922.data, 'optionalAccess', _923 => _923.requestId]) === proposalId
35829
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _923 => _923.data, 'optionalAccess', _924 => _924.requestId]) === proposalId
35822
35830
  );
35823
35831
  if (!hasMatch) continue;
35824
35832
  const next = [...prev];
@@ -35860,11 +35868,11 @@ function useChat({
35860
35868
  if (!Array.isArray(m.content)) continue;
35861
35869
  const segments = m.content;
35862
35870
  const hasMatch = segments.some(
35863
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _924 => _924.data, 'optionalAccess', _925 => _925.requestId]) === decision.proposalId
35871
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _925 => _925.data, 'optionalAccess', _926 => _926.requestId]) === decision.proposalId
35864
35872
  );
35865
35873
  if (!hasMatch) continue;
35866
35874
  const flipped = segments.map(
35867
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _926 => _926.data, 'optionalAccess', _927 => _927.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
35875
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _927 => _927.data, 'optionalAccess', _928 => _928.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
35868
35876
  );
35869
35877
  const next = [...prev];
35870
35878
  next[i] = { ...m, content: flipped };
@@ -36026,8 +36034,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36026
36034
  })),
36027
36035
  { role: "user", content: message2 }
36028
36036
  ];
36029
- const targetPath = _optionalChain([extra, 'optionalAccess', _928 => _928.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
36030
- const requestBody = _optionalChain([extra, 'optionalAccess', _929 => _929.approvalAction]) ? {
36037
+ const targetPath = _optionalChain([extra, 'optionalAccess', _929 => _929.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
36038
+ const requestBody = _optionalChain([extra, 'optionalAccess', _930 => _930.approvalAction]) ? {
36031
36039
  proposal_id: extra.approvalAction.proposalId,
36032
36040
  action: extra.approvalAction.action,
36033
36041
  messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
@@ -36036,8 +36044,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36036
36044
  }))
36037
36045
  } : {
36038
36046
  messages: apiMessages,
36039
- ..._optionalChain([extra, 'optionalAccess', _930 => _930.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
36040
- ..._optionalChain([extra, 'optionalAccess', _931 => _931.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
36047
+ ..._optionalChain([extra, 'optionalAccess', _931 => _931.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
36048
+ ..._optionalChain([extra, 'optionalAccess', _932 => _932.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
36041
36049
  };
36042
36050
  const response = await embedAuthedFetch(targetPath, {
36043
36051
  method: "POST",
@@ -36047,7 +36055,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36047
36055
  if (!response.ok) {
36048
36056
  throw new Error(`Chat request failed: ${response.status}`);
36049
36057
  }
36050
- const reader = _optionalChain([response, 'access', _932 => _932.body, 'optionalAccess', _933 => _933.getReader, 'call', _934 => _934()]);
36058
+ const reader = _optionalChain([response, 'access', _933 => _933.body, 'optionalAccess', _934 => _934.getReader, 'call', _935 => _935()]);
36051
36059
  if (!reader) throw new Error("No response body");
36052
36060
  const decoder = new TextDecoder();
36053
36061
  let buffer = "";
@@ -36130,7 +36138,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36130
36138
  const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
36131
36139
  const result = _nullishCoalesce(meta.result, () => ( null));
36132
36140
  const card = _nullishCoalesce(meta.card, () => ( null));
36133
- if (_optionalChain([card, 'optionalAccess', _935 => _935.ref, 'optionalAccess', _936 => _936.id]) && _optionalChain([card, 'optionalAccess', _937 => _937.type])) {
36141
+ if (_optionalChain([card, 'optionalAccess', _936 => _936.ref, 'optionalAccess', _937 => _937.id]) && _optionalChain([card, 'optionalAccess', _938 => _938.type])) {
36134
36142
  const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
36135
36143
  const key = buildChatRefKey(card.type, card.ref.id);
36136
36144
  refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
@@ -36143,8 +36151,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36143
36151
  willAutoContinue: meta.willAutoContinue === true,
36144
36152
  ...toolName ? { toolName } : {},
36145
36153
  ...result ? { result } : {},
36146
- ..._optionalChain([card, 'optionalAccess', _938 => _938.marker]) ? { marker: card.marker } : {},
36147
- ..._optionalChain([card, 'optionalAccess', _939 => _939.ref]) ? { cardRef: card.ref } : {},
36154
+ ..._optionalChain([card, 'optionalAccess', _939 => _939.marker]) ? { marker: card.marker } : {},
36155
+ ..._optionalChain([card, 'optionalAccess', _940 => _940.ref]) ? { cardRef: card.ref } : {},
36148
36156
  ...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
36149
36157
  proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
36150
36158
  };
@@ -36263,7 +36271,7 @@ var DEFAULT_CHAT_SOURCE = "embed";
36263
36271
  var chatStorageKey = (source) => {
36264
36272
  const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
36265
36273
  const auth = getEmbedProxyAuth();
36266
- if (_optionalChain([auth, 'optionalAccess', _940 => _940.email])) {
36274
+ if (_optionalChain([auth, 'optionalAccess', _941 => _941.email])) {
36267
36275
  return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
36268
36276
  }
36269
36277
  return base;
@@ -36318,7 +36326,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
36318
36326
  const { active = true } = runtimeOptions;
36319
36327
  const runtime = _chunkMEAR2WHScjs.useRequiredChatRuntime.call(void 0, );
36320
36328
  const source = runtime.source || DEFAULT_CHAT_SOURCE;
36321
- const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _941 => _941.tableIdForDocumentType]), () => ( _chunk7MNBE7XAcjs.defaultTableIdForDocumentType));
36329
+ const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _942 => _942.tableIdForDocumentType]), () => ( _chunk7MNBE7XAcjs.defaultTableIdForDocumentType));
36322
36330
  const persistedRef = _react.useRef.call(void 0, null);
36323
36331
  if (persistedRef.current === null) {
36324
36332
  pruneStaleChatStorage(source);
@@ -36423,7 +36431,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
36423
36431
  const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
36424
36432
  sources = sourcesMapRef.current.get(lookupIdx);
36425
36433
  chatRefs = _nullishCoalesce(m.chatRefs, () => ( refsMapRef.current.get(lookupIdx)));
36426
- scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _942 => _942.current, 'access', _943 => _943.get, 'call', _944 => _944(lookupIdx), 'optionalAccess', _945 => _945.scrollAnchor]), () => ( void 0));
36434
+ scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _943 => _943.current, 'access', _944 => _944.get, 'call', _945 => _945(lookupIdx), 'optionalAccess', _946 => _946.scrollAnchor]), () => ( void 0));
36427
36435
  }
36428
36436
  return {
36429
36437
  id: m.id,
@@ -36471,7 +36479,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
36471
36479
  );
36472
36480
  return;
36473
36481
  }
36474
- const refSlug = typeof _optionalChain([reference, 'access', _946 => _946.metadata, 'optionalAccess', _947 => _947.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
36482
+ const refSlug = typeof _optionalChain([reference, 'access', _947 => _947.metadata, 'optionalAccess', _948 => _948.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
36475
36483
  const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
36476
36484
  const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
36477
36485
  const text = `/${cmdId} display "${escaped}"`;
@@ -36543,18 +36551,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
36543
36551
  clearMessages,
36544
36552
  streamingPhase,
36545
36553
  /** Provider key for the lib's `<ModelDisplay>` icon. */
36546
- currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _948 => _948.provider]), () => ( null)),
36547
- currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _949 => _949.modelLabel]), () => ( null)),
36548
- currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _950 => _950.contextWindowMaxTokens]), () => ( null)),
36554
+ currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _949 => _949.provider]), () => ( null)),
36555
+ currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _950 => _950.modelLabel]), () => ( null)),
36556
+ currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _951 => _951.contextWindowMaxTokens]), () => ( null)),
36549
36557
  /** Input tokens (known after server's message_start frame; null until). */
36550
- currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _951 => _951.inputTokens]), () => ( null)),
36558
+ currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _952 => _952.inputTokens]), () => ( null)),
36551
36559
  /** Output tokens (known only after server's trailing usage frame). */
36552
- currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _952 => _952.outputTokens]), () => ( null)),
36560
+ currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _953 => _953.outputTokens]), () => ( null)),
36553
36561
  /** Cache hit % (read / total-input × 100). null during streaming. */
36554
- currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _953 => _953.cacheHitRatePct]), () => ( null)),
36562
+ currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _954 => _954.cacheHitRatePct]), () => ( null)),
36555
36563
  /** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
36556
36564
  * token counts). null until the trailing usage frame lands. */
36557
- currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _954 => _954.breakdown]), () => ( null)),
36565
+ currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _955 => _955.breakdown]), () => ( null)),
36558
36566
  // ─── Dialog management — stubs for v1 ────────────────────────────────
36559
36567
  // Guide mode currently keeps its history in `localStorage` opaquely
36560
36568
  // under the hood (`runtime.source` namespaced key). Surfacing that
@@ -36612,15 +36620,15 @@ var noopRejectRequest = async (_id, _reason) => {
36612
36620
 
36613
36621
  // src/components/chat/utils/process-historical-messages.ts
36614
36622
  function getOwnerDisplayName(owner) {
36615
- if (_optionalChain([owner, 'optionalAccess', _955 => _955.type]) === OWNER_TYPE.ADMIN && owner.user) {
36623
+ if (_optionalChain([owner, 'optionalAccess', _956 => _956.type]) === OWNER_TYPE.ADMIN && owner.user) {
36616
36624
  const { firstName, lastName } = owner.user;
36617
36625
  const name = [firstName, lastName].filter(Boolean).join(" ");
36618
36626
  if (name) return name;
36619
36627
  }
36620
- return _optionalChain([owner, 'optionalAccess', _956 => _956.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
36628
+ return _optionalChain([owner, 'optionalAccess', _957 => _957.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
36621
36629
  }
36622
36630
  function getOwnerAvatar(owner) {
36623
- return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _957 => _957.user, 'optionalAccess', _958 => _958.image, 'optionalAccess', _959 => _959.imageUrl]), () => ( void 0));
36631
+ return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _958 => _958.user, 'optionalAccess', _959 => _959.image, 'optionalAccess', _960 => _960.imageUrl]), () => ( void 0));
36624
36632
  }
36625
36633
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
36626
36634
  messageDataArray.forEach((data) => {
@@ -36683,10 +36691,10 @@ function processHistoricalMessages(messages, options = {}) {
36683
36691
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
36684
36692
  return;
36685
36693
  }
36686
- 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;
36694
+ const isUserMessage = _optionalChain([msg, 'access', _961 => _961.owner, 'optionalAccess', _962 => _962.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _963 => _963.owner, 'optionalAccess', _964 => _964.type]) === OWNER_TYPE.ADMIN;
36687
36695
  if (isUserMessage) {
36688
36696
  flushAssistantMessage();
36689
- const userAuthorType = _optionalChain([msg, 'access', _964 => _964.owner, 'optionalAccess', _965 => _965.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
36697
+ const userAuthorType = _optionalChain([msg, 'access', _965 => _965.owner, 'optionalAccess', _966 => _966.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
36690
36698
  messageDataArray.forEach((data) => {
36691
36699
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
36692
36700
  processedMessages.push({
@@ -36711,7 +36719,7 @@ function processHistoricalMessages(messages, options = {}) {
36711
36719
  });
36712
36720
  const nextMsg = messages[index + 1];
36713
36721
  const isLastMessage = index === messages.length - 1;
36714
- 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);
36722
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _967 => _967.owner, 'optionalAccess', _968 => _968.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _969 => _969.owner, 'optionalAccess', _970 => _970.type]) === OWNER_TYPE.ADMIN);
36715
36723
  if (isLastMessage || nextIsFromUser) {
36716
36724
  flushAssistantMessage();
36717
36725
  }
@@ -36821,7 +36829,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
36821
36829
  }
36822
36830
  }
36823
36831
  } else {
36824
- _optionalChain([escalatedApprovals, 'optionalAccess', _970 => _970.set, 'call', _971 => _971(data.approvalRequestId, {
36832
+ _optionalChain([escalatedApprovals, 'optionalAccess', _971 => _971.set, 'call', _972 => _972(data.approvalRequestId, {
36825
36833
  command: data.command || "",
36826
36834
  explanation: data.explanation,
36827
36835
  approvalType,
@@ -36834,8 +36842,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
36834
36842
  if ("approvalRequestId" in data && data.approvalRequestId) {
36835
36843
  const existingStatus = approvalStatuses[data.approvalRequestId];
36836
36844
  const status = existingStatus || (data.approved ? "approved" : "rejected");
36837
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _972 => _972.get, 'call', _973 => _973(data.approvalRequestId)]);
36838
- if (_optionalChain([escalatedData, 'optionalAccess', _974 => _974.toolCalls]) && escalatedData.toolCalls.length > 0) {
36845
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _973 => _973.get, 'call', _974 => _974(data.approvalRequestId)]);
36846
+ if (_optionalChain([escalatedData, 'optionalAccess', _975 => _975.toolCalls]) && escalatedData.toolCalls.length > 0) {
36839
36847
  if (batchApprovalsEnabled) {
36840
36848
  accumulator.addApprovalBatch(
36841
36849
  data.approvalRequestId,
@@ -36855,7 +36863,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
36855
36863
  );
36856
36864
  }
36857
36865
  }
36858
- _optionalChain([escalatedApprovals, 'optionalAccess', _975 => _975.delete, 'call', _976 => _976(data.approvalRequestId)]);
36866
+ _optionalChain([escalatedApprovals, 'optionalAccess', _976 => _976.delete, 'call', _977 => _977(data.approvalRequestId)]);
36859
36867
  break;
36860
36868
  }
36861
36869
  if (escalatedData) {
@@ -36864,7 +36872,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
36864
36872
  explanation: escalatedData.explanation,
36865
36873
  approvalType: escalatedData.approvalType
36866
36874
  });
36867
- _optionalChain([escalatedApprovals, 'optionalAccess', _977 => _977.delete, 'call', _978 => _978(data.approvalRequestId)]);
36875
+ _optionalChain([escalatedApprovals, 'optionalAccess', _978 => _978.delete, 'call', _979 => _979(data.approvalRequestId)]);
36868
36876
  }
36869
36877
  const before = accumulator.getSegments();
36870
36878
  const after = accumulator.updateApprovalStatus(data.approvalRequestId, status);
@@ -36880,9 +36888,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
36880
36888
  case MESSAGE_TYPE.ERROR:
36881
36889
  if ("error" in data) {
36882
36890
  let message2;
36883
- if ("details" in data && _optionalChain([data, 'optionalAccess', _979 => _979.details])) {
36891
+ if ("details" in data && _optionalChain([data, 'optionalAccess', _980 => _980.details])) {
36884
36892
  try {
36885
- message2 = _optionalChain([JSON, 'access', _980 => _980.parse, 'call', _981 => _981(data.details), 'optionalAccess', _982 => _982.error, 'optionalAccess', _983 => _983.message]);
36893
+ message2 = _optionalChain([JSON, 'access', _981 => _981.parse, 'call', _982 => _982(data.details), 'optionalAccess', _983 => _983.error, 'optionalAccess', _984 => _984.message]);
36886
36894
  } catch (e42) {
36887
36895
  message2 = data.details;
36888
36896
  }
@@ -36965,10 +36973,10 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
36965
36973
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
36966
36974
  return;
36967
36975
  }
36968
- const isUserMessage = _optionalChain([msg, 'access', _984 => _984.owner, 'optionalAccess', _985 => _985.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _986 => _986.owner, 'optionalAccess', _987 => _987.type]) === OWNER_TYPE.ADMIN;
36976
+ const isUserMessage = _optionalChain([msg, 'access', _985 => _985.owner, 'optionalAccess', _986 => _986.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _987 => _987.owner, 'optionalAccess', _988 => _988.type]) === OWNER_TYPE.ADMIN;
36969
36977
  if (isUserMessage) {
36970
36978
  flushAssistantMessage();
36971
- const userAuthorType = _optionalChain([msg, 'access', _988 => _988.owner, 'optionalAccess', _989 => _989.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
36979
+ const userAuthorType = _optionalChain([msg, 'access', _989 => _989.owner, 'optionalAccess', _990 => _990.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
36972
36980
  messageDataArray.forEach((data) => {
36973
36981
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
36974
36982
  processedMessages.push({
@@ -36993,7 +37001,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
36993
37001
  });
36994
37002
  const nextMsg = messages[index + 1];
36995
37003
  const isLastMessage = index === messages.length - 1;
36996
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _990 => _990.owner, 'optionalAccess', _991 => _991.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _992 => _992.owner, 'optionalAccess', _993 => _993.type]) === OWNER_TYPE.ADMIN);
37004
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _991 => _991.owner, 'optionalAccess', _992 => _992.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _993 => _993.owner, 'optionalAccess', _994 => _994.type]) === OWNER_TYPE.ADMIN);
36997
37005
  if (isLastMessage || nextIsFromUser) {
36998
37006
  flushAssistantMessage();
36999
37007
  }
@@ -37331,7 +37339,7 @@ function useNatsChatAdapter(config, options = {}) {
37331
37339
  }, [active, fetchDialogs, loadDialogsPage]);
37332
37340
  const sendMessage = _react.useCallback.call(void 0,
37333
37341
  async (text, sendOptions) => {
37334
- const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _994 => _994.hidden]), () => ( false));
37342
+ const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _995 => _995.hidden]), () => ( false));
37335
37343
  setMessages((prev) => [
37336
37344
  ...prev,
37337
37345
  {
@@ -37495,11 +37503,11 @@ function useNatsChatAdapter(config, options = {}) {
37495
37503
  // Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
37496
37504
  // contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
37497
37505
  // matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
37498
- currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _995 => _995.provider]), () => ( modelProvider)), () => ( null)),
37499
- currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _996 => _996.modelLabel]), () => ( modelLabel)), () => ( null)),
37500
- currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _997 => _997.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _998 => _998.contextWindowMaxTokens]))), () => ( null)),
37501
- currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _999 => _999.inputTokensSize]), () => ( null)),
37502
- currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1000 => _1000.outputTokensSize]), () => ( null)),
37506
+ currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _996 => _996.provider]), () => ( modelProvider)), () => ( null)),
37507
+ currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _997 => _997.modelLabel]), () => ( modelLabel)), () => ( null)),
37508
+ currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _998 => _998.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _999 => _999.contextWindowMaxTokens]))), () => ( null)),
37509
+ currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1000 => _1000.inputTokensSize]), () => ( null)),
37510
+ currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1001 => _1001.outputTokensSize]), () => ( null)),
37503
37511
  currentCacheHitRatePct: null,
37504
37512
  currentUsageBreakdown: null,
37505
37513
  // Dialog management
@@ -37747,7 +37755,7 @@ function extractIncompleteMessageState(lastMessage) {
37747
37755
  break;
37748
37756
  case "approval_batch": {
37749
37757
  const allDone = !!segment.data.executions && segment.data.toolCalls.every(
37750
- (c) => _optionalChain([segment, 'access', _1001 => _1001.data, 'access', _1002 => _1002.executions, 'optionalAccess', _1003 => _1003[c.toolExecutionRequestId], 'optionalAccess', _1004 => _1004.status]) === "done"
37758
+ (c) => _optionalChain([segment, 'access', _1002 => _1002.data, 'access', _1003 => _1003.executions, 'optionalAccess', _1004 => _1004[c.toolExecutionRequestId], 'optionalAccess', _1005 => _1005.status]) === "done"
37751
37759
  );
37752
37760
  if (segment.status !== "rejected" && !allDone) {
37753
37761
  hasIncompleteState = true;
@@ -37806,20 +37814,20 @@ function mergeHistoryWithRealtime(input) {
37806
37814
  const seqCoverageKnown = realtimeSeenStreamSeq > 0 && historyMaxStreamSeq > 0;
37807
37815
  const historyCoversRealtime = seqCoverageKnown ? historyMaxStreamSeq >= realtimeSeenStreamSeq : null;
37808
37816
  const trailing = processedHistory[processedHistory.length - 1];
37809
- const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1005 => _1005.role]) === "assistant" ? trailing : null;
37810
- const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _1006 => _1006.content, 'access', _1007 => _1007.find, 'call', _1008 => _1008((s) => s.type === "approval_batch"), 'optionalAccess', _1009 => _1009.data, 'optionalAccess', _1010 => _1010.approvalRequestId]), () => ( null)) : null;
37817
+ const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1006 => _1006.role]) === "assistant" ? trailing : null;
37818
+ const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _1007 => _1007.content, 'access', _1008 => _1008.find, 'call', _1009 => _1009((s) => s.type === "approval_batch"), 'optionalAccess', _1010 => _1010.data, 'optionalAccess', _1011 => _1011.approvalRequestId]), () => ( null)) : null;
37811
37819
  let processedToUse = processedHistory;
37812
37820
  const pinnedSyntheticIds = /* @__PURE__ */ new Set();
37813
37821
  const droppedSyntheticIds = /* @__PURE__ */ new Set();
37814
37822
  if (historyBatchId) {
37815
37823
  const batchTwins = existingMessages.filter(
37816
37824
  (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some(
37817
- (s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1011 => _1011.data, 'optionalAccess', _1012 => _1012.approvalRequestId]) === historyBatchId
37825
+ (s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1012 => _1012.data, 'optionalAccess', _1013 => _1013.approvalRequestId]) === historyBatchId
37818
37826
  )
37819
37827
  );
37820
37828
  const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
37821
37829
  if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
37822
- const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1013 => _1013.content])) ? historyTrailingAssistant.content.length : 0;
37830
+ const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1014 => _1014.content])) ? historyTrailingAssistant.content.length : 0;
37823
37831
  const realtimeSize = existingWithSameBatch.content.length;
37824
37832
  if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
37825
37833
  processedToUse = processedHistory.slice(0, -1);
@@ -37833,13 +37841,13 @@ function mergeHistoryWithRealtime(input) {
37833
37841
  if (pinnedSyntheticIds.has(m.id)) return true;
37834
37842
  if (droppedSyntheticIds.has(m.id)) return false;
37835
37843
  if (processedIds.has(m.id)) return false;
37836
- if (_optionalChain([rawHistoryIds, 'optionalAccess', _1014 => _1014.has, 'call', _1015 => _1015(m.id)])) return false;
37844
+ if (_optionalChain([rawHistoryIds, 'optionalAccess', _1015 => _1015.has, 'call', _1016 => _1016(m.id)])) return false;
37837
37845
  if (m.role === "user" && m.id.startsWith("optimistic-") && typeof m.content === "string") {
37838
- const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1016 => _1016.timestamp, 'optionalAccess', _1017 => _1017.getTime, 'call', _1018 => _1018()]), () => ( 0))) <= historyFetchedAt;
37846
+ const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1017 => _1017.timestamp, 'optionalAccess', _1018 => _1018.getTime, 'call', _1019 => _1019()]), () => ( 0))) <= historyFetchedAt;
37839
37847
  return !(canBeInSnapshot && processedToUse.some((pm) => pm.role === "user" && pm.content === m.content));
37840
37848
  }
37841
37849
  if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
37842
- const covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1019 => _1019.timestamp, 'optionalAccess', _1020 => _1020.getTime, 'call', _1021 => _1021()]), () => ( 0))) <= historyFetchedAt;
37850
+ const covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1020 => _1020.timestamp, 'optionalAccess', _1021 => _1021.getTime, 'call', _1022 => _1022()]), () => ( 0))) <= historyFetchedAt;
37843
37851
  if (covered) return false;
37844
37852
  }
37845
37853
  return true;
@@ -38059,7 +38067,7 @@ function useChatDialogManager({
38059
38067
  const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
38060
38068
  if (restoreTarget) {
38061
38069
  try {
38062
- await _optionalChain([unarchiveDialog, 'optionalCall', _1022 => _1022(restoreTarget.id)]);
38070
+ await _optionalChain([unarchiveDialog, 'optionalCall', _1023 => _1023(restoreTarget.id)]);
38063
38071
  } catch (err) {
38064
38072
  console.error("[useChatDialogManager] unarchive failed:", err);
38065
38073
  return;
@@ -38458,7 +38466,7 @@ function EmbeddableChatInner({
38458
38466
  }),
38459
38467
  [commandsUrl]
38460
38468
  );
38461
- const userName = _optionalChain([identityUser, 'optionalAccess', _1023 => _1023.firstName, 'optionalAccess', _1024 => _1024.trim, 'call', _1025 => _1025()]) || _optionalChain([identityUser, 'optionalAccess', _1026 => _1026.name, 'optionalAccess', _1027 => _1027.split, 'call', _1028 => _1028(" "), 'access', _1029 => _1029[0], 'optionalAccess', _1030 => _1030.trim, 'call', _1031 => _1031()]) || void 0;
38469
+ const userName = _optionalChain([identityUser, 'optionalAccess', _1024 => _1024.firstName, 'optionalAccess', _1025 => _1025.trim, 'call', _1026 => _1026()]) || _optionalChain([identityUser, 'optionalAccess', _1027 => _1027.name, 'optionalAccess', _1028 => _1028.split, 'call', _1029 => _1029(" "), 'access', _1030 => _1030[0], 'optionalAccess', _1031 => _1031.trim, 'call', _1032 => _1032()]) || void 0;
38462
38470
  const effectiveModes = _react.useMemo.call(void 0, () => {
38463
38471
  if (modes) return modes;
38464
38472
  const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
@@ -38467,17 +38475,17 @@ function EmbeddableChatInner({
38467
38475
  const mingoCaps = _react.useMemo.call(void 0, () => {
38468
38476
  if (mingoState) {
38469
38477
  return {
38470
- canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1032 => _1032.canRename]), () => ( false)),
38471
- canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1033 => _1033.canArchive]), () => ( false)),
38472
- fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1034 => _1034.fetchArchivedDialogs]),
38473
- unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1035 => _1035.unarchiveDialog])
38478
+ canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1033 => _1033.canRename]), () => ( false)),
38479
+ canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1034 => _1034.canArchive]), () => ( false)),
38480
+ fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1035 => _1035.fetchArchivedDialogs]),
38481
+ unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1036 => _1036.unarchiveDialog])
38474
38482
  };
38475
38483
  }
38476
38484
  return {
38477
- canRename: !!_optionalChain([effectiveModes, 'access', _1036 => _1036.mingo, 'optionalAccess', _1037 => _1037.renameDialog]),
38478
- canArchive: !!_optionalChain([effectiveModes, 'access', _1038 => _1038.mingo, 'optionalAccess', _1039 => _1039.archiveDialog]),
38479
- fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1040 => _1040.mingo, 'optionalAccess', _1041 => _1041.fetchArchivedDialogs]),
38480
- unarchiveDialog: _optionalChain([effectiveModes, 'access', _1042 => _1042.mingo, 'optionalAccess', _1043 => _1043.unarchiveDialog])
38485
+ canRename: !!_optionalChain([effectiveModes, 'access', _1037 => _1037.mingo, 'optionalAccess', _1038 => _1038.renameDialog]),
38486
+ canArchive: !!_optionalChain([effectiveModes, 'access', _1039 => _1039.mingo, 'optionalAccess', _1040 => _1040.archiveDialog]),
38487
+ fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1041 => _1041.mingo, 'optionalAccess', _1042 => _1042.fetchArchivedDialogs]),
38488
+ unarchiveDialog: _optionalChain([effectiveModes, 'access', _1043 => _1043.mingo, 'optionalAccess', _1044 => _1044.unarchiveDialog])
38481
38489
  };
38482
38490
  }, [mingoState, mingoDialogCapabilities, effectiveModes]);
38483
38491
  const hasMingoMode = !!effectiveModes.mingo || !!mingoState;
@@ -38489,7 +38497,7 @@ function EmbeddableChatInner({
38489
38497
  if (controlledActiveMode === void 0) {
38490
38498
  setUncontrolledActiveMode(next);
38491
38499
  }
38492
- _optionalChain([onActiveModeChange, 'optionalCall', _1044 => _1044(next)]);
38500
+ _optionalChain([onActiveModeChange, 'optionalCall', _1045 => _1045(next)]);
38493
38501
  },
38494
38502
  [controlledActiveMode, onActiveModeChange]
38495
38503
  );
@@ -38696,9 +38704,9 @@ function EmbeddableChatInner({
38696
38704
  const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
38697
38705
  const lastSources = _react.useMemo.call(void 0, () => {
38698
38706
  if (chatLoading) return void 0;
38699
- const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1045 => _1045.sources]);
38707
+ const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1046 => _1046.sources]);
38700
38708
  if (!sources || sources.length === 0) return void 0;
38701
- const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1046 => _1046.content]) || "";
38709
+ const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1047 => _1047.content]) || "";
38702
38710
  const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
38703
38711
  (m) => parseInt(m[1], 10)
38704
38712
  );
@@ -38745,7 +38753,7 @@ function EmbeddableChatInner({
38745
38753
  ChatPanelHeader,
38746
38754
  {
38747
38755
  showBack: hasConversation || guideCanReturnToMingo,
38748
- title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1047 => _1047.title]) || "New Chat" : isGuideEmpty ? "Mingo Guide" : "Current Chats",
38756
+ title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1048 => _1048.title]) || "New Chat" : isGuideEmpty ? "Mingo Guide" : "Current Chats",
38749
38757
  backAriaLabel: hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo",
38750
38758
  isArchivedView: isViewingArchived,
38751
38759
  onBack: hasConversation ? handleBack : () => handleActiveModeChange("mingo"),
@@ -38850,10 +38858,10 @@ function EmbeddableChatInner({
38850
38858
  subtitle: _nullishCoalesce(emptyStateGreeting, () => ( void 0)),
38851
38859
  ...guideWelcome,
38852
38860
  onQuickAction: (action) => {
38853
- _optionalChain([chatInputRef, 'access', _1048 => _1048.current, 'optionalAccess', _1049 => _1049.setValue, 'call', _1050 => _1050(
38861
+ _optionalChain([chatInputRef, 'access', _1049 => _1049.current, 'optionalAccess', _1050 => _1050.setValue, 'call', _1051 => _1051(
38854
38862
  _nullishCoalesce(action.prompt, () => ( action.label))
38855
38863
  )]);
38856
- _optionalChain([chatInputRef, 'access', _1051 => _1051.current, 'optionalAccess', _1052 => _1052.focus, 'call', _1053 => _1053()]);
38864
+ _optionalChain([chatInputRef, 'access', _1052 => _1052.current, 'optionalAccess', _1053 => _1053.focus, 'call', _1054 => _1054()]);
38857
38865
  },
38858
38866
  children: (chipCommands.length > 0 || !commandsLoaded) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "shrink-0 overflow-hidden rounded-md border border-ods-border", children: [
38859
38867
  !commandsLoaded && chipCommands.length === 0 && SKELETON_ROW_VARIANTS.map((variant, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -39674,4 +39682,4 @@ function EmbeddableChatInner({
39674
39682
 
39675
39683
 
39676
39684
  exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.Autocomplete = Autocomplete; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.HoneypotField = HoneypotField; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal2; exports.ModalContent = ModalContent2; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter2; exports.Modal2 = Modal; exports.ModalContent2 = ModalContent; exports.ModalHeader2 = ModalHeader; exports.ModalTitle2 = ModalTitle; exports.ModalFooter2 = ModalFooter; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.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.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.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.ColorSwatch = ColorSwatch; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.HEX_PATTERN = HEX_PATTERN; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.BlockCard = BlockCard; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.ChatQuickAction = ChatQuickAction; exports.ChatQuickActionRow = ChatQuickActionRow; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.GuideModeBanner = GuideModeBanner; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.COMPACT_HEADER_BUTTON = COMPACT_HEADER_BUTTON; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.FlamingoLogo = FlamingoLogo; exports.OpenmspLogo = OpenmspLogo; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.resolveReleaseCover = resolveReleaseCover; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.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.RoadmapVoteButton = RoadmapVoteButton; exports.getStatusColorScheme = getStatusColorScheme; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.getAppType = getAppType; exports.getEmbedProxyAuth = getEmbedProxyAuth; exports.getPersistedProxyEmail = getPersistedProxyEmail; exports.setEmbedProxyAuth = setEmbedProxyAuth; exports.clearEmbedProxyAuth = clearEmbedProxyAuth; exports.applyProxyAuth = applyProxyAuth; exports.setEmbedAuthAdapter = setEmbedAuthAdapter; exports.embedAuthedFetch = embedAuthedFetch; exports.extractItems = extractItems; exports.extractItemId = extractItemId; exports.useChatCardItem = useChatCardItem; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.useSseChatAdapter = useSseChatAdapter; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.ListPageLayout = ListPageLayout; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.PageHeading = PageHeading; exports.EntityImage = EntityImage; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.hexToRgb = hexToRgb2; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.scrollElementIntoView = scrollElementIntoView; exports.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl; exports.CONTENT_REF_GROUPS = CONTENT_REF_GROUPS; exports.getContentRefLabel = getContentRefLabel; exports.getContentRefLabelOrTitleCase = getContentRefLabelOrTitleCase; exports.orderContentRefTypes = orderContentRefTypes; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.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.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderMingoButton = HeaderMingoButton; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayout = AppLayout; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
39677
- //# sourceMappingURL=chunk-36HLBLDK.cjs.map
39685
+ //# sourceMappingURL=chunk-SIYHXLFH.cjs.map