@flamingo-stack/openframe-frontend-core 0.0.263 → 0.0.264-snapshot.20260612115719

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 (83) hide show
  1. package/dist/{chunk-YC357BPF.js → chunk-266DUZ6D.js} +3 -3
  2. package/dist/{chunk-36HLBLDK.cjs → chunk-2P6V2EWZ.cjs} +498 -455
  3. package/dist/chunk-2P6V2EWZ.cjs.map +1 -0
  4. package/dist/{chunk-ALEKX56R.js → chunk-6A2YQ5CY.js} +2 -2
  5. package/dist/{chunk-C3FAOQAH.cjs → chunk-D4TWJNO5.cjs} +28 -28
  6. package/dist/{chunk-C3FAOQAH.cjs.map → chunk-D4TWJNO5.cjs.map} +1 -1
  7. package/dist/{chunk-6AIXHYBZ.js → chunk-EXU5N5RM.js} +100 -57
  8. package/dist/chunk-EXU5N5RM.js.map +1 -0
  9. package/dist/{chunk-2XUWR7AH.cjs → chunk-HMHMK6U6.cjs} +11 -11
  10. package/dist/{chunk-2XUWR7AH.cjs.map → chunk-HMHMK6U6.cjs.map} +1 -1
  11. package/dist/{chunk-XKA7UFED.cjs → chunk-J5BBBDNA.cjs} +30 -30
  12. package/dist/{chunk-XKA7UFED.cjs.map → chunk-J5BBBDNA.cjs.map} +1 -1
  13. package/dist/{chunk-3DC6MHW6.cjs → chunk-QLWBBCI5.cjs} +491 -391
  14. package/dist/chunk-QLWBBCI5.cjs.map +1 -0
  15. package/dist/{chunk-U7UDESAU.js → chunk-Z5YEQWLC.js} +2 -2
  16. package/dist/{chunk-6GBA6YJN.js → chunk-ZMFT5XOB.js} +576 -476
  17. package/dist/chunk-ZMFT5XOB.js.map +1 -0
  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/board/ticket-card.d.ts.map +1 -1
  23. package/dist/components/features/board/types.d.ts +1 -0
  24. package/dist/components/features/board/types.d.ts.map +1 -1
  25. package/dist/components/features/index.cjs +3 -3
  26. package/dist/components/features/index.js +2 -2
  27. package/dist/components/features/notifications/notification-drawer.d.ts.map +1 -1
  28. package/dist/components/features/notifications/notifications-context.d.ts +9 -1
  29. package/dist/components/features/notifications/notifications-context.d.ts.map +1 -1
  30. package/dist/components/index.cjs +50 -50
  31. package/dist/components/index.js +4 -4
  32. package/dist/components/navigation/index.cjs +3 -3
  33. package/dist/components/navigation/index.js +2 -2
  34. package/dist/components/navigation/sliding-sidebar.d.ts.map +1 -1
  35. package/dist/components/related-content/index.cjs +4 -4
  36. package/dist/components/related-content/index.js +3 -3
  37. package/dist/components/tickets/index.cjs +58 -58
  38. package/dist/components/tickets/index.js +4 -4
  39. package/dist/components/ui/drawer.d.ts +5 -0
  40. package/dist/components/ui/drawer.d.ts.map +1 -1
  41. package/dist/components/ui/index.cjs +3 -3
  42. package/dist/components/ui/index.js +2 -2
  43. package/dist/hooks/index.cjs +6 -2
  44. package/dist/hooks/index.cjs.map +1 -1
  45. package/dist/hooks/index.js +5 -1
  46. package/dist/hooks/ui/index.d.ts +6 -4
  47. package/dist/hooks/ui/index.d.ts.map +1 -1
  48. package/dist/hooks/ui/use-header-height.d.ts +8 -0
  49. package/dist/hooks/ui/use-header-height.d.ts.map +1 -0
  50. package/dist/hooks/ui/use-horizontal-scrollbar.d.ts.map +1 -1
  51. package/dist/hooks/ui/use-notification-permission.d.ts +14 -0
  52. package/dist/hooks/ui/use-notification-permission.d.ts.map +1 -0
  53. package/dist/index.cjs +11 -3
  54. package/dist/index.cjs.map +1 -1
  55. package/dist/index.js +10 -2
  56. package/dist/utils/date-utils.d.ts +9 -0
  57. package/dist/utils/date-utils.d.ts.map +1 -1
  58. package/dist/utils/index.cjs +29 -0
  59. package/dist/utils/index.cjs.map +1 -1
  60. package/dist/utils/index.d.ts +1 -1
  61. package/dist/utils/index.d.ts.map +1 -1
  62. package/dist/utils/index.js +28 -1
  63. package/dist/utils/index.js.map +1 -1
  64. package/package.json +1 -1
  65. package/src/components/features/board/ticket-card.tsx +15 -0
  66. package/src/components/features/board/types.ts +1 -0
  67. package/src/components/features/notifications/notification-drawer.tsx +51 -2
  68. package/src/components/features/notifications/notifications-context.tsx +26 -0
  69. package/src/components/navigation/sliding-sidebar.tsx +3 -82
  70. package/src/components/ui/drawer.tsx +17 -6
  71. package/src/hooks/ui/index.ts +6 -4
  72. package/src/hooks/ui/use-header-height.ts +55 -0
  73. package/src/hooks/ui/use-horizontal-scrollbar.ts +19 -2
  74. package/src/hooks/ui/use-notification-permission.ts +64 -0
  75. package/src/utils/date-utils.ts +36 -0
  76. package/src/utils/index.ts +2 -0
  77. package/dist/chunk-36HLBLDK.cjs.map +0 -1
  78. package/dist/chunk-3DC6MHW6.cjs.map +0 -1
  79. package/dist/chunk-6AIXHYBZ.js.map +0 -1
  80. package/dist/chunk-6GBA6YJN.js.map +0 -1
  81. /package/dist/{chunk-YC357BPF.js.map → chunk-266DUZ6D.js.map} +0 -0
  82. /package/dist/{chunk-ALEKX56R.js.map → chunk-6A2YQ5CY.js.map} +0 -0
  83. /package/dist/{chunk-U7UDESAU.js.map → chunk-Z5YEQWLC.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
@@ -12738,6 +12742,33 @@ async function extractImageEdgeColorAsync(imageUrl) {
12738
12742
  }
12739
12743
 
12740
12744
  // src/utils/date-utils.ts
12745
+ function formatTicketRelativeTime(iso) {
12746
+ const now = /* @__PURE__ */ new Date();
12747
+ const date = new Date(iso);
12748
+ if (Number.isNaN(date.getTime())) return "";
12749
+ const diffMs = now.getTime() - date.getTime();
12750
+ const diffMin = Math.floor(diffMs / 6e4);
12751
+ if (diffMin < 1) return "Just now";
12752
+ if (diffMin < 60) return `${diffMin} min ago`;
12753
+ const diffHours = Math.floor(diffMin / 60);
12754
+ if (diffHours < 24) return diffHours === 1 ? "1 hour ago" : `${diffHours} hours ago`;
12755
+ const mm = String(date.getMonth() + 1).padStart(2, "0");
12756
+ const dd = String(date.getDate()).padStart(2, "0");
12757
+ const yyyy = date.getFullYear();
12758
+ return `${mm}/${dd}/${yyyy}`;
12759
+ }
12760
+ function formatTicketFullTimestamp(iso) {
12761
+ const date = new Date(iso);
12762
+ if (Number.isNaN(date.getTime())) return "";
12763
+ const mm = String(date.getMonth() + 1).padStart(2, "0");
12764
+ const dd = String(date.getDate()).padStart(2, "0");
12765
+ const yyyy = date.getFullYear();
12766
+ let hours = date.getHours();
12767
+ const minutes = String(date.getMinutes()).padStart(2, "0");
12768
+ const ampm = hours >= 12 ? "PM" : "AM";
12769
+ hours = hours % 12 || 12;
12770
+ return `${mm}/${dd}/${yyyy}, ${hours}:${minutes} ${ampm}`;
12771
+ }
12741
12772
  function formatRelativeTime(timestamp) {
12742
12773
  const now = /* @__PURE__ */ new Date();
12743
12774
  const targetTime = typeof timestamp === "string" ? new Date(timestamp) : timestamp;
@@ -17327,7 +17358,7 @@ function PlatformFilterComponent({
17327
17358
  variant: selectedPlatform === platform.value ? "accent" : "outline",
17328
17359
  size,
17329
17360
  onClick: () => onPlatformChange(platform.value),
17330
- leftIcon: showIcons ? _chunk3DC6MHW6cjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
17361
+ leftIcon: showIcons ? _chunkQLWBBCI5cjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
17331
17362
  className: "text-h3",
17332
17363
  children: platform.label
17333
17364
  },
@@ -20086,7 +20117,7 @@ var getApprovalLevelLabel = (level, editMode = false) => {
20086
20117
  };
20087
20118
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
20088
20119
  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 }) }),
