@flamingo-stack/openframe-frontend-core 0.0.225 → 0.0.227

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 (91) hide show
  1. package/dist/{chunk-2QURHTDV.js → chunk-CUBRHI6D.js} +2 -2
  2. package/dist/{chunk-NRJ53MIF.cjs → chunk-E3DB4D43.cjs} +9 -9
  3. package/dist/{chunk-NRJ53MIF.cjs.map → chunk-E3DB4D43.cjs.map} +1 -1
  4. package/dist/{chunk-3YTIV6C5.cjs → chunk-E3WJQQGW.cjs} +7 -7
  5. package/dist/{chunk-3YTIV6C5.cjs.map → chunk-E3WJQQGW.cjs.map} +1 -1
  6. package/dist/{chunk-SAJG77KY.js → chunk-EURLSRHW.js} +2 -2
  7. package/dist/{chunk-IWBDAGZQ.cjs → chunk-HO2VEMEX.cjs} +24 -24
  8. package/dist/{chunk-IWBDAGZQ.cjs.map → chunk-HO2VEMEX.cjs.map} +1 -1
  9. package/dist/{chunk-NHRVPMBU.js → chunk-K252FYE5.js} +3959 -3740
  10. package/dist/chunk-K252FYE5.js.map +1 -0
  11. package/dist/{chunk-5RELSRTS.cjs → chunk-LEM4FLCU.cjs} +10 -10
  12. package/dist/{chunk-5RELSRTS.cjs.map → chunk-LEM4FLCU.cjs.map} +1 -1
  13. package/dist/{chunk-HOQDRQ4M.cjs → chunk-QFC725WU.cjs} +746 -527
  14. package/dist/chunk-QFC725WU.cjs.map +1 -0
  15. package/dist/{chunk-RIEEPMJ6.js → chunk-X3KKG6IU.js} +2 -2
  16. package/dist/{chunk-NUOYDHUM.js → chunk-YE62NF6I.js} +2 -2
  17. package/dist/components/chat/approval-batch-message.d.ts +6 -0
  18. package/dist/components/chat/approval-batch-message.d.ts.map +1 -1
  19. package/dist/components/chat/index.cjs +2 -2
  20. package/dist/components/chat/index.js +1 -1
  21. package/dist/components/contact/index.cjs +3 -3
  22. package/dist/components/contact/index.js +2 -2
  23. package/dist/components/features/index.cjs +10 -2
  24. package/dist/components/features/index.cjs.map +1 -1
  25. package/dist/components/features/index.js +9 -1
  26. package/dist/components/features/notifications/approval-request-notification-tile.d.ts +13 -0
  27. package/dist/components/features/notifications/approval-request-notification-tile.d.ts.map +1 -0
  28. package/dist/components/features/notifications/index.d.ts +4 -1
  29. package/dist/components/features/notifications/index.d.ts.map +1 -1
  30. package/dist/components/features/notifications/notification-drawer.d.ts +3 -1
  31. package/dist/components/features/notifications/notification-drawer.d.ts.map +1 -1
  32. package/dist/components/features/notifications/notification-popups.d.ts +3 -1
  33. package/dist/components/features/notifications/notification-popups.d.ts.map +1 -1
  34. package/dist/components/features/notifications/notification-tile.d.ts +6 -1
  35. package/dist/components/features/notifications/notification-tile.d.ts.map +1 -1
  36. package/dist/components/features/notifications/notifications-context.d.ts +5 -2
  37. package/dist/components/features/notifications/notifications-context.d.ts.map +1 -1
  38. package/dist/components/features/notifications/types.d.ts +30 -0
  39. package/dist/components/features/notifications/types.d.ts.map +1 -1
  40. package/dist/components/index.cjs +87 -77
  41. package/dist/components/index.cjs.map +1 -1
  42. package/dist/components/index.js +14 -4
  43. package/dist/components/index.js.map +1 -1
  44. package/dist/components/navigation/index.cjs +2 -2
  45. package/dist/components/navigation/index.js +1 -1
  46. package/dist/components/onboarding-guides/index.cjs +25 -25
  47. package/dist/components/onboarding-guides/index.js +3 -3
  48. package/dist/components/tickets/index.cjs +64 -64
  49. package/dist/components/tickets/index.js +4 -4
  50. package/dist/components/ui/color-preset-select.d.ts.map +1 -1
  51. package/dist/components/ui/color-swatch.d.ts +7 -0
  52. package/dist/components/ui/color-swatch.d.ts.map +1 -0
  53. package/dist/components/ui/data-table/data-table-body.d.ts +8 -1
  54. package/dist/components/ui/data-table/data-table-body.d.ts.map +1 -1
  55. package/dist/components/ui/data-table/data-table-row.d.ts +4 -2
  56. package/dist/components/ui/data-table/data-table-row.d.ts.map +1 -1
  57. package/dist/components/ui/data-table/index.d.ts +1 -1
  58. package/dist/components/ui/index.cjs +4 -2
  59. package/dist/components/ui/index.cjs.map +1 -1
  60. package/dist/components/ui/index.d.ts +1 -0
  61. package/dist/components/ui/index.d.ts.map +1 -1
  62. package/dist/components/ui/index.js +3 -1
  63. package/dist/components/ui/ticket-status-config-row.d.ts.map +1 -1
  64. package/dist/components/ui/ticket-status-tag.d.ts.map +1 -1
  65. package/dist/index.cjs +12 -2
  66. package/dist/index.cjs.map +1 -1
  67. package/dist/index.js +11 -1
  68. package/package.json +1 -1
  69. package/src/components/chat/approval-batch-message.tsx +26 -15
  70. package/src/components/features/notifications/approval-request-notification-tile.tsx +118 -0
  71. package/src/components/features/notifications/index.ts +10 -0
  72. package/src/components/features/notifications/notification-drawer.tsx +28 -11
  73. package/src/components/features/notifications/notification-popups.tsx +33 -19
  74. package/src/components/features/notifications/notification-tile.tsx +34 -19
  75. package/src/components/features/notifications/notifications-context.tsx +7 -1
  76. package/src/components/features/notifications/types.ts +50 -0
  77. package/src/components/ui/color-preset-select.tsx +1 -10
  78. package/src/components/ui/color-swatch.tsx +17 -0
  79. package/src/components/ui/data-table/data-table-body.tsx +9 -0
  80. package/src/components/ui/data-table/data-table-row.tsx +24 -3
  81. package/src/components/ui/index.ts +1 -0
  82. package/src/components/ui/modal-v2.tsx +2 -2
  83. package/src/components/ui/ticket-status-config-row.tsx +78 -39
  84. package/src/components/ui/ticket-status-tag.tsx +2 -7
  85. package/src/stories/NotificationDrawer.stories.tsx +148 -1
  86. package/dist/chunk-HOQDRQ4M.cjs.map +0 -1
  87. package/dist/chunk-NHRVPMBU.js.map +0 -1
  88. /package/dist/{chunk-2QURHTDV.js.map → chunk-CUBRHI6D.js.map} +0 -0
  89. /package/dist/{chunk-SAJG77KY.js.map → chunk-EURLSRHW.js.map} +0 -0
  90. /package/dist/{chunk-RIEEPMJ6.js.map → chunk-X3KKG6IU.js.map} +0 -0
  91. /package/dist/{chunk-NUOYDHUM.js.map → chunk-YE62NF6I.js.map} +0 -0
@@ -219,7 +219,7 @@ var _chunkVRHGVLSLcjs = require('./chunk-VRHGVLSL.cjs');
219
219
 
220
220
  // src/components/pagination.tsx
221
221
  var _lucidereact = require('lucide-react');
222
- var _react = require('react'); var React102 = _interopRequireWildcard(_react); var React6 = _interopRequireWildcard(_react); var React2 = _interopRequireWildcard(_react); var React4 = _interopRequireWildcard(_react); var React3 = _interopRequireWildcard(_react); var React22 = _interopRequireWildcard(_react); var React7 = _interopRequireWildcard(_react); var React8 = _interopRequireWildcard(_react); var React10 = _interopRequireWildcard(_react); var React12 = _interopRequireWildcard(_react); var React11 = _interopRequireWildcard(_react); var React14 = _interopRequireWildcard(_react); var React13 = _interopRequireWildcard(_react); var React15 = _interopRequireWildcard(_react); var React16 = _interopRequireWildcard(_react); var React18 = _interopRequireWildcard(_react); var React17 = _interopRequireWildcard(_react); var React19 = _interopRequireWildcard(_react); var React20 = _interopRequireWildcard(_react); var React23 = _interopRequireWildcard(_react); var React25 = _interopRequireWildcard(_react); var React28 = _interopRequireWildcard(_react); var React33 = _interopRequireWildcard(_react); var React32 = _interopRequireWildcard(_react); var React34 = _interopRequireWildcard(_react); var React35 = _interopRequireWildcard(_react); var React37 = _interopRequireWildcard(_react); var React36 = _interopRequireWildcard(_react); var React40 = _interopRequireWildcard(_react); var React41 = _interopRequireWildcard(_react); var React42 = _interopRequireWildcard(_react); var React43 = _interopRequireWildcard(_react); var React44 = _interopRequireWildcard(_react); var React45 = _interopRequireWildcard(_react); var React46 = _interopRequireWildcard(_react); var React47 = _interopRequireWildcard(_react); var React48 = _interopRequireWildcard(_react); var React49 = _interopRequireWildcard(_react); var React50 = _interopRequireWildcard(_react); var React51 = _interopRequireWildcard(_react); var React52 = _interopRequireWildcard(_react); var React53 = _interopRequireWildcard(_react); var React54 = _interopRequireWildcard(_react); var React55 = _interopRequireWildcard(_react); var React57 = _interopRequireWildcard(_react); var React58 = _interopRequireWildcard(_react); var React65 = _interopRequireWildcard(_react); var React64 = _interopRequireWildcard(_react); var React68 = _interopRequireWildcard(_react); var React69 = _interopRequireWildcard(_react); var React71 = _interopRequireWildcard(_react); var React73 = _interopRequireWildcard(_react); var React78 = _interopRequireWildcard(_react); var React81 = _interopRequireWildcard(_react); var React82 = _interopRequireWildcard(_react); var React86 = _interopRequireWildcard(_react); var React85 = _interopRequireWildcard(_react); var React83 = _interopRequireWildcard(_react); var React84 = _interopRequireWildcard(_react); var React87 = _interopRequireWildcard(_react); var React95 = _interopRequireWildcard(_react); var React99 = _interopRequireWildcard(_react); var React98 = _interopRequireWildcard(_react); var React101 = _interopRequireWildcard(_react); var React104 = _interopRequireWildcard(_react); var React105 = _interopRequireWildcard(_react); var React107 = _interopRequireWildcard(_react); var React108 = _interopRequireWildcard(_react); var React110 = _interopRequireWildcard(_react); var React109 = _interopRequireWildcard(_react); var React111 = _interopRequireWildcard(_react); var React113 = _interopRequireWildcard(_react); var React112 = _interopRequireWildcard(_react); var React121 = _interopRequireWildcard(_react); var React120 = _interopRequireWildcard(_react);
222
+ var _react = require('react'); var React102 = _interopRequireWildcard(_react); var React6 = _interopRequireWildcard(_react); var React2 = _interopRequireWildcard(_react); var React4 = _interopRequireWildcard(_react); var React3 = _interopRequireWildcard(_react); var React22 = _interopRequireWildcard(_react); var React7 = _interopRequireWildcard(_react); var React8 = _interopRequireWildcard(_react); var React10 = _interopRequireWildcard(_react); var React12 = _interopRequireWildcard(_react); var React11 = _interopRequireWildcard(_react); var React14 = _interopRequireWildcard(_react); var React13 = _interopRequireWildcard(_react); var React15 = _interopRequireWildcard(_react); var React16 = _interopRequireWildcard(_react); var React18 = _interopRequireWildcard(_react); var React17 = _interopRequireWildcard(_react); var React19 = _interopRequireWildcard(_react); var React20 = _interopRequireWildcard(_react); var React23 = _interopRequireWildcard(_react); var React25 = _interopRequireWildcard(_react); var React28 = _interopRequireWildcard(_react); var React33 = _interopRequireWildcard(_react); var React32 = _interopRequireWildcard(_react); var React34 = _interopRequireWildcard(_react); var React35 = _interopRequireWildcard(_react); var React37 = _interopRequireWildcard(_react); var React36 = _interopRequireWildcard(_react); var React40 = _interopRequireWildcard(_react); var React41 = _interopRequireWildcard(_react); var React42 = _interopRequireWildcard(_react); var React43 = _interopRequireWildcard(_react); var React44 = _interopRequireWildcard(_react); var React45 = _interopRequireWildcard(_react); var React46 = _interopRequireWildcard(_react); var React47 = _interopRequireWildcard(_react); var React48 = _interopRequireWildcard(_react); var React49 = _interopRequireWildcard(_react); var React50 = _interopRequireWildcard(_react); var React51 = _interopRequireWildcard(_react); var React52 = _interopRequireWildcard(_react); var React53 = _interopRequireWildcard(_react); var React54 = _interopRequireWildcard(_react); var React55 = _interopRequireWildcard(_react); var React57 = _interopRequireWildcard(_react); var React58 = _interopRequireWildcard(_react); var React65 = _interopRequireWildcard(_react); var React64 = _interopRequireWildcard(_react); var React68 = _interopRequireWildcard(_react); var React69 = _interopRequireWildcard(_react); var React71 = _interopRequireWildcard(_react); var React73 = _interopRequireWildcard(_react); var React78 = _interopRequireWildcard(_react); var React81 = _interopRequireWildcard(_react); var React82 = _interopRequireWildcard(_react); var React86 = _interopRequireWildcard(_react); var React85 = _interopRequireWildcard(_react); var React83 = _interopRequireWildcard(_react); var React84 = _interopRequireWildcard(_react); var React87 = _interopRequireWildcard(_react); var React95 = _interopRequireWildcard(_react); var React99 = _interopRequireWildcard(_react); var React98 = _interopRequireWildcard(_react); var React101 = _interopRequireWildcard(_react); var React104 = _interopRequireWildcard(_react); var React105 = _interopRequireWildcard(_react); var React107 = _interopRequireWildcard(_react); var React108 = _interopRequireWildcard(_react); var React111 = _interopRequireWildcard(_react); var React110 = _interopRequireWildcard(_react); var React109 = _interopRequireWildcard(_react); var React112 = _interopRequireWildcard(_react); var React114 = _interopRequireWildcard(_react); var React113 = _interopRequireWildcard(_react); var React122 = _interopRequireWildcard(_react); var React121 = _interopRequireWildcard(_react);
223
223
  var _jsxruntime = require('react/jsx-runtime');
224
224
  var Pagination, PaginationContent, PaginationItem, PaginationLink, PaginationEllipsis, PaginationPrevious, PaginationNext;
225
225
  var init_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
@@ -828,7 +828,7 @@ function ToolCallRow({ call, expanded, onToggle, batchStatus, execution }) {
828
828
  ] });
829
829
  }
830
830
  var ApprovalBatchMessage = _react.forwardRef.call(void 0,
831
- ({ className, data, onApprove, onReject, status = "pending", ...props }, ref) => {
831
+ ({ className, data, onApprove, onReject, status = "pending", maxBodyHeight, ...props }, ref) => {
832
832
  const [expandedId, setExpandedId] = _react.useState.call(void 0, null);
833
833
  const [isProcessing, setIsProcessing] = _react.useState.call(void 0, false);
834
834
  const explanations = data.toolCalls.map((c) => _optionalChain([c, 'access', _6 => _6.toolExplanation, 'optionalAccess', _7 => _7.trim, 'call', _8 => _8()])).filter((s) => !!s);
@@ -859,19 +859,26 @@ var ApprovalBatchMessage = _react.forwardRef.call(void 0,
859
859
  ),
860
860
  ...props,
861
861
  children: [
862
- data.toolCalls.map((call) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
863
- ToolCallRow,
862
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
863
+ "div",
864
864
  {
865
- call,
866
- expanded: expandedId === call.toolExecutionRequestId,
867
- onToggle: () => setExpandedId(
868
- (prev) => prev === call.toolExecutionRequestId ? null : call.toolExecutionRequestId
869
- ),
870
- batchStatus: status,
871
- execution: _optionalChain([data, 'access', _11 => _11.executions, 'optionalAccess', _12 => _12[call.toolExecutionRequestId]])
872
- },
873
- call.toolExecutionRequestId
874
- )),
865
+ className: _chunk2TBN53KYcjs.cn.call(void 0, "flex flex-col", maxBodyHeight != null && "overflow-y-auto overscroll-contain"),
866
+ style: maxBodyHeight != null ? { maxHeight: maxBodyHeight } : void 0,
867
+ children: data.toolCalls.map((call) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
868
+ ToolCallRow,
869
+ {
870
+ call,
871
+ expanded: expandedId === call.toolExecutionRequestId,
872
+ onToggle: () => setExpandedId(
873
+ (prev) => prev === call.toolExecutionRequestId ? null : call.toolExecutionRequestId
874
+ ),
875
+ batchStatus: status,
876
+ execution: _optionalChain([data, 'access', _11 => _11.executions, 'optionalAccess', _12 => _12[call.toolExecutionRequestId]])
877
+ },
878
+ call.toolExecutionRequestId
879
+ ))
880
+ }
881
+ ),
875
882
  showFooterBlock && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-card flex flex-col gap-2 items-start justify-center p-3", children: [
876
883
  explanations.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "list-disc pl-5 text-sm font-medium text-ods-text-primary leading-5 w-full", children: explanations.map((expl, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { children: expl }, i)) }),
877
884
  status === "pending" ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2 items-center", children: [
@@ -2550,6 +2557,20 @@ var ActionsMenuDropdown = ({
2550
2557
  ] });
2551
2558
  };
2552
2559
 
2560
+ // src/components/ui/color-swatch.tsx
2561
+ _chunk2TBN53KYcjs.init_cn.call(void 0, );
2562
+
2563
+ function ColorSwatch({ color, className }) {
2564
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2565
+ "span",
2566
+ {
2567
+ "aria-hidden": true,
2568
+ className: _chunk2TBN53KYcjs.cn.call(void 0, "inline-block size-4 shrink-0 rounded-sm", className),
2569
+ style: { backgroundColor: color }
2570
+ }
2571
+ );
2572
+ }
2573
+
2553
2574
  // src/components/ui/ticket-status-tag.tsx
2554
2575
  _chunk2TBN53KYcjs.init_cn.call(void 0, );
2555
2576
 
@@ -2787,14 +2808,7 @@ function TicketStatusTag({
2787
2808
  items: options.map((option) => ({
2788
2809
  id: option.id,
2789
2810
  label: option.name,
2790
- icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2791
- "span",
2792
- {
2793
- className: "size-2 shrink-0 rounded-full",
2794
- style: { backgroundColor: option.color },
2795
- "aria-hidden": true
2796
- }
2797
- ),
2811
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ColorSwatch, { color: option.color }),
2798
2812
  onClick: () => onSelect(option.id),
2799
2813
  disabled: isPending
2800
2814
  }))
