@flamingo-stack/openframe-frontend-core 0.0.552 → 0.0.553-1815.4814.1

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 (108) hide show
  1. package/dist/{chunk-KSGQG6WU.js → chunk-27WZGFQZ.js} +2 -2
  2. package/dist/{chunk-WXDDPK7T.js → chunk-2JYC2GZV.js} +4 -4
  3. package/dist/{chunk-7TRIUG7Q.js → chunk-3RBHFJ3L.js} +5 -5
  4. package/dist/{chunk-TI75367M.js → chunk-3RPRI46G.js} +651 -548
  5. package/dist/chunk-3RPRI46G.js.map +1 -0
  6. package/dist/{chunk-4DD3223G.js → chunk-4NICA4QT.js} +6 -6
  7. package/dist/{chunk-Y64725GI.cjs → chunk-5AB6GPNZ.cjs} +61 -61
  8. package/dist/{chunk-Y64725GI.cjs.map → chunk-5AB6GPNZ.cjs.map} +1 -1
  9. package/dist/{chunk-SIXNMDYY.js → chunk-77BW6SN6.js} +2 -2
  10. package/dist/{chunk-Y6PD76R6.js → chunk-7VIJUKWE.js} +2 -2
  11. package/dist/{chunk-HK5YRHEN.cjs → chunk-CWQKH7BW.cjs} +9 -9
  12. package/dist/{chunk-HK5YRHEN.cjs.map → chunk-CWQKH7BW.cjs.map} +1 -1
  13. package/dist/{chunk-PVPXI5V6.cjs → chunk-HDUBS5Y5.cjs} +31 -31
  14. package/dist/{chunk-PVPXI5V6.cjs.map → chunk-HDUBS5Y5.cjs.map} +1 -1
  15. package/dist/{chunk-X4RCWYYF.cjs → chunk-I2WN5X6Q.cjs} +798 -695
  16. package/dist/chunk-I2WN5X6Q.cjs.map +1 -0
  17. package/dist/{chunk-RMTTW7LG.cjs → chunk-IBDY7C65.cjs} +27 -27
  18. package/dist/{chunk-RMTTW7LG.cjs.map → chunk-IBDY7C65.cjs.map} +1 -1
  19. package/dist/{chunk-MVE2YQVG.cjs → chunk-IBEZSTFR.cjs} +20 -20
  20. package/dist/{chunk-MVE2YQVG.cjs.map → chunk-IBEZSTFR.cjs.map} +1 -1
  21. package/dist/{chunk-Z5UK7SKC.js → chunk-KJSLAD6K.js} +4 -4
  22. package/dist/{chunk-6MHMEF5W.cjs → chunk-MOL2OYPN.cjs} +39 -39
  23. package/dist/{chunk-6MHMEF5W.cjs.map → chunk-MOL2OYPN.cjs.map} +1 -1
  24. package/dist/{chunk-7MPOW46J.js → chunk-ND53XFLK.js} +2 -2
  25. package/dist/{chunk-4XG7TG7B.cjs → chunk-NLGMSRVW.cjs} +7 -7
  26. package/dist/{chunk-4XG7TG7B.cjs.map → chunk-NLGMSRVW.cjs.map} +1 -1
  27. package/dist/{chunk-SXXIV7IL.cjs → chunk-NTOO6MFG.cjs} +86 -86
  28. package/dist/{chunk-SXXIV7IL.cjs.map → chunk-NTOO6MFG.cjs.map} +1 -1
  29. package/dist/{chunk-6J6Q5QEM.cjs → chunk-RWFUYIOD.cjs} +4 -4
  30. package/dist/{chunk-6J6Q5QEM.cjs.map → chunk-RWFUYIOD.cjs.map} +1 -1
  31. package/dist/{chunk-XEOZB5DX.cjs → chunk-SS4ZY4RI.cjs} +3 -3
  32. package/dist/{chunk-XEOZB5DX.cjs.map → chunk-SS4ZY4RI.cjs.map} +1 -1
  33. package/dist/{chunk-RJEP74Z4.js → chunk-T3FQIBZB.js} +2 -2
  34. package/dist/{chunk-BFOXIIM4.js → chunk-TOLUP7IV.js} +2 -2
  35. package/dist/{chunk-OVQ3O66O.cjs → chunk-TPTBRKY6.cjs} +5 -5
  36. package/dist/{chunk-OVQ3O66O.cjs.map → chunk-TPTBRKY6.cjs.map} +1 -1
  37. package/dist/{chunk-RJSDYOFD.js → chunk-TUOUCWOB.js} +2 -2
  38. package/dist/{chunk-CMDPARDV.js → chunk-VL3LF754.js} +2 -2
  39. package/dist/{chunk-DOPZ5LCH.cjs → chunk-X5ANHCAH.cjs} +14 -14
  40. package/dist/{chunk-DOPZ5LCH.cjs.map → chunk-X5ANHCAH.cjs.map} +1 -1
  41. package/dist/{chunk-6XOJTTWY.js → chunk-XEQMFPML.js} +2 -2
  42. package/dist/{chunk-RMWLUKTC.cjs → chunk-Y4WUGTXF.cjs} +11 -11
  43. package/dist/{chunk-RMWLUKTC.cjs.map → chunk-Y4WUGTXF.cjs.map} +1 -1
  44. package/dist/components/case-studies/index.cjs +8 -8
  45. package/dist/components/case-studies/index.js +2 -2
  46. package/dist/components/chat/index.cjs +2 -2
  47. package/dist/components/chat/index.js +1 -1
  48. package/dist/components/contact/index.cjs +3 -3
  49. package/dist/components/contact/index.js +2 -2
  50. package/dist/components/docs/index.cjs +5 -5
  51. package/dist/components/docs/index.js +4 -4
  52. package/dist/components/embeds/index.cjs +3 -3
  53. package/dist/components/embeds/index.js +2 -2
  54. package/dist/components/faq/index.cjs +3 -3
  55. package/dist/components/faq/index.js +2 -2
  56. package/dist/components/features/board/board-column.d.ts +6 -3
  57. package/dist/components/features/board/board-column.d.ts.map +1 -1
  58. package/dist/components/features/board/board.d.ts +3 -3
  59. package/dist/components/features/board/board.d.ts.map +1 -1
  60. package/dist/components/features/board/drop-target.d.ts +64 -0
  61. package/dist/components/features/board/drop-target.d.ts.map +1 -0
  62. package/dist/components/features/board/ticket-card.d.ts +11 -6
  63. package/dist/components/features/board/ticket-card.d.ts.map +1 -1
  64. package/dist/components/features/board/use-lane-scroll-anchor.d.ts +24 -0
  65. package/dist/components/features/board/use-lane-scroll-anchor.d.ts.map +1 -0
  66. package/dist/components/features/index.cjs +2 -2
  67. package/dist/components/features/index.js +1 -1
  68. package/dist/components/help-center-pages/index.cjs +22 -22
  69. package/dist/components/help-center-pages/index.js +13 -13
  70. package/dist/components/index.cjs +131 -131
  71. package/dist/components/index.js +11 -11
  72. package/dist/components/meeting-scheduler/index.cjs +28 -28
  73. package/dist/components/meeting-scheduler/index.js +3 -3
  74. package/dist/components/navigation/index.cjs +2 -2
  75. package/dist/components/navigation/index.js +1 -1
  76. package/dist/components/onboarding-guides/index.cjs +5 -5
  77. package/dist/components/onboarding-guides/index.js +4 -4
  78. package/dist/components/related-content/index.cjs +3 -3
  79. package/dist/components/related-content/index.js +2 -2
  80. package/dist/components/tickets/index.cjs +6 -6
  81. package/dist/components/tickets/index.js +5 -5
  82. package/dist/components/ui/index.cjs +2 -2
  83. package/dist/components/ui/index.js +1 -1
  84. package/dist/index.cjs +2 -2
  85. package/dist/index.js +1 -1
  86. package/package.json +1 -1
  87. package/src/__tests__/board-drop-target.test.ts +218 -0
  88. package/src/components/features/board/board-column.tsx +50 -40
  89. package/src/components/features/board/board.tsx +42 -40
  90. package/src/components/features/board/drop-target.ts +164 -0
  91. package/src/components/features/board/ticket-card.tsx +36 -16
  92. package/src/components/features/board/use-lane-scroll-anchor.ts +75 -0
  93. package/src/stories/Board.stories.tsx +16 -7
  94. package/dist/chunk-TI75367M.js.map +0 -1
  95. package/dist/chunk-X4RCWYYF.cjs.map +0 -1
  96. /package/dist/{chunk-KSGQG6WU.js.map → chunk-27WZGFQZ.js.map} +0 -0
  97. /package/dist/{chunk-WXDDPK7T.js.map → chunk-2JYC2GZV.js.map} +0 -0
  98. /package/dist/{chunk-7TRIUG7Q.js.map → chunk-3RBHFJ3L.js.map} +0 -0
  99. /package/dist/{chunk-4DD3223G.js.map → chunk-4NICA4QT.js.map} +0 -0
  100. /package/dist/{chunk-SIXNMDYY.js.map → chunk-77BW6SN6.js.map} +0 -0
  101. /package/dist/{chunk-Y6PD76R6.js.map → chunk-7VIJUKWE.js.map} +0 -0
  102. /package/dist/{chunk-Z5UK7SKC.js.map → chunk-KJSLAD6K.js.map} +0 -0
  103. /package/dist/{chunk-7MPOW46J.js.map → chunk-ND53XFLK.js.map} +0 -0
  104. /package/dist/{chunk-RJEP74Z4.js.map → chunk-T3FQIBZB.js.map} +0 -0
  105. /package/dist/{chunk-BFOXIIM4.js.map → chunk-TOLUP7IV.js.map} +0 -0
  106. /package/dist/{chunk-RJSDYOFD.js.map → chunk-TUOUCWOB.js.map} +0 -0
  107. /package/dist/{chunk-CMDPARDV.js.map → chunk-VL3LF754.js.map} +0 -0
  108. /package/dist/{chunk-6XOJTTWY.js.map → chunk-XEQMFPML.js.map} +0 -0
@@ -292,7 +292,7 @@ var _chunkVRHGVLSLcjs = require('./chunk-VRHGVLSL.cjs');
292
292
 
293
293
  // src/components/pagination.tsx
294
294
  var _lucidereact = require('lucide-react');
295
- var _react = require('react'); var React129 = _interopRequireWildcard(_react); var React = _interopRequireWildcard(_react); var React10 = _interopRequireWildcard(_react); var React4 = _interopRequireWildcard(_react); var React7 = _interopRequireWildcard(_react); var React5 = _interopRequireWildcard(_react); var React22 = _interopRequireWildcard(_react); var React6 = _interopRequireWildcard(_react); var React8 = _interopRequireWildcard(_react); var React11 = _interopRequireWildcard(_react); var React12 = _interopRequireWildcard(_react); var React14 = _interopRequireWildcard(_react); var React17 = _interopRequireWildcard(_react); var React16 = _interopRequireWildcard(_react); var React15 = _interopRequireWildcard(_react); var React20 = _interopRequireWildcard(_react); var React18 = _interopRequireWildcard(_react); var React19 = _interopRequireWildcard(_react); var React23 = _interopRequireWildcard(_react); var React21 = _interopRequireWildcard(_react); var React24 = _interopRequireWildcard(_react); var React25 = _interopRequireWildcard(_react); var React27 = _interopRequireWildcard(_react); var React26 = _interopRequireWildcard(_react); var React28 = _interopRequireWildcard(_react); var React29 = _interopRequireWildcard(_react); var React32 = _interopRequireWildcard(_react); var React30 = _interopRequireWildcard(_react); var React33 = _interopRequireWildcard(_react); var React34 = _interopRequireWildcard(_react); var React37 = _interopRequireWildcard(_react); var React44 = _interopRequireWildcard(_react); var React45 = _interopRequireWildcard(_react); var React46 = _interopRequireWildcard(_react); var React48 = _interopRequireWildcard(_react); var React47 = _interopRequireWildcard(_react); var React50 = _interopRequireWildcard(_react); var React49 = _interopRequireWildcard(_react); var React54 = _interopRequireWildcard(_react); var React53 = _interopRequireWildcard(_react); var React55 = _interopRequireWildcard(_react); var React56 = _interopRequireWildcard(_react); var React60 = _interopRequireWildcard(_react); var React61 = _interopRequireWildcard(_react); var React62 = _interopRequireWildcard(_react); var React63 = _interopRequireWildcard(_react); var React64 = _interopRequireWildcard(_react); var React65 = _interopRequireWildcard(_react); var React66 = _interopRequireWildcard(_react); var React67 = _interopRequireWildcard(_react); var React68 = _interopRequireWildcard(_react); var React69 = _interopRequireWildcard(_react); var React70 = _interopRequireWildcard(_react); var React71 = _interopRequireWildcard(_react); var React72 = _interopRequireWildcard(_react); var React73 = _interopRequireWildcard(_react); var React74 = _interopRequireWildcard(_react); var React75 = _interopRequireWildcard(_react); var React76 = _interopRequireWildcard(_react); var React78 = _interopRequireWildcard(_react); var React80 = _interopRequireWildcard(_react); var React90 = _interopRequireWildcard(_react); var React89 = _interopRequireWildcard(_react); var React93 = _interopRequireWildcard(_react); var React94 = _interopRequireWildcard(_react); var React96 = _interopRequireWildcard(_react); var React97 = _interopRequireWildcard(_react); var React102 = _interopRequireWildcard(_react); var React106 = _interopRequireWildcard(_react); var React107 = _interopRequireWildcard(_react); var React108 = _interopRequireWildcard(_react); var React113 = _interopRequireWildcard(_react); var React112 = _interopRequireWildcard(_react); var React110 = _interopRequireWildcard(_react); var React109 = _interopRequireWildcard(_react); var React111 = _interopRequireWildcard(_react); var React114 = _interopRequireWildcard(_react); var React126 = _interopRequireWildcard(_react); var React125 = _interopRequireWildcard(_react); var React128 = _interopRequireWildcard(_react); var React131 = _interopRequireWildcard(_react); var React132 = _interopRequireWildcard(_react); var React134 = _interopRequireWildcard(_react); var React135 = _interopRequireWildcard(_react); var React138 = _interopRequireWildcard(_react); var React137 = _interopRequireWildcard(_react); var React136 = _interopRequireWildcard(_react); var React139 = _interopRequireWildcard(_react); var React141 = _interopRequireWildcard(_react); var React140 = _interopRequireWildcard(_react); var React142 = _interopRequireWildcard(_react); var React143 = _interopRequireWildcard(_react); var React144 = _interopRequireWildcard(_react); var React152 = _interopRequireWildcard(_react); var React151 = _interopRequireWildcard(_react);
295
+ var _react = require('react'); var React126 = _interopRequireWildcard(_react); var React = _interopRequireWildcard(_react); var React10 = _interopRequireWildcard(_react); var React4 = _interopRequireWildcard(_react); var React7 = _interopRequireWildcard(_react); var React5 = _interopRequireWildcard(_react); var React22 = _interopRequireWildcard(_react); var React6 = _interopRequireWildcard(_react); var React8 = _interopRequireWildcard(_react); var React11 = _interopRequireWildcard(_react); var React12 = _interopRequireWildcard(_react); var React14 = _interopRequireWildcard(_react); var React17 = _interopRequireWildcard(_react); var React16 = _interopRequireWildcard(_react); var React15 = _interopRequireWildcard(_react); var React20 = _interopRequireWildcard(_react); var React18 = _interopRequireWildcard(_react); var React19 = _interopRequireWildcard(_react); var React23 = _interopRequireWildcard(_react); var React21 = _interopRequireWildcard(_react); var React24 = _interopRequireWildcard(_react); var React25 = _interopRequireWildcard(_react); var React27 = _interopRequireWildcard(_react); var React26 = _interopRequireWildcard(_react); var React28 = _interopRequireWildcard(_react); var React29 = _interopRequireWildcard(_react); var React32 = _interopRequireWildcard(_react); var React30 = _interopRequireWildcard(_react); var React33 = _interopRequireWildcard(_react); var React34 = _interopRequireWildcard(_react); var React37 = _interopRequireWildcard(_react); var React44 = _interopRequireWildcard(_react); var React45 = _interopRequireWildcard(_react); var React46 = _interopRequireWildcard(_react); var React48 = _interopRequireWildcard(_react); var React47 = _interopRequireWildcard(_react); var React50 = _interopRequireWildcard(_react); var React49 = _interopRequireWildcard(_react); var React54 = _interopRequireWildcard(_react); var React53 = _interopRequireWildcard(_react); var React55 = _interopRequireWildcard(_react); var React56 = _interopRequireWildcard(_react); var React60 = _interopRequireWildcard(_react); var React61 = _interopRequireWildcard(_react); var React62 = _interopRequireWildcard(_react); var React63 = _interopRequireWildcard(_react); var React64 = _interopRequireWildcard(_react); var React65 = _interopRequireWildcard(_react); var React66 = _interopRequireWildcard(_react); var React67 = _interopRequireWildcard(_react); var React68 = _interopRequireWildcard(_react); var React69 = _interopRequireWildcard(_react); var React70 = _interopRequireWildcard(_react); var React71 = _interopRequireWildcard(_react); var React72 = _interopRequireWildcard(_react); var React73 = _interopRequireWildcard(_react); var React74 = _interopRequireWildcard(_react); var React75 = _interopRequireWildcard(_react); var React76 = _interopRequireWildcard(_react); var React78 = _interopRequireWildcard(_react); var React80 = _interopRequireWildcard(_react); var React90 = _interopRequireWildcard(_react); var React89 = _interopRequireWildcard(_react); var React93 = _interopRequireWildcard(_react); var React94 = _interopRequireWildcard(_react); var React96 = _interopRequireWildcard(_react); var React97 = _interopRequireWildcard(_react); var React102 = _interopRequireWildcard(_react); var React106 = _interopRequireWildcard(_react); var React107 = _interopRequireWildcard(_react); var React108 = _interopRequireWildcard(_react); var React109 = _interopRequireWildcard(_react); var React110 = _interopRequireWildcard(_react); var React111 = _interopRequireWildcard(_react); var React123 = _interopRequireWildcard(_react); var React122 = _interopRequireWildcard(_react); var React125 = _interopRequireWildcard(_react); var React128 = _interopRequireWildcard(_react); var React129 = _interopRequireWildcard(_react); var React131 = _interopRequireWildcard(_react); var React132 = _interopRequireWildcard(_react); var React135 = _interopRequireWildcard(_react); var React134 = _interopRequireWildcard(_react); var React133 = _interopRequireWildcard(_react); var React136 = _interopRequireWildcard(_react); var React138 = _interopRequireWildcard(_react); var React137 = _interopRequireWildcard(_react); var React139 = _interopRequireWildcard(_react); var React140 = _interopRequireWildcard(_react); var React141 = _interopRequireWildcard(_react); var React149 = _interopRequireWildcard(_react); var React148 = _interopRequireWildcard(_react);
296
296
  var _jsxruntime = require('react/jsx-runtime');
297
297
  var Pagination, PaginationContent, PaginationItem, PaginationLink, PaginationEllipsis, PaginationPrevious, PaginationNext;
298
298
  var init_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
@@ -384,19 +384,19 @@ var init_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
384
384
  ) })
385
385
  ] }) });
386
386
  };
387
- PaginationContent = exports.PaginationContent = React129.forwardRef(
387
+ PaginationContent = exports.PaginationContent = React126.forwardRef(
388
388
  ({ className, ...props }, ref) => {
389
389
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { ref, className: _chunkKI4EGKNVcjs.cn.call(void 0, "flex items-center justify-center", className), ...props });
390
390
  }
391
391
  );
392
392
  PaginationContent.displayName = "PaginationContent";
393
- PaginationItem = exports.PaginationItem = React129.forwardRef(
393
+ PaginationItem = exports.PaginationItem = React126.forwardRef(
394
394
  ({ className, ...props }, ref) => {
395
395
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { ref, className: _chunkKI4EGKNVcjs.cn.call(void 0, "", className), ...props });
396
396
  }
397
397
  );
398
398
  PaginationItem.displayName = "PaginationItem";
399
- PaginationLink = exports.PaginationLink = React129.forwardRef(
399
+ PaginationLink = exports.PaginationLink = React126.forwardRef(
400
400
  ({ className, ...props }, ref) => {
401
401
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
402
402
  "button",
@@ -412,7 +412,7 @@ var init_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
412
412
  }
413
413
  );
414
414
  PaginationLink.displayName = "PaginationLink";
415
- PaginationEllipsis = exports.PaginationEllipsis = React129.forwardRef(
415
+ PaginationEllipsis = exports.PaginationEllipsis = React126.forwardRef(
416
416
  ({ className, ...props }, ref) => {
417
417
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
418
418
  "span",
@@ -429,7 +429,7 @@ var init_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
429
429
  }
430
430
  );
431
431
  PaginationEllipsis.displayName = "PaginationEllipsis";
432
- PaginationPrevious = exports.PaginationPrevious = React129.forwardRef(
432
+ PaginationPrevious = exports.PaginationPrevious = React126.forwardRef(
433
433
  ({ className, ...props }, ref) => {
434
434
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk7INXXQVKcjs.Button, { ref, variant: "outline", size: "icon", className: _chunkKI4EGKNVcjs.cn.call(void 0, "h-10 w-10", className), ...props, children: [
435
435
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -438,7 +438,7 @@ var init_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
438
438
  }
439
439
  );
440
440
  PaginationPrevious.displayName = "PaginationPrevious";
441
- PaginationNext = exports.PaginationNext = React129.forwardRef(
441
+ PaginationNext = exports.PaginationNext = React126.forwardRef(
442
442
  ({ className, ...props }, ref) => {
443
443
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk7INXXQVKcjs.Button, { ref, variant: "outline", size: "icon", className: _chunkKI4EGKNVcjs.cn.call(void 0, "h-10 w-10", className), ...props, children: [
444
444
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -4970,7 +4970,7 @@ var ActionsMenu = ({
4970
4970
  className: `relative min-w-[256px] max-h-[var(--radix-popper-available-height)] bg-ods-bg border border-ods-border rounded-md shadow-lg overflow-y-auto ${className}`,
4971
4971
  children: groups.map((group, groupIndex) => {
4972
4972
  const groupKey = group.id || group.items.map((i) => i.id).join("|");
4973
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React129.default.Fragment, { children: [
4973
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React126.default.Fragment, { children: [
4974
4974
  group.items.map((item, itemIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4975
4975
  MenuItem,
4976
4976
  {
@@ -5007,8 +5007,8 @@ var ActionsMenuDropdown = ({
5007
5007
  onChange: onOpenChange
5008
5008
  });
5009
5009
  useReportOverlayOpen(open);
5010
- const triggerRef = React129.default.useRef(null);
5011
- React129.default.useEffect(() => {
5010
+ const triggerRef = React126.default.useRef(null);
5011
+ React126.default.useEffect(() => {
5012
5012
  if (!open) return;
5013
5013
  if (typeof document === "undefined") return;
5014
5014
  const trigger2 = triggerRef.current;
@@ -7868,7 +7868,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
7868
7868
  cache.set(key, entry);
7869
7869
  }
7870
7870
  const rendered = entry.node;
7871
- if (React129.default.isValidElement(rendered) && rendered.type === BlockCard) {
7871
+ if (React126.default.isValidElement(rendered) && rendered.type === BlockCard) {
7872
7872
  const props2 = rendered.props;
7873
7873
  const markerEnd = match2.index + match2[0].length;
7874
7874
  parts.push({ kind: "text", text: text.slice(cursor, markerEnd) });
@@ -11921,7 +11921,7 @@ var formatTokenCount = (count) => {
11921
11921
  return String(count);
11922
11922
  };
11923
11923
  var hasAnyBreakdownRow = (breakdown) => !!breakdown && !!(breakdown.haikuRewriter || breakdown.haikuClassifier || breakdown.haikuSummarizer);
11924
- var ModelDisplay = React129.default.forwardRef(
11924
+ var ModelDisplay = React126.default.forwardRef(
11925
11925
  ({
11926
11926
  className,
11927
11927
  provider,
@@ -12043,7 +12043,7 @@ function BreakdownRow({
12043
12043
  ] });
12044
12044
  }
12045
12045
  ModelDisplay.displayName = "ModelDisplay";
12046
- var ModelDisplaySkeleton = React129.default.forwardRef(
12046
+ var ModelDisplaySkeleton = React126.default.forwardRef(
12047
12047
  ({ className, showTokens = false, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
12048
12048
  "div",
12049
12049
  {
@@ -13663,7 +13663,7 @@ function VideoUnmuteGlyph({ size: size2 = "md", className }) {
13663
13663
 
13664
13664
  // src/utils/fetch-priority.ts
13665
13665
 
13666
- var REACT_MAJOR = parseInt((React129.default.version || "0").split(".")[0], 10);
13666
+ var REACT_MAJOR = parseInt((React126.default.version || "0").split(".")[0], 10);
13667
13667
  var USE_CAMEL_CASE_FETCH_PRIORITY = REACT_MAJOR >= 19;
13668
13668
  function fetchPriorityProp(priority) {
13669
13669
  const value = priority === void 0 ? "auto" : typeof priority === "boolean" ? priority ? "high" : "low" : priority;
@@ -14788,7 +14788,7 @@ function ManagedCell({
14788
14788
  cardWidthMobile,
14789
14789
  cardWidthDesktop
14790
14790
  }) {
14791
- const hintedWidth = React129.default.isValidElement(item) ? item.props["data-strip-cell-width"] : void 0;
14791
+ const hintedWidth = React126.default.isValidElement(item) ? item.props["data-strip-cell-width"] : void 0;
14792
14792
  const desktopWidth = typeof hintedWidth === "number" ? hintedWidth : cardWidthDesktop;
14793
14793
  const cloneRef = _chunk5RJUHUCIcjs.useSuppressCloneFocus.call(void 0, ctx.isClone);
14794
14794
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -14832,7 +14832,7 @@ function CardsStrip(props) {
14832
14832
  } = props;
14833
14833
  const childrenMode = props.renderCard === void 0;
14834
14834
  const childItems = _react.useMemo.call(void 0,
14835
- () => childrenMode ? React129.default.Children.toArray(props.children) : EMPTY_CHILDREN,
14835
+ () => childrenMode ? React126.default.Children.toArray(props.children) : EMPTY_CHILDREN,
14836
14836
  [childrenMode, props.children]
14837
14837
  );
14838
14838
  const items = childrenMode ? childItems : props.items;
@@ -14841,7 +14841,7 @@ function CardsStrip(props) {
14841
14841
  _react.useEffect.call(void 0, () => {
14842
14842
  if (process.env.NODE_ENV === "production" || !childrenMode) return;
14843
14843
  const only = childItems.length === 1 ? childItems[0] : null;
14844
- if (React129.default.isValidElement(only) && only.type === React129.default.Fragment) {
14844
+ if (React126.default.isValidElement(only) && only.type === React126.default.Fragment) {
14845
14845
  console.warn(
14846
14846
  "[CardsStrip] A single <Fragment> child becomes ONE giant cell \u2014 pass an array of card elements ({rows.map(...)}) instead."
14847
14847
  );
@@ -14851,7 +14851,7 @@ function CardsStrip(props) {
14851
14851
  if (!childrenMode) {
14852
14852
  return props.itemKey(item, index);
14853
14853
  }
14854
- return React129.default.isValidElement(item) && item.key != null ? String(item.key) : String(index);
14854
+ return React126.default.isValidElement(item) && item.key != null ? String(item.key) : String(index);
14855
14855
  };
14856
14856
  const wrapperRef = _react.useRef.call(void 0, null);
14857
14857
  const scrollerRef = _react.useRef.call(void 0, null);
@@ -15127,7 +15127,7 @@ function CardsStrip(props) {
15127
15127
  // ctx.isClone) and the managed cell's job in children mode.
15128
15128
  // The engine itself adds no wrapper here in render-prop mode
15129
15129
  // so the card root stays the track's direct child.
15130
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React129.default.Fragment, { children: renderItem(item, {
15130
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: renderItem(item, {
15131
15131
  index: i,
15132
15132
  cardKey: key,
15133
15133
  isClone,
@@ -15582,7 +15582,7 @@ function ChatVideoEntityCard({
15582
15582
  _chunkKI4EGKNVcjs.init_cn.call(void 0, );
15583
15583
 
15584
15584
 
15585
- var InteractiveCard = React129.default.forwardRef(
15585
+ var InteractiveCard = React126.default.forwardRef(
15586
15586
  ({
15587
15587
  children,
15588
15588
  onClick,
@@ -19609,7 +19609,7 @@ function InfoCard({ data, className = "" }) {
19609
19609
  (data.items.length > 0 || data.progress) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xs)] items-start self-stretch w-full", children: [
19610
19610
  data.items.map((item, index) => {
19611
19611
  const values = Array.isArray(item.value) ? item.value : [item.value];
19612
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React129.default.Fragment, { children: values.map((val, valIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19612
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: values.map((val, valIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19613
19613
  InfoCardValueRow,
19614
19614
  {
19615
19615
  label: item.label,
@@ -20264,7 +20264,7 @@ var noDataActionsVariants = _classvarianceauthority.cva.call(void 0, "overflow-h
20264
20264
 
20265
20265
  // src/components/ui/no-data/no-data-message.tsx
20266
20266
 
20267
- var NoDataMessage = React129.default.forwardRef(
20267
+ var NoDataMessage = React126.default.forwardRef(
20268
20268
  function NoDataMessage2({ icon, title, description, className, ...props }, ref) {
20269
20269
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
20270
20270
  "div",
@@ -20291,7 +20291,7 @@ var NoDataMessage = React129.default.forwardRef(
20291
20291
  _chunkKI4EGKNVcjs.init_cn.call(void 0, );
20292
20292
 
20293
20293
 
20294
- var NoDataAction = React129.default.forwardRef(
20294
+ var NoDataAction = React126.default.forwardRef(
20295
20295
  function NoDataAction2({ icon, label, children, className, ...props }, ref) {
20296
20296
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
20297
20297
  "div",
@@ -20311,16 +20311,16 @@ var NoDataAction = React129.default.forwardRef(
20311
20311
  );
20312
20312
  }
20313
20313
  );
20314
- var NoDataActions = React129.default.forwardRef(
20314
+ var NoDataActions = React126.default.forwardRef(
20315
20315
  function NoDataActions2({ actions, variant = "outline", className, children, ...props }, ref) {
20316
- const blocks = actions ? actions.map((action, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NoDataAction, { ...action }, index)) : React129.default.Children.toArray(children);
20316
+ const blocks = actions ? actions.map((action, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NoDataAction, { ...action }, index)) : React126.default.Children.toArray(children);
20317
20317
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20318
20318
  "div",
20319
20319
  {
20320
20320
  ref,
20321
20321
  className: _chunkKI4EGKNVcjs.cn.call(void 0, noDataActionsVariants({ variant }), "flex w-full flex-col md:w-auto md:flex-row", className),
20322
20322
  ...props,
20323
- children: blocks.map((block, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React129.default.Fragment, { children: [
20323
+ children: blocks.map((block, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React126.default.Fragment, { children: [
20324
20324
  index > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20325
20325
  "div",
20326
20326
  {
@@ -20337,7 +20337,7 @@ var NoDataActions = React129.default.forwardRef(
20337
20337
 
20338
20338
  // src/components/ui/no-data/no-data.tsx
20339
20339
 
20340
- var NoData = React129.default.forwardRef(function NoData2({
20340
+ var NoData = React126.default.forwardRef(function NoData2({
20341
20341
  icon,
20342
20342
  title,
20343
20343
  description,
@@ -26290,7 +26290,7 @@ function IconButtonsVariant({
26290
26290
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0, "hidden md:flex items-center", ACTIONS_GAP, className), children: [
26291
26291
  selector,
26292
26292
  loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
26293
- desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React129.default.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
26293
+ desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
26294
26294
  hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionsMenuDropdown, { groups: menuActions })
26295
26295
  ] })
26296
26296
  ] }),
@@ -26313,7 +26313,7 @@ function PrimaryButtonsVariant({
26313
26313
  // No overflow trigger in this variant — an unknown action set settles
26314
26314
  // into a labelled button, not a square one.
26315
26315
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions, emptyFallback: "label" })
26316
- ) : desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React129.default.Fragment, { children: renderActionButton(action) }, `desktop-${actionKey(action, idx)}`)) }),
26316
+ ) : desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: renderActionButton(action) }, `desktop-${actionKey(action, idx)}`)) }),
26317
26317
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MobileBottomActions, { actions: sortedActions, loading })
26318
26318
  ] });
26319
26319
  }
@@ -26336,7 +26336,7 @@ function MenuPrimaryVariant({
26336
26336
  selector,
26337
26337
  loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
26338
26338
  hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionsMenuDropdown, { groups: menuActions }),
26339
- desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React129.default.Fragment, { children: renderActionButton({ ...action, variant: action.variant || "accent" }) }, `desktop-${actionKey(action, idx)}`))
26339
+ desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: renderActionButton({ ...action, variant: action.variant || "accent" }) }, `desktop-${actionKey(action, idx)}`))
26340
26340
  ] })
26341
26341
  ] }),
26342
26342
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0, "flex md:hidden", className), children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MobileTriggerSkeleton, {}) : hasMobileMenuItems ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionsMenuDropdown, { groups: mobileMenuGroups }) : null })
@@ -26351,7 +26351,7 @@ function MobileBottomActions({ actions, loading }) {
26351
26351
  // fixed variant is what keeps the 24px the bar has always had.
26352
26352
  "flex items-start p-[var(--spacing-system-lf)]",
26353
26353
  ACTIONS_GAP
26354
- ), children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions, fullWidth: true, emptyFallback: "label" }) : actions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React129.default.Fragment, { children: renderActionButton(action, { fullWidth: !!action.label }) }, `mobile-${actionKey(action, idx)}`)) });
26354
+ ), children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions, fullWidth: true, emptyFallback: "label" }) : actions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: renderActionButton(action, { fullWidth: !!action.label }) }, `mobile-${actionKey(action, idx)}`)) });
26355
26355
  }
26356
26356
  function usePageActionsBottomPadding(variant) {
26357
26357
  return variant === "primary-buttons" || variant === "menu-primary" ? "pb-40 md:pb-0" : "";
@@ -26657,8 +26657,8 @@ _chunkKI4EGKNVcjs.init_cn.call(void 0, );
26657
26657
 
26658
26658
  function EntityImage({ src, alt, fallbackText, className }) {
26659
26659
  const resolvedSrc = _chunk5RJUHUCIcjs.useAuthedImageSrc.call(void 0, src);
26660
- const [imageFailed, setImageFailed] = React129.default.useState(false);
26661
- React129.default.useEffect(() => {
26660
+ const [imageFailed, setImageFailed] = React126.default.useState(false);
26661
+ React126.default.useEffect(() => {
26662
26662
  setImageFailed(false);
26663
26663
  }, [resolvedSrc]);
26664
26664
  const showFallback = imageFailed || !resolvedSrc;
@@ -29068,7 +29068,7 @@ var BenefitCardGrid = ({
29068
29068
  className = "",
29069
29069
  columns = 2
29070
29070
  }) => {
29071
- const childrenArray = React129.default.Children.toArray(children);
29071
+ const childrenArray = React126.default.Children.toArray(children);
29072
29072
  const gridClass = columns === 4 ? "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4" : columns === 3 ? "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3" : "flex flex-col md:flex-row";
29073
29073
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0,
29074
29074
  "bg-ods-card rounded-lg shadow-ods-card border border-ods-border overflow-hidden",
@@ -29089,7 +29089,7 @@ var BenefitCardGrid = ({
29089
29089
  } else {
29090
29090
  borderClass = isLastItem ? "border-b-0" : "border-b md:border-b-0 md:border-r border-ods-border";
29091
29091
  }
29092
- return React129.default.cloneElement(child, {
29092
+ return React126.default.cloneElement(child, {
29093
29093
  key: index,
29094
29094
  className: borderClass
29095
29095
  });
@@ -29106,7 +29106,7 @@ function BrandAssociationCard({
29106
29106
  className = ""
29107
29107
  }) {
29108
29108
  const renderIcon = () => {
29109
- if (React129.default.isValidElement(item.icon)) {
29109
+ if (React126.default.isValidElement(item.icon)) {
29110
29110
  return item.icon;
29111
29111
  }
29112
29112
  const IconComponent = item.icon;
@@ -30000,11 +30000,11 @@ function DropdownButton({
30000
30000
  side = "bottom",
30001
30001
  onCloseAutoFocus
30002
30002
  }) {
30003
- const [open, setOpen] = React129.default.useState(false);
30004
- React129.default.useEffect(() => {
30003
+ const [open, setOpen] = React126.default.useState(false);
30004
+ React126.default.useEffect(() => {
30005
30005
  if (disabled || loading) setOpen(false);
30006
30006
  }, [disabled, loading]);
30007
- const handleOpenChange = React129.default.useCallback(
30007
+ const handleOpenChange = React126.default.useCallback(
30008
30008
  (next) => {
30009
30009
  if (next && (disabled || loading)) return;
30010
30010
  setOpen(next);
@@ -34068,7 +34068,7 @@ function ReleaseMediaManager({
34068
34068
  _chunkKI4EGKNVcjs.init_cn.call(void 0, );
34069
34069
 
34070
34070
 
34071
- var SelectButton = React129.default.forwardRef(
34071
+ var SelectButton = React126.default.forwardRef(
34072
34072
  ({ title, description, selected = false, disabled = false, icon, image, tag, tagVariant = "outline", onClick, className }, ref) => {
34073
34073
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
34074
34074
  "button",
@@ -39534,9 +39534,6 @@ function TimeTrackerHeaderButton({ className, disabled }) {
39534
39534
 
39535
39535
 
39536
39536
 
39537
-
39538
-
39539
-
39540
39537
  var _core = require('@dnd-kit/core');
39541
39538
  var _sortable = require('@dnd-kit/sortable');
39542
39539
  _chunkKI4EGKNVcjs.init_cn.call(void 0, );
@@ -39712,6 +39709,35 @@ function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
39712
39709
  ] });
39713
39710
  }
39714
39711
 
39712
+ // src/components/features/board/use-lane-scroll-anchor.ts
39713
+
39714
+ var TICKET_ID_ATTRIBUTE = "data-ticket-id";
39715
+ function cardPositions(root) {
39716
+ return Array.from(root.querySelectorAll(`[${TICKET_ID_ATTRIBUTE}]`)).map((element) => ({
39717
+ id: _nullishCoalesce(element.getAttribute(TICKET_ID_ATTRIBUTE), () => ( "")),
39718
+ offsetTop: element.offsetTop
39719
+ }));
39720
+ }
39721
+ function useLaneScrollAnchor(scrollRef, tickets) {
39722
+ const positionsRef = _react.useRef.call(void 0, []);
39723
+ _chunk5RJUHUCIcjs.useIsomorphicLayoutEffect.call(void 0, () => {
39724
+ const root = scrollRef.current;
39725
+ if (!root) return;
39726
+ const previous = positionsRef.current;
39727
+ const scrollTop = root.scrollTop;
39728
+ const current = cardPositions(root);
39729
+ if (previous.length > 0 && scrollTop > 0) {
39730
+ const anchor = _nullishCoalesce(previous.find((card) => card.offsetTop >= scrollTop), () => ( previous[previous.length - 1]));
39731
+ const moved = current.find((card) => card.id === anchor.id);
39732
+ if (moved) {
39733
+ const drift = moved.offsetTop - anchor.offsetTop;
39734
+ if (Math.abs(drift) >= 1) root.scrollTop = scrollTop + drift;
39735
+ }
39736
+ }
39737
+ positionsRef.current = current;
39738
+ }, [tickets]);
39739
+ }
39740
+
39715
39741
  // src/components/features/board/ticket-card.tsx
39716
39742
 
39717
39743
  var PRIORITY_COLOR_CLASS = {
@@ -39822,7 +39848,7 @@ function TicketCardView({ className, ...bodyProps }) {
39822
39848
  }
39823
39849
  );
39824
39850
  }
39825
- function TicketCard({
39851
+ var TicketCard = _react.memo.call(void 0, function TicketCard2({
39826
39852
  ticket,
39827
39853
  columnId,
39828
39854
  columnColor,
@@ -39833,7 +39859,7 @@ function TicketCard({
39833
39859
  onApprove,
39834
39860
  onReject
39835
39861
  }) {
39836
- const sortableData = React110.useMemo(() => ({ columnId, type: "ticket" }), [columnId]);
39862
+ const sortableData = _react.useMemo.call(void 0, () => ({ columnId, type: "ticket" }), [columnId]);
39837
39863
  const sortable = _sortable.useSortable.call(void 0, { id: ticket.id, data: sortableData, disabled: dragDisabled });
39838
39864
  const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
39839
39865
  const style = isOverlay ? {} : {
@@ -39844,15 +39870,18 @@ function TicketCard({
39844
39870
  const handleClick = (e) => {
39845
39871
  if (sortable.isDragging) e.preventDefault();
39846
39872
  };
39847
- const body = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
39848
- TicketCardBody,
39849
- {
39850
- ticket,
39851
- columnColor,
39852
- renderAssignSlot,
39853
- onApprove: onApprove ? (requestId) => onApprove(ticket.id, requestId) : void 0,
39854
- onReject: onReject ? (requestId) => onReject(ticket.id, requestId) : void 0
39855
- }
39873
+ const body = _react.useMemo.call(void 0,
39874
+ () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
39875
+ TicketCardBody,
39876
+ {
39877
+ ticket,
39878
+ columnColor,
39879
+ renderAssignSlot,
39880
+ onApprove: onApprove ? (requestId) => onApprove(ticket.id, requestId) : void 0,
39881
+ onReject: onReject ? (requestId) => onReject(ticket.id, requestId) : void 0
39882
+ }
39883
+ ),
39884
+ [ticket, columnColor, renderAssignSlot, onApprove, onReject]
39856
39885
  );
39857
39886
  const cardClasses = _chunkKI4EGKNVcjs.cn.call(void 0,
39858
39887
  TICKET_CARD_SHELL,
@@ -39864,6 +39893,9 @@ function TicketCard({
39864
39893
  ref: isOverlay ? void 0 : sortable.setNodeRef,
39865
39894
  style,
39866
39895
  className: cardClasses,
39896
+ // Read by the lane's scroll anchor to keep the list still when tickets are
39897
+ // inserted above the viewport — see `use-lane-scroll-anchor.ts`.
39898
+ ...isOverlay ? {} : { [TICKET_ID_ATTRIBUTE]: ticket.id },
39867
39899
  ...isOverlay ? {} : sortable.attributes,
39868
39900
  ...isOverlay ? {} : sortable.listeners
39869
39901
  };
@@ -39899,7 +39931,7 @@ function TicketCard({
39899
39931
  ),
39900
39932
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0, "pointer-events-none", innerWrapperClass), children: body })
39901
39933
  ] });
39902
- }
39934
+ });
39903
39935
  function TicketTagRow({ tags }) {
39904
39936
  const visible = tags.slice(0, MAX_VISIBLE_TAGS);
39905
39937
  const hidden = tags.length - visible.length;
@@ -39913,7 +39945,7 @@ function TicketTagRow({ tags }) {
39913
39945
 
39914
39946
  _chunkKI4EGKNVcjs.init_cn.call(void 0, );
39915
39947
 
39916
- var TicketCardSkeleton = React111.forwardRef(
39948
+ var TicketCardSkeleton = React110.forwardRef(
39917
39949
  ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
39918
39950
  "div",
39919
39951
  {
@@ -39949,7 +39981,7 @@ TicketCardSkeleton.displayName = "TicketCardSkeleton";
39949
39981
 
39950
39982
  // src/components/features/board/board-column.tsx
39951
39983
 
39952
- function BoardColumn({
39984
+ var BoardColumn = _react.memo.call(void 0, function BoardColumn2({
39953
39985
  column,
39954
39986
  collapsed = false,
39955
39987
  onToggleCollapse,
@@ -39964,16 +39996,24 @@ function BoardColumn({
39964
39996
  joinLeft = false,
39965
39997
  joinRight = false
39966
39998
  }) {
39999
+ const droppableData = _react.useMemo.call(void 0, () => ({ columnId: column.id, type: "column" }), [column.id]);
40000
+ const { setNodeRef: setLaneRef, isOver } = _core.useDroppable.call(void 0, {
40001
+ id: `column:${column.id}`,
40002
+ data: droppableData,
40003
+ disabled: column.dropDisabled || collapsed
40004
+ });
39967
40005
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
39968
40006
  "div",
39969
40007
  {
40008
+ ref: setLaneRef,
39970
40009
  className: _chunkKI4EGKNVcjs.cn.call(void 0,
39971
40010
  "flex h-full shrink-0 flex-col gap-[var(--spacing-system-sf)] overflow-hidden rounded-md border border-ods-border p-[var(--spacing-system-sf)]",
39972
40011
  "transition-[width] duration-300 ease-out",
39973
40012
  collapsed ? "w-14" : "w-[400px]",
39974
40013
  column.system && "bg-ods-card",
39975
40014
  joinLeft && "rounded-l-none border-l-0",
39976
- joinRight && "rounded-r-none"
40015
+ joinRight && "rounded-r-none",
40016
+ isOver && "outline outline-2 -outline-offset-2 outline-ods-focus"
39977
40017
  ),
39978
40018
  style: column.system ? void 0 : { backgroundColor: tintOnDark(column.color) },
39979
40019
  children: [
@@ -40005,25 +40045,25 @@ function BoardColumn({
40005
40045
  ]
40006
40046
  }
40007
40047
  );
40008
- }
40009
- function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReject, onLoadMore, loadMoreRootMargin }) {
40010
- const ticketIds = React112.useMemo(() => column.tickets.map((t) => t.id), [column.tickets]);
40011
- const droppableData = React112.useMemo(
40012
- () => ({ columnId: column.id, type: "column" }),
40013
- [column.id]
40014
- );
40015
- const { setNodeRef: setDroppableRef, isOver } = _core.useDroppable.call(void 0, {
40016
- id: `column:${column.id}`,
40017
- data: droppableData,
40018
- disabled: column.dropDisabled
40019
- });
40020
- const scrollRef = React112.useRef(null);
40021
- const sentinelRef = React112.useRef(null);
40022
- const loadMoreRef = React112.useRef(onLoadMore);
40048
+ });
40049
+ function ColumnBody({
40050
+ column,
40051
+ getTicketHref,
40052
+ renderAssignSlot,
40053
+ onApprove,
40054
+ onReject,
40055
+ onLoadMore,
40056
+ loadMoreRootMargin
40057
+ }) {
40058
+ const ticketIds = _react.useMemo.call(void 0, () => column.tickets.map((t) => t.id), [column.tickets]);
40059
+ const scrollRef = _react.useRef.call(void 0, null);
40060
+ const sentinelRef = _react.useRef.call(void 0, null);
40061
+ useLaneScrollAnchor(scrollRef, column.tickets);
40062
+ const loadMoreRef = _react.useRef.call(void 0, onLoadMore);
40023
40063
  loadMoreRef.current = onLoadMore;
40024
- const columnIdRef = React112.useRef(column.id);
40064
+ const columnIdRef = _react.useRef.call(void 0, column.id);
40025
40065
  columnIdRef.current = column.id;
40026
- React112.useEffect(() => {
40066
+ _react.useEffect.call(void 0, () => {
40027
40067
  if (!column.hasMore || column.isLoadingMore) return;
40028
40068
  const sentinel = sentinelRef.current;
40029
40069
  const root = scrollRef.current;
@@ -40039,48 +40079,40 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReje
40039
40079
  observer.observe(sentinel);
40040
40080
  return () => observer.disconnect();
40041
40081
  }, [column.hasMore, column.isLoadingMore, loadMoreRootMargin]);
40042
- const setBodyRef = React112.useCallback(
40043
- (el) => {
40044
- scrollRef.current = el;
40045
- setDroppableRef(el);
40046
- },
40047
- [setDroppableRef]
40048
- );
40049
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
40050
- "div",
40051
- {
40052
- ref: setBodyRef,
40053
- className: _chunkKI4EGKNVcjs.cn.call(void 0,
40054
- "flex min-h-0 flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto",
40055
- isOver && "rounded-md outline outline-2 outline-offset-2 outline-ods-focus"
40056
- ),
40057
- children: [
40058
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _sortable.SortableContext, { items: ticketIds, strategy: _sortable.verticalListSortingStrategy, children: column.isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SkeletonStack, {}) : column.tickets.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState2, {}) : column.tickets.map((t) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
40059
- TicketCard,
40060
- {
40061
- ticket: t,
40062
- columnId: column.id,
40063
- columnColor: column.color,
40064
- href: _optionalChain([getTicketHref, 'optionalCall', _880 => _880(t.id)]),
40065
- renderAssignSlot,
40066
- onApprove,
40067
- onReject,
40068
- dragDisabled: column.dragDisabled
40069
- },
40070
- t.id
40071
- )) }),
40072
- column.isLoadingMore && !column.isLoading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCardSkeleton, {}),
40073
- column.hasMore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, "aria-hidden": true, className: "h-1 shrink-0" })
40074
- ]
40075
- }
40082
+ return (
40083
+ // `overflow-anchor:none` hands scroll anchoring to `useLaneScrollAnchor`
40084
+ // wholesale. The browser's own anchoring is unusable here — it silently
40085
+ // skips transformed elements, so it works between drags and does nothing
40086
+ // during one — and leaving both on double-corrects every insertion.
40087
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
40088
+ "div",
40089
+ {
40090
+ ref: scrollRef,
40091
+ className: "flex min-h-0 flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto [overflow-anchor:none]",
40092
+ children: [
40093
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _sortable.SortableContext, { items: ticketIds, strategy: _sortable.verticalListSortingStrategy, children: column.isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SkeletonStack, {}) : column.tickets.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState2, {}) : column.tickets.map((t) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
40094
+ TicketCard,
40095
+ {
40096
+ ticket: t,
40097
+ columnId: column.id,
40098
+ columnColor: column.color,
40099
+ href: _optionalChain([getTicketHref, 'optionalCall', _880 => _880(t.id)]),
40100
+ renderAssignSlot,
40101
+ onApprove,
40102
+ onReject,
40103
+ dragDisabled: column.dragDisabled
40104
+ },
40105
+ t.id
40106
+ )) }),
40107
+ column.isLoadingMore && !column.isLoading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCardSkeleton, {}),
40108
+ column.hasMore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, "aria-hidden": true, className: "h-1 shrink-0" })
40109
+ ]
40110
+ }
40111
+ )
40076
40112
  );
40077
40113
  }
40078
40114
  function SkeletonStack({ count = 4 }) {
40079
- const keys = React112.useMemo(
40080
- () => Array.from({ length: count }, () => Math.random().toString(36).slice(2)),
40081
- [count]
40082
- );
40083
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: keys.map((k) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCardSkeleton, {}, k)) });
40115
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: count }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketCardSkeleton, {}, `skeleton-${i}`)) });
40084
40116
  }
40085
40117
  function EmptyState2() {
40086
40118
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col items-center justify-center gap-[var(--spacing-system-lf)] p-[var(--spacing-system-lf)] text-center text-ods-text-secondary", children: [
@@ -40092,6 +40124,84 @@ function EmptyState2() {
40092
40124
  ] });
40093
40125
  }
40094
40126
 
40127
+ // src/components/features/board/drop-target.ts
40128
+
40129
+
40130
+
40131
+
40132
+
40133
+ function droppableDataOf(collision) {
40134
+ return _optionalChain([collision, 'access', _881 => _881.data, 'optionalAccess', _882 => _882.droppableContainer, 'optionalAccess', _883 => _883.data, 'optionalAccess', _884 => _884.current]);
40135
+ }
40136
+ function detectCollisions(args, pointerHits) {
40137
+ const intersections = pointerHits.length > 0 ? pointerHits : _core.rectIntersection.call(void 0, args);
40138
+ const ticketHit = intersections.find((c) => _optionalChain([droppableDataOf, 'call', _885 => _885(c), 'optionalAccess', _886 => _886.type]) === "ticket");
40139
+ if (ticketHit) return [ticketHit];
40140
+ const columnHit = intersections.find((c) => _optionalChain([droppableDataOf, 'call', _887 => _887(c), 'optionalAccess', _888 => _888.type]) === "column");
40141
+ if (columnHit) {
40142
+ const { columnId } = _nullishCoalesce(droppableDataOf(columnHit), () => ( {}));
40143
+ const ticketsInColumn = args.droppableContainers.filter((container) => {
40144
+ if (container.id === args.active.id) return false;
40145
+ const data = container.data.current;
40146
+ return _optionalChain([data, 'optionalAccess', _889 => _889.type]) === "ticket" && data.columnId === columnId;
40147
+ });
40148
+ if (ticketsInColumn.length > 0) {
40149
+ const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
40150
+ if (closest.length > 0) return closest;
40151
+ }
40152
+ return [columnHit];
40153
+ }
40154
+ return _core.closestCorners.call(void 0, args);
40155
+ }
40156
+ var animationFrameScheduler = (callback) => {
40157
+ const id = requestAnimationFrame(callback);
40158
+ return () => cancelAnimationFrame(id);
40159
+ };
40160
+ function createDropTargetResolver(scheduleFrame = animationFrameScheduler) {
40161
+ let settling = false;
40162
+ let cancelFrame = null;
40163
+ let lastOverId = null;
40164
+ const clearFrame = () => {
40165
+ _optionalChain([cancelFrame, 'optionalCall', _890 => _890()]);
40166
+ cancelFrame = null;
40167
+ };
40168
+ const keepLastTarget = (args) => {
40169
+ if (lastOverId === null) return null;
40170
+ const last = args.droppableContainers.find((c) => c.id === lastOverId);
40171
+ return last ? [{ id: last.id, data: { droppableContainer: last, value: 0 } }] : null;
40172
+ };
40173
+ return {
40174
+ detect: (args) => {
40175
+ if (settling) {
40176
+ const frozen = keepLastTarget(args);
40177
+ if (frozen) return frozen;
40178
+ }
40179
+ const pointerHits = args.pointerCoordinates ? _core.pointerWithin.call(void 0, args) : [];
40180
+ if (args.pointerCoordinates && pointerHits.length === 0) {
40181
+ const held = keepLastTarget(args);
40182
+ if (held) return held;
40183
+ }
40184
+ const collisions = detectCollisions(args, pointerHits);
40185
+ if (collisions.length > 0) lastOverId = collisions[0].id;
40186
+ return collisions;
40187
+ },
40188
+ freeze: () => {
40189
+ settling = true;
40190
+ clearFrame();
40191
+ cancelFrame = scheduleFrame(() => {
40192
+ cancelFrame = null;
40193
+ settling = false;
40194
+ });
40195
+ },
40196
+ release: () => {
40197
+ clearFrame();
40198
+ settling = false;
40199
+ lastOverId = null;
40200
+ },
40201
+ dispose: clearFrame
40202
+ };
40203
+ }
40204
+
40095
40205
  // src/components/features/board/use-board-collapse.ts
40096
40206
 
40097
40207
  function useBoardCollapse(storageKey) {
@@ -40146,45 +40256,35 @@ function Board({
40146
40256
  onThumbPointerMove,
40147
40257
  onThumbPointerUp
40148
40258
  } = _chunk5RJUHUCIcjs.useHorizontalScrollbar.call(void 0, );
40149
- const [items, setItems] = React113.useState(columns);
40150
- const isDraggingRef = React113.useRef(false);
40151
- React113.useEffect(() => {
40259
+ const [items, setItems] = _react.useState.call(void 0, columns);
40260
+ const isDraggingRef = _react.useRef.call(void 0, false);
40261
+ _react.useEffect.call(void 0, () => {
40152
40262
  if (!isDraggingRef.current) setItems(columns);
40153
40263
  }, [columns]);
40154
- const dragOriginRef = React113.useRef(null);
40155
- const [activeTicket, setActiveTicket] = React113.useState(null);
40264
+ const dragOriginRef = _react.useRef.call(void 0, null);
40265
+ const [activeTicket, setActiveTicket] = _react.useState.call(void 0, null);
40156
40266
  const sensors = _core.useSensors.call(void 0,
40157
40267
  _core.useSensor.call(void 0, _core.PointerSensor, { activationConstraint: { distance: 6 } }),
40158
40268
  _core.useSensor.call(void 0, _core.KeyboardSensor, { coordinateGetter: _sortable.sortableKeyboardCoordinates })
40159
40269
  );
40160
- const collisionDetection = React113.useCallback((args) => {
40161
- const pointer = _core.pointerWithin.call(void 0, args);
40162
- const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
40163
- const ticketHit = intersections.find(
40164
- (c) => _optionalChain([c, 'access', _881 => _881.data, 'optionalAccess', _882 => _882.droppableContainer, 'optionalAccess', _883 => _883.data, 'optionalAccess', _884 => _884.current, 'optionalAccess', _885 => _885.type]) === "ticket"
40165
- );
40166
- if (ticketHit) return [ticketHit];
40167
- const columnHit = intersections.find(
40168
- (c) => _optionalChain([c, 'access', _886 => _886.data, 'optionalAccess', _887 => _887.droppableContainer, 'optionalAccess', _888 => _888.data, 'optionalAccess', _889 => _889.current, 'optionalAccess', _890 => _890.type]) === "column"
40169
- );
40170
- if (columnHit) {
40171
- const columnId = _optionalChain([columnHit, 'access', _891 => _891.data, 'optionalAccess', _892 => _892.droppableContainer, 'optionalAccess', _893 => _893.data, 'optionalAccess', _894 => _894.current, 'optionalAccess', _895 => _895.columnId]);
40172
- const ticketsInColumn = args.droppableContainers.filter((c) => {
40173
- const d = c.data.current;
40174
- return _optionalChain([d, 'optionalAccess', _896 => _896.type]) === "ticket" && d.columnId === columnId;
40175
- });
40176
- if (ticketsInColumn.length > 0) {
40177
- const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
40178
- if (closest.length > 0) return closest;
40179
- }
40180
- return [columnHit];
40181
- }
40182
- return _core.closestCorners.call(void 0, args);
40270
+ const dropTarget = _react.useMemo.call(void 0, () => createDropTargetResolver(), []);
40271
+ _react.useEffect.call(void 0, () => dropTarget.dispose, [dropTarget]);
40272
+ const toggleRef = _react.useRef.call(void 0, toggle);
40273
+ toggleRef.current = toggle;
40274
+ const collapseHandlers = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
40275
+ const collapseHandlerFor = _react.useCallback.call(void 0, (columnId) => {
40276
+ let handler = collapseHandlers.current.get(columnId);
40277
+ if (!handler) {
40278
+ handler = () => toggleRef.current(columnId);
40279
+ collapseHandlers.current.set(columnId, handler);
40280
+ }
40281
+ return handler;
40183
40282
  }, []);
40184
40283
  const handleDragStart = (e) => {
40185
40284
  const id = String(e.active.id);
40186
40285
  const located = locate(items, id);
40187
40286
  if (!located) return;
40287
+ dropTarget.release();
40188
40288
  isDraggingRef.current = true;
40189
40289
  dragOriginRef.current = { ticketId: id, fromColumnId: located.columnId };
40190
40290
  setActiveTicket({ ticket: located.ticket, columnId: located.columnId });
@@ -40196,20 +40296,21 @@ function Board({
40196
40296
  const overId = String(over.id);
40197
40297
  if (activeId === overId) return;
40198
40298
  const overData = over.data.current;
40199
- const fromColumnId = _optionalChain([locate, 'call', _897 => _897(items, activeId), 'optionalAccess', _898 => _898.columnId]);
40200
- const toColumnId = _optionalChain([overData, 'optionalAccess', _899 => _899.columnId]);
40299
+ const fromColumnId = _optionalChain([locate, 'call', _891 => _891(items, activeId), 'optionalAccess', _892 => _892.columnId]);
40300
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _893 => _893.columnId]);
40201
40301
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
40202
40302
  const origin = dragOriginRef.current;
40203
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _900 => _900.fromColumnId]) === toColumnId;
40303
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _894 => _894.fromColumnId]) === toColumnId;
40204
40304
  const targetCol = items.find((c) => c.id === toColumnId);
40205
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _901 => _901.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
40206
- if (_optionalChain([targetCol, 'optionalAccess', _902 => _902.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
40305
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _895 => _895.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
40306
+ if (_optionalChain([targetCol, 'optionalAccess', _896 => _896.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
40307
+ dropTarget.freeze();
40207
40308
  setItems((prev) => {
40208
40309
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
40209
40310
  const toCol = prev.find((c) => c.id === toColumnId);
40210
40311
  if (fromIndex < 0 || !toCol) return prev;
40211
40312
  let toIndex;
40212
- if (_optionalChain([overData, 'optionalAccess', _903 => _903.type]) === "column") {
40313
+ if (_optionalChain([overData, 'optionalAccess', _897 => _897.type]) === "column") {
40213
40314
  toIndex = toCol.tickets.length;
40214
40315
  } else {
40215
40316
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -40238,6 +40339,7 @@ function Board({
40238
40339
  dragOriginRef.current = null;
40239
40340
  setActiveTicket(null);
40240
40341
  isDraggingRef.current = false;
40342
+ dropTarget.release();
40241
40343
  const { over } = e;
40242
40344
  if (!over || !origin) {
40243
40345
  setItems(columns);
@@ -40251,14 +40353,14 @@ function Board({
40251
40353
  const toColumnId = located.columnId;
40252
40354
  const isCrossColumn = origin.fromColumnId !== toColumnId;
40253
40355
  const targetCol = items.find((c) => c.id === toColumnId);
40254
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _904 => _904.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _905 => _905.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
40356
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _898 => _898.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _899 => _899.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
40255
40357
  setItems(columns);
40256
40358
  return;
40257
40359
  }
40258
40360
  let finalIndex = located.index;
40259
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _906 => _906.find, 'call', _907 => _907((c) => c.id === toColumnId), 'optionalAccess', _908 => _908.tickets]), () => ( []));
40361
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _900 => _900.find, 'call', _901 => _901((c) => c.id === toColumnId), 'optionalAccess', _902 => _902.tickets]), () => ( []));
40260
40362
  const overData = over.data.current;
40261
- if (_optionalChain([overData, 'optionalAccess', _909 => _909.type]) === "ticket") {
40363
+ if (_optionalChain([overData, 'optionalAccess', _903 => _903.type]) === "ticket") {
40262
40364
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
40263
40365
  if (overIndex >= 0 && overIndex !== located.index) {
40264
40366
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -40278,21 +40380,22 @@ function Board({
40278
40380
  ticketId: origin.ticketId,
40279
40381
  fromColumnId: origin.fromColumnId,
40280
40382
  toColumnId,
40281
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _910 => _910[finalIndex - 1], 'optionalAccess', _911 => _911.id]), () => ( null)),
40282
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _912 => _912[finalIndex + 1], 'optionalAccess', _913 => _913.id]), () => ( null))
40383
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _904 => _904[finalIndex - 1], 'optionalAccess', _905 => _905.id]), () => ( null)),
40384
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _906 => _906[finalIndex + 1], 'optionalAccess', _907 => _907.id]), () => ( null))
40283
40385
  });
40284
40386
  };
40285
40387
  const handleDragCancel = () => {
40286
40388
  dragOriginRef.current = null;
40287
40389
  setActiveTicket(null);
40288
40390
  isDraggingRef.current = false;
40391
+ dropTarget.release();
40289
40392
  setItems(columns);
40290
40393
  };
40291
40394
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
40292
40395
  _core.DndContext,
40293
40396
  {
40294
40397
  sensors,
40295
- collisionDetection,
40398
+ collisionDetection: dropTarget.detect,
40296
40399
  onDragStart: handleDragStart,
40297
40400
  onDragOver: handleDragOver,
40298
40401
  onDragEnd: handleDragEnd,
@@ -40308,17 +40411,17 @@ function Board({
40308
40411
  children: items.map((column, i) => {
40309
40412
  const prev = items[i - 1];
40310
40413
  const next = items[i + 1];
40311
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _914 => _914.system]));
40312
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _915 => _915.system]));
40414
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _908 => _908.system]));
40415
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _909 => _909.system]));
40313
40416
  const showGap = i > 0 && !joinLeft;
40314
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React113.Fragment, { children: [
40417
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
40315
40418
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
40316
40419
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
40317
40420
  BoardColumn,
40318
40421
  {
40319
40422
  column,
40320
40423
  collapsed: !!collapsed[column.id],
40321
- onToggleCollapse: () => toggle(column.id),
40424
+ onToggleCollapse: collapseHandlerFor(column.id),
40322
40425
  onAddTicket,
40323
40426
  onArchive: onArchiveColumn,
40324
40427
  getTicketHref,
@@ -40362,7 +40465,7 @@ function Board({
40362
40465
  {
40363
40466
  ticket: activeTicket.ticket,
40364
40467
  columnId: activeTicket.columnId,
40365
- columnColor: _optionalChain([items, 'access', _916 => _916.find, 'call', _917 => _917((c) => c.id === activeTicket.columnId), 'optionalAccess', _918 => _918.color]),
40468
+ columnColor: _optionalChain([items, 'access', _910 => _910.find, 'call', _911 => _911((c) => c.id === activeTicket.columnId), 'optionalAccess', _912 => _912.color]),
40366
40469
  isOverlay: true
40367
40470
  }
40368
40471
  ) : null })
@@ -40378,7 +40481,7 @@ function locate(cols, ticketId) {
40378
40481
  return null;
40379
40482
  }
40380
40483
  function findIndexInColumn(cols, columnId, ticketId) {
40381
- return _nullishCoalesce(_optionalChain([cols, 'access', _919 => _919.find, 'call', _920 => _920((c) => c.id === columnId), 'optionalAccess', _921 => _921.tickets, 'access', _922 => _922.findIndex, 'call', _923 => _923((t) => t.id === ticketId)]), () => ( -1));
40484
+ return _nullishCoalesce(_optionalChain([cols, 'access', _913 => _913.find, 'call', _914 => _914((c) => c.id === columnId), 'optionalAccess', _915 => _915.tickets, 'access', _916 => _916.findIndex, 'call', _917 => _917((t) => t.id === ticketId)]), () => ( -1));
40382
40485
  }
40383
40486
 
40384
40487
  // src/components/features/board/types.ts
@@ -40469,7 +40572,7 @@ function TicketStatusConfigList({
40469
40572
  if (oldIndex === -1 || newIndex === -1) return;
40470
40573
  onReorder(oldIndex, newIndex);
40471
40574
  };
40472
- const sortableIds = React114.useMemo(() => items.map((i) => i.id), [items]);
40575
+ const sortableIds = React111.useMemo(() => items.map((i) => i.id), [items]);
40473
40576
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _core.DndContext, { sensors, collisionDetection: _core.closestCenter, onDragEnd: handleDragEnd, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _sortable.SortableContext, { items: sortableIds, strategy: _sortable.verticalListSortingStrategy, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0, "flex w-full flex-col gap-[var(--spacing-system-xs)]", className), children: items.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { id: item.id, children: (args) => renderRow(item, args) }, item.id)) }) }) });
40474
40577
  }
40475
40578
  function SortableRow({
@@ -40509,7 +40612,7 @@ function MingoAiButton({ source, icon, label = "Mingo AI", className, onClick, .
40509
40612
  "aria-label": label,
40510
40613
  onClick: (e) => {
40511
40614
  window.dispatchEvent(new CustomEvent("ask-ai:open", { detail: { source: _nullishCoalesce(source, () => ( "")) } }));
40512
- _optionalChain([onClick, 'optionalCall', _924 => _924(e)]);
40615
+ _optionalChain([onClick, 'optionalCall', _918 => _918(e)]);
40513
40616
  },
40514
40617
  className: _chunkKI4EGKNVcjs.cn.call(void 0,
40515
40618
  // Unified ODS top-navigation cell (Figma 2797-6808 desktop /
@@ -40568,7 +40671,7 @@ function MobileNavPanel({ isOpen, config }) {
40568
40671
  if (item.onClick) {
40569
40672
  item.onClick();
40570
40673
  }
40571
- _optionalChain([config, 'access', _925 => _925.onClose, 'optionalCall', _926 => _926()]);
40674
+ _optionalChain([config, 'access', _919 => _919.onClose, 'optionalCall', _920 => _920()]);
40572
40675
  };
40573
40676
  if (item.href) {
40574
40677
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -40685,7 +40788,7 @@ var ANON_DEFAULTS = {
40685
40788
  function useResolveChatIdentity(enabled) {
40686
40789
  const runtime = _chunk7OPWSWEJcjs.useRequiredChatRuntime.call(void 0, );
40687
40790
  const url = runtime.endpoints.identityUrl;
40688
- const proxyEmail = _nullishCoalesce(_optionalChain([_chunk5RJUHUCIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _927 => _927.email]), () => ( null));
40791
+ const proxyEmail = _nullishCoalesce(_optionalChain([_chunk5RJUHUCIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _921 => _921.email]), () => ( null));
40689
40792
  const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
40690
40793
  const [isLoading, setIsLoading] = _react.useState.call(void 0, enabled);
40691
40794
  _react.useEffect.call(void 0, () => {
@@ -40740,12 +40843,12 @@ var stampMs = (stamp) => {
40740
40843
  return Number.isNaN(ms) ? 0 : ms;
40741
40844
  };
40742
40845
  var INVALIDATE_DEBOUNCE_MS = 1500;
40743
- var TicketLiveContext = React129.default.createContext(null);
40846
+ var TicketLiveContext = React126.default.createContext(null);
40744
40847
  function useOptionalTicketLive() {
40745
- return React129.default.useContext(TicketLiveContext);
40848
+ return React126.default.useContext(TicketLiveContext);
40746
40849
  }
40747
40850
  function useTicketLive() {
40748
- const ctx = React129.default.useContext(TicketLiveContext);
40851
+ const ctx = React126.default.useContext(TicketLiveContext);
40749
40852
  if (!ctx) {
40750
40853
  throw new Error("useTicketLive must be used within <TicketLiveProvider>");
40751
40854
  }
@@ -40761,16 +40864,16 @@ function TicketLiveProvider({ children }) {
40761
40864
  const runtime = _chunk7OPWSWEJcjs.useChatRuntime.call(void 0, );
40762
40865
  const identity = useChatIdentity();
40763
40866
  const queryClient = _reactquery.useQueryClient.call(void 0, );
40764
- const streamUrl = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _928 => _928.endpoints, 'access', _929 => _929.ticketStreamUrl]), () => ( TICKET_STREAM_ENDPOINT));
40765
- const readUrl = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _930 => _930.endpoints, 'access', _931 => _931.ticketReadUrl]), () => ( TICKET_READ_ENDPOINT));
40766
- const authed = identity.authTier !== "anon" && !!_optionalChain([identity, 'access', _932 => _932.user, 'optionalAccess', _933 => _933.email]);
40767
- const [connected, setConnected] = React129.default.useState(false);
40768
- const [summary, setSummary] = React129.default.useState(EMPTY_SUMMARY);
40769
- const [openTicketIdState, setOpenTicketIdState] = React129.default.useState(null);
40770
- const openTicketIdRef = React129.default.useRef(null);
40771
- const pendingTicketIdsRef = React129.default.useRef(/* @__PURE__ */ new Set());
40772
- const invalidateTimerRef = React129.default.useRef(null);
40773
- const flushInvalidations = React129.default.useCallback(() => {
40867
+ const streamUrl = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _922 => _922.endpoints, 'access', _923 => _923.ticketStreamUrl]), () => ( TICKET_STREAM_ENDPOINT));
40868
+ const readUrl = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _924 => _924.endpoints, 'access', _925 => _925.ticketReadUrl]), () => ( TICKET_READ_ENDPOINT));
40869
+ const authed = identity.authTier !== "anon" && !!_optionalChain([identity, 'access', _926 => _926.user, 'optionalAccess', _927 => _927.email]);
40870
+ const [connected, setConnected] = React126.default.useState(false);
40871
+ const [summary, setSummary] = React126.default.useState(EMPTY_SUMMARY);
40872
+ const [openTicketIdState, setOpenTicketIdState] = React126.default.useState(null);
40873
+ const openTicketIdRef = React126.default.useRef(null);
40874
+ const pendingTicketIdsRef = React126.default.useRef(/* @__PURE__ */ new Set());
40875
+ const invalidateTimerRef = React126.default.useRef(null);
40876
+ const flushInvalidations = React126.default.useCallback(() => {
40774
40877
  invalidateTimerRef.current = null;
40775
40878
  const ids = Array.from(pendingTicketIdsRef.current);
40776
40879
  pendingTicketIdsRef.current.clear();
@@ -40779,7 +40882,7 @@ function TicketLiveProvider({ children }) {
40779
40882
  void queryClient.invalidateQueries({ queryKey: ["ticket-engagements", id] });
40780
40883
  }
40781
40884
  }, [queryClient]);
40782
- const scheduleInvalidation = React129.default.useCallback(
40885
+ const scheduleInvalidation = React126.default.useCallback(
40783
40886
  (ticketId) => {
40784
40887
  if (ticketId) pendingTicketIdsRef.current.add(ticketId);
40785
40888
  if (invalidateTimerRef.current) return;
@@ -40787,7 +40890,7 @@ function TicketLiveProvider({ children }) {
40787
40890
  },
40788
40891
  [flushInvalidations]
40789
40892
  );
40790
- const bumpUnread = React129.default.useCallback((ticketId, createdAt) => {
40893
+ const bumpUnread = React126.default.useCallback((ticketId, createdAt) => {
40791
40894
  setSummary((prev) => {
40792
40895
  const stamp = _nullishCoalesce(createdAt, () => ( (/* @__PURE__ */ new Date()).toISOString()));
40793
40896
  const existing = prev.latestUnreadAt[ticketId];
@@ -40801,7 +40904,7 @@ function TicketLiveProvider({ children }) {
40801
40904
  };
40802
40905
  });
40803
40906
  }, []);
40804
- const zeroUnread = React129.default.useCallback((ticketId) => {
40907
+ const zeroUnread = React126.default.useCallback((ticketId) => {
40805
40908
  setSummary((prev) => {
40806
40909
  const current = _nullishCoalesce(prev.tickets[ticketId], () => ( 0));
40807
40910
  if (current === 0) return prev;
@@ -40812,9 +40915,9 @@ function TicketLiveProvider({ children }) {
40812
40915
  return { totalUnread: Math.max(0, prev.totalUnread - current), tickets, latestUnreadAt };
40813
40916
  });
40814
40917
  }, []);
40815
- const subscriptionRef = React129.default.useRef(null);
40816
- const noStreamRef = React129.default.useRef(false);
40817
- const handlersRef = React129.default.useRef({ onEvent: () => {
40918
+ const subscriptionRef = React126.default.useRef(null);
40919
+ const noStreamRef = React126.default.useRef(false);
40920
+ const handlersRef = React126.default.useRef({ onEvent: () => {
40818
40921
  }, onStatus: () => {
40819
40922
  }, onConnected: () => {
40820
40923
  } });
@@ -40830,7 +40933,7 @@ function TicketLiveProvider({ children }) {
40830
40933
  handlersRef.current.onEvent = (eventName, data) => {
40831
40934
  if (eventName === "ticket-summary") {
40832
40935
  const frame = data;
40833
- if (isSummaryData(_optionalChain([frame, 'optionalAccess', _934 => _934.data]))) {
40936
+ if (isSummaryData(_optionalChain([frame, 'optionalAccess', _928 => _928.data]))) {
40834
40937
  setSummary({
40835
40938
  totalUnread: frame.data.totalUnread,
40836
40939
  tickets: _nullishCoalesce(frame.data.tickets, () => ( {})),
@@ -40845,13 +40948,13 @@ function TicketLiveProvider({ children }) {
40845
40948
  }
40846
40949
  if (eventName === "ticket-status") {
40847
40950
  const frame = data;
40848
- const ticketId = _optionalChain([frame, 'optionalAccess', _935 => _935.data, 'optionalAccess', _936 => _936.ticket_external_id]);
40951
+ const ticketId = _optionalChain([frame, 'optionalAccess', _929 => _929.data, 'optionalAccess', _930 => _930.ticket_external_id]);
40849
40952
  scheduleInvalidation(ticketId);
40850
40953
  return;
40851
40954
  }
40852
40955
  if (eventName === "ticket-message") {
40853
40956
  const frame = data;
40854
- const payload = _optionalChain([frame, 'optionalAccess', _937 => _937.data]);
40957
+ const payload = _optionalChain([frame, 'optionalAccess', _931 => _931.data]);
40855
40958
  if (!isTicketMessageData(payload)) {
40856
40959
  scheduleInvalidation();
40857
40960
  return;
@@ -40867,7 +40970,7 @@ function TicketLiveProvider({ children }) {
40867
40970
  if (status === "no-stream") noStreamRef.current = true;
40868
40971
  };
40869
40972
  const streamEnabled = authed && !!streamUrl;
40870
- React129.default.useEffect(() => {
40973
+ React126.default.useEffect(() => {
40871
40974
  if (!streamEnabled) return;
40872
40975
  if (typeof window === "undefined") return;
40873
40976
  subscriptionRef.current = createSseSubscription({
@@ -40882,7 +40985,7 @@ function TicketLiveProvider({ children }) {
40882
40985
  const retryIfIdle = () => {
40883
40986
  if (noStreamRef.current) {
40884
40987
  noStreamRef.current = false;
40885
- _optionalChain([subscriptionRef, 'access', _938 => _938.current, 'optionalAccess', _939 => _939.reconnectNow, 'call', _940 => _940()]);
40988
+ _optionalChain([subscriptionRef, 'access', _932 => _932.current, 'optionalAccess', _933 => _933.reconnectNow, 'call', _934 => _934()]);
40886
40989
  }
40887
40990
  };
40888
40991
  window.addEventListener("focus", retryIfIdle);
@@ -40892,13 +40995,13 @@ function TicketLiveProvider({ children }) {
40892
40995
  clearTimeout(invalidateTimerRef.current);
40893
40996
  invalidateTimerRef.current = null;
40894
40997
  }
40895
- _optionalChain([subscriptionRef, 'access', _941 => _941.current, 'optionalAccess', _942 => _942.close, 'call', _943 => _943()]);
40998
+ _optionalChain([subscriptionRef, 'access', _935 => _935.current, 'optionalAccess', _936 => _936.close, 'call', _937 => _937()]);
40896
40999
  subscriptionRef.current = null;
40897
41000
  setConnected(false);
40898
41001
  setSummary(EMPTY_SUMMARY);
40899
41002
  };
40900
41003
  }, [streamEnabled, streamUrl]);
40901
- const markRead = React129.default.useCallback(
41004
+ const markRead = React126.default.useCallback(
40902
41005
  async (ticketExternalId) => {
40903
41006
  try {
40904
41007
  const response = await _chunk5RJUHUCIcjs.embedAuthedFetch.call(void 0, readUrl, {
@@ -40908,7 +41011,7 @@ function TicketLiveProvider({ children }) {
40908
41011
  if (!response.ok) return;
40909
41012
  zeroUnread(ticketExternalId);
40910
41013
  const body = await response.json().catch(() => null);
40911
- if (isSummaryData(_optionalChain([body, 'optionalAccess', _944 => _944.summary]))) {
41014
+ if (isSummaryData(_optionalChain([body, 'optionalAccess', _938 => _938.summary]))) {
40912
41015
  setSummary({
40913
41016
  totalUnread: body.summary.totalUnread,
40914
41017
  tickets: _nullishCoalesce(body.summary.tickets, () => ( {})),
@@ -40920,15 +41023,15 @@ function TicketLiveProvider({ children }) {
40920
41023
  },
40921
41024
  [readUrl, zeroUnread]
40922
41025
  );
40923
- const setOpenTicketId = React129.default.useCallback((ticketExternalId) => {
41026
+ const setOpenTicketId = React126.default.useCallback((ticketExternalId) => {
40924
41027
  openTicketIdRef.current = ticketExternalId;
40925
41028
  setOpenTicketIdState(ticketExternalId);
40926
41029
  }, []);
40927
- const notifyTicketCreated = React129.default.useCallback(() => {
41030
+ const notifyTicketCreated = React126.default.useCallback(() => {
40928
41031
  noStreamRef.current = false;
40929
- _optionalChain([subscriptionRef, 'access', _945 => _945.current, 'optionalAccess', _946 => _946.reconnectNow, 'call', _947 => _947()]);
41032
+ _optionalChain([subscriptionRef, 'access', _939 => _939.current, 'optionalAccess', _940 => _940.reconnectNow, 'call', _941 => _941()]);
40930
41033
  }, []);
40931
- const value = React129.default.useMemo(() => {
41034
+ const value = React126.default.useMemo(() => {
40932
41035
  let unreadByTicket = summary.tickets;
40933
41036
  let unreadTotal = summary.totalUnread;
40934
41037
  if (openTicketIdState && unreadByTicket[openTicketIdState]) {
@@ -41164,7 +41267,7 @@ function Header2({ config, platform }) {
41164
41267
  }, [config.autoHide]);
41165
41268
  const renderNavigationItem = (item) => {
41166
41269
  if (item.element) {
41167
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React129.default.Fragment, { children: item.element }, item.id);
41270
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: item.element }, item.id);
41168
41271
  }
41169
41272
  if (item.children && item.children.length > 0) {
41170
41273
  const isOpen = openDropdowns[item.id] || false;
@@ -41237,7 +41340,7 @@ function Header2({ config, platform }) {
41237
41340
  // explicit font-medium beats small-legacy's font-bold via
41238
41341
  // tailwind-merge instead of stylesheet order.
41239
41342
  "text-h6 font-medium",
41240
- index < (_nullishCoalesce(_optionalChain([item, 'access', _948 => _948.children, 'optionalAccess', _949 => _949.length]), () => ( 0))) - 1 && "mb-1",
41343
+ index < (_nullishCoalesce(_optionalChain([item, 'access', _942 => _942.children, 'optionalAccess', _943 => _943.length]), () => ( 0))) - 1 && "mb-1",
41241
41344
  "text-ods-text-primary",
41242
41345
  // All dropdown items use primary text color
41243
41346
  child.isActive && "bg-ods-bg-hover"
@@ -41309,7 +41412,7 @@ function Header2({ config, platform }) {
41309
41412
  );
41310
41413
  };
41311
41414
  const hasNav = !!config.navigation && config.navigation.items.length > 0;
41312
- const hasCta = !!_optionalChain([config, 'access', _950 => _950.actions, 'optionalAccess', _951 => _951.right, 'optionalAccess', _952 => _952.length]) || !!(_optionalChain([config, 'access', _953 => _953.actions, 'optionalAccess', _954 => _954.persistent]) && config.actions.persistent.length > 0);
41415
+ const hasCta = !!_optionalChain([config, 'access', _944 => _944.actions, 'optionalAccess', _945 => _945.right, 'optionalAccess', _946 => _946.length]) || !!(_optionalChain([config, 'access', _947 => _947.actions, 'optionalAccess', _948 => _948.persistent]) && config.actions.persistent.length > 0);
41313
41416
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
41314
41417
  "div",
41315
41418
  {
@@ -41326,19 +41429,19 @@ function Header2({ config, platform }) {
41326
41429
  centerBreakpoint: "lg",
41327
41430
  size: "big",
41328
41431
  leading: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
41329
- !!_optionalChain([config, 'access', _955 => _955.actions, 'optionalAccess', _956 => _956.left, 'optionalAccess', _957 => _957.length]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-full items-center border-r border-ods-border", children: config.actions.left }),
41330
- _optionalChain([config, 'access', _958 => _958.mobile, 'optionalAccess', _959 => _959.enabled]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
41432
+ !!_optionalChain([config, 'access', _949 => _949.actions, 'optionalAccess', _950 => _950.left, 'optionalAccess', _951 => _951.length]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-full items-center border-r border-ods-border", children: config.actions.left }),
41433
+ _optionalChain([config, 'access', _952 => _952.mobile, 'optionalAccess', _953 => _953.enabled]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
41331
41434
  HeaderButton,
41332
41435
  {
41333
41436
  className: "lg:hidden border-r border-ods-border",
41334
41437
  onClick: () => {
41335
- _optionalChain([config, 'access', _960 => _960.mobile, 'optionalAccess', _961 => _961.onToggle, 'optionalCall', _962 => _962()]);
41438
+ _optionalChain([config, 'access', _954 => _954.mobile, 'optionalAccess', _955 => _955.onToggle, 'optionalCall', _956 => _956()]);
41336
41439
  },
41337
- isActive: _nullishCoalesce(_optionalChain([config, 'access', _963 => _963.mobile, 'optionalAccess', _964 => _964.isOpen]), () => ( false)),
41338
- "aria-label": _optionalChain([config, 'access', _965 => _965.mobile, 'optionalAccess', _966 => _966.isOpen]) ? "Close menu" : "Open menu",
41339
- "aria-expanded": _nullishCoalesce(_optionalChain([config, 'access', _967 => _967.mobile, 'optionalAccess', _968 => _968.isOpen]), () => ( false)),
41340
- "aria-controls": _optionalChain([config, 'access', _969 => _969.mobile, 'optionalAccess', _970 => _970.isOpen]) ? MOBILE_NAV_PANEL_ID : void 0,
41341
- icon: _optionalChain([config, 'access', _971 => _971.mobile, 'optionalAccess', _972 => _972.isOpen]) ? _optionalChain([config, 'access', _973 => _973.mobile, 'optionalAccess', _974 => _974.closeIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.XmarkIcon, { className: "w-6 h-6" }) : _optionalChain([config, 'access', _975 => _975.mobile, 'optionalAccess', _976 => _976.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.Menu01Icon, { className: "w-6 h-6" })
41440
+ isActive: _nullishCoalesce(_optionalChain([config, 'access', _957 => _957.mobile, 'optionalAccess', _958 => _958.isOpen]), () => ( false)),
41441
+ "aria-label": _optionalChain([config, 'access', _959 => _959.mobile, 'optionalAccess', _960 => _960.isOpen]) ? "Close menu" : "Open menu",
41442
+ "aria-expanded": _nullishCoalesce(_optionalChain([config, 'access', _961 => _961.mobile, 'optionalAccess', _962 => _962.isOpen]), () => ( false)),
41443
+ "aria-controls": _optionalChain([config, 'access', _963 => _963.mobile, 'optionalAccess', _964 => _964.isOpen]) ? MOBILE_NAV_PANEL_ID : void 0,
41444
+ icon: _optionalChain([config, 'access', _965 => _965.mobile, 'optionalAccess', _966 => _966.isOpen]) ? _optionalChain([config, 'access', _967 => _967.mobile, 'optionalAccess', _968 => _968.closeIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.XmarkIcon, { className: "w-6 h-6" }) : _optionalChain([config, 'access', _969 => _969.mobile, 'optionalAccess', _970 => _970.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.Menu01Icon, { className: "w-6 h-6" })
41342
41445
  }
41343
41446
  )
41344
41447
  ] }),
@@ -41351,23 +41454,23 @@ function Header2({ config, platform }) {
41351
41454
  "flex items-center gap-2",
41352
41455
  // True centering relative to the bar (not the leftover flex
41353
41456
  // space) — same treatment the pre-unification header had.
41354
- _optionalChain([config, 'access', _977 => _977.navigation, 'optionalAccess', _978 => _978.position]) === "center" && "absolute left-1/2 -translate-x-1/2"
41457
+ _optionalChain([config, 'access', _971 => _971.navigation, 'optionalAccess', _972 => _972.position]) === "center" && "absolute left-1/2 -translate-x-1/2"
41355
41458
  ),
41356
41459
  role: "navigation",
41357
41460
  "aria-label": "Main navigation",
41358
- children: _optionalChain([config, 'access', _979 => _979.navigation, 'optionalAccess', _980 => _980.items, 'access', _981 => _981.map, 'call', _982 => _982(renderNavigationItem)])
41461
+ children: _optionalChain([config, 'access', _973 => _973.navigation, 'optionalAccess', _974 => _974.items, 'access', _975 => _975.map, 'call', _976 => _976(renderNavigationItem)])
41359
41462
  }
41360
41463
  ) : void 0,
41361
41464
  centerClassName: _chunkKI4EGKNVcjs.cn.call(void 0,
41362
- _optionalChain([config, 'access', _983 => _983.navigation, 'optionalAccess', _984 => _984.position]) === "left" && "justify-start",
41363
- _optionalChain([config, 'access', _985 => _985.navigation, 'optionalAccess', _986 => _986.position]) === "right" && "justify-end pr-[var(--spacing-system-m)]"
41465
+ _optionalChain([config, 'access', _977 => _977.navigation, 'optionalAccess', _978 => _978.position]) === "left" && "justify-start",
41466
+ _optionalChain([config, 'access', _979 => _979.navigation, 'optionalAccess', _980 => _980.position]) === "right" && "justify-end pr-[var(--spacing-system-m)]"
41364
41467
  ),
41365
41468
  cta: hasCta ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
41366
- !!_optionalChain([config, 'access', _987 => _987.actions, 'optionalAccess', _988 => _988.right, 'optionalAccess', _989 => _989.length]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden lg:flex items-center gap-3", children: config.actions.right }),
41367
- _optionalChain([config, 'access', _990 => _990.actions, 'optionalAccess', _991 => _991.persistent]) && config.actions.persistent.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.persistent })
41469
+ !!_optionalChain([config, 'access', _981 => _981.actions, 'optionalAccess', _982 => _982.right, 'optionalAccess', _983 => _983.length]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden lg:flex items-center gap-3", children: config.actions.right }),
41470
+ _optionalChain([config, 'access', _984 => _984.actions, 'optionalAccess', _985 => _985.persistent]) && config.actions.persistent.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.persistent })
41368
41471
  ] }) : void 0,
41369
41472
  ctaClassName: "gap-3",
41370
- sideActions: config.tickets || _optionalChain([config, 'access', _992 => _992.mingo, 'optionalAccess', _993 => _993.enabled]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
41473
+ sideActions: config.tickets || _optionalChain([config, 'access', _986 => _986.mingo, 'optionalAccess', _987 => _987.enabled]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
41371
41474
  config.tickets && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
41372
41475
  TicketAlertsButton,
41373
41476
  {
@@ -41376,7 +41479,7 @@ function Header2({ config, platform }) {
41376
41479
  className: "border-l border-ods-border"
41377
41480
  }
41378
41481
  ),
41379
- _optionalChain([config, 'access', _994 => _994.mingo, 'optionalAccess', _995 => _995.enabled]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
41482
+ _optionalChain([config, 'access', _988 => _988.mingo, 'optionalAccess', _989 => _989.enabled]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
41380
41483
  MingoAiButton,
41381
41484
  {
41382
41485
  source: config.mingo.source,
@@ -41398,17 +41501,17 @@ function Header2({ config, platform }) {
41398
41501
  // src/components/navigation/header-skeleton.tsx
41399
41502
 
41400
41503
  function HeaderSkeleton({ config }) {
41401
- const showNavigation = _optionalChain([config, 'optionalAccess', _996 => _996.navigation]) && config.navigation.items.length > 0;
41402
- const showActions = _optionalChain([config, 'optionalAccess', _997 => _997.actions, 'optionalAccess', _998 => _998.right]) && config.actions.right.length > 0;
41403
- const showMobileMenu = _optionalChain([config, 'optionalAccess', _999 => _999.mobile, 'optionalAccess', _1000 => _1000.enabled]);
41404
- const showLeftActions = !!_optionalChain([config, 'optionalAccess', _1001 => _1001.actions, 'optionalAccess', _1002 => _1002.left]);
41504
+ const showNavigation = _optionalChain([config, 'optionalAccess', _990 => _990.navigation]) && config.navigation.items.length > 0;
41505
+ const showActions = _optionalChain([config, 'optionalAccess', _991 => _991.actions, 'optionalAccess', _992 => _992.right]) && config.actions.right.length > 0;
41506
+ const showMobileMenu = _optionalChain([config, 'optionalAccess', _993 => _993.mobile, 'optionalAccess', _994 => _994.enabled]);
41507
+ const showLeftActions = !!_optionalChain([config, 'optionalAccess', _995 => _995.actions, 'optionalAccess', _996 => _996.left]);
41405
41508
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-[50] w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
41406
41509
  "header",
41407
41510
  {
41408
41511
  className: _chunkKI4EGKNVcjs.cn.call(void 0,
41409
41512
  "flex h-[72px] w-full items-center border-b border-t border-ods-border md:border-t-0",
41410
- _optionalChain([config, 'optionalAccess', _1003 => _1003.backgroundColor]) || "bg-ods-card",
41411
- _optionalChain([config, 'optionalAccess', _1004 => _1004.className])
41513
+ _optionalChain([config, 'optionalAccess', _997 => _997.backgroundColor]) || "bg-ods-card",
41514
+ _optionalChain([config, 'optionalAccess', _998 => _998.className])
41412
41515
  ),
41413
41516
  children: [
41414
41517
  showLeftActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-full w-[72px] items-center justify-center border-r border-ods-border", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-6 animate-pulse rounded bg-ods-border" }) }),
@@ -41423,7 +41526,7 @@ function HeaderSkeleton({ config }) {
41423
41526
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-24 animate-pulse rounded bg-ods-border" })
41424
41527
  ] }) }),
41425
41528
  showActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden h-full items-center px-[var(--spacing-system-m)] lg:flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-24 animate-pulse rounded bg-ods-border" }) }),
41426
- _optionalChain([config, 'optionalAccess', _1005 => _1005.mingo, 'optionalAccess', _1006 => _1006.enabled]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-full items-center border-l border-ods-border px-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 animate-pulse rounded bg-ods-border md:w-28" }) })
41529
+ _optionalChain([config, 'optionalAccess', _999 => _999.mingo, 'optionalAccess', _1000 => _1000.enabled]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-full items-center border-l border-ods-border px-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 animate-pulse rounded bg-ods-border md:w-28" }) })
41427
41530
  ]
41428
41531
  }
41429
41532
  ) });
@@ -41530,7 +41633,7 @@ function SlidingSidebar({ config }) {
41530
41633
  variant: "transparent",
41531
41634
  size: "default",
41532
41635
  onClick: () => {
41533
- _optionalChain([item, 'access', _1007 => _1007.onClick, 'optionalCall', _1008 => _1008()]);
41636
+ _optionalChain([item, 'access', _1001 => _1001.onClick, 'optionalCall', _1002 => _1002()]);
41534
41637
  config.onClose();
41535
41638
  },
41536
41639
  leftIcon: item.icon,
@@ -41553,7 +41656,7 @@ function SlidingSidebar({ config }) {
41553
41656
  variant: "transparent",
41554
41657
  size: "default",
41555
41658
  onClick: () => {
41556
- _optionalChain([item, 'access', _1009 => _1009.onClick, 'optionalCall', _1010 => _1010()]);
41659
+ _optionalChain([item, 'access', _1003 => _1003.onClick, 'optionalCall', _1004 => _1004()]);
41557
41660
  config.onClose();
41558
41661
  },
41559
41662
  leftIcon: item.icon,
@@ -41685,7 +41788,7 @@ function StickySectionNav({
41685
41788
  ] });
41686
41789
  }
41687
41790
  function useSectionNavigation(sections, options) {
41688
- const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _1011 => _1011[0], 'optionalAccess', _1012 => _1012.id]) || "");
41791
+ const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _1005 => _1005[0], 'optionalAccess', _1006 => _1006.id]) || "");
41689
41792
  const isScrollingFromClick = _react.useRef.call(void 0, false);
41690
41793
  const { offset: offset2 = 100 } = options || {};
41691
41794
  const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
@@ -41709,7 +41812,7 @@ function useSectionNavigation(sections, options) {
41709
41812
  const handleScroll = () => {
41710
41813
  if (isScrollingFromClick.current) return;
41711
41814
  const scrollPosition = window.scrollY + offset2 + 50;
41712
- let currentSection = _optionalChain([sections, 'access', _1013 => _1013[0], 'optionalAccess', _1014 => _1014.id]) || "";
41815
+ let currentSection = _optionalChain([sections, 'access', _1007 => _1007[0], 'optionalAccess', _1008 => _1008.id]) || "";
41713
41816
  for (let i = sections.length - 1; i >= 0; i--) {
41714
41817
  const element = document.getElementById(sections[i].id);
41715
41818
  if (element && scrollPosition >= element.offsetTop) {
@@ -41925,7 +42028,7 @@ function NavigationSidebar({ config, disabled = false }) {
41925
42028
  } else {
41926
42029
  setDesktopMinimized((prev) => !prev);
41927
42030
  }
41928
- _optionalChain([config, 'access', _1015 => _1015.onToggleMinimized, 'optionalCall', _1016 => _1016()]);
42031
+ _optionalChain([config, 'access', _1009 => _1009.onToggleMinimized, 'optionalCall', _1010 => _1010()]);
41929
42032
  }, [isTablet, setDesktopMinimized, config]);
41930
42033
  const closeOverlay = _react.useCallback.call(void 0, () => {
41931
42034
  setTabletMinimized(true);
@@ -41940,14 +42043,14 @@ function NavigationSidebar({ config, disabled = false }) {
41940
42043
  }, [isOverlayOpen, closeOverlay]);
41941
42044
  const [pendingItemId, setPendingItemId] = _react.useState.call(void 0, null);
41942
42045
  const committedActiveId = _react.useMemo.call(void 0,
41943
- () => _nullishCoalesce(_optionalChain([config, 'access', _1017 => _1017.items, 'access', _1018 => _1018.find, 'call', _1019 => _1019((item) => item.isActive), 'optionalAccess', _1020 => _1020.id]), () => ( null)),
42046
+ () => _nullishCoalesce(_optionalChain([config, 'access', _1011 => _1011.items, 'access', _1012 => _1012.find, 'call', _1013 => _1013((item) => item.isActive), 'optionalAccess', _1014 => _1014.id]), () => ( null)),
41944
42047
  [config.items]
41945
42048
  );
41946
42049
  _react.useEffect.call(void 0, () => {
41947
42050
  setPendingItemId(null);
41948
42051
  }, [committedActiveId]);
41949
42052
  const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
41950
- _optionalChain([event, 'optionalAccess', _1021 => _1021.stopPropagation, 'call', _1022 => _1022()]);
42053
+ _optionalChain([event, 'optionalAccess', _1015 => _1015.stopPropagation, 'call', _1016 => _1016()]);
41951
42054
  if (item.onClick) {
41952
42055
  item.onClick();
41953
42056
  if (isTablet) setTabletMinimized(true);
@@ -41956,7 +42059,7 @@ function NavigationSidebar({ config, disabled = false }) {
41956
42059
  if (!item.path) return;
41957
42060
  if (isModifiedClick(event)) return;
41958
42061
  if (config.onNavigate) {
41959
- _optionalChain([event, 'optionalAccess', _1023 => _1023.preventDefault, 'call', _1024 => _1024()]);
42062
+ _optionalChain([event, 'optionalAccess', _1017 => _1017.preventDefault, 'call', _1018 => _1018()]);
41960
42063
  if (item.id !== committedActiveId) setPendingItemId(item.id);
41961
42064
  config.onNavigate(item.path);
41962
42065
  }
@@ -41968,13 +42071,13 @@ function NavigationSidebar({ config, disabled = false }) {
41968
42071
  }), [config.items]);
41969
42072
  const loadingRows = _react.useMemo.call(void 0, () => {
41970
42073
  if (!config.loading) return null;
41971
- const primary = _nullishCoalesce(_optionalChain([config, 'access', _1025 => _1025.loadingRows, 'optionalAccess', _1026 => _1026.primary]), () => ( 7));
41972
- const secondary = _nullishCoalesce(_optionalChain([config, 'access', _1027 => _1027.loadingRows, 'optionalAccess', _1028 => _1028.secondary]), () => ( 2));
42074
+ const primary = _nullishCoalesce(_optionalChain([config, 'access', _1019 => _1019.loadingRows, 'optionalAccess', _1020 => _1020.primary]), () => ( 7));
42075
+ const secondary = _nullishCoalesce(_optionalChain([config, 'access', _1021 => _1021.loadingRows, 'optionalAccess', _1022 => _1022.secondary]), () => ( 2));
41973
42076
  return {
41974
42077
  primary: Array.from({ length: Math.max(0, primary) }, (_, i) => `primary-${i}`),
41975
42078
  secondary: Array.from({ length: Math.max(0, secondary) }, (_, i) => `secondary-${i}`)
41976
42079
  };
41977
- }, [config.loading, _optionalChain([config, 'access', _1029 => _1029.loadingRows, 'optionalAccess', _1030 => _1030.primary]), _optionalChain([config, 'access', _1031 => _1031.loadingRows, 'optionalAccess', _1032 => _1032.secondary])]);
42080
+ }, [config.loading, _optionalChain([config, 'access', _1023 => _1023.loadingRows, 'optionalAccess', _1024 => _1024.primary]), _optionalChain([config, 'access', _1025 => _1025.loadingRows, 'optionalAccess', _1026 => _1026.secondary])]);
41978
42081
  const sidebarWidth = _react.useMemo.call(void 0,
41979
42082
  () => minimized ? `${MINIMIZED_WIDTH}px` : `${EXPANDED_WIDTH}px`,
41980
42083
  [minimized]
@@ -42025,7 +42128,7 @@ function NavigationSidebar({ config, disabled = false }) {
42025
42128
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NavigationSidebarHeader, { minimized }),
42026
42129
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col justify-between py-4 overflow-y-auto", children: [
42027
42130
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
42028
- _optionalChain([config, 'access', _1033 => _1033.topSlot, 'optionalCall', _1034 => _1034({ minimized })]),
42131
+ _optionalChain([config, 'access', _1027 => _1027.topSlot, 'optionalCall', _1028 => _1028({ minimized })]),
42029
42132
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { className: "flex flex-col", "aria-label": "Primary navigation", "aria-busy": !!loadingRows, children: loadingRows ? loadingRows.primary.map((key) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NavigationSidebarItemSkeleton, { showLabel }, key)) : primaryItems.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42030
42133
  NavigationSidebarItemButton,
42031
42134
  {
@@ -42081,7 +42184,7 @@ function HeaderGlobalSearch({
42081
42184
  placeholder = "Global Search",
42082
42185
  className
42083
42186
  }) {
42084
- const [internalValue, setInternalValue] = React129.default.useState(value);
42187
+ const [internalValue, setInternalValue] = React126.default.useState(value);
42085
42188
  const currentValue = onChange ? value : internalValue;
42086
42189
  const handleChange = (e) => {
42087
42190
  const newValue = e.target.value;
@@ -42093,11 +42196,11 @@ function HeaderGlobalSearch({
42093
42196
  };
42094
42197
  const handleSubmit = (e) => {
42095
42198
  e.preventDefault();
42096
- _optionalChain([onSubmit, 'optionalCall', _1035 => _1035(currentValue)]);
42199
+ _optionalChain([onSubmit, 'optionalCall', _1029 => _1029(currentValue)]);
42097
42200
  };
42098
42201
  const handleKeyDown = (e) => {
42099
42202
  if (e.key === "Enter") {
42100
- _optionalChain([onSubmit, 'optionalCall', _1036 => _1036(currentValue)]);
42203
+ _optionalChain([onSubmit, 'optionalCall', _1030 => _1030(currentValue)]);
42101
42204
  }
42102
42205
  };
42103
42206
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -42200,8 +42303,8 @@ function HeaderOrganizationFilter({
42200
42303
  className
42201
42304
  }) {
42202
42305
  const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
42203
- const displayName = _optionalChain([selectedOrg, 'optionalAccess', _1037 => _1037.name]) || "All Organizations";
42204
- const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _1038 => _1038.deviceCount]), () => ( totalDeviceCount));
42306
+ const displayName = _optionalChain([selectedOrg, 'optionalAccess', _1031 => _1031.name]) || "All Organizations";
42307
+ const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _1032 => _1032.deviceCount]), () => ( totalDeviceCount));
42205
42308
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDCB4EBA5cjs.DropdownMenu, { children: [
42206
42309
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDCB4EBA5cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
42207
42310
  "button",
@@ -42227,11 +42330,11 @@ function HeaderOrganizationFilter({
42227
42330
  }
42228
42331
  ) }),
42229
42332
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkDCB4EBA5cjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
42230
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDCB4EBA5cjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _1039 => _1039("")]), children: "All Organizations" }),
42333
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDCB4EBA5cjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _1033 => _1033("")]), children: "All Organizations" }),
42231
42334
  organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42232
42335
  _chunkDCB4EBA5cjs.DropdownMenuItem,
42233
42336
  {
42234
- onClick: () => _optionalChain([onOrgChange, 'optionalCall', _1040 => _1040(org.id)]),
42337
+ onClick: () => _optionalChain([onOrgChange, 'optionalCall', _1034 => _1034(org.id)]),
42235
42338
  children: org.name
42236
42339
  },
42237
42340
  org.id
@@ -42242,7 +42345,7 @@ function HeaderOrganizationFilter({
42242
42345
 
42243
42346
  // src/components/navigation/app-header.tsx
42244
42347
 
42245
- var AppHeader = React129.default.memo(function AppHeader2({
42348
+ var AppHeader = React126.default.memo(function AppHeader2({
42246
42349
  showSearch,
42247
42350
  onSearch,
42248
42351
  showOrganizations,
@@ -42452,9 +42555,9 @@ var AppHeader = React129.default.memo(function AppHeader2({
42452
42555
  });
42453
42556
  function NotificationsHeaderButton({ fallbackUnreadCount, disabled, dimmedClass }) {
42454
42557
  const ctx = useOptionalNotifications();
42455
- const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _1041 => _1041.unreadCount]), () => ( fallbackUnreadCount))) > 0;
42456
- const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _1042 => _1042.isOpen]), () => ( false));
42457
- const onClick = _optionalChain([ctx, 'optionalAccess', _1043 => _1043.toggle]);
42558
+ const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _1035 => _1035.unreadCount]), () => ( fallbackUnreadCount))) > 0;
42559
+ const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _1036 => _1036.isOpen]), () => ( false));
42560
+ const onClick = _optionalChain([ctx, 'optionalAccess', _1037 => _1037.toggle]);
42458
42561
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42459
42562
  HeaderButton,
42460
42563
  {
@@ -42531,7 +42634,7 @@ function AppHeaderSkeleton({
42531
42634
 
42532
42635
 
42533
42636
  var HEADER_HEIGHT = 56;
42534
- var MobileBurgerMenu = React129.default.memo(function MobileBurgerMenu2({
42637
+ var MobileBurgerMenu = React126.default.memo(function MobileBurgerMenu2({
42535
42638
  isOpen,
42536
42639
  onClose,
42537
42640
  config,
@@ -42548,7 +42651,7 @@ var MobileBurgerMenu = React129.default.memo(function MobileBurgerMenu2({
42548
42651
  if (item.onClick) {
42549
42652
  item.onClick();
42550
42653
  } else if (item.path) {
42551
- _optionalChain([config, 'access', _1044 => _1044.onNavigate, 'optionalCall', _1045 => _1045(item.path)]);
42654
+ _optionalChain([config, 'access', _1038 => _1038.onNavigate, 'optionalCall', _1039 => _1039(item.path)]);
42552
42655
  }
42553
42656
  onClose();
42554
42657
  }, [config, onClose]);
@@ -42575,7 +42678,7 @@ var MobileBurgerMenu = React129.default.memo(function MobileBurgerMenu2({
42575
42678
  ),
42576
42679
  "aria-current": isActive ? "page" : void 0,
42577
42680
  children: [
42578
- item.icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0 size-4 flex items-center justify-center", children: React129.default.cloneElement(item.icon, {
42681
+ item.icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0 size-4 flex items-center justify-center", children: React126.default.cloneElement(item.icon, {
42579
42682
  size: 16,
42580
42683
  color: isActive && !disabled ? "var(--color-accent-primary)" : "var(--color-text-secondary)"
42581
42684
  }) }),
@@ -42588,7 +42691,7 @@ var MobileBurgerMenu = React129.default.memo(function MobileBurgerMenu2({
42588
42691
  item.id
42589
42692
  );
42590
42693
  };
42591
- const renderNavigationGrid = (items) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 gap-3", children: items.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React129.default.Fragment, { children: renderNavigationItem(item, true) }, item.id)) });
42694
+ const renderNavigationGrid = (items) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 gap-3", children: items.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: renderNavigationItem(item, true) }, item.id)) });
42592
42695
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
42593
42696
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42594
42697
  "div",
@@ -42678,9 +42781,9 @@ var MobileBurgerMenu = React129.default.memo(function MobileBurgerMenu2({
42678
42781
  ]
42679
42782
  }
42680
42783
  ),
42681
- _optionalChain([config, 'access', _1046 => _1046.topSlot, 'optionalCall', _1047 => _1047({ minimized: false })]),
42784
+ _optionalChain([config, 'access', _1040 => _1040.topSlot, 'optionalCall', _1041 => _1041({ minimized: false })]),
42682
42785
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { "aria-label": "Primary navigation", children: renderNavigationGrid(primaryItems) }),
42683
- secondaryItems.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { "aria-label": "Secondary navigation", className: "flex flex-col gap-3", children: secondaryItems.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React129.default.Fragment, { children: renderNavigationItem(item, false) }, item.id)) }),
42786
+ secondaryItems.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { "aria-label": "Secondary navigation", className: "flex flex-col gap-3", children: secondaryItems.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React126.default.Fragment, { children: renderNavigationItem(item, false) }, item.id)) }),
42684
42787
  onLogout && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
42685
42788
  "button",
42686
42789
  {
@@ -43146,7 +43249,7 @@ var ShellTypeBadge = ({
43146
43249
  className,
43147
43250
  iconClassName
43148
43251
  }) => {
43149
- const normalizedType = _optionalChain([shellType, 'optionalAccess', _1048 => _1048.toUpperCase, 'call', _1049 => _1049()]);
43252
+ const normalizedType = _optionalChain([shellType, 'optionalAccess', _1042 => _1042.toUpperCase, 'call', _1043 => _1043()]);
43150
43253
  const label = getShellLabel(normalizedType);
43151
43254
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
43152
43255
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
@@ -43363,7 +43466,7 @@ function OnboardingStepCard({
43363
43466
  onSkip,
43364
43467
  className
43365
43468
  }) {
43366
- const [isProcessing, setIsProcessing] = React129.default.useState(false);
43469
+ const [isProcessing, setIsProcessing] = React126.default.useState(false);
43367
43470
  const handleAction = async (e) => {
43368
43471
  e.stopPropagation();
43369
43472
  setIsProcessing(true);
@@ -43475,7 +43578,7 @@ function OnboardingWalkthrough({
43475
43578
  const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
43476
43579
  const lastCompletionStatusRef = _react.useRef.call(void 0, null);
43477
43580
  const actionInProgressRef = _react.useRef.call(void 0, /* @__PURE__ */ new Set());
43478
- React129.default.useEffect(() => {
43581
+ React126.default.useEffect(() => {
43479
43582
  if (isLoadingCompletion) {
43480
43583
  hasAutoMarkedRef.current = false;
43481
43584
  return;
@@ -43533,12 +43636,12 @@ function OnboardingWalkthrough({
43533
43636
  }
43534
43637
  }, [state.completedSteps, markComplete]);
43535
43638
  const handleStepSkip = (step) => {
43536
- _optionalChain([step, 'access', _1050 => _1050.onSkip, 'optionalCall', _1051 => _1051()]);
43639
+ _optionalChain([step, 'access', _1044 => _1044.onSkip, 'optionalCall', _1045 => _1045()]);
43537
43640
  markSkipped(step.id);
43538
43641
  };
43539
43642
  const handleDismiss = () => {
43540
43643
  dismissOnboarding();
43541
- _optionalChain([onDismiss, 'optionalCall', _1052 => _1052()]);
43644
+ _optionalChain([onDismiss, 'optionalCall', _1046 => _1046()]);
43542
43645
  };
43543
43646
  if (state.dismissed) {
43544
43647
  return null;
@@ -43606,7 +43709,7 @@ var LOG_SEVERITY_LABELS = {
43606
43709
 
43607
43710
  // src/components/log-severity-dot.tsx
43608
43711
 
43609
- var LogSeverityDot = React125.forwardRef(({ severity, size: size2 = "md", className }, ref) => {
43712
+ var LogSeverityDot = React122.forwardRef(({ severity, size: size2 = "md", className }, ref) => {
43610
43713
  const sizeClasses2 = {
43611
43714
  sm: "w-4 h-4",
43612
43715
  md: "w-6 h-6",
@@ -43668,7 +43771,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
43668
43771
  onKeyDown: (e) => {
43669
43772
  if (e.key === "Enter" || e.key === " ") {
43670
43773
  e.preventDefault();
43671
- _optionalChain([onClick, 'optionalCall', _1053 => _1053()]);
43774
+ _optionalChain([onClick, 'optionalCall', _1047 => _1047()]);
43672
43775
  }
43673
43776
  },
43674
43777
  children: [
@@ -43696,7 +43799,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
43696
43799
  )
43697
43800
  ] });
43698
43801
  };
43699
- var LogsList = React126.forwardRef(({
43802
+ var LogsList = React123.forwardRef(({
43700
43803
  logs,
43701
43804
  maxHeight = "400px",
43702
43805
  showConnector = true,
@@ -43705,7 +43808,7 @@ var LogsList = React126.forwardRef(({
43705
43808
  emptyMessage = "No logs to display",
43706
43809
  className
43707
43810
  }, ref) => {
43708
- const containerRef = React126.useRef(null);
43811
+ const containerRef = React123.useRef(null);
43709
43812
  const isFullHeight = maxHeight === "100%";
43710
43813
  const getContainerStyles = () => {
43711
43814
  if (isFullHeight) return void 0;
@@ -43769,7 +43872,7 @@ var LogsList = React126.forwardRef(({
43769
43872
  log,
43770
43873
  isLast: index === logs.length - 1,
43771
43874
  showConnector,
43772
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _1054 => _1054(log)])
43875
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _1048 => _1048(log)])
43773
43876
  },
43774
43877
  log.id
43775
43878
  ))
@@ -43877,11 +43980,11 @@ function ServiceCardRowItem({ row }) {
43877
43980
  _chunkKI4EGKNVcjs.init_cn.call(void 0, );
43878
43981
 
43879
43982
 
43880
- var Slider = React128.forwardRef(
43983
+ var Slider = React125.forwardRef(
43881
43984
  ({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
43882
43985
  const handleChange = (e) => {
43883
43986
  const newValue = [Number(e.target.value)];
43884
- _optionalChain([onValueChange, 'optionalCall', _1055 => _1055(newValue)]);
43987
+ _optionalChain([onValueChange, 'optionalCall', _1049 => _1049(newValue)]);
43885
43988
  };
43886
43989
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
43887
43990
  "input",
@@ -44268,7 +44371,7 @@ function CursorPaginationSimple({
44268
44371
  {
44269
44372
  variant: "transparent",
44270
44373
  size: "icon",
44271
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _1056 => _1056("")]),
44374
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _1050 => _1050("")]),
44272
44375
  disabled: !hasPreviousPage || loading,
44273
44376
  className: "h-8 w-8",
44274
44377
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -44280,7 +44383,7 @@ function CursorPaginationSimple({
44280
44383
  {
44281
44384
  variant: "transparent",
44282
44385
  size: "icon",
44283
- onClick: () => _optionalChain([onNext, 'optionalCall', _1057 => _1057("")]),
44386
+ onClick: () => _optionalChain([onNext, 'optionalCall', _1051 => _1051("")]),
44284
44387
  disabled: !hasNextPage || loading,
44285
44388
  className: "h-8 w-8",
44286
44389
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -44300,8 +44403,8 @@ function TableEmptyState({ message: message2, icon, action, className }) {
44300
44403
  icon: _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, {}))),
44301
44404
  title: _nullishCoalesce(message2, () => ( "No results found")),
44302
44405
  description: message2 == null ? "Try adjusting your search or filters" : void 0,
44303
- buttonLabel: _optionalChain([action, 'optionalAccess', _1058 => _1058.label]),
44304
- onButtonClick: _optionalChain([action, 'optionalAccess', _1059 => _1059.onClick]),
44406
+ buttonLabel: _optionalChain([action, 'optionalAccess', _1052 => _1052.label]),
44407
+ onButtonClick: _optionalChain([action, 'optionalAccess', _1053 => _1053.onClick]),
44305
44408
  className: _chunkKI4EGKNVcjs.cn.call(void 0, "py-[var(--spacing-system-xxl)]", className)
44306
44409
  }
44307
44410
  );
@@ -44322,7 +44425,7 @@ function TableColumnFilterDropdown({
44322
44425
  placement = "bottom-start",
44323
44426
  dropdownClassName = "min-w-[240px]"
44324
44427
  }) {
44325
- const activeCount = _optionalChain([filters, 'optionalAccess', _1060 => _1060[columnKey], 'optionalAccess', _1061 => _1061.length]) || 0;
44428
+ const activeCount = _optionalChain([filters, 'optionalAccess', _1054 => _1054[columnKey], 'optionalAccess', _1055 => _1055.length]) || 0;
44326
44429
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
44327
44430
  FiltersDropdown,
44328
44431
  {
@@ -44365,7 +44468,7 @@ function TableColumnFilterDropdown({
44365
44468
  delete newFilters[columnKey];
44366
44469
  onFilterChange(newFilters);
44367
44470
  },
44368
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _1062 => _1062[columnKey]]) || [] },
44471
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _1056 => _1056[columnKey]]) || [] },
44369
44472
  placement,
44370
44473
  dropdownClassName
44371
44474
  }
@@ -44575,7 +44678,7 @@ function TableCardSkeleton({
44575
44678
  className,
44576
44679
  rowClassName
44577
44680
  }) {
44578
- const primaryKey = _optionalChain([(_nullishCoalesce(columns.find((c) => /flex-(1|\[)/.test(c.width || "")), () => ( columns[0]))), 'optionalAccess', _1063 => _1063.key]);
44681
+ const primaryKey = _optionalChain([(_nullishCoalesce(columns.find((c) => /flex-(1|\[)/.test(c.width || "")), () => ( columns[0]))), 'optionalAccess', _1057 => _1057.key]);
44579
44682
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
44580
44683
  "div",
44581
44684
  {
@@ -44668,7 +44771,7 @@ function TableRow({
44668
44771
  const keys = column.key.split(".");
44669
44772
  let value = item;
44670
44773
  for (const key of keys) {
44671
- value = _optionalChain([value, 'optionalAccess', _1064 => _1064[key]]);
44774
+ value = _optionalChain([value, 'optionalAccess', _1058 => _1058[key]]);
44672
44775
  }
44673
44776
  if (value === null || value === void 0) {
44674
44777
  return "-";
@@ -44757,7 +44860,7 @@ function useTableMotion(enabled) {
44757
44860
  // src/components/ui/table/table.tsx
44758
44861
 
44759
44862
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
44760
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _1065 => _1065.length])) || Boolean(renderRowActions);
44863
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _1059 => _1059.length])) || Boolean(renderRowActions);
44761
44864
  const result = [...columns];
44762
44865
  if (hasActions) {
44763
44866
  const actionsColumn = {
@@ -44853,7 +44956,7 @@ function Table({
44853
44956
  return rowKey(item);
44854
44957
  }
44855
44958
  const key = item[rowKey];
44856
- return _optionalChain([key, 'optionalAccess', _1066 => _1066.toString, 'call', _1067 => _1067()]) || index.toString();
44959
+ return _optionalChain([key, 'optionalAccess', _1060 => _1060.toString, 'call', _1061 => _1061()]) || index.toString();
44857
44960
  };
44858
44961
  const getRowClassName = (item, index) => {
44859
44962
  if (typeof rowClassName === "function") {
@@ -44887,23 +44990,23 @@ function Table({
44887
44990
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
44888
44991
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
44889
44992
  const sentinelRef = _react.useRef.call(void 0, null);
44890
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _1068 => _1068.onLoadMore]));
44891
- onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _1069 => _1069.onLoadMore]);
44993
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _1062 => _1062.onLoadMore]));
44994
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _1063 => _1063.onLoadMore]);
44892
44995
  _react.useEffect.call(void 0, () => {
44893
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _1070 => _1070.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
44996
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _1064 => _1064.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
44894
44997
  const sentinel = sentinelRef.current;
44895
44998
  if (!sentinel) return;
44896
44999
  const observer = new IntersectionObserver(
44897
45000
  (entries) => {
44898
- if (_optionalChain([entries, 'access', _1071 => _1071[0], 'optionalAccess', _1072 => _1072.isIntersecting])) {
44899
- _optionalChain([onLoadMoreRef, 'access', _1073 => _1073.current, 'optionalCall', _1074 => _1074()]);
45001
+ if (_optionalChain([entries, 'access', _1065 => _1065[0], 'optionalAccess', _1066 => _1066.isIntersecting])) {
45002
+ _optionalChain([onLoadMoreRef, 'access', _1067 => _1067.current, 'optionalCall', _1068 => _1068()]);
44900
45003
  }
44901
45004
  },
44902
45005
  { rootMargin: "200px" }
44903
45006
  );
44904
45007
  observer.observe(sentinel);
44905
45008
  return () => observer.disconnect();
44906
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _1075 => _1075.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _1076 => _1076.isFetchingNextPage])]);
45009
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _1069 => _1069.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _1070 => _1070.isFetchingNextPage])]);
44907
45010
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
44908
45011
  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: [
44909
45012
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: [
@@ -44973,14 +45076,14 @@ function Table({
44973
45076
  selected: isRowSelected(item),
44974
45077
  onSelect: handleSelectRow,
44975
45078
  animateRowReorder,
44976
- motionDiv: _optionalChain([tableMotion, 'optionalAccess', _1077 => _1077.motionDiv])
45079
+ motionDiv: _optionalChain([tableMotion, 'optionalAccess', _1071 => _1071.motionDiv])
44977
45080
  },
44978
45081
  getRowKey(item, index)
44979
45082
  ));
44980
- const LayoutGroup = _optionalChain([tableMotion, 'optionalAccess', _1078 => _1078.LayoutGroup]);
45083
+ const LayoutGroup = _optionalChain([tableMotion, 'optionalAccess', _1072 => _1072.LayoutGroup]);
44981
45084
  return animateRowReorder && LayoutGroup ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LayoutGroup, { children: rows }) : rows;
44982
45085
  })(),
44983
- _optionalChain([infiniteScroll, 'optionalAccess', _1079 => _1079.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
45086
+ _optionalChain([infiniteScroll, 'optionalAccess', _1073 => _1073.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
44984
45087
  TableCardSkeleton,
44985
45088
  {
44986
45089
  columns,
@@ -44989,7 +45092,7 @@ function Table({
44989
45092
  hasChevron: Boolean(rowHref)
44990
45093
  }
44991
45094
  ),
44992
- _optionalChain([infiniteScroll, 'optionalAccess', _1080 => _1080.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
45095
+ _optionalChain([infiniteScroll, 'optionalAccess', _1074 => _1074.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
44993
45096
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
44994
45097
  "div",
44995
45098
  {
@@ -45347,7 +45450,7 @@ function QueryReportTable({
45347
45450
  );
45348
45451
  const handleExport = () => {
45349
45452
  exportToCSV(data, columns, exportFilename);
45350
- _optionalChain([onExport, 'optionalCall', _1081 => _1081()]);
45453
+ _optionalChain([onExport, 'optionalCall', _1075 => _1075()]);
45351
45454
  };
45352
45455
  const tableMinWidth = columns.length * (columnWidth + 16);
45353
45456
  const {
@@ -45539,7 +45642,7 @@ function DataTableColumnFilter({
45539
45642
  pending = false
45540
45643
  }) {
45541
45644
  const currentValue = column.getFilterValue();
45542
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _1082 => _1082.length]), () => ( 0));
45645
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _1076 => _1076.length]), () => ( 0));
45543
45646
  const sections = _react.useMemo.call(void 0,
45544
45647
  () => [
45545
45648
  {
@@ -45674,7 +45777,7 @@ function DataTableHeader({
45674
45777
  );
45675
45778
  }
45676
45779
  function keepsCellOnTablet(meta) {
45677
- return Boolean(_optionalChain([meta, 'optionalAccess', _1083 => _1083.filter])) || _optionalChain([meta, 'optionalAccess', _1084 => _1084.alwaysShowHeader]) === true;
45780
+ return Boolean(_optionalChain([meta, 'optionalAccess', _1077 => _1077.filter])) || _optionalChain([meta, 'optionalAccess', _1078 => _1078.alwaysShowHeader]) === true;
45678
45781
  }
45679
45782
  var SHOW_FROM = {
45680
45783
  md: "md:flex",
@@ -45712,11 +45815,11 @@ function HeaderCell({ header, sort, onSortChange }) {
45712
45815
  if (header.isPlaceholder) return null;
45713
45816
  const column = header.column;
45714
45817
  const meta = column.columnDef.meta;
45715
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _1085 => _1085.filter]));
45818
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _1079 => _1079.filter]));
45716
45819
  const keepOnTablet = keepsCellOnTablet(meta);
45717
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _1086 => _1086.align]), () => ( "left"));
45718
- const canSort = _optionalChain([meta, 'optionalAccess', _1087 => _1087.sortable]) === true;
45719
- const sortDir = _optionalChain([sort, 'optionalAccess', _1088 => _1088.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
45820
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _1080 => _1080.align]), () => ( "left"));
45821
+ const canSort = _optionalChain([meta, 'optionalAccess', _1081 => _1081.sortable]) === true;
45822
+ const sortDir = _optionalChain([sort, 'optionalAccess', _1082 => _1082.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
45720
45823
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
45721
45824
  "div",
45722
45825
  {
@@ -45724,7 +45827,7 @@ function HeaderCell({ header, sort, onSortChange }) {
45724
45827
  "items-stretch",
45725
45828
  // Cells are hidden rather than dropped from the tree, so which columns
45726
45829
  // exist never depends on when an effect ran.
45727
- getCellVisibilityClasses(keepOnTablet, _optionalChain([meta, 'optionalAccess', _1089 => _1089.hideAt])),
45830
+ getCellVisibilityClasses(keepOnTablet, _optionalChain([meta, 'optionalAccess', _1083 => _1083.hideAt])),
45728
45831
  // Width applies from lg only. Stated as "always, neutralized below lg"
45729
45832
  // because `meta.width` is an opaque consumer string that cannot be
45730
45833
  // prefixed. Only `keepOnTablet` cells need the override — the rest are
@@ -45742,9 +45845,9 @@ function HeaderCell({ header, sort, onSortChange }) {
45742
45845
  // Specificity rather than `!important`: it stays a normal declaration, so a
45743
45846
  // consumer that genuinely needs a tablet width can still take it back with a
45744
45847
  // more specific rule — `!important` could only be answered with another one.
45745
- _optionalChain([meta, 'optionalAccess', _1090 => _1090.width]) || "flex-1 min-w-0",
45848
+ _optionalChain([meta, 'optionalAccess', _1084 => _1084.width]) || "flex-1 min-w-0",
45746
45849
  keepOnTablet && "max-lg:[&&]:w-auto max-lg:[&&]:flex-none max-lg:[&&]:basis-auto",
45747
- _optionalChain([meta, 'optionalAccess', _1091 => _1091.headerClassName])
45850
+ _optionalChain([meta, 'optionalAccess', _1085 => _1085.headerClassName])
45748
45851
  ),
45749
45852
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
45750
45853
  DataTableColumnFilter,
@@ -45768,7 +45871,7 @@ function HeaderCell({ header, sort, onSortChange }) {
45768
45871
  keepOnTablet && "max-lg:justify-start",
45769
45872
  canSort && "group cursor-pointer"
45770
45873
  ),
45771
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _1092 => _1092(column.id)]) : void 0,
45874
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _1086 => _1086(column.id)]) : void 0,
45772
45875
  children: [
45773
45876
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
45774
45877
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -45834,7 +45937,7 @@ function DataTableSkeleton({
45834
45937
  }) {
45835
45938
  const table = useDataTableContext();
45836
45939
  const columns = table.getVisibleFlatColumns();
45837
- const firstColumnId = _optionalChain([columns, 'access', _1093 => _1093[0], 'optionalAccess', _1094 => _1094.id]);
45940
+ const firstColumnId = _optionalChain([columns, 'access', _1087 => _1087[0], 'optionalAccess', _1088 => _1088.id]);
45838
45941
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
45839
45942
  "div",
45840
45943
  {
@@ -45859,13 +45962,13 @@ function DataTableSkeleton({
45859
45962
  {
45860
45963
  className: _chunkKI4EGKNVcjs.cn.call(void 0,
45861
45964
  "flex flex-col justify-center shrink-0",
45862
- _optionalChain([meta, 'optionalAccess', _1095 => _1095.width]) || "flex-1",
45965
+ _optionalChain([meta, 'optionalAccess', _1089 => _1089.width]) || "flex-1",
45863
45966
  // Same responsive hiding the real header and row apply.
45864
45967
  // Without it a `hideAt` column was drawn in the skeleton and
45865
45968
  // absent from the loaded table, so below that breakpoint the
45866
45969
  // remaining columns were sized against a different total and
45867
45970
  // the whole row re-laid-out the moment data arrived.
45868
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _1096 => _1096.hideAt]))
45971
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _1090 => _1090.hideAt]))
45869
45972
  ),
45870
45973
  children: [
45871
45974
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
@@ -45916,7 +46019,7 @@ function DataTableRowImpl({
45916
46019
  const handleClick = _react.useCallback.call(void 0,
45917
46020
  (e) => {
45918
46021
  const target = e.target;
45919
- if (!_optionalChain([containerRef, 'access', _1097 => _1097.current, 'optionalAccess', _1098 => _1098.contains, 'call', _1099 => _1099(target)])) {
46022
+ if (!_optionalChain([containerRef, 'access', _1091 => _1091.current, 'optionalAccess', _1092 => _1092.contains, 'call', _1093 => _1093(target)])) {
45920
46023
  if (isLinkMode) e.preventDefault();
45921
46024
  return;
45922
46025
  }
@@ -45924,7 +46027,7 @@ function DataTableRowImpl({
45924
46027
  if (isLinkMode) e.preventDefault();
45925
46028
  return;
45926
46029
  }
45927
- _optionalChain([onClick, 'optionalCall', _1100 => _1100(row.original)]);
46030
+ _optionalChain([onClick, 'optionalCall', _1094 => _1094(row.original)]);
45928
46031
  },
45929
46032
  [onClick, row.original, isLinkMode]
45930
46033
  );
@@ -45950,10 +46053,10 @@ function DataTableRowImpl({
45950
46053
  {
45951
46054
  className: _chunkKI4EGKNVcjs.cn.call(void 0,
45952
46055
  "flex flex-col overflow-hidden",
45953
- alignJustify(_optionalChain([meta, 'optionalAccess', _1101 => _1101.align])),
45954
- _optionalChain([meta, 'optionalAccess', _1102 => _1102.width]) || "flex-1 min-w-0",
45955
- _optionalChain([meta, 'optionalAccess', _1103 => _1103.cellClassName]),
45956
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _1104 => _1104.hideAt]))
46056
+ alignJustify(_optionalChain([meta, 'optionalAccess', _1095 => _1095.align])),
46057
+ _optionalChain([meta, 'optionalAccess', _1096 => _1096.width]) || "flex-1 min-w-0",
46058
+ _optionalChain([meta, 'optionalAccess', _1097 => _1097.cellClassName]),
46059
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _1098 => _1098.hideAt]))
45957
46060
  ),
45958
46061
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
45959
46062
  },
@@ -46033,7 +46136,7 @@ function DataTableBody({
46033
46136
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkKI4EGKNVcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
46034
46137
  rows.map((row, index) => {
46035
46138
  const item = row.original;
46036
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _1105 => _1105(item)]), () => ( void 0));
46139
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _1099 => _1099(item)]), () => ( void 0));
46037
46140
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
46038
46141
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
46039
46142
  DataTableRow,
@@ -46044,7 +46147,7 @@ function DataTableBody({
46044
46147
  compact,
46045
46148
  autoHeight,
46046
46149
  className: cls,
46047
- subRow: _optionalChain([renderSubRow, 'optionalCall', _1106 => _1106(item)])
46150
+ subRow: _optionalChain([renderSubRow, 'optionalCall', _1100 => _1100(item)])
46048
46151
  },
46049
46152
  row.id
46050
46153
  );
@@ -46101,7 +46204,7 @@ function DataTableInfiniteFooter({
46101
46204
  if (!sentinel) return;
46102
46205
  const observer = new IntersectionObserver(
46103
46206
  (entries) => {
46104
- if (_optionalChain([entries, 'access', _1107 => _1107[0], 'optionalAccess', _1108 => _1108.isIntersecting])) onLoadMoreRef.current();
46207
+ if (_optionalChain([entries, 'access', _1101 => _1101[0], 'optionalAccess', _1102 => _1102.isIntersecting])) onLoadMoreRef.current();
46105
46208
  },
46106
46209
  { rootMargin }
46107
46210
  );
@@ -46149,7 +46252,7 @@ function DataTableRowCount({
46149
46252
  const table = useDataTableContext();
46150
46253
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
46151
46254
  if (hideWhenEmpty && count === 0) return null;
46152
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _1109 => _1109(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
46255
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _1103 => _1103(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
46153
46256
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
46154
46257
  "span",
46155
46258
  {
@@ -46280,13 +46383,13 @@ function SearchInput({
46280
46383
  limitTags = "auto",
46281
46384
  getLimitTagsText = (more) => `+${more}`
46282
46385
  }) {
46283
- const [internalValue, setInternalValue] = React131.useState(defaultValue);
46386
+ const [internalValue, setInternalValue] = React128.useState(defaultValue);
46284
46387
  const currentValue = onChange ? _nullishCoalesce(value, () => ( "")) : internalValue;
46285
46388
  const debouncedValue = _chunk5RJUHUCIcjs.useDebounce.call(void 0, currentValue, debounceMs);
46286
- const [isOpen, setIsOpen] = React131.useState(false);
46287
- const [highlightedIndex, setHighlightedIndex] = React131.useState(-1);
46389
+ const [isOpen, setIsOpen] = React128.useState(false);
46390
+ const [highlightedIndex, setHighlightedIndex] = React128.useState(-1);
46288
46391
  const keyboardPadding = _chunk5RJUHUCIcjs.useKeyboardCollisionPadding.call(void 0, );
46289
- const containerRef = React131.useRef(null);
46392
+ const containerRef = React128.useRef(null);
46290
46393
  const currentPlaceholder = filterChips.length > 0 ? "Add filter..." : placeholder;
46291
46394
  const {
46292
46395
  visibleCount: rawVisibleCount,
@@ -46303,14 +46406,14 @@ function SearchInput({
46303
46406
  placeholder: filterChips.length > 0 ? "" : placeholder
46304
46407
  });
46305
46408
  const visibleCount = filterChips.length > 0 ? Math.max(1, rawVisibleCount) : rawVisibleCount;
46306
- const hiddenTagsRef = React131.useRef(null);
46307
- const hiddenTagsPopupRef = React131.useRef(null);
46308
- const [showHiddenTags, setShowHiddenTags] = React131.useState(false);
46309
- React131.useEffect(() => {
46409
+ const hiddenTagsRef = React128.useRef(null);
46410
+ const hiddenTagsPopupRef = React128.useRef(null);
46411
+ const [showHiddenTags, setShowHiddenTags] = React128.useState(false);
46412
+ React128.useEffect(() => {
46310
46413
  if (!showHiddenTags) return;
46311
46414
  const handleClick = (e) => {
46312
46415
  const target = e.target;
46313
- if (!_optionalChain([hiddenTagsRef, 'access', _1110 => _1110.current, 'optionalAccess', _1111 => _1111.contains, 'call', _1112 => _1112(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _1113 => _1113.current, 'optionalAccess', _1114 => _1114.contains, 'call', _1115 => _1115(target)])) {
46416
+ if (!_optionalChain([hiddenTagsRef, 'access', _1104 => _1104.current, 'optionalAccess', _1105 => _1105.contains, 'call', _1106 => _1106(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _1107 => _1107.current, 'optionalAccess', _1108 => _1108.contains, 'call', _1109 => _1109(target)])) {
46314
46417
  setShowHiddenTags(false);
46315
46418
  }
46316
46419
  };
@@ -46320,7 +46423,7 @@ function SearchInput({
46320
46423
  const hiddenCount = filterChips.length - visibleCount;
46321
46424
  const visibleChips = filterChips.slice(0, visibleCount);
46322
46425
  const hiddenChips = filterChips.slice(visibleCount);
46323
- const { flatResults, groups } = React131.useMemo(() => {
46426
+ const { flatResults, groups } = React128.useMemo(() => {
46324
46427
  if (!groupBy) return { flatResults: results, groups: null };
46325
46428
  const grouped = /* @__PURE__ */ new Map();
46326
46429
  for (const r of results) {
@@ -46337,7 +46440,7 @@ function SearchInput({
46337
46440
  const meetsMinQuery = debouncedValue.length >= minQueryLength;
46338
46441
  const autoShow = meetsMinQuery;
46339
46442
  const dropdownVisible = _nullishCoalesce(showDropdownProp, () => ( (isOpen && autoShow)));
46340
- React131.useEffect(() => {
46443
+ React128.useEffect(() => {
46341
46444
  setHighlightedIndex(-1);
46342
46445
  }, [flatResults.length]);
46343
46446
  const handleChange = (e) => {
@@ -46358,10 +46461,10 @@ function SearchInput({
46358
46461
  } else {
46359
46462
  setInternalValue("");
46360
46463
  }
46361
- _optionalChain([inputRef, 'access', _1116 => _1116.current, 'optionalAccess', _1117 => _1117.focus, 'call', _1118 => _1118()]);
46464
+ _optionalChain([inputRef, 'access', _1110 => _1110.current, 'optionalAccess', _1111 => _1111.focus, 'call', _1112 => _1112()]);
46362
46465
  };
46363
46466
  const handleResultClick = (result, e) => {
46364
- _optionalChain([onResultSelect, 'optionalCall', _1119 => _1119(
46467
+ _optionalChain([onResultSelect, 'optionalCall', _1113 => _1113(
46365
46468
  result,
46366
46469
  e ? {
46367
46470
  metaKey: e.metaKey,
@@ -46393,7 +46496,7 @@ function SearchInput({
46393
46496
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
46394
46497
  handleResultClick(flatResults[highlightedIndex]);
46395
46498
  } else {
46396
- _optionalChain([onSubmit, 'optionalCall', _1120 => _1120(currentValue)]);
46499
+ _optionalChain([onSubmit, 'optionalCall', _1114 => _1114(currentValue)]);
46397
46500
  }
46398
46501
  break;
46399
46502
  case "Escape":
@@ -46471,7 +46574,7 @@ function SearchInput({
46471
46574
  dropdownVisible && "!border-ods-accent"
46472
46575
  ),
46473
46576
  onClick: () => {
46474
- _optionalChain([inputRef, 'access', _1121 => _1121.current, 'optionalAccess', _1122 => _1122.focus, 'call', _1123 => _1123()]);
46577
+ _optionalChain([inputRef, 'access', _1115 => _1115.current, 'optionalAccess', _1116 => _1116.focus, 'call', _1117 => _1117()]);
46475
46578
  setIsOpen(true);
46476
46579
  },
46477
46580
  children: [
@@ -46557,10 +46660,10 @@ function SearchInput({
46557
46660
  collisionPadding: { bottom: keyboardPadding },
46558
46661
  onOpenAutoFocus: (e) => {
46559
46662
  e.preventDefault();
46560
- _optionalChain([inputRef, 'access', _1124 => _1124.current, 'optionalAccess', _1125 => _1125.focus, 'call', _1126 => _1126()]);
46663
+ _optionalChain([inputRef, 'access', _1118 => _1118.current, 'optionalAccess', _1119 => _1119.focus, 'call', _1120 => _1120()]);
46561
46664
  },
46562
46665
  onInteractOutside: (e) => {
46563
- if (_optionalChain([containerRef, 'access', _1127 => _1127.current, 'optionalAccess', _1128 => _1128.contains, 'call', _1129 => _1129(e.target)])) {
46666
+ if (_optionalChain([containerRef, 'access', _1121 => _1121.current, 'optionalAccess', _1122 => _1122.contains, 'call', _1123 => _1123(e.target)])) {
46564
46667
  e.preventDefault();
46565
46668
  }
46566
46669
  },
@@ -46577,10 +46680,10 @@ function SearchInput({
46577
46680
  ref: hiddenTagsPopupRef,
46578
46681
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
46579
46682
  style: {
46580
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _1130 => _1130.current, 'optionalAccess', _1131 => _1131.getBoundingClientRect, 'call', _1132 => _1132(), 'access', _1133 => _1133.left]), () => ( 0))) : 0
46683
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _1124 => _1124.current, 'optionalAccess', _1125 => _1125.getBoundingClientRect, 'call', _1126 => _1126(), 'access', _1127 => _1127.left]), () => ( 0))) : 0
46581
46684
  },
46582
46685
  onRemove: (value2) => {
46583
- _optionalChain([onFilterRemove, 'optionalCall', _1134 => _1134(value2)]);
46686
+ _optionalChain([onFilterRemove, 'optionalCall', _1128 => _1128(value2)]);
46584
46687
  if (hiddenCount <= 1) setShowHiddenTags(false);
46585
46688
  }
46586
46689
  }
@@ -46631,7 +46734,7 @@ function FilterListItem({
46631
46734
  }) {
46632
46735
  const handleToggle = () => {
46633
46736
  if (disabled) return;
46634
- _optionalChain([onToggle, 'optionalCall', _1135 => _1135(!selected)]);
46737
+ _optionalChain([onToggle, 'optionalCall', _1129 => _1129(!selected)]);
46635
46738
  };
46636
46739
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
46637
46740
  "div",
@@ -46667,7 +46770,7 @@ function FilterListItem({
46667
46770
  "flex items-start gap-[var(--spacing-system-xxs)] text-h6",
46668
46771
  selected ? "text-ods-accent" : "text-ods-text-secondary"
46669
46772
  ),
46670
- children: meta.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React132.Fragment, { children: [
46773
+ children: meta.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React129.Fragment, { children: [
46671
46774
  index > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "aria-hidden": "true", children: "\u2022" }),
46672
46775
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: item })
46673
46776
  ] }, index))
@@ -46678,7 +46781,7 @@ function FilterListItem({
46678
46781
  CheckboxPrimitive4.Root,
46679
46782
  {
46680
46783
  checked: selected,
46681
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _1136 => _1136(c === true)]),
46784
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _1130 => _1130(c === true)]),
46682
46785
  onClick: (e) => e.stopPropagation(),
46683
46786
  disabled,
46684
46787
  "aria-label": title,
@@ -46777,7 +46880,7 @@ function TagSearchInput({
46777
46880
  if (!showHiddenTags) return;
46778
46881
  const handleClick = (e) => {
46779
46882
  const target = e.target;
46780
- if (!_optionalChain([hiddenTagsRef, 'access', _1137 => _1137.current, 'optionalAccess', _1138 => _1138.contains, 'call', _1139 => _1139(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _1140 => _1140.current, 'optionalAccess', _1141 => _1141.contains, 'call', _1142 => _1142(target)])) {
46883
+ if (!_optionalChain([hiddenTagsRef, 'access', _1131 => _1131.current, 'optionalAccess', _1132 => _1132.contains, 'call', _1133 => _1133(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _1134 => _1134.current, 'optionalAccess', _1135 => _1135.contains, 'call', _1136 => _1136(target)])) {
46781
46884
  setShowHiddenTags(false);
46782
46885
  }
46783
46886
  };
@@ -46793,13 +46896,13 @@ function TagSearchInput({
46793
46896
  e.preventDefault();
46794
46897
  onSubmit(searchValue);
46795
46898
  }
46796
- _optionalChain([onKeyDown, 'optionalCall', _1143 => _1143(e)]);
46899
+ _optionalChain([onKeyDown, 'optionalCall', _1137 => _1137(e)]);
46797
46900
  };
46798
46901
  const handleClearAll = (e) => {
46799
46902
  e.stopPropagation();
46800
46903
  e.preventDefault();
46801
- _optionalChain([onClearAll, 'optionalCall', _1144 => _1144()]);
46802
- _optionalChain([inputRef, 'access', _1145 => _1145.current, 'optionalAccess', _1146 => _1146.focus, 'call', _1147 => _1147()]);
46904
+ _optionalChain([onClearAll, 'optionalCall', _1138 => _1138()]);
46905
+ _optionalChain([inputRef, 'access', _1139 => _1139.current, 'optionalAccess', _1140 => _1140.focus, 'call', _1141 => _1141()]);
46803
46906
  };
46804
46907
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
46805
46908
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -46822,7 +46925,7 @@ function TagSearchInput({
46822
46925
  className
46823
46926
  ),
46824
46927
  onClick: () => {
46825
- if (!disabled) _optionalChain([inputRef, 'access', _1148 => _1148.current, 'optionalAccess', _1149 => _1149.focus, 'call', _1150 => _1150()]);
46928
+ if (!disabled) _optionalChain([inputRef, 'access', _1142 => _1142.current, 'optionalAccess', _1143 => _1143.focus, 'call', _1144 => _1144()]);
46826
46929
  },
46827
46930
  children: [
46828
46931
  /* @__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" }) }),
@@ -46895,7 +46998,7 @@ function TagSearchInput({
46895
46998
  items: hiddenTags,
46896
46999
  disabled,
46897
47000
  style: {
46898
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _1151 => _1151.current, 'optionalAccess', _1152 => _1152.getBoundingClientRect, 'call', _1153 => _1153(), 'access', _1154 => _1154.left]), () => ( 0))) : 0
47001
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _1145 => _1145.current, 'optionalAccess', _1146 => _1146.getBoundingClientRect, 'call', _1147 => _1147(), 'access', _1148 => _1148.left]), () => ( 0))) : 0
46899
47002
  },
46900
47003
  onRemove: (value) => {
46901
47004
  onTagRemove(value);
@@ -46996,7 +47099,7 @@ function MarkdownEditor({
46996
47099
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
46997
47100
  _react.useEffect.call(void 0, () => {
46998
47101
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
46999
- if (_optionalChain([mod, 'access', _1155 => _1155.commands, 'optionalAccess', _1156 => _1156.getExtraCommands])) {
47102
+ if (_optionalChain([mod, 'access', _1149 => _1149.commands, 'optionalAccess', _1150 => _1150.getExtraCommands])) {
47000
47103
  setDefaultExtraCommands(mod.commands.getExtraCommands());
47001
47104
  }
47002
47105
  });
@@ -47030,7 +47133,7 @@ function MarkdownEditor({
47030
47133
  const isImage = file.type.startsWith("image/");
47031
47134
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
47032
47135
  insertTextAtCursor(markdown);
47033
- _optionalChain([onFileUploaded, 'optionalCall', _1157 => _1157(url, file.name)]);
47136
+ _optionalChain([onFileUploaded, 'optionalCall', _1151 => _1151(url, file.name)]);
47034
47137
  } catch (error) {
47035
47138
  console.error("File upload failed:", error);
47036
47139
  setUploadProgress("Upload failed. Please try again.");
@@ -47043,7 +47146,7 @@ function MarkdownEditor({
47043
47146
  );
47044
47147
  const handleFileInputChange = _react.useCallback.call(void 0,
47045
47148
  (e) => {
47046
- const file = _optionalChain([e, 'access', _1158 => _1158.target, 'access', _1159 => _1159.files, 'optionalAccess', _1160 => _1160[0]]);
47149
+ const file = _optionalChain([e, 'access', _1152 => _1152.target, 'access', _1153 => _1153.files, 'optionalAccess', _1154 => _1154[0]]);
47047
47150
  if (file) {
47048
47151
  handleFileUpload(file);
47049
47152
  e.target.value = "";
@@ -47054,7 +47157,7 @@ function MarkdownEditor({
47054
47157
  const handlePaste = _react.useCallback.call(void 0,
47055
47158
  (e) => {
47056
47159
  if (!onUploadFile) return;
47057
- const items = _optionalChain([e, 'access', _1161 => _1161.clipboardData, 'optionalAccess', _1162 => _1162.items]);
47160
+ const items = _optionalChain([e, 'access', _1155 => _1155.clipboardData, 'optionalAccess', _1156 => _1156.items]);
47058
47161
  if (!items) return;
47059
47162
  for (const item of items) {
47060
47163
  if (item.type.startsWith("image/")) {
@@ -47079,7 +47182,7 @@ function MarkdownEditor({
47079
47182
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
47080
47183
  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" }),
47081
47184
  execute: () => {
47082
- _optionalChain([fileInputRef, 'access', _1163 => _1163.current, 'optionalAccess', _1164 => _1164.click, 'call', _1165 => _1165()]);
47185
+ _optionalChain([fileInputRef, 'access', _1157 => _1157.current, 'optionalAccess', _1158 => _1158.click, 'call', _1159 => _1159()]);
47083
47186
  }
47084
47187
  } : null;
47085
47188
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -47091,7 +47194,7 @@ function MarkdownEditor({
47091
47194
  const EDGE_ZONE = 60;
47092
47195
  const MAX_SCROLL_SPEED = 15;
47093
47196
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
47094
- let node = _optionalChain([el, 'optionalAccess', _1166 => _1166.parentElement]);
47197
+ let node = _optionalChain([el, 'optionalAccess', _1160 => _1160.parentElement]);
47095
47198
  while (node && node !== document.documentElement) {
47096
47199
  const { overflowY } = window.getComputedStyle(node);
47097
47200
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -47234,7 +47337,7 @@ function matchesAccept(file, accept) {
47234
47337
  });
47235
47338
  }
47236
47339
  function dragHasFiles(e) {
47237
- const types = _optionalChain([e, 'access', _1167 => _1167.dataTransfer, 'optionalAccess', _1168 => _1168.types]);
47340
+ const types = _optionalChain([e, 'access', _1161 => _1161.dataTransfer, 'optionalAccess', _1162 => _1162.types]);
47238
47341
  if (!types) return false;
47239
47342
  for (let i = 0; i < types.length; i++) {
47240
47343
  if (types[i] === "Files") return true;
@@ -47262,11 +47365,11 @@ function FileUpload({
47262
47365
  acceptWindowDrops = false,
47263
47366
  pickFiles
47264
47367
  }) {
47265
- const [dragActive, setDragActive] = React134.useState(false);
47266
- const [validationError, setValidationError] = React134.useState(null);
47267
- const fileInputRef = React134.useRef(null);
47368
+ const [dragActive, setDragActive] = React131.useState(false);
47369
+ const [validationError, setValidationError] = React131.useState(null);
47370
+ const fileInputRef = React131.useRef(null);
47268
47371
  const isManaged = managedFiles !== void 0;
47269
- const files = React134.useMemo(() => {
47372
+ const files = React131.useMemo(() => {
47270
47373
  if (!value) return [];
47271
47374
  return Array.isArray(value) ? value : [value];
47272
47375
  }, [value]);
@@ -47314,7 +47417,7 @@ function FileUpload({
47314
47417
  fileInputRef.current.value = "";
47315
47418
  }
47316
47419
  };
47317
- const handleFilesRef = React134.useRef(handleFiles);
47420
+ const handleFilesRef = React131.useRef(handleFiles);
47318
47421
  handleFilesRef.current = handleFiles;
47319
47422
  const handleDrag = (e) => {
47320
47423
  e.preventDefault();
@@ -47331,11 +47434,11 @@ function FileUpload({
47331
47434
  e.stopPropagation();
47332
47435
  setDragActive(false);
47333
47436
  if (disabled) return;
47334
- if (_optionalChain([e, 'access', _1169 => _1169.dataTransfer, 'access', _1170 => _1170.files, 'optionalAccess', _1171 => _1171.length])) {
47437
+ if (_optionalChain([e, 'access', _1163 => _1163.dataTransfer, 'access', _1164 => _1164.files, 'optionalAccess', _1165 => _1165.length])) {
47335
47438
  handleFiles(e.dataTransfer.files);
47336
47439
  }
47337
47440
  };
47338
- React134.useEffect(() => {
47441
+ React131.useEffect(() => {
47339
47442
  if (!acceptWindowDrops || disabled) return;
47340
47443
  let dragCounter = 0;
47341
47444
  const onWindowDragEnter = (e) => {
@@ -47359,7 +47462,7 @@ function FileUpload({
47359
47462
  e.preventDefault();
47360
47463
  dragCounter = 0;
47361
47464
  setDragActive(false);
47362
- if (_optionalChain([e, 'access', _1172 => _1172.dataTransfer, 'optionalAccess', _1173 => _1173.files, 'optionalAccess', _1174 => _1174.length])) {
47465
+ if (_optionalChain([e, 'access', _1166 => _1166.dataTransfer, 'optionalAccess', _1167 => _1167.files, 'optionalAccess', _1168 => _1168.length])) {
47363
47466
  handleFilesRef.current(e.dataTransfer.files);
47364
47467
  }
47365
47468
  };
@@ -47381,7 +47484,7 @@ function FileUpload({
47381
47484
  };
47382
47485
  }, [acceptWindowDrops, disabled]);
47383
47486
  const handleFileSelect = (e) => {
47384
- if (_optionalChain([e, 'access', _1175 => _1175.target, 'access', _1176 => _1176.files, 'optionalAccess', _1177 => _1177.length])) {
47487
+ if (_optionalChain([e, 'access', _1169 => _1169.target, 'access', _1170 => _1170.files, 'optionalAccess', _1171 => _1171.length])) {
47385
47488
  handleFiles(e.target.files);
47386
47489
  }
47387
47490
  };
@@ -47399,7 +47502,7 @@ function FileUpload({
47399
47502
  const openDialog = async () => {
47400
47503
  if (disabled) return;
47401
47504
  if (!pickFiles) {
47402
- _optionalChain([fileInputRef, 'access', _1178 => _1178.current, 'optionalAccess', _1179 => _1179.click, 'call', _1180 => _1180()]);
47505
+ _optionalChain([fileInputRef, 'access', _1172 => _1172.current, 'optionalAccess', _1173 => _1173.click, 'call', _1174 => _1174()]);
47403
47506
  return;
47404
47507
  }
47405
47508
  try {
@@ -47469,7 +47572,7 @@ function FileUpload({
47469
47572
  "button",
47470
47573
  {
47471
47574
  type: "button",
47472
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _1181 => _1181(entry.id)]),
47575
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _1175 => _1175(entry.id)]),
47473
47576
  className: "shrink-0 text-ods-error hover:opacity-80 transition-opacity",
47474
47577
  "aria-label": `Remove ${entry.fileName}`,
47475
47578
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.TrashIcon, { className: "size-6" })
@@ -47578,10 +47681,10 @@ function ImageUploader({
47578
47681
  className,
47579
47682
  dropzoneClassName
47580
47683
  }) {
47581
- const inputRef = React135.useRef(null);
47582
- const [dragActive, setDragActive] = React135.useState(false);
47583
- const [pressed, setPressed] = React135.useState(false);
47584
- const [validationError, setValidationError] = React135.useState(null);
47684
+ const inputRef = React132.useRef(null);
47685
+ const [dragActive, setDragActive] = React132.useState(false);
47686
+ const [pressed, setPressed] = React132.useState(false);
47687
+ const [validationError, setValidationError] = React132.useState(null);
47585
47688
  const interactive = !disabled && !loading;
47586
47689
  const resolvedValue = _chunk5RJUHUCIcjs.useAuthedImageSrc.call(void 0, value);
47587
47690
  const hasImage = Boolean(value);
@@ -47601,7 +47704,7 @@ function ImageUploader({
47601
47704
  onChange(file);
47602
47705
  };
47603
47706
  const handleFileSelect = (e) => {
47604
- validateAndEmit(_optionalChain([e, 'access', _1182 => _1182.target, 'access', _1183 => _1183.files, 'optionalAccess', _1184 => _1184[0]]));
47707
+ validateAndEmit(_optionalChain([e, 'access', _1176 => _1176.target, 'access', _1177 => _1177.files, 'optionalAccess', _1178 => _1178[0]]));
47605
47708
  if (inputRef.current) inputRef.current.value = "";
47606
47709
  };
47607
47710
  const handleDrag = (e) => {
@@ -47616,11 +47719,11 @@ function ImageUploader({
47616
47719
  e.stopPropagation();
47617
47720
  setDragActive(false);
47618
47721
  if (!interactive) return;
47619
- validateAndEmit(_optionalChain([e, 'access', _1185 => _1185.dataTransfer, 'access', _1186 => _1186.files, 'optionalAccess', _1187 => _1187[0]]));
47722
+ validateAndEmit(_optionalChain([e, 'access', _1179 => _1179.dataTransfer, 'access', _1180 => _1180.files, 'optionalAccess', _1181 => _1181[0]]));
47620
47723
  };
47621
47724
  const openDialog = () => {
47622
47725
  if (!interactive) return;
47623
- _optionalChain([inputRef, 'access', _1188 => _1188.current, 'optionalAccess', _1189 => _1189.click, 'call', _1190 => _1190()]);
47726
+ _optionalChain([inputRef, 'access', _1182 => _1182.current, 'optionalAccess', _1183 => _1183.click, 'call', _1184 => _1184()]);
47624
47727
  };
47625
47728
  const handleRootKeyDown = (e) => {
47626
47729
  if (hasImage || !interactive) return;
@@ -47758,7 +47861,7 @@ _chunkKI4EGKNVcjs.init_cn.call(void 0, );
47758
47861
 
47759
47862
  var Popover2 = PopoverPrimitive7.Root;
47760
47863
  var PopoverTrigger = PopoverPrimitive7.Trigger;
47761
- var PopoverContent = React136.forwardRef(({ className, align = "center", sideOffset = 4, collisionPadding, ...props }, ref) => {
47864
+ var PopoverContent = React133.forwardRef(({ className, align = "center", sideOffset = 4, collisionPadding, ...props }, ref) => {
47762
47865
  const keyboardPadding = _chunk5RJUHUCIcjs.useKeyboardCollisionPadding.call(void 0, );
47763
47866
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive7.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
47764
47867
  PopoverPrimitive7.Content,
@@ -47815,8 +47918,8 @@ function ColorPresetSelect({
47815
47918
  }) {
47816
47919
  const selectedPreset = presets.find((p) => p.key === presetKey);
47817
47920
  const isCustom = !selectedPreset;
47818
- const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _1191 => _1191.label]), () => ( "Custom"));
47819
- const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _1192 => _1192.color]), () => ( value));
47921
+ const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _1185 => _1185.label]), () => ( "Custom"));
47922
+ const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _1186 => _1186.color]), () => ( value));
47820
47923
  const groups = [
47821
47924
  {
47822
47925
  items: [
@@ -47859,8 +47962,8 @@ var FORMATS = ["HEX", "RGB", "HSL"];
47859
47962
  var channelInputClass = "flex-1 min-w-0 [&_input]:text-center [&_input]:tabular-nums";
47860
47963
  var hexInputClass = "flex-1 min-w-0 [&_input]:uppercase";
47861
47964
  function HexInputs({ value, onChange }) {
47862
- const [draft, setDraft] = React137.useState(value);
47863
- React137.useEffect(() => setDraft(value), [value]);
47965
+ const [draft, setDraft] = React134.useState(value);
47966
+ React134.useEffect(() => setDraft(value), [value]);
47864
47967
  const commit = () => {
47865
47968
  const candidate = (draft.startsWith("#") ? draft : `#${draft}`).toLowerCase();
47866
47969
  if (HEX_PATTERN.test(candidate)) onChange(candidate);
@@ -47892,8 +47995,8 @@ function ChannelInput({
47892
47995
  ariaLabel,
47893
47996
  onCommit
47894
47997
  }) {
47895
- const [draft, setDraft] = React137.useState(String(value));
47896
- React137.useEffect(() => setDraft(String(value)), [value]);
47998
+ const [draft, setDraft] = React134.useState(String(value));
47999
+ React134.useEffect(() => setDraft(String(value)), [value]);
47897
48000
  const commit = () => {
47898
48001
  const parsed = Number.parseInt(draft, 10);
47899
48002
  if (!Number.isFinite(parsed)) {
@@ -47953,8 +48056,8 @@ function HslInputs({ value, onChange }) {
47953
48056
  ] });
47954
48057
  }
47955
48058
  function ColorPickerInput({ value, onChange, disabled, className }) {
47956
- const [open, setOpen] = React137.useState(false);
47957
- const [format3, setFormat] = React137.useState("HEX");
48059
+ const [open, setOpen] = React134.useState(false);
48060
+ const [format3, setFormat] = React134.useState("HEX");
47958
48061
  const formatGroups = [
47959
48062
  {
47960
48063
  items: FORMATS.map((f) => ({
@@ -48019,9 +48122,9 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
48019
48122
 
48020
48123
  var dismissOpenTooltip = null;
48021
48124
  function WithLeftTooltip({ content, children }) {
48022
- const [open, setOpen] = React138.useState(false);
48023
- const isTouchRef = React138.useRef(false);
48024
- const close = React138.useCallback(() => setOpen(false), []);
48125
+ const [open, setOpen] = React135.useState(false);
48126
+ const isTouchRef = React135.useRef(false);
48127
+ const close = React135.useCallback(() => setOpen(false), []);
48025
48128
  if (!content) return children;
48026
48129
  const toggleFromTouch = () => {
48027
48130
  setOpen((prev) => {
@@ -48106,7 +48209,7 @@ function TicketStatusConfigRow({
48106
48209
  _chunkDCB4EBA5cjs.Input,
48107
48210
  {
48108
48211
  value: name,
48109
- onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _1193 => _1193(e.target.value)]),
48212
+ onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _1187 => _1187(e.target.value)]),
48110
48213
  disabled: isSystem,
48111
48214
  readOnly: isSystem,
48112
48215
  "aria-label": "Status name",
@@ -48173,8 +48276,8 @@ function TestResultsSkeleton() {
48173
48276
  ] }) });
48174
48277
  }
48175
48278
  function TestResultsTable({ rows, loading }) {
48176
- const columnKeys = React139.useMemo(() => rows.length > 0 ? Object.keys(rows[0]) : [], [rows]);
48177
- const columns = React139.useMemo(() => {
48279
+ const columnKeys = React136.useMemo(() => rows.length > 0 ? Object.keys(rows[0]) : [], [rows]);
48280
+ const columns = React136.useMemo(() => {
48178
48281
  return columnKeys.map((key) => ({
48179
48282
  id: key,
48180
48283
  accessorFn: (row) => row[key],
@@ -48267,10 +48370,10 @@ function TestRunStatusStat({ status, className }) {
48267
48370
  ] });
48268
48371
  }
48269
48372
  function useTestRunState(campaign) {
48270
- const [hasRun, setHasRun] = React139.useState(false);
48271
- const [isStarting, setIsStarting] = React139.useState(false);
48272
- const [durationMs, setDurationMs] = React139.useState(0);
48273
- React139.useEffect(() => {
48373
+ const [hasRun, setHasRun] = React136.useState(false);
48374
+ const [isStarting, setIsStarting] = React136.useState(false);
48375
+ const [durationMs, setDurationMs] = React136.useState(0);
48376
+ React136.useEffect(() => {
48274
48377
  if (!campaign.startedAt || !campaign.isRunning) {
48275
48378
  if (campaign.startedAt && !campaign.isRunning) {
48276
48379
  setDurationMs(Date.now() - campaign.startedAt.getTime());
@@ -48283,7 +48386,7 @@ function useTestRunState(campaign) {
48283
48386
  }, 1e3);
48284
48387
  return () => clearInterval(interval);
48285
48388
  }, [campaign.startedAt, campaign.isRunning]);
48286
- const run = React139.useCallback(async (start) => {
48389
+ const run = React136.useCallback(async (start) => {
48287
48390
  setHasRun(true);
48288
48391
  setDurationMs(0);
48289
48392
  setIsStarting(true);
@@ -48293,11 +48396,11 @@ function useTestRunState(campaign) {
48293
48396
  setIsStarting(false);
48294
48397
  }
48295
48398
  }, []);
48296
- const stop = React139.useCallback(() => {
48399
+ const stop = React136.useCallback(() => {
48297
48400
  setIsStarting(false);
48298
48401
  campaign.stopCampaign();
48299
48402
  }, [campaign.stopCampaign]);
48300
- const reset = React139.useCallback(() => {
48403
+ const reset = React136.useCallback(() => {
48301
48404
  setIsStarting(false);
48302
48405
  campaign.stopCampaign();
48303
48406
  setDurationMs(0);
@@ -48311,7 +48414,7 @@ function useTestRunState(campaign) {
48311
48414
  const showTiming = hasRun && campaign.startedAt !== null && (campaign.isRunning || isFinished);
48312
48415
  const startedLabel = showTiming && campaign.startedAt ? formatTime(campaign.startedAt) : "00:00 PM";
48313
48416
  const durationLabel = showTiming ? formatTestRunDuration(durationMs) : "00:00:00";
48314
- const displayRows = React139.useMemo(
48417
+ const displayRows = React136.useMemo(
48315
48418
  () => campaign.results.map(
48316
48419
  (row) => Object.fromEntries(Object.entries(row).map(([key, value]) => [key.replace(/_/g, " "), value]))
48317
48420
  ),
@@ -48425,8 +48528,8 @@ _chunkKI4EGKNVcjs.init_cn.call(void 0, );
48425
48528
  _chunkKI4EGKNVcjs.init_cn.call(void 0, );
48426
48529
 
48427
48530
  function TicketNoteCard({ note, onEdit, onDelete, className }) {
48428
- const [isEditing, setIsEditing] = React140.useState(false);
48429
- const [editText, setEditText] = React140.useState(note.text);
48531
+ const [isEditing, setIsEditing] = React137.useState(false);
48532
+ const [editText, setEditText] = React137.useState(note.text);
48430
48533
  const handleSave = () => {
48431
48534
  const trimmed = editText.trim();
48432
48535
  if (!trimmed || !onEdit) return;
@@ -48549,7 +48652,7 @@ function TicketNotesSection({
48549
48652
  isAddingNote,
48550
48653
  className
48551
48654
  }) {
48552
- const [noteText, setNoteText] = React141.useState("");
48655
+ const [noteText, setNoteText] = React138.useState("");
48553
48656
  const handleSend = () => {
48554
48657
  const trimmed = noteText.trim();
48555
48658
  if (!trimmed || !onAddNote || isAddingNote) return;
@@ -48659,14 +48762,14 @@ function TicketInfoSection({
48659
48762
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
48660
48763
  SquareAvatar,
48661
48764
  {
48662
- src: _optionalChain([organization, 'optionalAccess', _1194 => _1194.imageSrc]),
48663
- alt: _optionalChain([organization, 'optionalAccess', _1195 => _1195.name]),
48664
- fallback: _optionalChain([organization, 'optionalAccess', _1196 => _1196.name]) || "Org",
48765
+ src: _optionalChain([organization, 'optionalAccess', _1188 => _1188.imageSrc]),
48766
+ alt: _optionalChain([organization, 'optionalAccess', _1189 => _1189.name]),
48767
+ fallback: _optionalChain([organization, 'optionalAccess', _1190 => _1190.name]) || "Org",
48665
48768
  size: "md",
48666
48769
  className: "shrink-0"
48667
48770
  }
48668
48771
  ),
48669
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _1197 => _1197.name]) || "Unassigned", label: "Organization" })
48772
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _1191 => _1191.name]) || "Unassigned", label: "Organization" })
48670
48773
  ] }),
48671
48774
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
48672
48775
  AssigneeDropdown,
@@ -48687,10 +48790,10 @@ function TicketInfoSection({
48687
48790
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
48688
48791
  InfoCell2,
48689
48792
  {
48690
- value: _optionalChain([device, 'optionalAccess', _1198 => _1198.name]) || "Unassigned",
48793
+ value: _optionalChain([device, 'optionalAccess', _1192 => _1192.name]) || "Unassigned",
48691
48794
  label: "Device",
48692
- icon: _optionalChain([device, 'optionalAccess', _1199 => _1199.icon]),
48693
- onClick: _optionalChain([device, 'optionalAccess', _1200 => _1200.onClick])
48795
+ icon: _optionalChain([device, 'optionalAccess', _1193 => _1193.icon]),
48796
+ onClick: _optionalChain([device, 'optionalAccess', _1194 => _1194.onClick])
48694
48797
  }
48695
48798
  ),
48696
48799
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -48788,14 +48891,14 @@ function TakeOverTicketModal({
48788
48891
  isPending = false,
48789
48892
  onConfirm
48790
48893
  }) {
48791
- const [statusId, setStatusId] = React142.useState(null);
48792
- const [assigneeId, setAssigneeId] = React142.useState(null);
48793
- React142.useEffect(() => {
48894
+ const [statusId, setStatusId] = React139.useState(null);
48895
+ const [assigneeId, setAssigneeId] = React139.useState(null);
48896
+ React139.useEffect(() => {
48794
48897
  if (!isOpen) return;
48795
48898
  setStatusId(_nullishCoalesce(initialStatusId, () => ( null)));
48796
48899
  setAssigneeId(_nullishCoalesce(initialAssigneeId, () => ( null)));
48797
48900
  }, [isOpen, initialStatusId, initialAssigneeId]);
48798
- const selectedStatusId = _nullishCoalesce(_nullishCoalesce(statusId, () => ( _optionalChain([statusOptions, 'access', _1201 => _1201[0], 'optionalAccess', _1202 => _1202.value]))), () => ( null));
48901
+ const selectedStatusId = _nullishCoalesce(_nullishCoalesce(statusId, () => ( _optionalChain([statusOptions, 'access', _1195 => _1195[0], 'optionalAccess', _1196 => _1196.value]))), () => ( null));
48799
48902
  const selectedStatus = statusOptions.find((o) => o.value === selectedStatusId);
48800
48903
  const selectedAssignee = assigneeOptions.find((o) => o.value === assigneeId);
48801
48904
  const handleConfirm = () => {
@@ -48882,16 +48985,16 @@ function ReopenTicketModal({
48882
48985
  isPending = false,
48883
48986
  onConfirm
48884
48987
  }) {
48885
- const [statusId, setStatusId] = React143.useState(null);
48886
- const [assigneeId, setAssigneeId] = React143.useState(null);
48887
- const [reason, setReason] = React143.useState("");
48888
- React143.useEffect(() => {
48988
+ const [statusId, setStatusId] = React140.useState(null);
48989
+ const [assigneeId, setAssigneeId] = React140.useState(null);
48990
+ const [reason, setReason] = React140.useState("");
48991
+ React140.useEffect(() => {
48889
48992
  if (!isOpen) return;
48890
48993
  setStatusId(_nullishCoalesce(initialStatusId, () => ( null)));
48891
48994
  setAssigneeId(_nullishCoalesce(initialAssigneeId, () => ( null)));
48892
48995
  setReason("");
48893
48996
  }, [isOpen, initialStatusId, initialAssigneeId]);
48894
- const selectedStatusId = _nullishCoalesce(_nullishCoalesce(statusId, () => ( _optionalChain([statusOptions, 'access', _1203 => _1203[0], 'optionalAccess', _1204 => _1204.value]))), () => ( null));
48997
+ const selectedStatusId = _nullishCoalesce(_nullishCoalesce(statusId, () => ( _optionalChain([statusOptions, 'access', _1197 => _1197[0], 'optionalAccess', _1198 => _1198.value]))), () => ( null));
48895
48998
  const selectedStatus = statusOptions.find((o) => o.value === selectedStatusId);
48896
48999
  const selectedAssignee = assigneeOptions.find((o) => o.value === assigneeId);
48897
49000
  const handleConfirm = () => {
@@ -48989,9 +49092,9 @@ function ReopenTicketRequestModal({
48989
49092
  isPending = false,
48990
49093
  onConfirm
48991
49094
  }) {
48992
- const [reason, setReason] = React144.useState("");
48993
- const [handoff, setHandoff] = React144.useState(false);
48994
- React144.useEffect(() => {
49095
+ const [reason, setReason] = React141.useState("");
49096
+ const [handoff, setHandoff] = React141.useState(false);
49097
+ React141.useEffect(() => {
48995
49098
  if (!isOpen) return;
48996
49099
  setReason("");
48997
49100
  setHandoff(false);
@@ -49316,7 +49419,7 @@ function RoadmapCard({
49316
49419
  const compactHref = safeHref(_nullishCoalesce(href, () => ( null)));
49317
49420
  const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
49318
49421
  const hasFigma = !!item.figmaUrl;
49319
- const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _1205 => _1205.screenshots, 'optionalAccess', _1206 => _1206.length]), () => ( 0))) > 0;
49422
+ const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _1199 => _1199.screenshots, 'optionalAccess', _1200 => _1200.length]), () => ( 0))) > 0;
49320
49423
  const typeLabel = getTaskTypeLabel(item.customItemId);
49321
49424
  const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
49322
49425
  const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -49335,7 +49438,7 @@ function RoadmapCard({
49335
49438
  unoptimized: true,
49336
49439
  className: "h-8 w-8 object-contain"
49337
49440
  }
49338
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6 uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _1207 => _1207.title, 'optionalAccess', _1208 => _1208.substring, 'call', _1209 => _1209(0, 2)]) || "??" })
49441
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6 uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _1201 => _1201.title, 'optionalAccess', _1202 => _1202.substring, 'call', _1203 => _1203(0, 2)]) || "??" })
49339
49442
  }
49340
49443
  ),
49341
49444
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -49411,7 +49514,7 @@ function RoadmapCard({
49411
49514
  unoptimized: true,
49412
49515
  className: "object-contain p-1"
49413
49516
  }
49414
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _1210 => _1210.title, 'optionalAccess', _1211 => _1211.substring, 'call', _1212 => _1212(0, 2)]) || "??" }) }),
49517
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _1204 => _1204.title, 'optionalAccess', _1205 => _1205.substring, 'call', _1206 => _1206(0, 2)]) || "??" }) }),
49415
49518
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
49416
49519
  /* @__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 flex-1 line-clamp-2", children: item.title }) }),
49417
49520
  /* @__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 truncate", children: [
@@ -49652,7 +49755,7 @@ function GitHubActivityCard({ item, variant = "compact", className, anchorProps
49652
49755
  reviewState ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ReviewStateBadge, { state: reviewState }) : null,
49653
49756
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: primaryText })
49654
49757
  ] }),
49655
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React129.default.Fragment, { children: [
49758
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React126.default.Fragment, { children: [
49656
49759
  i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
49657
49760
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
49658
49761
  ] }, i)) }) }),
@@ -49744,7 +49847,7 @@ function SlackMessageCard({ item, variant = "compact", className, anchorProps })
49744
49847
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
49745
49848
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: item.title }) }),
49746
49849
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: item.preview || COMPACT_CARD_ROW_FILLER }) }),
49747
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.length > 0 ? metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React129.default.Fragment, { children: [
49850
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.length > 0 ? metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React126.default.Fragment, { children: [
49748
49851
  i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
49749
49852
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
49750
49853
  ] }, i)) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: COMPACT_CARD_ROW_FILLER }) }) })
@@ -49856,7 +49959,7 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
49856
49959
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: item.customerEmail })
49857
49960
  ] }) : null,
49858
49961
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-4 whitespace-pre-wrap break-words text-h6 text-ods-text-secondary", children: item.preview || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "italic text-ods-text-secondary/60", children: "No description provided." }) }) }),
49859
- metaParts.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React129.default.Fragment, { children: [
49962
+ metaParts.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React126.default.Fragment, { children: [
49860
49963
  i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
49861
49964
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
49862
49965
  ] }, i)) }) }) : null
@@ -49922,7 +50025,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
49922
50025
  ] }) : null,
49923
50026
  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-h6 text-ods-text-secondary", children: item.preview }) }) : null
49924
50027
  ] }),
49925
- _optionalChain([anchorProps, 'optionalAccess', _1213 => _1213.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
50028
+ _optionalChain([anchorProps, 'optionalAccess', _1207 => _1207.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
49926
50029
  ] });
49927
50030
  if (!anchorProps) {
49928
50031
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
@@ -49992,7 +50095,7 @@ function getDefaultOptions() {
49992
50095
  // node_modules/date-fns/startOfWeek.mjs
49993
50096
  function startOfWeek(date, options) {
49994
50097
  const defaultOptions2 = getDefaultOptions();
49995
- const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1214 => _1214.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _1215 => _1215.locale, 'optionalAccess', _1216 => _1216.options, 'optionalAccess', _1217 => _1217.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _1218 => _1218.locale, 'optionalAccess', _1219 => _1219.options, 'optionalAccess', _1220 => _1220.weekStartsOn]))), () => ( 0));
50098
+ const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1208 => _1208.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _1209 => _1209.locale, 'optionalAccess', _1210 => _1210.options, 'optionalAccess', _1211 => _1211.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _1212 => _1212.locale, 'optionalAccess', _1213 => _1213.options, 'optionalAccess', _1214 => _1214.weekStartsOn]))), () => ( 0));
49996
50099
  const _date = toDate2(date);
49997
50100
  const day = _date.getDay();
49998
50101
  const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
@@ -50167,7 +50270,7 @@ var formatDistance = (token, count, options) => {
50167
50270
  } else {
50168
50271
  result = tokenValue.other.replace("{{count}}", count.toString());
50169
50272
  }
50170
- if (_optionalChain([options, 'optionalAccess', _1221 => _1221.addSuffix])) {
50273
+ if (_optionalChain([options, 'optionalAccess', _1215 => _1215.addSuffix])) {
50171
50274
  if (options.comparison && options.comparison > 0) {
50172
50275
  return "in " + result;
50173
50276
  } else {
@@ -50234,15 +50337,15 @@ var formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale
50234
50337
  // node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs
50235
50338
  function buildLocalizeFn(args) {
50236
50339
  return (value, options) => {
50237
- const context = _optionalChain([options, 'optionalAccess', _1222 => _1222.context]) ? String(options.context) : "standalone";
50340
+ const context = _optionalChain([options, 'optionalAccess', _1216 => _1216.context]) ? String(options.context) : "standalone";
50238
50341
  let valuesArray;
50239
50342
  if (context === "formatting" && args.formattingValues) {
50240
50343
  const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
50241
- const width = _optionalChain([options, 'optionalAccess', _1223 => _1223.width]) ? String(options.width) : defaultWidth;
50344
+ const width = _optionalChain([options, 'optionalAccess', _1217 => _1217.width]) ? String(options.width) : defaultWidth;
50242
50345
  valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
50243
50346
  } else {
50244
50347
  const defaultWidth = args.defaultWidth;
50245
- const width = _optionalChain([options, 'optionalAccess', _1224 => _1224.width]) ? String(options.width) : args.defaultWidth;
50348
+ const width = _optionalChain([options, 'optionalAccess', _1218 => _1218.width]) ? String(options.width) : args.defaultWidth;
50246
50349
  valuesArray = args.values[width] || args.values[defaultWidth];
50247
50350
  }
50248
50351
  const index = args.argumentCallback ? args.argumentCallback(value) : value;
@@ -50622,7 +50725,7 @@ function getWeekYear(date, options) {
50622
50725
  const _date = toDate2(date);
50623
50726
  const year = _date.getFullYear();
50624
50727
  const defaultOptions2 = getDefaultOptions();
50625
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1225 => _1225.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _1226 => _1226.locale, 'optionalAccess', _1227 => _1227.options, 'optionalAccess', _1228 => _1228.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _1229 => _1229.locale, 'optionalAccess', _1230 => _1230.options, 'optionalAccess', _1231 => _1231.firstWeekContainsDate]))), () => ( 1));
50728
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1219 => _1219.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _1220 => _1220.locale, 'optionalAccess', _1221 => _1221.options, 'optionalAccess', _1222 => _1222.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _1223 => _1223.locale, 'optionalAccess', _1224 => _1224.options, 'optionalAccess', _1225 => _1225.firstWeekContainsDate]))), () => ( 1));
50626
50729
  const firstWeekOfNextYear = constructFrom(date, 0);
50627
50730
  firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
50628
50731
  firstWeekOfNextYear.setHours(0, 0, 0, 0);
@@ -50643,7 +50746,7 @@ function getWeekYear(date, options) {
50643
50746
  // node_modules/date-fns/startOfWeekYear.mjs
50644
50747
  function startOfWeekYear(date, options) {
50645
50748
  const defaultOptions2 = getDefaultOptions();
50646
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1232 => _1232.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _1233 => _1233.locale, 'optionalAccess', _1234 => _1234.options, 'optionalAccess', _1235 => _1235.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _1236 => _1236.locale, 'optionalAccess', _1237 => _1237.options, 'optionalAccess', _1238 => _1238.firstWeekContainsDate]))), () => ( 1));
50749
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1226 => _1226.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _1227 => _1227.locale, 'optionalAccess', _1228 => _1228.options, 'optionalAccess', _1229 => _1229.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _1230 => _1230.locale, 'optionalAccess', _1231 => _1231.options, 'optionalAccess', _1232 => _1232.firstWeekContainsDate]))), () => ( 1));
50647
50750
  const year = getWeekYear(date, options);
50648
50751
  const firstWeek = constructFrom(date, 0);
50649
50752
  firstWeek.setFullYear(year, 0, firstWeekContainsDate);
@@ -51458,9 +51561,9 @@ var doubleQuoteRegExp = /''/g;
51458
51561
  var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
51459
51562
  function format2(date, formatStr, options) {
51460
51563
  const defaultOptions2 = getDefaultOptions();
51461
- const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1239 => _1239.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
51462
- const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1240 => _1240.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _1241 => _1241.locale, 'optionalAccess', _1242 => _1242.options, 'optionalAccess', _1243 => _1243.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _1244 => _1244.locale, 'optionalAccess', _1245 => _1245.options, 'optionalAccess', _1246 => _1246.firstWeekContainsDate]))), () => ( 1));
51463
- const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1247 => _1247.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _1248 => _1248.locale, 'optionalAccess', _1249 => _1249.options, 'optionalAccess', _1250 => _1250.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _1251 => _1251.locale, 'optionalAccess', _1252 => _1252.options, 'optionalAccess', _1253 => _1253.weekStartsOn]))), () => ( 0));
51564
+ const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1233 => _1233.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
51565
+ const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1234 => _1234.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _1235 => _1235.locale, 'optionalAccess', _1236 => _1236.options, 'optionalAccess', _1237 => _1237.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _1238 => _1238.locale, 'optionalAccess', _1239 => _1239.options, 'optionalAccess', _1240 => _1240.firstWeekContainsDate]))), () => ( 1));
51566
+ const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1241 => _1241.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _1242 => _1242.locale, 'optionalAccess', _1243 => _1243.options, 'optionalAccess', _1244 => _1244.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _1245 => _1245.locale, 'optionalAccess', _1246 => _1246.options, 'optionalAccess', _1247 => _1247.weekStartsOn]))), () => ( 0));
51464
51567
  const originalDate = toDate2(date);
51465
51568
  if (!isValid(originalDate)) {
51466
51569
  throw new RangeError("Invalid time value");
@@ -51501,7 +51604,7 @@ function format2(date, formatStr, options) {
51501
51604
  return parts.map((part) => {
51502
51605
  if (!part.isToken) return part.value;
51503
51606
  const token = part.value;
51504
- if (!_optionalChain([options, 'optionalAccess', _1254 => _1254.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _1255 => _1255.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
51607
+ if (!_optionalChain([options, 'optionalAccess', _1248 => _1248.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _1249 => _1249.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
51505
51608
  warnOrThrowProtectedError(token, formatStr, String(date));
51506
51609
  }
51507
51610
  const formatter = formatters[token[0]];
@@ -51707,7 +51810,7 @@ function ProgramCard({
51707
51810
  const itemDate2 = compactDate;
51708
51811
  const compactCover = coverImage || placeholderUrl || null;
51709
51812
  const typeMeta = compactTypeMeta();
51710
- const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _1256 => _1256.labels, 'optionalAccess', _1257 => _1257.singular])].filter(
51813
+ const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _1250 => _1250.labels, 'optionalAccess', _1251 => _1251.singular])].filter(
51711
51814
  (s) => typeof s === "string" && s.length > 0
51712
51815
  );
51713
51816
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "a", { href, target, rel, className: _chunkKI4EGKNVcjs.cn.call(void 0, COMPACT_CARD_OUTER, className), children: [
@@ -51864,7 +51967,7 @@ function ProgramCard({
51864
51967
 
51865
51968
 
51866
51969
  function CampaignCardAdmin({ campaign, className, anchorProps }) {
51867
- const goalsCount = _optionalChain([campaign, 'access', _1258 => _1258.goals, 'optionalAccess', _1259 => _1259.length]) || 0;
51970
+ const goalsCount = _optionalChain([campaign, 'access', _1252 => _1252.goals, 'optionalAccess', _1253 => _1253.length]) || 0;
51868
51971
  const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
51869
51972
  /* @__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" }) }),
51870
51973
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
@@ -52032,7 +52135,7 @@ function resolveSourceRowCTA(row, ctx = {}) {
52032
52135
  if (row.path && shouldFallbackToPathNav(row) && !row.externalUrl) {
52033
52136
  const safePath = sanitizePath(row.path);
52034
52137
  if (safePath) {
52035
- const docTarget = row.documentType ? _optionalChain([ctx, 'access', _1260 => _1260.docPlatformTargets, 'optionalAccess', _1261 => _1261[row.documentType]]) : void 0;
52138
+ const docTarget = row.documentType ? _optionalChain([ctx, 'access', _1254 => _1254.docPlatformTargets, 'optionalAccess', _1255 => _1255[row.documentType]]) : void 0;
52036
52139
  if (docTarget) {
52037
52140
  const seg = docTarget.basePath.split("/").filter(Boolean).join("/");
52038
52141
  const base = `${_chunkKI4EGKNVcjs.getBaseUrl.call(void 0, docTarget.platform)}${seg ? `/${seg}` : ""}/`;
@@ -52331,8 +52434,8 @@ function cardMenuGroups(href, discuss, openDetails, externalLink) {
52331
52434
  if (href) {
52332
52435
  items.push({
52333
52436
  id: "open-details",
52334
- label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _1262 => _1262.label]), () => ( "Open Details")),
52335
- icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _1263 => _1263.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.EyeIcon, { size: 20 }))),
52437
+ label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _1256 => _1256.label]), () => ( "Open Details")),
52438
+ icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _1257 => _1257.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.EyeIcon, { size: 20 }))),
52336
52439
  // Main row → open the entity (same tab, soft Link nav).
52337
52440
  href,
52338
52441
  // Trailing 40px ↗ side-button → open in a new tab.
@@ -52392,16 +52495,16 @@ function itemVideoMetadata(item) {
52392
52495
  for (const v of vals) if (typeof v === "string" && v.length > 0) return v;
52393
52496
  return void 0;
52394
52497
  };
52395
- const m = _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1264 => _1264.metadata]), () => ( {}));
52498
+ const m = _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1258 => _1258.metadata]), () => ( {}));
52396
52499
  const out = {};
52397
- const videoUrl = pick(m.videoUrl, _optionalChain([item, 'optionalAccess', _1265 => _1265.custom_video_url]), _optionalChain([item, 'optionalAccess', _1266 => _1266.main_video_url]));
52398
- const youtubeUrl = pick(m.youtubeUrl, _optionalChain([item, 'optionalAccess', _1267 => _1267.youtube_url]), _optionalChain([item, 'optionalAccess', _1268 => _1268.testimonial_video_url]));
52399
- const highlightVideoUrl = pick(m.highlightVideoUrl, _optionalChain([item, 'optionalAccess', _1269 => _1269.highlight_video_url]));
52500
+ const videoUrl = pick(m.videoUrl, _optionalChain([item, 'optionalAccess', _1259 => _1259.custom_video_url]), _optionalChain([item, 'optionalAccess', _1260 => _1260.main_video_url]));
52501
+ const youtubeUrl = pick(m.youtubeUrl, _optionalChain([item, 'optionalAccess', _1261 => _1261.youtube_url]), _optionalChain([item, 'optionalAccess', _1262 => _1262.testimonial_video_url]));
52502
+ const highlightVideoUrl = pick(m.highlightVideoUrl, _optionalChain([item, 'optionalAccess', _1263 => _1263.highlight_video_url]));
52400
52503
  const videoPoster = pick(
52401
52504
  m.videoPoster,
52402
- _optionalChain([item, 'optionalAccess', _1270 => _1270.main_video_thumbnail]),
52403
- _optionalChain([item, 'optionalAccess', _1271 => _1271.highlight_video_thumbnail]),
52404
- _optionalChain([item, 'optionalAccess', _1272 => _1272.featured_image])
52505
+ _optionalChain([item, 'optionalAccess', _1264 => _1264.main_video_thumbnail]),
52506
+ _optionalChain([item, 'optionalAccess', _1265 => _1265.highlight_video_thumbnail]),
52507
+ _optionalChain([item, 'optionalAccess', _1266 => _1266.featured_image])
52405
52508
  );
52406
52509
  if (videoUrl) out.videoUrl = videoUrl;
52407
52510
  if (youtubeUrl) out.youtubeUrl = youtubeUrl;
@@ -52435,15 +52538,15 @@ function fetchedItemDisplayRef(item, chatRef) {
52435
52538
  }
52436
52539
  function fetchedFaqDisplayRef(item, chatRef) {
52437
52540
  const it = item;
52438
- const answer = typeof _optionalChain([it, 'optionalAccess', _1273 => _1273.answer]) === "string" && it.answer.trim().length > 0 ? it.answer.trim() : null;
52541
+ const answer = typeof _optionalChain([it, 'optionalAccess', _1267 => _1267.answer]) === "string" && it.answer.trim().length > 0 ? it.answer.trim() : null;
52439
52542
  return {
52440
52543
  type: "faq",
52441
52544
  id: chatRef.id,
52442
52545
  sourceRepo: chatRef.sourceRepo,
52443
- title: typeof _optionalChain([it, 'optionalAccess', _1274 => _1274.question]) === "string" && it.question ? it.question : chatRef.id,
52546
+ title: typeof _optionalChain([it, 'optionalAccess', _1268 => _1268.question]) === "string" && it.question ? it.question : chatRef.id,
52444
52547
  url: _nullishCoalesce(chatRef.url, () => ( null)),
52445
52548
  ...answer ? { preview: answer.length > 400 ? `${answer.slice(0, 397)}\u2026` : answer } : {},
52446
- metadata: typeof _optionalChain([it, 'optionalAccess', _1275 => _1275.section]) === "string" && it.section ? { section: it.section } : {}
52549
+ metadata: typeof _optionalChain([it, 'optionalAccess', _1269 => _1269.section]) === "string" && it.section ? { section: it.section } : {}
52447
52550
  };
52448
52551
  }
52449
52552
  function HubspotTicketChatCard({
@@ -52451,8 +52554,8 @@ function HubspotTicketChatCard({
52451
52554
  isNewTab,
52452
52555
  discuss
52453
52556
  }) {
52454
- const status = typeof _optionalChain([chatRef, 'access', _1276 => _1276.metadata, 'optionalAccess', _1277 => _1277.status]) === "string" ? chatRef.metadata.status : void 0;
52455
- const statusLabel = typeof _optionalChain([chatRef, 'access', _1278 => _1278.metadata, 'optionalAccess', _1279 => _1279.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
52557
+ const status = typeof _optionalChain([chatRef, 'access', _1270 => _1270.metadata, 'optionalAccess', _1271 => _1271.status]) === "string" ? chatRef.metadata.status : void 0;
52558
+ const statusLabel = typeof _optionalChain([chatRef, 'access', _1272 => _1272.metadata, 'optionalAccess', _1273 => _1273.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
52456
52559
  const statusText = _nullishCoalesce(statusLabel, () => ( formatStatusToken(status)));
52457
52560
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
52458
52561
  MingoInfoCard,
@@ -52475,7 +52578,7 @@ function FaqChatCard({
52475
52578
  isNewTab,
52476
52579
  discuss
52477
52580
  }) {
52478
- const section = typeof _optionalChain([chatRef, 'access', _1280 => _1280.metadata, 'optionalAccess', _1281 => _1281.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
52581
+ const section = typeof _optionalChain([chatRef, 'access', _1274 => _1274.metadata, 'optionalAccess', _1275 => _1275.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
52479
52582
  const statusLabel = section && section.length > 0 ? section : "FAQ";
52480
52583
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
52481
52584
  MingoInfoCard,
@@ -52495,7 +52598,7 @@ function SlackChatCard({
52495
52598
  isNewTab,
52496
52599
  discuss
52497
52600
  }) {
52498
- const channelName = typeof _optionalChain([chatRef, 'access', _1282 => _1282.metadata, 'optionalAccess', _1283 => _1283.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
52601
+ const channelName = typeof _optionalChain([chatRef, 'access', _1276 => _1276.metadata, 'optionalAccess', _1277 => _1277.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
52499
52602
  const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
52500
52603
  const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
52501
52604
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -52535,7 +52638,7 @@ function GenericFinancialChatCard({
52535
52638
  isNewTab,
52536
52639
  discuss
52537
52640
  }) {
52538
- const subtitle = typeof _optionalChain([chatRef, 'access', _1284 => _1284.metadata, 'optionalAccess', _1285 => _1285.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
52641
+ const subtitle = typeof _optionalChain([chatRef, 'access', _1278 => _1278.metadata, 'optionalAccess', _1279 => _1279.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
52539
52642
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
52540
52643
  MingoInfoCard,
52541
52644
  {
@@ -52604,12 +52707,12 @@ function ProductReleaseChatCard({
52604
52707
  discuss
52605
52708
  }) {
52606
52709
  const releaseProps = buildProps(item);
52607
- const status = _optionalChain([item, 'optionalAccess', _1286 => _1286.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
52710
+ const status = _optionalChain([item, 'optionalAccess', _1280 => _1280.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
52608
52711
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
52609
52712
  EntityMingoCard,
52610
52713
  {
52611
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1287 => _1287.title]), () => ( "")),
52612
- description: _optionalChain([item, 'optionalAccess', _1288 => _1288.summary]) || releaseProps.formattedDate || void 0,
52714
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1281 => _1281.title]), () => ( "")),
52715
+ description: _optionalChain([item, 'optionalAccess', _1282 => _1282.summary]) || releaseProps.formattedDate || void 0,
52613
52716
  cover: releaseProps.coverImage || void 0,
52614
52717
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.Rocket02Icon, { size: 24 }),
52615
52718
  status,
@@ -52626,17 +52729,17 @@ function CampaignChatCard({
52626
52729
  isNewTab,
52627
52730
  discuss
52628
52731
  }) {
52629
- const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _1289 => _1289.goals])) ? item.goals.length : 0;
52732
+ const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _1283 => _1283.goals])) ? item.goals.length : 0;
52630
52733
  const meta = [
52631
- _optionalChain([item, 'optionalAccess', _1290 => _1290.start_date]) ? formatDateShort(item.start_date) : null,
52734
+ _optionalChain([item, 'optionalAccess', _1284 => _1284.start_date]) ? formatDateShort(item.start_date) : null,
52632
52735
  goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
52633
52736
  "Marketing campaign"
52634
52737
  ].filter(Boolean).join(" \xB7 ");
52635
52738
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
52636
52739
  EntityMingoCard,
52637
52740
  {
52638
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1291 => _1291.name]), () => ( "")),
52639
- description: meta || _optionalChain([item, 'optionalAccess', _1292 => _1292.description]) || void 0,
52741
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1285 => _1285.name]), () => ( "")),
52742
+ description: meta || _optionalChain([item, 'optionalAccess', _1286 => _1286.description]) || void 0,
52640
52743
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.Megaphone01Icon, { size: 24 }),
52641
52744
  chatRef,
52642
52745
  isNewTab,
@@ -52691,14 +52794,14 @@ function BlogChatCard({
52691
52794
  hasEmbeddedVideo,
52692
52795
  discuss
52693
52796
  }) {
52694
- const category = Array.isArray(_optionalChain([item, 'optionalAccess', _1293 => _1293.categories])) ? _optionalChain([item, 'access', _1294 => _1294.categories, 'access', _1295 => _1295.find, 'call', _1296 => _1296((c) => c && c.name), 'optionalAccess', _1297 => _1297.name]) : void 0;
52797
+ const category = Array.isArray(_optionalChain([item, 'optionalAccess', _1287 => _1287.categories])) ? _optionalChain([item, 'access', _1288 => _1288.categories, 'access', _1289 => _1289.find, 'call', _1290 => _1290((c) => c && c.name), 'optionalAccess', _1291 => _1291.name]) : void 0;
52695
52798
  const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
52696
52799
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
52697
52800
  EntityMingoCard,
52698
52801
  {
52699
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1298 => _1298.title]), () => ( "")),
52700
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1299 => _1299.summary]), () => ( void 0)),
52701
- cover: entityCover(_optionalChain([item, 'optionalAccess', _1300 => _1300.featured_image]), ogPlaceholder),
52802
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1292 => _1292.title]), () => ( "")),
52803
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1293 => _1293.summary]), () => ( void 0)),
52804
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _1294 => _1294.featured_image]), ogPlaceholder),
52702
52805
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.NewspaperIcon, { size: 24 }),
52703
52806
  status,
52704
52807
  chatRef,
@@ -52715,13 +52818,13 @@ function CaseStudyChatCard({
52715
52818
  ogPlaceholder,
52716
52819
  discuss
52717
52820
  }) {
52718
- const meta = [_optionalChain([item, 'optionalAccess', _1301 => _1301.msp, 'optionalAccess', _1302 => _1302.name]), _optionalChain([item, 'optionalAccess', _1303 => _1303.user, 'optionalAccess', _1304 => _1304.full_name])].filter(Boolean).join(" \xB7 ");
52821
+ const meta = [_optionalChain([item, 'optionalAccess', _1295 => _1295.msp, 'optionalAccess', _1296 => _1296.name]), _optionalChain([item, 'optionalAccess', _1297 => _1297.user, 'optionalAccess', _1298 => _1298.full_name])].filter(Boolean).join(" \xB7 ");
52719
52822
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
52720
52823
  EntityMingoCard,
52721
52824
  {
52722
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1305 => _1305.title]), () => ( "")),
52723
- description: _optionalChain([item, 'optionalAccess', _1306 => _1306.summary]) || meta || void 0,
52724
- cover: entityCover(_optionalChain([item, 'optionalAccess', _1307 => _1307.featured_image]), ogPlaceholder),
52825
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1299 => _1299.title]), () => ( "")),
52826
+ description: _optionalChain([item, 'optionalAccess', _1300 => _1300.summary]) || meta || void 0,
52827
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _1301 => _1301.featured_image]), ogPlaceholder),
52725
52828
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.TrophyIcon, { size: 24 }),
52726
52829
  status: { label: "Case study", variant: "grey" },
52727
52830
  chatRef,
@@ -52738,13 +52841,13 @@ function CustomerInterviewChatCard({
52738
52841
  ogPlaceholder,
52739
52842
  discuss
52740
52843
  }) {
52741
- const meta = [_optionalChain([item, 'optionalAccess', _1308 => _1308.user, 'optionalAccess', _1309 => _1309.full_name]), _optionalChain([item, 'optionalAccess', _1310 => _1310.msp, 'optionalAccess', _1311 => _1311.name])].filter(Boolean).join(" \xB7 ");
52844
+ const meta = [_optionalChain([item, 'optionalAccess', _1302 => _1302.user, 'optionalAccess', _1303 => _1303.full_name]), _optionalChain([item, 'optionalAccess', _1304 => _1304.msp, 'optionalAccess', _1305 => _1305.name])].filter(Boolean).join(" \xB7 ");
52742
52845
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
52743
52846
  EntityMingoCard,
52744
52847
  {
52745
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1312 => _1312.title]), () => ( "")),
52746
- description: _optionalChain([item, 'optionalAccess', _1313 => _1313.video_summary]) || meta || void 0,
52747
- cover: entityCover(_optionalChain([item, 'optionalAccess', _1314 => _1314.featured_image]), ogPlaceholder),
52848
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1306 => _1306.title]), () => ( "")),
52849
+ description: _optionalChain([item, 'optionalAccess', _1307 => _1307.video_summary]) || meta || void 0,
52850
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _1308 => _1308.featured_image]), ogPlaceholder),
52748
52851
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.MicrophoneIcon, { size: 24 }),
52749
52852
  status: { label: "Interview", variant: "grey" },
52750
52853
  chatRef,
@@ -52761,13 +52864,13 @@ function InvestorUpdateChatCard({
52761
52864
  ogPlaceholder,
52762
52865
  discuss
52763
52866
  }) {
52764
- const title = _optionalChain([item, 'optionalAccess', _1315 => _1315.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1316 => _1316.update_number]), () => ( "?"))}`;
52867
+ const title = _optionalChain([item, 'optionalAccess', _1309 => _1309.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1310 => _1310.update_number]), () => ( "?"))}`;
52765
52868
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
52766
52869
  EntityMingoCard,
52767
52870
  {
52768
52871
  title,
52769
- description: _optionalChain([item, 'optionalAccess', _1317 => _1317.strategic_update]) || _optionalChain([item, 'optionalAccess', _1318 => _1318.content]) || formatInvestorUpdatePeriod(_optionalChain([item, 'optionalAccess', _1319 => _1319.period_start]), _optionalChain([item, 'optionalAccess', _1320 => _1320.period_end])) || void 0,
52770
- cover: entityCover(_optionalChain([item, 'optionalAccess', _1321 => _1321.featured_image]), ogPlaceholder),
52872
+ description: _optionalChain([item, 'optionalAccess', _1311 => _1311.strategic_update]) || _optionalChain([item, 'optionalAccess', _1312 => _1312.content]) || formatInvestorUpdatePeriod(_optionalChain([item, 'optionalAccess', _1313 => _1313.period_start]), _optionalChain([item, 'optionalAccess', _1314 => _1314.period_end])) || void 0,
52873
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _1315 => _1315.featured_image]), ogPlaceholder),
52771
52874
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.PresentationLineIcon, { size: 24 }),
52772
52875
  status: { label: "Investor update", variant: "grey" },
52773
52876
  chatRef,
@@ -52784,12 +52887,12 @@ function OnboardingGuideChatCard({
52784
52887
  ogPlaceholder,
52785
52888
  discuss
52786
52889
  }) {
52787
- const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _1322 => _1322.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _1323 => _1323.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _1324 => _1324.og_image_url]), ogPlaceholder)));
52890
+ const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _1316 => _1316.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _1317 => _1317.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _1318 => _1318.og_image_url]), ogPlaceholder)));
52788
52891
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
52789
52892
  EntityMingoCard,
52790
52893
  {
52791
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1325 => _1325.title]), () => ( "")),
52792
- description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1326 => _1326.summary]), () => ( _optionalChain([item, 'optionalAccess', _1327 => _1327.description]))), () => ( void 0)),
52894
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1319 => _1319.title]), () => ( "")),
52895
+ description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1320 => _1320.summary]), () => ( _optionalChain([item, 'optionalAccess', _1321 => _1321.description]))), () => ( void 0)),
52793
52896
  cover,
52794
52897
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.CompassIcon, { size: 24 }),
52795
52898
  status: { label: "Guide", variant: "grey" },
@@ -52810,25 +52913,25 @@ function ProgramChatCard({
52810
52913
  discuss
52811
52914
  }) {
52812
52915
  const icon = configKey === "webinar" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.PresentationBarIcon, { size: 24 }) : configKey === "event" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.CalendarIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.MicrophoneIcon, { size: 24 });
52813
- const isScheduled = _optionalChain([item, 'optionalAccess', _1328 => _1328.status]) === "scheduled";
52916
+ const isScheduled = _optionalChain([item, 'optionalAccess', _1322 => _1322.status]) === "scheduled";
52814
52917
  let typeMeta;
52815
- if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _1329 => _1329.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
52918
+ if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _1323 => _1323.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
52816
52919
  typeMeta = formatDurationCompact(item.duration_seconds);
52817
- } else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess', _1330 => _1330.location_name]) === "string" && item.location_name.trim().length > 0) {
52920
+ } else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess', _1324 => _1324.location_name]) === "string" && item.location_name.trim().length > 0) {
52818
52921
  typeMeta = item.location_name;
52819
- } else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _1331 => _1331.start_at])) {
52922
+ } else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _1325 => _1325.start_at])) {
52820
52923
  const time = formatTimeWithTimezone(item.start_at, _nullishCoalesce(item.timezone, () => ( null)));
52821
52924
  const dur = formatDurationFromRange(item.start_at, item.end_at);
52822
52925
  typeMeta = dur ? `${time} \xB7 ${dur}` : time;
52823
52926
  }
52824
- const itemDate = formatDateUTC(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1332 => _1332.date]), () => ( null)), { fallback: "", timezone: "local" });
52927
+ const itemDate = formatDateUTC(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1326 => _1326.date]), () => ( null)), { fallback: "", timezone: "local" });
52825
52928
  const meta = [itemDate, typeMeta].filter(Boolean).join(" \xB7 ");
52826
52929
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
52827
52930
  EntityMingoCard,
52828
52931
  {
52829
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1333 => _1333.title]), () => ( "")),
52830
- description: meta || _optionalChain([item, 'optionalAccess', _1334 => _1334.description]) || void 0,
52831
- cover: entityCover(_optionalChain([item, 'optionalAccess', _1335 => _1335.cover_url]), ogPlaceholder),
52932
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1327 => _1327.title]), () => ( "")),
52933
+ description: meta || _optionalChain([item, 'optionalAccess', _1328 => _1328.description]) || void 0,
52934
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _1329 => _1329.cover_url]), ogPlaceholder),
52832
52935
  fallbackIcon: icon,
52833
52936
  status: { label, variant: "grey" },
52834
52937
  chatRef,
@@ -52845,10 +52948,10 @@ function RoadmapChatCard({
52845
52948
  cardType,
52846
52949
  discuss
52847
52950
  }) {
52848
- const logoUrl = typeof _optionalChain([item, 'optionalAccess', _1336 => _1336.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
52849
- const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _1337 => _1337.customItemId]) != null;
52951
+ const logoUrl = typeof _optionalChain([item, 'optionalAccess', _1330 => _1330.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
52952
+ const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _1331 => _1331.customItemId]) != null;
52850
52953
  const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.TruckFastIcon, { size: 24 }) : cardType === "internal_task" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.CheckSquareIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUTVOBFXRcjs.MapIcon, { size: 24 });
52851
- const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _1338 => _1338.customItemId]), className: "size-6" }) : logoUrl ? (
52954
+ const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _1332 => _1332.customItemId]), className: "size-6" }) : logoUrl ? (
52852
52955
  // Contained (not full-bleed) so the integration logo keeps its aspect
52853
52956
  // ratio inside the bordered icon box — matches RoadmapCard.
52854
52957
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src: logoUrl, alt: "", className: "size-6 object-contain" })
@@ -52859,10 +52962,10 @@ function RoadmapChatCard({
52859
52962
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
52860
52963
  EntityMingoCard,
52861
52964
  {
52862
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1339 => _1339.title]), () => ( "")),
52863
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1340 => _1340.description]), () => ( void 0)),
52965
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1333 => _1333.title]), () => ( "")),
52966
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1334 => _1334.description]), () => ( void 0)),
52864
52967
  fallbackIcon: icon,
52865
- status: statusPill(_optionalChain([item, 'optionalAccess', _1341 => _1341.status])),
52968
+ status: statusPill(_optionalChain([item, 'optionalAccess', _1335 => _1335.status])),
52866
52969
  chatRef,
52867
52970
  isNewTab,
52868
52971
  discuss,
@@ -52878,7 +52981,7 @@ function refHydratedEntry(docType, label, renderRef) {
52878
52981
  bareInline: true,
52879
52982
  contentRefType: docType,
52880
52983
  noComposedHref: true,
52881
- fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1342 => _1342.url]), () => ( null)),
52984
+ fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _1336 => _1336.url]), () => ( null)),
52882
52985
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
52883
52986
  render: (item, chatRef, opts) => renderRef(fetchedItemDisplayRef(item, chatRef), opts)
52884
52987
  };
@@ -52951,7 +53054,7 @@ function programRegistryEntries() {
52951
53054
  discuss: opts.discuss,
52952
53055
  configKey: cfg.configKey,
52953
53056
  label: cfg.configKey.charAt(0).toUpperCase() + cfg.configKey.slice(1),
52954
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1343 => _1343.extras, 'optionalAccess', _1344 => _1344.buildOgPlaceholderUrl, 'optionalCall', _1345 => _1345(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1346 => _1346.title]), () => ( "")))]), () => ( null))
53057
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1337 => _1337.extras, 'optionalAccess', _1338 => _1338.buildOgPlaceholderUrl, 'optionalCall', _1339 => _1339(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1340 => _1340.title]), () => ( "")))]), () => ( null))
52955
53058
  }
52956
53059
  )
52957
53060
  }));
@@ -52972,7 +53075,7 @@ var ROADMAP_CARD_CONFIGS = {
52972
53075
  // The card's destination IS the ClickUp deep link, derived from the
52973
53076
  // task id post-fetch (the refs frame used to carry it).
52974
53077
  noComposedHref: true,
52975
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _1347 => _1347.id]) != null ? clickupTaskUrl(String(item.id)) : null
53078
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _1341 => _1341.id]) != null ? clickupTaskUrl(String(item.id)) : null
52976
53079
  }
52977
53080
  };
52978
53081
  function roadmapRegistryEntries() {
@@ -53014,8 +53117,8 @@ var CHAT_CARD_REGISTRY = {
53014
53117
  DeletedDataCard,
53015
53118
  {
53016
53119
  title: chatRef.title && chatRef.title !== chatRef.id ? chatRef.title : null,
53017
- entityLabel: _nullishCoalesce(_optionalChain([chatRef, 'access', _1348 => _1348.metadata, 'optionalAccess', _1349 => _1349.entity_label]), () => ( null)),
53018
- recoveryNote: _nullishCoalesce(_optionalChain([chatRef, 'access', _1350 => _1350.metadata, 'optionalAccess', _1351 => _1351.recovery_note]), () => ( null))
53120
+ entityLabel: _nullishCoalesce(_optionalChain([chatRef, 'access', _1342 => _1342.metadata, 'optionalAccess', _1343 => _1343.entity_label]), () => ( null)),
53121
+ recoveryNote: _nullishCoalesce(_optionalChain([chatRef, 'access', _1344 => _1344.metadata, 'optionalAccess', _1345 => _1345.recovery_note]), () => ( null))
53019
53122
  }
53020
53123
  )
53021
53124
  },
@@ -53029,7 +53132,7 @@ var CHAT_CARD_REGISTRY = {
53029
53132
  bareInline: true,
53030
53133
  contentRefType: "faq",
53031
53134
  noComposedHref: true,
53032
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _1352 => _1352.id]) != null ? `/faqs#${faqItemAnchor(item.id)}` : null,
53135
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _1346 => _1346.id]) != null ? `/faqs#${faqItemAnchor(item.id)}` : null,
53033
53136
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
53034
53137
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
53035
53138
  FaqChatCard,
@@ -53113,8 +53216,8 @@ var CHAT_CARD_REGISTRY = {
53113
53216
  chatRef,
53114
53217
  isNewTab: opts.isNewTab,
53115
53218
  discuss: opts.discuss,
53116
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1353 => _1353.extras, 'optionalAccess', _1354 => _1354.buildOgPlaceholderUrl, 'optionalCall', _1355 => _1355(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1356 => _1356.title]), () => ( "")))]), () => ( null)),
53117
- hasEmbeddedVideo: _optionalChain([chatRef, 'access', _1357 => _1357.metadata, 'optionalAccess', _1358 => _1358.hasEmbeddedVideo]) === true
53219
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1347 => _1347.extras, 'optionalAccess', _1348 => _1348.buildOgPlaceholderUrl, 'optionalCall', _1349 => _1349(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1350 => _1350.title]), () => ( "")))]), () => ( null)),
53220
+ hasEmbeddedVideo: _optionalChain([chatRef, 'access', _1351 => _1351.metadata, 'optionalAccess', _1352 => _1352.hasEmbeddedVideo]) === true
53118
53221
  }
53119
53222
  )
53120
53223
  },
@@ -53130,7 +53233,7 @@ var CHAT_CARD_REGISTRY = {
53130
53233
  chatRef,
53131
53234
  isNewTab: opts.isNewTab,
53132
53235
  discuss: opts.discuss,
53133
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1359 => _1359.extras, 'optionalAccess', _1360 => _1360.buildOgPlaceholderUrl, 'optionalCall', _1361 => _1361(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1362 => _1362.title]), () => ( "")))]), () => ( null))
53236
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1353 => _1353.extras, 'optionalAccess', _1354 => _1354.buildOgPlaceholderUrl, 'optionalCall', _1355 => _1355(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1356 => _1356.title]), () => ( "")))]), () => ( null))
53134
53237
  }
53135
53238
  )
53136
53239
  },
@@ -53146,7 +53249,7 @@ var CHAT_CARD_REGISTRY = {
53146
53249
  chatRef,
53147
53250
  isNewTab: opts.isNewTab,
53148
53251
  discuss: opts.discuss,
53149
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1363 => _1363.extras, 'optionalAccess', _1364 => _1364.buildOgPlaceholderUrl, 'optionalCall', _1365 => _1365(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1366 => _1366.title]), () => ( "")))]), () => ( null))
53252
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1357 => _1357.extras, 'optionalAccess', _1358 => _1358.buildOgPlaceholderUrl, 'optionalCall', _1359 => _1359(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1360 => _1360.title]), () => ( "")))]), () => ( null))
53150
53253
  }
53151
53254
  )
53152
53255
  },
@@ -53156,7 +53259,7 @@ var CHAT_CARD_REGISTRY = {
53156
53259
  bareInline: true,
53157
53260
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductReleaseCardSkeleton, { size: "sm" }),
53158
53261
  render: (item, chatRef, opts) => {
53159
- const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1367 => _1367.extras, 'optionalAccess', _1368 => _1368.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
53262
+ const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1361 => _1361.extras, 'optionalAccess', _1362 => _1362.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
53160
53263
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
53161
53264
  ProductReleaseChatCard,
53162
53265
  {
@@ -53182,7 +53285,7 @@ var CHAT_CARD_REGISTRY = {
53182
53285
  chatRef,
53183
53286
  isNewTab: opts.isNewTab,
53184
53287
  discuss: opts.discuss,
53185
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1369 => _1369.extras, 'optionalAccess', _1370 => _1370.buildOgPlaceholderUrl, 'optionalCall', _1371 => _1371(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1372 => _1372.title]), () => ( "")))]), () => ( null))
53288
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1363 => _1363.extras, 'optionalAccess', _1364 => _1364.buildOgPlaceholderUrl, 'optionalCall', _1365 => _1365(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1366 => _1366.title]), () => ( "")))]), () => ( null))
53186
53289
  }
53187
53290
  )
53188
53291
  },
@@ -53200,7 +53303,7 @@ var CHAT_CARD_REGISTRY = {
53200
53303
  chatRef,
53201
53304
  isNewTab: opts.isNewTab,
53202
53305
  discuss: opts.discuss,
53203
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1373 => _1373.extras, 'optionalAccess', _1374 => _1374.buildOgPlaceholderUrl, 'optionalCall', _1375 => _1375(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1376 => _1376.title]), () => ( "")))]), () => ( null))
53306
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _1367 => _1367.extras, 'optionalAccess', _1368 => _1368.buildOgPlaceholderUrl, 'optionalCall', _1369 => _1369(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _1370 => _1370.title]), () => ( "")))]), () => ( null))
53204
53307
  }
53205
53308
  )
53206
53309
  },
@@ -53211,7 +53314,7 @@ var CHAT_CARD_REGISTRY = {
53211
53314
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
53212
53315
  // No public viewer — synthesize the hub-internal admin URL post-fetch
53213
53316
  // so the wrapper + isNewTab computation see the actual destination.
53214
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _1377 => _1377.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
53317
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _1371 => _1371.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
53215
53318
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
53216
53319
  CampaignChatCard,
53217
53320
  {
@@ -53238,13 +53341,13 @@ function ChatCardNavWrap({
53238
53341
  if (!href) return;
53239
53342
  const targetEl = e.target;
53240
53343
  const host = e.currentTarget;
53241
- if (!_optionalChain([host, 'optionalAccess', _1378 => _1378.contains, 'call', _1379 => _1379(targetEl)])) return;
53242
- if (_optionalChain([targetEl, 'optionalAccess', _1380 => _1380.closest, 'optionalCall', _1381 => _1381("button")])) return;
53243
- if (!_optionalChain([targetEl, 'optionalAccess', _1382 => _1382.closest, 'optionalCall', _1383 => _1383("a")])) return;
53344
+ if (!_optionalChain([host, 'optionalAccess', _1372 => _1372.contains, 'call', _1373 => _1373(targetEl)])) return;
53345
+ if (_optionalChain([targetEl, 'optionalAccess', _1374 => _1374.closest, 'optionalCall', _1375 => _1375("button")])) return;
53346
+ if (!_optionalChain([targetEl, 'optionalAccess', _1376 => _1376.closest, 'optionalCall', _1377 => _1377("a")])) return;
53244
53347
  const handled = handleChatNavClick(e, runtime, { href, path, targetPlatform }, router.push);
53245
53348
  if (!handled) return;
53246
53349
  e.stopPropagation();
53247
- if (!isNewTab && _optionalChain([panel, 'optionalAccess', _1384 => _1384.closeChat])) panel.closeChat();
53350
+ if (!isNewTab && _optionalChain([panel, 'optionalAccess', _1378 => _1378.closeChat])) panel.closeChat();
53248
53351
  };
53249
53352
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
53250
53353
  }
@@ -53257,7 +53360,7 @@ function ChatCardLoader({
53257
53360
  extras
53258
53361
  }) {
53259
53362
  const runtime = _chunk7OPWSWEJcjs.useRequiredChatRuntime.call(void 0, );
53260
- const resolvedChatRef = React129.default.useMemo(() => {
53363
+ const resolvedChatRef = React126.default.useMemo(() => {
53261
53364
  const cta = resolveSourceRowCTA(
53262
53365
  {
53263
53366
  sourceRepo: chatRef.sourceRepo,
@@ -53266,7 +53369,7 @@ function ChatCardLoader({
53266
53369
  title: chatRef.title,
53267
53370
  externalUrl: chatRef.url,
53268
53371
  targetPlatform: chatRef.targetPlatform,
53269
- path: typeof _optionalChain([chatRef, 'access', _1385 => _1385.metadata, 'optionalAccess', _1386 => _1386.path]) === "string" ? chatRef.metadata.path : null
53372
+ path: typeof _optionalChain([chatRef, 'access', _1379 => _1379.metadata, 'optionalAccess', _1380 => _1380.path]) === "string" ? chatRef.metadata.path : null
53270
53373
  },
53271
53374
  sourceRowCtxFromRuntime(runtime, { baseRoute, chipBasePlatform })
53272
53375
  );
@@ -53280,11 +53383,11 @@ function ChatCardLoader({
53280
53383
  const entry = CHAT_CARD_REGISTRY[resolvedChatRef.type];
53281
53384
  const fetchEntry = entry && entry.contentRefType ? entry : null;
53282
53385
  const { item, isLoading, isError, isFetched } = useChatCardItem(
53283
- _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _1387 => _1387.contentRefType]), () => ( "")),
53386
+ _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _1381 => _1381.contentRefType]), () => ( "")),
53284
53387
  fetchEntry ? resolvedChatRef.id : ""
53285
53388
  );
53286
53389
  if (!entry) return null;
53287
- const composedHref = _optionalChain([fetchEntry, 'optionalAccess', _1388 => _1388.contentRefType]) && !resolvedChatRef.url && item && !fetchEntry.fallbackHref && !fetchEntry.noComposedHref ? resolveFetchedCardHref({
53390
+ const composedHref = _optionalChain([fetchEntry, 'optionalAccess', _1382 => _1382.contentRefType]) && !resolvedChatRef.url && item && !fetchEntry.fallbackHref && !fetchEntry.noComposedHref ? resolveFetchedCardHref({
53288
53391
  contentRefType: fetchEntry.contentRefType,
53289
53392
  id: resolvedChatRef.id,
53290
53393
  item,
@@ -53323,7 +53426,7 @@ function ChatCardLoader({
53323
53426
  isNewTab,
53324
53427
  discuss
53325
53428
  };
53326
- const path = typeof _optionalChain([finalChatRef, 'access', _1389 => _1389.metadata, 'optionalAccess', _1390 => _1390.path]) === "string" ? finalChatRef.metadata.path : null;
53429
+ const path = typeof _optionalChain([finalChatRef, 'access', _1383 => _1383.metadata, 'optionalAccess', _1384 => _1384.path]) === "string" ? finalChatRef.metadata.path : null;
53327
53430
  const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
53328
53431
  ChatCardNavWrap,
53329
53432
  {
@@ -53347,7 +53450,7 @@ function ChatCardLoader({
53347
53450
  if (!fetchEntry) {
53348
53451
  return finish(entry.render(void 0, finalChatRef, renderOpts));
53349
53452
  }
53350
- if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([fetchEntry, 'access', _1391 => _1391.skeleton, 'optionalCall', _1392 => _1392()]), () => ( null)) });
53453
+ if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([fetchEntry, 'access', _1385 => _1385.skeleton, 'optionalCall', _1386 => _1386()]), () => ( null)) });
53351
53454
  if (!item) {
53352
53455
  if (isError) {
53353
53456
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardLoadFailure, { label: entry.label, id: finalChatRef.id, detail: "Failed to load" });
@@ -53610,7 +53713,7 @@ function useChunkCatchup({
53610
53713
  console.error("Error during chunk catchup:", error);
53611
53714
  } finally {
53612
53715
  if (dialogId2 !== dialogIdRef.current) {
53613
- if (_optionalChain([pendingCatchupRef, 'access', _1393 => _1393.current, 'optionalAccess', _1394 => _1394.dialogId]) === dialogId2) {
53716
+ if (_optionalChain([pendingCatchupRef, 'access', _1387 => _1387.current, 'optionalAccess', _1388 => _1388.dialogId]) === dialogId2) {
53614
53717
  pendingCatchupRef.current = null;
53615
53718
  }
53616
53719
  } else {
@@ -53623,7 +53726,7 @@ function useChunkCatchup({
53623
53726
  lastFetchParams.current = null;
53624
53727
  bufferUntilInitialCatchupComplete.current = true;
53625
53728
  try {
53626
- await _optionalChain([catchUpChunksRef, 'access', _1395 => _1395.current, 'optionalCall', _1396 => _1396(pending.fromSequenceId)]);
53729
+ await _optionalChain([catchUpChunksRef, 'access', _1389 => _1389.current, 'optionalCall', _1390 => _1390(pending.fromSequenceId)]);
53627
53730
  } catch (rerunError) {
53628
53731
  console.error("Queued catch-up re-run failed:", rerunError);
53629
53732
  }
@@ -53687,7 +53790,7 @@ function useChunkCatchup({
53687
53790
 
53688
53791
  var EMPTY_FRAME = { messages: [], phase: "idle", typing: false, delayMs: 0 };
53689
53792
  function prefersReducedMotion() {
53690
- return typeof window !== "undefined" && _optionalChain([window, 'access', _1397 => _1397.matchMedia, 'optionalCall', _1398 => _1398("(prefers-reduced-motion: reduce)"), 'access', _1399 => _1399.matches]) === true;
53793
+ return typeof window !== "undefined" && _optionalChain([window, 'access', _1391 => _1391.matchMedia, 'optionalCall', _1392 => _1392("(prefers-reduced-motion: reduce)"), 'access', _1393 => _1393.matches]) === true;
53691
53794
  }
53692
53795
  function useScriptedStream(frames, resetKey, enabled = true) {
53693
53796
  const [index, setIndex] = _react.useState.call(void 0, 0);
@@ -53699,7 +53802,7 @@ function useScriptedStream(frames, resetKey, enabled = true) {
53699
53802
  }
53700
53803
  _react.useEffect.call(void 0, () => {
53701
53804
  setReducedMotion(prefersReducedMotion());
53702
- const mq = _optionalChain([window, 'access', _1400 => _1400.matchMedia, 'optionalCall', _1401 => _1401("(prefers-reduced-motion: reduce)")]);
53805
+ const mq = _optionalChain([window, 'access', _1394 => _1394.matchMedia, 'optionalCall', _1395 => _1395("(prefers-reduced-motion: reduce)")]);
53703
53806
  if (!mq) return;
53704
53807
  const onChange = () => setReducedMotion(mq.matches);
53705
53808
  mq.addEventListener("change", onChange);
@@ -53835,7 +53938,7 @@ function useJetStreamDialogSubscription({
53835
53938
  const lifecycle = _chunkKQKU4VXBcjs.startConnectionLifecycle.call(void 0, {
53836
53939
  conn: sharedConn,
53837
53940
  wsUrl,
53838
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _1402 => _1402.current, 'optionalCall', _1403 => _1403()]),
53941
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _1396 => _1396.current, 'optionalCall', _1397 => _1397()]),
53839
53942
  backoff: reconnectionBackoffRef.current,
53840
53943
  getFreshUrl: () => getNatsWsUrlRef.current(),
53841
53944
  // JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
@@ -53850,7 +53953,7 @@ function useJetStreamDialogSubscription({
53850
53953
  setReconnectionCount((c) => c + 1);
53851
53954
  }
53852
53955
  hadConnectionBeforeRef.current = true;
53853
- _optionalChain([onConnectRef, 'access', _1404 => _1404.current, 'optionalCall', _1405 => _1405()]);
53956
+ _optionalChain([onConnectRef, 'access', _1398 => _1398.current, 'optionalCall', _1399 => _1399()]);
53854
53957
  }
53855
53958
  if (status === "error") {
53856
53959
  console.warn("[JetStream] NATS protocol error:", evt.data);
@@ -53860,7 +53963,7 @@ function useJetStreamDialogSubscription({
53860
53963
  setIsConnected(false);
53861
53964
  setIsSubscribed(false);
53862
53965
  tearDownSubscription();
53863
- _optionalChain([onDisconnectRef, 'access', _1406 => _1406.current, 'optionalCall', _1407 => _1407()]);
53966
+ _optionalChain([onDisconnectRef, 'access', _1400 => _1400.current, 'optionalCall', _1401 => _1401()]);
53864
53967
  }
53865
53968
  }
53866
53969
  });
@@ -53989,7 +54092,7 @@ function useJetStreamDialogSubscription({
53989
54092
  }
53990
54093
  subscriptionRef.current = handle;
53991
54094
  setIsSubscribed(true);
53992
- _optionalChain([onSubscribedRef, 'access', _1408 => _1408.current, 'optionalCall', _1409 => _1409()]);
54095
+ _optionalChain([onSubscribedRef, 'access', _1402 => _1402.current, 'optionalCall', _1403 => _1403()]);
53993
54096
  } catch (e90) {
53994
54097
  if (!cancelled) {
53995
54098
  setIsSubscribed(false);
@@ -54103,20 +54206,20 @@ function useNatsDialogSubscription({
54103
54206
  const tearDownSubscriptions = () => {
54104
54207
  subscriptionRefs.current.forEach((sub) => {
54105
54208
  try {
54106
- _optionalChain([sub, 'optionalAccess', _1410 => _1410.unsubscribe, 'call', _1411 => _1411()]);
54209
+ _optionalChain([sub, 'optionalAccess', _1404 => _1404.unsubscribe, 'call', _1405 => _1405()]);
54107
54210
  } catch (e92) {
54108
54211
  }
54109
54212
  });
54110
54213
  subscriptionRefs.current.clear();
54111
54214
  lastSubscribedDialogIdRef.current = null;
54112
- _optionalChain([abortControllerRef, 'access', _1412 => _1412.current, 'optionalAccess', _1413 => _1413.abort, 'call', _1414 => _1414()]);
54215
+ _optionalChain([abortControllerRef, 'access', _1406 => _1406.current, 'optionalAccess', _1407 => _1407.abort, 'call', _1408 => _1408()]);
54113
54216
  abortControllerRef.current = null;
54114
54217
  };
54115
54218
  const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
54116
54219
  const lifecycle = _chunkKQKU4VXBcjs.startConnectionLifecycle.call(void 0, {
54117
54220
  conn: sharedConn,
54118
54221
  wsUrl,
54119
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _1415 => _1415.current, 'optionalCall', _1416 => _1416()]),
54222
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _1409 => _1409.current, 'optionalCall', _1410 => _1410()]),
54120
54223
  backoff: reconnectionBackoffRef.current,
54121
54224
  getFreshUrl: () => getNatsWsUrlRef.current(),
54122
54225
  shouldRetryOn: isDisconnectStatus,
@@ -54127,7 +54230,7 @@ function useNatsDialogSubscription({
54127
54230
  setReconnectionCount((c) => c + 1);
54128
54231
  }
54129
54232
  hadConnectionBeforeRef.current = true;
54130
- _optionalChain([onConnectRef, 'access', _1417 => _1417.current, 'optionalCall', _1418 => _1418()]);
54233
+ _optionalChain([onConnectRef, 'access', _1411 => _1411.current, 'optionalCall', _1412 => _1412()]);
54131
54234
  }
54132
54235
  if (status === "error") {
54133
54236
  console.warn("[NATS] protocol error:", evt.data);
@@ -54137,7 +54240,7 @@ function useNatsDialogSubscription({
54137
54240
  setIsConnected(false);
54138
54241
  setIsSubscribed(false);
54139
54242
  tearDownSubscriptions();
54140
- _optionalChain([onDisconnectRef, 'access', _1419 => _1419.current, 'optionalCall', _1420 => _1420()]);
54243
+ _optionalChain([onDisconnectRef, 'access', _1413 => _1413.current, 'optionalCall', _1414 => _1414()]);
54141
54244
  }
54142
54245
  }
54143
54246
  });
@@ -54170,13 +54273,13 @@ function useNatsDialogSubscription({
54170
54273
  setIsSubscribed(false);
54171
54274
  subscriptionRefs.current.forEach((sub) => {
54172
54275
  try {
54173
- _optionalChain([sub, 'optionalAccess', _1421 => _1421.unsubscribe, 'call', _1422 => _1422()]);
54276
+ _optionalChain([sub, 'optionalAccess', _1415 => _1415.unsubscribe, 'call', _1416 => _1416()]);
54174
54277
  } catch (e93) {
54175
54278
  }
54176
54279
  });
54177
54280
  subscriptionRefs.current.clear();
54178
54281
  lastSubscribedDialogIdRef.current = null;
54179
- _optionalChain([abortControllerRef, 'access', _1423 => _1423.current, 'optionalAccess', _1424 => _1424.abort, 'call', _1425 => _1425()]);
54282
+ _optionalChain([abortControllerRef, 'access', _1417 => _1417.current, 'optionalAccess', _1418 => _1418.abort, 'call', _1419 => _1419()]);
54180
54283
  abortControllerRef.current = null;
54181
54284
  }
54182
54285
  return;
@@ -54188,12 +54291,12 @@ function useNatsDialogSubscription({
54188
54291
  if (subscriptionRefs.current.size > 0) {
54189
54292
  subscriptionRefs.current.forEach((sub) => {
54190
54293
  try {
54191
- _optionalChain([sub, 'optionalAccess', _1426 => _1426.unsubscribe, 'call', _1427 => _1427()]);
54294
+ _optionalChain([sub, 'optionalAccess', _1420 => _1420.unsubscribe, 'call', _1421 => _1421()]);
54192
54295
  } catch (e94) {
54193
54296
  }
54194
54297
  });
54195
54298
  subscriptionRefs.current.clear();
54196
- _optionalChain([abortControllerRef, 'access', _1428 => _1428.current, 'optionalAccess', _1429 => _1429.abort, 'call', _1430 => _1430()]);
54299
+ _optionalChain([abortControllerRef, 'access', _1422 => _1422.current, 'optionalAccess', _1423 => _1423.abort, 'call', _1424 => _1424()]);
54197
54300
  }
54198
54301
  abortControllerRef.current = new AbortController();
54199
54302
  const abort = abortControllerRef.current;
@@ -54225,7 +54328,7 @@ function useNatsDialogSubscription({
54225
54328
  });
54226
54329
  lastSubscribedDialogIdRef.current = dialogId;
54227
54330
  setIsSubscribed(true);
54228
- _optionalChain([onSubscribedRef, 'access', _1431 => _1431.current, 'optionalCall', _1432 => _1432()]);
54331
+ _optionalChain([onSubscribedRef, 'access', _1425 => _1425.current, 'optionalCall', _1426 => _1426()]);
54229
54332
  };
54230
54333
  if (isConnectedRef.current) {
54231
54334
  createSubscriptions();
@@ -54235,7 +54338,7 @@ function useNatsDialogSubscription({
54235
54338
  abort.abort();
54236
54339
  subscriptionRefs.current.forEach((sub) => {
54237
54340
  try {
54238
- _optionalChain([sub, 'optionalAccess', _1433 => _1433.unsubscribe, 'call', _1434 => _1434()]);
54341
+ _optionalChain([sub, 'optionalAccess', _1427 => _1427.unsubscribe, 'call', _1428 => _1428()]);
54239
54342
  } catch (e96) {
54240
54343
  }
54241
54344
  });
@@ -54276,7 +54379,7 @@ function useNatsDialogSubscription({
54276
54379
  });
54277
54380
  lastSubscribedDialogIdRef.current = dialogId2;
54278
54381
  setIsSubscribed(true);
54279
- _optionalChain([onSubscribedRef, 'access', _1435 => _1435.current, 'optionalCall', _1436 => _1436()]);
54382
+ _optionalChain([onSubscribedRef, 'access', _1429 => _1429.current, 'optionalCall', _1430 => _1430()]);
54280
54383
  } else if (subscriptionRefs.current.size > 0) {
54281
54384
  setIsSubscribed(true);
54282
54385
  }
@@ -54284,10 +54387,10 @@ function useNatsDialogSubscription({
54284
54387
  return { isConnected, isSubscribed, reconnectionCount };
54285
54388
  }
54286
54389
  function buildNatsWsUrl(apiBaseUrl, options) {
54287
- const path = _optionalChain([options, 'optionalAccess', _1437 => _1437.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
54390
+ const path = _optionalChain([options, 'optionalAccess', _1431 => _1431.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
54288
54391
  const u = new URL(path, apiBaseUrl);
54289
54392
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
54290
- if (_optionalChain([options, 'optionalAccess', _1438 => _1438.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _1439 => _1439.token])) {
54393
+ if (_optionalChain([options, 'optionalAccess', _1432 => _1432.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _1433 => _1433.token])) {
54291
54394
  u.searchParams.set("authorization", options.token);
54292
54395
  }
54293
54396
  return u.toString();
@@ -54305,7 +54408,7 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
54305
54408
  const data = await res.json();
54306
54409
  return _nullishCoalesce(data.commands, () => ( []));
54307
54410
  } catch (err) {
54308
- if (_optionalChain([err, 'optionalAccess', _1440 => _1440.name]) === "AbortError") throw err;
54411
+ if (_optionalChain([err, 'optionalAccess', _1434 => _1434.name]) === "AbortError") throw err;
54309
54412
  console.warn("[chat] slash-commands fetch failed, showing none:", err);
54310
54413
  return [];
54311
54414
  }
@@ -54326,7 +54429,7 @@ function useSlashCommands(prefix, commandsUrl) {
54326
54429
  const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
54327
54430
  if (!cancelled) setCommands(next);
54328
54431
  } catch (err) {
54329
- if (!cancelled && _optionalChain([err, 'optionalAccess', _1441 => _1441.name]) !== "AbortError") {
54432
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _1435 => _1435.name]) !== "AbortError") {
54330
54433
  console.warn("[use-slash-commands] fetch failed:", err);
54331
54434
  }
54332
54435
  } finally {
@@ -54345,7 +54448,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
54345
54448
  const query = _reactquery.useQuery.call(void 0, {
54346
54449
  queryKey: ["chat-slash-commands", commandsUrl],
54347
54450
  queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
54348
- enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1442 => _1442.enabled]), () => ( true)),
54451
+ enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1436 => _1436.enabled]), () => ( true)),
54349
54452
  staleTime: Infinity,
54350
54453
  gcTime: Infinity,
54351
54454
  // The commands registry is non-critical chrome — a failure degrades to an
@@ -54384,21 +54487,21 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
54384
54487
  }
54385
54488
  const data = await res.json();
54386
54489
  return {
54387
- name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1443 => _1443.name]), () => ( null)),
54388
- icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1444 => _1444.icon]), () => ( null)),
54389
- greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1445 => _1445.greeting]), () => ( null)),
54390
- enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1446 => _1446.enabledRagTableIds]), () => ( [])),
54391
- quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1447 => _1447.quickActions]), () => ( [])),
54392
- suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1448 => _1448.suggestedQueries]), () => ( []))
54490
+ name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1437 => _1437.name]), () => ( null)),
54491
+ icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1438 => _1438.icon]), () => ( null)),
54492
+ greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1439 => _1439.greeting]), () => ( null)),
54493
+ enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1440 => _1440.enabledRagTableIds]), () => ( [])),
54494
+ quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1441 => _1441.quickActions]), () => ( [])),
54495
+ suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1442 => _1442.suggestedQueries]), () => ( []))
54393
54496
  };
54394
54497
  } catch (err) {
54395
- if (_optionalChain([err, 'optionalAccess', _1449 => _1449.name]) === "AbortError") throw err;
54498
+ if (_optionalChain([err, 'optionalAccess', _1443 => _1443.name]) === "AbortError") throw err;
54396
54499
  console.warn("[chat] empty-state config fetch failed, using neutral defaults:", err);
54397
54500
  return EMPTY_STATE_FALLBACK;
54398
54501
  }
54399
54502
  }
54400
54503
  function useEmptyStateConfig(emptyStateUrl, options) {
54401
- const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1450 => _1450.enabled]), () => ( true))) && !!emptyStateUrl;
54504
+ const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1444 => _1444.enabled]), () => ( true))) && !!emptyStateUrl;
54402
54505
  const query = _reactquery.useQuery.call(void 0, {
54403
54506
  queryKey: ["chat-empty-state", emptyStateUrl],
54404
54507
  queryFn: ({ signal }) => fetchEmptyStateConfig(signal, emptyStateUrl),
@@ -54427,7 +54530,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
54427
54530
  var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
54428
54531
  function uploadWithProgress(url, file, token, onProgress, signal) {
54429
54532
  return new Promise((resolve, reject) => {
54430
- if (_optionalChain([signal, 'optionalAccess', _1451 => _1451.aborted])) {
54533
+ if (_optionalChain([signal, 'optionalAccess', _1445 => _1445.aborted])) {
54431
54534
  reject(new Error("Upload cancelled"));
54432
54535
  return;
54433
54536
  }
@@ -54441,7 +54544,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
54441
54544
  xhr.removeEventListener("error", handleError);
54442
54545
  xhr.removeEventListener("abort", handleAbort);
54443
54546
  xhr.removeEventListener("timeout", handleTimeout);
54444
- _optionalChain([signal, 'optionalAccess', _1452 => _1452.removeEventListener, 'call', _1453 => _1453("abort", handleSignalAbort)]);
54547
+ _optionalChain([signal, 'optionalAccess', _1446 => _1446.removeEventListener, 'call', _1447 => _1447("abort", handleSignalAbort)]);
54445
54548
  if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
54446
54549
  };
54447
54550
  const handleProgress = (event) => {
@@ -54477,7 +54580,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
54477
54580
  const handleSignalAbort = () => {
54478
54581
  xhr.abort();
54479
54582
  };
54480
- _optionalChain([signal, 'optionalAccess', _1454 => _1454.addEventListener, 'call', _1455 => _1455("abort", handleSignalAbort, { once: true })]);
54583
+ _optionalChain([signal, 'optionalAccess', _1448 => _1448.addEventListener, 'call', _1449 => _1449("abort", handleSignalAbort, { once: true })]);
54481
54584
  xhr.upload.addEventListener("progress", handleProgress);
54482
54585
  xhr.addEventListener("load", handleLoad);
54483
54586
  xhr.addEventListener("error", handleError);
@@ -54521,12 +54624,12 @@ function useChatAttachments() {
54521
54624
  try {
54522
54625
  sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
54523
54626
  } catch (err) {
54524
- if (_optionalChain([ctrl, 'optionalAccess', _1456 => _1456.signal, 'access', _1457 => _1457.aborted])) return;
54627
+ if (_optionalChain([ctrl, 'optionalAccess', _1450 => _1450.signal, 'access', _1451 => _1451.aborted])) return;
54525
54628
  throw new Error(
54526
54629
  `Could not read file content: ${err instanceof Error ? err.message : String(err)}`
54527
54630
  );
54528
54631
  }
54529
- if (_optionalChain([ctrl, 'optionalAccess', _1458 => _1458.signal, 'access', _1459 => _1459.aborted])) return;
54632
+ if (_optionalChain([ctrl, 'optionalAccess', _1452 => _1452.signal, 'access', _1453 => _1453.aborted])) return;
54530
54633
  if (!sniffed) {
54531
54634
  throw new Error("Unrecognized file format");
54532
54635
  }
@@ -54540,7 +54643,7 @@ function useChatAttachments() {
54540
54643
  const urlResp = await _chunk5RJUHUCIcjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
54541
54644
  method: "POST",
54542
54645
  headers: { "Content-Type": "application/json" },
54543
- signal: _optionalChain([ctrl, 'optionalAccess', _1460 => _1460.signal]),
54646
+ signal: _optionalChain([ctrl, 'optionalAccess', _1454 => _1454.signal]),
54544
54647
  body: JSON.stringify({
54545
54648
  fileName: att.file.name,
54546
54649
  // Pass the SNIFFED MIME (not `file.type`, which can be a
@@ -54566,9 +54669,9 @@ function useChatAttachments() {
54566
54669
  (pct) => {
54567
54670
  updateOne(att.id, { progress: pct });
54568
54671
  },
54569
- _optionalChain([ctrl, 'optionalAccess', _1461 => _1461.signal])
54672
+ _optionalChain([ctrl, 'optionalAccess', _1455 => _1455.signal])
54570
54673
  );
54571
- if (_optionalChain([ctrl, 'optionalAccess', _1462 => _1462.signal, 'access', _1463 => _1463.aborted])) return;
54674
+ if (_optionalChain([ctrl, 'optionalAccess', _1456 => _1456.signal, 'access', _1457 => _1457.aborted])) return;
54572
54675
  updateOne(att.id, {
54573
54676
  status: "ready",
54574
54677
  progress: 100,
@@ -54576,7 +54679,7 @@ function useChatAttachments() {
54576
54679
  viewToken: mintData.viewToken
54577
54680
  });
54578
54681
  } catch (err) {
54579
- if (_optionalChain([ctrl, 'optionalAccess', _1464 => _1464.signal, 'access', _1465 => _1465.aborted])) return;
54682
+ if (_optionalChain([ctrl, 'optionalAccess', _1458 => _1458.signal, 'access', _1459 => _1459.aborted])) return;
54580
54683
  const message2 = err instanceof Error ? err.message : String(err);
54581
54684
  updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
54582
54685
  } finally {
@@ -54763,7 +54866,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
54763
54866
  yield chunk;
54764
54867
  }
54765
54868
  } catch (err) {
54766
- if (_optionalChain([err, 'optionalAccess', _1466 => _1466.name]) === "AbortError" || ctrl.signal.aborted) {
54869
+ if (_optionalChain([err, 'optionalAccess', _1460 => _1460.name]) === "AbortError" || ctrl.signal.aborted) {
54767
54870
  return;
54768
54871
  }
54769
54872
  const errorMessage = err instanceof Error ? err.message : "An error occurred";
@@ -54814,7 +54917,7 @@ function useChat({
54814
54917
  const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
54815
54918
  onMessagesChangeRef.current = onMessagesChange;
54816
54919
  _react.useEffect.call(void 0, () => {
54817
- _optionalChain([onMessagesChangeRef, 'access', _1467 => _1467.current, 'optionalCall', _1468 => _1468(messages)]);
54920
+ _optionalChain([onMessagesChangeRef, 'access', _1461 => _1461.current, 'optionalCall', _1462 => _1462(messages)]);
54818
54921
  }, [messages]);
54819
54922
  const {
54820
54923
  streamMessage,
@@ -54851,7 +54954,7 @@ function useChat({
54851
54954
  name: "You",
54852
54955
  content: text,
54853
54956
  timestamp: /* @__PURE__ */ new Date(),
54854
- ..._optionalChain([options, 'optionalAccess', _1469 => _1469.hidden]) ? { hidden: true } : {}
54957
+ ..._optionalChain([options, 'optionalAccess', _1463 => _1463.hidden]) ? { hidden: true } : {}
54855
54958
  };
54856
54959
  addMessage(userMessage);
54857
54960
  setIsTyping(true);
@@ -54913,7 +55016,7 @@ function useChat({
54913
55016
  currentTextSegment = "";
54914
55017
  }
54915
55018
  const seg = segment;
54916
- const proposalId = _optionalChain([seg, 'access', _1470 => _1470.data, 'optionalAccess', _1471 => _1471.requestId]);
55019
+ const proposalId = _optionalChain([seg, 'access', _1464 => _1464.data, 'optionalAccess', _1465 => _1465.requestId]);
54917
55020
  const updateApprovalMessage = (transform) => {
54918
55021
  setMessages((prev) => {
54919
55022
  for (let i = prev.length - 1; i >= 0; i--) {
@@ -54922,7 +55025,7 @@ function useChat({
54922
55025
  if (!Array.isArray(m.content)) continue;
54923
55026
  const segments = m.content;
54924
55027
  const hasMatch = segments.some(
54925
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1472 => _1472.data, 'optionalAccess', _1473 => _1473.requestId]) === proposalId
55028
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1466 => _1466.data, 'optionalAccess', _1467 => _1467.requestId]) === proposalId
54926
55029
  );
54927
55030
  if (!hasMatch) continue;
54928
55031
  const next = [...prev];
@@ -54964,11 +55067,11 @@ function useChat({
54964
55067
  if (!Array.isArray(m.content)) continue;
54965
55068
  const segments = m.content;
54966
55069
  const hasMatch = segments.some(
54967
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1474 => _1474.data, 'optionalAccess', _1475 => _1475.requestId]) === decision.proposalId
55070
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1468 => _1468.data, 'optionalAccess', _1469 => _1469.requestId]) === decision.proposalId
54968
55071
  );
54969
55072
  if (!hasMatch) continue;
54970
55073
  const flipped = segments.map(
54971
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1476 => _1476.data, 'optionalAccess', _1477 => _1477.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
55074
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1470 => _1470.data, 'optionalAccess', _1471 => _1471.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
54972
55075
  );
54973
55076
  const next = [...prev];
54974
55077
  next[i] = { ...m, content: flipped };
@@ -55096,7 +55199,7 @@ function buildConfirmToolBody(request) {
55096
55199
  async function readServerErrorMessage(response) {
55097
55200
  try {
55098
55201
  const body = await response.json();
55099
- if (typeof _optionalChain([body, 'optionalAccess', _1478 => _1478.error]) === "string" && body.error.length > 0) return body.error;
55202
+ if (typeof _optionalChain([body, 'optionalAccess', _1472 => _1472.error]) === "string" && body.error.length > 0) return body.error;
55100
55203
  } catch (e98) {
55101
55204
  }
55102
55205
  return null;
@@ -55317,7 +55420,7 @@ var STORAGE_KEY2 = "conversation";
55317
55420
  var namespaceFor = (source) => {
55318
55421
  const base = `mingo-chat-${source}`;
55319
55422
  const auth = _chunk5RJUHUCIcjs.getEmbedProxyAuth.call(void 0, );
55320
- return _optionalChain([auth, 'optionalAccess', _1479 => _1479.email]) ? `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}` : base;
55423
+ return _optionalChain([auth, 'optionalAccess', _1473 => _1473.email]) ? `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}` : base;
55321
55424
  };
55322
55425
  function createChatConversationStorage(source) {
55323
55426
  return _chunk5RJUHUCIcjs.createLocalStorageAdapter.call(void 0, {
@@ -55379,8 +55482,8 @@ function useChatHistoryHydration({
55379
55482
  );
55380
55483
  if (!res.ok) return;
55381
55484
  const payload = await res.json().catch(() => null);
55382
- const body = _nullishCoalesce(_optionalChain([payload, 'optionalAccess', _1480 => _1480.data]), () => ( payload));
55383
- const rows = Array.isArray(_optionalChain([body, 'optionalAccess', _1481 => _1481.messages])) ? body.messages : [];
55485
+ const body = _nullishCoalesce(_optionalChain([payload, 'optionalAccess', _1474 => _1474.data]), () => ( payload));
55486
+ const rows = Array.isArray(_optionalChain([body, 'optionalAccess', _1475 => _1475.messages])) ? body.messages : [];
55384
55487
  if (cancelled || rows.length === 0) return;
55385
55488
  const hydrated = [];
55386
55489
  const sourcesSeed = /* @__PURE__ */ new Map();
@@ -55487,11 +55590,11 @@ function appendToTrailingAssistant(prev, segments) {
55487
55590
  for (const seg of segments) {
55488
55591
  const tail = merged[merged.length - 1];
55489
55592
  const key = upsertKey(seg);
55490
- if (seg.type === "text" && _optionalChain([tail, 'optionalAccess', _1482 => _1482.type]) === "text") {
55593
+ if (seg.type === "text" && _optionalChain([tail, 'optionalAccess', _1476 => _1476.type]) === "text") {
55491
55594
  merged[merged.length - 1] = { type: "text", text: tail.text + seg.text };
55492
- } else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess', _1483 => _1483.type]) === "thinking") {
55595
+ } else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess', _1477 => _1477.type]) === "thinking") {
55493
55596
  merged[merged.length - 1] = { type: "thinking", text: tail.text + seg.text };
55494
- } else if (seg.type === "guide" && _optionalChain([tail, 'optionalAccess', _1484 => _1484.type]) === "guide") {
55597
+ } else if (seg.type === "guide" && _optionalChain([tail, 'optionalAccess', _1478 => _1478.type]) === "guide") {
55495
55598
  merged[merged.length - 1] = { type: "guide", text: tail.text + seg.text };
55496
55599
  } else if (key) {
55497
55600
  const idx = merged.findIndex((m) => upsertKey(m) === key);
@@ -55531,7 +55634,7 @@ function applyApprovalStatusToSegment(s, requestId, status, resolvedByName) {
55531
55634
  }
55532
55635
  if (s.type !== "approval_batch") return s;
55533
55636
  const isAnchor = s.data.approvalRequestId === requestId;
55534
- const hasRow = _optionalChain([s, 'access', _1485 => _1485.data, 'access', _1486 => _1486.toolCalls, 'optionalAccess', _1487 => _1487.some, 'call', _1488 => _1488((c) => c.toolExecutionRequestId === requestId)]);
55637
+ const hasRow = _optionalChain([s, 'access', _1479 => _1479.data, 'access', _1480 => _1480.toolCalls, 'optionalAccess', _1481 => _1481.some, 'call', _1482 => _1482((c) => c.toolExecutionRequestId === requestId)]);
55535
55638
  if (!isAnchor && !hasRow) return s;
55536
55639
  const nextResolvedBy = _nullishCoalesce(resolvedByName, () => ( s.resolvedByName));
55537
55640
  const nextExecutions = hasRow ? {
@@ -55553,8 +55656,8 @@ function applyApprovalStatusToSegment(s, requestId, status, resolvedByName) {
55553
55656
  };
55554
55657
  }
55555
55658
  function nextBatchExecution(prevExec, toolData) {
55556
- if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess', _1489 => _1489.status]) === "done") return null;
55557
- return toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess', _1490 => _1490.result]), success: _optionalChain([prevExec, 'optionalAccess', _1491 => _1491.success]) };
55659
+ if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess', _1483 => _1483.status]) === "done") return null;
55660
+ return toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess', _1484 => _1484.result]), success: _optionalChain([prevExec, 'optionalAccess', _1485 => _1485.success]) };
55558
55661
  }
55559
55662
  function withBatchExecution(seg, execId, state) {
55560
55663
  return {
@@ -55571,11 +55674,11 @@ function projectBatchStatusToMessages(prev, anchorId, status) {
55571
55674
  }
55572
55675
  function projectBatchRowFailureToMessages(prev, rowRequestId) {
55573
55676
  return mapSegments(prev, (s) => {
55574
- if (s.type !== "approval_batch" || !_optionalChain([s, 'access', _1492 => _1492.data, 'access', _1493 => _1493.toolCalls, 'optionalAccess', _1494 => _1494.some, 'call', _1495 => _1495((c) => c.toolExecutionRequestId === rowRequestId)])) {
55677
+ if (s.type !== "approval_batch" || !_optionalChain([s, 'access', _1486 => _1486.data, 'access', _1487 => _1487.toolCalls, 'optionalAccess', _1488 => _1488.some, 'call', _1489 => _1489((c) => c.toolExecutionRequestId === rowRequestId)])) {
55575
55678
  return s;
55576
55679
  }
55577
- const existing = _optionalChain([s, 'access', _1496 => _1496.data, 'access', _1497 => _1497.executions, 'optionalAccess', _1498 => _1498[rowRequestId]]);
55578
- if (_optionalChain([existing, 'optionalAccess', _1499 => _1499.status]) === "done") return s;
55680
+ const existing = _optionalChain([s, 'access', _1490 => _1490.data, 'access', _1491 => _1491.executions, 'optionalAccess', _1492 => _1492[rowRequestId]]);
55681
+ if (_optionalChain([existing, 'optionalAccess', _1493 => _1493.status]) === "done") return s;
55579
55682
  return withBatchExecution(s, rowRequestId, { status: "done", success: false });
55580
55683
  });
55581
55684
  }
@@ -55614,7 +55717,7 @@ function mergeToolExecutionIfPresent(prev, segment) {
55614
55717
  for (let j = message2.segments.length - 1; j >= 0; j--) {
55615
55718
  const seg = message2.segments[j];
55616
55719
  if (execId && seg.type === "approval_batch" && seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId)) {
55617
- const prevExec = _optionalChain([seg, 'access', _1500 => _1500.data, 'access', _1501 => _1501.executions, 'optionalAccess', _1502 => _1502[execId]]);
55720
+ const prevExec = _optionalChain([seg, 'access', _1494 => _1494.data, 'access', _1495 => _1495.executions, 'optionalAccess', _1496 => _1496[execId]]);
55618
55721
  const nextExec = nextBatchExecution(prevExec, toolData);
55619
55722
  if (nextExec === null) return prev;
55620
55723
  if (sameExecutionState(prevExec, nextExec)) return prev;
@@ -55803,9 +55906,9 @@ var MessageSegmentAccumulator = class {
55803
55906
  type: "tool_execution",
55804
55907
  data: {
55805
55908
  ...toolData,
55806
- toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _1503 => _1503.data, 'access', _1504 => _1504.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _1505 => _1505.toolTitle]))),
55807
- toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess', _1506 => _1506.data, 'access', _1507 => _1507.toolExplanation]))), () => ( _optionalChain([executingTool, 'optionalAccess', _1508 => _1508.toolExplanation]))),
55808
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _1509 => _1509.parameters])
55909
+ toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _1497 => _1497.data, 'access', _1498 => _1498.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _1499 => _1499.toolTitle]))),
55910
+ toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess', _1500 => _1500.data, 'access', _1501 => _1501.toolExplanation]))), () => ( _optionalChain([executingTool, 'optionalAccess', _1502 => _1502.toolExplanation]))),
55911
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _1503 => _1503.parameters])
55809
55912
  }
55810
55913
  };
55811
55914
  if (existingIndex !== -1) {
@@ -55829,7 +55932,7 @@ var MessageSegmentAccumulator = class {
55829
55932
  if (seg.type !== "approval_batch") return seg;
55830
55933
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
55831
55934
  if (!hasCall) return seg;
55832
- const prev = _optionalChain([seg, 'access', _1510 => _1510.data, 'access', _1511 => _1511.executions, 'optionalAccess', _1512 => _1512[execId]]);
55935
+ const prev = _optionalChain([seg, 'access', _1504 => _1504.data, 'access', _1505 => _1505.executions, 'optionalAccess', _1506 => _1506[execId]]);
55833
55936
  const next = nextBatchExecution(prev, toolData);
55834
55937
  matched = true;
55835
55938
  if (next === null) return seg;
@@ -55971,8 +56074,8 @@ var MessageSegmentAccumulator = class {
55971
56074
  requestId,
55972
56075
  {
55973
56076
  ...pendingApproval,
55974
- command: _optionalChain([pendingApproval, 'optionalAccess', _1513 => _1513.command]) || "",
55975
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _1514 => _1514.approvalType]) || approvalType
56077
+ command: _optionalChain([pendingApproval, 'optionalAccess', _1507 => _1507.command]) || "",
56078
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _1508 => _1508.approvalType]) || approvalType
55976
56079
  },
55977
56080
  status
55978
56081
  );
@@ -55997,9 +56100,9 @@ var MessageSegmentAccumulator = class {
55997
56100
  type: "escalation_offer",
55998
56101
  // The resolved chunk carries no text/origin — a redelivered offer must
55999
56102
  // not blank the card the PENDING chunk already painted.
56000
- data: { offerId, text: text || _optionalChain([existing, 'optionalAccess', _1515 => _1515.data, 'access', _1516 => _1516.text]) || "", origin: _nullishCoalesce(origin, () => ( _optionalChain([existing, 'optionalAccess', _1517 => _1517.data, 'access', _1518 => _1518.origin]))) },
56103
+ data: { offerId, text: text || _optionalChain([existing, 'optionalAccess', _1509 => _1509.data, 'access', _1510 => _1510.text]) || "", origin: _nullishCoalesce(origin, () => ( _optionalChain([existing, 'optionalAccess', _1511 => _1511.data, 'access', _1512 => _1512.origin]))) },
56001
56104
  status,
56002
- resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess', _1519 => _1519.resolvedByName]))),
56105
+ resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess', _1513 => _1513.resolvedByName]))),
56003
56106
  onApprove: this.callbacks.onEscalationApprove,
56004
56107
  onReject: this.callbacks.onEscalationReject
56005
56108
  };
@@ -56215,7 +56318,7 @@ function createMessageSegmentAccumulator(callbacks) {
56215
56318
  // src/chat-protocol/events.ts
56216
56319
  var GUIDE_ORIGIN = "guide";
56217
56320
  function isGuideOrigin(source) {
56218
- return _optionalChain([source, 'optionalAccess', _1520 => _1520.origin]) === GUIDE_ORIGIN;
56321
+ return _optionalChain([source, 'optionalAccess', _1514 => _1514.origin]) === GUIDE_ORIGIN;
56219
56322
  }
56220
56323
  var ESCALATION_STATE = {
56221
56324
  PENDING: "PENDING",
@@ -56338,7 +56441,7 @@ function createChatStreamReducer(options = {}) {
56338
56441
  let stateCache = null;
56339
56442
  function invalidate() {
56340
56443
  stateCache = null;
56341
- _optionalChain([onChange, 'optionalCall', _1521 => _1521()]);
56444
+ _optionalChain([onChange, 'optionalCall', _1515 => _1515()]);
56342
56445
  }
56343
56446
  function getState() {
56344
56447
  if (!stateCache) {
@@ -56355,7 +56458,7 @@ function createChatStreamReducer(options = {}) {
56355
56458
  return stateCache;
56356
56459
  }
56357
56460
  function emit(name, ...args) {
56358
- _optionalChain([onEffect, 'optionalCall', _1522 => _1522({ name, args })]);
56461
+ _optionalChain([onEffect, 'optionalCall', _1516 => _1516({ name, args })]);
56359
56462
  }
56360
56463
  function setMessagesInternal(next) {
56361
56464
  if (next !== messages) {
@@ -56386,12 +56489,12 @@ function createChatStreamReducer(options = {}) {
56386
56489
  return [...next.slice(0, -1), { ...last, streamSeq: seq }];
56387
56490
  }
56388
56491
  function applySegmentsToState(segments, meta) {
56389
- const seq = _optionalChain([meta, 'optionalAccess', _1523 => _1523.streamSeq]);
56390
- if (_optionalChain([meta, 'optionalAccess', _1524 => _1524.append]) && meta.isCompacting) {
56492
+ const seq = _optionalChain([meta, 'optionalAccess', _1517 => _1517.streamSeq]);
56493
+ if (_optionalChain([meta, 'optionalAccess', _1518 => _1518.append]) && meta.isCompacting) {
56391
56494
  setMessagesInternal(stampTrailingAssistantSeq(upsertTrailingCompaction(messages, segments), seq));
56392
56495
  return;
56393
56496
  }
56394
- if (_optionalChain([meta, 'optionalAccess', _1525 => _1525.append])) {
56497
+ if (_optionalChain([meta, 'optionalAccess', _1519 => _1519.append])) {
56395
56498
  setMessagesInternal(stampTrailingAssistantSeq(appendToTrailingAssistant(messages, segments), seq));
56396
56499
  return;
56397
56500
  }
@@ -56403,7 +56506,7 @@ function createChatStreamReducer(options = {}) {
56403
56506
  adoptTrailingAssistant = false;
56404
56507
  const last = messages[messages.length - 1];
56405
56508
  if (!last || last.role !== "assistant" || adoptTail) return;
56406
- const hasContent2 = (_nullishCoalesce(_optionalChain([last, 'access', _1526 => _1526.segments, 'optionalAccess', _1527 => _1527.length]), () => ( 0))) > 0 || last.content !== "";
56509
+ const hasContent2 = (_nullishCoalesce(_optionalChain([last, 'access', _1520 => _1520.segments, 'optionalAccess', _1521 => _1521.length]), () => ( 0))) > 0 || last.content !== "";
56407
56510
  if (!hasContent2) return;
56408
56511
  setMessagesInternal([
56409
56512
  ...messages,
@@ -56631,13 +56734,13 @@ function createChatStreamReducer(options = {}) {
56631
56734
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
56632
56735
  pendingEscalated.set(requestId, {
56633
56736
  command: summary,
56634
- explanation: _optionalChain([required, 'optionalAccess', _1528 => _1528.toolExplanation]),
56737
+ explanation: _optionalChain([required, 'optionalAccess', _1522 => _1522.toolExplanation]),
56635
56738
  approvalType,
56636
56739
  toolCalls
56637
56740
  });
56638
56741
  emit("onEscalatedApproval", requestId, {
56639
56742
  command: summary,
56640
- explanation: _optionalChain([required, 'optionalAccess', _1529 => _1529.toolExplanation]),
56743
+ explanation: _optionalChain([required, 'optionalAccess', _1523 => _1523.toolExplanation]),
56641
56744
  approvalType
56642
56745
  });
56643
56746
  break;
@@ -56827,7 +56930,7 @@ function createChatStreamReducer(options = {}) {
56827
56930
  let message2;
56828
56931
  if (event.details) {
56829
56932
  try {
56830
- message2 = _optionalChain([JSON, 'access', _1530 => _1530.parse, 'call', _1531 => _1531(event.details), 'optionalAccess', _1532 => _1532.error, 'optionalAccess', _1533 => _1533.message]);
56933
+ message2 = _optionalChain([JSON, 'access', _1524 => _1524.parse, 'call', _1525 => _1525(event.details), 'optionalAccess', _1526 => _1526.error, 'optionalAccess', _1527 => _1527.message]);
56831
56934
  } catch (e103) {
56832
56935
  message2 = event.details;
56833
56936
  }
@@ -57044,7 +57147,7 @@ function createChatStreamReducer(options = {}) {
57044
57147
  const resolveBatch = (status, confirm) => async () => {
57045
57148
  setMessagesInternal(projectBatchStatusToMessages(messages, anchorId, status));
57046
57149
  for (const id of ids) {
57047
- const ok = await _optionalChain([confirm, 'optionalCall', _1534 => _1534(id)]);
57150
+ const ok = await _optionalChain([confirm, 'optionalCall', _1528 => _1528(id)]);
57048
57151
  if (ok === false) {
57049
57152
  setMessagesInternal(projectBatchRowFailureToMessages(messages, id));
57050
57153
  }
@@ -57187,8 +57290,8 @@ function createChatStreamReducer(options = {}) {
57187
57290
  }
57188
57291
  }
57189
57292
  }
57190
- hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess', _1535 => _1535.resumed]), () => ( messages.length > 0)));
57191
- if (_optionalChain([extras, 'optionalAccess', _1536 => _1536.agentBusy])) agentBusyState();
57293
+ hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess', _1529 => _1529.resumed]), () => ( messages.length > 0)));
57294
+ if (_optionalChain([extras, 'optionalAccess', _1530 => _1530.agentBusy])) agentBusyState();
57192
57295
  invalidate();
57193
57296
  }
57194
57297
  return {
@@ -57273,7 +57376,7 @@ function createChatStreamReducer(options = {}) {
57273
57376
  },
57274
57377
  endSseTurn() {
57275
57378
  const last = messages[messages.length - 1];
57276
- if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access', _1537 => _1537.segments, 'optionalAccess', _1538 => _1538.length]), () => ( 0))) === 0 && last.content === "") {
57379
+ if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access', _1531 => _1531.segments, 'optionalAccess', _1532 => _1532.length]), () => ( 0))) === 0 && last.content === "") {
57277
57380
  messages = messages.slice(0, -1);
57278
57381
  }
57279
57382
  sseCurrentText = "";
@@ -57427,10 +57530,10 @@ function createChatDialogStore(options = {}) {
57427
57530
  if (onEvict) {
57428
57531
  const sep = key.indexOf(KEY_SEP);
57429
57532
  onEvict(key.slice(0, sep), key.slice(sep + 1), {
57430
- messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _1539 => _1539.state, 'access', _1540 => _1540.messages]), () => ( EMPTY_STATE.messages)),
57431
- approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _1541 => _1541.state, 'access', _1542 => _1542.approvalStatuses]), () => ( EMPTY_STATE.approvalStatuses)),
57432
- lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _1543 => _1543.getLastAppliedSeq, 'call', _1544 => _1544()]), () => ( Number.NEGATIVE_INFINITY)),
57433
- pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _1545 => _1545.getPendingEchoes, 'call', _1546 => _1546()]), () => ( EMPTY_PENDING_ECHOES))
57533
+ messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _1533 => _1533.state, 'access', _1534 => _1534.messages]), () => ( EMPTY_STATE.messages)),
57534
+ approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _1535 => _1535.state, 'access', _1536 => _1536.approvalStatuses]), () => ( EMPTY_STATE.approvalStatuses)),
57535
+ lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _1537 => _1537.getLastAppliedSeq, 'call', _1538 => _1538()]), () => ( Number.NEGATIVE_INFINITY)),
57536
+ pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _1539 => _1539.getPendingEchoes, 'call', _1540 => _1540()]), () => ( EMPTY_PENDING_ECHOES))
57434
57537
  });
57435
57538
  }
57436
57539
  }
@@ -57440,12 +57543,12 @@ function createChatDialogStore(options = {}) {
57440
57543
  const key = keyOf(dialogId, side);
57441
57544
  let reducer2 = reducers.get(key);
57442
57545
  if (!reducer2) {
57443
- const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall', _1547 => _1547(dialogId, side)]), () => ( {}));
57546
+ const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall', _1541 => _1541(dialogId, side)]), () => ( {}));
57444
57547
  const userOnChange = base.onChange;
57445
57548
  reducer2 = createChatStreamReducer({
57446
57549
  ...base,
57447
57550
  onChange: () => {
57448
- _optionalChain([userOnChange, 'optionalCall', _1548 => _1548()]);
57551
+ _optionalChain([userOnChange, 'optionalCall', _1542 => _1542()]);
57449
57552
  notify();
57450
57553
  }
57451
57554
  });
@@ -57490,7 +57593,7 @@ function createChatDialogStore(options = {}) {
57490
57593
  };
57491
57594
  }
57492
57595
  function getSnapshot(dialogId, side = DEFAULT_DIALOG_SIDE) {
57493
- return _nullishCoalesce(_optionalChain([reducers, 'access', _1549 => _1549.get, 'call', _1550 => _1550(keyOf(dialogId, side)), 'optionalAccess', _1551 => _1551.state]), () => ( EMPTY_STATE));
57596
+ return _nullishCoalesce(_optionalChain([reducers, 'access', _1543 => _1543.get, 'call', _1544 => _1544(keyOf(dialogId, side)), 'optionalAccess', _1545 => _1545.state]), () => ( EMPTY_STATE));
57494
57597
  }
57495
57598
  function getServerSnapshot() {
57496
57599
  return EMPTY_STATE;
@@ -57582,7 +57685,7 @@ function createDeltaBatcher({
57582
57685
  pending = [];
57583
57686
  const key = pendingKey;
57584
57687
  for (const delta of batch) applyOne(delta, key);
57585
- _optionalChain([onFlushed, 'optionalCall', _1552 => _1552(batch.length)]);
57688
+ _optionalChain([onFlushed, 'optionalCall', _1546 => _1546(batch.length)]);
57586
57689
  }
57587
57690
  function schedule() {
57588
57691
  if (raf !== null || timer !== null) return;
@@ -57606,7 +57709,7 @@ function createDeltaBatcher({
57606
57709
  }
57607
57710
  if (!isDeltaEvent(event)) return false;
57608
57711
  const tail = pending[pending.length - 1];
57609
- const seqAdvances = _optionalChain([tail, 'optionalAccess', _1553 => _1553.seq]) == null ? event.seq == null : event.seq != null && event.seq > tail.seq;
57712
+ const seqAdvances = _optionalChain([tail, 'optionalAccess', _1547 => _1547.seq]) == null ? event.seq == null : event.seq != null && event.seq > tail.seq;
57610
57713
  if (tail && seqAdvances && tail.type === event.type && (tail.type !== "text-delta" || tail.leading === event.leading)) {
57611
57714
  pending[pending.length - 1] = {
57612
57715
  ...tail,
@@ -57639,7 +57742,7 @@ function useChatStreamReducer({
57639
57742
  }) {
57640
57743
  const optionsRef = _react.useRef.call(void 0, createReducerOptions);
57641
57744
  optionsRef.current = createReducerOptions;
57642
- const reducer2 = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([optionsRef, 'access', _1554 => _1554.current, 'optionalCall', _1555 => _1555()]), () => ( {})));
57745
+ const reducer2 = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([optionsRef, 'access', _1548 => _1548.current, 'optionalCall', _1549 => _1549()]), () => ( {})));
57643
57746
  const getSnapshot = _react.useCallback.call(void 0, () => store.getSnapshot(dialogId, side), [store, dialogId, side]);
57644
57747
  const getServerSnapshot = _react.useCallback.call(void 0, () => store.getServerSnapshot(), [store]);
57645
57748
  const subscribe = _react.useCallback.call(void 0, (listener) => store.subscribe(listener), [store]);
@@ -57699,7 +57802,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
57699
57802
  const { active = true } = runtimeOptions;
57700
57803
  const runtime = _chunk7OPWSWEJcjs.useRequiredChatRuntime.call(void 0, );
57701
57804
  const source = runtime.source || DEFAULT_CHAT_SOURCE;
57702
- const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1556 => _1556.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
57805
+ const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1550 => _1550.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
57703
57806
  const sendMessageRef = _react.useRef.call(void 0, async () => true);
57704
57807
  const cardResolve = _react.useCallback.call(void 0,
57705
57808
  (action) => (reqId) => {
@@ -57734,7 +57837,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
57734
57837
  if (!restoredConversationRef.current) {
57735
57838
  restoredConversationRef.current = true;
57736
57839
  pruneStaleChatConversationStorage(source);
57737
- conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access', _1557 => _1557.load, 'call', _1558 => _1558(), 'optionalAccess', _1559 => _1559.conversationId]), () => ( null));
57840
+ conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access', _1551 => _1551.load, 'call', _1552 => _1552(), 'optionalAccess', _1553 => _1553.conversationId]), () => ( null));
57738
57841
  }
57739
57842
  const commandsUrl = runtime.endpoints.commandsUrl;
57740
57843
  const { commands: slashCommands } = useSlashCommandRegistry(commandsUrl, {
@@ -57841,7 +57944,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
57841
57944
  const serverMessage = await readServerErrorMessage(response);
57842
57945
  throw new Error(_nullishCoalesce(serverMessage, () => ( `Chat request failed: ${response.status}`)));
57843
57946
  }
57844
- const reader = _optionalChain([response, 'access', _1560 => _1560.body, 'optionalAccess', _1561 => _1561.getReader, 'call', _1562 => _1562()]);
57947
+ const reader = _optionalChain([response, 'access', _1554 => _1554.body, 'optionalAccess', _1555 => _1555.getReader, 'call', _1556 => _1556()]);
57845
57948
  if (!reader) throw new Error("No response body");
57846
57949
  const frameDecoder = createSseFrameDecoder();
57847
57950
  let finished = false;
@@ -57864,7 +57967,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
57864
57967
  }
57865
57968
  return true;
57866
57969
  } catch (err) {
57867
- if (_optionalChain([err, 'optionalAccess', _1563 => _1563.name]) === "AbortError" || ctrl.signal.aborted) {
57970
+ if (_optionalChain([err, 'optionalAccess', _1557 => _1557.name]) === "AbortError" || ctrl.signal.aborted) {
57868
57971
  return true;
57869
57972
  }
57870
57973
  flushDeltas();
@@ -57886,7 +57989,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
57886
57989
  );
57887
57990
  sendMessageRef.current = sendMessage;
57888
57991
  const stopMessage = _react.useCallback.call(void 0, () => {
57889
- _optionalChain([abortControllerRef, 'access', _1564 => _1564.current, 'optionalAccess', _1565 => _1565.abort, 'call', _1566 => _1566()]);
57992
+ _optionalChain([abortControllerRef, 'access', _1558 => _1558.current, 'optionalAccess', _1559 => _1559.abort, 'call', _1560 => _1560()]);
57890
57993
  flushDeltas();
57891
57994
  mutate((r) => r.setPhase("idle"));
57892
57995
  }, [mutate, flushDeltas]);
@@ -57902,7 +58005,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
57902
58005
  let sendIdx = -1;
57903
58006
  return state.messages.map((m) => {
57904
58007
  const segments = m.segments;
57905
- const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess', _1567 => _1567.filter, 'call', _1568 => _1568((s) => s.type === "text"), 'access', _1569 => _1569.map, 'call', _1570 => _1570((s) => s.text), 'access', _1571 => _1571.join, 'call', _1572 => _1572("")]), () => ( ""));
58008
+ const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess', _1561 => _1561.filter, 'call', _1562 => _1562((s) => s.type === "text"), 'access', _1563 => _1563.map, 'call', _1564 => _1564((s) => s.text), 'access', _1565 => _1565.join, 'call', _1566 => _1566("")]), () => ( ""));
57906
58009
  let sources;
57907
58010
  let scrollAnchor;
57908
58011
  if (m.role === "user" && !m.hidden) {
@@ -57911,7 +58014,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
57911
58014
  if (m.role === "assistant") {
57912
58015
  const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
57913
58016
  sources = sourcesMap.get(lookupIdx);
57914
- scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access', _1573 => _1573.get, 'call', _1574 => _1574(lookupIdx), 'optionalAccess', _1575 => _1575.scrollAnchor]), () => ( void 0));
58017
+ scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access', _1567 => _1567.get, 'call', _1568 => _1568(lookupIdx), 'optionalAccess', _1569 => _1569.scrollAnchor]), () => ( void 0));
57915
58018
  }
57916
58019
  return {
57917
58020
  id: m.id,
@@ -57940,7 +58043,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
57940
58043
  );
57941
58044
  return;
57942
58045
  }
57943
- const refSlug = typeof _optionalChain([reference, 'access', _1576 => _1576.metadata, 'optionalAccess', _1577 => _1577.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
58046
+ const refSlug = typeof _optionalChain([reference, 'access', _1570 => _1570.metadata, 'optionalAccess', _1571 => _1571.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
57944
58047
  const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
57945
58048
  const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
57946
58049
  const text = `/${cmdId} display "${escaped}"`;
@@ -57990,18 +58093,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
57990
58093
  /** True while the mount-time rebuild from the server transcript runs. */
57991
58094
  isHydratingHistory,
57992
58095
  /** Provider key for the lib's `<ModelDisplay>` icon. */
57993
- currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1578 => _1578.provider]), () => ( null)),
57994
- currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1579 => _1579.modelLabel]), () => ( null)),
57995
- currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1580 => _1580.contextWindowMaxTokens]), () => ( null)),
58096
+ currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1572 => _1572.provider]), () => ( null)),
58097
+ currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1573 => _1573.modelLabel]), () => ( null)),
58098
+ currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1574 => _1574.contextWindowMaxTokens]), () => ( null)),
57996
58099
  /** Input tokens (known after server's message_start frame; null until). */
57997
- currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1581 => _1581.inputTokens]), () => ( null)),
58100
+ currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1575 => _1575.inputTokens]), () => ( null)),
57998
58101
  /** Output tokens (known only after server's trailing usage frame). */
57999
- currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1582 => _1582.outputTokens]), () => ( null)),
58102
+ currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1576 => _1576.outputTokens]), () => ( null)),
58000
58103
  /** Cache hit % (read / total-input × 100). null during streaming. */
58001
- currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1583 => _1583.cacheHitRatePct]), () => ( null)),
58104
+ currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1577 => _1577.cacheHitRatePct]), () => ( null)),
58002
58105
  /** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
58003
58106
  * token counts). null until the trailing usage frame lands. */
58004
- currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1584 => _1584.breakdown]), () => ( null)),
58107
+ currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1578 => _1578.breakdown]), () => ( null)),
58005
58108
  // ─── Dialog management — stubs for v1 ────────────────────────────────
58006
58109
  // Guide mode keeps ONE server-side conversation per stored id
58007
58110
  // (`chat_conversations`, hydrated on mount). Surfacing multiple threads
@@ -58296,7 +58399,7 @@ function decodeNatsChunk(chunk) {
58296
58399
  userId: typeof data.userId === "string" ? data.userId : void 0,
58297
58400
  // Wire shape carries no label; fall back to the id (parity with
58298
58401
  // the history path in `process-historical-messages.ts`).
58299
- contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _1585 => _1585.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _1586 => _1586.id]) === "string").map((it) => ({
58402
+ contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _1579 => _1579.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _1580 => _1580.id]) === "string").map((it) => ({
58300
58403
  type: it.type,
58301
58404
  id: it.id,
58302
58405
  label: it.id
@@ -58348,15 +58451,15 @@ function decodeNatsChunk(chunk) {
58348
58451
 
58349
58452
  // src/components/chat/utils/process-historical-messages.ts
58350
58453
  function getOwnerDisplayName(owner) {
58351
- if (_optionalChain([owner, 'optionalAccess', _1587 => _1587.type]) === OWNER_TYPE.ADMIN && owner.user) {
58454
+ if (_optionalChain([owner, 'optionalAccess', _1581 => _1581.type]) === OWNER_TYPE.ADMIN && owner.user) {
58352
58455
  const { firstName, lastName } = owner.user;
58353
58456
  const name = [firstName, lastName].filter(Boolean).join(" ");
58354
58457
  if (name) return name;
58355
58458
  }
58356
- return _optionalChain([owner, 'optionalAccess', _1588 => _1588.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
58459
+ return _optionalChain([owner, 'optionalAccess', _1582 => _1582.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
58357
58460
  }
58358
58461
  function getOwnerAvatar(owner) {
58359
- return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1589 => _1589.user, 'optionalAccess', _1590 => _1590.image, 'optionalAccess', _1591 => _1591.imageUrl]), () => ( void 0));
58462
+ return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1583 => _1583.user, 'optionalAccess', _1584 => _1584.image, 'optionalAccess', _1585 => _1585.imageUrl]), () => ( void 0));
58360
58463
  }
58361
58464
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
58362
58465
  messageDataArray.forEach((data) => {
@@ -58555,7 +58658,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
58555
58658
  event.offerId,
58556
58659
  event.text,
58557
58660
  event.origin,
58558
- _nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess', _1592 => _1592[event.offerId]]), () => ( "pending"))
58661
+ _nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess', _1586 => _1586[event.offerId]]), () => ( "pending"))
58559
58662
  );
58560
58663
  break;
58561
58664
  case "ticket-escalated":
@@ -58581,7 +58684,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
58581
58684
  });
58582
58685
  break;
58583
58686
  case "escalation-offer-resolved":
58584
- _optionalChain([offerResolutions, 'optionalAccess', _1593 => _1593.set, 'call', _1594 => _1594(event.offerId, {
58687
+ _optionalChain([offerResolutions, 'optionalAccess', _1587 => _1587.set, 'call', _1588 => _1588(event.offerId, {
58585
58688
  status: event.status,
58586
58689
  resolvedByName: event.resolvedByName
58587
58690
  })]);
@@ -58659,7 +58762,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
58659
58762
  }
58660
58763
  }
58661
58764
  } else {
58662
- _optionalChain([escalatedApprovals, 'optionalAccess', _1595 => _1595.set, 'call', _1596 => _1596(event.requestId, {
58765
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1589 => _1589.set, 'call', _1590 => _1590(event.requestId, {
58663
58766
  command: event.command || "",
58664
58767
  explanation: event.explanation,
58665
58768
  approvalType,
@@ -58674,8 +58777,8 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
58674
58777
  const existingStatus = approvalStatuses[requestId];
58675
58778
  const status = existingStatus || event.status;
58676
58779
  const resolvedByName = event.resolvedByName;
58677
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1597 => _1597.get, 'call', _1598 => _1598(requestId)]);
58678
- if (_optionalChain([escalatedData, 'optionalAccess', _1599 => _1599.toolCalls]) && escalatedData.toolCalls.length > 0) {
58780
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1591 => _1591.get, 'call', _1592 => _1592(requestId)]);
58781
+ if (_optionalChain([escalatedData, 'optionalAccess', _1593 => _1593.toolCalls]) && escalatedData.toolCalls.length > 0) {
58679
58782
  if (batchApprovalsEnabled) {
58680
58783
  accumulator.addApprovalBatch(
58681
58784
  requestId,
@@ -58697,7 +58800,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
58697
58800
  );
58698
58801
  }
58699
58802
  }
58700
- _optionalChain([escalatedApprovals, 'optionalAccess', _1600 => _1600.delete, 'call', _1601 => _1601(requestId)]);
58803
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1594 => _1594.delete, 'call', _1595 => _1595(requestId)]);
58701
58804
  break;
58702
58805
  }
58703
58806
  if (escalatedData) {
@@ -58706,7 +58809,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
58706
58809
  explanation: escalatedData.explanation,
58707
58810
  approvalType: escalatedData.approvalType
58708
58811
  });
58709
- _optionalChain([escalatedApprovals, 'optionalAccess', _1602 => _1602.delete, 'call', _1603 => _1603(requestId)]);
58812
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1596 => _1596.delete, 'call', _1597 => _1597(requestId)]);
58710
58813
  }
58711
58814
  const before = accumulator.getSegments();
58712
58815
  const after = accumulator.updateApprovalStatus(requestId, status, resolvedByName);
@@ -58723,7 +58826,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
58723
58826
  let message2;
58724
58827
  if (event.details) {
58725
58828
  try {
58726
- message2 = _optionalChain([JSON, 'access', _1604 => _1604.parse, 'call', _1605 => _1605(event.details), 'optionalAccess', _1606 => _1606.error, 'optionalAccess', _1607 => _1607.message]);
58829
+ message2 = _optionalChain([JSON, 'access', _1598 => _1598.parse, 'call', _1599 => _1599(event.details), 'optionalAccess', _1600 => _1600.error, 'optionalAccess', _1601 => _1601.message]);
58727
58830
  } catch (e104) {
58728
58831
  message2 = event.details;
58729
58832
  }
@@ -58809,14 +58912,14 @@ function processHistoricalMessages(messages, options = {}) {
58809
58912
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
58810
58913
  return;
58811
58914
  }
58812
- const isUserMessage = _optionalChain([msg, 'access', _1608 => _1608.owner, 'optionalAccess', _1609 => _1609.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1610 => _1610.owner, 'optionalAccess', _1611 => _1611.type]) === OWNER_TYPE.ADMIN;
58915
+ const isUserMessage = _optionalChain([msg, 'access', _1602 => _1602.owner, 'optionalAccess', _1603 => _1603.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1604 => _1604.owner, 'optionalAccess', _1605 => _1605.type]) === OWNER_TYPE.ADMIN;
58813
58916
  if (isUserMessage) {
58814
58917
  flushAssistantMessage();
58815
- const userAuthorType = _optionalChain([msg, 'access', _1612 => _1612.owner, 'optionalAccess', _1613 => _1613.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
58918
+ const userAuthorType = _optionalChain([msg, 'access', _1606 => _1606.owner, 'optionalAccess', _1607 => _1607.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
58816
58919
  messageDataArray.forEach((data) => {
58817
58920
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
58818
58921
  const rawContext = data.contextItems;
58819
- const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1614 => _1614.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1615 => _1615.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
58922
+ const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1608 => _1608.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1609 => _1609.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
58820
58923
  processedMessages.push({
58821
58924
  id: msg.id,
58822
58925
  role: "user",
@@ -58853,7 +58956,7 @@ function processHistoricalMessages(messages, options = {}) {
58853
58956
  });
58854
58957
  const nextMsg = messages[index + 1];
58855
58958
  const isLastMessage = index === messages.length - 1;
58856
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1616 => _1616.owner, 'optionalAccess', _1617 => _1617.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1618 => _1618.owner, 'optionalAccess', _1619 => _1619.type]) === OWNER_TYPE.ADMIN);
58959
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1610 => _1610.owner, 'optionalAccess', _1611 => _1611.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1612 => _1612.owner, 'optionalAccess', _1613 => _1613.type]) === OWNER_TYPE.ADMIN);
58857
58960
  if (isLastMessage || nextIsFromUser) {
58858
58961
  flushAssistantMessage();
58859
58962
  }
@@ -58965,7 +59068,7 @@ function extractIncompleteMessageState(lastMessage) {
58965
59068
  break;
58966
59069
  case "approval_batch": {
58967
59070
  const allDone = !!segment.data.executions && segment.data.toolCalls.every(
58968
- (c) => _optionalChain([segment, 'access', _1620 => _1620.data, 'access', _1621 => _1621.executions, 'optionalAccess', _1622 => _1622[c.toolExecutionRequestId], 'optionalAccess', _1623 => _1623.status]) === "done"
59071
+ (c) => _optionalChain([segment, 'access', _1614 => _1614.data, 'access', _1615 => _1615.executions, 'optionalAccess', _1616 => _1616[c.toolExecutionRequestId], 'optionalAccess', _1617 => _1617.status]) === "done"
58969
59072
  );
58970
59073
  if (segment.status !== "rejected" && !allDone) {
58971
59074
  hasIncompleteState = true;
@@ -59001,11 +59104,11 @@ function extractIncompleteMessageState(lastMessage) {
59001
59104
  function extractIncompleteTailState(messages) {
59002
59105
  if (!messages || messages.length === 0) return void 0;
59003
59106
  let start = messages.length;
59004
- while (start > 0 && _optionalChain([messages, 'access', _1624 => _1624[start - 1], 'optionalAccess', _1625 => _1625.role]) === "assistant") start -= 1;
59107
+ while (start > 0 && _optionalChain([messages, 'access', _1618 => _1618[start - 1], 'optionalAccess', _1619 => _1619.role]) === "assistant") start -= 1;
59005
59108
  if (start === messages.length) return void 0;
59006
59109
  const segments = [];
59007
59110
  for (let i = start; i < messages.length; i += 1) {
59008
- const content = _optionalChain([messages, 'access', _1626 => _1626[i], 'optionalAccess', _1627 => _1627.content]);
59111
+ const content = _optionalChain([messages, 'access', _1620 => _1620[i], 'optionalAccess', _1621 => _1621.content]);
59009
59112
  if (Array.isArray(content)) segments.push(...content);
59010
59113
  }
59011
59114
  if (segments.length === 0) return void 0;
@@ -59359,7 +59462,7 @@ function useNatsChatAdapter(config, options = {}) {
59359
59462
  }, [active, fetchDialogs, loadDialogsPage]);
59360
59463
  const sendMessage = _react.useCallback.call(void 0,
59361
59464
  async (text, sendOptions) => {
59362
- const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1628 => _1628.hidden]), () => ( false));
59465
+ const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1622 => _1622.hidden]), () => ( false));
59363
59466
  mutate((r) => r.pushOptimisticSend(text, hidden));
59364
59467
  await publishUserMessage(text, { hidden, dialogId });
59365
59468
  },
@@ -59515,11 +59618,11 @@ function useNatsChatAdapter(config, options = {}) {
59515
59618
  // Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
59516
59619
  // contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
59517
59620
  // matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
59518
- currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1629 => _1629.provider]), () => ( modelProvider)), () => ( null)),
59519
- currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1630 => _1630.modelLabel]), () => ( modelLabel)), () => ( null)),
59520
- currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1631 => _1631.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1632 => _1632.contextWindowMaxTokens]))), () => ( null)),
59521
- currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1633 => _1633.inputTokensSize]), () => ( null)),
59522
- currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1634 => _1634.outputTokensSize]), () => ( null)),
59621
+ currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1623 => _1623.provider]), () => ( modelProvider)), () => ( null)),
59622
+ currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1624 => _1624.modelLabel]), () => ( modelLabel)), () => ( null)),
59623
+ currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1625 => _1625.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1626 => _1626.contextWindowMaxTokens]))), () => ( null)),
59624
+ currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1627 => _1627.inputTokensSize]), () => ( null)),
59625
+ currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1628 => _1628.outputTokensSize]), () => ( null)),
59523
59626
  currentCacheHitRatePct: null,
59524
59627
  currentUsageBreakdown: null,
59525
59628
  // Dialog management
@@ -59656,7 +59759,7 @@ function useUnifiedChat(options) {
59656
59759
  []
59657
59760
  );
59658
59761
  const setDialogScope = _react.useCallback.call(void 0,
59659
- (scope) => _optionalChain([activeStateRef, 'access', _1635 => _1635.current, 'access', _1636 => _1636.setDialogScope, 'optionalCall', _1637 => _1637(scope)]),
59762
+ (scope) => _optionalChain([activeStateRef, 'access', _1629 => _1629.current, 'access', _1630 => _1630.setDialogScope, 'optionalCall', _1631 => _1631(scope)]),
59660
59763
  []
59661
59764
  );
59662
59765
  const reloadDialogs = _react.useCallback.call(void 0,
@@ -59760,19 +59863,19 @@ function turnRequestKeys(content) {
59760
59863
  if (!Array.isArray(content)) return keys;
59761
59864
  for (const seg of content) {
59762
59865
  if (seg.type === "tool_execution") {
59763
- const id = _optionalChain([seg, 'access', _1638 => _1638.data, 'optionalAccess', _1639 => _1639.toolExecutionRequestId]);
59866
+ const id = _optionalChain([seg, 'access', _1632 => _1632.data, 'optionalAccess', _1633 => _1633.toolExecutionRequestId]);
59764
59867
  if (id) keys.add(id);
59765
59868
  } else if (seg.type === "approval_request") {
59766
- const id = _optionalChain([seg, 'access', _1640 => _1640.data, 'optionalAccess', _1641 => _1641.requestId]);
59869
+ const id = _optionalChain([seg, 'access', _1634 => _1634.data, 'optionalAccess', _1635 => _1635.requestId]);
59767
59870
  if (id) keys.add(id);
59768
59871
  } else if (seg.type === "escalation_offer") {
59769
- const id = _optionalChain([seg, 'access', _1642 => _1642.data, 'optionalAccess', _1643 => _1643.offerId]);
59872
+ const id = _optionalChain([seg, 'access', _1636 => _1636.data, 'optionalAccess', _1637 => _1637.offerId]);
59770
59873
  if (id) keys.add(id);
59771
59874
  } else if (seg.type === "approval_batch") {
59772
59875
  const data = seg.data;
59773
- if (_optionalChain([data, 'optionalAccess', _1644 => _1644.approvalRequestId])) keys.add(data.approvalRequestId);
59774
- for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1645 => _1645.toolCalls]), () => ( []))) {
59775
- if (_optionalChain([call, 'optionalAccess', _1646 => _1646.toolExecutionRequestId])) keys.add(call.toolExecutionRequestId);
59876
+ if (_optionalChain([data, 'optionalAccess', _1638 => _1638.approvalRequestId])) keys.add(data.approvalRequestId);
59877
+ for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1639 => _1639.toolCalls]), () => ( []))) {
59878
+ if (_optionalChain([call, 'optionalAccess', _1640 => _1640.toolExecutionRequestId])) keys.add(call.toolExecutionRequestId);
59776
59879
  }
59777
59880
  }
59778
59881
  }
@@ -59824,20 +59927,20 @@ function mergeHistoryWithRealtime(input) {
59824
59927
  }
59825
59928
  }
59826
59929
  const trailing = processedHistory[processedHistory.length - 1];
59827
- const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1647 => _1647.role]) === "assistant" ? trailing : null;
59828
- const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _1648 => _1648.content, 'access', _1649 => _1649.find, 'call', _1650 => _1650((s) => s.type === "approval_batch"), 'optionalAccess', _1651 => _1651.data, 'optionalAccess', _1652 => _1652.approvalRequestId]), () => ( null)) : null;
59930
+ const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1641 => _1641.role]) === "assistant" ? trailing : null;
59931
+ const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _1642 => _1642.content, 'access', _1643 => _1643.find, 'call', _1644 => _1644((s) => s.type === "approval_batch"), 'optionalAccess', _1645 => _1645.data, 'optionalAccess', _1646 => _1646.approvalRequestId]), () => ( null)) : null;
59829
59932
  let processedToUse = processedHistory;
59830
59933
  const pinnedSyntheticIds = /* @__PURE__ */ new Set();
59831
59934
  const droppedSyntheticIds = /* @__PURE__ */ new Set();
59832
59935
  if (historyBatchId) {
59833
59936
  const batchTwins = existingMessages.filter(
59834
59937
  (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some(
59835
- (s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1653 => _1653.data, 'optionalAccess', _1654 => _1654.approvalRequestId]) === historyBatchId
59938
+ (s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1647 => _1647.data, 'optionalAccess', _1648 => _1648.approvalRequestId]) === historyBatchId
59836
59939
  )
59837
59940
  );
59838
59941
  const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
59839
59942
  if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
59840
- const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1655 => _1655.content])) ? historyTrailingAssistant.content.length : 0;
59943
+ const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1649 => _1649.content])) ? historyTrailingAssistant.content.length : 0;
59841
59944
  const realtimeSize = existingWithSameBatch.content.length;
59842
59945
  if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
59843
59946
  processedToUse = processedHistory.slice(0, -1);
@@ -59879,9 +59982,9 @@ function mergeHistoryWithRealtime(input) {
59879
59982
  if (pinnedSyntheticIds.has(m.id)) return true;
59880
59983
  if (droppedSyntheticIds.has(m.id)) return false;
59881
59984
  if (processedIds.has(m.id)) return false;
59882
- if (_optionalChain([rawHistoryIds, 'optionalAccess', _1656 => _1656.has, 'call', _1657 => _1657(m.id)])) return false;
59985
+ if (_optionalChain([rawHistoryIds, 'optionalAccess', _1650 => _1650.has, 'call', _1651 => _1651(m.id)])) return false;
59883
59986
  if (m.role === "user" && m.id.startsWith("optimistic-") && typeof m.content === "string") {
59884
- const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1658 => _1658.timestamp, 'optionalAccess', _1659 => _1659.getTime, 'call', _1660 => _1660()]), () => ( 0))) <= historyFetchedAt;
59987
+ const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1652 => _1652.timestamp, 'optionalAccess', _1653 => _1653.getTime, 'call', _1654 => _1654()]), () => ( 0))) <= historyFetchedAt;
59885
59988
  return !(canBeInSnapshot && processedToUse.some((pm) => pm.role === "user" && pm.content === m.content));
59886
59989
  }
59887
59990
  if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
@@ -59905,7 +60008,7 @@ function mergeHistoryWithRealtime(input) {
59905
60008
  } else if (typeof m.streamSeq === "number") {
59906
60009
  covered = historyMaxStreamSeq > 0 && historyMaxStreamSeq >= m.streamSeq;
59907
60010
  } else {
59908
- covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1661 => _1661.timestamp, 'optionalAccess', _1662 => _1662.getTime, 'call', _1663 => _1663()]), () => ( 0))) <= historyFetchedAt;
60011
+ covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1655 => _1655.timestamp, 'optionalAccess', _1656 => _1656.getTime, 'call', _1657 => _1657()]), () => ( 0))) <= historyFetchedAt;
59909
60012
  }
59910
60013
  if (covered) return false;
59911
60014
  }
@@ -59961,7 +60064,7 @@ function normalizeHistoricalMessageData(md) {
59961
60064
  function isHistoricalUserTurn(m) {
59962
60065
  return !!m.owner;
59963
60066
  }
59964
- var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _1664 => _1664.type]) === "TEXT" && typeof d.text === "string";
60067
+ var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _1658 => _1658.type]) === "TEXT" && typeof d.text === "string";
59965
60068
  var THINK_MS = 550;
59966
60069
  var TOKEN_MS = 55;
59967
60070
  var USER_MS = 480;
@@ -60050,7 +60153,7 @@ var NODES = [
60050
60153
  ];
60051
60154
  var Primitive = NODES.reduce((primitive, node) => {
60052
60155
  const Slot2 = _reactslot.createSlot.call(void 0, `Primitive.${node}`);
60053
- const Node2 = React151.forwardRef((props, forwardedRef) => {
60156
+ const Node2 = React148.forwardRef((props, forwardedRef) => {
60054
60157
  const { asChild, ...primitiveProps } = props;
60055
60158
  const Comp = asChild ? Slot2 : node;
60056
60159
  if (typeof window !== "undefined") {
@@ -60083,7 +60186,7 @@ var VISUALLY_HIDDEN_STYLES = Object.freeze({
60083
60186
  whiteSpace: "nowrap",
60084
60187
  wordWrap: "normal"
60085
60188
  });
60086
- var VisuallyHidden = /* @__PURE__ */ React152.forwardRef(
60189
+ var VisuallyHidden = /* @__PURE__ */ React149.forwardRef(
60087
60190
  /* @__PURE__ */ __name4(function VisuallyHidden2(props, forwardedRef) {
60088
60191
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
60089
60192
  Primitive.span,
@@ -60208,7 +60311,7 @@ function useChatDialogManager({
60208
60311
  const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
60209
60312
  if (restoreTarget) {
60210
60313
  try {
60211
- await _optionalChain([unarchiveDialog, 'optionalCall', _1665 => _1665(restoreTarget.id)]);
60314
+ await _optionalChain([unarchiveDialog, 'optionalCall', _1659 => _1659(restoreTarget.id)]);
60212
60315
  } catch (err) {
60213
60316
  console.error("[useChatDialogManager] unarchive failed:", err);
60214
60317
  return;
@@ -60690,7 +60793,7 @@ function EmbeddableChatInner({
60690
60793
  }),
60691
60794
  [commandsUrl]
60692
60795
  );
60693
- const headerUserName = _optionalChain([identityUser, 'optionalAccess', _1666 => _1666.name, 'optionalAccess', _1667 => _1667.trim, 'call', _1668 => _1668()]) || [_optionalChain([identityUser, 'optionalAccess', _1669 => _1669.firstName]), _optionalChain([identityUser, 'optionalAccess', _1670 => _1670.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([userDisplayName, 'optionalAccess', _1671 => _1671.trim, 'call', _1672 => _1672()]) || void 0;
60796
+ const headerUserName = _optionalChain([identityUser, 'optionalAccess', _1660 => _1660.name, 'optionalAccess', _1661 => _1661.trim, 'call', _1662 => _1662()]) || [_optionalChain([identityUser, 'optionalAccess', _1663 => _1663.firstName]), _optionalChain([identityUser, 'optionalAccess', _1664 => _1664.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([userDisplayName, 'optionalAccess', _1665 => _1665.trim, 'call', _1666 => _1666()]) || void 0;
60694
60797
  const effectiveModes = _react.useMemo.call(void 0, () => {
60695
60798
  if (modes) return modes;
60696
60799
  const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
@@ -60699,19 +60802,19 @@ function EmbeddableChatInner({
60699
60802
  const mingoCaps = _react.useMemo.call(void 0, () => {
60700
60803
  if (mingoState) {
60701
60804
  return {
60702
- canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1673 => _1673.canRename]), () => ( false)),
60703
- canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1674 => _1674.canArchive]), () => ( false)),
60704
- fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1675 => _1675.fetchArchivedDialogs]),
60705
- unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1676 => _1676.unarchiveDialog]),
60706
- searchQuery: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1677 => _1677.searchQuery]),
60707
- onSearchChange: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1678 => _1678.onSearchChange])
60805
+ canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1667 => _1667.canRename]), () => ( false)),
60806
+ canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1668 => _1668.canArchive]), () => ( false)),
60807
+ fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1669 => _1669.fetchArchivedDialogs]),
60808
+ unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1670 => _1670.unarchiveDialog]),
60809
+ searchQuery: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1671 => _1671.searchQuery]),
60810
+ onSearchChange: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1672 => _1672.onSearchChange])
60708
60811
  };
60709
60812
  }
60710
60813
  return {
60711
- canRename: !!_optionalChain([effectiveModes, 'access', _1679 => _1679.mingo, 'optionalAccess', _1680 => _1680.renameDialog]),
60712
- canArchive: !!_optionalChain([effectiveModes, 'access', _1681 => _1681.mingo, 'optionalAccess', _1682 => _1682.archiveDialog]),
60713
- fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1683 => _1683.mingo, 'optionalAccess', _1684 => _1684.fetchArchivedDialogs]),
60714
- unarchiveDialog: _optionalChain([effectiveModes, 'access', _1685 => _1685.mingo, 'optionalAccess', _1686 => _1686.unarchiveDialog]),
60814
+ canRename: !!_optionalChain([effectiveModes, 'access', _1673 => _1673.mingo, 'optionalAccess', _1674 => _1674.renameDialog]),
60815
+ canArchive: !!_optionalChain([effectiveModes, 'access', _1675 => _1675.mingo, 'optionalAccess', _1676 => _1676.archiveDialog]),
60816
+ fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1677 => _1677.mingo, 'optionalAccess', _1678 => _1678.fetchArchivedDialogs]),
60817
+ unarchiveDialog: _optionalChain([effectiveModes, 'access', _1679 => _1679.mingo, 'optionalAccess', _1680 => _1680.unarchiveDialog]),
60715
60818
  searchQuery: void 0,
60716
60819
  onSearchChange: void 0
60717
60820
  };
@@ -60725,7 +60828,7 @@ function EmbeddableChatInner({
60725
60828
  if (controlledActiveMode === void 0) {
60726
60829
  setUncontrolledActiveMode(next);
60727
60830
  }
60728
- _optionalChain([onActiveModeChange, 'optionalCall', _1687 => _1687(next)]);
60831
+ _optionalChain([onActiveModeChange, 'optionalCall', _1681 => _1681(next)]);
60729
60832
  },
60730
60833
  [controlledActiveMode, onActiveModeChange]
60731
60834
  );
@@ -60747,7 +60850,7 @@ function EmbeddableChatInner({
60747
60850
  const effectiveQuickActions = emptyStateUrl ? emptyStateConfig.quickActions : [];
60748
60851
  const effectiveAssistantName = emptyStateConfig.name;
60749
60852
  const effectiveAssistantIcon = emptyStateConfig.icon;
60750
- const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _1688 => _1688.title]) === "string" ? guideWelcome.title : null)));
60853
+ const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _1682 => _1682.title]) === "string" ? guideWelcome.title : null)));
60751
60854
  const {
60752
60855
  messages: rawMessages,
60753
60856
  isLoading: chatLoading,
@@ -60789,7 +60892,7 @@ function EmbeddableChatInner({
60789
60892
  if (activeMode !== "guide" || guidePromptSentRef.current) return;
60790
60893
  guidePromptSentRef.current = true;
60791
60894
  void sendMessage(guidePendingPrompt);
60792
- _optionalChain([onGuidePromptConsumed, 'optionalCall', _1689 => _1689()]);
60895
+ _optionalChain([onGuidePromptConsumed, 'optionalCall', _1683 => _1683()]);
60793
60896
  }, [guidePendingPrompt, activeMode, sendMessage, onGuidePromptConsumed]);
60794
60897
  const {
60795
60898
  attachments: stagedAttachments,
@@ -60800,7 +60903,7 @@ function EmbeddableChatInner({
60800
60903
  clear: clearAttachments
60801
60904
  } = useChatAttachments();
60802
60905
  const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
60803
- const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1690 => _1690.maxItems]), () => ( 10));
60906
+ const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1684 => _1684.maxItems]), () => ( 10));
60804
60907
  const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
60805
60908
  const [contextItems, setContextItems] = _react.useState.call(void 0, []);
60806
60909
  const [contextPickerOpen, setContextPickerOpen] = _react.useState.call(void 0, false);
@@ -60817,10 +60920,10 @@ function EmbeddableChatInner({
60817
60920
  }, [activeDialogId, activeMode]);
60818
60921
  const mentionMarkerByType = _react.useMemo.call(void 0, () => {
60819
60922
  const m = /* @__PURE__ */ new Map();
60820
- for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1691 => _1691.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
60923
+ for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1685 => _1685.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
60821
60924
  return m;
60822
- }, [_optionalChain([contextPicker, 'optionalAccess', _1692 => _1692.entityTypes])]);
60823
- const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _1693 => _1693.entityTypes]);
60925
+ }, [_optionalChain([contextPicker, 'optionalAccess', _1686 => _1686.entityTypes])]);
60926
+ const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _1687 => _1687.entityTypes]);
60824
60927
  const resolveContextIcon = _react.useMemo.call(void 0, () => {
60825
60928
  const byType = /* @__PURE__ */ new Map();
60826
60929
  for (const t of _nullishCoalesce(contextEntityTypes, () => ( []))) byType.set(t.type, t.icon);
@@ -60832,7 +60935,7 @@ function EmbeddableChatInner({
60832
60935
  if (mentionActiveRef.current) {
60833
60936
  if (contextItems.some((p) => `${p.type}:${p.id}` === key)) return;
60834
60937
  if (contextItems.length >= contextMaxItems) return;
60835
- _optionalChain([chatInputRef, 'access', _1694 => _1694.current, 'optionalAccess', _1695 => _1695.commitMention, 'call', _1696 => _1696(mentionTokenOf(key, mentionMarkerByType), {
60938
+ _optionalChain([chatInputRef, 'access', _1688 => _1688.current, 'optionalAccess', _1689 => _1689.commitMention, 'call', _1690 => _1690(mentionTokenOf(key, mentionMarkerByType), {
60836
60939
  label: item.label,
60837
60940
  icon: resolveContextIcon(item)
60838
60941
  })]);
@@ -60854,9 +60957,9 @@ function EmbeddableChatInner({
60854
60957
  setContextItems((prev) => prev.filter((p) => `${p.type}:${p.id}` !== key));
60855
60958
  if (mentionKeysRef.current.has(key)) {
60856
60959
  mentionKeysRef.current.delete(key);
60857
- const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _1697 => _1697.current, 'optionalAccess', _1698 => _1698.getValue, 'call', _1699 => _1699()]), () => ( ""));
60960
+ const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _1691 => _1691.current, 'optionalAccess', _1692 => _1692.getValue, 'call', _1693 => _1693()]), () => ( ""));
60858
60961
  const next = cur.replace(`@${mentionTokenOf(key, mentionMarkerByType)}`, "").replace(/\s{2,}/g, " ").trimStart();
60859
- _optionalChain([chatInputRef, 'access', _1700 => _1700.current, 'optionalAccess', _1701 => _1701.setValue, 'call', _1702 => _1702(next)]);
60962
+ _optionalChain([chatInputRef, 'access', _1694 => _1694.current, 'optionalAccess', _1695 => _1695.setValue, 'call', _1696 => _1696(next)]);
60860
60963
  }
60861
60964
  }, [mentionMarkerByType]);
60862
60965
  const handleContextValueChange = _react.useCallback.call(void 0, (value) => {
@@ -60873,7 +60976,7 @@ function EmbeddableChatInner({
60873
60976
  }, []);
60874
60977
  const closeContextPicker = _react.useCallback.call(void 0, () => {
60875
60978
  if (mentionActiveRef.current) {
60876
- _optionalChain([chatInputRef, 'access', _1703 => _1703.current, 'optionalAccess', _1704 => _1704.removeMentionTrigger, 'call', _1705 => _1705()]);
60979
+ _optionalChain([chatInputRef, 'access', _1697 => _1697.current, 'optionalAccess', _1698 => _1698.removeMentionTrigger, 'call', _1699 => _1699()]);
60877
60980
  }
60878
60981
  setContextPickerOpen(false);
60879
60982
  setMentionQuery(null);
@@ -60907,8 +61010,8 @@ function EmbeddableChatInner({
60907
61010
  [effectiveAssistantIcon]
60908
61011
  );
60909
61012
  const timestampCacheRef = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
60910
- const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _1706 => _1706.firstName]), _optionalChain([identityUser, 'optionalAccess', _1707 => _1707.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _1708 => _1708.name, 'optionalAccess', _1709 => _1709.trim, 'call', _1710 => _1710()]) || void 0 : void 0;
60911
- const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _1711 => _1711.avatarUrl, 'optionalAccess', _1712 => _1712.trim, 'call', _1713 => _1713()]) || void 0 : void 0;
61013
+ const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _1700 => _1700.firstName]), _optionalChain([identityUser, 'optionalAccess', _1701 => _1701.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _1702 => _1702.name, 'optionalAccess', _1703 => _1703.trim, 'call', _1704 => _1704()]) || void 0 : void 0;
61014
+ const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _1705 => _1705.avatarUrl, 'optionalAccess', _1706 => _1706.trim, 'call', _1707 => _1707()]) || void 0 : void 0;
60912
61015
  const messages = _react.useMemo.call(void 0, () => {
60913
61016
  const cache = timestampCacheRef.current;
60914
61017
  const seenIds = /* @__PURE__ */ new Set();
@@ -61099,9 +61202,9 @@ function EmbeddableChatInner({
61099
61202
  const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
61100
61203
  const lastSources = _react.useMemo.call(void 0, () => {
61101
61204
  if (chatLoading) return void 0;
61102
- const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1714 => _1714.sources]);
61205
+ const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1708 => _1708.sources]);
61103
61206
  if (!sources || sources.length === 0) return void 0;
61104
- const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1715 => _1715.content]) || "";
61207
+ const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1709 => _1709.content]) || "";
61105
61208
  const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
61106
61209
  (m) => parseInt(m[1], 10)
61107
61210
  );
@@ -61121,7 +61224,7 @@ function EmbeddableChatInner({
61121
61224
  const el = panelMeasureRef.current;
61122
61225
  if (!el || typeof ResizeObserver === "undefined") return;
61123
61226
  const ro = new ResizeObserver((entries) => {
61124
- const w = _optionalChain([entries, 'access', _1716 => _1716[0], 'optionalAccess', _1717 => _1717.contentRect, 'optionalAccess', _1718 => _1718.width]);
61227
+ const w = _optionalChain([entries, 'access', _1710 => _1710[0], 'optionalAccess', _1711 => _1711.contentRect, 'optionalAccess', _1712 => _1712.width]);
61125
61228
  if (typeof w === "number") setPanelWidth(w);
61126
61229
  });
61127
61230
  ro.observe(el);
@@ -61164,16 +61267,16 @@ function EmbeddableChatInner({
61164
61267
  const isMingoMode = activeMode === "mingo";
61165
61268
  const stackedListView = isMingoMode && !hasConversation && !archiveOpen && !wideMingo && !composeOpen;
61166
61269
  const headerShowBack = hasConversation || guideCanReturnToMingo;
61167
- const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1719 => _1719.title]) || "New Chat" : isGuideEmpty ? _nullishCoalesce(headerAssistantName, () => ( "Mingo Guide")) : "Current Chats";
61270
+ const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1713 => _1713.title]) || "New Chat" : isGuideEmpty ? _nullishCoalesce(headerAssistantName, () => ( "Mingo Guide")) : "Current Chats";
61168
61271
  const headerBackAriaLabel = hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo";
61169
61272
  const headerOnBack = hasConversation ? handleBack : () => handleActiveModeChange("mingo");
61170
61273
  const headerOnRestore = isViewingArchived && unarchiveDialog && activeDialog ? () => setRestoreTarget(activeDialog) : void 0;
61171
61274
  const headerOnRename = activeDialogId && activeDialog && mingoCaps.canRename ? () => setRenameTarget(activeDialog) : void 0;
61172
61275
  const headerOnArchive = activeDialogId && activeDialog && mingoCaps.canArchive ? () => setArchiveTarget(activeDialog) : void 0;
61173
61276
  const headerOnOpenArchive = fetchArchivedDialogs ? openArchive : void 0;
61174
- const headerOwner = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1720 => _1720.owner]) : void 0;
61175
- const headerPersonName = _optionalChain([headerOwner, 'optionalAccess', _1721 => _1721.name, 'optionalAccess', _1722 => _1722.trim, 'call', _1723 => _1723()]) || headerUserName;
61176
- const headerPersonAvatarUrl = headerOwner ? _optionalChain([headerOwner, 'access', _1724 => _1724.avatarUrl, 'optionalAccess', _1725 => _1725.trim, 'call', _1726 => _1726()]) || void 0 : _optionalChain([identityUser, 'optionalAccess', _1727 => _1727.avatarUrl, 'optionalAccess', _1728 => _1728.trim, 'call', _1729 => _1729()]) || _optionalChain([userAvatarUrl, 'optionalAccess', _1730 => _1730.trim, 'call', _1731 => _1731()]) || void 0;
61277
+ const headerOwner = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1714 => _1714.owner]) : void 0;
61278
+ const headerPersonName = _optionalChain([headerOwner, 'optionalAccess', _1715 => _1715.name, 'optionalAccess', _1716 => _1716.trim, 'call', _1717 => _1717()]) || headerUserName;
61279
+ const headerPersonAvatarUrl = headerOwner ? _optionalChain([headerOwner, 'access', _1718 => _1718.avatarUrl, 'optionalAccess', _1719 => _1719.trim, 'call', _1720 => _1720()]) || void 0 : _optionalChain([identityUser, 'optionalAccess', _1721 => _1721.avatarUrl, 'optionalAccess', _1722 => _1722.trim, 'call', _1723 => _1723()]) || _optionalChain([userAvatarUrl, 'optionalAccess', _1724 => _1724.trim, 'call', _1725 => _1725()]) || void 0;
61177
61280
  const headerAvatar = headerPersonName || headerPersonAvatarUrl ? { name: headerPersonName, avatarUrl: headerPersonAvatarUrl } : void 0;
61178
61281
  const handleNewChat = _react.useCallback.call(void 0, () => {
61179
61282
  resetToNewChat();
@@ -61534,9 +61637,9 @@ function EmbeddableChatInner({
61534
61637
  subtitle: _nullishCoalesce(effectiveGreeting, () => ( void 0)),
61535
61638
  subtitleLoading: emptyStateLoading,
61536
61639
  ...guideWelcome,
61537
- title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1732 => _1732.title]))),
61538
- icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1733 => _1733.icon]))),
61539
- quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _1734 => _1734.quickActions]), () => ( guideSuggestedActions)),
61640
+ title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1726 => _1726.title]))),
61641
+ icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1727 => _1727.icon]))),
61642
+ quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _1728 => _1728.quickActions]), () => ( guideSuggestedActions)),
61540
61643
  onQuickAction: (action) => {
61541
61644
  setQuickActionPreview(null);
61542
61645
  handleSend(_nullishCoalesce(action.prompt, () => ( action.label)));
@@ -61616,8 +61719,8 @@ function EmbeddableChatInner({
61616
61719
  selectedContextItems: contextItems,
61617
61720
  onToggleContextItem: toggleContextItem,
61618
61721
  onRemoveContextItem: removeContextItem,
61619
- contextMemoryItems: _optionalChain([contextMemory, 'optionalAccess', _1735 => _1735.items]),
61620
- onRemoveContextMemoryItem: _optionalChain([contextMemory, 'optionalAccess', _1736 => _1736.onRemove]),
61722
+ contextMemoryItems: _optionalChain([contextMemory, 'optionalAccess', _1729 => _1729.items]),
61723
+ onRemoveContextMemoryItem: _optionalChain([contextMemory, 'optionalAccess', _1730 => _1730.onRemove]),
61621
61724
  contextPickerOpen,
61622
61725
  onOpenContextPicker: openContextPicker,
61623
61726
  onCloseContextPicker: closeContextPicker,
@@ -62822,4 +62925,4 @@ function EmbeddableChatInner({
62822
62925
 
62823
62926
 
62824
62927
  exports.AllowedDomainsInput = AllowedDomainsInput; exports.AnnouncementBarView = AnnouncementBarView; exports.FloatingTooltip = FloatingTooltip; exports.TruncateText = TruncateText; 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.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.InfoHint = InfoHint; exports.Field = Field; exports.HoneypotField = HoneypotField; exports.formatTicketRelativeTime = formatTicketRelativeTime; exports.formatTicketFullTimestamp = formatTicketFullTimestamp; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.JsonDetailList = JsonDetailList; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.DeletedUserAvatar = DeletedUserAvatar; exports.SearchableSelect = SearchableSelect; exports.formatDate = formatDate2; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatFileSize = formatFileSize; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatEntryMonthUTC = formatEntryMonthUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.titleCaseFromSlug = titleCaseFromSlug; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.SquareAvatar = SquareAvatar; exports.AssigneeDropdown = AssigneeDropdown; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.getContrastRatio = getContrastRatio; exports.pickReadableTextColor = pickReadableTextColor; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.getReadableTextColor = getReadableTextColor; exports.HEX_PATTERN = HEX_PATTERN; exports.hexToRgb = hexToRgb2; exports.rgbToHex = rgbToHex; exports.deriveHoverColor = deriveHoverColor; exports.deriveActiveColor = deriveActiveColor; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataMessage = NoDataMessage; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.ScrollShadow = ScrollShadow; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal2; exports.ModalContent = ModalContent2; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter2; exports.Modal2 = Modal; exports.ModalContent2 = ModalContent; exports.ModalTwoColumn = ModalTwoColumn; exports.ModalHeader2 = ModalHeader; exports.ModalTitle2 = ModalTitle; exports.ModalFooter2 = ModalFooter; exports.useConfirm = useConfirm; exports.useGuardedClose = useGuardedClose; exports.UnsavedChangesChip = UnsavedChangesChip; exports.AdminFormModal = AdminFormModal; 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.OVERLAY_BACKDROP_CLASS = OVERLAY_BACKDROP_CLASS; 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.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.SAFE_HTML_TAGS = SAFE_HTML_TAGS; exports.SVG_TAGS = SVG_TAGS; exports.buildEffectiveTagSet = buildEffectiveTagSet; exports.buildSanitizeSchema = buildSanitizeSchema; exports.rehypeStripUnsafe = rehypeStripUnsafe; exports.escapeUnknownHtmlTags = escapeUnknownHtmlTags; exports.cardAwareUrlTransform = cardAwareUrlTransform; exports.TEXT_SIZE_PRESETS = TEXT_SIZE_PRESETS; exports.resolveTextSizeConfig = resolveTextSizeConfig; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.buildHeadingIdMap = buildHeadingIdMap; exports.useHeadingIdMap = useHeadingIdMap; exports.extractText = extractText; exports.MermaidDiagram = MermaidDiagram; exports.splitStreamingBlocks = splitStreamingBlocks; exports.completeStreamingTail = completeStreamingTail; exports.MarkdownEngine = MarkdownEngine; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.VideoPlayBadge = VideoPlayBadge; exports.VideoUnmuteGlyph = VideoUnmuteGlyph; exports.fetchPriorityProp = fetchPriorityProp; exports.MUX_STREAM_ORIGIN = MUX_STREAM_ORIGIN; exports.MUX_IMAGE_ORIGIN = MUX_IMAGE_ORIGIN; exports.saveDataEnabled = saveDataEnabled; exports.useVideoOriginPreconnect = useVideoOriginPreconnect; exports.useVideoWarmup = useVideoWarmup; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video2; exports.MediaCarousel = MediaCarousel; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.toGoogleSheetsEmbedUrl = toGoogleSheetsEmbedUrl; exports.toGoogleSheetsOriginalUrl = toGoogleSheetsOriginalUrl; exports.toFigmaEmbedUrl = toFigmaEmbedUrl; exports.isFigmaSlidesUrl = isFigmaSlidesUrl; exports.toFigmaOriginalUrl = toFigmaOriginalUrl; exports.EmbedIframe = EmbedIframe; exports.EmbedViewerFrame = EmbedViewerFrame; exports.FigmaEmbed = FigmaEmbed; exports.MarkdownImage = MarkdownImage; exports.processShortcodes = processShortcodes; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.statusBadgeVariants = statusBadgeVariants; exports.genBadgeBgOpacity = genBadgeBgOpacity; exports.generationTierFromLabel = generationTierFromLabel; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.CommandBlock = CommandBlock; exports.ApprovalStatusTag = ApprovalStatusTag; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.AiAssistantInfo = AiAssistantInfo; exports.TicketEscalatedMessage = TicketEscalatedMessage; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.TICKET_EVENT_KIND = TICKET_EVENT_KIND; exports.TicketEventMessage = TicketEventMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.ThinkingDisplay = ThinkingDisplay; exports.GuideDisplay = GuideDisplay; exports.AskDisplay = AskDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.ICON_ALIASES = ICON_ALIASES; exports.resolveIcon = resolveIcon; exports.ICON_OPTIONS = ICON_OPTIONS; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.BlockCard = BlockCard; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.ChatMessageList = ChatMessageList; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.FAE_AVATAR_DATA_URI = FAE_AVATAR_DATA_URI; exports.AgentMark = AgentMark; exports.EntityIcon = EntityIcon; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.isQuickActionIconSpec = isQuickActionIconSpec; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipSkeleton = QuickActionChipSkeleton; exports.QuickActionChipButton = QuickActionChipButton; exports.QuickActionChipFromData = QuickActionChipFromData; exports.useMarqueeSync = useMarqueeSync; exports.getMarqueeTrackOffset = getMarqueeTrackOffset; exports.getMarqueeAppliedOffset = getMarqueeAppliedOffset; exports.getMarqueeCloneTwin = getMarqueeCloneTwin; exports.MarqueeWallFades = MarqueeWallFades; exports.MarqueeWall = MarqueeWall; exports.WALL_SKELETON_LABEL_CH = WALL_SKELETON_LABEL_CH; exports.interleave = interleave; exports.QuickActionWall = QuickActionWall; exports.QuickActionMarquee = QuickActionMarquee; 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.TabSelector = TabSelector; exports.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.ChatHeaderSearchField = ChatHeaderSearchField; 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.ChatContextMemoryBar = ChatContextMemoryBar; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.useCoverImageFallback = useCoverImageFallback; exports.hideOnError = hideOnError; exports.EntityPortraitCard = EntityPortraitCard; exports.FlamingoLogo = FlamingoLogo2; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.getProxiedImageUrl2 = getProxiedImageUrl2; exports.EmployeeEntryBadge = EmployeeEntryBadge; exports.EmployeeEntryCard = EmployeeEntryCard; exports.EmployeeEntryCardSkeleton = EmployeeEntryCardSkeleton; exports.WhatIShippedCard = WhatIShippedCard; exports.WhatIShippedCardSkeleton = WhatIShippedCardSkeleton; exports.HowIWorkCard = HowIWorkCard; exports.HowIWorkCardSkeleton = HowIWorkCardSkeleton; exports.VideoHoverPreviewSurface = VideoHoverPreviewSurface; exports.CardHitLayer = CardHitLayer; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_TO_CSS_ASPECT = RATIO_TO_CSS_ASPECT; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.DEFAULT_VIDEO_BITES_TITLE = DEFAULT_VIDEO_BITES_TITLE; exports.toStripProfile = toStripProfile; exports.sortBitesByCreatedAtDesc = sortBitesByCreatedAtDesc; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.SECTION_HEADING_CLASS = SECTION_HEADING_CLASS; exports.PageHeading = PageHeading; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.UserDisplay = UserDisplay; exports.VideoBitesStrip = VideoBitesStrip; 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.AvatarStack = AvatarStack; 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.programItemToStripProfile = programItemToStripProfile; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.extractItems = extractItems; exports.extractItemId = extractItemId; exports.useChatCardItem = useChatCardItem; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.readFetchedCardTitle = readFetchedCardTitle; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.clickupTaskUrl = clickupTaskUrl; 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.APPROVAL_BLOCK_VARIANT = APPROVAL_BLOCK_VARIANT; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useChunkCatchup = useChunkCatchup; exports.useScriptedStream = useScriptedStream; exports.RESYNC_AFTER_HIDDEN_MS = RESYNC_AFTER_HIDDEN_MS; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.buildDiscussPrompt = buildDiscussPrompt; exports.appendToTrailingAssistant = appendToTrailingAssistant; exports.upsertTrailingCompaction = upsertTrailingCompaction; exports.applyToolExecutionToMessages = applyToolExecutionToMessages; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.isGuideApproval = isGuideApproval; exports.guideApprovalOrigin = guideApprovalOrigin; exports.approvalDisplaysInline = approvalDisplaysInline; exports.isGuideApprovalSegment = isGuideApprovalSegment; exports.createEmptyTurnMeta = createEmptyTurnMeta; exports.createChatStreamReducer = createChatStreamReducer; exports.DEFAULT_DIALOG_SIDE = DEFAULT_DIALOG_SIDE; exports.DEFAULT_MAX_REDUCERS = DEFAULT_MAX_REDUCERS; exports.MAX_PENDING_RETAIN_KEYS = MAX_PENDING_RETAIN_KEYS; exports.createChatDialogStore = createChatDialogStore; exports.createDeltaBatcher = createDeltaBatcher; exports.useChatStreamReducer = useChatStreamReducer; exports.useSseChatAdapter = useSseChatAdapter; exports.decodeHistoricalMessageData = decodeHistoricalMessageData; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.extractIncompleteTailState = extractIncompleteTailState; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.flattenAssistantContent = flattenAssistantContent; exports.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; exports.EmbeddableChat = EmbeddableChat; exports.BackButton = BackButton; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.serializeJsonLd = serializeJsonLd; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; 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.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; 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.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; 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.CONTENT_REF_GROUPS = CONTENT_REF_GROUPS; exports.getContentRefLabel = getContentRefLabel; exports.getContentRefLabelOrTitleCase = getContentRefLabelOrTitleCase; exports.orderContentRefTypes = orderContentRefTypes; exports.buildSuggestionUrl = buildSuggestionUrl; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.SourceTooltip = SourceTooltip; 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.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.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.PasswordInput = PasswordInput; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LoginForm = LoginForm; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.FloatingWalkthroughVideo = FloatingWalkthroughVideo; exports.useWalkthroughVideo = useWalkthroughVideo; exports.getCaptionsUrl = getCaptionsUrl; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.SubtitlesEditor = SubtitlesEditor; 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.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; 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.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.UnreadDot = UnreadDot; exports.UnreadCountBadge = UnreadCountBadge; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCardBody = TicketCardBody; exports.TicketCardView = TicketCardView; 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.ROW_SHELL_CLASSES = ROW_SHELL_CLASSES; 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.formatTestRunDuration = formatTestRunDuration; exports.TestResultsSkeleton = TestResultsSkeleton; exports.TestResultsTable = TestResultsTable; exports.TestRunErrorBanner = TestRunErrorBanner; exports.TestRunResults = TestRunResults; exports.TimingStat = TimingStat; exports.TestRunStatusStat = TestRunStatusStat; exports.useTestRunState = useTestRunState; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.renderTicketStatusOption = renderTicketStatusOption; exports.renderTicketAssigneeOption = renderTicketAssigneeOption; exports.TakeOverTicketModal = TakeOverTicketModal; exports.ReopenTicketModal = ReopenTicketModal; exports.ReopenTicketRequestModal = ReopenTicketRequestModal; exports.FilterPillRow = FilterPillRow; exports.MingoAiButton = MingoAiButton; exports.MOBILE_NAV_PANEL_ID = MOBILE_NAV_PANEL_ID; exports.MobileNavPanel = MobileNavPanel; exports.useOptionalTicketLive = useOptionalTicketLive; exports.useTicketLive = useTicketLive; exports.TicketLiveProvider = TicketLiveProvider; exports.isOptimistic = isOptimistic; exports.TICKET_TEXT_MAX_CHARS = TICKET_TEXT_MAX_CHARS; exports.TICKET_MARK_READ_DEBOUNCE_MS = TICKET_MARK_READ_DEBOUNCE_MS; exports.TOAST_COPY = TOAST_COPY; exports.TicketAlertsButton = TicketAlertsButton; exports.TopNavigation = TopNavigation; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NAVIGATION_SIDEBAR_WIDTH_VAR = NAVIGATION_SIDEBAR_WIDTH_VAR; exports.NavigationSidebar = NavigationSidebar; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderMingoButton = HeaderMingoButton; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.MultiLevelNavigation = MultiLevelNavigation; exports.MobileNavigationDropdown = MobileNavigationDropdown; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
62825
- //# sourceMappingURL=chunk-X4RCWYYF.cjs.map
62928
+ //# sourceMappingURL=chunk-I2WN5X6Q.cjs.map