20120
+ /* @__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
20121
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col min-w-0", children: [
20091
20122
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[16px] font-medium text-ods-text-primary truncate", title: policy.name, children: policy.name }),
20092
20123
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[12px] text-ods-text-secondary break-all font-mono", children: policy.commandPattern })
@@ -20397,8 +20428,8 @@ function WaitlistForm({
20397
20428
  const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
20398
20429
  const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
20399
20430
  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, );
20431
+ const { toast } = _chunkQLWBBCI5cjs.useToast.call(void 0, );
20432
+ const { honeypotInputProps, getSignals, resetSignals } = _chunkQLWBBCI5cjs.useHumanitySignals.call(void 0, );
20402
20433
  const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
20403
20434
  const [isClient, setIsClient] = _react.useState.call(void 0, false);
20404
20435
  const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
@@ -20640,6 +20671,8 @@ function NotificationsProvider({
20640
20671
  maxNotifications = 50,
20641
20672
  defaultShowPopups = true,
20642
20673
  onShowPopupsChange,
20674
+ defaultShowDesktopPopups = false,
20675
+ onShowDesktopPopupsChange,
20643
20676
  onHistoryClick,
20644
20677
  actions,
20645
20678
  hasMore = false,
@@ -20650,6 +20683,8 @@ function NotificationsProvider({
20650
20683
  const [notifications, dispatch] = React69.useReducer(reducer, initialNotifications);
20651
20684
  const [isOpen, setIsOpen] = React69.useState(false);
20652
20685
  const [showPopups, setShowPopupsState] = React69.useState(defaultShowPopups);
20686
+ const [showDesktopPopups, setShowDesktopPopupsState] = React69.useState(defaultShowDesktopPopups);
20687
+ const desktopPopupsConfigured = onShowDesktopPopupsChange !== void 0;
20653
20688
  const actionsRef = React69.useRef(actions);
20654
20689
  React69.useEffect(() => {
20655
20690
  actionsRef.current = actions;
@@ -20711,6 +20746,13 @@ function NotificationsProvider({
20711
20746
  },
20712
20747
  [onShowPopupsChange]
20713
20748
  );
20749
+ const setShowDesktopPopups = React69.useCallback(
20750
+ (value2) => {
20751
+ setShowDesktopPopupsState(value2);
20752
+ _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _363 => _363(value2)]);
20753
+ },
20754
+ [onShowDesktopPopupsChange]
20755
+ );
20714
20756
  const unreadCount = React69.useMemo(
20715
20757
  () => notifications.reduce((acc, n) => n.read ? acc : acc + 1, 0),
20716
20758
  [notifications]
@@ -20733,6 +20775,9 @@ function NotificationsProvider({
20733
20775
  close,
20734
20776
  toggle,
20735
20777
  setShowPopups,
20778
+ showDesktopPopups,
20779
+ setShowDesktopPopups,
20780
+ desktopPopupsConfigured,
20736
20781
  onHistoryClick,
20737
20782
  hasMore,
20738
20783
  isLoadingMore,
@@ -20744,6 +20789,9 @@ function NotificationsProvider({
20744
20789
  unreadCount,
20745
20790
  isOpen,
20746
20791
  showPopups,
20792
+ showDesktopPopups,
20793
+ setShowDesktopPopups,
20794
+ desktopPopupsConfigured,
20747
20795
  addNotification,
20748
20796
  upsertNotification,
20749
20797
  setNotifications,
@@ -20803,7 +20851,7 @@ function NotificationTile({
20803
20851
  if (!counting) return;
20804
20852
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
20805
20853
  const timer = window.setTimeout(() => {
20806
- _optionalChain([onSettle, 'optionalCall', _363 => _363(id)]);
20854
+ _optionalChain([onSettle, 'optionalCall', _364 => _364(id)]);
20807
20855
  }, remaining);
20808
20856
  return () => window.clearTimeout(timer);
20809
20857
  }, [id, counting, initialElapsed, liveDurationMs, onSettle]);
@@ -20823,7 +20871,7 @@ function NotificationTile({
20823
20871
  children ? "border-b border-ods-border" : null
20824
20872
  ),
20825
20873
  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]) }) }),
20874
+ /* @__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
20875
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
20828
20876
  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
20877
  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 +20897,7 @@ function NotificationTile({
20849
20897
  "aria-hidden": true,
20850
20898
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
20851
20899
  "absolute inset-x-0 -bottom-px h-1 origin-left",
20852
- _chunk3DC6MHW6cjs.progressColorByVariant[variant]
20900
+ _chunkQLWBBCI5cjs.progressColorByVariant[variant]
20853
20901
  ),
20854
20902
  style: {
20855
20903
  animation: `toast-progress ${liveDurationMs}ms linear forwards`,
@@ -20865,7 +20913,7 @@ function NotificationTile({
20865
20913
  "button",
20866
20914
  {
20867
20915
  type: "button",
20868
- onClick: () => _optionalChain([onSettle, 'optionalCall', _364 => _364(id)]),
20916
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _365 => _365(id)]),
20869
20917
  "aria-label": "Dismiss notification",
20870
20918
  tabIndex: isLive ? 0 : -1,
20871
20919
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
@@ -20901,6 +20949,9 @@ function NotificationDrawer({
20901
20949
  markAllRead,
20902
20950
  markSettled,
20903
20951
  setShowPopups,
20952
+ showDesktopPopups,
20953
+ setShowDesktopPopups,
20954
+ desktopPopupsConfigured,
20904
20955
  onHistoryClick,
20905
20956
  hasMore,
20906
20957
  isLoadingMore,
@@ -20914,6 +20965,7 @@ function NotificationDrawer({
20914
20965
  {
20915
20966
  side: "right",
20916
20967
  "aria-describedby": void 0,
20968
+ offsetHeader: true,
20917
20969
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
20918
20970
  "w-[calc(100vw-2rem)] sm:w-[26rem] sm:max-w-[calc(100vw-2rem)] gap-[var(--spacing-system-m)] p-[var(--spacing-system-zero)]",
20919
20971
  className
@@ -20922,6 +20974,7 @@ function NotificationDrawer({
20922
20974
  /* @__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
20975
  DrawerTitle,
20924
20976
  {
20977
+ hideClose: true,
20925
20978
  className: "truncate",
20926
20979
  actions: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20927
20980
  "button",
@@ -20951,7 +21004,10 @@ function NotificationDrawer({
20951
21004
  }
20952
21005
  ),
20953
21006
  /* @__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 }),
21007
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "overflow-hidden rounded-md border border-ods-border bg-ods-card", children: [
21008
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ShowNotificationsToggleRow, { checked: showPopups, onChange: setShowPopups }),
21009
+ desktopPopupsConfigured && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DesktopNotificationsToggleRow, { checked: showDesktopPopups, onChange: setShowDesktopPopups })
21010
+ ] }),
20955
21011
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20956
21012
  NotificationsHistoryButton,
20957
21013
  {
@@ -20988,7 +21044,7 @@ function DrawerScrollList({
20988
21044
  if (!sentinel || !root) return;
20989
21045
  const observer = new IntersectionObserver(
20990
21046
  (entries) => {
20991
- if (_optionalChain([entries, 'access', _365 => _365[0], 'optionalAccess', _366 => _366.isIntersecting])) _optionalChain([loadMoreRef, 'access', _367 => _367.current, 'optionalCall', _368 => _368()]);
21047
+ if (_optionalChain([entries, 'access', _366 => _366[0], 'optionalAccess', _367 => _367.isIntersecting])) _optionalChain([loadMoreRef, 'access', _368 => _368.current, 'optionalCall', _369 => _369()]);
20992
21048
  },
20993
21049
  { root, rootMargin: loadMoreRootMargin }
20994
21050
  );
@@ -21003,7 +21059,7 @@ function DrawerScrollList({
21003
21059
  className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
21004
21060
  children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
21005
21061
  unreadNotifications.map((n) => {
21006
- const custom = _optionalChain([renderTile, 'optionalCall', _369 => _369(n, { onComplete, onSettle, liveDurationMs })]);
21062
+ const custom = _optionalChain([renderTile, 'optionalCall', _370 => _370(n, { onComplete, onSettle, liveDurationMs })]);
21007
21063
  if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
21008
21064
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21009
21065
  NotificationTile,
@@ -21047,7 +21103,7 @@ function EmptyState() {
21047
21103
  ] });
21048
21104
  }
21049
21105
  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: [
21106
+ 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
21107
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21052
21108
  Switch,
21053
21109
  {
@@ -21062,6 +21118,33 @@ function ShowNotificationsToggleRow({ checked, onChange }) {
21062
21118
  ] })
21063
21119
  ] });
21064
21120
  }
21121
+ function DesktopNotificationsToggleRow({ checked, onChange }) {
21122
+ const { supported, permission, request } = _chunkQLWBBCI5cjs.useNotificationPermission.call(void 0, );
21123
+ if (!supported) return null;
21124
+ const blocked = permission === "denied";
21125
+ const handleChange = async (value) => {
21126
+ if (!value || permission === "granted") {
21127
+ onChange(value);
21128
+ return;
21129
+ }
21130
+ if (await request() === "granted") onChange(true);
21131
+ };
21132
+ 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: [
21133
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21134
+ Switch,
21135
+ {
21136
+ checked: checked && permission === "granted",
21137
+ disabled: blocked,
21138
+ onCheckedChange: handleChange,
21139
+ "aria-label": "Show desktop notifications"
21140
+ }
21141
+ ),
21142
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
21143
+ /* @__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" }),
21144
+ /* @__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" })
21145
+ ] })
21146
+ ] });
21147
+ }
21065
21148
  function NotificationsHistoryButton({ onClick }) {
21066
21149
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21067
21150
  _chunkN5UOJC3Vcjs.Button,
@@ -21132,7 +21215,7 @@ function NotificationPopups({
21132
21215
  className
21133
21216
  ),
21134
21217
  children: live.map((n) => {
21135
- const custom = _optionalChain([renderTile, 'optionalCall', _370 => _370(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
21218
+ const custom = _optionalChain([renderTile, 'optionalCall', _371 => _371(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
21136
21219
  if (custom) {
21137
21220
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
21138
21221
  }
@@ -21171,19 +21254,19 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
21171
21254
  // src/components/features/notifications/types.ts
21172
21255
  var ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = "ADMIN_APPROVAL_REQUEST";
21173
21256
  function isApprovalNotification(notification) {
21174
- return _optionalChain([notification, 'access', _371 => _371.meta, 'optionalAccess', _372 => _372.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
21257
+ return _optionalChain([notification, 'access', _372 => _372.meta, 'optionalAccess', _373 => _373.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
21175
21258
  }
21176
21259
  function getApprovalMeta(notification) {
21177
21260
  if (!isApprovalNotification(notification)) return null;
21178
21261
  const meta = notification.meta;
21179
- const approvalRequestId = _optionalChain([meta, 'optionalAccess', _373 => _373.approvalRequestId]);
21180
- const toolCalls = _optionalChain([meta, 'optionalAccess', _374 => _374.toolCalls]);
21262
+ const approvalRequestId = _optionalChain([meta, 'optionalAccess', _374 => _374.approvalRequestId]);
21263
+ const toolCalls = _optionalChain([meta, 'optionalAccess', _375 => _375.toolCalls]);
21181
21264
  if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
21182
21265
  return {
21183
21266
  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)),
21267
+ dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _376 => _376.dialogId]), () => ( null)),
21268
+ ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _377 => _377.ticketId]), () => ( null)),
21269
+ approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _378 => _378.approvalType]), () => ( null)),
21187
21270
  toolCalls
21188
21271
  };
21189
21272
  }
@@ -21444,15 +21527,15 @@ function TicketCard({
21444
21527
  transform: _utilities.CSS.Transform.toString(sortable.transform),
21445
21528
  transition: sortable.transition
21446
21529
  };
21447
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _378 => _378.deviceHostnames, 'optionalAccess', _379 => _379.length]) || ticket.organizationName);
21530
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _379 => _379.deviceHostnames, 'optionalAccess', _380 => _380.length]) || ticket.organizationName);
21448
21531
  const deviceText = [
21449
- _optionalChain([ticket, 'access', _380 => _380.deviceHostnames, 'optionalAccess', _381 => _381.join, 'call', _382 => _382(", ")]),
21532
+ _optionalChain([ticket, 'access', _381 => _381.deviceHostnames, 'optionalAccess', _382 => _382.join, 'call', _383 => _383(", ")]),
21450
21533
  ticket.organizationName
21451
21534
  ].filter(Boolean).join(", ");
21452
21535
  const handleClick = (e) => {
21453
21536
  if (sortable.isDragging) e.preventDefault();
21454
21537
  };
21455
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _383 => _383.assignees, 'optionalAccess', _384 => _384.length]) || renderAssignSlot);
21538
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _384 => _384.assignees, 'optionalAccess', _385 => _385.length]) || renderAssignSlot);
21456
21539
  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
21540
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21458
21541
  _chunkC6ASEPZLcjs.Flag02Icon,
@@ -21461,7 +21544,7 @@ function TicketCard({
21461
21544
  "aria-label": `Priority: ${ticket.priority}`
21462
21545
  }
21463
21546
  ),
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: [
21547
+ 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
21548
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21466
21549
  _chunk7MNBE7XAcjs.SquareAvatar,
21467
21550
  {
@@ -21479,6 +21562,8 @@ function TicketCard({
21479
21562
  ] })
21480
21563
  ] }) : null
21481
21564
  ] }) : null;
21565
+ const timestampLabel = ticket.createdAt ? formatTicketRelativeTime(ticket.createdAt) : null;
21566
+ const tooltipLabel = ticket.createdAt ? formatTicketFullTimestamp(ticket.createdAt) : null;
21482
21567
  const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
21483
21568
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
21484
21569
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-[var(--spacing-system-zero)]", title: ticket.title, children: [
@@ -21490,7 +21575,11 @@ function TicketCard({
21490
21575
  ] }),
21491
21576
  rightSection
21492
21577
  ] }),
21493
- _optionalChain([ticket, 'access', _387 => _387.tags, 'optionalAccess', _388 => _388.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
21578
+ _optionalChain([ticket, 'access', _388 => _388.tags, 'optionalAccess', _389 => _389.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
21579
+ timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Tooltip, { children: [
21580
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "pointer-events-auto text-h6 truncate text-ods-text-secondary", children: timestampLabel }) }),
21581
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipContent, { children: tooltipLabel })
21582
+ ] }) })
21494
21583
  ] });
21495
21584
  const cardClasses = _chunkFIG2RKZFcjs.cn.call(void 0,
21496
21585
  "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 +21754,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
21665
21754
  const observer = new IntersectionObserver(
21666
21755
  (entries) => {
21667
21756
  if (entries.some((e) => e.isIntersecting)) {
21668
- _optionalChain([loadMoreRef, 'access', _389 => _389.current, 'optionalCall', _390 => _390(columnIdRef.current)]);
21757
+ _optionalChain([loadMoreRef, 'access', _390 => _390.current, 'optionalCall', _391 => _391(columnIdRef.current)]);
21669
21758
  }
21670
21759
  },
21671
21760
  { root, rootMargin: loadMoreRootMargin }
@@ -21694,7 +21783,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
21694
21783
  {
21695
21784
  ticket: t,
21696
21785
  columnId: column.id,
21697
- href: _optionalChain([getTicketHref, 'optionalCall', _391 => _391(t.id)]),
21786
+ href: _optionalChain([getTicketHref, 'optionalCall', _392 => _392(t.id)]),
21698
21787
  renderAssignSlot,
21699
21788
  dragDisabled: column.dragDisabled
21700
21789
  },
@@ -21726,7 +21815,7 @@ function EmptyState2() {
21726
21815
  // src/components/features/board/use-board-collapse.ts
21727
21816
 
21728
21817
  function useBoardCollapse(storageKey) {
21729
- const [persisted, setPersisted] = _chunk3DC6MHW6cjs.useLocalStorage.call(void 0,
21818
+ const [persisted, setPersisted] = _chunkQLWBBCI5cjs.useLocalStorage.call(void 0,
21730
21819
  _nullishCoalesce(storageKey, () => ( "__board_collapse_unused__")),
21731
21820
  {}
21732
21821
  );
@@ -21774,7 +21863,7 @@ function Board({
21774
21863
  onThumbPointerDown,
21775
21864
  onThumbPointerMove,
21776
21865
  onThumbPointerUp
21777
- } = _chunk3DC6MHW6cjs.useHorizontalScrollbar.call(void 0, );
21866
+ } = _chunkQLWBBCI5cjs.useHorizontalScrollbar.call(void 0, );
21778
21867
  const [items, setItems] = React73.useState(columns);
21779
21868
  const isDraggingRef = React73.useRef(false);
21780
21869
  React73.useEffect(() => {
@@ -21790,17 +21879,17 @@ function Board({
21790
21879
  const pointer = _core.pointerWithin.call(void 0, args);
21791
21880
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
21792
21881
  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"
21882
+ (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
21883
  );
21795
21884
  if (ticketHit) return [ticketHit];
21796
21885
  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"
21886
+ (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
21887
  );
21799
21888
  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]);
21889
+ 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
21890
  const ticketsInColumn = args.droppableContainers.filter((c) => {
21802
21891
  const d = c.data.current;
21803
- return _optionalChain([d, 'optionalAccess', _407 => _407.type]) === "ticket" && d.columnId === columnId;
21892
+ return _optionalChain([d, 'optionalAccess', _408 => _408.type]) === "ticket" && d.columnId === columnId;
21804
21893
  });
21805
21894
  if (ticketsInColumn.length > 0) {
21806
21895
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -21825,20 +21914,20 @@ function Board({
21825
21914
  const overId = String(over.id);
21826
21915
  if (activeId === overId) return;
21827
21916
  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]);
21917
+ const fromColumnId = _optionalChain([locate, 'call', _409 => _409(items, activeId), 'optionalAccess', _410 => _410.columnId]);
21918
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _411 => _411.columnId]);
21830
21919
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
21831
21920
  const origin = dragOriginRef.current;
21832
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _411 => _411.fromColumnId]) === toColumnId;
21921
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _412 => _412.fromColumnId]) === toColumnId;
21833
21922
  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;
21923
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _413 => _413.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
21924
+ if (_optionalChain([targetCol, 'optionalAccess', _414 => _414.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
21836
21925
  setItems((prev) => {
21837
21926
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
21838
21927
  const toCol = prev.find((c) => c.id === toColumnId);
21839
21928
  if (fromIndex < 0 || !toCol) return prev;
21840
21929
  let toIndex;
21841
- if (_optionalChain([overData, 'optionalAccess', _414 => _414.type]) === "column") {
21930
+ if (_optionalChain([overData, 'optionalAccess', _415 => _415.type]) === "column") {
21842
21931
  toIndex = toCol.tickets.length;
21843
21932
  } else {
21844
21933
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -21880,14 +21969,14 @@ function Board({
21880
21969
  const toColumnId = located.columnId;
21881
21970
  const isCrossColumn = origin.fromColumnId !== toColumnId;
21882
21971
  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))) {
21972
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _416 => _416.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _417 => _417.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
21884
21973
  setItems(columns);
21885
21974
  return;
21886
21975
  }
21887
21976
  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]), () => ( []));
21977
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _418 => _418.find, 'call', _419 => _419((c) => c.id === toColumnId), 'optionalAccess', _420 => _420.tickets]), () => ( []));
21889
21978
  const overData = over.data.current;
21890
- if (_optionalChain([overData, 'optionalAccess', _420 => _420.type]) === "ticket") {
21979
+ if (_optionalChain([overData, 'optionalAccess', _421 => _421.type]) === "ticket") {
21891
21980
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
21892
21981
  if (overIndex >= 0 && overIndex !== located.index) {
21893
21982
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -21907,8 +21996,8 @@ function Board({
21907
21996
  ticketId: origin.ticketId,
21908
21997
  fromColumnId: origin.fromColumnId,
21909
21998
  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))
21999
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _422 => _422[finalIndex - 1], 'optionalAccess', _423 => _423.id]), () => ( null)),
22000
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _424 => _424[finalIndex + 1], 'optionalAccess', _425 => _425.id]), () => ( null))
21912
22001
  });
21913
22002
  };
21914
22003
  const handleDragCancel = () => {
@@ -21937,8 +22026,8 @@ function Board({
21937
22026
  children: items.map((column, i) => {
21938
22027
  const prev = items[i - 1];
21939
22028
  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]));
22029
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _426 => _426.system]));
22030
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _427 => _427.system]));
21942
22031
  const showGap = i > 0 && !joinLeft;
21943
22032
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React73.Fragment, { children: [
21944
22033
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -21997,7 +22086,7 @@ function locate(cols, ticketId) {
21997
22086
  return null;
21998
22087
  }
21999
22088
  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));
22089
+ 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
22090
  }
22002
22091
 
22003
22092
  // src/components/features/board/types.ts
@@ -22245,7 +22334,7 @@ function Header2({ config, platform }) {
22245
22334
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
22246
22335
  "flex justify-start w-full",
22247
22336
  "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",
22337
+ index < (_nullishCoalesce(_optionalChain([item, 'access', _433 => _433.children, 'optionalAccess', _434 => _434.length]), () => ( 0))) - 1 && "mb-1",
22249
22338
  "text-ods-text-primary",
22250
22339
  // All dropdown items use primary text color
22251
22340
  child.isActive && "bg-ods-bg-hover"
@@ -22337,7 +22426,7 @@ function Header2({ config, platform }) {
22337
22426
  style: config.style,
22338
22427
  children: [
22339
22428
  /* @__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 }),
22429
+ _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
22430
  /* @__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
22431
  ] }),
22343
22432
  config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -22354,7 +22443,7 @@ function Header2({ config, platform }) {
22354
22443
  }
22355
22444
  ),
22356
22445
  /* @__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 }),
22446
+ _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
22447
  config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22359
22448
  _chunkN5UOJC3Vcjs.Button,
22360
22449
  {
@@ -22362,10 +22451,10 @@ function Header2({ config, platform }) {
22362
22451
  size: "icon",
22363
22452
  className: "flex md:hidden",
22364
22453
  onClick: () => {
22365
- _optionalChain([config, 'access', _438 => _438.mobile, 'optionalAccess', _439 => _439.onToggle, 'optionalCall', _440 => _440()]);
22454
+ _optionalChain([config, 'access', _439 => _439.mobile, 'optionalAccess', _440 => _440.onToggle, 'optionalCall', _441 => _441()]);
22366
22455
  },
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, {})
22456
+ "aria-label": _optionalChain([config, 'access', _442 => _442.mobile, 'optionalAccess', _443 => _443.isOpen]) ? "Close menu" : "Open menu",
22457
+ leftIcon: _optionalChain([config, 'access', _444 => _444.mobile, 'optionalAccess', _445 => _445.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Menu01Icon, {})
22369
22458
  }
22370
22459
  )
22371
22460
  ] })
@@ -22382,10 +22471,10 @@ function Header2({ config, platform }) {
22382
22471
  // src/components/navigation/header-skeleton.tsx
22383
22472
 
22384
22473
  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")]);
22474
+ const showNavigation = _optionalChain([config, 'optionalAccess', _446 => _446.navigation]) && config.navigation.items.length > 0;
22475
+ const showActions = _optionalChain([config, 'optionalAccess', _447 => _447.actions, 'optionalAccess', _448 => _448.right]) && config.actions.right.length > 0;
22476
+ const showMobileMenu = _optionalChain([config, 'optionalAccess', _449 => _449.mobile, 'optionalAccess', _450 => _450.enabled]);
22477
+ const isAdminHeader = _optionalChain([config, 'optionalAccess', _451 => _451.className, 'optionalAccess', _452 => _452.includes, 'call', _453 => _453("admin")]);
22389
22478
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
22390
22479
  "header",
22391
22480
  {
@@ -22394,11 +22483,11 @@ function HeaderSkeleton({ config }) {
22394
22483
  "bg-ods-card border-b border-ods-border backdrop-blur-sm",
22395
22484
  "px-6 py-3",
22396
22485
  "transition-opacity duration-300 ease-in-out",
22397
- _optionalChain([config, 'optionalAccess', _453 => _453.className])
22486
+ _optionalChain([config, 'optionalAccess', _454 => _454.className])
22398
22487
  ),
22399
22488
  children: [
22400
22489
  /* @__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" }) }),
22490
+ 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
22491
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
22403
22492
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
22404
22493
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
@@ -22406,8 +22495,8 @@ function HeaderSkeleton({ config }) {
22406
22495
  ] }),
22407
22496
  showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunkFIG2RKZFcjs.cn.call(void 0,
22408
22497
  "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"
22498
+ _optionalChain([config, 'optionalAccess', _457 => _457.navigation, 'optionalAccess', _458 => _458.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
22499
+ _optionalChain([config, 'optionalAccess', _459 => _459.navigation, 'optionalAccess', _460 => _460.position]) === "right" && "ml-auto mr-4"
22411
22500
  ), children: [
22412
22501
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
22413
22502
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
@@ -22455,7 +22544,7 @@ function MobileNavPanel({ isOpen, config }) {
22455
22544
  _react.useEffect.call(void 0, () => {
22456
22545
  const handleKeyDown = (e) => {
22457
22546
  if (e.key === "Escape" && isOpen) {
22458
- _optionalChain([config, 'access', _460 => _460.onClose, 'optionalCall', _461 => _461()]);
22547
+ _optionalChain([config, 'access', _461 => _461.onClose, 'optionalCall', _462 => _462()]);
22459
22548
  }
22460
22549
  };
22461
22550
  if (isOpen) {
@@ -22472,7 +22561,7 @@ function MobileNavPanel({ isOpen, config }) {
22472
22561
  if (item.onClick) {
22473
22562
  item.onClick();
22474
22563
  }
22475
- _optionalChain([config, 'access', _462 => _462.onClose, 'optionalCall', _463 => _463()]);
22564
+ _optionalChain([config, 'access', _463 => _463.onClose, 'optionalCall', _464 => _464()]);
22476
22565
  };
22477
22566
  if (item.href) {
22478
22567
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -22567,57 +22656,9 @@ _chunkN5UOJC3Vcjs.init_button2.call(void 0, );
22567
22656
  function SlidingSidebar({ config }) {
22568
22657
  const [expandedItems, setExpandedItems] = _react.useState.call(void 0, /* @__PURE__ */ new Set());
22569
22658
  const [mounted, setMounted] = _react.useState.call(void 0, false);
22570
- const [headerHeight, setHeaderHeight] = _react.useState.call(void 0, 64);
22659
+ const headerHeight = _chunkQLWBBCI5cjs.useHeaderHeight.call(void 0, );
22571
22660
  _react.useEffect.call(void 0, () => {
22572
22661
  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
22662
  }, []);
22622
22663
  const toggleExpanded = (itemId) => {
22623
22664
  const newExpanded = new Set(expandedItems);
@@ -22690,7 +22731,7 @@ function SlidingSidebar({ config }) {
22690
22731
  variant: "transparent",
22691
22732
  size: "default",
22692
22733
  onClick: () => {
22693
- _optionalChain([item, 'access', _464 => _464.onClick, 'optionalCall', _465 => _465()]);
22734
+ _optionalChain([item, 'access', _465 => _465.onClick, 'optionalCall', _466 => _466()]);
22694
22735
  config.onClose();
22695
22736
  },
22696
22737
  leftIcon: item.icon,
@@ -22713,7 +22754,7 @@ function SlidingSidebar({ config }) {
22713
22754
  variant: "transparent",
22714
22755
  size: "default",
22715
22756
  onClick: () => {
22716
- _optionalChain([item, 'access', _466 => _466.onClick, 'optionalCall', _467 => _467()]);
22757
+ _optionalChain([item, 'access', _467 => _467.onClick, 'optionalCall', _468 => _468()]);
22717
22758
  config.onClose();
22718
22759
  },
22719
22760
  leftIcon: item.icon,
@@ -22840,7 +22881,7 @@ function StickySectionNav({
22840
22881
  ] });
22841
22882
  }
22842
22883
  function useSectionNavigation(sections, options) {
22843
- const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _468 => _468[0], 'optionalAccess', _469 => _469.id]) || "");
22884
+ const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _469 => _469[0], 'optionalAccess', _470 => _470.id]) || "");
22844
22885
  const isScrollingFromClick = _react.useRef.call(void 0, false);
22845
22886
  const { offset: offset2 = 100 } = options || {};
22846
22887
  const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
@@ -22864,7 +22905,7 @@ function useSectionNavigation(sections, options) {
22864
22905
  const handleScroll = () => {
22865
22906
  if (isScrollingFromClick.current) return;
22866
22907
  const scrollPosition = window.scrollY + offset2 + 50;
22867
- let currentSection = _optionalChain([sections, 'access', _470 => _470[0], 'optionalAccess', _471 => _471.id]) || "";
22908
+ let currentSection = _optionalChain([sections, 'access', _471 => _471[0], 'optionalAccess', _472 => _472.id]) || "";
22868
22909
  for (let i = sections.length - 1; i >= 0; i--) {
22869
22910
  const element = document.getElementById(sections[i].id);
22870
22911
  if (element && scrollPosition >= element.offsetTop) {
@@ -23044,10 +23085,10 @@ var MINIMIZED_WIDTH = 56;
23044
23085
  var EXPANDED_WIDTH = 224;
23045
23086
  var STORAGE_KEY = "of.navigationSidebar.minimized";
23046
23087
  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));
23088
+ const isMdUp = _nullishCoalesce(_chunkQLWBBCI5cjs.useMdUp.call(void 0, ), () => ( false));
23089
+ const isLgUp = _nullishCoalesce(_chunkQLWBBCI5cjs.useLgUp.call(void 0, ), () => ( false));
23049
23090
  const isTablet = isMdUp && !isLgUp;
23050
- const [desktopMinimized, setDesktopMinimized] = _chunk3DC6MHW6cjs.useLocalStorage.call(void 0,
23091
+ const [desktopMinimized, setDesktopMinimized] = _chunkQLWBBCI5cjs.useLocalStorage.call(void 0,
23051
23092
  STORAGE_KEY,
23052
23093
  _nullishCoalesce(config.minimized, () => ( false))
23053
23094
  );
@@ -23065,7 +23106,7 @@ function NavigationSidebar({ config, disabled = false }) {
23065
23106
  } else {
23066
23107
  setDesktopMinimized((prev) => !prev);
23067
23108
  }
23068
- _optionalChain([config, 'access', _472 => _472.onToggleMinimized, 'optionalCall', _473 => _473()]);
23109
+ _optionalChain([config, 'access', _473 => _473.onToggleMinimized, 'optionalCall', _474 => _474()]);
23069
23110
  }, [isTablet, setDesktopMinimized, config]);
23070
23111
  const closeOverlay = _react.useCallback.call(void 0, () => {
23071
23112
  setTabletMinimized(true);
@@ -23079,11 +23120,11 @@ function NavigationSidebar({ config, disabled = false }) {
23079
23120
  return () => document.removeEventListener("keydown", handleKeyDown);
23080
23121
  }, [isOverlayOpen, closeOverlay]);
23081
23122
  const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
23082
- _optionalChain([event, 'optionalAccess', _474 => _474.stopPropagation, 'call', _475 => _475()]);
23123
+ _optionalChain([event, 'optionalAccess', _475 => _475.stopPropagation, 'call', _476 => _476()]);
23083
23124
  if (item.onClick) {
23084
23125
  item.onClick();
23085
23126
  } else if (item.path) {
23086
- _optionalChain([config, 'access', _476 => _476.onNavigate, 'optionalCall', _477 => _477(item.path)]);
23127
+ _optionalChain([config, 'access', _477 => _477.onNavigate, 'optionalCall', _478 => _478(item.path)]);
23087
23128
  }
23088
23129
  if (isTablet) setTabletMinimized(true);
23089
23130
  }, [config, isTablet]);
@@ -23228,11 +23269,11 @@ function HeaderGlobalSearch({
23228
23269
  };
23229
23270
  const handleSubmit = (e) => {
23230
23271
  e.preventDefault();
23231
- _optionalChain([onSubmit, 'optionalCall', _478 => _478(currentValue)]);
23272
+ _optionalChain([onSubmit, 'optionalCall', _479 => _479(currentValue)]);
23232
23273
  };
23233
23274
  const handleKeyDown = (e) => {
23234
23275
  if (e.key === "Enter") {
23235
- _optionalChain([onSubmit, 'optionalCall', _479 => _479(currentValue)]);
23276
+ _optionalChain([onSubmit, 'optionalCall', _480 => _480(currentValue)]);
23236
23277
  }
23237
23278
  };
23238
23279
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -23326,8 +23367,8 @@ function HeaderOrganizationFilter({
23326
23367
  className
23327
23368
  }) {
23328
23369
  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));