@@ -5856,7 +5870,7 @@ var Modal = React17.forwardRef(
5856
5870
  "data-state": state,
5857
5871
  className: _chunk2TBN53KYcjs.cn.call(void 0,
5858
5872
  "absolute inset-0 bg-black/50 backdrop-blur-[2px] md:backdrop-blur-none",
5859
- "duration-200",
5873
+ "duration-200 fill-mode-forwards",
5860
5874
  "data-[state=open]:animate-in data-[state=open]:fade-in-0",
5861
5875
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
5862
5876
  // Hold the hidden end-state until unmount so the backdrop doesn't
@@ -5880,7 +5894,7 @@ var Modal = React17.forwardRef(
5880
5894
  "bg-ods-bg md:bg-ods-card",
5881
5895
  "border border-ods-border rounded-md shadow-xl",
5882
5896
  "p-[var(--spacing-system-xl)] gap-[var(--spacing-system-l)]",
5883
- "duration-200",
5897
+ "duration-200 fill-mode-forwards",
5884
5898
  "data-[state=open]:animate-in data-[state=open]:fade-in-0",
5885
5899
  "data-[state=open]:slide-in-from-bottom-4 md:data-[state=open]:slide-in-from-bottom-0 md:data-[state=open]:zoom-in-95",
5886
5900
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
@@ -24250,7 +24264,8 @@ function NotificationsProvider({
24250
24264
  actions,
24251
24265
  hasMore = false,
24252
24266
  isLoadingMore = false,
24253
- onLoadMore
24267
+ onLoadMore,
24268
+ renderTile
24254
24269
  }) {
24255
24270
  const [notifications, dispatch] = React82.useReducer(reducer, initialNotifications);
24256
24271
  const [isOpen, setIsOpen] = React82.useState(false);
@@ -24341,7 +24356,8 @@ function NotificationsProvider({
24341
24356
  onHistoryClick,
24342
24357
  hasMore,
24343
24358
  isLoadingMore,
24344
- loadMore: onLoadMore
24359
+ loadMore: onLoadMore,
24360
+ renderTile
24345
24361
  }),
24346
24362
  [
24347
24363
  notifications,
@@ -24363,7 +24379,8 @@ function NotificationsProvider({
24363
24379
  onHistoryClick,
24364
24380
  hasMore,
24365
24381
  isLoadingMore,
24366
- onLoadMore
24382
+ onLoadMore,
24383
+ renderTile
24367
24384
  ]
24368
24385
  );
24369
24386
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NotificationsContext.Provider, { value, children });
@@ -24395,19 +24412,22 @@ function NotificationTile({
24395
24412
  liveDurationMs = 4e3,
24396
24413
  onComplete,
24397
24414
  onSettle,
24398
- className
24415
+ className,
24416
+ children,
24417
+ paused = false
24399
24418
  }) {
24400
24419
  const { id, variant = "default", title, description, createdAt, read, settled } = notification;
24401
24420
  const initialElapsed = _react.useMemo.call(void 0, () => Date.now() - createdAt, [createdAt]);
24402
24421
  const isLive = !read && !settled && initialElapsed < liveDurationMs;
24422
+ const counting = isLive && !paused;
24403
24423
  _react.useEffect.call(void 0, () => {
24404
- if (!isLive) return;
24424
+ if (!counting) return;
24405
24425
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
24406
24426
  const timer = window.setTimeout(() => {
24407
24427
  _optionalChain([onSettle, 'optionalCall', _421 => _421(id)]);
24408
24428
  }, remaining);
24409
24429
  return () => window.clearTimeout(timer);
24410
- }, [id, isLive, initialElapsed, liveDurationMs, onSettle]);
24430
+ }, [id, counting, initialElapsed, liveDurationMs, onSettle]);
24411
24431
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24412
24432
  "output",
24413
24433
  {
@@ -24416,28 +24436,52 @@ function NotificationTile({
24416
24436
  className
24417
24437
  ),
24418
24438
  children: [
24419
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)] p-[var(--spacing-system-s)]", children: [
24420
- /* @__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: _chunk2TBN53KYcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkJUWPBMQMcjs.dotColorByVariant[variant]) }) }),
24421
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
24422
- 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,
24423
- 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
24424
- ] }),
24425
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24426
- _chunkE6B4B7GMcjs.Button,
24427
- {
24428
- variant: "outline",
24429
- size: "small",
24430
- onClick: () => onComplete(id),
24431
- "aria-label": "Mark notification complete",
24432
- tabIndex: isLive ? -1 : 0,
24433
- className: _chunk2TBN53KYcjs.cn.call(void 0,
24434
- "shrink-0 text-ods-text-secondary hover:text-ods-text-primary",
24435
- isLive && "invisible"
24439
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24440
+ "div",
24441
+ {
24442
+ className: _chunk2TBN53KYcjs.cn.call(void 0,
24443
+ "relative flex items-center gap-[var(--spacing-system-xs)] p-[var(--spacing-system-s)]",
24444
+ children ? "border-b border-ods-border" : null
24445
+ ),
24446
+ children: [
24447
+ /* @__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: _chunk2TBN53KYcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkJUWPBMQMcjs.dotColorByVariant[variant]) }) }),
24448
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
24449
+ 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,
24450
+ 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
24451
+ ] }),
24452
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24453
+ _chunkE6B4B7GMcjs.Button,
24454
+ {
24455
+ variant: "outline",
24456
+ size: "small",
24457
+ onClick: () => onComplete(id),
24458
+ "aria-label": "Mark notification complete",
24459
+ tabIndex: isLive ? -1 : 0,
24460
+ className: _chunk2TBN53KYcjs.cn.call(void 0,
24461
+ "shrink-0 hover:text-ods-text-primary",
24462
+ isLive && "invisible"
24463
+ ),
24464
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.CheckCircleIcon, {})
24465
+ }
24436
24466
  ),
24437
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.CheckCircleIcon, {})
24438
- }
24439
- )
24440
- ] }),
24467
+ counting ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24468
+ "div",
24469
+ {
24470
+ "aria-hidden": true,
24471
+ className: _chunk2TBN53KYcjs.cn.call(void 0,
24472
+ "absolute inset-x-0 -bottom-px h-1 origin-left",
24473
+ _chunkJUWPBMQMcjs.progressColorByVariant[variant]
24474
+ ),
24475
+ style: {
24476
+ animation: `toast-progress ${liveDurationMs}ms linear forwards`,
24477
+ animationDelay: `-${initialElapsed}ms`
24478
+ }
24479
+ }
24480
+ ) : null
24481
+ ]
24482
+ }
24483
+ ),
24484
+ children,
24441
24485
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24442
24486
  "button",
24443
24487
  {
@@ -24451,21 +24495,7 @@ function NotificationTile({
24451
24495
  ),
24452
24496
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.XmarkIcon, { size: 16 })
24453
24497
  }
24454
- ),
24455
- isLive ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24456
- "div",
24457
- {
24458
- "aria-hidden": true,
24459
- className: _chunk2TBN53KYcjs.cn.call(void 0,
24460
- "absolute inset-x-0 -bottom-px h-1 origin-left",
24461
- _chunkJUWPBMQMcjs.progressColorByVariant[variant]
24462
- ),
24463
- style: {
24464
- animation: `toast-progress ${liveDurationMs}ms linear forwards`,
24465
- animationDelay: `-${initialElapsed}ms`
24466
- }
24467
- }
24468
- ) : null
24498
+ )
24469
24499
  ]
24470
24500
  }
24471
24501
  );
@@ -24473,7 +24503,12 @@ function NotificationTile({
24473
24503
 
24474
24504
  // src/components/features/notifications/notification-drawer.tsx
24475
24505
 
24476
- function NotificationDrawer({ className, liveDurationMs, loadMoreRootMargin = "200px" }) {
24506
+ function NotificationDrawer({
24507
+ className,
24508
+ liveDurationMs,
24509
+ loadMoreRootMargin = "200px",
24510
+ renderTile: renderTileProp
24511
+ }) {
24477
24512
  const ctx = useOptionalNotifications();
24478
24513
  if (!ctx) return null;
24479
24514
  const {
@@ -24490,8 +24525,10 @@ function NotificationDrawer({ className, liveDurationMs, loadMoreRootMargin = "2
24490
24525
  onHistoryClick,
24491
24526
  hasMore,
24492
24527
  isLoadingMore,
24493
- loadMore
24528
+ loadMore,
24529
+ renderTile: ctxRenderTile
24494
24530
  } = ctx;
24531
+ const renderTile = _nullishCoalesce(renderTileProp, () => ( ctxRenderTile));
24495
24532
  const unreadNotifications = notifications.filter((n) => !n.read);
24496
24533
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Drawer, { open: isOpen, onOpenChange: (v) => v ? open() : close(), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24497
24534
  DrawerContent,
@@ -24526,7 +24563,8 @@ function NotificationDrawer({ className, liveDurationMs, loadMoreRootMargin = "2
24526
24563
  hasMore,
24527
24564
  isLoadingMore,
24528
24565
  loadMore,
24529
- loadMoreRootMargin
24566
+ loadMoreRootMargin,
24567
+ renderTile
24530
24568
  }
24531
24569
  ),
24532
24570
  /* @__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: [
@@ -24553,7 +24591,8 @@ function DrawerScrollList({
24553
24591
  hasMore,
24554
24592
  isLoadingMore,
24555
24593
  loadMore,
24556
- loadMoreRootMargin
24594
+ loadMoreRootMargin,
24595
+ renderTile
24557
24596
  }) {
24558
24597
  const scrollRef = _react.useRef.call(void 0, null);
24559
24598
  const sentinelRef = _react.useRef.call(void 0, null);
@@ -24580,16 +24619,20 @@ function DrawerScrollList({
24580
24619
  ref: scrollRef,
24581
24620
  className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
24582
24621
  children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
24583
- unreadNotifications.map((n) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24584
- NotificationTile,
24585
- {
24586
- notification: n,
24587
- liveDurationMs,
24588
- onComplete,
24589
- onSettle
24590
- },
24591
- n.id
24592
- )),
24622
+ unreadNotifications.map((n) => {
24623
+ const custom = _optionalChain([renderTile, 'optionalCall', _427 => _427(n, { onComplete, onSettle, liveDurationMs })]);
24624
+ if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
24625
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24626
+ NotificationTile,
24627
+ {
24628
+ notification: n,
24629
+ liveDurationMs,
24630
+ onComplete,
24631
+ onSettle
24632
+ },
24633
+ n.id
24634
+ );
24635
+ }),
24593
24636
  isLoadingMore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DrawerLoadingTiles, {}),
24594
24637
  loadMore && hasMore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" })
24595
24638
  ] })
@@ -24664,11 +24707,13 @@ function NotificationPopups({
24664
24707
  liveDurationMs = 4e3,
24665
24708
  maxVisible = 4,
24666
24709
  position = "top-right",
24667
- hideWhenDrawerOpen = true
24710
+ hideWhenDrawerOpen = true,
24711
+ renderTile: renderTileProp
24668
24712
  }) {
24669
24713
  const ctx = useOptionalNotifications();
24670
24714
  if (!ctx) return null;
24671
- const { notifications, showPopups, isOpen, open, markRead, markSettled } = ctx;
24715
+ const { notifications, showPopups, isOpen, open, markRead, markSettled, renderTile: ctxRenderTile } = ctx;
24716
+ const renderTile = _nullishCoalesce(renderTileProp, () => ( ctxRenderTile));
24672
24717
  if (!showPopups) return null;
24673
24718
  if (hideWhenDrawerOpen && isOpen) return null;
24674
24719
  const now = Date.now();
@@ -24703,29 +24748,151 @@ function NotificationPopups({
24703
24748
  positionClasses[position],
24704
24749
  className
24705
24750
  ),
24706
- children: live.map((n) => (
24707
- // biome-ignore lint/a11y/useSemanticElements: nested interactive elements forbid <button>
24708
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24709
- "div",
24751
+ children: live.map((n) => {
24752
+ const custom = _optionalChain([renderTile, 'optionalCall', _428 => _428(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
24753
+ if (custom) {
24754
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
24755
+ }
24756
+ return (
24757
+ // biome-ignore lint/a11y/useSemanticElements: nested interactive elements forbid <button>
24758
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24759
+ "div",
24760
+ {
24761
+ role: "button",
24762
+ tabIndex: 0,
24763
+ onClick: handleBodyClick(n),
24764
+ onKeyDown: handleBodyKeyDown(n),
24765
+ className: "pointer-events-auto cursor-pointer rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
24766
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24767
+ NotificationTile,
24768
+ {
24769
+ notification: n,
24770
+ liveDurationMs,
24771
+ onComplete: markRead,
24772
+ onSettle: markSettled
24773
+ }
24774
+ )
24775
+ },
24776
+ n.id
24777
+ )
24778
+ );
24779
+ })
24780
+ }
24781
+ );
24782
+ }
24783
+
24784
+ // src/components/features/notifications/approval-request-notification-tile.tsx
24785
+ _chunk2TBN53KYcjs.init_cn.call(void 0, );
24786
+
24787
+
24788
+ // src/components/features/notifications/types.ts
24789
+ var ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = "ADMIN_APPROVAL_REQUEST";
24790
+ function isApprovalNotification(notification) {
24791
+ return _optionalChain([notification, 'access', _429 => _429.meta, 'optionalAccess', _430 => _430.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
24792
+ }
24793
+ function getApprovalMeta(notification) {
24794
+ if (!isApprovalNotification(notification)) return null;
24795
+ const meta = notification.meta;
24796
+ const approvalRequestId = _optionalChain([meta, 'optionalAccess', _431 => _431.approvalRequestId]);
24797
+ const toolCalls = _optionalChain([meta, 'optionalAccess', _432 => _432.toolCalls]);
24798
+ if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
24799
+ return {
24800
+ approvalRequestId,
24801
+ dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _433 => _433.dialogId]), () => ( null)),
24802
+ ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _434 => _434.ticketId]), () => ( null)),
24803
+ approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _435 => _435.approvalType]), () => ( null)),
24804
+ toolCalls
24805
+ };
24806
+ }
24807
+
24808
+ // src/components/features/notifications/approval-request-notification-tile.tsx
24809
+
24810
+ function ApprovalRequestNotificationTile({
24811
+ notification,
24812
+ onApprove,
24813
+ onReject,
24814
+ onComplete,
24815
+ onSettle,
24816
+ liveDurationMs,
24817
+ defaultExpanded = false,
24818
+ className
24819
+ }) {
24820
+ const [expanded, setExpanded] = _react.useState.call(void 0, defaultExpanded);
24821
+ const [pinned, setPinned] = _react.useState.call(void 0, defaultExpanded);
24822
+ const [status, setStatus] = _react.useState.call(void 0, "pending");
24823
+ const approval = getApprovalMeta(notification);
24824
+ const batchData = _react.useMemo.call(void 0, () => {
24825
+ if (!approval) return null;
24826
+ return {
24827
+ approvalRequestId: approval.approvalRequestId,
24828
+ approvalType: _nullishCoalesce(approval.approvalType, () => ( "")),
24829
+ toolCalls: approval.toolCalls.map((tc, index) => ({
24830
+ toolExecutionRequestId: _nullishCoalesce(tc.toolExecutionRequestId, () => ( `${approval.approvalRequestId}:${index}`)),
24831
+ toolName: tc.toolName,
24832
+ toolTitle: _nullishCoalesce(tc.toolTitle, () => ( void 0)),
24833
+ toolExplanation: _nullishCoalesce(tc.toolExplanation, () => ( void 0)),
24834
+ toolType: _nullishCoalesce(tc.toolType, () => ( void 0)),
24835
+ requiresApproval: _nullishCoalesce(tc.requiresApproval, () => ( true)),
24836
+ approvalType: _nullishCoalesce(tc.approvalType, () => ( null)),
24837
+ toolCallArguments: _nullishCoalesce(tc.toolCallArguments, () => ( null))
24838
+ }))
24839
+ };
24840
+ }, [approval]);
24841
+ const { innerRef, containerStyle } = useCollapsible({ expanded });
24842
+ if (!approval || !batchData) return null;
24843
+ const commandWord = batchData.toolCalls.length > 1 ? "Commands" : "Command";
24844
+ const toggleLabel = `${expanded ? "Hide" : "Show"} ${commandWord}`;
24845
+ const handleApprove = async () => {
24846
+ await onApprove(batchData.approvalRequestId);
24847
+ setStatus("approved");
24848
+ onComplete(notification.id);
24849
+ };
24850
+ const handleReject = async () => {
24851
+ await onReject(batchData.approvalRequestId);
24852
+ setStatus("rejected");
24853
+ onComplete(notification.id);
24854
+ };
24855
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24856
+ NotificationTile,
24857
+ {
24858
+ notification,
24859
+ liveDurationMs,
24860
+ onComplete,
24861
+ onSettle,
24862
+ className,
24863
+ paused: pinned,
24864
+ children: [
24865
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24866
+ "button",
24710
24867
  {
24711
- role: "button",
24712
- tabIndex: 0,
24713
- onClick: handleBodyClick(n),
24714
- onKeyDown: handleBodyKeyDown(n),
24715
- className: "pointer-events-auto cursor-pointer rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent",
24716
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24717
- NotificationTile,
24718
- {
24719
- notification: n,
24720
- liveDurationMs,
24721
- onComplete: markRead,
24722
- onSettle: markSettled
24723
- }
24724
- )
24725
- },
24726
- n.id
24727
- )
24728
- ))
24868
+ type: "button",
24869
+ onClick: () => {
24870
+ setExpanded((prev) => !prev);
24871
+ setPinned(true);
24872
+ },
24873
+ "aria-expanded": expanded,
24874
+ className: _chunk2TBN53KYcjs.cn.call(void 0,
24875
+ "flex w-full items-center gap-[var(--spacing-system-xs)] bg-ods-card px-[var(--spacing-system-s)] py-[var(--spacing-system-xs)] text-left",
24876
+ expanded && "border-b border-ods-border"
24877
+ ),
24878
+ children: [
24879
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 flex-1 text-h6 text-ods-text-primary", children: toggleLabel }),
24880
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ExpandChevron, { expanded })
24881
+ ]
24882
+ }
24883
+ ),
24884
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: containerStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: innerRef, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24885
+ ApprovalBatchMessage,
24886
+ {
24887
+ data: batchData,
24888
+ status,
24889
+ onApprove: handleApprove,
24890
+ onReject: handleReject,
24891
+ maxBodyHeight: "50vh",
24892
+ className: "mb-0 rounded-none border-0"
24893
+ }
24894
+ ) }) })
24895
+ ]
24729
24896
  }
24730
24897
  );
24731
24898
  }
@@ -24894,15 +25061,15 @@ function TicketCard({
24894
25061
  transform: _utilities.CSS.Transform.toString(sortable.transform),
24895
25062
  transition: sortable.transition
24896
25063
  };
24897
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _427 => _427.deviceHostnames, 'optionalAccess', _428 => _428.length]) || ticket.organizationName);
25064
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _436 => _436.deviceHostnames, 'optionalAccess', _437 => _437.length]) || ticket.organizationName);
24898
25065
  const deviceText = [
24899
- _optionalChain([ticket, 'access', _429 => _429.deviceHostnames, 'optionalAccess', _430 => _430.join, 'call', _431 => _431(", ")]),
25066
+ _optionalChain([ticket, 'access', _438 => _438.deviceHostnames, 'optionalAccess', _439 => _439.join, 'call', _440 => _440(", ")]),
24900
25067
  ticket.organizationName
24901
25068
  ].filter(Boolean).join(", ");
24902
25069
  const handleClick = (e) => {
24903
25070
  if (sortable.isDragging) e.preventDefault();
24904
25071
  };
24905
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _432 => _432.assignees, 'optionalAccess', _433 => _433.length]) || renderAssignSlot);
25072
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _441 => _441.assignees, 'optionalAccess', _442 => _442.length]) || renderAssignSlot);
24906
25073
  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: [
24907
25074
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24908
25075
  _chunkC6ASEPZLcjs.Flag02Icon,
@@ -24911,7 +25078,7 @@ function TicketCard({
24911
25078
  "aria-label": `Priority: ${ticket.priority}`
24912
25079
  }
24913
25080
  ),
24914
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _434 => _434.assignees, 'optionalAccess', _435 => _435.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
25081
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _443 => _443.assignees, 'optionalAccess', _444 => _444.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
24915
25082
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24916
25083
  SquareAvatar,
24917
25084
  {
@@ -24940,7 +25107,7 @@ function TicketCard({
24940
25107
  ] }),
24941
25108
  rightSection
24942
25109
  ] }),
24943
- _optionalChain([ticket, 'access', _436 => _436.tags, 'optionalAccess', _437 => _437.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
25110
+ _optionalChain([ticket, 'access', _445 => _445.tags, 'optionalAccess', _446 => _446.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
24944
25111
  ] });
24945
25112
  const cardClasses = _chunk2TBN53KYcjs.cn.call(void 0,
24946
25113
  "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",
@@ -25115,7 +25282,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
25115
25282
  const observer = new IntersectionObserver(
25116
25283
  (entries) => {
25117
25284
  if (entries.some((e) => e.isIntersecting)) {
25118
- _optionalChain([loadMoreRef, 'access', _438 => _438.current, 'optionalCall', _439 => _439(columnIdRef.current)]);
25285
+ _optionalChain([loadMoreRef, 'access', _447 => _447.current, 'optionalCall', _448 => _448(columnIdRef.current)]);
25119
25286
  }
25120
25287
  },
25121
25288
  { root, rootMargin: loadMoreRootMargin }
@@ -25144,7 +25311,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
25144
25311
  {
25145
25312
  ticket: t,
25146
25313
  columnId: column.id,
25147
- href: _optionalChain([getTicketHref, 'optionalCall', _440 => _440(t.id)]),
25314
+ href: _optionalChain([getTicketHref, 'optionalCall', _449 => _449(t.id)]),
25148
25315
  renderAssignSlot,
25149
25316
  dragDisabled: column.dragDisabled
25150
25317
  },
@@ -25240,17 +25407,17 @@ function Board({
25240
25407
  const pointer = _core.pointerWithin.call(void 0, args);
25241
25408
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
25242
25409
  const ticketHit = intersections.find(
25243
- (c) => _optionalChain([c, 'access', _441 => _441.data, 'optionalAccess', _442 => _442.droppableContainer, 'optionalAccess', _443 => _443.data, 'optionalAccess', _444 => _444.current, 'optionalAccess', _445 => _445.type]) === "ticket"
25410
+ (c) => _optionalChain([c, 'access', _450 => _450.data, 'optionalAccess', _451 => _451.droppableContainer, 'optionalAccess', _452 => _452.data, 'optionalAccess', _453 => _453.current, 'optionalAccess', _454 => _454.type]) === "ticket"
25244
25411
  );
25245
25412
  if (ticketHit) return [ticketHit];
25246
25413
  const columnHit = intersections.find(
25247
- (c) => _optionalChain([c, 'access', _446 => _446.data, 'optionalAccess', _447 => _447.droppableContainer, 'optionalAccess', _448 => _448.data, 'optionalAccess', _449 => _449.current, 'optionalAccess', _450 => _450.type]) === "column"
25414
+ (c) => _optionalChain([c, 'access', _455 => _455.data, 'optionalAccess', _456 => _456.droppableContainer, 'optionalAccess', _457 => _457.data, 'optionalAccess', _458 => _458.current, 'optionalAccess', _459 => _459.type]) === "column"
25248
25415
  );
25249
25416
  if (columnHit) {
25250
- const columnId = _optionalChain([columnHit, 'access', _451 => _451.data, 'optionalAccess', _452 => _452.droppableContainer, 'optionalAccess', _453 => _453.data, 'optionalAccess', _454 => _454.current, 'optionalAccess', _455 => _455.columnId]);
25417
+ const columnId = _optionalChain([columnHit, 'access', _460 => _460.data, 'optionalAccess', _461 => _461.droppableContainer, 'optionalAccess', _462 => _462.data, 'optionalAccess', _463 => _463.current, 'optionalAccess', _464 => _464.columnId]);
25251
25418
  const ticketsInColumn = args.droppableContainers.filter((c) => {
25252
25419
  const d = c.data.current;
25253
- return _optionalChain([d, 'optionalAccess', _456 => _456.type]) === "ticket" && d.columnId === columnId;
25420
+ return _optionalChain([d, 'optionalAccess', _465 => _465.type]) === "ticket" && d.columnId === columnId;
25254
25421
  });
25255
25422
  if (ticketsInColumn.length > 0) {
25256
25423
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -25275,20 +25442,20 @@ function Board({
25275
25442
  const overId = String(over.id);
25276
25443
  if (activeId === overId) return;
25277
25444
  const overData = over.data.current;
25278
- const fromColumnId = _optionalChain([locate, 'call', _457 => _457(items, activeId), 'optionalAccess', _458 => _458.columnId]);
25279
- const toColumnId = _optionalChain([overData, 'optionalAccess', _459 => _459.columnId]);
25445
+ const fromColumnId = _optionalChain([locate, 'call', _466 => _466(items, activeId), 'optionalAccess', _467 => _467.columnId]);
25446
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _468 => _468.columnId]);
25280
25447
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
25281
25448
  const origin = dragOriginRef.current;
25282
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _460 => _460.fromColumnId]) === toColumnId;
25449
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _469 => _469.fromColumnId]) === toColumnId;
25283
25450
  const targetCol = items.find((c) => c.id === toColumnId);
25284
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _461 => _461.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
25285
- if (_optionalChain([targetCol, 'optionalAccess', _462 => _462.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
25451
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _470 => _470.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
25452
+ if (_optionalChain([targetCol, 'optionalAccess', _471 => _471.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
25286
25453
  setItems((prev) => {
25287
25454
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
25288
25455
  const toCol = prev.find((c) => c.id === toColumnId);
25289
25456
  if (fromIndex < 0 || !toCol) return prev;
25290
25457
  let toIndex;
25291
- if (_optionalChain([overData, 'optionalAccess', _463 => _463.type]) === "column") {
25458
+ if (_optionalChain([overData, 'optionalAccess', _472 => _472.type]) === "column") {
25292
25459
  toIndex = toCol.tickets.length;
25293
25460
  } else {
25294
25461
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -25330,14 +25497,14 @@ function Board({
25330
25497
  const toColumnId = located.columnId;
25331
25498
  const isCrossColumn = origin.fromColumnId !== toColumnId;
25332
25499
  const targetCol = items.find((c) => c.id === toColumnId);
25333
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _464 => _464.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _465 => _465.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
25500
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _473 => _473.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _474 => _474.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
25334
25501
  setItems(columns);
25335
25502
  return;
25336
25503
  }
25337
25504
  let finalIndex = located.index;
25338
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _466 => _466.find, 'call', _467 => _467((c) => c.id === toColumnId), 'optionalAccess', _468 => _468.tickets]), () => ( []));
25505
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _475 => _475.find, 'call', _476 => _476((c) => c.id === toColumnId), 'optionalAccess', _477 => _477.tickets]), () => ( []));
25339
25506
  const overData = over.data.current;
25340
- if (_optionalChain([overData, 'optionalAccess', _469 => _469.type]) === "ticket") {
25507
+ if (_optionalChain([overData, 'optionalAccess', _478 => _478.type]) === "ticket") {
25341
25508
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
25342
25509
  if (overIndex >= 0 && overIndex !== located.index) {
25343
25510
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -25357,8 +25524,8 @@ function Board({
25357
25524
  ticketId: origin.ticketId,
25358
25525
  fromColumnId: origin.fromColumnId,
25359
25526
  toColumnId,
25360
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _470 => _470[finalIndex - 1], 'optionalAccess', _471 => _471.id]), () => ( null)),
25361
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _472 => _472[finalIndex + 1], 'optionalAccess', _473 => _473.id]), () => ( null))
25527
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _479 => _479[finalIndex - 1], 'optionalAccess', _480 => _480.id]), () => ( null)),
25528
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _481 => _481[finalIndex + 1], 'optionalAccess', _482 => _482.id]), () => ( null))
25362
25529
  });
25363
25530
  };
25364
25531
  const handleDragCancel = () => {
@@ -25387,8 +25554,8 @@ function Board({
25387
25554
  children: items.map((column, i) => {
25388
25555
  const prev = items[i - 1];
25389
25556
  const next = items[i + 1];
25390
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _474 => _474.system]));
25391
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _475 => _475.system]));
25557
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _483 => _483.system]));
25558
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _484 => _484.system]));
25392
25559
  const showGap = i > 0 && !joinLeft;
25393
25560
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React86.Fragment, { children: [
25394
25561
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -25447,7 +25614,7 @@ function locate(cols, ticketId) {
25447
25614
  return null;
25448
25615
  }
25449
25616
  function findIndexInColumn(cols, columnId, ticketId) {
25450
- return _nullishCoalesce(_optionalChain([cols, 'access', _476 => _476.find, 'call', _477 => _477((c) => c.id === columnId), 'optionalAccess', _478 => _478.tickets, 'access', _479 => _479.findIndex, 'call', _480 => _480((t) => t.id === ticketId)]), () => ( -1));
25617
+ return _nullishCoalesce(_optionalChain([cols, 'access', _485 => _485.find, 'call', _486 => _486((c) => c.id === columnId), 'optionalAccess', _487 => _487.tickets, 'access', _488 => _488.findIndex, 'call', _489 => _489((t) => t.id === ticketId)]), () => ( -1));
25451
25618
  }
25452
25619
 
25453
25620
  // src/components/features/board/types.ts
@@ -25695,7 +25862,7 @@ function Header2({ config, platform }) {
25695
25862
  className: _chunk2TBN53KYcjs.cn.call(void 0,
25696
25863
  "flex justify-start w-full",
25697
25864
  "font-bold text-[16px] leading-none tracking-[-0.32px]",
25698
- index < (_nullishCoalesce(_optionalChain([item, 'access', _481 => _481.children, 'optionalAccess', _482 => _482.length]), () => ( 0))) - 1 && "mb-1",
25865
+ index < (_nullishCoalesce(_optionalChain([item, 'access', _490 => _490.children, 'optionalAccess', _491 => _491.length]), () => ( 0))) - 1 && "mb-1",
25699
25866
  "text-ods-text-primary",
25700
25867
  // All dropdown items use primary text color
25701
25868
  child.isActive && "bg-ods-bg-hover"
@@ -25787,7 +25954,7 @@ function Header2({ config, platform }) {
25787
25954
  style: config.style,
25788
25955
  children: [
25789
25956
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
25790
- _optionalChain([config, 'access', _483 => _483.actions, 'optionalAccess', _484 => _484.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
25957
+ _optionalChain([config, 'access', _492 => _492.actions, 'optionalAccess', _493 => _493.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
25791
25958
  /* @__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 })
25792
25959
  ] }),
25793
25960
  config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -25804,7 +25971,7 @@ function Header2({ config, platform }) {
25804
25971
  }
25805
25972
  ),
25806
25973
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-end gap-4 flex-shrink-0", children: [
25807
- _optionalChain([config, 'access', _485 => _485.actions, 'optionalAccess', _486 => _486.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
25974
+ _optionalChain([config, 'access', _494 => _494.actions, 'optionalAccess', _495 => _495.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
25808
25975
  config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25809
25976
  _chunkE6B4B7GMcjs.Button,
25810
25977
  {
@@ -25812,10 +25979,10 @@ function Header2({ config, platform }) {
25812
25979
  size: "icon",
25813
25980
  className: "flex md:hidden",
25814
25981
  onClick: () => {
25815
- _optionalChain([config, 'access', _487 => _487.mobile, 'optionalAccess', _488 => _488.onToggle, 'optionalCall', _489 => _489()]);
25982
+ _optionalChain([config, 'access', _496 => _496.mobile, 'optionalAccess', _497 => _497.onToggle, 'optionalCall', _498 => _498()]);
25816
25983
  },
25817
- "aria-label": _optionalChain([config, 'access', _490 => _490.mobile, 'optionalAccess', _491 => _491.isOpen]) ? "Close menu" : "Open menu",
25818
- leftIcon: _optionalChain([config, 'access', _492 => _492.mobile, 'optionalAccess', _493 => _493.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Menu01Icon, {})
25984
+ "aria-label": _optionalChain([config, 'access', _499 => _499.mobile, 'optionalAccess', _500 => _500.isOpen]) ? "Close menu" : "Open menu",
25985
+ leftIcon: _optionalChain([config, 'access', _501 => _501.mobile, 'optionalAccess', _502 => _502.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Menu01Icon, {})
25819
25986
  }
25820
25987
  )
25821
25988
  ] })
@@ -25832,10 +25999,10 @@ function Header2({ config, platform }) {
25832
25999
  // src/components/navigation/header-skeleton.tsx
25833
26000
 
25834
26001
  function HeaderSkeleton({ config }) {
25835
- const showNavigation = _optionalChain([config, 'optionalAccess', _494 => _494.navigation]) && config.navigation.items.length > 0;
25836
- const showActions = _optionalChain([config, 'optionalAccess', _495 => _495.actions, 'optionalAccess', _496 => _496.right]) && config.actions.right.length > 0;
25837
- const showMobileMenu = _optionalChain([config, 'optionalAccess', _497 => _497.mobile, 'optionalAccess', _498 => _498.enabled]);
25838
- const isAdminHeader = _optionalChain([config, 'optionalAccess', _499 => _499.className, 'optionalAccess', _500 => _500.includes, 'call', _501 => _501("admin")]);
26002
+ const showNavigation = _optionalChain([config, 'optionalAccess', _503 => _503.navigation]) && config.navigation.items.length > 0;
26003
+ const showActions = _optionalChain([config, 'optionalAccess', _504 => _504.actions, 'optionalAccess', _505 => _505.right]) && config.actions.right.length > 0;
26004
+ const showMobileMenu = _optionalChain([config, 'optionalAccess', _506 => _506.mobile, 'optionalAccess', _507 => _507.enabled]);
26005
+ const isAdminHeader = _optionalChain([config, 'optionalAccess', _508 => _508.className, 'optionalAccess', _509 => _509.includes, 'call', _510 => _510("admin")]);
25839
26006
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25840
26007
  "header",
25841
26008
  {
@@ -25844,11 +26011,11 @@ function HeaderSkeleton({ config }) {
25844
26011
  "bg-ods-card border-b border-ods-border backdrop-blur-sm",
25845
26012
  "px-6 py-3",
25846
26013
  "transition-opacity duration-300 ease-in-out",
25847
- _optionalChain([config, 'optionalAccess', _502 => _502.className])
26014
+ _optionalChain([config, 'optionalAccess', _511 => _511.className])
25848
26015
  ),
25849
26016
  children: [
25850
26017
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
25851
- isAdminHeader && _optionalChain([config, 'optionalAccess', _503 => _503.actions, 'optionalAccess', _504 => _504.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" }) }),
26018
+ isAdminHeader && _optionalChain([config, 'optionalAccess', _512 => _512.actions, 'optionalAccess', _513 => _513.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" }) }),
25852
26019
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
25853
26020
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
25854
26021
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
@@ -25856,8 +26023,8 @@ function HeaderSkeleton({ config }) {
25856
26023
  ] }),
25857
26024
  showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunk2TBN53KYcjs.cn.call(void 0,
25858
26025
  "hidden md:flex items-center gap-2",
25859
- _optionalChain([config, 'optionalAccess', _505 => _505.navigation, 'optionalAccess', _506 => _506.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
25860
- _optionalChain([config, 'optionalAccess', _507 => _507.navigation, 'optionalAccess', _508 => _508.position]) === "right" && "ml-auto mr-4"
26026
+ _optionalChain([config, 'optionalAccess', _514 => _514.navigation, 'optionalAccess', _515 => _515.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
26027
+ _optionalChain([config, 'optionalAccess', _516 => _516.navigation, 'optionalAccess', _517 => _517.position]) === "right" && "ml-auto mr-4"
25861
26028
  ), children: [
25862
26029
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
25863
26030
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
@@ -25905,7 +26072,7 @@ function MobileNavPanel({ isOpen, config }) {
25905
26072
  _react.useEffect.call(void 0, () => {
25906
26073
  const handleKeyDown = (e) => {
25907
26074
  if (e.key === "Escape" && isOpen) {
25908
- _optionalChain([config, 'access', _509 => _509.onClose, 'optionalCall', _510 => _510()]);
26075
+ _optionalChain([config, 'access', _518 => _518.onClose, 'optionalCall', _519 => _519()]);
25909
26076
  }
25910
26077
  };
25911
26078
  if (isOpen) {
@@ -25922,7 +26089,7 @@ function MobileNavPanel({ isOpen, config }) {
25922
26089
  if (item.onClick) {
25923
26090
  item.onClick();
25924
26091
  }
25925
- _optionalChain([config, 'access', _511 => _511.onClose, 'optionalCall', _512 => _512()]);
26092
+ _optionalChain([config, 'access', _520 => _520.onClose, 'optionalCall', _521 => _521()]);
25926
26093
  };
25927
26094
  if (item.href) {
25928
26095
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -26140,7 +26307,7 @@ function SlidingSidebar({ config }) {
26140
26307
  variant: "transparent",
26141
26308
  size: "default",
26142
26309
  onClick: () => {
26143
- _optionalChain([item, 'access', _513 => _513.onClick, 'optionalCall', _514 => _514()]);
26310
+ _optionalChain([item, 'access', _522 => _522.onClick, 'optionalCall', _523 => _523()]);
26144
26311
  config.onClose();
26145
26312
  },
26146
26313
  leftIcon: item.icon,
@@ -26163,7 +26330,7 @@ function SlidingSidebar({ config }) {
26163
26330
  variant: "transparent",
26164
26331
  size: "default",
26165
26332
  onClick: () => {
26166
- _optionalChain([item, 'access', _515 => _515.onClick, 'optionalCall', _516 => _516()]);
26333
+ _optionalChain([item, 'access', _524 => _524.onClick, 'optionalCall', _525 => _525()]);
26167
26334
  config.onClose();
26168
26335
  },
26169
26336
  leftIcon: item.icon,
@@ -26290,7 +26457,7 @@ function StickySectionNav({
26290
26457
  ] });
26291
26458
  }
26292
26459
  function useSectionNavigation(sections, options) {
26293
- const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _517 => _517[0], 'optionalAccess', _518 => _518.id]) || "");
26460
+ const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _526 => _526[0], 'optionalAccess', _527 => _527.id]) || "");
26294
26461
  const isScrollingFromClick = _react.useRef.call(void 0, false);
26295
26462
  const { offset: offset2 = 100 } = options || {};
26296
26463
  const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
@@ -26314,7 +26481,7 @@ function useSectionNavigation(sections, options) {
26314
26481
  const handleScroll = () => {
26315
26482
  if (isScrollingFromClick.current) return;
26316
26483
  const scrollPosition = window.scrollY + offset2 + 50;
26317
- let currentSection = _optionalChain([sections, 'access', _519 => _519[0], 'optionalAccess', _520 => _520.id]) || "";
26484
+ let currentSection = _optionalChain([sections, 'access', _528 => _528[0], 'optionalAccess', _529 => _529.id]) || "";
26318
26485
  for (let i = sections.length - 1; i >= 0; i--) {
26319
26486
  const element = document.getElementById(sections[i].id);
26320
26487
  if (element && scrollPosition >= element.offsetTop) {
@@ -26509,7 +26676,7 @@ function NavigationSidebar({ config, disabled = false }) {
26509
26676
  } else {
26510
26677
  setDesktopMinimized((prev) => !prev);
26511
26678
  }
26512
- _optionalChain([config, 'access', _521 => _521.onToggleMinimized, 'optionalCall', _522 => _522()]);
26679
+ _optionalChain([config, 'access', _530 => _530.onToggleMinimized, 'optionalCall', _531 => _531()]);
26513
26680
  }, [isTablet, setDesktopMinimized, config]);
26514
26681
  const closeOverlay = _react.useCallback.call(void 0, () => {
26515
26682
  setTabletMinimized(true);
@@ -26523,11 +26690,11 @@ function NavigationSidebar({ config, disabled = false }) {
26523
26690
  return () => document.removeEventListener("keydown", handleKeyDown);
26524
26691
  }, [isOverlayOpen, closeOverlay]);
26525
26692
  const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
26526
- _optionalChain([event, 'optionalAccess', _523 => _523.stopPropagation, 'call', _524 => _524()]);
26693
+ _optionalChain([event, 'optionalAccess', _532 => _532.stopPropagation, 'call', _533 => _533()]);
26527
26694
  if (item.onClick) {
26528
26695
  item.onClick();
26529
26696
  } else if (item.path) {
26530
- _optionalChain([config, 'access', _525 => _525.onNavigate, 'optionalCall', _526 => _526(item.path)]);
26697
+ _optionalChain([config, 'access', _534 => _534.onNavigate, 'optionalCall', _535 => _535(item.path)]);
26531
26698
  }
26532
26699
  if (isTablet) setTabletMinimized(true);
26533
26700
  }, [config, isTablet]);
@@ -26672,11 +26839,11 @@ function HeaderGlobalSearch({
26672
26839
  };
26673
26840
  const handleSubmit = (e) => {
26674
26841
  e.preventDefault();
26675
- _optionalChain([onSubmit, 'optionalCall', _527 => _527(currentValue)]);
26842
+ _optionalChain([onSubmit, 'optionalCall', _536 => _536(currentValue)]);
26676
26843
  };
26677
26844
  const handleKeyDown = (e) => {
26678
26845
  if (e.key === "Enter") {
26679
- _optionalChain([onSubmit, 'optionalCall', _528 => _528(currentValue)]);
26846
+ _optionalChain([onSubmit, 'optionalCall', _537 => _537(currentValue)]);
26680
26847
  }
26681
26848
  };
26682
26849
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -26770,8 +26937,8 @@ function HeaderOrganizationFilter({
26770
26937
  className
26771
26938
  }) {
26772
26939
  const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
26773
- const displayName = _optionalChain([selectedOrg, 'optionalAccess', _529 => _529.name]) || "All Organizations";
26774
- const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _530 => _530.deviceCount]), () => ( totalDeviceCount));
26940
+ const displayName = _optionalChain([selectedOrg, 'optionalAccess', _538 => _538.name]) || "All Organizations";
26941
+ const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _539 => _539.deviceCount]), () => ( totalDeviceCount));
26775
26942
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkE6B4B7GMcjs.DropdownMenu, { children: [
26776
26943
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE6B4B7GMcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26777
26944
  "button",
@@ -26796,11 +26963,11 @@ function HeaderOrganizationFilter({
26796
26963
  }
26797
26964
  ) }),
26798
26965
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkE6B4B7GMcjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
26799
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE6B4B7GMcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _531 => _531("")]), children: "All Organizations" }),
26966
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE6B4B7GMcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _540 => _540("")]), children: "All Organizations" }),
26800
26967
  organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26801
26968
  _chunkE6B4B7GMcjs.DropdownMenuItem,
26802
26969
  {
26803
- onClick: () => _optionalChain([onOrgChange, 'optionalCall', _532 => _532(org.id)]),
26970
+ onClick: () => _optionalChain([onOrgChange, 'optionalCall', _541 => _541(org.id)]),
26804
26971
  children: org.name
26805
26972
  },
26806
26973
  org.id
@@ -26985,9 +27152,9 @@ function NotificationsHeaderButton({
26985
27152
  dimmedClass
26986
27153
  }) {
26987
27154
  const ctx = useOptionalNotifications();
26988
- const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _533 => _533.unreadCount]), () => ( fallbackUnreadCount))) > 0;
26989
- const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _534 => _534.isOpen]), () => ( false));
26990
- const onClick = _optionalChain([ctx, 'optionalAccess', _535 => _535.toggle]);
27155
+ const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _542 => _542.unreadCount]), () => ( fallbackUnreadCount))) > 0;
27156
+ const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _543 => _543.isOpen]), () => ( false));
27157
+ const onClick = _optionalChain([ctx, 'optionalAccess', _544 => _544.toggle]);
26991
27158
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26992
27159
  HeaderButton,
26993
27160
  {
@@ -27051,7 +27218,7 @@ var MobileBurgerMenu = React102.default.memo(function MobileBurgerMenu2({
27051
27218
  if (item.onClick) {
27052
27219
  item.onClick();
27053
27220
  } else if (item.path) {
27054
- _optionalChain([config, 'access', _536 => _536.onNavigate, 'optionalCall', _537 => _537(item.path)]);
27221
+ _optionalChain([config, 'access', _545 => _545.onNavigate, 'optionalCall', _546 => _546(item.path)]);
27055
27222
  }
27056
27223
  onClose();
27057
27224
  }, [config, onClose]);
@@ -27294,7 +27461,7 @@ var AppLayoutDrawerRoot = ({
27294
27461
  const handleOpenChange = React95.useCallback(
27295
27462
  (next) => {
27296
27463
  if (!isControlled) setInternalOpen(next);
27297
- _optionalChain([onOpenChange, 'optionalCall', _538 => _538(next)]);
27464
+ _optionalChain([onOpenChange, 'optionalCall', _547 => _547(next)]);
27298
27465
  },
27299
27466
  [isControlled, onOpenChange]
27300
27467
  );
@@ -27675,10 +27842,10 @@ var AppLayoutDrawerContent = React95.forwardRef(
27675
27842
  ),
27676
27843
  style,
27677
27844
  onInteractOutside: (event) => {
27678
- _optionalChain([onInteractOutside, 'optionalCall', _539 => _539(event)]);
27845
+ _optionalChain([onInteractOutside, 'optionalCall', _548 => _548(event)]);
27679
27846
  if (event.defaultPrevented) return;
27680
27847
  const target = event.target;
27681
- const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _540 => _540.contains, 'call', _541 => _541(target)]);
27848
+ const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _549 => _549.contains, 'call', _550 => _550(target)]);
27682
27849
  if (!isInsideContainer) {
27683
27850
  event.preventDefault();
27684
27851
  return;
@@ -27867,7 +28034,7 @@ var ShellTypeBadge = ({
27867
28034
  className,
27868
28035
  iconClassName
27869
28036
  }) => {
27870
- const normalizedType = _optionalChain([shellType, 'optionalAccess', _542 => _542.toUpperCase, 'call', _543 => _543()]);
28037
+ const normalizedType = _optionalChain([shellType, 'optionalAccess', _551 => _551.toUpperCase, 'call', _552 => _552()]);
27871
28038
  const label = getShellLabel(normalizedType);
27872
28039
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
27873
28040
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
@@ -28254,12 +28421,12 @@ function OnboardingWalkthrough({
28254
28421
  }
28255
28422
  }, [state.completedSteps, markComplete]);
28256
28423
  const handleStepSkip = (step) => {
28257
- _optionalChain([step, 'access', _544 => _544.onSkip, 'optionalCall', _545 => _545()]);
28424
+ _optionalChain([step, 'access', _553 => _553.onSkip, 'optionalCall', _554 => _554()]);
28258
28425
  markSkipped(step.id);
28259
28426
  };
28260
28427
  const handleDismiss = () => {
28261
28428
  dismissOnboarding();
28262
- _optionalChain([onDismiss, 'optionalCall', _546 => _546()]);
28429
+ _optionalChain([onDismiss, 'optionalCall', _555 => _555()]);
28263
28430
  };
28264
28431
  if (state.dismissed) {
28265
28432
  return null;
@@ -28389,7 +28556,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
28389
28556
  onKeyDown: (e) => {
28390
28557
  if (e.key === "Enter" || e.key === " ") {
28391
28558
  e.preventDefault();
28392
- _optionalChain([onClick, 'optionalCall', _547 => _547()]);
28559
+ _optionalChain([onClick, 'optionalCall', _556 => _556()]);
28393
28560
  }
28394
28561
  },
28395
28562
  children: [
@@ -28490,7 +28657,7 @@ var LogsList = React99.forwardRef(({
28490
28657
  log,
28491
28658
  isLast: index === logs.length - 1,
28492
28659
  showConnector,
28493
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _548 => _548(log)])
28660
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _557 => _557(log)])
28494
28661
  },
28495
28662
  log.id
28496
28663
  ))
@@ -28591,7 +28758,7 @@ var Slider = React101.forwardRef(
28591
28758
  ({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
28592
28759
  const handleChange = (e) => {
28593
28760
  const newValue = [Number(e.target.value)];
28594
- _optionalChain([onValueChange, 'optionalCall', _549 => _549(newValue)]);
28761
+ _optionalChain([onValueChange, 'optionalCall', _558 => _558(newValue)]);
28595
28762
  };
28596
28763
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28597
28764
  "input",
@@ -29022,7 +29189,7 @@ function CursorPaginationSimple({
29022
29189
  {
29023
29190
  variant: "transparent",
29024
29191
  size: "icon",
29025
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _550 => _550("")]),
29192
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _559 => _559("")]),
29026
29193
  disabled: !hasPreviousPage || loading,
29027
29194
  className: "h-8 w-8",
29028
29195
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -29034,7 +29201,7 @@ function CursorPaginationSimple({
29034
29201
  {
29035
29202
  variant: "transparent",
29036
29203
  size: "icon",
29037
- onClick: () => _optionalChain([onNext, 'optionalCall', _551 => _551("")]),
29204
+ onClick: () => _optionalChain([onNext, 'optionalCall', _560 => _560("")]),
29038
29205
  disabled: !hasNextPage || loading,
29039
29206
  className: "h-8 w-8",
29040
29207
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -29094,7 +29261,7 @@ function TableColumnFilterDropdown({
29094
29261
  placement = "bottom-start",
29095
29262
  dropdownClassName = "min-w-[240px]"
29096
29263
  }) {
29097
- const activeCount = _optionalChain([filters, 'optionalAccess', _552 => _552[columnKey], 'optionalAccess', _553 => _553.length]) || 0;
29264
+ const activeCount = _optionalChain([filters, 'optionalAccess', _561 => _561[columnKey], 'optionalAccess', _562 => _562.length]) || 0;
29098
29265
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29099
29266
  FiltersDropdown,
29100
29267
  {
@@ -29137,7 +29304,7 @@ function TableColumnFilterDropdown({
29137
29304
  delete newFilters[columnKey];
29138
29305
  onFilterChange(newFilters);
29139
29306
  },
29140
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _554 => _554[columnKey]]) || [] },
29307
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _563 => _563[columnKey]]) || [] },
29141
29308
  placement,
29142
29309
  dropdownClassName
29143
29310
  }
@@ -29434,7 +29601,7 @@ function TableRow({
29434
29601
  const keys = column.key.split(".");
29435
29602
  let value = item;
29436
29603
  for (const key of keys) {
29437
- value = _optionalChain([value, 'optionalAccess', _555 => _555[key]]);
29604
+ value = _optionalChain([value, 'optionalAccess', _564 => _564[key]]);
29438
29605
  }
29439
29606
  if (value === null || value === void 0) {
29440
29607
  return "-";
@@ -29504,7 +29671,7 @@ function TableRow({
29504
29671
  // src/components/ui/table/table.tsx
29505
29672
 
29506
29673
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
29507
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _556 => _556.length])) || Boolean(renderRowActions);
29674
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _565 => _565.length])) || Boolean(renderRowActions);
29508
29675
  const result = [...columns];
29509
29676
  if (hasActions) {
29510
29677
  const actionsColumn = {
@@ -29598,7 +29765,7 @@ function Table({
29598
29765
  return rowKey(item);
29599
29766
  }
29600
29767
  const key = item[rowKey];
29601
- return _optionalChain([key, 'optionalAccess', _557 => _557.toString, 'call', _558 => _558()]) || index.toString();
29768
+ return _optionalChain([key, 'optionalAccess', _566 => _566.toString, 'call', _567 => _567()]) || index.toString();
29602
29769
  };
29603
29770
  const getRowClassName = (item, index) => {
29604
29771
  if (typeof rowClassName === "function") {
@@ -29632,23 +29799,23 @@ function Table({
29632
29799
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
29633
29800
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
29634
29801
  const sentinelRef = _react.useRef.call(void 0, null);
29635
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _559 => _559.onLoadMore]));
29636
- onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _560 => _560.onLoadMore]);
29802
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _568 => _568.onLoadMore]));
29803
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _569 => _569.onLoadMore]);
29637
29804
  _react.useEffect.call(void 0, () => {
29638
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _561 => _561.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
29805
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _570 => _570.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
29639
29806
  const sentinel = sentinelRef.current;
29640
29807
  if (!sentinel) return;
29641
29808
  const observer = new IntersectionObserver(
29642
29809
  (entries) => {
29643
- if (_optionalChain([entries, 'access', _562 => _562[0], 'optionalAccess', _563 => _563.isIntersecting])) {
29644
- _optionalChain([onLoadMoreRef, 'access', _564 => _564.current, 'optionalCall', _565 => _565()]);
29810
+ if (_optionalChain([entries, 'access', _571 => _571[0], 'optionalAccess', _572 => _572.isIntersecting])) {
29811
+ _optionalChain([onLoadMoreRef, 'access', _573 => _573.current, 'optionalCall', _574 => _574()]);
29645
29812
  }
29646
29813
  },
29647
29814
  { rootMargin: "200px" }
29648
29815
  );
29649
29816
  observer.observe(sentinel);
29650
29817
  return () => observer.disconnect();
29651
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _566 => _566.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _567 => _567.isFetchingNextPage])]);
29818
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _575 => _575.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _576 => _576.isFetchingNextPage])]);
29652
29819
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk2TBN53KYcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
29653
29820
  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: [
29654
29821
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -29719,7 +29886,7 @@ function Table({
29719
29886
  },
29720
29887
  getRowKey(item, index)
29721
29888
  )),
29722
- _optionalChain([infiniteScroll, 'optionalAccess', _568 => _568.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29889
+ _optionalChain([infiniteScroll, 'optionalAccess', _577 => _577.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29723
29890
  TableCardSkeleton,
29724
29891
  {
29725
29892
  columns,
@@ -29728,7 +29895,7 @@ function Table({
29728
29895
  hasChevron: Boolean(rowHref)
29729
29896
  }
29730
29897
  ),
29731
- _optionalChain([infiniteScroll, 'optionalAccess', _569 => _569.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
29898
+ _optionalChain([infiniteScroll, 'optionalAccess', _578 => _578.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
29732
29899
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
29733
29900
  "div",
29734
29901
  {
@@ -30086,7 +30253,7 @@ function QueryReportTable({
30086
30253
  );
30087
30254
  const handleExport = () => {
30088
30255
  exportToCSV(data, columns, exportFilename);
30089
- _optionalChain([onExport, 'optionalCall', _570 => _570()]);
30256
+ _optionalChain([onExport, 'optionalCall', _579 => _579()]);
30090
30257
  };
30091
30258
  const tableMinWidth = columns.length * (columnWidth + 16);
30092
30259
  const {
@@ -30259,7 +30426,7 @@ function DataTableColumnFilter({
30259
30426
  align = "left"
30260
30427
  }) {
30261
30428
  const currentValue = column.getFilterValue();
30262
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _571 => _571.length]), () => ( 0));
30429
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _580 => _580.length]), () => ( 0));
30263
30430
  const sections = _react.useMemo.call(void 0,
30264
30431
  () => [
30265
30432
  {
@@ -30339,7 +30506,7 @@ function DataTableHeader({
30339
30506
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
30340
30507
  if (header.isPlaceholder) return false;
30341
30508
  if (isLgUp) return true;
30342
- return Boolean(_optionalChain([header, 'access', _572 => _572.column, 'access', _573 => _573.columnDef, 'access', _574 => _574.meta, 'optionalAccess', _575 => _575.filter]));
30509
+ return Boolean(_optionalChain([header, 'access', _581 => _581.column, 'access', _582 => _582.columnDef, 'access', _583 => _583.meta, 'optionalAccess', _584 => _584.filter]));
30343
30510
  });
30344
30511
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30345
30512
  "div",
@@ -30369,20 +30536,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
30369
30536
  if (header.isPlaceholder) return null;
30370
30537
  const column = header.column;
30371
30538
  const meta = column.columnDef.meta;
30372
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _576 => _576.filter]));
30373
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _577 => _577.align]), () => ( "left"));
30374
- const canSort = _optionalChain([meta, 'optionalAccess', _578 => _578.sortable]) === true;
30375
- const sortDir = _optionalChain([sort, 'optionalAccess', _579 => _579.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
30539
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _585 => _585.filter]));
30540
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _586 => _586.align]), () => ( "left"));
30541
+ const canSort = _optionalChain([meta, 'optionalAccess', _587 => _587.sortable]) === true;
30542
+ const sortDir = _optionalChain([sort, 'optionalAccess', _588 => _588.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
30376
30543
  if (!isLgUp && !hasFilter) return null;
30377
30544
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30378
30545
  "div",
30379
30546
  {
30380
30547
  className: _chunk2TBN53KYcjs.cn.call(void 0,
30381
30548
  "flex items-stretch",
30382
- isLgUp && (_optionalChain([meta, 'optionalAccess', _580 => _580.width]) || "flex-1 min-w-0"),
30383
- _optionalChain([meta, 'optionalAccess', _581 => _581.headerClassName]),
30549
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _589 => _589.width]) || "flex-1 min-w-0"),
30550
+ _optionalChain([meta, 'optionalAccess', _590 => _590.headerClassName]),
30384
30551
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
30385
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _582 => _582.hideAt]))
30552
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _591 => _591.hideAt]))
30386
30553
  ),
30387
30554
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30388
30555
  DataTableColumnFilter,
@@ -30401,7 +30568,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
30401
30568
  isLgUp && alignJustify(align),
30402
30569
  canSort && "group cursor-pointer"
30403
30570
  ),
30404
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _583 => _583(column.id)]) : void 0,
30571
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _592 => _592(column.id)]) : void 0,
30405
30572
  children: [
30406
30573
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
30407
30574
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -30485,7 +30652,7 @@ function DataTableSkeleton({
30485
30652
  }) {
30486
30653
  const table = useDataTableContext();
30487
30654
  const columns = table.getVisibleFlatColumns();
30488
- const firstColumnId = _optionalChain([columns, 'access', _584 => _584[0], 'optionalAccess', _585 => _585.id]);
30655
+ const firstColumnId = _optionalChain([columns, 'access', _593 => _593[0], 'optionalAccess', _594 => _594.id]);
30489
30656
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
30490
30657
  "div",
30491
30658
  {
@@ -30509,7 +30676,7 @@ function DataTableSkeleton({
30509
30676
  {
30510
30677
  className: _chunk2TBN53KYcjs.cn.call(void 0,
30511
30678
  "flex flex-col justify-center shrink-0",
30512
- _optionalChain([meta, 'optionalAccess', _586 => _586.width]) || "flex-1"
30679
+ _optionalChain([meta, 'optionalAccess', _595 => _595.width]) || "flex-1"
30513
30680
  ),
30514
30681
  children: [
30515
30682
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
@@ -30548,14 +30715,17 @@ function DataTableRowImpl({
30548
30715
  onClick,
30549
30716
  href,
30550
30717
  compact,
30551
- className
30718
+ className,
30719
+ subRow
30552
30720
  }) {
30721
+ const hasSubRow = subRow != null && subRow !== false;
30553
30722
  const isLinkMode = Boolean(href) && !onClick;
30723
+ const isWholeCardLink = isLinkMode && !hasSubRow;
30554
30724
  const containerRef = _react.useRef.call(void 0, null);
30555
30725
  const handleClick = _react.useCallback.call(void 0,
30556
30726
  (e) => {
30557
30727
  const target = e.target;
30558
- if (!_optionalChain([containerRef, 'access', _587 => _587.current, 'optionalAccess', _588 => _588.contains, 'call', _589 => _589(target)])) {
30728
+ if (!_optionalChain([containerRef, 'access', _596 => _596.current, 'optionalAccess', _597 => _597.contains, 'call', _598 => _598(target)])) {
30559
30729
  if (isLinkMode) e.preventDefault();
30560
30730
  return;
30561
30731
  }
@@ -30563,13 +30733,14 @@ function DataTableRowImpl({
30563
30733
  if (isLinkMode) e.preventDefault();
30564
30734
  return;
30565
30735
  }
30566
- _optionalChain([onClick, 'optionalCall', _590 => _590(row.original)]);
30736
+ _optionalChain([onClick, 'optionalCall', _599 => _599(row.original)]);
30567
30737
  },
30568
30738
  [onClick, row.original, isLinkMode]
30569
30739
  );
30570
30740
  const containerClassName = _chunk2TBN53KYcjs.cn.call(void 0,
30571
30741
  "block rounded-md bg-ods-card border border-ods-border overflow-hidden no-underline text-inherit",
30572
- (onClick || isLinkMode) && "cursor-pointer hover:bg-ods-bg-active transition-colors",
30742
+ // With a sub-row the link wraps only the cells, so keep the clickable affordance off the whole card.
30743
+ (onClick || isWholeCardLink) && "cursor-pointer hover:bg-ods-bg-active transition-colors",
30573
30744
  className
30574
30745
  );
30575
30746
  const cells = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -30577,7 +30748,8 @@ function DataTableRowImpl({
30577
30748
  {
30578
30749
  className: _chunk2TBN53KYcjs.cn.call(void 0,
30579
30750
  "flex items-center gap-[var(--spacing-system-mf)] px-[var(--spacing-system-mf)]",
30580
- compact ? "py-[var(--spacing-system-xsf)]" : `py-0 ${ROW_HEIGHT_DESKTOP2}`
30751
+ compact ? "py-[var(--spacing-system-xsf)]" : `py-0 ${ROW_HEIGHT_DESKTOP2}`,
30752
+ hasSubRow && "border-b border-ods-border"
30581
30753
  ),
30582
30754
  children: row.getVisibleCells().map((cell) => {
30583
30755
  const meta = cell.column.columnDef.meta;
@@ -30586,10 +30758,10 @@ function DataTableRowImpl({
30586
30758
  {
30587
30759
  className: _chunk2TBN53KYcjs.cn.call(void 0,
30588
30760
  "flex flex-col overflow-hidden",
30589
- alignJustify(_optionalChain([meta, 'optionalAccess', _591 => _591.align])),
30590
- _optionalChain([meta, 'optionalAccess', _592 => _592.width]) || "flex-1 min-w-0",
30591
- _optionalChain([meta, 'optionalAccess', _593 => _593.cellClassName]),
30592
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _594 => _594.hideAt]))
30761
+ alignJustify(_optionalChain([meta, 'optionalAccess', _600 => _600.align])),
30762
+ _optionalChain([meta, 'optionalAccess', _601 => _601.width]) || "flex-1 min-w-0",
30763
+ _optionalChain([meta, 'optionalAccess', _602 => _602.cellClassName]),
30764
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _603 => _603.hideAt]))
30593
30765
  ),
30594
30766
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
30595
30767
  },
@@ -30598,7 +30770,7 @@ function DataTableRowImpl({
30598
30770
  })
30599
30771
  }
30600
30772
  );
30601
- if (isLinkMode && href) {
30773
+ if (isWholeCardLink && href) {
30602
30774
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30603
30775
  _chunkWBR7H6E3cjs.next_link_default,
30604
30776
  {
@@ -30611,13 +30783,25 @@ function DataTableRowImpl({
30611
30783
  }
30612
30784
  );
30613
30785
  }
30614
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30786
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
30615
30787
  "div",
30616
30788
  {
30617
30789
  ref: containerRef,
30618
30790
  className: containerClassName,
30619
30791
  onClick: onClick ? handleClick : void 0,
30620
- children: cells
30792
+ children: [
30793
+ isLinkMode && href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30794
+ _chunkWBR7H6E3cjs.next_link_default,
30795
+ {
30796
+ href,
30797
+ prefetch: false,
30798
+ className: "block no-underline text-inherit cursor-pointer hover:bg-ods-bg-active transition-colors",
30799
+ onClick: handleClick,
30800
+ children: cells
30801
+ }
30802
+ ) : cells,
30803
+ hasSubRow && subRow
30804
+ ]
30621
30805
  }
30622
30806
  );
30623
30807
  }
@@ -30640,7 +30824,8 @@ function DataTableBody({
30640
30824
  compact,
30641
30825
  onRowClick,
30642
30826
  rowHref,
30643
- minRows
30827
+ minRows,
30828
+ renderSubRow
30644
30829
  }) {
30645
30830
  const table = useDataTableContext();
30646
30831
  const rows = table.getRowModel().rows;
@@ -30654,7 +30839,7 @@ function DataTableBody({
30654
30839
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk2TBN53KYcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
30655
30840
  rows.map((row, index) => {
30656
30841
  const item = row.original;
30657
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _595 => _595(item)]), () => ( void 0));
30842
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _604 => _604(item)]), () => ( void 0));
30658
30843
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
30659
30844
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30660
30845
  DataTableRow,
@@ -30663,7 +30848,8 @@ function DataTableBody({
30663
30848
  onClick: onRowClick,
30664
30849
  href,
30665
30850
  compact,
30666
- className: cls
30851
+ className: cls,
30852
+ subRow: _optionalChain([renderSubRow, 'optionalCall', _605 => _605(item)])
30667
30853
  },
30668
30854
  row.id
30669
30855
  );
@@ -30718,7 +30904,7 @@ function DataTableInfiniteFooter({
30718
30904
  if (!sentinel) return;
30719
30905
  const observer = new IntersectionObserver(
30720
30906
  (entries) => {
30721
- if (_optionalChain([entries, 'access', _596 => _596[0], 'optionalAccess', _597 => _597.isIntersecting])) onLoadMoreRef.current();
30907
+ if (_optionalChain([entries, 'access', _606 => _606[0], 'optionalAccess', _607 => _607.isIntersecting])) onLoadMoreRef.current();
30722
30908
  },
30723
30909
  { rootMargin }
30724
30910
  );
@@ -30766,7 +30952,7 @@ function DataTableRowCount({
30766
30952
  const table = useDataTableContext();
30767
30953
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
30768
30954
  if (hideWhenEmpty && count === 0) return null;
30769
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _598 => _598(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
30955
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _608 => _608(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
30770
30956
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
30771
30957
  "span",
30772
30958
  {
@@ -30922,7 +31108,7 @@ function SearchInput({
30922
31108
  if (!showHiddenTags) return;
30923
31109
  const handleClick = (e) => {
30924
31110
  const target = e.target;
30925
- if (!_optionalChain([hiddenTagsRef, 'access', _599 => _599.current, 'optionalAccess', _600 => _600.contains, 'call', _601 => _601(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _602 => _602.current, 'optionalAccess', _603 => _603.contains, 'call', _604 => _604(target)])) {
31111
+ if (!_optionalChain([hiddenTagsRef, 'access', _609 => _609.current, 'optionalAccess', _610 => _610.contains, 'call', _611 => _611(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _612 => _612.current, 'optionalAccess', _613 => _613.contains, 'call', _614 => _614(target)])) {
30926
31112
  setShowHiddenTags(false);
30927
31113
  }
30928
31114
  };
@@ -30970,10 +31156,10 @@ function SearchInput({
30970
31156
  } else {
30971
31157
  setInternalValue("");
30972
31158
  }
30973
- _optionalChain([inputRef, 'access', _605 => _605.current, 'optionalAccess', _606 => _606.focus, 'call', _607 => _607()]);
31159
+ _optionalChain([inputRef, 'access', _615 => _615.current, 'optionalAccess', _616 => _616.focus, 'call', _617 => _617()]);
30974
31160
  };
30975
31161
  const handleResultClick = (result, e) => {
30976
- _optionalChain([onResultSelect, 'optionalCall', _608 => _608(
31162
+ _optionalChain([onResultSelect, 'optionalCall', _618 => _618(
30977
31163
  result,
30978
31164
  e ? {
30979
31165
  metaKey: e.metaKey,
@@ -31005,7 +31191,7 @@ function SearchInput({
31005
31191
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
31006
31192
  handleResultClick(flatResults[highlightedIndex]);
31007
31193
  } else {
31008
- _optionalChain([onSubmit, 'optionalCall', _609 => _609(currentValue)]);
31194
+ _optionalChain([onSubmit, 'optionalCall', _619 => _619(currentValue)]);
31009
31195
  }
31010
31196
  break;
31011
31197
  case "Escape":
@@ -31083,7 +31269,7 @@ function SearchInput({
31083
31269
  dropdownVisible && "!border-ods-accent"
31084
31270
  ),
31085
31271
  onClick: () => {
31086
- _optionalChain([inputRef, 'access', _610 => _610.current, 'optionalAccess', _611 => _611.focus, 'call', _612 => _612()]);
31272
+ _optionalChain([inputRef, 'access', _620 => _620.current, 'optionalAccess', _621 => _621.focus, 'call', _622 => _622()]);
31087
31273
  setIsOpen(true);
31088
31274
  },
31089
31275
  children: [
@@ -31167,10 +31353,10 @@ function SearchInput({
31167
31353
  align: "start",
31168
31354
  onOpenAutoFocus: (e) => {
31169
31355
  e.preventDefault();
31170
- _optionalChain([inputRef, 'access', _613 => _613.current, 'optionalAccess', _614 => _614.focus, 'call', _615 => _615()]);
31356
+ _optionalChain([inputRef, 'access', _623 => _623.current, 'optionalAccess', _624 => _624.focus, 'call', _625 => _625()]);
31171
31357
  },
31172
31358
  onInteractOutside: (e) => {
31173
- if (_optionalChain([containerRef, 'access', _616 => _616.current, 'optionalAccess', _617 => _617.contains, 'call', _618 => _618(e.target)])) {
31359
+ if (_optionalChain([containerRef, 'access', _626 => _626.current, 'optionalAccess', _627 => _627.contains, 'call', _628 => _628(e.target)])) {
31174
31360
  e.preventDefault();
31175
31361
  }
31176
31362
  },
@@ -31187,10 +31373,10 @@ function SearchInput({
31187
31373
  ref: hiddenTagsPopupRef,
31188
31374
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
31189
31375
  style: {
31190
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _619 => _619.current, 'optionalAccess', _620 => _620.getBoundingClientRect, 'call', _621 => _621(), 'access', _622 => _622.left]), () => ( 0))) : 0
31376
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _629 => _629.current, 'optionalAccess', _630 => _630.getBoundingClientRect, 'call', _631 => _631(), 'access', _632 => _632.left]), () => ( 0))) : 0
31191
31377
  },
31192
31378
  onRemove: (value2) => {
31193
- _optionalChain([onFilterRemove, 'optionalCall', _623 => _623(value2)]);
31379
+ _optionalChain([onFilterRemove, 'optionalCall', _633 => _633(value2)]);
31194
31380
  if (hiddenCount <= 1) setShowHiddenTags(false);
31195
31381
  }
31196
31382
  }
@@ -31241,7 +31427,7 @@ function FilterListItem({
31241
31427
  }) {
31242
31428
  const handleToggle = () => {
31243
31429
  if (disabled) return;
31244
- _optionalChain([onToggle, 'optionalCall', _624 => _624(!selected)]);
31430
+ _optionalChain([onToggle, 'optionalCall', _634 => _634(!selected)]);
31245
31431
  };
31246
31432
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
31247
31433
  "div",
@@ -31288,7 +31474,7 @@ function FilterListItem({
31288
31474
  CheckboxPrimitive4.Root,
31289
31475
  {
31290
31476
  checked: selected,
31291
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _625 => _625(c === true)]),
31477
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _635 => _635(c === true)]),
31292
31478
  onClick: (e) => e.stopPropagation(),
31293
31479
  disabled,
31294
31480
  "aria-label": title,
@@ -31387,7 +31573,7 @@ function TagSearchInput({
31387
31573
  if (!showHiddenTags) return;
31388
31574
  const handleClick = (e) => {
31389
31575
  const target = e.target;
31390
- if (!_optionalChain([hiddenTagsRef, 'access', _626 => _626.current, 'optionalAccess', _627 => _627.contains, 'call', _628 => _628(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _629 => _629.current, 'optionalAccess', _630 => _630.contains, 'call', _631 => _631(target)])) {
31576
+ if (!_optionalChain([hiddenTagsRef, 'access', _636 => _636.current, 'optionalAccess', _637 => _637.contains, 'call', _638 => _638(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _639 => _639.current, 'optionalAccess', _640 => _640.contains, 'call', _641 => _641(target)])) {
31391
31577
  setShowHiddenTags(false);
31392
31578
  }
31393
31579
  };
@@ -31403,13 +31589,13 @@ function TagSearchInput({
31403
31589
  e.preventDefault();
31404
31590
  onSubmit(searchValue);
31405
31591
  }
31406
- _optionalChain([onKeyDown, 'optionalCall', _632 => _632(e)]);
31592
+ _optionalChain([onKeyDown, 'optionalCall', _642 => _642(e)]);
31407
31593
  };
31408
31594
  const handleClearAll = (e) => {
31409
31595
  e.stopPropagation();
31410
31596
  e.preventDefault();
31411
- _optionalChain([onClearAll, 'optionalCall', _633 => _633()]);
31412
- _optionalChain([inputRef, 'access', _634 => _634.current, 'optionalAccess', _635 => _635.focus, 'call', _636 => _636()]);
31597
+ _optionalChain([onClearAll, 'optionalCall', _643 => _643()]);
31598
+ _optionalChain([inputRef, 'access', _644 => _644.current, 'optionalAccess', _645 => _645.focus, 'call', _646 => _646()]);
31413
31599
  };
31414
31600
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
31415
31601
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -31426,7 +31612,7 @@ function TagSearchInput({
31426
31612
  className
31427
31613
  ),
31428
31614
  onClick: () => {
31429
- if (!disabled) _optionalChain([inputRef, 'access', _637 => _637.current, 'optionalAccess', _638 => _638.focus, 'call', _639 => _639()]);
31615
+ if (!disabled) _optionalChain([inputRef, 'access', _647 => _647.current, 'optionalAccess', _648 => _648.focus, 'call', _649 => _649()]);
31430
31616
  },
31431
31617
  children: [
31432
31618
  /* @__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" }) }),
@@ -31498,7 +31684,7 @@ function TagSearchInput({
31498
31684
  items: hiddenTags,
31499
31685
  disabled,
31500
31686
  style: {
31501
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _640 => _640.current, 'optionalAccess', _641 => _641.getBoundingClientRect, 'call', _642 => _642(), 'access', _643 => _643.left]), () => ( 0))) : 0
31687
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _650 => _650.current, 'optionalAccess', _651 => _651.getBoundingClientRect, 'call', _652 => _652(), 'access', _653 => _653.left]), () => ( 0))) : 0
31502
31688
  },
31503
31689
  onRemove: (value) => {
31504
31690
  onTagRemove(value);
@@ -31599,7 +31785,7 @@ function MarkdownEditor({
31599
31785
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
31600
31786
  _react.useEffect.call(void 0, () => {
31601
31787
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
31602
- if (_optionalChain([mod, 'access', _644 => _644.commands, 'optionalAccess', _645 => _645.getExtraCommands])) {
31788
+ if (_optionalChain([mod, 'access', _654 => _654.commands, 'optionalAccess', _655 => _655.getExtraCommands])) {
31603
31789
  setDefaultExtraCommands(mod.commands.getExtraCommands());
31604
31790
  }
31605
31791
  });
@@ -31633,7 +31819,7 @@ function MarkdownEditor({
31633
31819
  const isImage = file.type.startsWith("image/");
31634
31820
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
31635
31821
  insertTextAtCursor(markdown);
31636
- _optionalChain([onFileUploaded, 'optionalCall', _646 => _646(url, file.name)]);
31822
+ _optionalChain([onFileUploaded, 'optionalCall', _656 => _656(url, file.name)]);
31637
31823
  } catch (error) {
31638
31824
  console.error("File upload failed:", error);
31639
31825
  setUploadProgress("Upload failed. Please try again.");
@@ -31646,7 +31832,7 @@ function MarkdownEditor({
31646
31832
  );
31647
31833
  const handleFileInputChange = _react.useCallback.call(void 0,
31648
31834
  (e) => {
31649
- const file = _optionalChain([e, 'access', _647 => _647.target, 'access', _648 => _648.files, 'optionalAccess', _649 => _649[0]]);
31835
+ const file = _optionalChain([e, 'access', _657 => _657.target, 'access', _658 => _658.files, 'optionalAccess', _659 => _659[0]]);
31650
31836
  if (file) {
31651
31837
  handleFileUpload(file);
31652
31838
  e.target.value = "";
@@ -31657,7 +31843,7 @@ function MarkdownEditor({
31657
31843
  const handlePaste = _react.useCallback.call(void 0,
31658
31844
  (e) => {
31659
31845
  if (!onUploadFile) return;
31660
- const items = _optionalChain([e, 'access', _650 => _650.clipboardData, 'optionalAccess', _651 => _651.items]);
31846
+ const items = _optionalChain([e, 'access', _660 => _660.clipboardData, 'optionalAccess', _661 => _661.items]);
31661
31847
  if (!items) return;
31662
31848
  for (const item of items) {
31663
31849
  if (item.type.startsWith("image/")) {
@@ -31682,7 +31868,7 @@ function MarkdownEditor({
31682
31868
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
31683
31869
  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" }),
31684
31870
  execute: () => {
31685
- _optionalChain([fileInputRef, 'access', _652 => _652.current, 'optionalAccess', _653 => _653.click, 'call', _654 => _654()]);
31871
+ _optionalChain([fileInputRef, 'access', _662 => _662.current, 'optionalAccess', _663 => _663.click, 'call', _664 => _664()]);
31686
31872
  }
31687
31873
  } : null;
31688
31874
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -31694,7 +31880,7 @@ function MarkdownEditor({
31694
31880
  const EDGE_ZONE = 60;
31695
31881
  const MAX_SCROLL_SPEED = 15;
31696
31882
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
31697
- let node = _optionalChain([el, 'optionalAccess', _655 => _655.parentElement]);
31883
+ let node = _optionalChain([el, 'optionalAccess', _665 => _665.parentElement]);
31698
31884
  while (node && node !== document.documentElement) {
31699
31885
  const { overflowY } = window.getComputedStyle(node);
31700
31886
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -31837,7 +32023,7 @@ function matchesAccept(file, accept) {
31837
32023
  });
31838
32024
  }
31839
32025
  function dragHasFiles(e) {
31840
- const types = _optionalChain([e, 'access', _656 => _656.dataTransfer, 'optionalAccess', _657 => _657.types]);
32026
+ const types = _optionalChain([e, 'access', _666 => _666.dataTransfer, 'optionalAccess', _667 => _667.types]);
31841
32027
  if (!types) return false;
31842
32028
  for (let i = 0; i < types.length; i++) {
31843
32029
  if (types[i] === "Files") return true;
@@ -31932,7 +32118,7 @@ function FileUpload({
31932
32118
  e.stopPropagation();
31933
32119
  setDragActive(false);
31934
32120
  if (disabled) return;
31935
- if (_optionalChain([e, 'access', _658 => _658.dataTransfer, 'access', _659 => _659.files, 'optionalAccess', _660 => _660.length])) {
32121
+ if (_optionalChain([e, 'access', _668 => _668.dataTransfer, 'access', _669 => _669.files, 'optionalAccess', _670 => _670.length])) {
31936
32122
  handleFiles(e.dataTransfer.files);
31937
32123
  }
31938
32124
  };
@@ -31960,7 +32146,7 @@ function FileUpload({
31960
32146
  e.preventDefault();
31961
32147
  dragCounter = 0;
31962
32148
  setDragActive(false);
31963
- if (_optionalChain([e, 'access', _661 => _661.dataTransfer, 'optionalAccess', _662 => _662.files, 'optionalAccess', _663 => _663.length])) {
32149
+ if (_optionalChain([e, 'access', _671 => _671.dataTransfer, 'optionalAccess', _672 => _672.files, 'optionalAccess', _673 => _673.length])) {
31964
32150
  handleFilesRef.current(e.dataTransfer.files);
31965
32151
  }
31966
32152
  };
@@ -31982,7 +32168,7 @@ function FileUpload({
31982
32168
  };
31983
32169
  }, [acceptWindowDrops, disabled]);
31984
32170
  const handleFileSelect = (e) => {
31985
- if (_optionalChain([e, 'access', _664 => _664.target, 'access', _665 => _665.files, 'optionalAccess', _666 => _666.length])) {
32171
+ if (_optionalChain([e, 'access', _674 => _674.target, 'access', _675 => _675.files, 'optionalAccess', _676 => _676.length])) {
31986
32172
  handleFiles(e.target.files);
31987
32173
  }
31988
32174
  };
@@ -31999,7 +32185,7 @@ function FileUpload({
31999
32185
  };
32000
32186
  const openDialog = async () => {
32001
32187
  if (disabled) return;
32002
- _optionalChain([fileInputRef, 'access', _667 => _667.current, 'optionalAccess', _668 => _668.click, 'call', _669 => _669()]);
32188
+ _optionalChain([fileInputRef, 'access', _677 => _677.current, 'optionalAccess', _678 => _678.click, 'call', _679 => _679()]);
32003
32189
  };
32004
32190
  const displayError = error || validationError || void 0;
32005
32191
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -32077,7 +32263,7 @@ function FileUpload({
32077
32263
  "button",
32078
32264
  {
32079
32265
  type: "button",
32080
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _670 => _670(entry.id)]),
32266
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _680 => _680(entry.id)]),
32081
32267
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
32082
32268
  "aria-label": `Remove ${entry.fileName}`,
32083
32269
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -32200,7 +32386,7 @@ function ImageUploader({
32200
32386
  onChange(file);
32201
32387
  };
32202
32388
  const handleFileSelect = (e) => {
32203
- validateAndEmit(_optionalChain([e, 'access', _671 => _671.target, 'access', _672 => _672.files, 'optionalAccess', _673 => _673[0]]));
32389
+ validateAndEmit(_optionalChain([e, 'access', _681 => _681.target, 'access', _682 => _682.files, 'optionalAccess', _683 => _683[0]]));
32204
32390
  if (inputRef.current) inputRef.current.value = "";
32205
32391
  };
32206
32392
  const handleDrag = (e) => {
@@ -32215,11 +32401,11 @@ function ImageUploader({
32215
32401
  e.stopPropagation();
32216
32402
  setDragActive(false);
32217
32403
  if (!interactive) return;
32218
- validateAndEmit(_optionalChain([e, 'access', _674 => _674.dataTransfer, 'access', _675 => _675.files, 'optionalAccess', _676 => _676[0]]));
32404
+ validateAndEmit(_optionalChain([e, 'access', _684 => _684.dataTransfer, 'access', _685 => _685.files, 'optionalAccess', _686 => _686[0]]));
32219
32405
  };
32220
32406
  const openDialog = () => {
32221
32407
  if (!interactive) return;
32222
- _optionalChain([inputRef, 'access', _677 => _677.current, 'optionalAccess', _678 => _678.click, 'call', _679 => _679()]);
32408
+ _optionalChain([inputRef, 'access', _687 => _687.current, 'optionalAccess', _688 => _688.click, 'call', _689 => _689()]);
32223
32409
  };
32224
32410
  const handleRootKeyDown = (e) => {
32225
32411
  if (hasImage || !interactive) return;
@@ -32342,6 +32528,7 @@ function ActionIconButton({ onClick, disabled, ariaLabel, children }) {
32342
32528
 
32343
32529
  // src/components/ui/ticket-status-config-row.tsx
32344
32530
  _chunk2TBN53KYcjs.init_cn.call(void 0, );
32531
+
32345
32532
  _chunkE6B4B7GMcjs.init_button2.call(void 0, );
32346
32533
 
32347
32534
  // src/components/ui/color-preset-select.tsx
@@ -32389,16 +32576,6 @@ var TICKET_STATUS_COLOR_PRESETS = [
32389
32576
  ];
32390
32577
  var CUSTOM_PRESET_KEY = "custom";
32391
32578
  var DEFAULT_CUSTOM_STATUS_COLOR = "#888888";
32392
- function ColorSwatch({ color, className }) {
32393
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32394
- "span",
32395
- {
32396
- "aria-hidden": true,
32397
- className: _chunk2TBN53KYcjs.cn.call(void 0, "inline-block size-4 shrink-0 rounded-sm", className),
32398
- style: { backgroundColor: color }
32399
- }
32400
- );
32401
- }
32402
32579
  function TriggerChevron() {
32403
32580
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32404
32581
  _chunkC6ASEPZLcjs.Chevron02DownIcon,
@@ -32418,8 +32595,8 @@ function ColorPresetSelect({
32418
32595
  }) {
32419
32596
  const selectedPreset = presets.find((p) => p.key === presetKey);
32420
32597
  const isCustom = !selectedPreset;
32421
- const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _680 => _680.label]), () => ( "Custom"));
32422
- const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _681 => _681.color]), () => ( value));
32598
+ const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _690 => _690.label]), () => ( "Custom"));
32599
+ const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _691 => _691.color]), () => ( value));
32423
32600
  const groups = [
32424
32601
  {
32425
32602
  items: [
@@ -32620,10 +32797,44 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
32620
32797
 
32621
32798
  // src/components/ui/ticket-status-config-row.tsx
32622
32799
 
32800
+ var dismissOpenTooltip = null;
32623
32801
  function WithLeftTooltip({ content, children }) {
32802
+ const [open, setOpen] = React111.useState(false);
32803
+ const isTouchRef = React111.useRef(false);
32804
+ const close = React111.useCallback(() => setOpen(false), []);
32624
32805
  if (!content) return children;
32625
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Tooltip, { children: [
32626
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipTrigger, { asChild: true, children }),
32806
+ const toggleFromTouch = () => {
32807
+ setOpen((prev) => {
32808
+ const next = !prev;
32809
+ if (next) {
32810
+ if (dismissOpenTooltip && dismissOpenTooltip !== close) dismissOpenTooltip();
32811
+ dismissOpenTooltip = close;
32812
+ } else if (dismissOpenTooltip === close) {
32813
+ dismissOpenTooltip = null;
32814
+ }
32815
+ return next;
32816
+ });
32817
+ };
32818
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Tooltip, { open, onOpenChange: setOpen, children: [
32819
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32820
+ TooltipTrigger,
32821
+ {
32822
+ asChild: true,
32823
+ onPointerDown: (e) => {
32824
+ isTouchRef.current = e.pointerType === "touch";
32825
+ if (!isTouchRef.current) return;
32826
+ e.preventDefault();
32827
+ toggleFromTouch();
32828
+ },
32829
+ onFocus: (e) => {
32830
+ if (isTouchRef.current) e.preventDefault();
32831
+ },
32832
+ onClick: (e) => {
32833
+ if (isTouchRef.current) e.preventDefault();
32834
+ },
32835
+ children
32836
+ }
32837
+ ),
32627
32838
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipContent, { side: "left", className: "max-w-xs", children: content })
32628
32839
  ] }) });
32629
32840
  }
@@ -32649,16 +32860,17 @@ function TicketStatusConfigRow({
32649
32860
  const previewColor = isSystem ? void 0 : color;
32650
32861
  const showColorPicker = !isSystem && onColorChange && color !== void 0;
32651
32862
  const previewVariant = _nullishCoalesce(systemTagVariant, () => ( (isSystem ? void 0 : "primary")));
32863
+ const colClass = "min-w-0 grow basis-[calc(50%-6px)] md:basis-0";
32652
32864
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
32653
32865
  "div",
32654
32866
  {
32655
32867
  className: _chunk2TBN53KYcjs.cn.call(void 0,
32656
- "flex w-full items-center gap-[var(--spacing-system-m)] rounded-md border border-ods-border bg-ods-card",
32868
+ "flex w-full items-start gap-3 rounded-md border border-ods-border bg-ods-card md:gap-[var(--spacing-system-m)]",
32657
32869
  "p-[var(--spacing-system-m)]",
32658
32870
  isDragging && "opacity-70 shadow-lg"
32659
32871
  ),
32660
32872
  children: [
32661
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex size-8 shrink-0 items-center justify-center text-ods-text-secondary", children: isSystem ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.DraggerIcon, { size: 24, "aria-hidden": true, className: "opacity-40" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32873
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-11 w-8 shrink-0 items-center justify-center text-ods-text-secondary md:h-12", children: isSystem ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.DraggerIcon, { size: 24, "aria-hidden": true, className: "opacity-40" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32662
32874
  "button",
32663
32875
  {
32664
32876
  type: "button",
@@ -32669,31 +32881,33 @@ function TicketStatusConfigRow({
32669
32881
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.DraggerIcon, { size: 24 })
32670
32882
  }
32671
32883
  ) }),
32672
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-1 min-w-0 flex-col gap-[var(--spacing-system-xxs)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32673
- _chunkE6B4B7GMcjs.Input,
32674
- {
32675
- value: name,
32676
- onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _682 => _682(e.target.value)]),
32677
- disabled: isSystem,
32678
- readOnly: isSystem,
32679
- "aria-label": "Status name",
32680
- maxLength: 50
32681
- }
32682
- ) }),
32683
- showColorPicker ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-1 min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ColorPresetSelect, { value: color, presetKey, onChange: onColorChange }) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "hidden flex-1 min-w-0 md:block" }),
32684
- showColorPicker && isCustomColor ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-1 min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ColorPickerInput, { value: color, onChange: (next) => onColorChange({ color: next, preset: void 0 }) }) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "hidden flex-1 min-w-0 md:block" }),
32685
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 flex-1 min-w-0 items-center justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32686
- TicketStatusTag,
32687
- {
32688
- status: statusKey,
32689
- label: name || " ",
32690
- color: previewColor,
32691
- variant: previewVariant,
32692
- showIcon: isSystem,
32693
- className: "max-w-full"
32694
- }
32695
- ) }),
32696
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex size-12 shrink-0 items-center justify-center", children: isSystem ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, WithLeftTooltip, { content: systemTooltip, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32884
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-wrap items-start gap-x-3 gap-y-4 md:flex-nowrap md:gap-[var(--spacing-system-m)]", children: [
32885
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk2TBN53KYcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xxs)]", colClass), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32886
+ _chunkE6B4B7GMcjs.Input,
32887
+ {
32888
+ value: name,
32889
+ onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _692 => _692(e.target.value)]),
32890
+ disabled: isSystem,
32891
+ readOnly: isSystem,
32892
+ "aria-label": "Status name",
32893
+ maxLength: 50
32894
+ }
32895
+ ) }),
32896
+ showColorPicker ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk2TBN53KYcjs.cn.call(void 0, "flex", colClass), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ColorPresetSelect, { value: color, presetKey, onChange: onColorChange }) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: _chunk2TBN53KYcjs.cn.call(void 0, "hidden md:block", colClass) }),
32897
+ showColorPicker && isCustomColor ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk2TBN53KYcjs.cn.call(void 0, "flex", colClass), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ColorPickerInput, { value: color, onChange: (next) => onColorChange({ color: next, preset: void 0 }) }) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: _chunk2TBN53KYcjs.cn.call(void 0, "hidden md:block", colClass) }),
32898
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk2TBN53KYcjs.cn.call(void 0, "flex h-11 items-center justify-start md:h-12 md:justify-end", colClass), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32899
+ TicketStatusTag,
32900
+ {
32901
+ status: statusKey,
32902
+ label: name || " ",
32903
+ color: previewColor,
32904
+ variant: previewVariant,
32905
+ showIcon: isSystem,
32906
+ className: "max-w-full"
32907
+ }
32908
+ ) })
32909
+ ] }),
32910
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-11 w-12 shrink-0 items-center justify-center md:h-12", children: isSystem ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, WithLeftTooltip, { content: systemTooltip, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32697
32911
  "button",
32698
32912
  {
32699
32913
  type: "button",
@@ -32710,7 +32924,7 @@ function TicketStatusConfigRow({
32710
32924
  "aria-label": "Delete status",
32711
32925
  disabled: deleteDisabled,
32712
32926
  onClick: deleteDisabled ? void 0 : onDelete,
32713
- className: "size-12",
32927
+ className: _chunk2TBN53KYcjs.cn.call(void 0, "size-11 md:size-12", deleteDisabled && "pointer-events-none"),
32714
32928
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.TrashIcon, { className: "text-ods-error" })
32715
32929
  }
32716
32930
  ) }) }) })
@@ -32737,25 +32951,25 @@ function CompactAssigneeDropdown({
32737
32951
  onAssign,
32738
32952
  className
32739
32953
  }) {
32740
- const [isOpen, setIsOpen] = React111.useState(false);
32741
- const [search, setSearch] = React111.useState("");
32954
+ const [isOpen, setIsOpen] = React112.useState(false);
32955
+ const [search, setSearch] = React112.useState("");
32742
32956
  const hasAssignee = !!currentAssignee;
32743
- React111.useEffect(() => {
32957
+ React112.useEffect(() => {
32744
32958
  if (!isOpen) setSearch("");
32745
32959
  }, [isOpen]);
32746
- const filtered = React111.useMemo(() => {
32960
+ const filtered = React112.useMemo(() => {
32747
32961
  const q = search.trim().toLowerCase();
32748
32962
  if (!q) return options;
32749
32963
  return options.filter((o) => o.label.toLowerCase().includes(q));
32750
32964
  }, [options, search]);
32751
- const orderedOptions = React111.useMemo(() => {
32965
+ const orderedOptions = React112.useMemo(() => {
32752
32966
  if (!currentAssignee) return filtered;
32753
32967
  const current = filtered.find((o) => o.value === currentAssignee.id);
32754
32968
  if (!current) return filtered;
32755
32969
  return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
32756
32970
  }, [filtered, currentAssignee]);
32757
32971
  const handleSelect = (userId) => {
32758
- const next = _optionalChain([currentAssignee, 'optionalAccess', _683 => _683.id]) === userId ? null : userId;
32972
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _693 => _693.id]) === userId ? null : userId;
32759
32973
  onAssign(next);
32760
32974
  setIsOpen(false);
32761
32975
  };
@@ -32820,7 +33034,7 @@ function CompactAssigneeDropdown({
32820
33034
  }
32821
33035
  ) }),
32822
33036
  /* @__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) => {
32823
- const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _684 => _684.id]) === opt.value;
33037
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _694 => _694.id]) === opt.value;
32824
33038
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
32825
33039
  "button",
32826
33040
  {
@@ -32864,9 +33078,9 @@ function DefaultAssigneeDropdown({
32864
33078
  onAssign,
32865
33079
  className
32866
33080
  }) {
32867
- const [isEditing, setIsEditing] = React111.useState(false);
33081
+ const [isEditing, setIsEditing] = React112.useState(false);
32868
33082
  const hasAssignee = !!currentAssignee;
32869
- const renderOption = React111.useCallback((option) => {
33083
+ const renderOption = React112.useCallback((option) => {
32870
33084
  const opt = option;
32871
33085
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-sf)] w-full min-w-0", children: [
32872
33086
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -32889,7 +33103,7 @@ function DefaultAssigneeDropdown({
32889
33103
  Autocomplete,
32890
33104
  {
32891
33105
  options,
32892
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _685 => _685.id]), () => ( null)),
33106
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _695 => _695.id]), () => ( null)),
32893
33107
  onChange: (val) => {
32894
33108
  onAssign(val);
32895
33109
  setIsEditing(false);
@@ -33044,8 +33258,8 @@ _chunk2TBN53KYcjs.init_cn.call(void 0, );
33044
33258
  _chunk2TBN53KYcjs.init_cn.call(void 0, );
33045
33259
 
33046
33260
  function TicketNoteCard({ note, onEdit, onDelete, className }) {
33047
- const [isEditing, setIsEditing] = React112.useState(false);
33048
- const [editText, setEditText] = React112.useState(note.text);
33261
+ const [isEditing, setIsEditing] = React113.useState(false);
33262
+ const [editText, setEditText] = React113.useState(note.text);
33049
33263
  const handleSave = () => {
33050
33264
  const trimmed = editText.trim();
33051
33265
  if (!trimmed || !onEdit) return;
@@ -33168,7 +33382,7 @@ function TicketNotesSection({
33168
33382
  isAddingNote,
33169
33383
  className
33170
33384
  }) {
33171
- const [noteText, setNoteText] = React113.useState("");
33385
+ const [noteText, setNoteText] = React114.useState("");
33172
33386
  const handleSend = () => {
33173
33387
  const trimmed = noteText.trim();
33174
33388
  if (!trimmed || !onAddNote || isAddingNote) return;
@@ -33278,14 +33492,14 @@ function TicketInfoSection({
33278
33492
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33279
33493
  SquareAvatar,
33280
33494
  {
33281
- src: _optionalChain([organization, 'optionalAccess', _686 => _686.imageSrc]),
33282
- alt: _optionalChain([organization, 'optionalAccess', _687 => _687.name]),
33283
- fallback: _optionalChain([organization, 'optionalAccess', _688 => _688.name]) || "Org",
33495
+ src: _optionalChain([organization, 'optionalAccess', _696 => _696.imageSrc]),
33496
+ alt: _optionalChain([organization, 'optionalAccess', _697 => _697.name]),
33497
+ fallback: _optionalChain([organization, 'optionalAccess', _698 => _698.name]) || "Org",
33284
33498
  size: "md",
33285
33499
  className: "shrink-0"
33286
33500
  }
33287
33501
  ),
33288
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _689 => _689.name]) || "Unassigned", label: "Organization" })
33502
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _699 => _699.name]) || "Unassigned", label: "Organization" })
33289
33503
  ] }),
33290
33504
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33291
33505
  AssigneeDropdown,
@@ -33306,10 +33520,10 @@ function TicketInfoSection({
33306
33520
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33307
33521
  InfoCell2,
33308
33522
  {
33309
- value: _optionalChain([device, 'optionalAccess', _690 => _690.name]) || "Unassigned",
33523
+ value: _optionalChain([device, 'optionalAccess', _700 => _700.name]) || "Unassigned",
33310
33524
  label: "Device",
33311
- icon: _optionalChain([device, 'optionalAccess', _691 => _691.icon]),
33312
- onClick: _optionalChain([device, 'optionalAccess', _692 => _692.onClick])
33525
+ icon: _optionalChain([device, 'optionalAccess', _701 => _701.icon]),
33526
+ onClick: _optionalChain([device, 'optionalAccess', _702 => _702.onClick])
33313
33527
  }
33314
33528
  ),
33315
33529
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -33638,7 +33852,7 @@ function RoadmapCard({
33638
33852
  const compactHref = safeHref(_nullishCoalesce(href, () => ( null)));
33639
33853
  const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
33640
33854
  const hasFigma = !!item.figmaUrl;
33641
- const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _693 => _693.screenshots, 'optionalAccess', _694 => _694.length]), () => ( 0))) > 0;
33855
+ const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _703 => _703.screenshots, 'optionalAccess', _704 => _704.length]), () => ( 0))) > 0;
33642
33856
  const typeLabel = getTaskTypeLabel(item.customItemId);
33643
33857
  const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
33644
33858
  const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -33657,7 +33871,7 @@ function RoadmapCard({
33657
33871
  unoptimized: true,
33658
33872
  className: "h-8 w-8 object-contain"
33659
33873
  }
33660
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _695 => _695.title, 'optionalAccess', _696 => _696.substring, 'call', _697 => _697(0, 2)]) || "??" })
33874
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _705 => _705.title, 'optionalAccess', _706 => _706.substring, 'call', _707 => _707(0, 2)]) || "??" })
33661
33875
  }
33662
33876
  ),
33663
33877
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -33732,7 +33946,7 @@ function RoadmapCard({
33732
33946
  unoptimized: true,
33733
33947
  className: "object-contain p-1"
33734
33948
  }
33735
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _698 => _698.title, 'optionalAccess', _699 => _699.substring, 'call', _700 => _700(0, 2)]) || "??" }) }),
33949
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _708 => _708.title, 'optionalAccess', _709 => _709.substring, 'call', _710 => _710(0, 2)]) || "??" }) }),
33736
33950
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
33737
33951
  /* @__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 }) }),
33738
33952
  /* @__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: [
@@ -34242,7 +34456,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
34242
34456
  ] }) : null,
34243
34457
  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
34244
34458
  ] }),
34245
- _optionalChain([anchorProps, 'optionalAccess', _701 => _701.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
34459
+ _optionalChain([anchorProps, 'optionalAccess', _711 => _711.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
34246
34460
  ] });
34247
34461
  if (!anchorProps) {
34248
34462
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
@@ -34312,7 +34526,7 @@ function getDefaultOptions() {
34312
34526
  // node_modules/date-fns/startOfWeek.mjs
34313
34527
  function startOfWeek(date, options) {
34314
34528
  const defaultOptions2 = getDefaultOptions();
34315
- const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _702 => _702.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _703 => _703.locale, 'optionalAccess', _704 => _704.options, 'optionalAccess', _705 => _705.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _706 => _706.locale, 'optionalAccess', _707 => _707.options, 'optionalAccess', _708 => _708.weekStartsOn]))), () => ( 0));
34529
+ const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _712 => _712.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _713 => _713.locale, 'optionalAccess', _714 => _714.options, 'optionalAccess', _715 => _715.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _716 => _716.locale, 'optionalAccess', _717 => _717.options, 'optionalAccess', _718 => _718.weekStartsOn]))), () => ( 0));
34316
34530
  const _date = toDate(date);
34317
34531
  const day = _date.getDay();
34318
34532
  const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
@@ -34487,7 +34701,7 @@ var formatDistance = (token, count, options) => {
34487
34701
  } else {
34488
34702
  result = tokenValue.other.replace("{{count}}", count.toString());
34489
34703
  }
34490
- if (_optionalChain([options, 'optionalAccess', _709 => _709.addSuffix])) {
34704
+ if (_optionalChain([options, 'optionalAccess', _719 => _719.addSuffix])) {
34491
34705
  if (options.comparison && options.comparison > 0) {
34492
34706
  return "in " + result;
34493
34707
  } else {
@@ -34554,15 +34768,15 @@ var formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale
34554
34768
  // node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs
34555
34769
  function buildLocalizeFn(args) {
34556
34770
  return (value, options) => {
34557
- const context = _optionalChain([options, 'optionalAccess', _710 => _710.context]) ? String(options.context) : "standalone";
34771
+ const context = _optionalChain([options, 'optionalAccess', _720 => _720.context]) ? String(options.context) : "standalone";
34558
34772
  let valuesArray;
34559
34773
  if (context === "formatting" && args.formattingValues) {
34560
34774
  const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
34561
- const width = _optionalChain([options, 'optionalAccess', _711 => _711.width]) ? String(options.width) : defaultWidth;
34775
+ const width = _optionalChain([options, 'optionalAccess', _721 => _721.width]) ? String(options.width) : defaultWidth;
34562
34776
  valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
34563
34777
  } else {
34564
34778
  const defaultWidth = args.defaultWidth;
34565
- const width = _optionalChain([options, 'optionalAccess', _712 => _712.width]) ? String(options.width) : args.defaultWidth;
34779
+ const width = _optionalChain([options, 'optionalAccess', _722 => _722.width]) ? String(options.width) : args.defaultWidth;
34566
34780
  valuesArray = args.values[width] || args.values[defaultWidth];
34567
34781
  }
34568
34782
  const index = args.argumentCallback ? args.argumentCallback(value) : value;
@@ -34942,7 +35156,7 @@ function getWeekYear(date, options) {
34942
35156
  const _date = toDate(date);
34943
35157
  const year = _date.getFullYear();
34944
35158
  const defaultOptions2 = getDefaultOptions();
34945
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _713 => _713.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _714 => _714.locale, 'optionalAccess', _715 => _715.options, 'optionalAccess', _716 => _716.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _717 => _717.locale, 'optionalAccess', _718 => _718.options, 'optionalAccess', _719 => _719.firstWeekContainsDate]))), () => ( 1));
35159
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _723 => _723.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _724 => _724.locale, 'optionalAccess', _725 => _725.options, 'optionalAccess', _726 => _726.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _727 => _727.locale, 'optionalAccess', _728 => _728.options, 'optionalAccess', _729 => _729.firstWeekContainsDate]))), () => ( 1));
34946
35160
  const firstWeekOfNextYear = constructFrom(date, 0);
34947
35161
  firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
34948
35162
  firstWeekOfNextYear.setHours(0, 0, 0, 0);
@@ -34963,7 +35177,7 @@ function getWeekYear(date, options) {
34963
35177
  // node_modules/date-fns/startOfWeekYear.mjs
34964
35178
  function startOfWeekYear(date, options) {
34965
35179
  const defaultOptions2 = getDefaultOptions();
34966
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _720 => _720.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _721 => _721.locale, 'optionalAccess', _722 => _722.options, 'optionalAccess', _723 => _723.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _724 => _724.locale, 'optionalAccess', _725 => _725.options, 'optionalAccess', _726 => _726.firstWeekContainsDate]))), () => ( 1));
35180
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _730 => _730.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _731 => _731.locale, 'optionalAccess', _732 => _732.options, 'optionalAccess', _733 => _733.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _734 => _734.locale, 'optionalAccess', _735 => _735.options, 'optionalAccess', _736 => _736.firstWeekContainsDate]))), () => ( 1));
34967
35181
  const year = getWeekYear(date, options);
34968
35182
  const firstWeek = constructFrom(date, 0);
34969
35183
  firstWeek.setFullYear(year, 0, firstWeekContainsDate);
@@ -35778,9 +35992,9 @@ var doubleQuoteRegExp = /''/g;
35778
35992
  var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
35779
35993
  function format(date, formatStr, options) {
35780
35994
  const defaultOptions2 = getDefaultOptions();
35781
- const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _727 => _727.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
35782
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _728 => _728.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _729 => _729.locale, 'optionalAccess', _730 => _730.options, 'optionalAccess', _731 => _731.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _732 => _732.locale, 'optionalAccess', _733 => _733.options, 'optionalAccess', _734 => _734.firstWeekContainsDate]))), () => ( 1));
35783
- const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _735 => _735.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _736 => _736.locale, 'optionalAccess', _737 => _737.options, 'optionalAccess', _738 => _738.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _739 => _739.locale, 'optionalAccess', _740 => _740.options, 'optionalAccess', _741 => _741.weekStartsOn]))), () => ( 0));
35995
+ const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _737 => _737.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
35996
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _738 => _738.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _739 => _739.locale, 'optionalAccess', _740 => _740.options, 'optionalAccess', _741 => _741.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _742 => _742.locale, 'optionalAccess', _743 => _743.options, 'optionalAccess', _744 => _744.firstWeekContainsDate]))), () => ( 1));
35997
+ const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _745 => _745.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _746 => _746.locale, 'optionalAccess', _747 => _747.options, 'optionalAccess', _748 => _748.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _749 => _749.locale, 'optionalAccess', _750 => _750.options, 'optionalAccess', _751 => _751.weekStartsOn]))), () => ( 0));
35784
35998
  const originalDate = toDate(date);
35785
35999
  if (!isValid(originalDate)) {
35786
36000
  throw new RangeError("Invalid time value");
@@ -35821,7 +36035,7 @@ function format(date, formatStr, options) {
35821
36035
  return parts.map((part) => {
35822
36036
  if (!part.isToken) return part.value;
35823
36037
  const token = part.value;
35824
- if (!_optionalChain([options, 'optionalAccess', _742 => _742.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _743 => _743.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
36038
+ if (!_optionalChain([options, 'optionalAccess', _752 => _752.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _753 => _753.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
35825
36039
  warnOrThrowProtectedError(token, formatStr, String(date));
35826
36040
  }
35827
36041
  const formatter = formatters[token[0]];
@@ -35999,7 +36213,7 @@ function ProgramCard({
35999
36213
  const dur = formatDurationFromRange(w.start_at, w.end_at);
36000
36214
  typeMeta = dur ? `${time} \xB7 ${dur}` : time;
36001
36215
  }
36002
- const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _744 => _744.labels, 'optionalAccess', _745 => _745.singular])].filter(
36216
+ const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _754 => _754.labels, 'optionalAccess', _755 => _755.singular])].filter(
36003
36217
  (s) => typeof s === "string" && s.length > 0
36004
36218
  );
36005
36219
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "a", { href, target, rel, className: _chunk2TBN53KYcjs.cn.call(void 0, COMPACT_CARD_OUTER, className), children: [
@@ -36156,7 +36370,7 @@ function ProgramCard({
36156
36370
 
36157
36371
 
36158
36372
  function CampaignCardAdmin({ campaign, className, anchorProps }) {
36159
- const goalsCount = _optionalChain([campaign, 'access', _746 => _746.goals, 'optionalAccess', _747 => _747.length]) || 0;
36373
+ const goalsCount = _optionalChain([campaign, 'access', _756 => _756.goals, 'optionalAccess', _757 => _757.length]) || 0;
36160
36374
  const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
36161
36375
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Megaphone, { className: "h-5 w-5" }) }),
36162
36376
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -36345,7 +36559,7 @@ function resolveSourceRowCTA(row, ctx = {}) {
36345
36559
  if (row.path && shouldFallbackToPathNav(row) && !row.externalUrl) {
36346
36560
  const safePath = sanitizePath(row.path);
36347
36561
  if (safePath) {
36348
- const docTarget = row.documentType ? _optionalChain([ctx, 'access', _748 => _748.docPlatformTargets, 'optionalAccess', _749 => _749[row.documentType]]) : void 0;
36562
+ const docTarget = row.documentType ? _optionalChain([ctx, 'access', _758 => _758.docPlatformTargets, 'optionalAccess', _759 => _759[row.documentType]]) : void 0;
36349
36563
  if (docTarget) {
36350
36564
  const seg = docTarget.basePath.split("/").filter(Boolean).join("/");
36351
36565
  const base = `${_chunk2TBN53KYcjs.getBaseUrl.call(void 0, docTarget.platform)}${seg ? `/${seg}` : ""}/`;
@@ -36560,8 +36774,8 @@ function cardMenuGroups(href, discuss, openDetails) {
36560
36774
  if (href) {
36561
36775
  items.push({
36562
36776
  id: "open-details",
36563
- label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _750 => _750.label]), () => ( "Open Details")),
36564
- icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _751 => _751.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.EyeIcon, { size: 20 }))),
36777
+ label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _760 => _760.label]), () => ( "Open Details")),
36778
+ icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _761 => _761.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.EyeIcon, { size: 20 }))),
36565
36779
  // Main row → open the entity (same tab, soft Link nav).
36566
36780
  href,
36567
36781
  // Trailing 40px ↗ side-button → open in a new tab.
@@ -36591,8 +36805,8 @@ function HubspotTicketChatCard({
36591
36805
  isNewTab,
36592
36806
  discuss
36593
36807
  }) {
36594
- const status = typeof _optionalChain([chatRef, 'access', _752 => _752.metadata, 'optionalAccess', _753 => _753.status]) === "string" ? chatRef.metadata.status : void 0;
36595
- const statusLabel = typeof _optionalChain([chatRef, 'access', _754 => _754.metadata, 'optionalAccess', _755 => _755.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
36808
+ const status = typeof _optionalChain([chatRef, 'access', _762 => _762.metadata, 'optionalAccess', _763 => _763.status]) === "string" ? chatRef.metadata.status : void 0;
36809
+ const statusLabel = typeof _optionalChain([chatRef, 'access', _764 => _764.metadata, 'optionalAccess', _765 => _765.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
36596
36810
  const statusText = _nullishCoalesce(statusLabel, () => ( formatStatusToken(status)));
36597
36811
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36598
36812
  MingoInfoCard,
@@ -36615,7 +36829,7 @@ function SlackChatCard({
36615
36829
  isNewTab,
36616
36830
  discuss
36617
36831
  }) {
36618
- const channelName = typeof _optionalChain([chatRef, 'access', _756 => _756.metadata, 'optionalAccess', _757 => _757.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
36832
+ const channelName = typeof _optionalChain([chatRef, 'access', _766 => _766.metadata, 'optionalAccess', _767 => _767.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
36619
36833
  const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
36620
36834
  const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
36621
36835
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -36655,7 +36869,7 @@ function GenericFinancialChatCard({
36655
36869
  isNewTab,
36656
36870
  discuss
36657
36871
  }) {
36658
- const subtitle = typeof _optionalChain([chatRef, 'access', _758 => _758.metadata, 'optionalAccess', _759 => _759.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
36872
+ const subtitle = typeof _optionalChain([chatRef, 'access', _768 => _768.metadata, 'optionalAccess', _769 => _769.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
36659
36873
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36660
36874
  MingoInfoCard,
36661
36875
  {
@@ -36724,12 +36938,12 @@ function ProductReleaseChatCard({
36724
36938
  discuss
36725
36939
  }) {
36726
36940
  const releaseProps = buildProps(item);
36727
- const status = _optionalChain([item, 'optionalAccess', _760 => _760.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
36941
+ const status = _optionalChain([item, 'optionalAccess', _770 => _770.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
36728
36942
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36729
36943
  EntityMingoCard,
36730
36944
  {
36731
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _761 => _761.title]), () => ( "")),
36732
- description: _optionalChain([item, 'optionalAccess', _762 => _762.summary]) || releaseProps.formattedDate || void 0,
36945
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _771 => _771.title]), () => ( "")),
36946
+ description: _optionalChain([item, 'optionalAccess', _772 => _772.summary]) || releaseProps.formattedDate || void 0,
36733
36947
  cover: releaseProps.coverImage || void 0,
36734
36948
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Rocket02Icon, { size: 24 }),
36735
36949
  status,
@@ -36746,17 +36960,17 @@ function CampaignChatCard({
36746
36960
  isNewTab,
36747
36961
  discuss
36748
36962
  }) {
36749
- const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _763 => _763.goals])) ? item.goals.length : 0;
36963
+ const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _773 => _773.goals])) ? item.goals.length : 0;
36750
36964
  const meta = [
36751
- _optionalChain([item, 'optionalAccess', _764 => _764.start_date]) ? formatDateShort(item.start_date) : null,
36965
+ _optionalChain([item, 'optionalAccess', _774 => _774.start_date]) ? formatDateShort(item.start_date) : null,
36752
36966
  goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
36753
36967
  "Marketing campaign"
36754
36968
  ].filter(Boolean).join(" \xB7 ");
36755
36969
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36756
36970
  EntityMingoCard,
36757
36971
  {
36758
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _765 => _765.name]), () => ( "")),
36759
- description: meta || _optionalChain([item, 'optionalAccess', _766 => _766.description]) || void 0,
36972
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _775 => _775.name]), () => ( "")),
36973
+ description: meta || _optionalChain([item, 'optionalAccess', _776 => _776.description]) || void 0,
36760
36974
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.Megaphone01Icon, { size: 24 }),
36761
36975
  chatRef,
36762
36976
  isNewTab,
@@ -36809,14 +37023,14 @@ function BlogChatCard({
36809
37023
  hasEmbeddedVideo,
36810
37024
  discuss
36811
37025
  }) {
36812
- const category = Array.isArray(_optionalChain([item, 'optionalAccess', _767 => _767.categories])) ? _optionalChain([item, 'access', _768 => _768.categories, 'access', _769 => _769.find, 'call', _770 => _770((c) => c && c.name), 'optionalAccess', _771 => _771.name]) : void 0;
37026
+ const category = Array.isArray(_optionalChain([item, 'optionalAccess', _777 => _777.categories])) ? _optionalChain([item, 'access', _778 => _778.categories, 'access', _779 => _779.find, 'call', _780 => _780((c) => c && c.name), 'optionalAccess', _781 => _781.name]) : void 0;
36813
37027
  const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
36814
37028
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36815
37029
  EntityMingoCard,
36816
37030
  {
36817
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _772 => _772.title]), () => ( "")),
36818
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _773 => _773.summary]), () => ( void 0)),
36819
- cover: entityCover(_optionalChain([item, 'optionalAccess', _774 => _774.featured_image]), ogPlaceholder),
37031
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _782 => _782.title]), () => ( "")),
37032
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _783 => _783.summary]), () => ( void 0)),
37033
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _784 => _784.featured_image]), ogPlaceholder),
36820
37034
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.NewspaperIcon, { size: 24 }),
36821
37035
  status,
36822
37036
  chatRef,
@@ -36833,13 +37047,13 @@ function CaseStudyChatCard({
36833
37047
  ogPlaceholder,
36834
37048
  discuss
36835
37049
  }) {
36836
- const meta = [_optionalChain([item, 'optionalAccess', _775 => _775.msp, 'optionalAccess', _776 => _776.name]), _optionalChain([item, 'optionalAccess', _777 => _777.user, 'optionalAccess', _778 => _778.full_name])].filter(Boolean).join(" \xB7 ");
37050
+ const meta = [_optionalChain([item, 'optionalAccess', _785 => _785.msp, 'optionalAccess', _786 => _786.name]), _optionalChain([item, 'optionalAccess', _787 => _787.user, 'optionalAccess', _788 => _788.full_name])].filter(Boolean).join(" \xB7 ");
36837
37051
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36838
37052
  EntityMingoCard,
36839
37053
  {
36840
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _779 => _779.title]), () => ( "")),
36841
- description: _optionalChain([item, 'optionalAccess', _780 => _780.summary]) || meta || void 0,
36842
- cover: entityCover(_optionalChain([item, 'optionalAccess', _781 => _781.featured_image]), ogPlaceholder),
37054
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _789 => _789.title]), () => ( "")),
37055
+ description: _optionalChain([item, 'optionalAccess', _790 => _790.summary]) || meta || void 0,
37056
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _791 => _791.featured_image]), ogPlaceholder),
36843
37057
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.TrophyIcon, { size: 24 }),
36844
37058
  status: { label: "Case study", variant: "grey" },
36845
37059
  chatRef,
@@ -36856,13 +37070,13 @@ function CustomerInterviewChatCard({
36856
37070
  ogPlaceholder,
36857
37071
  discuss
36858
37072
  }) {
36859
- const meta = [_optionalChain([item, 'optionalAccess', _782 => _782.user, 'optionalAccess', _783 => _783.full_name]), _optionalChain([item, 'optionalAccess', _784 => _784.msp, 'optionalAccess', _785 => _785.name])].filter(Boolean).join(" \xB7 ");
37073
+ const meta = [_optionalChain([item, 'optionalAccess', _792 => _792.user, 'optionalAccess', _793 => _793.full_name]), _optionalChain([item, 'optionalAccess', _794 => _794.msp, 'optionalAccess', _795 => _795.name])].filter(Boolean).join(" \xB7 ");
36860
37074
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36861
37075
  EntityMingoCard,
36862
37076
  {
36863
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _786 => _786.title]), () => ( "")),
36864
- description: _optionalChain([item, 'optionalAccess', _787 => _787.video_summary]) || meta || void 0,
36865
- cover: entityCover(_optionalChain([item, 'optionalAccess', _788 => _788.featured_image]), ogPlaceholder),
37077
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _796 => _796.title]), () => ( "")),
37078
+ description: _optionalChain([item, 'optionalAccess', _797 => _797.video_summary]) || meta || void 0,
37079
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _798 => _798.featured_image]), ogPlaceholder),
36866
37080
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.MicrophoneIcon, { size: 24 }),
36867
37081
  status: { label: "Interview", variant: "grey" },
36868
37082
  chatRef,
@@ -36879,13 +37093,13 @@ function InvestorUpdateChatCard({
36879
37093
  ogPlaceholder,
36880
37094
  discuss
36881
37095
  }) {
36882
- const title = _optionalChain([item, 'optionalAccess', _789 => _789.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _790 => _790.update_number]), () => ( "?"))}`;
37096
+ const title = _optionalChain([item, 'optionalAccess', _799 => _799.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _800 => _800.update_number]), () => ( "?"))}`;
36883
37097
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36884
37098
  EntityMingoCard,
36885
37099
  {
36886
37100
  title,
36887
- description: _optionalChain([item, 'optionalAccess', _791 => _791.strategic_update]) || _optionalChain([item, 'optionalAccess', _792 => _792.content]) || formatInvestorUpdatePeriod(_optionalChain([item, 'optionalAccess', _793 => _793.period_start]), _optionalChain([item, 'optionalAccess', _794 => _794.period_end])) || void 0,
36888
- cover: entityCover(_optionalChain([item, 'optionalAccess', _795 => _795.featured_image]), ogPlaceholder),
37101
+ description: _optionalChain([item, 'optionalAccess', _801 => _801.strategic_update]) || _optionalChain([item, 'optionalAccess', _802 => _802.content]) || formatInvestorUpdatePeriod(_optionalChain([item, 'optionalAccess', _803 => _803.period_start]), _optionalChain([item, 'optionalAccess', _804 => _804.period_end])) || void 0,
37102
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _805 => _805.featured_image]), ogPlaceholder),
36889
37103
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.PresentationLineIcon, { size: 24 }),
36890
37104
  status: { label: "Investor update", variant: "grey" },
36891
37105
  chatRef,
@@ -36902,12 +37116,12 @@ function OnboardingGuideChatCard({
36902
37116
  ogPlaceholder,
36903
37117
  discuss
36904
37118
  }) {
36905
- const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _796 => _796.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _797 => _797.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _798 => _798.og_image_url]), ogPlaceholder)));
37119
+ const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _806 => _806.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _807 => _807.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _808 => _808.og_image_url]), ogPlaceholder)));
36906
37120
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36907
37121
  EntityMingoCard,
36908
37122
  {
36909
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _799 => _799.title]), () => ( "")),
36910
- description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _800 => _800.summary]), () => ( _optionalChain([item, 'optionalAccess', _801 => _801.description]))), () => ( void 0)),
37123
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _809 => _809.title]), () => ( "")),
37124
+ description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _810 => _810.summary]), () => ( _optionalChain([item, 'optionalAccess', _811 => _811.description]))), () => ( void 0)),
36911
37125
  cover,
36912
37126
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC6ASEPZLcjs.CompassIcon, { size: 24 }),
36913
37127
  status: { label: "Guide", variant: "grey" },
@@ -36928,25 +37142,25 @@ function ProgramChatCard({
36928
37142
  discuss
36929
37143
  }) {
36930
37144
  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 });
36931
- const isScheduled = _optionalChain([item, 'optionalAccess', _802 => _802.status]) === "scheduled";
37145
+ const isScheduled = _optionalChain([item, 'optionalAccess', _812 => _812.status]) === "scheduled";
36932
37146
  let typeMeta;
36933
- if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _803 => _803.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
37147
+ if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _813 => _813.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
36934
37148
  typeMeta = formatDurationCompact(item.duration_seconds);
36935
- } else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess', _804 => _804.location_name]) === "string" && item.location_name.trim().length > 0) {
37149
+ } else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess', _814 => _814.location_name]) === "string" && item.location_name.trim().length > 0) {
36936
37150
  typeMeta = item.location_name;
36937
- } else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _805 => _805.start_at])) {
37151
+ } else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _815 => _815.start_at])) {
36938
37152
  const time = formatTimeWithTimezone(item.start_at, null);
36939
37153
  const dur = formatDurationFromRange(item.start_at, item.end_at);
36940
37154
  typeMeta = dur ? `${time} \xB7 ${dur}` : time;
36941
37155
  }
36942
- const itemDate = formatDateUTC(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _806 => _806.date]), () => ( null)), { fallback: "", timezone: "local" });
37156
+ const itemDate = formatDateUTC(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _816 => _816.date]), () => ( null)), { fallback: "", timezone: "local" });
36943
37157
  const meta = [itemDate, typeMeta].filter(Boolean).join(" \xB7 ");
36944
37158
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36945
37159
  EntityMingoCard,
36946
37160
  {
36947
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _807 => _807.title]), () => ( "")),
36948
- description: meta || _optionalChain([item, 'optionalAccess', _808 => _808.description]) || void 0,
36949
- cover: entityCover(_optionalChain([item, 'optionalAccess', _809 => _809.cover_url]), ogPlaceholder),
37161
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _817 => _817.title]), () => ( "")),
37162
+ description: meta || _optionalChain([item, 'optionalAccess', _818 => _818.description]) || void 0,
37163
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _819 => _819.cover_url]), ogPlaceholder),
36950
37164
  fallbackIcon: icon,
36951
37165
  status: { label, variant: "grey" },
36952
37166
  chatRef,
@@ -36963,10 +37177,10 @@ function RoadmapChatCard({
36963
37177
  cardType,
36964
37178
  discuss
36965
37179
  }) {
36966
- const logoUrl = typeof _optionalChain([item, 'optionalAccess', _810 => _810.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
36967
- const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _811 => _811.customItemId]) != null;
37180
+ const logoUrl = typeof _optionalChain([item, 'optionalAccess', _820 => _820.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
37181
+ const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _821 => _821.customItemId]) != null;
36968
37182
  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 });
36969
- const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _812 => _812.customItemId]), className: "size-6" }) : logoUrl ? (
37183
+ const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _822 => _822.customItemId]), className: "size-6" }) : logoUrl ? (
36970
37184
  // Contained (not full-bleed) so the integration logo keeps its aspect
36971
37185
  // ratio inside the bordered icon box — matches RoadmapCard.
36972
37186
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src: logoUrl, alt: "", className: "size-6 object-contain" })
@@ -36974,10 +37188,10 @@ function RoadmapChatCard({
36974
37188
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36975
37189
  EntityMingoCard,
36976
37190
  {
36977
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _813 => _813.title]), () => ( "")),
36978
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _814 => _814.description]), () => ( void 0)),
37191
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _823 => _823.title]), () => ( "")),
37192
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _824 => _824.description]), () => ( void 0)),
36979
37193
  fallbackIcon: icon,
36980
- status: statusPill(_optionalChain([item, 'optionalAccess', _815 => _815.status])),
37194
+ status: statusPill(_optionalChain([item, 'optionalAccess', _825 => _825.status])),
36981
37195
  chatRef,
36982
37196
  isNewTab,
36983
37197
  discuss,
@@ -37063,7 +37277,7 @@ function programRegistryEntries() {
37063
37277
  discuss: opts.discuss,
37064
37278
  configKey: cfg.configKey,
37065
37279
  label: cfg.configKey.charAt(0).toUpperCase() + cfg.configKey.slice(1),
37066
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _816 => _816.extras, 'optionalAccess', _817 => _817.buildOgPlaceholderUrl, 'optionalCall', _818 => _818(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _819 => _819.title]), () => ( "")))]), () => ( null))
37280
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _826 => _826.extras, 'optionalAccess', _827 => _827.buildOgPlaceholderUrl, 'optionalCall', _828 => _828(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _829 => _829.title]), () => ( "")))]), () => ( null))
37067
37281
  }
37068
37282
  )
37069
37283
  };
@@ -37209,8 +37423,8 @@ var CHAT_CARD_REGISTRY = {
37209
37423
  chatRef,
37210
37424
  isNewTab: opts.isNewTab,
37211
37425
  discuss: opts.discuss,
37212
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _820 => _820.extras, 'optionalAccess', _821 => _821.buildOgPlaceholderUrl, 'optionalCall', _822 => _822(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _823 => _823.title]), () => ( "")))]), () => ( null)),
37213
- hasEmbeddedVideo: _optionalChain([chatRef, 'access', _824 => _824.metadata, 'optionalAccess', _825 => _825.hasEmbeddedVideo]) === true
37426
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _830 => _830.extras, 'optionalAccess', _831 => _831.buildOgPlaceholderUrl, 'optionalCall', _832 => _832(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _833 => _833.title]), () => ( "")))]), () => ( null)),
37427
+ hasEmbeddedVideo: _optionalChain([chatRef, 'access', _834 => _834.metadata, 'optionalAccess', _835 => _835.hasEmbeddedVideo]) === true
37214
37428
  }
37215
37429
  )
37216
37430
  },
@@ -37227,7 +37441,7 @@ var CHAT_CARD_REGISTRY = {
37227
37441
  chatRef,
37228
37442
  isNewTab: opts.isNewTab,
37229
37443
  discuss: opts.discuss,
37230
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _826 => _826.extras, 'optionalAccess', _827 => _827.buildOgPlaceholderUrl, 'optionalCall', _828 => _828(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _829 => _829.title]), () => ( "")))]), () => ( null))
37444
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _836 => _836.extras, 'optionalAccess', _837 => _837.buildOgPlaceholderUrl, 'optionalCall', _838 => _838(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _839 => _839.title]), () => ( "")))]), () => ( null))
37231
37445
  }
37232
37446
  )
37233
37447
  },
@@ -37244,7 +37458,7 @@ var CHAT_CARD_REGISTRY = {
37244
37458
  chatRef,
37245
37459
  isNewTab: opts.isNewTab,
37246
37460
  discuss: opts.discuss,
37247
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _830 => _830.extras, 'optionalAccess', _831 => _831.buildOgPlaceholderUrl, 'optionalCall', _832 => _832(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _833 => _833.title]), () => ( "")))]), () => ( null))
37461
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _840 => _840.extras, 'optionalAccess', _841 => _841.buildOgPlaceholderUrl, 'optionalCall', _842 => _842(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _843 => _843.title]), () => ( "")))]), () => ( null))
37248
37462
  }
37249
37463
  )
37250
37464
  },
@@ -37255,7 +37469,7 @@ var CHAT_CARD_REGISTRY = {
37255
37469
  bareInline: true,
37256
37470
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductReleaseCardSkeleton, { size: "sm" }),
37257
37471
  render: (item, chatRef, opts) => {
37258
- const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _834 => _834.extras, 'optionalAccess', _835 => _835.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
37472
+ const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _844 => _844.extras, 'optionalAccess', _845 => _845.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
37259
37473
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
37260
37474
  ProductReleaseChatCard,
37261
37475
  {
@@ -37282,7 +37496,7 @@ var CHAT_CARD_REGISTRY = {
37282
37496
  chatRef,
37283
37497
  isNewTab: opts.isNewTab,
37284
37498
  discuss: opts.discuss,
37285
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _836 => _836.extras, 'optionalAccess', _837 => _837.buildOgPlaceholderUrl, 'optionalCall', _838 => _838(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _839 => _839.title]), () => ( "")))]), () => ( null))
37499
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _846 => _846.extras, 'optionalAccess', _847 => _847.buildOgPlaceholderUrl, 'optionalCall', _848 => _848(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _849 => _849.title]), () => ( "")))]), () => ( null))
37286
37500
  }
37287
37501
  )
37288
37502
  },
@@ -37301,7 +37515,7 @@ var CHAT_CARD_REGISTRY = {
37301
37515
  chatRef,
37302
37516
  isNewTab: opts.isNewTab,
37303
37517
  discuss: opts.discuss,
37304
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _840 => _840.extras, 'optionalAccess', _841 => _841.buildOgPlaceholderUrl, 'optionalCall', _842 => _842(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _843 => _843.title]), () => ( "")))]), () => ( null))
37518
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _850 => _850.extras, 'optionalAccess', _851 => _851.buildOgPlaceholderUrl, 'optionalCall', _852 => _852(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _853 => _853.title]), () => ( "")))]), () => ( null))
37305
37519
  }
37306
37520
  )
37307
37521
  },
@@ -37313,7 +37527,7 @@ var CHAT_CARD_REGISTRY = {
37313
37527
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
37314
37528
  // No public viewer — synthesize the hub-internal admin URL post-fetch
37315
37529
  // so the wrapper + isNewTab computation see the actual destination.
37316
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _844 => _844.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
37530
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _854 => _854.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
37317
37531
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
37318
37532
  CampaignChatCard,
37319
37533
  {
@@ -37339,12 +37553,12 @@ function ChatCardNavWrap({
37339
37553
  const onClickCapture = (e) => {
37340
37554
  if (!href) return;
37341
37555
  const targetEl = e.target;
37342
- if (_optionalChain([targetEl, 'optionalAccess', _845 => _845.closest, 'optionalCall', _846 => _846("button")])) return;
37343
- if (!_optionalChain([targetEl, 'optionalAccess', _847 => _847.closest, 'optionalCall', _848 => _848("a")])) return;
37556
+ if (_optionalChain([targetEl, 'optionalAccess', _855 => _855.closest, 'optionalCall', _856 => _856("button")])) return;
37557
+ if (!_optionalChain([targetEl, 'optionalAccess', _857 => _857.closest, 'optionalCall', _858 => _858("a")])) return;
37344
37558
  const handled = handleChatNavClick(e, runtime, { href, path, targetPlatform }, router.push);
37345
37559
  if (!handled) return;
37346
37560
  e.stopPropagation();
37347
- if (!isNewTab && _optionalChain([panel, 'optionalAccess', _849 => _849.closeChat])) panel.closeChat();
37561
+ if (!isNewTab && _optionalChain([panel, 'optionalAccess', _859 => _859.closeChat])) panel.closeChat();
37348
37562
  };
37349
37563
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
37350
37564
  }
@@ -37366,7 +37580,7 @@ function ChatCardLoader({
37366
37580
  title: chatRef.title,
37367
37581
  externalUrl: chatRef.url,
37368
37582
  targetPlatform: chatRef.targetPlatform,
37369
- path: typeof _optionalChain([chatRef, 'access', _850 => _850.metadata, 'optionalAccess', _851 => _851.path]) === "string" ? chatRef.metadata.path : null
37583
+ path: typeof _optionalChain([chatRef, 'access', _860 => _860.metadata, 'optionalAccess', _861 => _861.path]) === "string" ? chatRef.metadata.path : null
37370
37584
  },
37371
37585
  sourceRowCtxFromRuntime(runtime, { baseRoute, chipBasePlatform })
37372
37586
  );
@@ -37380,7 +37594,7 @@ function ChatCardLoader({
37380
37594
  const entry = CHAT_CARD_REGISTRY[resolvedChatRef.type];
37381
37595
  const fetchEntry = entry && entry.mode === "fetch" ? entry : null;
37382
37596
  const { item, isLoading } = useChatCardItem(
37383
- _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _852 => _852.contentRefType]), () => ( "")),
37597
+ _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _862 => _862.contentRefType]), () => ( "")),
37384
37598
  fetchEntry ? resolvedChatRef.id : ""
37385
37599
  );
37386
37600
  if (!entry) return null;
@@ -37411,7 +37625,7 @@ function ChatCardLoader({
37411
37625
  isNewTab,
37412
37626
  discuss
37413
37627
  };
37414
- const path = typeof _optionalChain([finalChatRef, 'access', _853 => _853.metadata, 'optionalAccess', _854 => _854.path]) === "string" ? finalChatRef.metadata.path : null;
37628
+ const path = typeof _optionalChain([finalChatRef, 'access', _863 => _863.metadata, 'optionalAccess', _864 => _864.path]) === "string" ? finalChatRef.metadata.path : null;
37415
37629
  const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
37416
37630
  ChatCardNavWrap,
37417
37631
  {
@@ -37940,7 +38154,7 @@ function useJetStreamDialogSubscription({
37940
38154
  const lifecycle = _chunkOZ3GH6OQcjs.startConnectionLifecycle.call(void 0, {
37941
38155
  conn: sharedConn,
37942
38156
  wsUrl,
37943
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _855 => _855.current, 'optionalCall', _856 => _856()]),
38157
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _865 => _865.current, 'optionalCall', _866 => _866()]),
37944
38158
  backoff: reconnectionBackoffRef.current,
37945
38159
  getFreshUrl: () => getNatsWsUrlRef.current(),
37946
38160
  // JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
@@ -37955,7 +38169,7 @@ function useJetStreamDialogSubscription({
37955
38169
  setReconnectionCount((c) => c + 1);
37956
38170
  }
37957
38171
  hadConnectionBeforeRef.current = true;
37958
- _optionalChain([onConnectRef, 'access', _857 => _857.current, 'optionalCall', _858 => _858()]);
38172
+ _optionalChain([onConnectRef, 'access', _867 => _867.current, 'optionalCall', _868 => _868()]);
37959
38173
  }
37960
38174
  if (status === "error") {
37961
38175
  console.warn("[JetStream] NATS protocol error:", evt.data);
@@ -37965,7 +38179,7 @@ function useJetStreamDialogSubscription({
37965
38179
  setIsConnected(false);
37966
38180
  setIsSubscribed(false);
37967
38181
  tearDownSubscription();
37968
- _optionalChain([onDisconnectRef, 'access', _859 => _859.current, 'optionalCall', _860 => _860()]);
38182
+ _optionalChain([onDisconnectRef, 'access', _869 => _869.current, 'optionalCall', _870 => _870()]);
37969
38183
  }
37970
38184
  }
37971
38185
  });
@@ -38044,7 +38258,7 @@ function useJetStreamDialogSubscription({
38044
38258
  }
38045
38259
  subscriptionRef.current = handle;
38046
38260
  setIsSubscribed(true);
38047
- _optionalChain([onSubscribedRef, 'access', _861 => _861.current, 'optionalCall', _862 => _862()]);
38261
+ _optionalChain([onSubscribedRef, 'access', _871 => _871.current, 'optionalCall', _872 => _872()]);
38048
38262
  } catch (e35) {
38049
38263
  if (!cancelled) {
38050
38264
  setIsSubscribed(false);
@@ -38157,20 +38371,20 @@ function useNatsDialogSubscription({
38157
38371
  const tearDownSubscriptions = () => {
38158
38372
  subscriptionRefs.current.forEach((sub) => {
38159
38373
  try {
38160
- _optionalChain([sub, 'optionalAccess', _863 => _863.unsubscribe, 'call', _864 => _864()]);
38374
+ _optionalChain([sub, 'optionalAccess', _873 => _873.unsubscribe, 'call', _874 => _874()]);
38161
38375
  } catch (e37) {
38162
38376
  }
38163
38377
  });
38164
38378
  subscriptionRefs.current.clear();
38165
38379
  lastSubscribedDialogIdRef.current = null;
38166
- _optionalChain([abortControllerRef, 'access', _865 => _865.current, 'optionalAccess', _866 => _866.abort, 'call', _867 => _867()]);
38380
+ _optionalChain([abortControllerRef, 'access', _875 => _875.current, 'optionalAccess', _876 => _876.abort, 'call', _877 => _877()]);
38167
38381
  abortControllerRef.current = null;
38168
38382
  };
38169
38383
  const isDisconnectStatus = (status) => status === "closed" || status === "disconnected" || status === "error";
38170
38384
  const lifecycle = _chunkOZ3GH6OQcjs.startConnectionLifecycle.call(void 0, {
38171
38385
  conn: sharedConn,
38172
38386
  wsUrl,
38173
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _868 => _868.current, 'optionalCall', _869 => _869()]),
38387
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _878 => _878.current, 'optionalCall', _879 => _879()]),
38174
38388
  backoff: reconnectionBackoffRef.current,
38175
38389
  getFreshUrl: () => getNatsWsUrlRef.current(),
38176
38390
  shouldRetryOn: isDisconnectStatus,
@@ -38181,13 +38395,13 @@ function useNatsDialogSubscription({
38181
38395
  setReconnectionCount((c) => c + 1);
38182
38396
  }
38183
38397
  hadConnectionBeforeRef.current = true;
38184
- _optionalChain([onConnectRef, 'access', _870 => _870.current, 'optionalCall', _871 => _871()]);
38398
+ _optionalChain([onConnectRef, 'access', _880 => _880.current, 'optionalCall', _881 => _881()]);
38185
38399
  }
38186
38400
  if (isDisconnectStatus(status)) {
38187
38401
  setIsConnected(false);
38188
38402
  setIsSubscribed(false);
38189
38403
  tearDownSubscriptions();
38190
- _optionalChain([onDisconnectRef, 'access', _872 => _872.current, 'optionalCall', _873 => _873()]);
38404
+ _optionalChain([onDisconnectRef, 'access', _882 => _882.current, 'optionalCall', _883 => _883()]);
38191
38405
  }
38192
38406
  }
38193
38407
  });
@@ -38218,13 +38432,13 @@ function useNatsDialogSubscription({
38218
38432
  setIsSubscribed(false);
38219
38433
  subscriptionRefs.current.forEach((sub) => {
38220
38434
  try {
38221
- _optionalChain([sub, 'optionalAccess', _874 => _874.unsubscribe, 'call', _875 => _875()]);
38435
+ _optionalChain([sub, 'optionalAccess', _884 => _884.unsubscribe, 'call', _885 => _885()]);
38222
38436
  } catch (e38) {
38223
38437
  }
38224
38438
  });
38225
38439
  subscriptionRefs.current.clear();
38226
38440
  lastSubscribedDialogIdRef.current = null;
38227
- _optionalChain([abortControllerRef, 'access', _876 => _876.current, 'optionalAccess', _877 => _877.abort, 'call', _878 => _878()]);
38441
+ _optionalChain([abortControllerRef, 'access', _886 => _886.current, 'optionalAccess', _887 => _887.abort, 'call', _888 => _888()]);
38228
38442
  abortControllerRef.current = null;
38229
38443
  }
38230
38444
  return;
@@ -38236,12 +38450,12 @@ function useNatsDialogSubscription({
38236
38450
  if (subscriptionRefs.current.size > 0) {
38237
38451
  subscriptionRefs.current.forEach((sub) => {
38238
38452
  try {
38239
- _optionalChain([sub, 'optionalAccess', _879 => _879.unsubscribe, 'call', _880 => _880()]);
38453
+ _optionalChain([sub, 'optionalAccess', _889 => _889.unsubscribe, 'call', _890 => _890()]);
38240
38454
  } catch (e39) {
38241
38455
  }
38242
38456
  });
38243
38457
  subscriptionRefs.current.clear();
38244
- _optionalChain([abortControllerRef, 'access', _881 => _881.current, 'optionalAccess', _882 => _882.abort, 'call', _883 => _883()]);
38458
+ _optionalChain([abortControllerRef, 'access', _891 => _891.current, 'optionalAccess', _892 => _892.abort, 'call', _893 => _893()]);
38245
38459
  }
38246
38460
  abortControllerRef.current = new AbortController();
38247
38461
  const abort = abortControllerRef.current;
@@ -38273,7 +38487,7 @@ function useNatsDialogSubscription({
38273
38487
  });
38274
38488
  lastSubscribedDialogIdRef.current = dialogId;
38275
38489
  setIsSubscribed(true);
38276
- _optionalChain([onSubscribedRef, 'access', _884 => _884.current, 'optionalCall', _885 => _885()]);
38490
+ _optionalChain([onSubscribedRef, 'access', _894 => _894.current, 'optionalCall', _895 => _895()]);
38277
38491
  };
38278
38492
  if (isConnectedRef.current) {
38279
38493
  createSubscriptions();
@@ -38283,7 +38497,7 @@ function useNatsDialogSubscription({
38283
38497
  abort.abort();
38284
38498
  subscriptionRefs.current.forEach((sub) => {
38285
38499
  try {
38286
- _optionalChain([sub, 'optionalAccess', _886 => _886.unsubscribe, 'call', _887 => _887()]);
38500
+ _optionalChain([sub, 'optionalAccess', _896 => _896.unsubscribe, 'call', _897 => _897()]);
38287
38501
  } catch (e41) {
38288
38502
  }
38289
38503
  });
@@ -38324,7 +38538,7 @@ function useNatsDialogSubscription({
38324
38538
  });
38325
38539
  lastSubscribedDialogIdRef.current = dialogId2;
38326
38540
  setIsSubscribed(true);
38327
- _optionalChain([onSubscribedRef, 'access', _888 => _888.current, 'optionalCall', _889 => _889()]);
38541
+ _optionalChain([onSubscribedRef, 'access', _898 => _898.current, 'optionalCall', _899 => _899()]);
38328
38542
  } else if (subscriptionRefs.current.size > 0) {
38329
38543
  setIsSubscribed(true);
38330
38544
  }
@@ -38332,10 +38546,10 @@ function useNatsDialogSubscription({
38332
38546
  return { isConnected, isSubscribed, reconnectionCount };
38333
38547
  }
38334
38548
  function buildNatsWsUrl(apiBaseUrl, options) {
38335
- const path = _optionalChain([options, 'optionalAccess', _890 => _890.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
38549
+ const path = _optionalChain([options, 'optionalAccess', _900 => _900.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
38336
38550
  const u = new URL(path, apiBaseUrl);
38337
38551
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
38338
- if (_optionalChain([options, 'optionalAccess', _891 => _891.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _892 => _892.token])) {
38552
+ if (_optionalChain([options, 'optionalAccess', _901 => _901.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _902 => _902.token])) {
38339
38553
  u.searchParams.set("authorization", options.token);
38340
38554
  }
38341
38555
  return u.toString();
@@ -38651,8 +38865,8 @@ var MessageSegmentAccumulator = class {
38651
38865
  type: "tool_execution",
38652
38866
  data: {
38653
38867
  ...toolData,
38654
- toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _893 => _893.data, 'access', _894 => _894.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _895 => _895.toolTitle]))),
38655
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _896 => _896.parameters])
38868
+ toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _903 => _903.data, 'access', _904 => _904.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _905 => _905.toolTitle]))),
38869
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _906 => _906.parameters])
38656
38870
  }
38657
38871
  };
38658
38872
  if (existingIndex !== -1) {
@@ -38676,8 +38890,8 @@ var MessageSegmentAccumulator = class {
38676
38890
  if (seg.type !== "approval_batch") return seg;
38677
38891
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
38678
38892
  if (!hasCall) return seg;
38679
- const prev = _optionalChain([seg, 'access', _897 => _897.data, 'access', _898 => _898.executions, 'optionalAccess', _899 => _899[execId]]);
38680
- const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _900 => _900.result]), success: _optionalChain([prev, 'optionalAccess', _901 => _901.success]) };
38893
+ const prev = _optionalChain([seg, 'access', _907 => _907.data, 'access', _908 => _908.executions, 'optionalAccess', _909 => _909[execId]]);
38894
+ const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _910 => _910.result]), success: _optionalChain([prev, 'optionalAccess', _911 => _911.success]) };
38681
38895
  matched = true;
38682
38896
  return {
38683
38897
  ...seg,
@@ -38797,10 +39011,10 @@ var MessageSegmentAccumulator = class {
38797
39011
  const segment = {
38798
39012
  type: "approval_request",
38799
39013
  data: {
38800
- command: _optionalChain([pendingApproval, 'optionalAccess', _902 => _902.command]) || "",
38801
- explanation: _optionalChain([pendingApproval, 'optionalAccess', _903 => _903.explanation]),
39014
+ command: _optionalChain([pendingApproval, 'optionalAccess', _912 => _912.command]) || "",
39015
+ explanation: _optionalChain([pendingApproval, 'optionalAccess', _913 => _913.explanation]),
38802
39016
  requestId,
38803
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _904 => _904.approvalType]) || approvalType
39017
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _914 => _914.approvalType]) || approvalType
38804
39018
  },
38805
39019
  status,
38806
39020
  onApprove: this.callbacks.onApprove,
@@ -38988,7 +39202,7 @@ function useRealtimeChunkProcessor(options) {
38988
39202
  if (initialState.escalatedApprovals) {
38989
39203
  pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
38990
39204
  initialState.escalatedApprovals.forEach((data, requestId) => {
38991
- _optionalChain([callbacks, 'access', _905 => _905.onEscalatedApproval, 'optionalCall', _906 => _906(requestId, data)]);
39205
+ _optionalChain([callbacks, 'access', _915 => _915.onEscalatedApproval, 'optionalCall', _916 => _916(requestId, data)]);
38992
39206
  });
38993
39207
  }
38994
39208
  hasEverStreamedRef.current = true;
@@ -39010,32 +39224,32 @@ function useRealtimeChunkProcessor(options) {
39010
39224
  case "message_start":
39011
39225
  isInStreamRef.current = true;
39012
39226
  hasEverStreamedRef.current = true;
39013
- _optionalChain([callbacks, 'access', _907 => _907.onStreamStart, 'optionalCall', _908 => _908()]);
39227
+ _optionalChain([callbacks, 'access', _917 => _917.onStreamStart, 'optionalCall', _918 => _918()]);
39014
39228
  accumulator.resetSegments();
39015
39229
  break;
39016
39230
  case "message_end":
39017
39231
  isInStreamRef.current = false;
39018
- _optionalChain([callbacks, 'access', _909 => _909.onStreamEnd, 'optionalCall', _910 => _910()]);
39232
+ _optionalChain([callbacks, 'access', _919 => _919.onStreamEnd, 'optionalCall', _920 => _920()]);
39019
39233
  accumulator.resetSegments();
39020
39234
  break;
39021
39235
  case "metadata":
39022
- _optionalChain([callbacks, 'access', _911 => _911.onMetadata, 'optionalCall', _912 => _912(action)]);
39236
+ _optionalChain([callbacks, 'access', _921 => _921.onMetadata, 'optionalCall', _922 => _922(action)]);
39023
39237
  break;
39024
39238
  case "text": {
39025
39239
  const segments = accumulator.appendText(action.text);
39026
39240
  if (isInStreamRef.current || !hasEverStreamedRef.current) {
39027
- _optionalChain([callbacks, 'access', _913 => _913.onSegmentsUpdate, 'optionalCall', _914 => _914(segments)]);
39241
+ _optionalChain([callbacks, 'access', _923 => _923.onSegmentsUpdate, 'optionalCall', _924 => _924(segments)]);
39028
39242
  } else {
39029
- _optionalChain([callbacks, 'access', _915 => _915.onSegmentsUpdate, 'optionalCall', _916 => _916([{ type: "text", text: action.text }], { append: true })]);
39243
+ _optionalChain([callbacks, 'access', _925 => _925.onSegmentsUpdate, 'optionalCall', _926 => _926([{ type: "text", text: action.text }], { append: true })]);
39030
39244
  }
39031
39245
  break;
39032
39246
  }
39033
39247
  case "thinking": {
39034
39248
  const segments = accumulator.appendThinking(action.text);
39035
39249
  if (isInStreamRef.current || !hasEverStreamedRef.current) {
39036
- _optionalChain([callbacks, 'access', _917 => _917.onSegmentsUpdate, 'optionalCall', _918 => _918(segments)]);
39250
+ _optionalChain([callbacks, 'access', _927 => _927.onSegmentsUpdate, 'optionalCall', _928 => _928(segments)]);
39037
39251
  } else {
39038
- _optionalChain([callbacks, 'access', _919 => _919.onSegmentsUpdate, 'optionalCall', _920 => _920([{ type: "thinking", text: action.text }], { append: true })]);
39252
+ _optionalChain([callbacks, 'access', _929 => _929.onSegmentsUpdate, 'optionalCall', _930 => _930([{ type: "thinking", text: action.text }], { append: true })]);
39039
39253
  }
39040
39254
  break;
39041
39255
  }
@@ -39045,7 +39259,7 @@ function useRealtimeChunkProcessor(options) {
39045
39259
  break;
39046
39260
  }
39047
39261
  const segments = accumulator.addToolExecution(action.segment);
39048
- _optionalChain([callbacks, 'access', _921 => _921.onSegmentsUpdate, 'optionalCall', _922 => _922(segments)]);
39262
+ _optionalChain([callbacks, 'access', _931 => _931.onSegmentsUpdate, 'optionalCall', _932 => _932(segments)]);
39049
39263
  break;
39050
39264
  }
39051
39265
  case "approval_request": {
@@ -39059,10 +39273,10 @@ function useRealtimeChunkProcessor(options) {
39059
39273
  approvalType,
39060
39274
  status
39061
39275
  );
39062
- _optionalChain([callbacks, 'access', _923 => _923.onSegmentsUpdate, 'optionalCall', _924 => _924(segments)]);
39276
+ _optionalChain([callbacks, 'access', _933 => _933.onSegmentsUpdate, 'optionalCall', _934 => _934(segments)]);
39063
39277
  } else {
39064
39278
  pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
39065
- _optionalChain([callbacks, 'access', _925 => _925.onEscalatedApproval, 'optionalCall', _926 => _926(requestId, { command, explanation, approvalType })]);
39279
+ _optionalChain([callbacks, 'access', _935 => _935.onEscalatedApproval, 'optionalCall', _936 => _936(requestId, { command, explanation, approvalType })]);
39066
39280
  }
39067
39281
  break;
39068
39282
  }
@@ -39074,20 +39288,20 @@ function useRealtimeChunkProcessor(options) {
39074
39288
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
39075
39289
  pendingEscalatedRef.current.set(requestId, {
39076
39290
  command: summary,
39077
- explanation: _optionalChain([required, 'optionalAccess', _927 => _927.toolExplanation]),
39291
+ explanation: _optionalChain([required, 'optionalAccess', _937 => _937.toolExplanation]),
39078
39292
  approvalType,
39079
39293
  toolCalls
39080
39294
  });
39081
- _optionalChain([callbacks, 'access', _928 => _928.onEscalatedApproval, 'optionalCall', _929 => _929(requestId, {
39295
+ _optionalChain([callbacks, 'access', _938 => _938.onEscalatedApproval, 'optionalCall', _939 => _939(requestId, {
39082
39296
  command: summary,
39083
- explanation: _optionalChain([required, 'optionalAccess', _930 => _930.toolExplanation]),
39297
+ explanation: _optionalChain([required, 'optionalAccess', _940 => _940.toolExplanation]),
39084
39298
  approvalType
39085
39299
  })]);
39086
39300
  break;
39087
39301
  }
39088
39302
  if (batchApprovalsEnabled) {
39089
39303
  const segments2 = accumulator.addApprovalBatch(requestId, approvalType, toolCalls, status);
39090
- _optionalChain([callbacks, 'access', _931 => _931.onSegmentsUpdate, 'optionalCall', _932 => _932(segments2)]);
39304
+ _optionalChain([callbacks, 'access', _941 => _941.onSegmentsUpdate, 'optionalCall', _942 => _942(segments2)]);
39091
39305
  break;
39092
39306
  }
39093
39307
  let segments = accumulator.getSegments();
@@ -39101,7 +39315,7 @@ function useRealtimeChunkProcessor(options) {
39101
39315
  status
39102
39316
  );
39103
39317
  }
39104
- _optionalChain([callbacks, 'access', _933 => _933.onSegmentsUpdate, 'optionalCall', _934 => _934(segments)]);
39318
+ _optionalChain([callbacks, 'access', _943 => _943.onSegmentsUpdate, 'optionalCall', _944 => _944(segments)]);
39105
39319
  break;
39106
39320
  }
39107
39321
  case "approval_result": {
@@ -39110,7 +39324,7 @@ function useRealtimeChunkProcessor(options) {
39110
39324
  const status = approved ? "approved" : "rejected";
39111
39325
  if (escalatedData) {
39112
39326
  pendingEscalatedRef.current.delete(requestId);
39113
- _optionalChain([callbacks, 'access', _935 => _935.onEscalatedApprovalResult, 'optionalCall', _936 => _936(requestId, approved, {
39327
+ _optionalChain([callbacks, 'access', _945 => _945.onEscalatedApprovalResult, 'optionalCall', _946 => _946(requestId, approved, {
39114
39328
  command: escalatedData.command,
39115
39329
  explanation: escalatedData.explanation,
39116
39330
  approvalType: escalatedData.approvalType
@@ -39123,7 +39337,7 @@ function useRealtimeChunkProcessor(options) {
39123
39337
  escalatedData.toolCalls,
39124
39338
  status
39125
39339
  );
39126
- _optionalChain([callbacks, 'access', _937 => _937.onSegmentsUpdate, 'optionalCall', _938 => _938(segments)]);
39340
+ _optionalChain([callbacks, 'access', _947 => _947.onSegmentsUpdate, 'optionalCall', _948 => _948(segments)]);
39127
39341
  } else {
39128
39342
  let segments = accumulator.getSegments();
39129
39343
  for (const call of escalatedData.toolCalls) {
@@ -39136,7 +39350,7 @@ function useRealtimeChunkProcessor(options) {
39136
39350
  status
39137
39351
  );
39138
39352
  }
39139
- _optionalChain([callbacks, 'access', _939 => _939.onSegmentsUpdate, 'optionalCall', _940 => _940(segments)]);
39353
+ _optionalChain([callbacks, 'access', _949 => _949.onSegmentsUpdate, 'optionalCall', _950 => _950(segments)]);
39140
39354
  }
39141
39355
  } else {
39142
39356
  const segments = accumulator.addApprovalRequest(
@@ -39146,65 +39360,65 @@ function useRealtimeChunkProcessor(options) {
39146
39360
  escalatedData.approvalType,
39147
39361
  status
39148
39362
  );
39149
- _optionalChain([callbacks, 'access', _941 => _941.onSegmentsUpdate, 'optionalCall', _942 => _942(segments)]);
39363
+ _optionalChain([callbacks, 'access', _951 => _951.onSegmentsUpdate, 'optionalCall', _952 => _952(segments)]);
39150
39364
  }
39151
39365
  } else {
39152
39366
  accumulator.updateApprovalStatus(requestId, status);
39153
39367
  if (!callbacks.onApprovalResolved) {
39154
- _optionalChain([callbacks, 'access', _943 => _943.onSegmentsUpdate, 'optionalCall', _944 => _944(accumulator.getSegments())]);
39368
+ _optionalChain([callbacks, 'access', _953 => _953.onSegmentsUpdate, 'optionalCall', _954 => _954(accumulator.getSegments())]);
39155
39369
  }
39156
39370
  }
39157
- _optionalChain([callbacks, 'access', _945 => _945.onApprovalResolved, 'optionalCall', _946 => _946(requestId, status, approvalType)]);
39371
+ _optionalChain([callbacks, 'access', _955 => _955.onApprovalResolved, 'optionalCall', _956 => _956(requestId, status, approvalType)]);
39158
39372
  break;
39159
39373
  }
39160
39374
  case "error": {
39161
39375
  let message2;
39162
- if ("details" in action && _optionalChain([action, 'optionalAccess', _947 => _947.details])) {
39376
+ if ("details" in action && _optionalChain([action, 'optionalAccess', _957 => _957.details])) {
39163
39377
  try {
39164
- message2 = _optionalChain([JSON, 'access', _948 => _948.parse, 'call', _949 => _949(action.details), 'optionalAccess', _950 => _950.error, 'optionalAccess', _951 => _951.message]);
39378
+ message2 = _optionalChain([JSON, 'access', _958 => _958.parse, 'call', _959 => _959(action.details), 'optionalAccess', _960 => _960.error, 'optionalAccess', _961 => _961.message]);
39165
39379
  } catch (e43) {
39166
39380
  message2 = action.details;
39167
39381
  }
39168
39382
  }
39169
39383
  const segments = accumulator.addError(action.error, message2);
39170
- _optionalChain([callbacks, 'access', _952 => _952.onSegmentsUpdate, 'optionalCall', _953 => _953(segments)]);
39171
- _optionalChain([callbacks, 'access', _954 => _954.onError, 'optionalCall', _955 => _955(action.error, message2)]);
39384
+ _optionalChain([callbacks, 'access', _962 => _962.onSegmentsUpdate, 'optionalCall', _963 => _963(segments)]);
39385
+ _optionalChain([callbacks, 'access', _964 => _964.onError, 'optionalCall', _965 => _965(action.error, message2)]);
39172
39386
  break;
39173
39387
  }
39174
39388
  case "system": {
39175
- _optionalChain([callbacks, 'access', _956 => _956.onSystemMessage, 'optionalCall', _957 => _957(action.text)]);
39389
+ _optionalChain([callbacks, 'access', _966 => _966.onSystemMessage, 'optionalCall', _967 => _967(action.text)]);
39176
39390
  break;
39177
39391
  }
39178
39392
  case "direct_message": {
39179
- _optionalChain([callbacks, 'access', _958 => _958.onDirectMessage, 'optionalCall', _959 => _959(action.text, {
39393
+ _optionalChain([callbacks, 'access', _968 => _968.onDirectMessage, 'optionalCall', _969 => _969(action.text, {
39180
39394
  ownerType: action.ownerType,
39181
39395
  displayName: action.displayName
39182
39396
  })]);
39183
39397
  break;
39184
39398
  }
39185
39399
  case "message_request":
39186
- _optionalChain([callbacks, 'access', _960 => _960.onUserMessage, 'optionalCall', _961 => _961(action.text, {
39400
+ _optionalChain([callbacks, 'access', _970 => _970.onUserMessage, 'optionalCall', _971 => _971(action.text, {
39187
39401
  ownerType: action.ownerType,
39188
39402
  displayName: action.displayName
39189
39403
  })]);
39190
39404
  break;
39191
39405
  case "token_usage":
39192
- _optionalChain([callbacks, 'access', _962 => _962.onTokenUsage, 'optionalCall', _963 => _963(action.data)]);
39406
+ _optionalChain([callbacks, 'access', _972 => _972.onTokenUsage, 'optionalCall', _973 => _973(action.data)]);
39193
39407
  break;
39194
39408
  case "context_compaction_start": {
39195
39409
  const standalone = !isInStreamRef.current;
39196
39410
  const segments = accumulator.addContextCompaction();
39197
- _optionalChain([callbacks, 'access', _964 => _964.onSegmentsUpdate, 'optionalCall', _965 => _965(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
39411
+ _optionalChain([callbacks, 'access', _974 => _974.onSegmentsUpdate, 'optionalCall', _975 => _975(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
39198
39412
  break;
39199
39413
  }
39200
39414
  case "context_compaction_end": {
39201
39415
  const standalone = !isInStreamRef.current;
39202
39416
  const segments = accumulator.completeContextCompaction(action.summary);
39203
- _optionalChain([callbacks, 'access', _966 => _966.onSegmentsUpdate, 'optionalCall', _967 => _967(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
39417
+ _optionalChain([callbacks, 'access', _976 => _976.onSegmentsUpdate, 'optionalCall', _977 => _977(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
39204
39418
  break;
39205
39419
  }
39206
39420
  case "dialog_closed":
39207
- _optionalChain([callbacks, 'access', _968 => _968.onDialogClosed, 'optionalCall', _969 => _969()]);
39421
+ _optionalChain([callbacks, 'access', _978 => _978.onDialogClosed, 'optionalCall', _979 => _979()]);
39208
39422
  break;
39209
39423
  default:
39210
39424
  break;
@@ -39265,7 +39479,7 @@ function useSlashCommands(prefix, commandsUrl) {
39265
39479
  const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
39266
39480
  if (!cancelled) setCommands(next);
39267
39481
  } catch (err) {
39268
- if (!cancelled && _optionalChain([err, 'optionalAccess', _970 => _970.name]) !== "AbortError") {
39482
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _980 => _980.name]) !== "AbortError") {
39269
39483
  console.warn("[use-slash-commands] fetch failed:", err);
39270
39484
  }
39271
39485
  } finally {
@@ -39284,7 +39498,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
39284
39498
  const query = _reactquery.useQuery.call(void 0, {
39285
39499
  queryKey: ["chat-slash-commands", commandsUrl],
39286
39500
  queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
39287
- enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _971 => _971.enabled]), () => ( true)),
39501
+ enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _981 => _981.enabled]), () => ( true)),
39288
39502
  staleTime: Infinity,
39289
39503
  gcTime: Infinity
39290
39504
  });
@@ -39305,7 +39519,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
39305
39519
  var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
39306
39520
  function uploadWithProgress(url, file, token, onProgress, signal) {
39307
39521
  return new Promise((resolve, reject) => {
39308
- if (_optionalChain([signal, 'optionalAccess', _972 => _972.aborted])) {
39522
+ if (_optionalChain([signal, 'optionalAccess', _982 => _982.aborted])) {
39309
39523
  reject(new Error("Upload cancelled"));
39310
39524
  return;
39311
39525
  }
@@ -39319,7 +39533,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
39319
39533
  xhr.removeEventListener("error", handleError);
39320
39534
  xhr.removeEventListener("abort", handleAbort);
39321
39535
  xhr.removeEventListener("timeout", handleTimeout);
39322
- _optionalChain([signal, 'optionalAccess', _973 => _973.removeEventListener, 'call', _974 => _974("abort", handleSignalAbort)]);
39536
+ _optionalChain([signal, 'optionalAccess', _983 => _983.removeEventListener, 'call', _984 => _984("abort", handleSignalAbort)]);
39323
39537
  if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
39324
39538
  };
39325
39539
  const handleProgress = (event) => {
@@ -39355,7 +39569,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
39355
39569
  const handleSignalAbort = () => {
39356
39570
  xhr.abort();
39357
39571
  };
39358
- _optionalChain([signal, 'optionalAccess', _975 => _975.addEventListener, 'call', _976 => _976("abort", handleSignalAbort, { once: true })]);
39572
+ _optionalChain([signal, 'optionalAccess', _985 => _985.addEventListener, 'call', _986 => _986("abort", handleSignalAbort, { once: true })]);
39359
39573
  xhr.upload.addEventListener("progress", handleProgress);
39360
39574
  xhr.addEventListener("load", handleLoad);
39361
39575
  xhr.addEventListener("error", handleError);
@@ -39399,12 +39613,12 @@ function useChatAttachments() {
39399
39613
  try {
39400
39614
  sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
39401
39615
  } catch (err) {
39402
- if (_optionalChain([ctrl, 'optionalAccess', _977 => _977.signal, 'access', _978 => _978.aborted])) return;
39616
+ if (_optionalChain([ctrl, 'optionalAccess', _987 => _987.signal, 'access', _988 => _988.aborted])) return;
39403
39617
  throw new Error(
39404
39618
  `Could not read file content: ${err instanceof Error ? err.message : String(err)}`
39405
39619
  );
39406
39620
  }
39407
- if (_optionalChain([ctrl, 'optionalAccess', _979 => _979.signal, 'access', _980 => _980.aborted])) return;
39621
+ if (_optionalChain([ctrl, 'optionalAccess', _989 => _989.signal, 'access', _990 => _990.aborted])) return;
39408
39622
  if (!sniffed) {
39409
39623
  throw new Error("Unrecognized file format");
39410
39624
  }
@@ -39418,7 +39632,7 @@ function useChatAttachments() {
39418
39632
  const urlResp = await embedAuthedFetch(uploadUrlEndpoint, {
39419
39633
  method: "POST",
39420
39634
  headers: { "Content-Type": "application/json" },
39421
- signal: _optionalChain([ctrl, 'optionalAccess', _981 => _981.signal]),
39635
+ signal: _optionalChain([ctrl, 'optionalAccess', _991 => _991.signal]),
39422
39636
  body: JSON.stringify({
39423
39637
  fileName: att.file.name,
39424
39638
  // Pass the SNIFFED MIME (not `file.type`, which can be a
@@ -39444,9 +39658,9 @@ function useChatAttachments() {
39444
39658
  (pct) => {
39445
39659
  updateOne(att.id, { progress: pct });
39446
39660
  },
39447
- _optionalChain([ctrl, 'optionalAccess', _982 => _982.signal])
39661
+ _optionalChain([ctrl, 'optionalAccess', _992 => _992.signal])
39448
39662
  );
39449
- if (_optionalChain([ctrl, 'optionalAccess', _983 => _983.signal, 'access', _984 => _984.aborted])) return;
39663
+ if (_optionalChain([ctrl, 'optionalAccess', _993 => _993.signal, 'access', _994 => _994.aborted])) return;
39450
39664
  updateOne(att.id, {
39451
39665
  status: "ready",
39452
39666
  progress: 100,
@@ -39454,7 +39668,7 @@ function useChatAttachments() {
39454
39668
  viewToken: mintData.viewToken
39455
39669
  });
39456
39670
  } catch (err) {
39457
- if (_optionalChain([ctrl, 'optionalAccess', _985 => _985.signal, 'access', _986 => _986.aborted])) return;
39671
+ if (_optionalChain([ctrl, 'optionalAccess', _995 => _995.signal, 'access', _996 => _996.aborted])) return;
39458
39672
  const message2 = err instanceof Error ? err.message : String(err);
39459
39673
  updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
39460
39674
  } finally {
@@ -39605,7 +39819,7 @@ var ANON_DEFAULTS = {
39605
39819
  function useResolveChatIdentity(enabled) {
39606
39820
  const runtime = _chunkMEAR2WHScjs.useRequiredChatRuntime.call(void 0, );
39607
39821
  const url = runtime.endpoints.identityUrl;
39608
- const proxyEmail = _nullishCoalesce(_optionalChain([getEmbedProxyAuth, 'call', _987 => _987(), 'optionalAccess', _988 => _988.email]), () => ( null));
39822
+ const proxyEmail = _nullishCoalesce(_optionalChain([getEmbedProxyAuth, 'call', _997 => _997(), 'optionalAccess', _998 => _998.email]), () => ( null));
39609
39823
  const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
39610
39824
  const [isLoading, setIsLoading] = _react.useState.call(void 0, enabled);
39611
39825
  _react.useEffect.call(void 0, () => {
@@ -39693,7 +39907,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
39693
39907
  yield chunk;
39694
39908
  }
39695
39909
  } catch (err) {
39696
- if (_optionalChain([err, 'optionalAccess', _989 => _989.name]) === "AbortError" || ctrl.signal.aborted) {
39910
+ if (_optionalChain([err, 'optionalAccess', _999 => _999.name]) === "AbortError" || ctrl.signal.aborted) {
39697
39911
  return;
39698
39912
  }
39699
39913
  const errorMessage = err instanceof Error ? err.message : "An error occurred";
@@ -39744,7 +39958,7 @@ function useChat({
39744
39958
  const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
39745
39959
  onMessagesChangeRef.current = onMessagesChange;
39746
39960
  _react.useEffect.call(void 0, () => {
39747
- _optionalChain([onMessagesChangeRef, 'access', _990 => _990.current, 'optionalCall', _991 => _991(messages)]);
39961
+ _optionalChain([onMessagesChangeRef, 'access', _1000 => _1000.current, 'optionalCall', _1001 => _1001(messages)]);
39748
39962
  }, [messages]);
39749
39963
  const {
39750
39964
  streamMessage,
@@ -39781,7 +39995,7 @@ function useChat({
39781
39995
  name: "You",
39782
39996
  content: text,
39783
39997
  timestamp: /* @__PURE__ */ new Date(),
39784
- ..._optionalChain([options, 'optionalAccess', _992 => _992.hidden]) ? { hidden: true } : {}
39998
+ ..._optionalChain([options, 'optionalAccess', _1002 => _1002.hidden]) ? { hidden: true } : {}
39785
39999
  };
39786
40000
  addMessage(userMessage);
39787
40001
  setIsTyping(true);
@@ -39843,7 +40057,7 @@ function useChat({
39843
40057
  currentTextSegment = "";
39844
40058
  }
39845
40059
  const seg = segment;
39846
- const proposalId = _optionalChain([seg, 'access', _993 => _993.data, 'optionalAccess', _994 => _994.requestId]);
40060
+ const proposalId = _optionalChain([seg, 'access', _1003 => _1003.data, 'optionalAccess', _1004 => _1004.requestId]);
39847
40061
  const updateApprovalMessage = (transform) => {
39848
40062
  setMessages((prev) => {
39849
40063
  for (let i = prev.length - 1; i >= 0; i--) {
@@ -39852,7 +40066,7 @@ function useChat({
39852
40066
  if (!Array.isArray(m.content)) continue;
39853
40067
  const segments = m.content;
39854
40068
  const hasMatch = segments.some(
39855
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _995 => _995.data, 'optionalAccess', _996 => _996.requestId]) === proposalId
40069
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1005 => _1005.data, 'optionalAccess', _1006 => _1006.requestId]) === proposalId
39856
40070
  );
39857
40071
  if (!hasMatch) continue;
39858
40072
  const next = [...prev];
@@ -39894,11 +40108,11 @@ function useChat({
39894
40108
  if (!Array.isArray(m.content)) continue;
39895
40109
  const segments = m.content;
39896
40110
  const hasMatch = segments.some(
39897
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _997 => _997.data, 'optionalAccess', _998 => _998.requestId]) === decision.proposalId
40111
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1007 => _1007.data, 'optionalAccess', _1008 => _1008.requestId]) === decision.proposalId
39898
40112
  );
39899
40113
  if (!hasMatch) continue;
39900
40114
  const flipped = segments.map(
39901
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _999 => _999.data, 'optionalAccess', _1000 => _1000.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
40115
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1009 => _1009.data, 'optionalAccess', _1010 => _1010.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
39902
40116
  );
39903
40117
  const next = [...prev];
39904
40118
  next[i] = { ...m, content: flipped };
@@ -40060,8 +40274,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
40060
40274
  })),
40061
40275
  { role: "user", content: message2 }
40062
40276
  ];