23370
+ const displayName = _optionalChain([selectedOrg, 'optionalAccess', _481 => _481.name]) || "All Organizations";
23371
+ const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _482 => _482.deviceCount]), () => ( totalDeviceCount));
23331
23372
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkN5UOJC3Vcjs.DropdownMenu, { children: [
23332
23373
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkN5UOJC3Vcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23333
23374
  "button",
@@ -23352,11 +23393,11 @@ function HeaderOrganizationFilter({
23352
23393
  }
23353
23394
  ) }),
23354
23395
  /* @__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" }),
23396
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkN5UOJC3Vcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _483 => _483("")]), children: "All Organizations" }),
23356
23397
  organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23357
23398
  _chunkN5UOJC3Vcjs.DropdownMenuItem,
23358
23399
  {
23359
- onClick: () => _optionalChain([onOrgChange, 'optionalCall', _483 => _483(org.id)]),
23400
+ onClick: () => _optionalChain([onOrgChange, 'optionalCall', _484 => _484(org.id)]),
23360
23401
  children: org.name
23361
23402
  },
23362
23403
  org.id
@@ -23390,7 +23431,7 @@ var AppHeader = React89.default.memo(function AppHeader2({
23390
23431
  onToggleMobileMenu,
23391
23432
  disabled = false
23392
23433
  }) {
23393
- const isMdUp = _nullishCoalesce(_chunk3DC6MHW6cjs.useMdUp.call(void 0, ), () => ( false));
23434
+ const isMdUp = _nullishCoalesce(_chunkQLWBBCI5cjs.useMdUp.call(void 0, ), () => ( false));
23394
23435
  const dimmedClass = disabled ? "pointer-events-none opacity-50" : "";
23395
23436
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23396
23437
  "header",
@@ -23541,9 +23582,9 @@ function NotificationsHeaderButton({
23541
23582
  dimmedClass
23542
23583
  }) {
23543
23584
  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]);
23585
+ const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _485 => _485.unreadCount]), () => ( fallbackUnreadCount))) > 0;
23586
+ const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _486 => _486.isOpen]), () => ( false));
23587
+ const onClick = _optionalChain([ctx, 'optionalAccess', _487 => _487.toggle]);
23547
23588
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23548
23589
  HeaderButton,
23549
23590
  {
@@ -23607,7 +23648,7 @@ var MobileBurgerMenu = React89.default.memo(function MobileBurgerMenu2({
23607
23648
  if (item.onClick) {
23608
23649
  item.onClick();
23609
23650
  } else if (item.path) {
23610
- _optionalChain([config, 'access', _487 => _487.onNavigate, 'optionalCall', _488 => _488(item.path)]);
23651
+ _optionalChain([config, 'access', _488 => _488.onNavigate, 'optionalCall', _489 => _489(item.path)]);
23611
23652
  }
23612
23653
  onClose();
23613
23654
  }, [config, onClose]);
@@ -23850,7 +23891,7 @@ var AppLayoutDrawerRoot = ({
23850
23891
  const handleOpenChange = React82.useCallback(
23851
23892
  (next) => {
23852
23893
  if (!isControlled) setInternalOpen(next);
23853
- _optionalChain([onOpenChange, 'optionalCall', _489 => _489(next)]);
23894
+ _optionalChain([onOpenChange, 'optionalCall', _490 => _490(next)]);
23854
23895
  },
23855
23896
  [isControlled, onOpenChange]
23856
23897
  );
@@ -24231,10 +24272,10 @@ var AppLayoutDrawerContent = React82.forwardRef(
24231
24272
  ),
24232
24273
  style,
24233
24274
  onInteractOutside: (event) => {
24234
- _optionalChain([onInteractOutside, 'optionalCall', _490 => _490(event)]);
24275
+ _optionalChain([onInteractOutside, 'optionalCall', _491 => _491(event)]);
24235
24276
  if (event.defaultPrevented) return;
24236
24277
  const target = event.target;
24237
- const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _491 => _491.contains, 'call', _492 => _492(target)]);
24278
+ const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _492 => _492.contains, 'call', _493 => _493(target)]);
24238
24279
  if (!isInsideContainer) {
24239
24280
  event.preventDefault();
24240
24281
  return;
@@ -24375,7 +24416,7 @@ var ToolBadge = ({
24375
24416
  }) => {
24376
24417
  const label = getToolLabel(toolType);
24377
24418
  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 }),
24419
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQLWBBCI5cjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
24379
24420
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: label })
24380
24421
  ] });
24381
24422
  };
@@ -24423,7 +24464,7 @@ var ShellTypeBadge = ({
24423
24464
  className,
24424
24465
  iconClassName
24425
24466
  }) => {
24426
- const normalizedType = _optionalChain([shellType, 'optionalAccess', _493 => _493.toUpperCase, 'call', _494 => _494()]);
24467
+ const normalizedType = _optionalChain([shellType, 'optionalAccess', _494 => _494.toUpperCase, 'call', _495 => _495()]);
24427
24468
  const label = getShellLabel(normalizedType);
24428
24469
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
24429
24470
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
@@ -24747,7 +24788,7 @@ function OnboardingWalkthrough({
24747
24788
  isStepSkipped,
24748
24789
  allStepsComplete,
24749
24790
  markMultipleComplete
24750
- } = _chunk3DC6MHW6cjs.useOnboardingState.call(void 0, storageKey);
24791
+ } = _chunkQLWBBCI5cjs.useOnboardingState.call(void 0, storageKey);
24751
24792
  const hasAutoMarkedRef = _react.useRef.call(void 0, false);
24752
24793
  const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
24753
24794
  const lastCompletionStatusRef = _react.useRef.call(void 0, null);
@@ -24810,12 +24851,12 @@ function OnboardingWalkthrough({
24810
24851
  }
24811
24852
  }, [state.completedSteps, markComplete]);
24812
24853
  const handleStepSkip = (step) => {
24813
- _optionalChain([step, 'access', _495 => _495.onSkip, 'optionalCall', _496 => _496()]);
24854
+ _optionalChain([step, 'access', _496 => _496.onSkip, 'optionalCall', _497 => _497()]);
24814
24855
  markSkipped(step.id);
24815
24856
  };
24816
24857
  const handleDismiss = () => {
24817
24858
  dismissOnboarding();
24818
- _optionalChain([onDismiss, 'optionalCall', _497 => _497()]);
24859
+ _optionalChain([onDismiss, 'optionalCall', _498 => _498()]);
24819
24860
  };
24820
24861
  if (state.dismissed) {
24821
24862
  return null;
@@ -24945,7 +24986,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
24945
24986
  onKeyDown: (e) => {
24946
24987
  if (e.key === "Enter" || e.key === " ") {
24947
24988
  e.preventDefault();
24948
- _optionalChain([onClick, 'optionalCall', _498 => _498()]);
24989
+ _optionalChain([onClick, 'optionalCall', _499 => _499()]);
24949
24990
  }
24950
24991
  },
24951
24992
  children: [
@@ -24954,7 +24995,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
24954
24995
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-5 text-white", children: log.title }),
24955
24996
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
24956
24997
  /* @__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 })
24998
+ log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQLWBBCI5cjs.ToolIcon, { toolType: log.toolType, size: 16 })
24958
24999
  ] })
24959
25000
  ] })
24960
25001
  ]
@@ -25046,7 +25087,7 @@ var LogsList = React86.forwardRef(({
25046
25087
  log,
25047
25088
  isLast: index === logs.length - 1,
25048
25089
  showConnector,
25049
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _499 => _499(log)])
25090
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _500 => _500(log)])
25050
25091
  },
25051
25092
  log.id
25052
25093
  ))
@@ -25091,7 +25132,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
25091
25132
  }
25092
25133
  function ServiceCardRowItem({ row }) {
25093
25134
  const [revealed, setRevealed] = _react.useState.call(void 0, false);
25094
- const { copy, copied } = _chunk3DC6MHW6cjs.useCopyToClipboard.call(void 0, );
25135
+ const { copy, copied } = _chunkQLWBBCI5cjs.useCopyToClipboard.call(void 0, );
25095
25136
  const actions = _react.useMemo.call(void 0, () => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }), [row]);
25096
25137
  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
25138
  const handleCopy = () => copy(_nullishCoalesce(row.copyValue, () => ( row.value)));
@@ -25147,7 +25188,7 @@ var Slider = React88.forwardRef(
25147
25188
  ({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
25148
25189
  const handleChange = (e) => {
25149
25190
  const newValue = [Number(e.target.value)];
25150
- _optionalChain([onValueChange, 'optionalCall', _500 => _500(newValue)]);
25191
+ _optionalChain([onValueChange, 'optionalCall', _501 => _501(newValue)]);
25151
25192
  };
25152
25193
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25153
25194
  "input",
@@ -25459,7 +25500,7 @@ function CursorPaginationSimple({
25459
25500
  {
25460
25501
  variant: "transparent",
25461
25502
  size: "icon",
25462
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _501 => _501("")]),
25503
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _502 => _502("")]),
25463
25504
  disabled: !hasPreviousPage || loading,
25464
25505
  className: "h-8 w-8",
25465
25506
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -25471,7 +25512,7 @@ function CursorPaginationSimple({
25471
25512
  {
25472
25513
  variant: "transparent",
25473
25514
  size: "icon",
25474
- onClick: () => _optionalChain([onNext, 'optionalCall', _502 => _502("")]),
25515
+ onClick: () => _optionalChain([onNext, 'optionalCall', _503 => _503("")]),
25475
25516
  disabled: !hasNextPage || loading,
25476
25517
  className: "h-8 w-8",
25477
25518
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -25531,7 +25572,7 @@ function TableColumnFilterDropdown({
25531
25572
  placement = "bottom-start",
25532
25573
  dropdownClassName = "min-w-[240px]"
25533
25574
  }) {
25534
- const activeCount = _optionalChain([filters, 'optionalAccess', _503 => _503[columnKey], 'optionalAccess', _504 => _504.length]) || 0;
25575
+ const activeCount = _optionalChain([filters, 'optionalAccess', _504 => _504[columnKey], 'optionalAccess', _505 => _505.length]) || 0;
25535
25576
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25536
25577
  FiltersDropdown,
25537
25578
  {
@@ -25574,7 +25615,7 @@ function TableColumnFilterDropdown({
25574
25615
  delete newFilters[columnKey];
25575
25616
  onFilterChange(newFilters);
25576
25617
  },
25577
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _505 => _505[columnKey]]) || [] },
25618
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _506 => _506[columnKey]]) || [] },
25578
25619
  placement,
25579
25620
  dropdownClassName
25580
25621
  }
@@ -25649,7 +25690,7 @@ function TableHeader({
25649
25690
  }
25650
25691
  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
25692
  };
25652
- const isLgUp = _nullishCoalesce(_chunk3DC6MHW6cjs.useLgUp.call(void 0, ), () => ( false));
25693
+ const isLgUp = _nullishCoalesce(_chunkQLWBBCI5cjs.useLgUp.call(void 0, ), () => ( false));
25653
25694
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25654
25695
  "div",
25655
25696
  {
@@ -25871,7 +25912,7 @@ function TableRow({
25871
25912
  const keys = column.key.split(".");
25872
25913
  let value = item;
25873
25914
  for (const key of keys) {
25874
- value = _optionalChain([value, 'optionalAccess', _506 => _506[key]]);
25915
+ value = _optionalChain([value, 'optionalAccess', _507 => _507[key]]);
25875
25916
  }
25876
25917
  if (value === null || value === void 0) {
25877
25918
  return "-";
@@ -25941,7 +25982,7 @@ function TableRow({
25941
25982
  // src/components/ui/table/table.tsx
25942
25983
 
25943
25984
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
25944
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _507 => _507.length])) || Boolean(renderRowActions);
25985
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _508 => _508.length])) || Boolean(renderRowActions);
25945
25986
  const result = [...columns];
25946
25987
  if (hasActions) {
25947
25988
  const actionsColumn = {
@@ -26035,7 +26076,7 @@ function Table({
26035
26076
  return rowKey(item);
26036
26077
  }
26037
26078
  const key = item[rowKey];
26038
- return _optionalChain([key, 'optionalAccess', _508 => _508.toString, 'call', _509 => _509()]) || index.toString();
26079
+ return _optionalChain([key, 'optionalAccess', _509 => _509.toString, 'call', _510 => _510()]) || index.toString();
26039
26080
  };
26040
26081
  const getRowClassName = (item, index) => {
26041
26082
  if (typeof rowClassName === "function") {
@@ -26069,23 +26110,23 @@ function Table({
26069
26110
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
26070
26111
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
26071
26112
  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]);
26113
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _511 => _511.onLoadMore]));
26114
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _512 => _512.onLoadMore]);
26074
26115
  _react.useEffect.call(void 0, () => {
26075
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _512 => _512.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
26116
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _513 => _513.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
26076
26117
  const sentinel = sentinelRef.current;
26077
26118
  if (!sentinel) return;
26078
26119
  const observer = new IntersectionObserver(
26079
26120
  (entries) => {
26080
- if (_optionalChain([entries, 'access', _513 => _513[0], 'optionalAccess', _514 => _514.isIntersecting])) {
26081
- _optionalChain([onLoadMoreRef, 'access', _515 => _515.current, 'optionalCall', _516 => _516()]);
26121
+ if (_optionalChain([entries, 'access', _514 => _514[0], 'optionalAccess', _515 => _515.isIntersecting])) {
26122
+ _optionalChain([onLoadMoreRef, 'access', _516 => _516.current, 'optionalCall', _517 => _517()]);
26082
26123
  }
26083
26124
  },
26084
26125
  { rootMargin: "200px" }
26085
26126
  );
26086
26127
  observer.observe(sentinel);
26087
26128
  return () => observer.disconnect();
26088
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _517 => _517.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _518 => _518.isFetchingNextPage])]);
26129
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _518 => _518.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _519 => _519.isFetchingNextPage])]);
26089
26130
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
26090
26131
  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
26132
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -26156,7 +26197,7 @@ function Table({
26156
26197
  },
26157
26198
  getRowKey(item, index)
26158
26199
  )),
26159
- _optionalChain([infiniteScroll, 'optionalAccess', _519 => _519.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26200
+ _optionalChain([infiniteScroll, 'optionalAccess', _520 => _520.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26160
26201
  TableCardSkeleton,
26161
26202
  {
26162
26203
  columns,
@@ -26165,7 +26206,7 @@ function Table({
26165
26206
  hasChevron: Boolean(rowHref)
26166
26207
  }
26167
26208
  ),
26168
- _optionalChain([infiniteScroll, 'optionalAccess', _520 => _520.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
26209
+ _optionalChain([infiniteScroll, 'optionalAccess', _521 => _521.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
26169
26210
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26170
26211
  "div",
26171
26212
  {
@@ -26523,7 +26564,7 @@ function QueryReportTable({
26523
26564
  );
26524
26565
  const handleExport = () => {
26525
26566
  exportToCSV(data, columns, exportFilename);
26526
- _optionalChain([onExport, 'optionalCall', _521 => _521()]);
26567
+ _optionalChain([onExport, 'optionalCall', _522 => _522()]);
26527
26568
  };
26528
26569
  const tableMinWidth = columns.length * (columnWidth + 16);
26529
26570
  const {
@@ -26539,7 +26580,7 @@ function QueryReportTable({
26539
26580
  onThumbPointerDown,
26540
26581
  onThumbPointerMove,
26541
26582
  onThumbPointerUp
26542
- } = _chunk3DC6MHW6cjs.useHorizontalScrollbar.call(void 0, );
26583
+ } = _chunkQLWBBCI5cjs.useHorizontalScrollbar.call(void 0, );
26543
26584
  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
26585
  !isCompact && (title || headerActions || showExport && data.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end justify-between pt-6", children: [
26545
26586
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "font-mono font-semibold text-[32px] leading-[40px] text-ods-text-primary", children: title }),
@@ -26696,7 +26737,7 @@ function DataTableColumnFilter({
26696
26737
  align = "left"
26697
26738
  }) {
26698
26739
  const currentValue = column.getFilterValue();
26699
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _522 => _522.length]), () => ( 0));
26740
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _523 => _523.length]), () => ( 0));
26700
26741
  const sections = _react.useMemo.call(void 0,
26701
26742
  () => [
26702
26743
  {
@@ -26770,13 +26811,13 @@ function DataTableHeader({
26770
26811
  onSortChange
26771
26812
  }) {
26772
26813
  const table = useDataTableContext();
26773
- const isLgUp = _nullishCoalesce(_chunk3DC6MHW6cjs.useLgUp.call(void 0, ), () => ( false));
26814
+ const isLgUp = _nullishCoalesce(_chunkQLWBBCI5cjs.useLgUp.call(void 0, ), () => ( false));
26774
26815
  const headerGroup = table.getHeaderGroups()[0];
26775
26816
  if (!headerGroup) return null;
26776
26817
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
26777
26818
  if (header.isPlaceholder) return false;
26778
26819
  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]));
26820
+ return Boolean(_optionalChain([header, 'access', _524 => _524.column, 'access', _525 => _525.columnDef, 'access', _526 => _526.meta, 'optionalAccess', _527 => _527.filter]));
26780
26821
  });
26781
26822
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26782
26823
  "div",
@@ -26806,20 +26847,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
26806
26847
  if (header.isPlaceholder) return null;
26807
26848
  const column = header.column;
26808
26849
  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;
26850
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _528 => _528.filter]));
26851
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _529 => _529.align]), () => ( "left"));
26852
+ const canSort = _optionalChain([meta, 'optionalAccess', _530 => _530.sortable]) === true;
26853
+ const sortDir = _optionalChain([sort, 'optionalAccess', _531 => _531.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
26813
26854
  if (!isLgUp && !hasFilter) return null;
26814
26855
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26815
26856
  "div",
26816
26857
  {
26817
26858
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
26818
26859
  "flex items-stretch",
26819
- isLgUp && (_optionalChain([meta, 'optionalAccess', _531 => _531.width]) || "flex-1 min-w-0"),
26820
- _optionalChain([meta, 'optionalAccess', _532 => _532.headerClassName]),
26860
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _532 => _532.width]) || "flex-1 min-w-0"),
26861
+ _optionalChain([meta, 'optionalAccess', _533 => _533.headerClassName]),
26821
26862
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
26822
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _533 => _533.hideAt]))
26863
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _534 => _534.hideAt]))
26823
26864
  ),
26824
26865
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26825
26866
  DataTableColumnFilter,
@@ -26838,7 +26879,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
26838
26879
  isLgUp && alignJustify(align),
26839
26880
  canSort && "group cursor-pointer"
26840
26881
  ),
26841
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _534 => _534(column.id)]) : void 0,
26882
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _535 => _535(column.id)]) : void 0,
26842
26883
  children: [
26843
26884
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
26844
26885
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -26922,7 +26963,7 @@ function DataTableSkeleton({
26922
26963
  }) {
26923
26964
  const table = useDataTableContext();
26924
26965
  const columns = table.getVisibleFlatColumns();
26925
- const firstColumnId = _optionalChain([columns, 'access', _535 => _535[0], 'optionalAccess', _536 => _536.id]);
26966
+ const firstColumnId = _optionalChain([columns, 'access', _536 => _536[0], 'optionalAccess', _537 => _537.id]);
26926
26967
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26927
26968
  "div",
26928
26969
  {
@@ -26946,7 +26987,7 @@ function DataTableSkeleton({
26946
26987
  {
26947
26988
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
26948
26989
  "flex flex-col justify-center shrink-0",
26949
- _optionalChain([meta, 'optionalAccess', _537 => _537.width]) || "flex-1"
26990
+ _optionalChain([meta, 'optionalAccess', _538 => _538.width]) || "flex-1"
26950
26991
  ),
26951
26992
  children: [
26952
26993
  /* @__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 +27036,7 @@ function DataTableRowImpl({
26995
27036
  const handleClick = _react.useCallback.call(void 0,
26996
27037
  (e) => {
26997
27038
  const target = e.target;
26998
- if (!_optionalChain([containerRef, 'access', _538 => _538.current, 'optionalAccess', _539 => _539.contains, 'call', _540 => _540(target)])) {
27039
+ if (!_optionalChain([containerRef, 'access', _539 => _539.current, 'optionalAccess', _540 => _540.contains, 'call', _541 => _541(target)])) {
26999
27040
  if (isLinkMode) e.preventDefault();
27000
27041
  return;
27001
27042
  }
@@ -27003,7 +27044,7 @@ function DataTableRowImpl({
27003
27044
  if (isLinkMode) e.preventDefault();
27004
27045
  return;
27005
27046
  }
27006
- _optionalChain([onClick, 'optionalCall', _541 => _541(row.original)]);
27047
+ _optionalChain([onClick, 'optionalCall', _542 => _542(row.original)]);
27007
27048
  },
27008
27049
  [onClick, row.original, isLinkMode]
27009
27050
  );
@@ -27028,10 +27069,10 @@ function DataTableRowImpl({
27028
27069
  {
27029
27070
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
27030
27071
  "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]))
27072
+ alignJustify(_optionalChain([meta, 'optionalAccess', _543 => _543.align])),
27073
+ _optionalChain([meta, 'optionalAccess', _544 => _544.width]) || "flex-1 min-w-0",
27074
+ _optionalChain([meta, 'optionalAccess', _545 => _545.cellClassName]),
27075
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _546 => _546.hideAt]))
27035
27076
  ),
27036
27077
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
27037
27078
  },
@@ -27109,7 +27150,7 @@ function DataTableBody({
27109
27150
  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
27151
  rows.map((row, index) => {
27111
27152
  const item = row.original;
27112
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _546 => _546(item)]), () => ( void 0));
27153
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _547 => _547(item)]), () => ( void 0));
27113
27154
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
27114
27155
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27115
27156
  DataTableRow,
@@ -27119,7 +27160,7 @@ function DataTableBody({
27119
27160
  href,
27120
27161
  compact,
27121
27162
  className: cls,
27122
- subRow: _optionalChain([renderSubRow, 'optionalCall', _547 => _547(item)])
27163
+ subRow: _optionalChain([renderSubRow, 'optionalCall', _548 => _548(item)])
27123
27164
  },
27124
27165
  row.id
27125
27166
  );
@@ -27174,7 +27215,7 @@ function DataTableInfiniteFooter({
27174
27215
  if (!sentinel) return;
27175
27216
  const observer = new IntersectionObserver(
27176
27217
  (entries) => {
27177
- if (_optionalChain([entries, 'access', _548 => _548[0], 'optionalAccess', _549 => _549.isIntersecting])) onLoadMoreRef.current();
27218
+ if (_optionalChain([entries, 'access', _549 => _549[0], 'optionalAccess', _550 => _550.isIntersecting])) onLoadMoreRef.current();
27178
27219
  },
27179
27220
  { rootMargin }
27180
27221
  );
@@ -27222,7 +27263,7 @@ function DataTableRowCount({
27222
27263
  const table = useDataTableContext();
27223
27264
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
27224
27265
  if (hideWhenEmpty && count === 0) return null;
27225
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _550 => _550(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
27266
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _551 => _551(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
27226
27267
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
27227
27268
  "span",
27228
27269
  {
@@ -27307,7 +27348,7 @@ function FilterListItem({
27307
27348
  }) {
27308
27349
  const handleToggle = () => {
27309
27350
  if (disabled) return;
27310
- _optionalChain([onToggle, 'optionalCall', _551 => _551(!selected)]);
27351
+ _optionalChain([onToggle, 'optionalCall', _552 => _552(!selected)]);
27311
27352
  };
27312
27353
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
27313
27354
  "div",
@@ -27354,7 +27395,7 @@ function FilterListItem({
27354
27395
  CheckboxPrimitive4.Root,
27355
27396
  {
27356
27397
  checked: selected,
27357
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _552 => _552(c === true)]),
27398
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _553 => _553(c === true)]),
27358
27399
  onClick: (e) => e.stopPropagation(),
27359
27400
  disabled,
27360
27401
  "aria-label": title,
@@ -27453,7 +27494,7 @@ function TagSearchInput({
27453
27494
  if (!showHiddenTags) return;
27454
27495
  const handleClick = (e) => {
27455
27496
  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)])) {
27497
+ 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
27498
  setShowHiddenTags(false);
27458
27499
  }
27459
27500
  };
@@ -27469,13 +27510,13 @@ function TagSearchInput({
27469
27510
  e.preventDefault();
27470
27511
  onSubmit(searchValue);
27471
27512
  }
27472
- _optionalChain([onKeyDown, 'optionalCall', _559 => _559(e)]);
27513
+ _optionalChain([onKeyDown, 'optionalCall', _560 => _560(e)]);
27473
27514
  };
27474
27515
  const handleClearAll = (e) => {
27475
27516
  e.stopPropagation();
27476
27517
  e.preventDefault();
27477
- _optionalChain([onClearAll, 'optionalCall', _560 => _560()]);
27478
- _optionalChain([inputRef, 'access', _561 => _561.current, 'optionalAccess', _562 => _562.focus, 'call', _563 => _563()]);
27518
+ _optionalChain([onClearAll, 'optionalCall', _561 => _561()]);
27519
+ _optionalChain([inputRef, 'access', _562 => _562.current, 'optionalAccess', _563 => _563.focus, 'call', _564 => _564()]);
27479
27520
  };
27480
27521
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
27481
27522
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -27492,7 +27533,7 @@ function TagSearchInput({
27492
27533
  className
27493
27534
  ),
27494
27535
  onClick: () => {
27495
- if (!disabled) _optionalChain([inputRef, 'access', _564 => _564.current, 'optionalAccess', _565 => _565.focus, 'call', _566 => _566()]);
27536
+ if (!disabled) _optionalChain([inputRef, 'access', _565 => _565.current, 'optionalAccess', _566 => _566.focus, 'call', _567 => _567()]);
27496
27537
  },
27497
27538
  children: [
27498
27539
  /* @__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 +27605,7 @@ function TagSearchInput({
27564
27605
  items: hiddenTags,
27565
27606
  disabled,
27566
27607
  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
27608
+ 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
27609
  },
27569
27610
  onRemove: (value) => {
27570
27611
  onTagRemove(value);
@@ -27665,7 +27706,7 @@ function MarkdownEditor({
27665
27706
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
27666
27707
  _react.useEffect.call(void 0, () => {
27667
27708
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
27668
- if (_optionalChain([mod, 'access', _571 => _571.commands, 'optionalAccess', _572 => _572.getExtraCommands])) {
27709
+ if (_optionalChain([mod, 'access', _572 => _572.commands, 'optionalAccess', _573 => _573.getExtraCommands])) {
27669
27710
  setDefaultExtraCommands(mod.commands.getExtraCommands());
27670
27711
  }
27671
27712
  });
@@ -27699,7 +27740,7 @@ function MarkdownEditor({
27699
27740
  const isImage = file.type.startsWith("image/");
27700
27741
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
27701
27742
  insertTextAtCursor(markdown);
27702
- _optionalChain([onFileUploaded, 'optionalCall', _573 => _573(url, file.name)]);
27743
+ _optionalChain([onFileUploaded, 'optionalCall', _574 => _574(url, file.name)]);
27703
27744
  } catch (error) {
27704
27745
  console.error("File upload failed:", error);
27705
27746
  setUploadProgress("Upload failed. Please try again.");
@@ -27712,7 +27753,7 @@ function MarkdownEditor({
27712
27753
  );
27713
27754
  const handleFileInputChange = _react.useCallback.call(void 0,
27714
27755
  (e) => {
27715
- const file = _optionalChain([e, 'access', _574 => _574.target, 'access', _575 => _575.files, 'optionalAccess', _576 => _576[0]]);
27756
+ const file = _optionalChain([e, 'access', _575 => _575.target, 'access', _576 => _576.files, 'optionalAccess', _577 => _577[0]]);
27716
27757
  if (file) {
27717
27758
  handleFileUpload(file);
27718
27759
  e.target.value = "";
@@ -27723,7 +27764,7 @@ function MarkdownEditor({
27723
27764
  const handlePaste = _react.useCallback.call(void 0,
27724
27765
  (e) => {
27725
27766
  if (!onUploadFile) return;
27726
- const items = _optionalChain([e, 'access', _577 => _577.clipboardData, 'optionalAccess', _578 => _578.items]);
27767
+ const items = _optionalChain([e, 'access', _578 => _578.clipboardData, 'optionalAccess', _579 => _579.items]);
27727
27768
  if (!items) return;
27728
27769
  for (const item of items) {
27729
27770
  if (item.type.startsWith("image/")) {
@@ -27748,7 +27789,7 @@ function MarkdownEditor({
27748
27789
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
27749
27790
  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
27791
  execute: () => {
27751
- _optionalChain([fileInputRef, 'access', _579 => _579.current, 'optionalAccess', _580 => _580.click, 'call', _581 => _581()]);
27792
+ _optionalChain([fileInputRef, 'access', _580 => _580.current, 'optionalAccess', _581 => _581.click, 'call', _582 => _582()]);
27752
27793
  }
27753
27794
  } : null;
27754
27795
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -27760,7 +27801,7 @@ function MarkdownEditor({
27760
27801
  const EDGE_ZONE = 60;
27761
27802
  const MAX_SCROLL_SPEED = 15;
27762
27803
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
27763
- let node = _optionalChain([el, 'optionalAccess', _582 => _582.parentElement]);
27804
+ let node = _optionalChain([el, 'optionalAccess', _583 => _583.parentElement]);
27764
27805
  while (node && node !== document.documentElement) {
27765
27806
  const { overflowY } = window.getComputedStyle(node);
27766
27807
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -27903,7 +27944,7 @@ function matchesAccept(file, accept) {
27903
27944
  });
27904
27945
  }
27905
27946
  function dragHasFiles(e) {
27906
- const types = _optionalChain([e, 'access', _583 => _583.dataTransfer, 'optionalAccess', _584 => _584.types]);
27947
+ const types = _optionalChain([e, 'access', _584 => _584.dataTransfer, 'optionalAccess', _585 => _585.types]);
27907
27948
  if (!types) return false;
27908
27949
  for (let i = 0; i < types.length; i++) {
27909
27950
  if (types[i] === "Files") return true;
@@ -27998,7 +28039,7 @@ function FileUpload({
27998
28039
  e.stopPropagation();
27999
28040
  setDragActive(false);
28000
28041
  if (disabled) return;
28001
- if (_optionalChain([e, 'access', _585 => _585.dataTransfer, 'access', _586 => _586.files, 'optionalAccess', _587 => _587.length])) {
28042
+ if (_optionalChain([e, 'access', _586 => _586.dataTransfer, 'access', _587 => _587.files, 'optionalAccess', _588 => _588.length])) {
28002
28043
  handleFiles(e.dataTransfer.files);
28003
28044
  }
28004
28045
  };
@@ -28026,7 +28067,7 @@ function FileUpload({
28026
28067
  e.preventDefault();
28027
28068
  dragCounter = 0;
28028
28069
  setDragActive(false);
28029
- if (_optionalChain([e, 'access', _588 => _588.dataTransfer, 'optionalAccess', _589 => _589.files, 'optionalAccess', _590 => _590.length])) {
28070
+ if (_optionalChain([e, 'access', _589 => _589.dataTransfer, 'optionalAccess', _590 => _590.files, 'optionalAccess', _591 => _591.length])) {
28030
28071
  handleFilesRef.current(e.dataTransfer.files);
28031
28072
  }
28032
28073
  };
@@ -28048,7 +28089,7 @@ function FileUpload({
28048
28089
  };
28049
28090
  }, [acceptWindowDrops, disabled]);
28050
28091
  const handleFileSelect = (e) => {
28051
- if (_optionalChain([e, 'access', _591 => _591.target, 'access', _592 => _592.files, 'optionalAccess', _593 => _593.length])) {
28092
+ if (_optionalChain([e, 'access', _592 => _592.target, 'access', _593 => _593.files, 'optionalAccess', _594 => _594.length])) {
28052
28093
  handleFiles(e.target.files);
28053
28094
  }
28054
28095
  };
@@ -28065,7 +28106,7 @@ function FileUpload({
28065
28106
  };
28066
28107
  const openDialog = async () => {
28067
28108
  if (disabled) return;
28068
- _optionalChain([fileInputRef, 'access', _594 => _594.current, 'optionalAccess', _595 => _595.click, 'call', _596 => _596()]);
28109
+ _optionalChain([fileInputRef, 'access', _595 => _595.current, 'optionalAccess', _596 => _596.click, 'call', _597 => _597()]);
28069
28110
  };
28070
28111
  const displayError = error || validationError || void 0;
28071
28112
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -28143,7 +28184,7 @@ function FileUpload({
28143
28184
  "button",
28144
28185
  {
28145
28186
  type: "button",
28146
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _597 => _597(entry.id)]),
28187
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _598 => _598(entry.id)]),
28147
28188
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
28148
28189
  "aria-label": `Remove ${entry.fileName}`,
28149
28190
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -28266,7 +28307,7 @@ function ImageUploader({
28266
28307
  onChange(file);
28267
28308
  };
28268
28309
  const handleFileSelect = (e) => {
28269
- validateAndEmit(_optionalChain([e, 'access', _598 => _598.target, 'access', _599 => _599.files, 'optionalAccess', _600 => _600[0]]));
28310
+ validateAndEmit(_optionalChain([e, 'access', _599 => _599.target, 'access', _600 => _600.files, 'optionalAccess', _601 => _601[0]]));
28270
28311
  if (inputRef.current) inputRef.current.value = "";
28271
28312
  };
28272
28313
  const handleDrag = (e) => {
@@ -28281,11 +28322,11 @@ function ImageUploader({
28281
28322
  e.stopPropagation();
28282
28323
  setDragActive(false);
28283
28324
  if (!interactive) return;
28284
- validateAndEmit(_optionalChain([e, 'access', _601 => _601.dataTransfer, 'access', _602 => _602.files, 'optionalAccess', _603 => _603[0]]));
28325
+ validateAndEmit(_optionalChain([e, 'access', _602 => _602.dataTransfer, 'access', _603 => _603.files, 'optionalAccess', _604 => _604[0]]));
28285
28326
  };
28286
28327
  const openDialog = () => {
28287
28328
  if (!interactive) return;
28288
- _optionalChain([inputRef, 'access', _604 => _604.current, 'optionalAccess', _605 => _605.click, 'call', _606 => _606()]);
28329
+ _optionalChain([inputRef, 'access', _605 => _605.current, 'optionalAccess', _606 => _606.click, 'call', _607 => _607()]);
28289
28330
  };
28290
28331
  const handleRootKeyDown = (e) => {
28291
28332
  if (hasImage || !interactive) return;
@@ -28475,8 +28516,8 @@ function ColorPresetSelect({
28475
28516
  }) {
28476
28517
  const selectedPreset = presets.find((p) => p.key === presetKey);
28477
28518
  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));
28519
+ const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _608 => _608.label]), () => ( "Custom"));
28520
+ const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _609 => _609.color]), () => ( value));
28480
28521
  const groups = [
28481
28522
  {
28482
28523
  items: [
@@ -28766,7 +28807,7 @@ function TicketStatusConfigRow({
28766
28807
  _chunk6JINAOI7cjs.Input,
28767
28808
  {
28768
28809
  value: name,
28769
- onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _609 => _609(e.target.value)]),
28810
+ onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _610 => _610(e.target.value)]),
28770
28811
  disabled: isSystem,
28771
28812
  readOnly: isSystem,
28772
28813
  "aria-label": "Status name",
@@ -28849,7 +28890,7 @@ function CompactAssigneeDropdown({
28849
28890
  return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
28850
28891
  }, [filtered, currentAssignee]);
28851
28892
  const handleSelect = (userId) => {
28852
- const next = _optionalChain([currentAssignee, 'optionalAccess', _610 => _610.id]) === userId ? null : userId;
28893
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _611 => _611.id]) === userId ? null : userId;
28853
28894
  onAssign(next);
28854
28895
  setIsOpen(false);
28855
28896
  };
@@ -28914,7 +28955,7 @@ function CompactAssigneeDropdown({
28914
28955
  }
28915
28956
  ) }),
28916
28957
  /* @__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;
28958
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _612 => _612.id]) === opt.value;
28918
28959
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28919
28960
  "button",
28920
28961
  {
@@ -28983,7 +29024,7 @@ function DefaultAssigneeDropdown({
28983
29024
  Autocomplete,
28984
29025
  {
28985
29026
  options,
28986
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _612 => _612.id]), () => ( null)),
29027
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _613 => _613.id]), () => ( null)),
28987
29028
  onChange: (val) => {
28988
29029
  onAssign(val);
28989
29030
  setIsEditing(false);
@@ -29372,14 +29413,14 @@ function TicketInfoSection({
29372
29413
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29373
29414
  _chunk7MNBE7XAcjs.SquareAvatar,
29374
29415
  {
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",
29416
+ src: _optionalChain([organization, 'optionalAccess', _614 => _614.imageSrc]),
29417
+ alt: _optionalChain([organization, 'optionalAccess', _615 => _615.name]),
29418
+ fallback: _optionalChain([organization, 'optionalAccess', _616 => _616.name]) || "Org",
29378
29419
  size: "md",
29379
29420
  className: "shrink-0"
29380
29421
  }
29381
29422
  ),
29382
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _616 => _616.name]) || "Unassigned", label: "Organization" })
29423
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _617 => _617.name]) || "Unassigned", label: "Organization" })
29383
29424
  ] }),
29384
29425
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29385
29426
  AssigneeDropdown,
@@ -29400,10 +29441,10 @@ function TicketInfoSection({
29400
29441
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29401
29442
  InfoCell2,
29402
29443
  {
29403
- value: _optionalChain([device, 'optionalAccess', _617 => _617.name]) || "Unassigned",
29444
+ value: _optionalChain([device, 'optionalAccess', _618 => _618.name]) || "Unassigned",
29404
29445
  label: "Device",
29405
- icon: _optionalChain([device, 'optionalAccess', _618 => _618.icon]),
29406
- onClick: _optionalChain([device, 'optionalAccess', _619 => _619.onClick])
29446
+ icon: _optionalChain([device, 'optionalAccess', _619 => _619.icon]),
29447
+ onClick: _optionalChain([device, 'optionalAccess', _620 => _620.onClick])
29407
29448
  }
29408
29449
  ),
29409
29450
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -29699,7 +29740,7 @@ function RoadmapCard({
29699
29740
  const compactHref = _chunk7MNBE7XAcjs.safeHref.call(void 0, _nullishCoalesce(href, () => ( null)));
29700
29741
  const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
29701
29742
  const hasFigma = !!item.figmaUrl;
29702
- const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _620 => _620.screenshots, 'optionalAccess', _621 => _621.length]), () => ( 0))) > 0;
29743
+ const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _621 => _621.screenshots, 'optionalAccess', _622 => _622.length]), () => ( 0))) > 0;
29703
29744
  const typeLabel = getTaskTypeLabel(item.customItemId);
29704
29745
  const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
29705
29746
  const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -29718,7 +29759,7 @@ function RoadmapCard({
29718
29759
  unoptimized: true,
29719
29760
  className: "h-8 w-8 object-contain"
29720
29761
  }
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)]) || "??" })
29762
+ ) : /* @__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
29763
  }
29723
29764
  ),
29724
29765
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk7MNBE7XAcjs.COMPACT_CARD_TEXT_COL, children: [
@@ -29793,7 +29834,7 @@ function RoadmapCard({
29793
29834
  unoptimized: true,
29794
29835
  className: "object-contain p-1"
29795
29836
  }
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)]) || "??" }) }),
29837
+ ) : /* @__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
29838
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
29798
29839
  /* @__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
29840
  /* @__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 +30344,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
30303
30344
  ] }) : null,
30304
30345
  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
30346
  ] }),
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
30347
+ _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
30348
  ] });
30308
30349
  if (!anchorProps) {
30309
30350
  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 +30414,7 @@ function getDefaultOptions() {
30373
30414
  // node_modules/date-fns/startOfWeek.mjs
30374
30415
  function startOfWeek(date, options) {
30375
30416
  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));
30417
+ 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
30418
  const _date = toDate(date);
30378
30419
  const day = _date.getDay();
30379
30420
  const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
@@ -30548,7 +30589,7 @@ var formatDistance = (token, count, options) => {
30548
30589
  } else {
30549
30590
  result = tokenValue.other.replace("{{count}}", count.toString());
30550
30591
  }
30551
- if (_optionalChain([options, 'optionalAccess', _636 => _636.addSuffix])) {
30592
+ if (_optionalChain([options, 'optionalAccess', _637 => _637.addSuffix])) {
30552
30593
  if (options.comparison && options.comparison > 0) {
30553
30594
  return "in " + result;
30554
30595
  } else {
@@ -30615,15 +30656,15 @@ var formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale
30615
30656
  // node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs
30616
30657
  function buildLocalizeFn(args) {
30617
30658
  return (value, options) => {
30618
- const context = _optionalChain([options, 'optionalAccess', _637 => _637.context]) ? String(options.context) : "standalone";
30659
+ const context = _optionalChain([options, 'optionalAccess', _638 => _638.context]) ? String(options.context) : "standalone";
30619
30660
  let valuesArray;
30620
30661
  if (context === "formatting" && args.formattingValues) {
30621
30662
  const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
30622
- const width = _optionalChain([options, 'optionalAccess', _638 => _638.width]) ? String(options.width) : defaultWidth;
30663
+ const width = _optionalChain([options, 'optionalAccess', _639 => _639.width]) ? String(options.width) : defaultWidth;
30623
30664
  valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
30624
30665
  } else {
30625
30666
  const defaultWidth = args.defaultWidth;
30626
- const width = _optionalChain([options, 'optionalAccess', _639 => _639.width]) ? String(options.width) : args.defaultWidth;
30667
+ const width = _optionalChain([options, 'optionalAccess', _640 => _640.width]) ? String(options.width) : args.defaultWidth;
30627
30668
  valuesArray = args.values[width] || args.values[defaultWidth];
30628
30669
  }
30629
30670
  const index = args.argumentCallback ? args.argumentCallback(value) : value;
@@ -31003,7 +31044,7 @@ function getWeekYear(date, options) {
31003
31044
  const _date = toDate(date);
31004
31045
  const year = _date.getFullYear();
31005
31046
  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));
31047
+ 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
31048
  const firstWeekOfNextYear = constructFrom(date, 0);
31008
31049
  firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
31009
31050
  firstWeekOfNextYear.setHours(0, 0, 0, 0);
@@ -31024,7 +31065,7 @@ function getWeekYear(date, options) {
31024
31065
  // node_modules/date-fns/startOfWeekYear.mjs
31025
31066
  function startOfWeekYear(date, options) {
31026
31067
  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));
31068
+ 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
31069
  const year = getWeekYear(date, options);
31029
31070
  const firstWeek = constructFrom(date, 0);
31030
31071
  firstWeek.setFullYear(year, 0, firstWeekContainsDate);
@@ -31839,9 +31880,9 @@ var doubleQuoteRegExp = /''/g;
31839
31880
  var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
31840
31881
  function format(date, formatStr, options) {
31841
31882
  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));
31883
+ const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _655 => _655.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
31884
+ 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));
31885
+ 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
31886
  const originalDate = toDate(date);
31846
31887
  if (!isValid(originalDate)) {
31847
31888
  throw new RangeError("Invalid time value");
@@ -31882,7 +31923,7 @@ function format(date, formatStr, options) {
31882
31923
  return parts.map((part) => {
31883
31924
  if (!part.isToken) return part.value;
31884
31925
  const token = part.value;
31885
- if (!_optionalChain([options, 'optionalAccess', _669 => _669.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _670 => _670.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
31926
+ if (!_optionalChain([options, 'optionalAccess', _670 => _670.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _671 => _671.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
31886
31927
  warnOrThrowProtectedError(token, formatStr, String(date));
31887
31928
  }
31888
31929
  const formatter = formatters[token[0]];
@@ -32060,7 +32101,7 @@ function ProgramCard({
32060
32101
  const dur = _chunk7MNBE7XAcjs.formatDurationFromRange.call(void 0, w.start_at, w.end_at);
32061
32102
  typeMeta = dur ? `${time} \xB7 ${dur}` : time;
32062
32103
  }
32063
- const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _671 => _671.labels, 'optionalAccess', _672 => _672.singular])].filter(
32104
+ const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _672 => _672.labels, 'optionalAccess', _673 => _673.singular])].filter(
32064
32105
  (s) => typeof s === "string" && s.length > 0
32065
32106
  );
32066
32107
  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 +32258,7 @@ function ProgramCard({
32217
32258
 
32218
32259
 
32219
32260
  function CampaignCardAdmin({ campaign, className, anchorProps }) {
32220
- const goalsCount = _optionalChain([campaign, 'access', _673 => _673.goals, 'optionalAccess', _674 => _674.length]) || 0;
32261
+ const goalsCount = _optionalChain([campaign, 'access', _674 => _674.goals, 'optionalAccess', _675 => _675.length]) || 0;
32221
32262
  const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
32222
32263
  /* @__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
32264
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk7MNBE7XAcjs.COMPACT_CARD_TEXT_COL, children: [
@@ -32504,8 +32545,8 @@ function cardMenuGroups(href, discuss, openDetails) {
32504
32545
  if (href) {
32505
32546
  items.push({
32506
32547
  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 }))),
32548
+ label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _676 => _676.label]), () => ( "Open Details")),
32549
+ icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _677 => _677.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.EyeIcon, { size: 20 }))),
32509
32550
  // Main row → open the entity (same tab, soft Link nav).
32510
32551
  href,
32511
32552
  // Trailing 40px ↗ side-button → open in a new tab.
@@ -32535,8 +32576,8 @@ function HubspotTicketChatCard({
32535
32576
  isNewTab,
32536
32577
  discuss
32537
32578
  }) {
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;
32579
+ const status = typeof _optionalChain([chatRef, 'access', _678 => _678.metadata, 'optionalAccess', _679 => _679.status]) === "string" ? chatRef.metadata.status : void 0;
32580
+ const statusLabel = typeof _optionalChain([chatRef, 'access', _680 => _680.metadata, 'optionalAccess', _681 => _681.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
32540
32581
  const statusText = _nullishCoalesce(statusLabel, () => ( formatStatusToken(status)));
32541
32582
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32542
32583
  MingoInfoCard,
@@ -32559,7 +32600,7 @@ function SlackChatCard({
32559
32600
  isNewTab,
32560
32601
  discuss
32561
32602
  }) {
32562
- const channelName = typeof _optionalChain([chatRef, 'access', _681 => _681.metadata, 'optionalAccess', _682 => _682.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
32603
+ const channelName = typeof _optionalChain([chatRef, 'access', _682 => _682.metadata, 'optionalAccess', _683 => _683.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
32563
32604
  const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
32564
32605
  const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
32565
32606
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -32599,7 +32640,7 @@ function GenericFinancialChatCard({
32599
32640
  isNewTab,
32600
32641
  discuss
32601
32642
  }) {
32602
- const subtitle = typeof _optionalChain([chatRef, 'access', _683 => _683.metadata, 'optionalAccess', _684 => _684.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
32643
+ const subtitle = typeof _optionalChain([chatRef, 'access', _684 => _684.metadata, 'optionalAccess', _685 => _685.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
32603
32644
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32604
32645
  MingoInfoCard,
32605
32646
  {
@@ -32668,12 +32709,12 @@ function ProductReleaseChatCard({
32668
32709
  discuss
32669
32710
  }) {
32670
32711
  const releaseProps = buildProps(item);
32671
- const status = _optionalChain([item, 'optionalAccess', _685 => _685.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
32712
+ const status = _optionalChain([item, 'optionalAccess', _686 => _686.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
32672
32713
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32673
32714
  EntityMingoCard,
32674
32715
  {
32675
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _686 => _686.title]), () => ( "")),
32676
- description: _optionalChain([item, 'optionalAccess', _687 => _687.summary]) || releaseProps.formattedDate || void 0,
32716
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _687 => _687.title]), () => ( "")),
32717
+ description: _optionalChain([item, 'optionalAccess', _688 => _688.summary]) || releaseProps.formattedDate || void 0,
32677
32718
  cover: releaseProps.coverImage || void 0,
32678
32719
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Rocket02Icon, { size: 24 }),
32679
32720
  status,
@@ -32690,17 +32731,17 @@ function CampaignChatCard({
32690
32731
  isNewTab,
32691
32732
  discuss
32692
32733
  }) {
32693
- const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _688 => _688.goals])) ? item.goals.length : 0;
32734
+ const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _689 => _689.goals])) ? item.goals.length : 0;
32694
32735
  const meta = [
32695
- _optionalChain([item, 'optionalAccess', _689 => _689.start_date]) ? formatDateShort(item.start_date) : null,
32736
+ _optionalChain([item, 'optionalAccess', _690 => _690.start_date]) ? formatDateShort(item.start_date) : null,
32696
32737
  goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
32697
32738
  "Marketing campaign"
32698
32739
  ].filter(Boolean).join(" \xB7 ");
32699
32740
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32700
32741
  EntityMingoCard,
32701
32742
  {
32702
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _690 => _690.name]), () => ( "")),
32703
- description: meta || _optionalChain([item, 'optionalAccess', _691 => _691.description]) || void 0,
32743
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _691 => _691.name]), () => ( "")),
32744
+ description: meta || _optionalChain([item, 'optionalAccess', _692 => _692.description]) || void 0,
32704
32745
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Megaphone01Icon, { size: 24 }),
32705
32746
  chatRef,
32706
32747
  isNewTab,
@@ -32753,14 +32794,14 @@ function BlogChatCard({
32753
32794
  hasEmbeddedVideo,
32754
32795
  discuss
32755
32796
  }) {
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;
32797
+ 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
32798
  const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
32758
32799
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32759
32800
  EntityMingoCard,
32760
32801
  {
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),
32802
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _698 => _698.title]), () => ( "")),
32803
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _699 => _699.summary]), () => ( void 0)),
32804
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _700 => _700.featured_image]), ogPlaceholder),
32764
32805
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.NewspaperIcon, { size: 24 }),
32765
32806
  status,
32766
32807
  chatRef,
@@ -32777,13 +32818,13 @@ function CaseStudyChatCard({
32777
32818
  ogPlaceholder,
32778
32819
  discuss
32779
32820
  }) {
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 ");
32821
+ 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
32822
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32782
32823
  EntityMingoCard,
32783
32824
  {
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),
32825
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _705 => _705.title]), () => ( "")),
32826
+ description: _optionalChain([item, 'optionalAccess', _706 => _706.summary]) || meta || void 0,
32827
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _707 => _707.featured_image]), ogPlaceholder),
32787
32828
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.TrophyIcon, { size: 24 }),
32788
32829
  status: { label: "Case study", variant: "grey" },
32789
32830
  chatRef,
@@ -32800,13 +32841,13 @@ function CustomerInterviewChatCard({
32800
32841
  ogPlaceholder,
32801
32842
  discuss
32802
32843
  }) {
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 ");
32844
+ 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
32845
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32805
32846
  EntityMingoCard,
32806
32847
  {
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),
32848
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _712 => _712.title]), () => ( "")),
32849
+ description: _optionalChain([item, 'optionalAccess', _713 => _713.video_summary]) || meta || void 0,
32850
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _714 => _714.featured_image]), ogPlaceholder),
32810
32851
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.MicrophoneIcon, { size: 24 }),
32811
32852
  status: { label: "Interview", variant: "grey" },
32812
32853
  chatRef,
@@ -32823,13 +32864,13 @@ function InvestorUpdateChatCard({
32823
32864
  ogPlaceholder,
32824
32865
  discuss
32825
32866
  }) {
32826
- const title = _optionalChain([item, 'optionalAccess', _714 => _714.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _715 => _715.update_number]), () => ( "?"))}`;
32867
+ const title = _optionalChain([item, 'optionalAccess', _715 => _715.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _716 => _716.update_number]), () => ( "?"))}`;
32827
32868
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32828
32869
  EntityMingoCard,
32829
32870
  {
32830
32871
  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),
32872
+ 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,
32873
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _721 => _721.featured_image]), ogPlaceholder),
32833
32874
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.PresentationLineIcon, { size: 24 }),
32834
32875
  status: { label: "Investor update", variant: "grey" },
32835
32876
  chatRef,
@@ -32846,12 +32887,12 @@ function OnboardingGuideChatCard({
32846
32887
  ogPlaceholder,
32847
32888
  discuss
32848
32889
  }) {
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)));
32890
+ 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
32891
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32851
32892
  EntityMingoCard,
32852
32893
  {
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)),
32894
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _725 => _725.title]), () => ( "")),
32895
+ description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _726 => _726.summary]), () => ( _optionalChain([item, 'optionalAccess', _727 => _727.description]))), () => ( void 0)),
32855
32896
  cover,
32856
32897
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.CompassIcon, { size: 24 }),
32857
32898
  status: { label: "Guide", variant: "grey" },
@@ -32872,25 +32913,25 @@ function ProgramChatCard({
32872
32913
  discuss
32873
32914
  }) {
32874
32915
  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";
32916
+ const isScheduled = _optionalChain([item, 'optionalAccess', _728 => _728.status]) === "scheduled";
32876
32917
  let typeMeta;
32877
- if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _728 => _728.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
32918
+ if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _729 => _729.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
32878
32919
  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) {
32920
+ } else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess', _730 => _730.location_name]) === "string" && item.location_name.trim().length > 0) {
32880
32921
  typeMeta = item.location_name;
32881
- } else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _730 => _730.start_at])) {
32922
+ } else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _731 => _731.start_at])) {
32882
32923
  const time = _chunk7MNBE7XAcjs.formatTimeWithTimezone.call(void 0, item.start_at, null);
32883
32924
  const dur = _chunk7MNBE7XAcjs.formatDurationFromRange.call(void 0, item.start_at, item.end_at);
32884
32925
  typeMeta = dur ? `${time} \xB7 ${dur}` : time;
32885
32926
  }
32886
- const itemDate = _chunk7MNBE7XAcjs.formatDateUTC.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _731 => _731.date]), () => ( null)), { fallback: "", timezone: "local" });
32927
+ const itemDate = _chunk7MNBE7XAcjs.formatDateUTC.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _732 => _732.date]), () => ( null)), { fallback: "", timezone: "local" });
32887
32928
  const meta = [itemDate, typeMeta].filter(Boolean).join(" \xB7 ");
32888
32929
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32889
32930
  EntityMingoCard,
32890
32931
  {
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),
32932
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _733 => _733.title]), () => ( "")),
32933
+ description: meta || _optionalChain([item, 'optionalAccess', _734 => _734.description]) || void 0,
32934
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _735 => _735.cover_url]), ogPlaceholder),
32894
32935
  fallbackIcon: icon,
32895
32936
  status: { label, variant: "grey" },
32896
32937
  chatRef,
@@ -32907,10 +32948,10 @@ function RoadmapChatCard({
32907
32948
  cardType,
32908
32949
  discuss
32909
32950
  }) {
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;
32951
+ const logoUrl = typeof _optionalChain([item, 'optionalAccess', _736 => _736.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
32952
+ const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _737 => _737.customItemId]) != null;
32912
32953
  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 ? (
32954
+ const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _738 => _738.customItemId]), className: "size-6" }) : logoUrl ? (
32914
32955
  // Contained (not full-bleed) so the integration logo keeps its aspect
32915
32956
  // ratio inside the bordered icon box — matches RoadmapCard.
32916
32957
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src: logoUrl, alt: "", className: "size-6 object-contain" })
@@ -32918,10 +32959,10 @@ function RoadmapChatCard({
32918
32959
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32919
32960
  EntityMingoCard,
32920
32961
  {
32921
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _738 => _738.title]), () => ( "")),
32922
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _739 => _739.description]), () => ( void 0)),
32962
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _739 => _739.title]), () => ( "")),
32963
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _740 => _740.description]), () => ( void 0)),
32923
32964
  fallbackIcon: icon,
32924
- status: statusPill(_optionalChain([item, 'optionalAccess', _740 => _740.status])),
32965
+ status: statusPill(_optionalChain([item, 'optionalAccess', _741 => _741.status])),
32925
32966
  chatRef,
32926
32967
  isNewTab,
32927
32968
  discuss,
@@ -33007,7 +33048,7 @@ function programRegistryEntries() {
33007
33048
  discuss: opts.discuss,
33008
33049
  configKey: cfg.configKey,
33009
33050
  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))
33051
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _742 => _742.extras, 'optionalAccess', _743 => _743.buildOgPlaceholderUrl, 'optionalCall', _744 => _744(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _745 => _745.title]), () => ( "")))]), () => ( null))
33011
33052
  }
33012
33053
  )
33013
33054
  };
@@ -33153,8 +33194,8 @@ var CHAT_CARD_REGISTRY = {
33153
33194
  chatRef,
33154
33195
  isNewTab: opts.isNewTab,
33155
33196
  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
33197
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _746 => _746.extras, 'optionalAccess', _747 => _747.buildOgPlaceholderUrl, 'optionalCall', _748 => _748(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _749 => _749.title]), () => ( "")))]), () => ( null)),
33198
+ hasEmbeddedVideo: _optionalChain([chatRef, 'access', _750 => _750.metadata, 'optionalAccess', _751 => _751.hasEmbeddedVideo]) === true
33158
33199
  }
33159
33200
  )
33160
33201
  },
@@ -33171,7 +33212,7 @@ var CHAT_CARD_REGISTRY = {
33171
33212
  chatRef,
33172
33213
  isNewTab: opts.isNewTab,
33173
33214
  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))
33215
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _752 => _752.extras, 'optionalAccess', _753 => _753.buildOgPlaceholderUrl, 'optionalCall', _754 => _754(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _755 => _755.title]), () => ( "")))]), () => ( null))
33175
33216
  }
33176
33217
  )
33177
33218
  },
@@ -33188,7 +33229,7 @@ var CHAT_CARD_REGISTRY = {
33188
33229
  chatRef,
33189
33230
  isNewTab: opts.isNewTab,
33190
33231
  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))
33232
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _756 => _756.extras, 'optionalAccess', _757 => _757.buildOgPlaceholderUrl, 'optionalCall', _758 => _758(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _759 => _759.title]), () => ( "")))]), () => ( null))
33192
33233
  }
33193
33234
  )
33194
33235
  },
@@ -33199,7 +33240,7 @@ var CHAT_CARD_REGISTRY = {
33199
33240
  bareInline: true,
33200
33241
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductReleaseCardSkeleton, { size: "sm" }),
33201
33242
  render: (item, chatRef, opts) => {
33202
- const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _759 => _759.extras, 'optionalAccess', _760 => _760.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
33243
+ const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _760 => _760.extras, 'optionalAccess', _761 => _761.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
33203
33244
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33204
33245
  ProductReleaseChatCard,
33205
33246
  {
@@ -33226,7 +33267,7 @@ var CHAT_CARD_REGISTRY = {
33226
33267
  chatRef,
33227
33268
  isNewTab: opts.isNewTab,
33228
33269
  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))
33270
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _762 => _762.extras, 'optionalAccess', _763 => _763.buildOgPlaceholderUrl, 'optionalCall', _764 => _764(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _765 => _765.title]), () => ( "")))]), () => ( null))
33230
33271
  }
33231
33272
  )
33232
33273
  },
@@ -33245,7 +33286,7 @@ var CHAT_CARD_REGISTRY = {
33245
33286
  chatRef,
33246
33287
  isNewTab: opts.isNewTab,
33247
33288
  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))
33289
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _766 => _766.extras, 'optionalAccess', _767 => _767.buildOgPlaceholderUrl, 'optionalCall', _768 => _768(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _769 => _769.title]), () => ( "")))]), () => ( null))
33249
33290
  }
33250
33291
  )
33251
33292
  },
@@ -33257,7 +33298,7 @@ var CHAT_CARD_REGISTRY = {
33257
33298
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
33258
33299
  // No public viewer — synthesize the hub-internal admin URL post-fetch
33259
33300
  // so the wrapper + isNewTab computation see the actual destination.
33260
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _769 => _769.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
33301
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _770 => _770.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
33261
33302
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33262
33303
  CampaignChatCard,
33263
33304
  {
@@ -33283,12 +33324,12 @@ function ChatCardNavWrap({
33283
33324
  const onClickCapture = (e) => {
33284
33325
  if (!href) return;
33285
33326
  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;
33327
+ if (_optionalChain([targetEl, 'optionalAccess', _771 => _771.closest, 'optionalCall', _772 => _772("button")])) return;
33328
+ if (!_optionalChain([targetEl, 'optionalAccess', _773 => _773.closest, 'optionalCall', _774 => _774("a")])) return;
33288
33329
  const handled = handleChatNavClick(e, runtime, { href, path, targetPlatform }, router.push);
33289
33330
  if (!handled) return;
33290
33331
  e.stopPropagation();
33291
- if (!isNewTab && _optionalChain([panel, 'optionalAccess', _774 => _774.closeChat])) panel.closeChat();
33332
+ if (!isNewTab && _optionalChain([panel, 'optionalAccess', _775 => _775.closeChat])) panel.closeChat();
33292
33333
  };
33293
33334
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
33294
33335
  }
@@ -33310,7 +33351,7 @@ function ChatCardLoader({
33310
33351
  title: chatRef.title,
33311
33352
  externalUrl: chatRef.url,
33312
33353
  targetPlatform: chatRef.targetPlatform,
33313
- path: typeof _optionalChain([chatRef, 'access', _775 => _775.metadata, 'optionalAccess', _776 => _776.path]) === "string" ? chatRef.metadata.path : null
33354
+ path: typeof _optionalChain([chatRef, 'access', _776 => _776.metadata, 'optionalAccess', _777 => _777.path]) === "string" ? chatRef.metadata.path : null
33314
33355
  },
33315
33356
  _chunk7MNBE7XAcjs.sourceRowCtxFromRuntime.call(void 0, runtime, { baseRoute, chipBasePlatform })
33316
33357
  );
@@ -33324,7 +33365,7 @@ function ChatCardLoader({
33324
33365
  const entry = CHAT_CARD_REGISTRY[resolvedChatRef.type];
33325
33366
  const fetchEntry = entry && entry.mode === "fetch" ? entry : null;
33326
33367
  const { item, isLoading } = useChatCardItem(
33327
- _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _777 => _777.contentRefType]), () => ( "")),
33368
+ _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _778 => _778.contentRefType]), () => ( "")),
33328
33369
  fetchEntry ? resolvedChatRef.id : ""
33329
33370
  );
33330
33371
  if (!entry) return null;
@@ -33355,7 +33396,7 @@ function ChatCardLoader({
33355
33396
  isNewTab,
33356
33397
  discuss
33357
33398
  };
33358
- const path = typeof _optionalChain([finalChatRef, 'access', _778 => _778.metadata, 'optionalAccess', _779 => _779.path]) === "string" ? finalChatRef.metadata.path : null;
33399
+ const path = typeof _optionalChain([finalChatRef, 'access', _779 => _779.metadata, 'optionalAccess', _780 => _780.path]) === "string" ? finalChatRef.metadata.path : null;
33359
33400
  const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33360
33401
  ChatCardNavWrap,
33361
33402
  {
@@ -33881,7 +33922,7 @@ function useJetStreamDialogSubscription({
33881
33922
  const lifecycle = _chunkPXXS27EEcjs.startConnectionLifecycle.call(void 0, {
33882
33923
  conn: sharedConn,
33883
33924
  wsUrl,
33884
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _780 => _780.current, 'optionalCall', _781 => _781()]),
33925
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _781 => _781.current, 'optionalCall', _782 => _782()]),
33885
33926
  backoff: reconnectionBackoffRef.current,
33886
33927
  getFreshUrl: () => getNatsWsUrlRef.current(),
33887
33928
  // JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
@@ -33896,7 +33937,7 @@ function useJetStreamDialogSubscription({
33896
33937
  setReconnectionCount((c) => c + 1);
33897
33938
  }
33898
33939
  hadConnectionBeforeRef.current = true;
33899
- _optionalChain([onConnectRef, 'access', _782 => _782.current, 'optionalCall', _783 => _783()]);
33940
+ _optionalChain([onConnectRef, 'access', _783 => _783.current, 'optionalCall', _784 => _784()]);
33900
33941
  }
33901
33942
  if (status === "error") {
33902
33943
  console.warn("[JetStream] NATS protocol error:", evt.data);
@@ -33906,7 +33947,7 @@ function useJetStreamDialogSubscription({
33906
33947
  setIsConnected(false);
33907
33948
  setIsSubscribed(false);
33908
33949
  tearDownSubscription();
33909
- _optionalChain([onDisconnectRef, 'access', _784 => _784.current, 'optionalCall', _785 => _785()]);
33950
+ _optionalChain([onDisconnectRef, 'access', _785 => _785.current, 'optionalCall', _786 => _786()]);
33910
33951
  }
33911
33952
  }
33912
33953
  });
@@ -33985,7 +34026,7 @@ function useJetStreamDialogSubscription({
33985
34026
  }
33986
34027
  subscriptionRef.current = handle;
33987
34028
  setIsSubscribed(true);
33988
- _optionalChain([onSubscribedRef, 'access', _786 => _786.current, 'optionalCall', _787 => _787()]);
34029
+ _optionalChain([onSubscribedRef, 'access', _787 => _787.current, 'optionalCall', _788 => _788()]);
33989
34030
  } catch (e27) {
33990
34031
  if (!cancelled) {
33991
34032
  setIsSubscribed(false);
@@ -34098,20 +34139,20 @@ function useNatsDialogSubscription({
34098
34139
  const tearDownSubscriptions = () => {
34099
34140
  subscriptionRefs.current.forEach((sub) => {
34100
34141
  try {
34101
- _optionalChain([sub, 'optionalAccess', _788 => _788.unsubscribe, 'call', _789 => _789()]);
34142
+ _optionalChain([sub, 'optionalAccess', _789 => _789.unsubscribe, 'call', _790 => _790()]);
34102
34143
  } catch (e29) {
34103
34144
  }
34104
34145
  });
34105
34146
  subscriptionRefs.current.clear();
34106
34147
  lastSubscribedDialogIdRef.current = null;
34107
- _optionalChain([abortControllerRef, 'access', _790 => _790.current, 'optionalAccess', _791 => _791.abort, 'call', _792 => _792()]);
34148
+ _optionalChain([abortControllerRef, 'access', _791 => _791.current, 'optionalAccess', _792 => _792.abort, 'call', _793 => _793()]);
34108
34149
  abortControllerRef.current = null;
34109
34150
  };
34110
34151
  const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
34111
34152
  const lifecycle = _chunkPXXS27EEcjs.startConnectionLifecycle.call(void 0, {
34112
34153
  conn: sharedConn,
34113
34154
  wsUrl,
34114
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _793 => _793.current, 'optionalCall', _794 => _794()]),
34155
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _794 => _794.current, 'optionalCall', _795 => _795()]),
34115
34156
  backoff: reconnectionBackoffRef.current,
34116
34157
  getFreshUrl: () => getNatsWsUrlRef.current(),
34117
34158
  shouldRetryOn: isDisconnectStatus,
@@ -34122,7 +34163,7 @@ function useNatsDialogSubscription({
34122
34163
  setReconnectionCount((c) => c + 1);
34123
34164
  }
34124
34165
  hadConnectionBeforeRef.current = true;
34125
- _optionalChain([onConnectRef, 'access', _795 => _795.current, 'optionalCall', _796 => _796()]);
34166
+ _optionalChain([onConnectRef, 'access', _796 => _796.current, 'optionalCall', _797 => _797()]);
34126
34167
  }
34127
34168
  if (status === "error") {
34128
34169
  console.warn("[NATS] protocol error:", evt.data);
@@ -34132,7 +34173,7 @@ function useNatsDialogSubscription({
34132
34173
  setIsConnected(false);
34133
34174
  setIsSubscribed(false);
34134
34175
  tearDownSubscriptions();
34135
- _optionalChain([onDisconnectRef, 'access', _797 => _797.current, 'optionalCall', _798 => _798()]);
34176
+ _optionalChain([onDisconnectRef, 'access', _798 => _798.current, 'optionalCall', _799 => _799()]);
34136
34177
  }
34137
34178
  }
34138
34179
  });
@@ -34163,13 +34204,13 @@ function useNatsDialogSubscription({
34163
34204
  setIsSubscribed(false);
34164
34205
  subscriptionRefs.current.forEach((sub) => {
34165
34206
  try {
34166
- _optionalChain([sub, 'optionalAccess', _799 => _799.unsubscribe, 'call', _800 => _800()]);
34207
+ _optionalChain([sub, 'optionalAccess', _800 => _800.unsubscribe, 'call', _801 => _801()]);
34167
34208
  } catch (e30) {
34168
34209
  }
34169
34210
  });
34170
34211
  subscriptionRefs.current.clear();
34171
34212
  lastSubscribedDialogIdRef.current = null;
34172
- _optionalChain([abortControllerRef, 'access', _801 => _801.current, 'optionalAccess', _802 => _802.abort, 'call', _803 => _803()]);
34213
+ _optionalChain([abortControllerRef, 'access', _802 => _802.current, 'optionalAccess', _803 => _803.abort, 'call', _804 => _804()]);
34173
34214
  abortControllerRef.current = null;
34174
34215
  }
34175
34216
  return;
@@ -34181,12 +34222,12 @@ function useNatsDialogSubscription({
34181
34222
  if (subscriptionRefs.current.size > 0) {
34182
34223
  subscriptionRefs.current.forEach((sub) => {
34183
34224
  try {
34184
- _optionalChain([sub, 'optionalAccess', _804 => _804.unsubscribe, 'call', _805 => _805()]);
34225
+ _optionalChain([sub, 'optionalAccess', _805 => _805.unsubscribe, 'call', _806 => _806()]);
34185
34226
  } catch (e31) {
34186
34227
  }
34187
34228
  });
34188
34229
  subscriptionRefs.current.clear();
34189
- _optionalChain([abortControllerRef, 'access', _806 => _806.current, 'optionalAccess', _807 => _807.abort, 'call', _808 => _808()]);
34230
+ _optionalChain([abortControllerRef, 'access', _807 => _807.current, 'optionalAccess', _808 => _808.abort, 'call', _809 => _809()]);
34190
34231
  }
34191
34232
  abortControllerRef.current = new AbortController();
34192
34233
  const abort = abortControllerRef.current;
@@ -34218,7 +34259,7 @@ function useNatsDialogSubscription({
34218
34259
  });
34219
34260
  lastSubscribedDialogIdRef.current = dialogId;
34220
34261
  setIsSubscribed(true);
34221
- _optionalChain([onSubscribedRef, 'access', _809 => _809.current, 'optionalCall', _810 => _810()]);
34262
+ _optionalChain([onSubscribedRef, 'access', _810 => _810.current, 'optionalCall', _811 => _811()]);
34222
34263
  };
34223
34264
  if (isConnectedRef.current) {
34224
34265
  createSubscriptions();
@@ -34228,7 +34269,7 @@ function useNatsDialogSubscription({
34228
34269
  abort.abort();
34229
34270
  subscriptionRefs.current.forEach((sub) => {
34230
34271
  try {
34231
- _optionalChain([sub, 'optionalAccess', _811 => _811.unsubscribe, 'call', _812 => _812()]);
34272
+ _optionalChain([sub, 'optionalAccess', _812 => _812.unsubscribe, 'call', _813 => _813()]);
34232
34273
  } catch (e33) {
34233
34274
  }
34234
34275
  });
@@ -34269,7 +34310,7 @@ function useNatsDialogSubscription({
34269
34310
  });
34270
34311
  lastSubscribedDialogIdRef.current = dialogId2;
34271
34312
  setIsSubscribed(true);
34272
- _optionalChain([onSubscribedRef, 'access', _813 => _813.current, 'optionalCall', _814 => _814()]);
34313
+ _optionalChain([onSubscribedRef, 'access', _814 => _814.current, 'optionalCall', _815 => _815()]);
34273
34314
  } else if (subscriptionRefs.current.size > 0) {
34274
34315
  setIsSubscribed(true);
34275
34316
  }
@@ -34277,10 +34318,10 @@ function useNatsDialogSubscription({
34277
34318
  return { isConnected, isSubscribed, reconnectionCount };
34278
34319
  }
34279
34320
  function buildNatsWsUrl(apiBaseUrl, options) {
34280
- const path = _optionalChain([options, 'optionalAccess', _815 => _815.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
34321
+ const path = _optionalChain([options, 'optionalAccess', _816 => _816.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
34281
34322
  const u = new URL(path, apiBaseUrl);
34282
34323
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
34283
- if (_optionalChain([options, 'optionalAccess', _816 => _816.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _817 => _817.token])) {
34324
+ if (_optionalChain([options, 'optionalAccess', _817 => _817.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _818 => _818.token])) {
34284
34325
  u.searchParams.set("authorization", options.token);
34285
34326
  }
34286
34327
  return u.toString();
@@ -34598,8 +34639,8 @@ var MessageSegmentAccumulator = class {
34598
34639
  type: "tool_execution",
34599
34640
  data: {
34600
34641
  ...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])
34642
+ toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _819 => _819.data, 'access', _820 => _820.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _821 => _821.toolTitle]))),
34643
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _822 => _822.parameters])
34603
34644
  }
34604
34645
  };
34605
34646
  if (existingIndex !== -1) {
@@ -34623,8 +34664,8 @@ var MessageSegmentAccumulator = class {
34623
34664
  if (seg.type !== "approval_batch") return seg;
34624
34665
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
34625
34666
  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]) };
34667
+ const prev = _optionalChain([seg, 'access', _823 => _823.data, 'access', _824 => _824.executions, 'optionalAccess', _825 => _825[execId]]);
34668
+ 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
34669
  matched = true;
34629
34670
  return {
34630
34671
  ...seg,
@@ -34744,10 +34785,10 @@ var MessageSegmentAccumulator = class {
34744
34785
  const segment = {
34745
34786
  type: "approval_request",
34746
34787
  data: {
34747
- command: _optionalChain([pendingApproval, 'optionalAccess', _827 => _827.command]) || "",
34748
- explanation: _optionalChain([pendingApproval, 'optionalAccess', _828 => _828.explanation]),
34788
+ command: _optionalChain([pendingApproval, 'optionalAccess', _828 => _828.command]) || "",
34789
+ explanation: _optionalChain([pendingApproval, 'optionalAccess', _829 => _829.explanation]),
34749
34790
  requestId,
34750
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _829 => _829.approvalType]) || approvalType
34791
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _830 => _830.approvalType]) || approvalType
34751
34792
  },
34752
34793
  status,
34753
34794
  onApprove: this.callbacks.onApprove,
@@ -34937,7 +34978,7 @@ function useRealtimeChunkProcessor(options) {
34937
34978
  if (initialState.escalatedApprovals) {
34938
34979
  pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
34939
34980
  initialState.escalatedApprovals.forEach((data, requestId) => {
34940
- _optionalChain([callbacks, 'access', _830 => _830.onEscalatedApproval, 'optionalCall', _831 => _831(requestId, data)]);
34981
+ _optionalChain([callbacks, 'access', _831 => _831.onEscalatedApproval, 'optionalCall', _832 => _832(requestId, data)]);
34941
34982
  });
34942
34983
  }
34943
34984
  hasEverStreamedRef.current = true;
@@ -34964,7 +35005,7 @@ function useRealtimeChunkProcessor(options) {
34964
35005
  if ((directModeFlagRef.current || sawDirectMessageRef.current) && !DIRECT_MODE_ALLOWED.has(action.action)) {
34965
35006
  if (isInStreamRef.current) {
34966
35007
  isInStreamRef.current = false;
34967
- _optionalChain([callbacks, 'access', _832 => _832.onStreamEnd, 'optionalCall', _833 => _833()]);
35008
+ _optionalChain([callbacks, 'access', _833 => _833.onStreamEnd, 'optionalCall', _834 => _834()]);
34968
35009
  accumulator.resetSegments();
34969
35010
  }
34970
35011
  return;
@@ -34973,32 +35014,32 @@ function useRealtimeChunkProcessor(options) {
34973
35014
  case "message_start":
34974
35015
  isInStreamRef.current = true;
34975
35016
  hasEverStreamedRef.current = true;
34976
- _optionalChain([callbacks, 'access', _834 => _834.onStreamStart, 'optionalCall', _835 => _835()]);
35017
+ _optionalChain([callbacks, 'access', _835 => _835.onStreamStart, 'optionalCall', _836 => _836()]);
34977
35018
  accumulator.resetSegments();
34978
35019
  break;
34979
35020
  case "message_end":
34980
35021
  isInStreamRef.current = false;
34981
- _optionalChain([callbacks, 'access', _836 => _836.onStreamEnd, 'optionalCall', _837 => _837()]);
35022
+ _optionalChain([callbacks, 'access', _837 => _837.onStreamEnd, 'optionalCall', _838 => _838()]);
34982
35023
  accumulator.resetSegments();
34983
35024
  break;
34984
35025
  case "metadata":
34985
- _optionalChain([callbacks, 'access', _838 => _838.onMetadata, 'optionalCall', _839 => _839(action)]);
35026
+ _optionalChain([callbacks, 'access', _839 => _839.onMetadata, 'optionalCall', _840 => _840(action)]);
34986
35027
  break;
34987
35028
  case "text": {
34988
35029
  const segments = accumulator.appendText(action.text);
34989
35030
  if (isInStreamRef.current || !hasEverStreamedRef.current) {
34990
- _optionalChain([callbacks, 'access', _840 => _840.onSegmentsUpdate, 'optionalCall', _841 => _841(segments)]);
35031
+ _optionalChain([callbacks, 'access', _841 => _841.onSegmentsUpdate, 'optionalCall', _842 => _842(segments)]);
34991
35032
  } else {
34992
- _optionalChain([callbacks, 'access', _842 => _842.onSegmentsUpdate, 'optionalCall', _843 => _843([{ type: "text", text: action.text }], { append: true })]);
35033
+ _optionalChain([callbacks, 'access', _843 => _843.onSegmentsUpdate, 'optionalCall', _844 => _844([{ type: "text", text: action.text }], { append: true })]);
34993
35034
  }
34994
35035
  break;
34995
35036
  }
34996
35037
  case "thinking": {
34997
35038
  const segments = accumulator.appendThinking(action.text);
34998
35039
  if (isInStreamRef.current || !hasEverStreamedRef.current) {
34999
- _optionalChain([callbacks, 'access', _844 => _844.onSegmentsUpdate, 'optionalCall', _845 => _845(segments)]);
35040
+ _optionalChain([callbacks, 'access', _845 => _845.onSegmentsUpdate, 'optionalCall', _846 => _846(segments)]);
35000
35041
  } else {
35001
- _optionalChain([callbacks, 'access', _846 => _846.onSegmentsUpdate, 'optionalCall', _847 => _847([{ type: "thinking", text: action.text }], { append: true })]);
35042
+ _optionalChain([callbacks, 'access', _847 => _847.onSegmentsUpdate, 'optionalCall', _848 => _848([{ type: "thinking", text: action.text }], { append: true })]);
35002
35043
  }
35003
35044
  break;
35004
35045
  }
@@ -35008,7 +35049,7 @@ function useRealtimeChunkProcessor(options) {
35008
35049
  break;
35009
35050
  }
35010
35051
  const segments = accumulator.addToolExecution(action.segment);
35011
- _optionalChain([callbacks, 'access', _848 => _848.onSegmentsUpdate, 'optionalCall', _849 => _849(segments)]);
35052
+ _optionalChain([callbacks, 'access', _849 => _849.onSegmentsUpdate, 'optionalCall', _850 => _850(segments)]);
35012
35053
  break;
35013
35054
  }
35014
35055
  case "approval_request": {
@@ -35022,10 +35063,10 @@ function useRealtimeChunkProcessor(options) {
35022
35063
  approvalType,
35023
35064
  status
35024
35065
  );
35025
- _optionalChain([callbacks, 'access', _850 => _850.onSegmentsUpdate, 'optionalCall', _851 => _851(segments)]);
35066
+ _optionalChain([callbacks, 'access', _851 => _851.onSegmentsUpdate, 'optionalCall', _852 => _852(segments)]);
35026
35067
  } else {
35027
35068
  pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
35028
- _optionalChain([callbacks, 'access', _852 => _852.onEscalatedApproval, 'optionalCall', _853 => _853(requestId, { command, explanation, approvalType })]);
35069
+ _optionalChain([callbacks, 'access', _853 => _853.onEscalatedApproval, 'optionalCall', _854 => _854(requestId, { command, explanation, approvalType })]);
35029
35070
  }
35030
35071
  break;
35031
35072
  }
@@ -35037,20 +35078,20 @@ function useRealtimeChunkProcessor(options) {
35037
35078
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
35038
35079
  pendingEscalatedRef.current.set(requestId, {
35039
35080
  command: summary,
35040
- explanation: _optionalChain([required, 'optionalAccess', _854 => _854.toolExplanation]),
35081
+ explanation: _optionalChain([required, 'optionalAccess', _855 => _855.toolExplanation]),
35041
35082
  approvalType,
35042
35083
  toolCalls
35043
35084
  });
35044
- _optionalChain([callbacks, 'access', _855 => _855.onEscalatedApproval, 'optionalCall', _856 => _856(requestId, {
35085
+ _optionalChain([callbacks, 'access', _856 => _856.onEscalatedApproval, 'optionalCall', _857 => _857(requestId, {
35045
35086
  command: summary,
35046
- explanation: _optionalChain([required, 'optionalAccess', _857 => _857.toolExplanation]),
35087
+ explanation: _optionalChain([required, 'optionalAccess', _858 => _858.toolExplanation]),
35047
35088
  approvalType
35048
35089
  })]);
35049
35090
  break;
35050
35091
  }
35051
35092
  if (batchApprovalsEnabled) {
35052
35093
  const segments2 = accumulator.addApprovalBatch(requestId, approvalType, toolCalls, status);
35053
- _optionalChain([callbacks, 'access', _858 => _858.onSegmentsUpdate, 'optionalCall', _859 => _859(segments2)]);
35094
+ _optionalChain([callbacks, 'access', _859 => _859.onSegmentsUpdate, 'optionalCall', _860 => _860(segments2)]);
35054
35095
  break;
35055
35096
  }
35056
35097
  let segments = accumulator.getSegments();
@@ -35064,7 +35105,7 @@ function useRealtimeChunkProcessor(options) {
35064
35105
  status
35065
35106
  );
35066
35107
  }
35067
- _optionalChain([callbacks, 'access', _860 => _860.onSegmentsUpdate, 'optionalCall', _861 => _861(segments)]);
35108
+ _optionalChain([callbacks, 'access', _861 => _861.onSegmentsUpdate, 'optionalCall', _862 => _862(segments)]);
35068
35109
  break;
35069
35110
  }
35070
35111
  case "approval_result": {
@@ -35073,7 +35114,7 @@ function useRealtimeChunkProcessor(options) {
35073
35114
  const status = approved ? "approved" : "rejected";
35074
35115
  if (escalatedData) {
35075
35116
  pendingEscalatedRef.current.delete(requestId);
35076
- _optionalChain([callbacks, 'access', _862 => _862.onEscalatedApprovalResult, 'optionalCall', _863 => _863(requestId, approved, {
35117
+ _optionalChain([callbacks, 'access', _863 => _863.onEscalatedApprovalResult, 'optionalCall', _864 => _864(requestId, approved, {
35077
35118
  command: escalatedData.command,
35078
35119
  explanation: escalatedData.explanation,
35079
35120
  approvalType: escalatedData.approvalType
@@ -35086,7 +35127,7 @@ function useRealtimeChunkProcessor(options) {
35086
35127
  escalatedData.toolCalls,
35087
35128
  status
35088
35129
  );
35089
- _optionalChain([callbacks, 'access', _864 => _864.onSegmentsUpdate, 'optionalCall', _865 => _865(segments)]);
35130
+ _optionalChain([callbacks, 'access', _865 => _865.onSegmentsUpdate, 'optionalCall', _866 => _866(segments)]);
35090
35131
  } else {
35091
35132
  let segments = accumulator.getSegments();
35092
35133
  for (const call of escalatedData.toolCalls) {
@@ -35099,7 +35140,7 @@ function useRealtimeChunkProcessor(options) {
35099
35140
  status
35100
35141
  );
35101
35142
  }
35102
- _optionalChain([callbacks, 'access', _866 => _866.onSegmentsUpdate, 'optionalCall', _867 => _867(segments)]);
35143
+ _optionalChain([callbacks, 'access', _867 => _867.onSegmentsUpdate, 'optionalCall', _868 => _868(segments)]);
35103
35144
  }
35104
35145
  } else {
35105
35146
  const segments = accumulator.addApprovalRequest(
@@ -35109,37 +35150,37 @@ function useRealtimeChunkProcessor(options) {
35109
35150
  escalatedData.approvalType,
35110
35151
  status
35111
35152
  );
35112
- _optionalChain([callbacks, 'access', _868 => _868.onSegmentsUpdate, 'optionalCall', _869 => _869(segments)]);
35153
+ _optionalChain([callbacks, 'access', _869 => _869.onSegmentsUpdate, 'optionalCall', _870 => _870(segments)]);
35113
35154
  }
35114
35155
  } else {
35115
35156
  accumulator.updateApprovalStatus(requestId, status);
35116
35157
  if (!callbacks.onApprovalResolved) {
35117
- _optionalChain([callbacks, 'access', _870 => _870.onSegmentsUpdate, 'optionalCall', _871 => _871(accumulator.getSegments())]);
35158
+ _optionalChain([callbacks, 'access', _871 => _871.onSegmentsUpdate, 'optionalCall', _872 => _872(accumulator.getSegments())]);
35118
35159
  }
35119
35160
  }
35120
- _optionalChain([callbacks, 'access', _872 => _872.onApprovalResolved, 'optionalCall', _873 => _873(requestId, status, approvalType)]);
35161
+ _optionalChain([callbacks, 'access', _873 => _873.onApprovalResolved, 'optionalCall', _874 => _874(requestId, status, approvalType)]);
35121
35162
  break;
35122
35163
  }
35123
35164
  case "error": {
35124
35165
  let message2;
35125
- if ("details" in action && _optionalChain([action, 'optionalAccess', _874 => _874.details])) {
35166
+ if ("details" in action && _optionalChain([action, 'optionalAccess', _875 => _875.details])) {
35126
35167
  try {
35127
- message2 = _optionalChain([JSON, 'access', _875 => _875.parse, 'call', _876 => _876(action.details), 'optionalAccess', _877 => _877.error, 'optionalAccess', _878 => _878.message]);
35168
+ message2 = _optionalChain([JSON, 'access', _876 => _876.parse, 'call', _877 => _877(action.details), 'optionalAccess', _878 => _878.error, 'optionalAccess', _879 => _879.message]);
35128
35169
  } catch (e35) {
35129
35170
  message2 = action.details;
35130
35171
  }
35131
35172
  }
35132
35173
  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)]);
35174
+ _optionalChain([callbacks, 'access', _880 => _880.onSegmentsUpdate, 'optionalCall', _881 => _881(segments)]);
35175
+ _optionalChain([callbacks, 'access', _882 => _882.onError, 'optionalCall', _883 => _883(action.error, message2)]);
35135
35176
  break;
35136
35177
  }
35137
35178
  case "system": {
35138
- _optionalChain([callbacks, 'access', _883 => _883.onSystemMessage, 'optionalCall', _884 => _884(action.text)]);
35179
+ _optionalChain([callbacks, 'access', _884 => _884.onSystemMessage, 'optionalCall', _885 => _885(action.text)]);
35139
35180
  break;
35140
35181
  }
35141
35182
  case "direct_message": {
35142
- _optionalChain([callbacks, 'access', _885 => _885.onDirectMessage, 'optionalCall', _886 => _886(action.text, {
35183
+ _optionalChain([callbacks, 'access', _886 => _886.onDirectMessage, 'optionalCall', _887 => _887(action.text, {
35143
35184
  ownerType: action.ownerType,
35144
35185
  displayName: action.displayName,
35145
35186
  userId: action.userId
@@ -35147,29 +35188,29 @@ function useRealtimeChunkProcessor(options) {
35147
35188
  break;
35148
35189
  }
35149
35190
  case "message_request":
35150
- _optionalChain([callbacks, 'access', _887 => _887.onUserMessage, 'optionalCall', _888 => _888(action.text, {
35191
+ _optionalChain([callbacks, 'access', _888 => _888.onUserMessage, 'optionalCall', _889 => _889(action.text, {
35151
35192
  ownerType: action.ownerType,
35152
35193
  displayName: action.displayName,
35153
35194
  userId: action.userId
35154
35195
  })]);
35155
35196
  break;
35156
35197
  case "token_usage":
35157
- _optionalChain([callbacks, 'access', _889 => _889.onTokenUsage, 'optionalCall', _890 => _890(action.data)]);
35198
+ _optionalChain([callbacks, 'access', _890 => _890.onTokenUsage, 'optionalCall', _891 => _891(action.data)]);
35158
35199
  break;
35159
35200
  case "context_compaction_start": {
35160
35201
  const standalone = !isInStreamRef.current;
35161
35202
  const segments = accumulator.addContextCompaction();
35162
- _optionalChain([callbacks, 'access', _891 => _891.onSegmentsUpdate, 'optionalCall', _892 => _892(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
35203
+ _optionalChain([callbacks, 'access', _892 => _892.onSegmentsUpdate, 'optionalCall', _893 => _893(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
35163
35204
  break;
35164
35205
  }
35165
35206
  case "context_compaction_end": {
35166
35207
  const standalone = !isInStreamRef.current;
35167
35208
  const segments = accumulator.completeContextCompaction(action.summary);
35168
- _optionalChain([callbacks, 'access', _893 => _893.onSegmentsUpdate, 'optionalCall', _894 => _894(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
35209
+ _optionalChain([callbacks, 'access', _894 => _894.onSegmentsUpdate, 'optionalCall', _895 => _895(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
35169
35210
  break;
35170
35211
  }
35171
35212
  case "dialog_closed":
35172
- _optionalChain([callbacks, 'access', _895 => _895.onDialogClosed, 'optionalCall', _896 => _896()]);
35213
+ _optionalChain([callbacks, 'access', _896 => _896.onDialogClosed, 'optionalCall', _897 => _897()]);
35173
35214
  break;
35174
35215
  default:
35175
35216
  break;
@@ -35231,7 +35272,7 @@ function useSlashCommands(prefix, commandsUrl) {
35231
35272
  const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
35232
35273
  if (!cancelled) setCommands(next);
35233
35274
  } catch (err) {
35234
- if (!cancelled && _optionalChain([err, 'optionalAccess', _897 => _897.name]) !== "AbortError") {
35275
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _898 => _898.name]) !== "AbortError") {
35235
35276
  console.warn("[use-slash-commands] fetch failed:", err);
35236
35277
  }
35237
35278
  } finally {
@@ -35250,7 +35291,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
35250
35291
  const query = _reactquery.useQuery.call(void 0, {
35251
35292
  queryKey: ["chat-slash-commands", commandsUrl],
35252
35293
  queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
35253
- enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _898 => _898.enabled]), () => ( true)),
35294
+ enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _899 => _899.enabled]), () => ( true)),
35254
35295
  staleTime: Infinity,
35255
35296
  gcTime: Infinity
35256
35297
  });
@@ -35271,7 +35312,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
35271
35312
  var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
35272
35313
  function uploadWithProgress(url, file, token, onProgress, signal) {
35273
35314
  return new Promise((resolve, reject) => {
35274
- if (_optionalChain([signal, 'optionalAccess', _899 => _899.aborted])) {
35315
+ if (_optionalChain([signal, 'optionalAccess', _900 => _900.aborted])) {
35275
35316
  reject(new Error("Upload cancelled"));
35276
35317
  return;
35277
35318
  }
@@ -35285,7 +35326,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
35285
35326
  xhr.removeEventListener("error", handleError);
35286
35327
  xhr.removeEventListener("abort", handleAbort);
35287
35328
  xhr.removeEventListener("timeout", handleTimeout);
35288
- _optionalChain([signal, 'optionalAccess', _900 => _900.removeEventListener, 'call', _901 => _901("abort", handleSignalAbort)]);
35329
+ _optionalChain([signal, 'optionalAccess', _901 => _901.removeEventListener, 'call', _902 => _902("abort", handleSignalAbort)]);
35289
35330
  if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
35290
35331
  };
35291
35332
  const handleProgress = (event) => {
@@ -35321,7 +35362,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
35321
35362
  const handleSignalAbort = () => {
35322
35363
  xhr.abort();
35323
35364
  };
35324
- _optionalChain([signal, 'optionalAccess', _902 => _902.addEventListener, 'call', _903 => _903("abort", handleSignalAbort, { once: true })]);
35365
+ _optionalChain([signal, 'optionalAccess', _903 => _903.addEventListener, 'call', _904 => _904("abort", handleSignalAbort, { once: true })]);
35325
35366
  xhr.upload.addEventListener("progress", handleProgress);
35326
35367
  xhr.addEventListener("load", handleLoad);
35327
35368
  xhr.addEventListener("error", handleError);
@@ -35365,12 +35406,12 @@ function useChatAttachments() {
35365
35406
  try {
35366
35407
  sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
35367
35408
  } catch (err) {
35368
- if (_optionalChain([ctrl, 'optionalAccess', _904 => _904.signal, 'access', _905 => _905.aborted])) return;
35409
+ if (_optionalChain([ctrl, 'optionalAccess', _905 => _905.signal, 'access', _906 => _906.aborted])) return;
35369
35410
  throw new Error(
35370
35411
  `Could not read file content: ${err instanceof Error ? err.message : String(err)}`
35371
35412
  );
35372
35413
  }
35373
- if (_optionalChain([ctrl, 'optionalAccess', _906 => _906.signal, 'access', _907 => _907.aborted])) return;
35414
+ if (_optionalChain([ctrl, 'optionalAccess', _907 => _907.signal, 'access', _908 => _908.aborted])) return;
35374
35415
  if (!sniffed) {
35375
35416
  throw new Error("Unrecognized file format");
35376
35417
  }
@@ -35384,7 +35425,7 @@ function useChatAttachments() {
35384
35425
  const urlResp = await embedAuthedFetch(uploadUrlEndpoint, {
35385
35426
  method: "POST",
35386
35427
  headers: { "Content-Type": "application/json" },
35387
- signal: _optionalChain([ctrl, 'optionalAccess', _908 => _908.signal]),
35428
+ signal: _optionalChain([ctrl, 'optionalAccess', _909 => _909.signal]),
35388
35429
  body: JSON.stringify({
35389
35430
  fileName: att.file.name,
35390
35431
  // Pass the SNIFFED MIME (not `file.type`, which can be a
@@ -35410,9 +35451,9 @@ function useChatAttachments() {
35410
35451
  (pct) => {
35411
35452
  updateOne(att.id, { progress: pct });
35412
35453
  },
35413
- _optionalChain([ctrl, 'optionalAccess', _909 => _909.signal])
35454
+ _optionalChain([ctrl, 'optionalAccess', _910 => _910.signal])
35414
35455
  );
35415
- if (_optionalChain([ctrl, 'optionalAccess', _910 => _910.signal, 'access', _911 => _911.aborted])) return;
35456
+ if (_optionalChain([ctrl, 'optionalAccess', _911 => _911.signal, 'access', _912 => _912.aborted])) return;
35416
35457
  updateOne(att.id, {
35417
35458
  status: "ready",
35418
35459
  progress: 100,
@@ -35420,7 +35461,7 @@ function useChatAttachments() {
35420
35461
  viewToken: mintData.viewToken
35421
35462
  });
35422
35463
  } catch (err) {
35423
- if (_optionalChain([ctrl, 'optionalAccess', _912 => _912.signal, 'access', _913 => _913.aborted])) return;
35464
+ if (_optionalChain([ctrl, 'optionalAccess', _913 => _913.signal, 'access', _914 => _914.aborted])) return;
35424
35465
  const message2 = err instanceof Error ? err.message : String(err);
35425
35466
  updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
35426
35467
  } finally {
@@ -35571,7 +35612,7 @@ var ANON_DEFAULTS = {
35571
35612
  function useResolveChatIdentity(enabled) {
35572
35613
  const runtime = _chunkMEAR2WHScjs.useRequiredChatRuntime.call(void 0, );
35573
35614
  const url = runtime.endpoints.identityUrl;
35574
- const proxyEmail = _nullishCoalesce(_optionalChain([getEmbedProxyAuth, 'call', _914 => _914(), 'optionalAccess', _915 => _915.email]), () => ( null));
35615
+ const proxyEmail = _nullishCoalesce(_optionalChain([getEmbedProxyAuth, 'call', _915 => _915(), 'optionalAccess', _916 => _916.email]), () => ( null));
35575
35616
  const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
35576
35617
  const [isLoading, setIsLoading] = _react.useState.call(void 0, enabled);
35577
35618
  _react.useEffect.call(void 0, () => {
@@ -35659,7 +35700,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
35659
35700
  yield chunk;
35660
35701
  }
35661
35702
  } catch (err) {
35662
- if (_optionalChain([err, 'optionalAccess', _916 => _916.name]) === "AbortError" || ctrl.signal.aborted) {
35703
+ if (_optionalChain([err, 'optionalAccess', _917 => _917.name]) === "AbortError" || ctrl.signal.aborted) {
35663
35704
  return;
35664
35705
  }
35665
35706
  const errorMessage = err instanceof Error ? err.message : "An error occurred";
@@ -35710,7 +35751,7 @@ function useChat({
35710
35751
  const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
35711
35752
  onMessagesChangeRef.current = onMessagesChange;
35712
35753
  _react.useEffect.call(void 0, () => {
35713
- _optionalChain([onMessagesChangeRef, 'access', _917 => _917.current, 'optionalCall', _918 => _918(messages)]);
35754
+ _optionalChain([onMessagesChangeRef, 'access', _918 => _918.current, 'optionalCall', _919 => _919(messages)]);
35714
35755
  }, [messages]);
35715
35756
  const {
35716
35757
  streamMessage,
@@ -35747,7 +35788,7 @@ function useChat({
35747
35788
  name: "You",
35748
35789
  content: text,
35749
35790
  timestamp: /* @__PURE__ */ new Date(),