40063
- const targetPath = _optionalChain([extra, 'optionalAccess', _1001 => _1001.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
40064
- const requestBody = _optionalChain([extra, 'optionalAccess', _1002 => _1002.approvalAction]) ? {
40277
+ const targetPath = _optionalChain([extra, 'optionalAccess', _1011 => _1011.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
40278
+ const requestBody = _optionalChain([extra, 'optionalAccess', _1012 => _1012.approvalAction]) ? {
40065
40279
  proposal_id: extra.approvalAction.proposalId,
40066
40280
  action: extra.approvalAction.action,
40067
40281
  messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
@@ -40070,8 +40284,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
40070
40284
  }))
40071
40285
  } : {
40072
40286
  messages: apiMessages,
40073
- ..._optionalChain([extra, 'optionalAccess', _1003 => _1003.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
40074
- ..._optionalChain([extra, 'optionalAccess', _1004 => _1004.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
40287
+ ..._optionalChain([extra, 'optionalAccess', _1013 => _1013.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
40288
+ ..._optionalChain([extra, 'optionalAccess', _1014 => _1014.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
40075
40289
  };
40076
40290
  const response = await embedAuthedFetch(targetPath, {
40077
40291
  method: "POST",
@@ -40081,7 +40295,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
40081
40295
  if (!response.ok) {
40082
40296
  throw new Error(`Chat request failed: ${response.status}`);
40083
40297
  }
40084
- const reader = _optionalChain([response, 'access', _1005 => _1005.body, 'optionalAccess', _1006 => _1006.getReader, 'call', _1007 => _1007()]);
40298
+ const reader = _optionalChain([response, 'access', _1015 => _1015.body, 'optionalAccess', _1016 => _1016.getReader, 'call', _1017 => _1017()]);
40085
40299
  if (!reader) throw new Error("No response body");
40086
40300
  const decoder = new TextDecoder();
40087
40301
  let buffer = "";
@@ -40164,7 +40378,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
40164
40378
  const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
40165
40379
  const result = _nullishCoalesce(meta.result, () => ( null));
40166
40380
  const card = _nullishCoalesce(meta.card, () => ( null));
40167
- if (_optionalChain([card, 'optionalAccess', _1008 => _1008.ref, 'optionalAccess', _1009 => _1009.id]) && _optionalChain([card, 'optionalAccess', _1010 => _1010.type])) {
40381
+ if (_optionalChain([card, 'optionalAccess', _1018 => _1018.ref, 'optionalAccess', _1019 => _1019.id]) && _optionalChain([card, 'optionalAccess', _1020 => _1020.type])) {
40168
40382
  const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
40169
40383
  const key = buildChatRefKey(card.type, card.ref.id);
40170
40384
  refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
@@ -40177,8 +40391,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
40177
40391
  willAutoContinue: meta.willAutoContinue === true,
40178
40392
  ...toolName ? { toolName } : {},
40179
40393
  ...result ? { result } : {},
40180
- ..._optionalChain([card, 'optionalAccess', _1011 => _1011.marker]) ? { marker: card.marker } : {},
40181
- ..._optionalChain([card, 'optionalAccess', _1012 => _1012.ref]) ? { cardRef: card.ref } : {},
40394
+ ..._optionalChain([card, 'optionalAccess', _1021 => _1021.marker]) ? { marker: card.marker } : {},
40395
+ ..._optionalChain([card, 'optionalAccess', _1022 => _1022.ref]) ? { cardRef: card.ref } : {},
40182
40396
  ...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
40183
40397
  proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
40184
40398
  };
@@ -40297,7 +40511,7 @@ var DEFAULT_CHAT_SOURCE = "embed";
40297
40511
  var chatStorageKey = (source) => {
40298
40512
  const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
40299
40513
  const auth = getEmbedProxyAuth();
40300
- if (_optionalChain([auth, 'optionalAccess', _1013 => _1013.email])) {
40514
+ if (_optionalChain([auth, 'optionalAccess', _1023 => _1023.email])) {
40301
40515
  return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
40302
40516
  }
40303
40517
  return base;
@@ -40352,7 +40566,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
40352
40566
  const { active = true } = runtimeOptions;
40353
40567
  const runtime = _chunkMEAR2WHScjs.useRequiredChatRuntime.call(void 0, );
40354
40568
  const source = runtime.source || DEFAULT_CHAT_SOURCE;
40355
- const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1014 => _1014.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
40569
+ const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1024 => _1024.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
40356
40570
  const persistedRef = _react.useRef.call(void 0, null);
40357
40571
  if (persistedRef.current === null) {
40358
40572
  pruneStaleChatStorage(source);
@@ -40457,7 +40671,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
40457
40671
  const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
40458
40672
  sources = sourcesMapRef.current.get(lookupIdx);
40459
40673
  chatRefs = _nullishCoalesce(m.chatRefs, () => ( refsMapRef.current.get(lookupIdx)));
40460
- scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _1015 => _1015.current, 'access', _1016 => _1016.get, 'call', _1017 => _1017(lookupIdx), 'optionalAccess', _1018 => _1018.scrollAnchor]), () => ( void 0));
40674
+ scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _1025 => _1025.current, 'access', _1026 => _1026.get, 'call', _1027 => _1027(lookupIdx), 'optionalAccess', _1028 => _1028.scrollAnchor]), () => ( void 0));
40461
40675
  }
40462
40676
  return {
40463
40677
  id: m.id,
@@ -40505,7 +40719,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
40505
40719
  );
40506
40720
  return;
40507
40721
  }
40508
- const refSlug = typeof _optionalChain([reference, 'access', _1019 => _1019.metadata, 'optionalAccess', _1020 => _1020.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
40722
+ const refSlug = typeof _optionalChain([reference, 'access', _1029 => _1029.metadata, 'optionalAccess', _1030 => _1030.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
40509
40723
  const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
40510
40724
  const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
40511
40725
  const text = `/${cmdId} display "${escaped}"`;
@@ -40577,18 +40791,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
40577
40791
  clearMessages,
40578
40792
  streamingPhase,
40579
40793
  /** Provider key for the lib's `<ModelDisplay>` icon. */
40580
- currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1021 => _1021.provider]), () => ( null)),
40581
- currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1022 => _1022.modelLabel]), () => ( null)),
40582
- currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1023 => _1023.contextWindowMaxTokens]), () => ( null)),
40794
+ currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1031 => _1031.provider]), () => ( null)),
40795
+ currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1032 => _1032.modelLabel]), () => ( null)),
40796
+ currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1033 => _1033.contextWindowMaxTokens]), () => ( null)),
40583
40797
  /** Input tokens (known after server's message_start frame; null until). */
40584
- currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1024 => _1024.inputTokens]), () => ( null)),
40798
+ currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1034 => _1034.inputTokens]), () => ( null)),
40585
40799
  /** Output tokens (known only after server's trailing usage frame). */
40586
- currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1025 => _1025.outputTokens]), () => ( null)),
40800
+ currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1035 => _1035.outputTokens]), () => ( null)),
40587
40801
  /** Cache hit % (read / total-input × 100). null during streaming. */
40588
- currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1026 => _1026.cacheHitRatePct]), () => ( null)),
40802
+ currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1036 => _1036.cacheHitRatePct]), () => ( null)),
40589
40803
  /** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
40590
40804
  * token counts). null until the trailing usage frame lands. */
40591
- currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1027 => _1027.breakdown]), () => ( null)),
40805
+ currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1037 => _1037.breakdown]), () => ( null)),
40592
40806
  // ─── Dialog management — stubs for v1 ────────────────────────────────
40593
40807
  // Guide mode currently keeps its history in `localStorage` opaquely
40594
40808
  // under the hood (`runtime.source` namespaced key). Surfacing that
@@ -40646,15 +40860,15 @@ var noopRejectRequest = async (_id, _reason) => {
40646
40860
 
40647
40861
  // src/components/chat/utils/process-historical-messages.ts
40648
40862
  function getOwnerDisplayName(owner) {
40649
- if (_optionalChain([owner, 'optionalAccess', _1028 => _1028.type]) === OWNER_TYPE.ADMIN && owner.user) {
40863
+ if (_optionalChain([owner, 'optionalAccess', _1038 => _1038.type]) === OWNER_TYPE.ADMIN && owner.user) {
40650
40864
  const { firstName, lastName } = owner.user;
40651
40865
  const name = [firstName, lastName].filter(Boolean).join(" ");
40652
40866
  if (name) return name;
40653
40867
  }
40654
- return _optionalChain([owner, 'optionalAccess', _1029 => _1029.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
40868
+ return _optionalChain([owner, 'optionalAccess', _1039 => _1039.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
40655
40869
  }
40656
40870
  function getOwnerAvatar(owner) {
40657
- return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1030 => _1030.user, 'optionalAccess', _1031 => _1031.image, 'optionalAccess', _1032 => _1032.imageUrl]), () => ( void 0));
40871
+ return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1040 => _1040.user, 'optionalAccess', _1041 => _1041.image, 'optionalAccess', _1042 => _1042.imageUrl]), () => ( void 0));
40658
40872
  }