35750
- ..._optionalChain([options, 'optionalAccess', _919 => _919.hidden]) ? { hidden: true } : {}
35791
+ ..._optionalChain([options, 'optionalAccess', _920 => _920.hidden]) ? { hidden: true } : {}
35751
35792
  };
35752
35793
  addMessage(userMessage);
35753
35794
  setIsTyping(true);
@@ -35809,7 +35850,7 @@ function useChat({
35809
35850
  currentTextSegment = "";
35810
35851
  }
35811
35852
  const seg = segment;
35812
- const proposalId = _optionalChain([seg, 'access', _920 => _920.data, 'optionalAccess', _921 => _921.requestId]);
35853
+ const proposalId = _optionalChain([seg, 'access', _921 => _921.data, 'optionalAccess', _922 => _922.requestId]);
35813
35854
  const updateApprovalMessage = (transform) => {
35814
35855
  setMessages((prev) => {
35815
35856
  for (let i = prev.length - 1; i >= 0; i--) {
@@ -35818,7 +35859,7 @@ function useChat({
35818
35859
  if (!Array.isArray(m.content)) continue;
35819
35860
  const segments = m.content;
35820
35861
  const hasMatch = segments.some(
35821
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _922 => _922.data, 'optionalAccess', _923 => _923.requestId]) === proposalId
35862
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _923 => _923.data, 'optionalAccess', _924 => _924.requestId]) === proposalId
35822
35863
  );
35823
35864
  if (!hasMatch) continue;
35824
35865
  const next = [...prev];
@@ -35860,11 +35901,11 @@ function useChat({
35860
35901
  if (!Array.isArray(m.content)) continue;
35861
35902
  const segments = m.content;
35862
35903
  const hasMatch = segments.some(
35863
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _924 => _924.data, 'optionalAccess', _925 => _925.requestId]) === decision.proposalId
35904
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _925 => _925.data, 'optionalAccess', _926 => _926.requestId]) === decision.proposalId
35864
35905
  );
35865
35906
  if (!hasMatch) continue;
35866
35907
  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
35908
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _927 => _927.data, 'optionalAccess', _928 => _928.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
35868
35909
  );