40659
40873
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
40660
40874
  messageDataArray.forEach((data) => {
@@ -40717,10 +40931,10 @@ function processHistoricalMessages(messages, options = {}) {
40717
40931
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
40718
40932
  return;
40719
40933
  }
40720
- const isUserMessage = _optionalChain([msg, 'access', _1033 => _1033.owner, 'optionalAccess', _1034 => _1034.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1035 => _1035.owner, 'optionalAccess', _1036 => _1036.type]) === OWNER_TYPE.ADMIN;
40934
+ const isUserMessage = _optionalChain([msg, 'access', _1043 => _1043.owner, 'optionalAccess', _1044 => _1044.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1045 => _1045.owner, 'optionalAccess', _1046 => _1046.type]) === OWNER_TYPE.ADMIN;
40721
40935
  if (isUserMessage) {
40722
40936
  flushAssistantMessage();
40723
- const userAuthorType = _optionalChain([msg, 'access', _1037 => _1037.owner, 'optionalAccess', _1038 => _1038.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
40937
+ const userAuthorType = _optionalChain([msg, 'access', _1047 => _1047.owner, 'optionalAccess', _1048 => _1048.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
40724
40938
  messageDataArray.forEach((data) => {
40725
40939
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
40726
40940
  processedMessages.push({
@@ -40745,7 +40959,7 @@ function processHistoricalMessages(messages, options = {}) {
40745
40959
  });
40746
40960
  const nextMsg = messages[index + 1];
40747
40961
  const isLastMessage = index === messages.length - 1;
40748
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1039 => _1039.owner, 'optionalAccess', _1040 => _1040.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1041 => _1041.owner, 'optionalAccess', _1042 => _1042.type]) === OWNER_TYPE.ADMIN);
40962
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1049 => _1049.owner, 'optionalAccess', _1050 => _1050.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1051 => _1051.owner, 'optionalAccess', _1052 => _1052.type]) === OWNER_TYPE.ADMIN);
40749
40963
  if (isLastMessage || nextIsFromUser) {
40750
40964
  flushAssistantMessage();
40751
40965
  }
@@ -40855,7 +41069,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
40855
41069
  }
40856
41070
  }
40857
41071
  } else {
40858
- _optionalChain([escalatedApprovals, 'optionalAccess', _1043 => _1043.set, 'call', _1044 => _1044(data.approvalRequestId, {
41072
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1053 => _1053.set, 'call', _1054 => _1054(data.approvalRequestId, {
40859
41073
  command: data.command || "",
40860
41074
  explanation: data.explanation,
40861
41075
  approvalType,
@@ -40868,8 +41082,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
40868
41082
  if ("approvalRequestId" in data && data.approvalRequestId) {
40869
41083
  const existingStatus = approvalStatuses[data.approvalRequestId];
40870
41084
  const status = existingStatus || (data.approved ? "approved" : "rejected");
40871
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1045 => _1045.get, 'call', _1046 => _1046(data.approvalRequestId)]);
40872
- if (_optionalChain([escalatedData, 'optionalAccess', _1047 => _1047.toolCalls]) && escalatedData.toolCalls.length > 0) {
41085
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1055 => _1055.get, 'call', _1056 => _1056(data.approvalRequestId)]);
41086
+ if (_optionalChain([escalatedData, 'optionalAccess', _1057 => _1057.toolCalls]) && escalatedData.toolCalls.length > 0) {
40873
41087
  if (batchApprovalsEnabled) {
40874
41088
  accumulator.addApprovalBatch(
40875
41089
  data.approvalRequestId,
@@ -40889,7 +41103,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
40889
41103
  );
40890
41104
  }
40891
41105
  }
40892
- _optionalChain([escalatedApprovals, 'optionalAccess', _1048 => _1048.delete, 'call', _1049 => _1049(data.approvalRequestId)]);
41106
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1058 => _1058.delete, 'call', _1059 => _1059(data.approvalRequestId)]);
40893
41107
  break;
40894
41108
  }
40895
41109
  if (escalatedData) {
@@ -40898,7 +41112,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
40898
41112
  explanation: escalatedData.explanation,
40899
41113
  approvalType: escalatedData.approvalType
40900
41114
  });
40901
- _optionalChain([escalatedApprovals, 'optionalAccess', _1050 => _1050.delete, 'call', _1051 => _1051(data.approvalRequestId)]);
41115
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1060 => _1060.delete, 'call', _1061 => _1061(data.approvalRequestId)]);
40902
41116
  }