35869
35910
  const next = [...prev];
35870
35911
  next[i] = { ...m, content: flipped };
@@ -36026,8 +36067,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36026
36067
  })),
36027
36068
  { role: "user", content: message2 }
36028
36069
  ];
36029
- const targetPath = _optionalChain([extra, 'optionalAccess', _928 => _928.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
36030
- const requestBody = _optionalChain([extra, 'optionalAccess', _929 => _929.approvalAction]) ? {
36070
+ const targetPath = _optionalChain([extra, 'optionalAccess', _929 => _929.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
36071
+ const requestBody = _optionalChain([extra, 'optionalAccess', _930 => _930.approvalAction]) ? {
36031
36072
  proposal_id: extra.approvalAction.proposalId,
36032
36073
  action: extra.approvalAction.action,
36033
36074
  messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
@@ -36036,8 +36077,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36036
36077
  }))
36037
36078
  } : {
36038
36079
  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 } : {}
36080
+ ..._optionalChain([extra, 'optionalAccess', _931 => _931.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
36081
+ ..._optionalChain([extra, 'optionalAccess', _932 => _932.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
36041
36082
  };
36042
36083
  const response = await embedAuthedFetch(targetPath, {
36043
36084
  method: "POST",
@@ -36047,7 +36088,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36047
36088
  if (!response.ok) {
36048
36089
  throw new Error(`Chat request failed: ${response.status}`);
36049
36090
  }
36050
- const reader = _optionalChain([response, 'access', _932 => _932.body, 'optionalAccess', _933 => _933.getReader, 'call', _934 => _934()]);
36091
+ const reader = _optionalChain([response, 'access', _933 => _933.body, 'optionalAccess', _934 => _934.getReader, 'call', _935 => _935()]);
36051
36092
  if (!reader) throw new Error("No response body");
36052
36093
  const decoder = new TextDecoder();
36053
36094
  let buffer = "";
@@ -36130,7 +36171,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36130
36171
  const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
36131
36172
  const result = _nullishCoalesce(meta.result, () => ( null));
36132
36173
  const card = _nullishCoalesce(meta.card, () => ( null));
36133
- if (_optionalChain([card, 'optionalAccess', _935 => _935.ref, 'optionalAccess', _936 => _936.id]) && _optionalChain([card, 'optionalAccess', _937 => _937.type])) {
36174
+ if (_optionalChain([card, 'optionalAccess', _936 => _936.ref, 'optionalAccess', _937 => _937.id]) && _optionalChain([card, 'optionalAccess', _938 => _938.type])) {
36134
36175
  const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
36135
36176
  const key = buildChatRefKey(card.type, card.ref.id);
36136
36177
  refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
@@ -36143,8 +36184,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
36143
36184
  willAutoContinue: meta.willAutoContinue === true,
36144
36185
  ...toolName ? { toolName } : {},
36145
36186
  ...result ? { result } : {},
36146
- ..._optionalChain([card, 'optionalAccess', _938 => _938.marker]) ? { marker: card.marker } : {},
36147
- ..._optionalChain([card, 'optionalAccess', _939 => _939.ref]) ? { cardRef: card.ref } : {},
36187
+ ..._optionalChain([card, 'optionalAccess', _939 => _939.marker]) ? { marker: card.marker } : {},
36188
+ ..._optionalChain([card, 'optionalAccess', _940 => _940.ref]) ? { cardRef: card.ref } : {},
36148
36189
  ...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
36149
36190
  proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
36150
36191
  };
@@ -36263,7 +36304,7 @@ var DEFAULT_CHAT_SOURCE = "embed";
36263
36304
  var chatStorageKey = (source) => {
36264
36305
  const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
36265
36306
  const auth = getEmbedProxyAuth();
36266
- if (_optionalChain([auth, 'optionalAccess', _940 => _940.email])) {
36307
+ if (_optionalChain([auth, 'optionalAccess', _941 => _941.email])) {
36267
36308
  return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
36268
36309
  }
36269
36310
  return base;
@@ -36318,7 +36359,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
36318
36359
  const { active = true } = runtimeOptions;
36319
36360
  const runtime = _chunkMEAR2WHScjs.useRequiredChatRuntime.call(void 0, );
36320
36361
  const source = runtime.source || DEFAULT_CHAT_SOURCE;
36321
- const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _941 => _941.tableIdForDocumentType]), () => ( _chunk7MNBE7XAcjs.defaultTableIdForDocumentType));
36362
+ const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _942 => _942.tableIdForDocumentType]), () => ( _chunk7MNBE7XAcjs.defaultTableIdForDocumentType));
36322
36363
  const persistedRef = _react.useRef.call(void 0, null);
36323
36364
  if (persistedRef.current === null) {
36324
36365
  pruneStaleChatStorage(source);
@@ -36423,7 +36464,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
36423
36464
  const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
36424
36465
  sources = sourcesMapRef.current.get(lookupIdx);
36425
36466
  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));
36467
+ scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _943 => _943.current, 'access', _944 => _944.get, 'call', _945 => _945(lookupIdx), 'optionalAccess', _946 => _946.scrollAnchor]), () => ( void 0));
36427
36468
  }