40903
41117
  const before = accumulator.getSegments();
40904
41118
  const after = accumulator.updateApprovalStatus(data.approvalRequestId, status);
@@ -40914,9 +41128,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
40914
41128
  case MESSAGE_TYPE.ERROR:
40915
41129
  if ("error" in data) {
40916
41130
  let message2;
40917
- if ("details" in data && _optionalChain([data, 'optionalAccess', _1052 => _1052.details])) {
41131
+ if ("details" in data && _optionalChain([data, 'optionalAccess', _1062 => _1062.details])) {
40918
41132
  try {
40919
- message2 = _optionalChain([JSON, 'access', _1053 => _1053.parse, 'call', _1054 => _1054(data.details), 'optionalAccess', _1055 => _1055.error, 'optionalAccess', _1056 => _1056.message]);
41133
+ message2 = _optionalChain([JSON, 'access', _1063 => _1063.parse, 'call', _1064 => _1064(data.details), 'optionalAccess', _1065 => _1065.error, 'optionalAccess', _1066 => _1066.message]);
40920
41134
  } catch (e50) {
40921
41135
  message2 = data.details;
40922
41136
  }
@@ -40999,10 +41213,10 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
40999
41213
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
41000
41214
  return;
41001
41215
  }
41002
- const isUserMessage = _optionalChain([msg, 'access', _1057 => _1057.owner, 'optionalAccess', _1058 => _1058.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1059 => _1059.owner, 'optionalAccess', _1060 => _1060.type]) === OWNER_TYPE.ADMIN;
41216
+ const isUserMessage = _optionalChain([msg, 'access', _1067 => _1067.owner, 'optionalAccess', _1068 => _1068.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1069 => _1069.owner, 'optionalAccess', _1070 => _1070.type]) === OWNER_TYPE.ADMIN;
41003
41217
  if (isUserMessage) {
41004
41218
  flushAssistantMessage();
41005
- const userAuthorType = _optionalChain([msg, 'access', _1061 => _1061.owner, 'optionalAccess', _1062 => _1062.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
41219
+ const userAuthorType = _optionalChain([msg, 'access', _1071 => _1071.owner, 'optionalAccess', _1072 => _1072.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
41006
41220
  messageDataArray.forEach((data) => {
41007
41221
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
41008
41222
  processedMessages.push({
@@ -41027,7 +41241,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
41027
41241
  });
41028
41242
  const nextMsg = messages[index + 1];
41029
41243
  const isLastMessage = index === messages.length - 1;
41030
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1063 => _1063.owner, 'optionalAccess', _1064 => _1064.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1065 => _1065.owner, 'optionalAccess', _1066 => _1066.type]) === OWNER_TYPE.ADMIN);
41244
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1073 => _1073.owner, 'optionalAccess', _1074 => _1074.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1075 => _1075.owner, 'optionalAccess', _1076 => _1076.type]) === OWNER_TYPE.ADMIN);
41031
41245
  if (isLastMessage || nextIsFromUser) {
41032
41246
  flushAssistantMessage();
41033
41247
  }
@@ -41365,7 +41579,7 @@ function useNatsChatAdapter(config, options = {}) {
41365
41579
  }, [active, fetchDialogs, loadDialogsPage]);
41366
41580
  const sendMessage = _react.useCallback.call(void 0,
41367
41581
  async (text, sendOptions) => {
41368
- const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1067 => _1067.hidden]), () => ( false));
41582
+ const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1077 => _1077.hidden]), () => ( false));
41369
41583
  setMessages((prev) => [
41370
41584
  ...prev,
41371
41585
  {
@@ -41529,11 +41743,11 @@ function useNatsChatAdapter(config, options = {}) {
41529
41743
  // Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
41530
41744
  // contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
41531
41745
  // matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
41532
- currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1068 => _1068.provider]), () => ( modelProvider)), () => ( null)),
41533
- currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1069 => _1069.modelLabel]), () => ( modelLabel)), () => ( null)),
41534
- currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1070 => _1070.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1071 => _1071.contextWindowMaxTokens]))), () => ( null)),
41535
- currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1072 => _1072.inputTokensSize]), () => ( null)),
41536
- currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1073 => _1073.outputTokensSize]), () => ( null)),
41746
+ currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1078 => _1078.provider]), () => ( modelProvider)), () => ( null)),
41747
+ currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1079 => _1079.modelLabel]), () => ( modelLabel)), () => ( null)),
41748
+ currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1080 => _1080.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1081 => _1081.contextWindowMaxTokens]))), () => ( null)),
41749
+ currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1082 => _1082.inputTokensSize]), () => ( null)),
41750
+ currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1083 => _1083.outputTokensSize]), () => ( null)),
41537
41751
  currentCacheHitRatePct: null,
41538
41752
  currentUsageBreakdown: null,
41539
41753
  // Dialog management
@@ -41781,7 +41995,7 @@ function extractIncompleteMessageState(lastMessage) {
41781
41995
  break;
41782
41996
  case "approval_batch": {
41783
41997
  const allDone = !!segment.data.executions && segment.data.toolCalls.every(
41784
- (c) => _optionalChain([segment, 'access', _1074 => _1074.data, 'access', _1075 => _1075.executions, 'optionalAccess', _1076 => _1076[c.toolExecutionRequestId], 'optionalAccess', _1077 => _1077.status]) === "done"
41998
+ (c) => _optionalChain([segment, 'access', _1084 => _1084.data, 'access', _1085 => _1085.executions, 'optionalAccess', _1086 => _1086[c.toolExecutionRequestId], 'optionalAccess', _1087 => _1087.status]) === "done"
41785
41999
  );
41786
42000
  if (segment.status !== "rejected" && !allDone) {
41787
42001
  hasIncompleteState = true;
@@ -41852,7 +42066,7 @@ var NODES = [
41852
42066
  ];
41853
42067
  var Primitive = NODES.reduce((primitive, node) => {
41854
42068
  const Slot2 = _reactslot.createSlot.call(void 0, `Primitive.${node}`);
41855
- const Node = React120.forwardRef((props, forwardedRef) => {
42069
+ const Node = React121.forwardRef((props, forwardedRef) => {
41856
42070
  const { asChild, ...primitiveProps } = props;
41857
42071
  const Comp = asChild ? Slot2 : node;
41858
42072
  if (typeof window !== "undefined") {
@@ -41880,7 +42094,7 @@ var VISUALLY_HIDDEN_STYLES = Object.freeze({
41880
42094
  wordWrap: "normal"
41881
42095
  });
41882
42096
  var NAME = "VisuallyHidden";
41883
- var VisuallyHidden = React121.forwardRef(
42097
+ var VisuallyHidden = React122.forwardRef(
41884
42098
  (props, forwardedRef) => {
41885
42099
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
41886
42100
  Primitive.span,
@@ -41989,7 +42203,7 @@ function useChatDialogManager({
41989
42203
  const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
41990
42204
  if (restoreTarget) {
41991
42205
  try {
41992
- await _optionalChain([unarchiveDialog, 'optionalCall', _1078 => _1078(restoreTarget.id)]);
42206
+ await _optionalChain([unarchiveDialog, 'optionalCall', _1088 => _1088(restoreTarget.id)]);
41993
42207
  } catch (err) {
41994
42208
  console.error("[useChatDialogManager] unarchive failed:", err);
41995
42209
  return;
@@ -42388,7 +42602,7 @@ function EmbeddableChatInner({
42388
42602
  }),
42389
42603
  [commandsUrl]
42390
42604
  );
42391
- const userName = _optionalChain([identityUser, 'optionalAccess', _1079 => _1079.firstName, 'optionalAccess', _1080 => _1080.trim, 'call', _1081 => _1081()]) || _optionalChain([identityUser, 'optionalAccess', _1082 => _1082.name, 'optionalAccess', _1083 => _1083.split, 'call', _1084 => _1084(" "), 'access', _1085 => _1085[0], 'optionalAccess', _1086 => _1086.trim, 'call', _1087 => _1087()]) || void 0;
42605
+ const userName = _optionalChain([identityUser, 'optionalAccess', _1089 => _1089.firstName, 'optionalAccess', _1090 => _1090.trim, 'call', _1091 => _1091()]) || _optionalChain([identityUser, 'optionalAccess', _1092 => _1092.name, 'optionalAccess', _1093 => _1093.split, 'call', _1094 => _1094(" "), 'access', _1095 => _1095[0], 'optionalAccess', _1096 => _1096.trim, 'call', _1097 => _1097()]) || void 0;
42392
42606
  const effectiveModes = _react.useMemo.call(void 0, () => {
42393
42607
  if (modes) return modes;
42394
42608
  const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
@@ -42397,17 +42611,17 @@ function EmbeddableChatInner({
42397
42611
  const mingoCaps = _react.useMemo.call(void 0, () => {
42398
42612
  if (mingoState) {
42399
42613
  return {
42400
- canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1088 => _1088.canRename]), () => ( false)),
42401
- canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1089 => _1089.canArchive]), () => ( false)),
42402
- fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1090 => _1090.fetchArchivedDialogs]),
42403
- unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1091 => _1091.unarchiveDialog])
42614
+ canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1098 => _1098.canRename]), () => ( false)),
42615
+ canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1099 => _1099.canArchive]), () => ( false)),
42616
+ fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1100 => _1100.fetchArchivedDialogs]),
42617
+ unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1101 => _1101.unarchiveDialog])
42404
42618
  };
42405
42619
  }
42406
42620
  return {
42407
- canRename: !!_optionalChain([effectiveModes, 'access', _1092 => _1092.mingo, 'optionalAccess', _1093 => _1093.renameDialog]),
42408
- canArchive: !!_optionalChain([effectiveModes, 'access', _1094 => _1094.mingo, 'optionalAccess', _1095 => _1095.archiveDialog]),
42409
- fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1096 => _1096.mingo, 'optionalAccess', _1097 => _1097.fetchArchivedDialogs]),
42410
- unarchiveDialog: _optionalChain([effectiveModes, 'access', _1098 => _1098.mingo, 'optionalAccess', _1099 => _1099.unarchiveDialog])
42621
+ canRename: !!_optionalChain([effectiveModes, 'access', _1102 => _1102.mingo, 'optionalAccess', _1103 => _1103.renameDialog]),
42622
+ canArchive: !!_optionalChain([effectiveModes, 'access', _1104 => _1104.mingo, 'optionalAccess', _1105 => _1105.archiveDialog]),
42623
+ fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1106 => _1106.mingo, 'optionalAccess', _1107 => _1107.fetchArchivedDialogs]),
42624
+ unarchiveDialog: _optionalChain([effectiveModes, 'access', _1108 => _1108.mingo, 'optionalAccess', _1109 => _1109.unarchiveDialog])
42411
42625
  };