36428
36469
  return {
36429
36470
  id: m.id,
@@ -36471,7 +36512,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
36471
36512
  );
36472
36513
  return;
36473
36514
  }
36474
- const refSlug = typeof _optionalChain([reference, 'access', _946 => _946.metadata, 'optionalAccess', _947 => _947.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
36515
+ const refSlug = typeof _optionalChain([reference, 'access', _947 => _947.metadata, 'optionalAccess', _948 => _948.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
36475
36516
  const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
36476
36517
  const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
36477
36518
  const text = `/${cmdId} display "${escaped}"`;
@@ -36543,18 +36584,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
36543
36584
  clearMessages,
36544
36585
  streamingPhase,
36545
36586
  /** 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)),
36587
+ currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _949 => _949.provider]), () => ( null)),
36588
+ currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _950 => _950.modelLabel]), () => ( null)),
36589
+ currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _951 => _951.contextWindowMaxTokens]), () => ( null)),
36549
36590
  /** Input tokens (known after server's message_start frame; null until). */
36550
- currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _951 => _951.inputTokens]), () => ( null)),
36591
+ currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _952 => _952.inputTokens]), () => ( null)),
36551
36592
  /** Output tokens (known only after server's trailing usage frame). */
36552
- currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _952 => _952.outputTokens]), () => ( null)),
36593
+ currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _953 => _953.outputTokens]), () => ( null)),
36553
36594
  /** Cache hit % (read / total-input × 100). null during streaming. */