42412
42626
  }, [mingoState, mingoDialogCapabilities, effectiveModes]);
42413
42627
  const hasMingoMode = !!effectiveModes.mingo || !!mingoState;
@@ -42419,7 +42633,7 @@ function EmbeddableChatInner({
42419
42633
  if (controlledActiveMode === void 0) {
42420
42634
  setUncontrolledActiveMode(next);
42421
42635
  }
42422
- _optionalChain([onActiveModeChange, 'optionalCall', _1100 => _1100(next)]);
42636
+ _optionalChain([onActiveModeChange, 'optionalCall', _1110 => _1110(next)]);
42423
42637
  },
42424
42638
  [controlledActiveMode, onActiveModeChange]
42425
42639
  );
@@ -42626,9 +42840,9 @@ function EmbeddableChatInner({
42626
42840
  const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
42627
42841
  const lastSources = _react.useMemo.call(void 0, () => {
42628
42842
  if (chatLoading) return void 0;
42629
- const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1101 => _1101.sources]);
42843
+ const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1111 => _1111.sources]);
42630
42844
  if (!sources || sources.length === 0) return void 0;
42631
- const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1102 => _1102.content]) || "";
42845
+ const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1112 => _1112.content]) || "";
42632
42846
  const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
42633
42847
  (m) => parseInt(m[1], 10)
42634
42848
  );
@@ -42675,7 +42889,7 @@ function EmbeddableChatInner({
42675
42889
  ChatPanelHeader,
42676
42890
  {
42677
42891
  showBack: hasConversation || guideCanReturnToMingo,
42678
- title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1103 => _1103.title]) || "New Chat" : isGuideEmpty ? "Mingo Guide" : "Current Chats",
42892
+ title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1113 => _1113.title]) || "New Chat" : isGuideEmpty ? "Mingo Guide" : "Current Chats",
42679
42893
  backAriaLabel: hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo",
42680
42894
  isArchivedView: isViewingArchived,
42681
42895
  onBack: hasConversation ? handleBack : () => handleActiveModeChange("mingo"),
@@ -42780,10 +42994,10 @@ function EmbeddableChatInner({
42780
42994
  subtitle: _nullishCoalesce(emptyStateGreeting, () => ( void 0)),
42781
42995
  ...guideWelcome,
42782
42996
  onQuickAction: (action) => {
42783
- _optionalChain([chatInputRef, 'access', _1104 => _1104.current, 'optionalAccess', _1105 => _1105.setValue, 'call', _1106 => _1106(
42997
+ _optionalChain([chatInputRef, 'access', _1114 => _1114.current, 'optionalAccess', _1115 => _1115.setValue, 'call', _1116 => _1116(
42784
42998
  _nullishCoalesce(action.prompt, () => ( action.label))
42785
42999
  )]);
42786
- _optionalChain([chatInputRef, 'access', _1107 => _1107.current, 'optionalAccess', _1108 => _1108.focus, 'call', _1109 => _1109()]);
43000
+ _optionalChain([chatInputRef, 'access', _1117 => _1117.current, 'optionalAccess', _1118 => _1118.focus, 'call', _1119 => _1119()]);
42787
43001
  },
42788
43002
  children: (chipCommands.length > 0 || !commandsLoaded) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "shrink-0 overflow-hidden rounded-md border border-ods-border", children: [
42789
43003
  !commandsLoaded && chipCommands.length === 0 && SKELETON_ROW_VARIANTS.map((variant, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -43722,5 +43936,10 @@ function EmbeddableChatInner({
43722
43936
 
43723
43937
 
43724
43938
 
43725
- exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.HiddenTagsPopup = HiddenTagsPopup; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Autocomplete = Autocomplete; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal2; exports.ModalContent = ModalContent2; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter2; exports.Modal2 = Modal; exports.ModalContent2 = ModalContent; exports.ModalHeader2 = ModalHeader; exports.ModalTitle2 = ModalTitle; exports.ModalFooter2 = ModalFooter; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.Progress = Progress; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.SquareAvatar = SquareAvatar; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.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.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.GuideModeBanner = GuideModeBanner; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.COMPACT_HEADER_BUTTON = COMPACT_HEADER_BUTTON; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.FlamingoLogo = FlamingoLogo; exports.OpenmspLogo = OpenmspLogo; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.fetchPriorityProp = fetchPriorityProp; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.resolveReleaseCover = resolveReleaseCover; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.useEntityCardLink = useEntityCardLink; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.getStatusColorScheme = getStatusColorScheme; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.getAppType = getAppType; exports.getEmbedProxyAuth = getEmbedProxyAuth; exports.getPersistedProxyEmail = getPersistedProxyEmail; exports.setEmbedProxyAuth = setEmbedProxyAuth; exports.clearEmbedProxyAuth = clearEmbedProxyAuth; exports.applyProxyAuth = applyProxyAuth; exports.setEmbedAuthAdapter = setEmbedAuthAdapter; exports.embedAuthedFetch = embedAuthedFetch; exports.useChatCardItem = useChatCardItem; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.useSseChatAdapter = useSseChatAdapter; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.BackButton = BackButton; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.PageHeading = PageHeading; exports.EntityImage = EntityImage; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.hexToRgb = hexToRgb2; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.scrollElementIntoView = scrollElementIntoView; exports.buildListUrl = buildListUrl; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.init_pagination = init_pagination; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.MUX_STREAM_ORIGIN = MUX_STREAM_ORIGIN; exports.MUX_IMAGE_ORIGIN = MUX_IMAGE_ORIGIN; exports.useVideoOriginPreconnect = useVideoOriginPreconnect; exports.useVideoWarmup = useVideoWarmup; exports.getCaptionsUrl = getCaptionsUrl; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.FilterPillRow = FilterPillRow; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderMingoButton = HeaderMingoButton; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayout = AppLayout; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
43726
- //# sourceMappingURL=chunk-HOQDRQ4M.cjs.map
43939
+
43940
+
43941
+
43942
+
43943
+
43944
+ exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.HiddenTagsPopup = HiddenTagsPopup; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Autocomplete = Autocomplete; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal2; exports.ModalContent = ModalContent2; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter2; exports.Modal2 = Modal; exports.ModalContent2 = ModalContent; exports.ModalHeader2 = ModalHeader; exports.ModalTitle2 = ModalTitle; exports.ModalFooter2 = ModalFooter; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.Progress = Progress; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.SquareAvatar = SquareAvatar; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.HEX_PATTERN = HEX_PATTERN; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.BlockCard = BlockCard; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.GuideModeBanner = GuideModeBanner; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.COMPACT_HEADER_BUTTON = COMPACT_HEADER_BUTTON; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.FlamingoLogo = FlamingoLogo; exports.OpenmspLogo = OpenmspLogo; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.fetchPriorityProp = fetchPriorityProp; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.resolveReleaseCover = resolveReleaseCover; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.useEntityCardLink = useEntityCardLink; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.getStatusColorScheme = getStatusColorScheme; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.getAppType = getAppType; exports.getEmbedProxyAuth = getEmbedProxyAuth; exports.getPersistedProxyEmail = getPersistedProxyEmail; exports.setEmbedProxyAuth = setEmbedProxyAuth; exports.clearEmbedProxyAuth = clearEmbedProxyAuth; exports.applyProxyAuth = applyProxyAuth; exports.setEmbedAuthAdapter = setEmbedAuthAdapter; exports.embedAuthedFetch = embedAuthedFetch; exports.useChatCardItem = useChatCardItem; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.useSseChatAdapter = useSseChatAdapter; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.BackButton = BackButton; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.PageHeading = PageHeading; exports.EntityImage = EntityImage; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.hexToRgb = hexToRgb2; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.scrollElementIntoView = scrollElementIntoView; exports.buildListUrl = buildListUrl; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.init_pagination = init_pagination; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.MUX_STREAM_ORIGIN = MUX_STREAM_ORIGIN; exports.MUX_IMAGE_ORIGIN = MUX_IMAGE_ORIGIN; exports.useVideoOriginPreconnect = useVideoOriginPreconnect; exports.useVideoWarmup = useVideoWarmup; exports.getCaptionsUrl = getCaptionsUrl; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.FilterPillRow = FilterPillRow; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderMingoButton = HeaderMingoButton; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayout = AppLayout; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
43945
+ //# sourceMappingURL=chunk-QFC725WU.cjs.map