36554
- currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _953 => _953.cacheHitRatePct]), () => ( null)),
36595
+ currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _954 => _954.cacheHitRatePct]), () => ( null)),
36555
36596
  /** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
36556
36597
  * token counts). null until the trailing usage frame lands. */
36557
- currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _954 => _954.breakdown]), () => ( null)),
36598
+ currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _955 => _955.breakdown]), () => ( null)),
36558
36599
  // ─── Dialog management — stubs for v1 ────────────────────────────────
36559
36600
  // Guide mode currently keeps its history in `localStorage` opaquely
36560
36601
  // under the hood (`runtime.source` namespaced key). Surfacing that
@@ -36612,15 +36653,15 @@ var noopRejectRequest = async (_id, _reason) => {
36612
36653
 
36613
36654
  // src/components/chat/utils/process-historical-messages.ts
36614
36655
  function getOwnerDisplayName(owner) {
36615
- if (_optionalChain([owner, 'optionalAccess', _955 => _955.type]) === OWNER_TYPE.ADMIN && owner.user) {
36656
+ if (_optionalChain([owner, 'optionalAccess', _956 => _956.type]) === OWNER_TYPE.ADMIN && owner.user) {
36616
36657
  const { firstName, lastName } = owner.user;
36617
36658
  const name = [firstName, lastName].filter(Boolean).join(" ");
36618
36659
  if (name) return name;
36619
36660
  }
36620
- return _optionalChain([owner, 'optionalAccess', _956 => _956.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
36661
+ return _optionalChain([owner, 'optionalAccess', _957 => _957.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
36621
36662
  }
36622
36663
  function getOwnerAvatar(owner) {
36623
- return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _957 => _957.user, 'optionalAccess', _958 => _958.image, 'optionalAccess', _959 => _959.imageUrl]), () => ( void 0));
36664
+ return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _958 => _958.user, 'optionalAccess', _959 => _959.image, 'optionalAccess', _960 => _960.imageUrl]), () => ( void 0));
36624
36665
  }
36625
36666
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
36626
36667
  messageDataArray.forEach((data) => {
@@ -36683,10 +36724,10 @@ function processHistoricalMessages(messages, options = {}) {
36683
36724
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
36684
36725
  return;
36685
36726
  }
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;
36727
+ 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
36728
  if (isUserMessage) {
36688
36729
  flushAssistantMessage();
36689
- const userAuthorType = _optionalChain([msg, 'access', _964 => _964.owner, 'optionalAccess', _965 => _965.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
36730
+ const userAuthorType = _optionalChain([msg, 'access', _965 => _965.owner, 'optionalAccess', _966 => _966.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
36690
36731
  messageDataArray.forEach((data) => {
36691
36732
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
36692
36733
  processedMessages.push({
@@ -36711,7 +36752,7 @@ function processHistoricalMessages(messages, options = {}) {
36711
36752
  });
36712
36753
  const nextMsg = messages[index + 1];
36713
36754
  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);
36755
+ 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
36756
  if (isLastMessage || nextIsFromUser) {
36716
36757
  flushAssistantMessage();
36717
36758
  }
@@ -36821,7 +36862,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
36821
36862
  }
36822
36863
  }
36823
36864
  } else {
36824
- _optionalChain([escalatedApprovals, 'optionalAccess', _970 => _970.set, 'call', _971 => _971(data.approvalRequestId, {
36865
+ _optionalChain([escalatedApprovals, 'optionalAccess', _971 => _971.set, 'call', _972 => _972(data.approvalRequestId, {
36825
36866
  command: data.command || "",
36826
36867
  explanation: data.explanation,
36827
36868
  approvalType,
@@ -36834,8 +36875,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
36834
36875
  if ("approvalRequestId" in data && data.approvalRequestId) {
36835
36876
  const existingStatus = approvalStatuses[data.approvalRequestId];
36836
36877
  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) {
36878
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _973 => _973.get, 'call', _974 => _974(data.approvalRequestId)]);
36879
+ if (_optionalChain([escalatedData, 'optionalAccess', _975 => _975.toolCalls]) && escalatedData.toolCalls.length > 0) {
36839
36880
  if (batchApprovalsEnabled) {
36840
36881
  accumulator.addApprovalBatch(
36841
36882
  data.approvalRequestId,
@@ -36855,7 +36896,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
36855
36896
  );
36856
36897
  }
36857
36898
  }
36858
- _optionalChain([escalatedApprovals, 'optionalAccess', _975 => _975.delete, 'call', _976 => _976(data.approvalRequestId)]);
36899
+ _optionalChain([escalatedApprovals, 'optionalAccess', _976 => _976.delete, 'call', _977 => _977(data.approvalRequestId)]);
36859
36900
  break;
36860
36901
  }
36861
36902
  if (escalatedData) {
@@ -36864,7 +36905,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
36864
36905
  explanation: escalatedData.explanation,
36865
36906
  approvalType: escalatedData.approvalType
36866
36907
  });
36867
- _optionalChain([escalatedApprovals, 'optionalAccess', _977 => _977.delete, 'call', _978 => _978(data.approvalRequestId)]);
36908
+ _optionalChain([escalatedApprovals, 'optionalAccess', _978 => _978.delete, 'call', _979 => _979(data.approvalRequestId)]);
36868
36909
  }
36869
36910
  const before = accumulator.getSegments();
36870
36911
  const after = accumulator.updateApprovalStatus(data.approvalRequestId, status);
@@ -36880,9 +36921,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
36880
36921
  case MESSAGE_TYPE.ERROR:
36881
36922
  if ("error" in data) {
36882
36923
  let message2;
36883
- if ("details" in data && _optionalChain([data, 'optionalAccess', _979 => _979.details])) {
36924
+ if ("details" in data && _optionalChain([data, 'optionalAccess', _980 => _980.details])) {
36884
36925
  try {
36885
- message2 = _optionalChain([JSON, 'access', _980 => _980.parse, 'call', _981 => _981(data.details), 'optionalAccess', _982 => _982.error, 'optionalAccess', _983 => _983.message]);
36926
+ message2 = _optionalChain([JSON, 'access', _981 => _981.parse, 'call', _982 => _982(data.details), 'optionalAccess', _983 => _983.error, 'optionalAccess', _984 => _984.message]);
36886
36927
  } catch (e42) {
36887
36928
  message2 = data.details;
36888
36929
  }
@@ -36965,10 +37006,10 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
36965
37006
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
36966
37007
  return;
36967
37008
  }
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;
37009
+ 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
37010
  if (isUserMessage) {
36970
37011
  flushAssistantMessage();
36971
- const userAuthorType = _optionalChain([msg, 'access', _988 => _988.owner, 'optionalAccess', _989 => _989.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
37012
+ const userAuthorType = _optionalChain([msg, 'access', _989 => _989.owner, 'optionalAccess', _990 => _990.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
36972
37013
  messageDataArray.forEach((data) => {
36973
37014
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
36974
37015
  processedMessages.push({
@@ -36993,7 +37034,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
36993
37034
  });
36994
37035
  const nextMsg = messages[index + 1];
36995
37036
  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);
37037
+ 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
37038
  if (isLastMessage || nextIsFromUser) {
36998
37039
  flushAssistantMessage();
36999
37040
  }
@@ -37331,7 +37372,7 @@ function useNatsChatAdapter(config, options = {}) {
37331
37372
  }, [active, fetchDialogs, loadDialogsPage]);
37332
37373
  const sendMessage = _react.useCallback.call(void 0,
37333
37374
  async (text, sendOptions) => {
37334
- const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _994 => _994.hidden]), () => ( false));
37375
+ const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _995 => _995.hidden]), () => ( false));
37335
37376
  setMessages((prev) => [
37336
37377
  ...prev,
37337
37378
  {
@@ -37495,11 +37536,11 @@ function useNatsChatAdapter(config, options = {}) {
37495
37536
  // Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
37496
37537
  // contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
37497
37538
  // 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)),
37539
+ currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _996 => _996.provider]), () => ( modelProvider)), () => ( null)),
37540
+ currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _997 => _997.modelLabel]), () => ( modelLabel)), () => ( null)),
37541
+ currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _998 => _998.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _999 => _999.contextWindowMaxTokens]))), () => ( null)),
37542
+ currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1000 => _1000.inputTokensSize]), () => ( null)),
37543
+ currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1001 => _1001.outputTokensSize]), () => ( null)),
37503
37544
  currentCacheHitRatePct: null,
37504
37545
  currentUsageBreakdown: null,
37505
37546
  // Dialog management
@@ -37747,7 +37788,7 @@ function extractIncompleteMessageState(lastMessage) {
37747
37788
  break;
37748
37789
  case "approval_batch": {
37749
37790
  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"
37791
+ (c) => _optionalChain([segment, 'access', _1002 => _1002.data, 'access', _1003 => _1003.executions, 'optionalAccess', _1004 => _1004[c.toolExecutionRequestId], 'optionalAccess', _1005 => _1005.status]) === "done"
37751
37792
  );
37752
37793
  if (segment.status !== "rejected" && !allDone) {
37753
37794
  hasIncompleteState = true;
@@ -37806,20 +37847,20 @@ function mergeHistoryWithRealtime(input) {
37806
37847
  const seqCoverageKnown = realtimeSeenStreamSeq > 0 && historyMaxStreamSeq > 0;
37807
37848
  const historyCoversRealtime = seqCoverageKnown ? historyMaxStreamSeq >= realtimeSeenStreamSeq : null;
37808
37849
  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;
37850
+ const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1006 => _1006.role]) === "assistant" ? trailing : null;
37851
+ 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
37852
  let processedToUse = processedHistory;
37812
37853
  const pinnedSyntheticIds = /* @__PURE__ */ new Set();
37813
37854
  const droppedSyntheticIds = /* @__PURE__ */ new Set();
37814
37855
  if (historyBatchId) {
37815
37856
  const batchTwins = existingMessages.filter(
37816
37857
  (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
37858
+ (s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1012 => _1012.data, 'optionalAccess', _1013 => _1013.approvalRequestId]) === historyBatchId
37818
37859
  )
37819
37860
  );
37820
37861
  const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
37821
37862
  if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
37822
- const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1013 => _1013.content])) ? historyTrailingAssistant.content.length : 0;
37863
+ const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1014 => _1014.content])) ? historyTrailingAssistant.content.length : 0;
37823
37864
  const realtimeSize = existingWithSameBatch.content.length;
37824
37865
  if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
37825
37866
  processedToUse = processedHistory.slice(0, -1);
@@ -37833,13 +37874,13 @@ function mergeHistoryWithRealtime(input) {
37833
37874
  if (pinnedSyntheticIds.has(m.id)) return true;
37834
37875
  if (droppedSyntheticIds.has(m.id)) return false;
37835
37876
  if (processedIds.has(m.id)) return false;
37836
- if (_optionalChain([rawHistoryIds, 'optionalAccess', _1014 => _1014.has, 'call', _1015 => _1015(m.id)])) return false;
37877
+ if (_optionalChain([rawHistoryIds, 'optionalAccess', _1015 => _1015.has, 'call', _1016 => _1016(m.id)])) return false;
37837
37878
  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;
37879
+ const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1017 => _1017.timestamp, 'optionalAccess', _1018 => _1018.getTime, 'call', _1019 => _1019()]), () => ( 0))) <= historyFetchedAt;
37839
37880
  return !(canBeInSnapshot && processedToUse.some((pm) => pm.role === "user" && pm.content === m.content));
37840
37881
  }
37841
37882
  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;
37883
+ const covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1020 => _1020.timestamp, 'optionalAccess', _1021 => _1021.getTime, 'call', _1022 => _1022()]), () => ( 0))) <= historyFetchedAt;
37843
37884
  if (covered) return false;
37844
37885
  }
37845
37886
  return true;
@@ -38059,7 +38100,7 @@ function useChatDialogManager({
38059
38100
  const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
38060
38101
  if (restoreTarget) {
38061
38102
  try {
38062
- await _optionalChain([unarchiveDialog, 'optionalCall', _1022 => _1022(restoreTarget.id)]);
38103
+ await _optionalChain([unarchiveDialog, 'optionalCall', _1023 => _1023(restoreTarget.id)]);
38063
38104
  } catch (err) {
38064
38105
  console.error("[useChatDialogManager] unarchive failed:", err);
38065
38106
  return;
@@ -38458,7 +38499,7 @@ function EmbeddableChatInner({
38458
38499
  }),
38459
38500
  [commandsUrl]
38460
38501
  );
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;
38502
+ 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
38503
  const effectiveModes = _react.useMemo.call(void 0, () => {
38463
38504
  if (modes) return modes;
38464
38505
  const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
@@ -38467,17 +38508,17 @@ function EmbeddableChatInner({
38467
38508
  const mingoCaps = _react.useMemo.call(void 0, () => {
38468
38509
  if (mingoState) {
38469
38510
  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])
38511
+ canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1033 => _1033.canRename]), () => ( false)),
38512
+ canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1034 => _1034.canArchive]), () => ( false)),
38513
+ fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1035 => _1035.fetchArchivedDialogs]),
38514
+ unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1036 => _1036.unarchiveDialog])
38474
38515
  };
38475
38516
  }
38476
38517
  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])
38518
+ canRename: !!_optionalChain([effectiveModes, 'access', _1037 => _1037.mingo, 'optionalAccess', _1038 => _1038.renameDialog]),
38519
+ canArchive: !!_optionalChain([effectiveModes, 'access', _1039 => _1039.mingo, 'optionalAccess', _1040 => _1040.archiveDialog]),
38520
+ fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1041 => _1041.mingo, 'optionalAccess', _1042 => _1042.fetchArchivedDialogs]),
38521
+ unarchiveDialog: _optionalChain([effectiveModes, 'access', _1043 => _1043.mingo, 'optionalAccess', _1044 => _1044.unarchiveDialog])
38481
38522
  };
38482
38523
  }, [mingoState, mingoDialogCapabilities, effectiveModes]);
38483
38524
  const hasMingoMode = !!effectiveModes.mingo || !!mingoState;
@@ -38489,7 +38530,7 @@ function EmbeddableChatInner({
38489
38530
  if (controlledActiveMode === void 0) {
38490
38531
  setUncontrolledActiveMode(next);
38491
38532
  }
38492
- _optionalChain([onActiveModeChange, 'optionalCall', _1044 => _1044(next)]);
38533
+ _optionalChain([onActiveModeChange, 'optionalCall', _1045 => _1045(next)]);
38493
38534
  },
38494
38535
  [controlledActiveMode, onActiveModeChange]
38495
38536
  );
@@ -38696,9 +38737,9 @@ function EmbeddableChatInner({
38696
38737
  const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
38697
38738
  const lastSources = _react.useMemo.call(void 0, () => {
38698
38739
  if (chatLoading) return void 0;
38699
- const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1045 => _1045.sources]);
38740
+ const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1046 => _1046.sources]);
38700
38741
  if (!sources || sources.length === 0) return void 0;
38701
- const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1046 => _1046.content]) || "";
38742
+ const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1047 => _1047.content]) || "";
38702
38743
  const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
38703
38744
  (m) => parseInt(m[1], 10)
38704
38745
  );
@@ -38745,7 +38786,7 @@ function EmbeddableChatInner({
38745
38786
  ChatPanelHeader,
38746
38787
  {
38747
38788
  showBack: hasConversation || guideCanReturnToMingo,
38748
- title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1047 => _1047.title]) || "New Chat" : isGuideEmpty ? "Mingo Guide" : "Current Chats",
38789
+ title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1048 => _1048.title]) || "New Chat" : isGuideEmpty ? "Mingo Guide" : "Current Chats",
38749
38790
  backAriaLabel: hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo",
38750
38791
  isArchivedView: isViewingArchived,
38751
38792
  onBack: hasConversation ? handleBack : () => handleActiveModeChange("mingo"),
@@ -38850,10 +38891,10 @@ function EmbeddableChatInner({
38850
38891
  subtitle: _nullishCoalesce(emptyStateGreeting, () => ( void 0)),
38851
38892
  ...guideWelcome,
38852
38893
  onQuickAction: (action) => {
38853
- _optionalChain([chatInputRef, 'access', _1048 => _1048.current, 'optionalAccess', _1049 => _1049.setValue, 'call', _1050 => _1050(
38894
+ _optionalChain([chatInputRef, 'access', _1049 => _1049.current, 'optionalAccess', _1050 => _1050.setValue, 'call', _1051 => _1051(
38854
38895
  _nullishCoalesce(action.prompt, () => ( action.label))
38855
38896
  )]);
38856
- _optionalChain([chatInputRef, 'access', _1051 => _1051.current, 'optionalAccess', _1052 => _1052.focus, 'call', _1053 => _1053()]);
38897
+ _optionalChain([chatInputRef, 'access', _1052 => _1052.current, 'optionalAccess', _1053 => _1053.focus, 'call', _1054 => _1054()]);
38857
38898
  },
38858
38899
  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
38900
  !commandsLoaded && chipCommands.length === 0 && SKELETON_ROW_VARIANTS.map((variant, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -39673,5 +39714,7 @@ function EmbeddableChatInner({
39673
39714
 
39674
39715
 
39675
39716
 
39676
- 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
39717
+
39718
+
39719
+ 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.formatTicketRelativeTime = formatTicketRelativeTime; exports.formatTicketFullTimestamp = formatTicketFullTimestamp; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.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;
39720
+ //# sourceMappingURL=chunk-2P6V2EWZ.cjs.map