@flamingo-stack/openframe-frontend-core 0.0.701 → 0.0.702-snapshot.20261005191338

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 (106) hide show
  1. package/dist/{chunk-DJLZXJYB.js → chunk-2NE3DNXY.js} +1 -1
  2. package/dist/{chunk-V5QNDOEL.js → chunk-53AC23ZN.js} +4 -4
  3. package/dist/{chunk-BQ34PIFC.cjs → chunk-5VPIC5MD.cjs} +3 -3
  4. package/dist/{chunk-BRQY2HKD.cjs → chunk-67CXGPTW.cjs} +24 -24
  5. package/dist/{chunk-BZYMGI4L.js → chunk-7632TNE7.js} +1 -1
  6. package/dist/{chunk-QPNR4N7N.cjs → chunk-BMJUKS6S.cjs} +20 -20
  7. package/dist/{chunk-GD4JALTR.js → chunk-BOUPNYUV.js} +2 -2
  8. package/dist/{chunk-BPS7JQCI.cjs → chunk-BSEIEWM5.cjs} +2 -2
  9. package/dist/{chunk-6JG75WVO.js → chunk-DAW6TDZB.js} +4 -4
  10. package/dist/{chunk-B7M6QEEM.js → chunk-ENGBNKUJ.js} +673 -432
  11. package/dist/{chunk-N7HMUQRV.js → chunk-G55W76S6.js} +1 -1
  12. package/dist/{chunk-65YVUYWJ.cjs → chunk-GX3OUTFO.cjs} +32 -32
  13. package/dist/{chunk-S4ADN25W.js → chunk-GZYLZ4MB.js} +2 -2
  14. package/dist/{chunk-A5ZGKBN2.js → chunk-HHFPQNP3.js} +1 -1
  15. package/dist/{chunk-RTGPIHVO.cjs → chunk-HY5YL3U5.cjs} +247 -173
  16. package/dist/{chunk-DG2I57UM.cjs → chunk-HYLIQMZH.cjs} +21 -21
  17. package/dist/{chunk-N7DPIH57.js → chunk-J4K5JOLI.js} +1 -1
  18. package/dist/{chunk-4H5Q6MQG.cjs → chunk-KFDP3DUL.cjs} +44 -44
  19. package/dist/{chunk-QDIX2ZRL.cjs → chunk-MXHJROXJ.cjs} +754 -513
  20. package/dist/{chunk-CUPJCGLB.js → chunk-NCTYD7HL.js} +2 -2
  21. package/dist/{chunk-MFORWVGD.js → chunk-NMGX2ZTU.js} +5 -5
  22. package/dist/{chunk-QZGFJBG5.cjs → chunk-NU724ZVN.cjs} +70 -70
  23. package/dist/{chunk-ZSPHOHOW.cjs → chunk-NYSYSKSH.cjs} +9 -9
  24. package/dist/{chunk-PNWIVND4.js → chunk-PJP5SMOU.js} +3 -3
  25. package/dist/{chunk-6JPQDYYY.js → chunk-QGTDWFT6.js} +419 -345
  26. package/dist/{chunk-GFXZMFDX.cjs → chunk-RLDAYA2A.cjs} +9 -9
  27. package/dist/{chunk-2CSYUMNM.cjs → chunk-RTXTGLGB.cjs} +2 -2
  28. package/dist/{chunk-YBC346FY.cjs → chunk-S6V7A5FS.cjs} +12 -12
  29. package/dist/{chunk-7ZDTAABP.cjs → chunk-SFGXIFYO.cjs} +7 -7
  30. package/dist/{chunk-JPVDJB27.js → chunk-SL2FOFT2.js} +4 -4
  31. package/dist/{chunk-EONNPRAW.js → chunk-UTW4SQDI.js} +2 -2
  32. package/dist/{chunk-NIT257DV.cjs → chunk-YBGEPKC2.cjs} +4 -4
  33. package/dist/components/case-studies/index.cjs +14 -14
  34. package/dist/components/case-studies/index.js +3 -3
  35. package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
  36. package/dist/components/chat/index.cjs +2 -2
  37. package/dist/components/chat/index.js +1 -1
  38. package/dist/components/contact/index.cjs +4 -4
  39. package/dist/components/contact/index.js +3 -3
  40. package/dist/components/docs/index.cjs +7 -7
  41. package/dist/components/docs/index.js +6 -6
  42. package/dist/components/embeds/index.cjs +4 -4
  43. package/dist/components/embeds/index.js +3 -3
  44. package/dist/components/faq/index.cjs +4 -4
  45. package/dist/components/faq/index.js +3 -3
  46. package/dist/components/features/index.cjs +23 -3
  47. package/dist/components/features/index.js +22 -2
  48. package/dist/components/features/remote-session/index.d.ts +9 -1
  49. package/dist/components/features/remote-session/index.d.ts.map +1 -1
  50. package/dist/components/features/remote-session/remote-session-block.d.ts +4 -2
  51. package/dist/components/features/remote-session/remote-session-block.d.ts.map +1 -1
  52. package/dist/components/features/remote-session/remote-session-chat-panel.d.ts +4 -2
  53. package/dist/components/features/remote-session/remote-session-chat-panel.d.ts.map +1 -1
  54. package/dist/components/features/remote-session/remote-session-events.d.ts +24 -0
  55. package/dist/components/features/remote-session/remote-session-events.d.ts.map +1 -0
  56. package/dist/components/features/remote-session/remote-session-keep-modals.d.ts +41 -0
  57. package/dist/components/features/remote-session/remote-session-keep-modals.d.ts.map +1 -0
  58. package/dist/components/features/remote-session/remote-session-parts.d.ts +13 -2
  59. package/dist/components/features/remote-session/remote-session-parts.d.ts.map +1 -1
  60. package/dist/components/features/remote-session/remote-session-status.d.ts +34 -0
  61. package/dist/components/features/remote-session/remote-session-status.d.ts.map +1 -0
  62. package/dist/components/features/remote-session/remote-session-viewers.d.ts +15 -0
  63. package/dist/components/features/remote-session/remote-session-viewers.d.ts.map +1 -0
  64. package/dist/components/features/remote-session/types.d.ts +22 -0
  65. package/dist/components/features/remote-session/types.d.ts.map +1 -1
  66. package/dist/components/help-center-pages/index.cjs +71 -71
  67. package/dist/components/help-center-pages/index.js +14 -14
  68. package/dist/components/index.cjs +61 -41
  69. package/dist/components/index.js +33 -13
  70. package/dist/components/meeting-scheduler/index.cjs +25 -25
  71. package/dist/components/meeting-scheduler/index.js +2 -2
  72. package/dist/components/navigation/app-layout-drawer.d.ts.map +1 -1
  73. package/dist/components/navigation/index.cjs +6 -6
  74. package/dist/components/navigation/index.js +5 -5
  75. package/dist/components/onboarding-guides/index.cjs +6 -6
  76. package/dist/components/onboarding-guides/index.js +5 -5
  77. package/dist/components/tickets/index.cjs +7 -7
  78. package/dist/components/tickets/index.js +6 -6
  79. package/dist/components/ui/drawer.d.ts +7 -3
  80. package/dist/components/ui/drawer.d.ts.map +1 -1
  81. package/dist/components/ui/index.cjs +3 -3
  82. package/dist/components/ui/index.js +2 -2
  83. package/dist/components/ui/panel-resize-handle.d.ts +25 -0
  84. package/dist/components/ui/panel-resize-handle.d.ts.map +1 -0
  85. package/dist/hooks/ui/use-resizable-panel-size.d.ts +46 -0
  86. package/dist/hooks/ui/use-resizable-panel-size.d.ts.map +1 -0
  87. package/dist/index.cjs +27 -7
  88. package/dist/index.js +26 -6
  89. package/dist/tailwind.config.cjs +7 -1
  90. package/dist/tailwind.config.js +7 -1
  91. package/package.json +1 -1
  92. package/src/components/chat/embeddable-chat.tsx +11 -9
  93. package/src/components/features/remote-session/index.ts +28 -0
  94. package/src/components/features/remote-session/remote-session-block.tsx +6 -3
  95. package/src/components/features/remote-session/remote-session-chat-panel.tsx +11 -7
  96. package/src/components/features/remote-session/remote-session-events.tsx +93 -0
  97. package/src/components/features/remote-session/remote-session-keep-modals.tsx +208 -0
  98. package/src/components/features/remote-session/remote-session-parts.tsx +32 -3
  99. package/src/components/features/remote-session/remote-session-status.tsx +102 -0
  100. package/src/components/features/remote-session/remote-session-viewers.tsx +103 -0
  101. package/src/components/features/remote-session/types.ts +26 -0
  102. package/src/components/navigation/app-layout-drawer.tsx +14 -237
  103. package/src/components/ui/drawer.tsx +41 -188
  104. package/src/components/ui/panel-resize-handle.tsx +184 -0
  105. package/src/hooks/ui/use-resizable-panel-size.ts +114 -0
  106. package/tailwind.config.ts +6 -0
@@ -24630,6 +24630,179 @@ var _classvarianceauthority = require('class-variance-authority');
24630
24630
 
24631
24631
 
24632
24632
 
24633
+ // src/hooks/ui/use-resizable-panel-size.ts
24634
+
24635
+ var CHOSEN_SIZE_KEY_SUFFIX = ":chosen";
24636
+ function isStoredPanelSize(value) {
24637
+ if (typeof value !== "object" || value === null) return false;
24638
+ const { size } = value;
24639
+ return typeof size === "number" && Number.isFinite(size) && size > 0;
24640
+ }
24641
+ function useResizablePanelSize({
24642
+ enabled,
24643
+ minSize,
24644
+ maxSize,
24645
+ defaultSize,
24646
+ available,
24647
+ reserve,
24648
+ storageKey
24649
+ }) {
24650
+ const storage = _react.useMemo.call(void 0,
24651
+ () => enabled && storageKey ? _chunkMDBHZBW7cjs.createLocalStorageAdapter.call(void 0, {
24652
+ key: `${storageKey}${CHOSEN_SIZE_KEY_SUFFIX}`,
24653
+ validate: isStoredPanelSize,
24654
+ logTag: `[panel-size:${storageKey}]`
24655
+ }) : null,
24656
+ [enabled, storageKey]
24657
+ );
24658
+ const [held, setChosen] = _react.useState.call(void 0, () => ({ storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _835 => _835.load, 'call', _836 => _836(), 'optionalAccess', _837 => _837.size]), () => ( null)) }));
24659
+ const chosen = held.storage === storage ? held : { storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _838 => _838.load, 'call', _839 => _839(), 'optionalAccess', _840 => _840.size]), () => ( null)) };
24660
+ if (chosen !== held) setChosen(chosen);
24661
+ const chosenSize = chosen.size;
24662
+ const clampSize = _react.useCallback.call(void 0,
24663
+ (value) => {
24664
+ const ceiling = available > 0 ? Math.min(maxSize, available - reserve) : maxSize;
24665
+ return _chunkIIMICN7Lcjs.clamp.call(void 0, value, minSize, Math.max(minSize, ceiling));
24666
+ },
24667
+ [available, reserve, minSize, maxSize]
24668
+ );
24669
+ const fallbackSize = typeof defaultSize === "function" ? defaultSize(available) : defaultSize;
24670
+ const size = enabled ? clampSize(_nullishCoalesce(chosenSize, () => ( fallbackSize))) : fallbackSize;
24671
+ const setSize = _react.useCallback.call(void 0,
24672
+ (next) => {
24673
+ const nextSize = Math.round(clampSize(next));
24674
+ setChosen({ storage, size: nextSize });
24675
+ _optionalChain([storage, 'optionalAccess', _841 => _841.save, 'call', _842 => _842({ size: nextSize })]);
24676
+ },
24677
+ [clampSize, storage]
24678
+ );
24679
+ return { size, setSize, clampSize };
24680
+ }
24681
+
24682
+ // src/components/ui/panel-resize-handle.tsx
24683
+
24684
+
24685
+ var HORIZONTAL_SIDES = /* @__PURE__ */ new Set(["left", "right"]);
24686
+ function finishDrag(startRef, dragSizeRef, commit) {
24687
+ if (!startRef.current) return;
24688
+ startRef.current = null;
24689
+ if (dragSizeRef.current !== null) commit(dragSizeRef.current);
24690
+ dragSizeRef.current = null;
24691
+ document.body.style.cursor = "";
24692
+ document.body.style.userSelect = "";
24693
+ }
24694
+ function PanelResizeHandle({
24695
+ side,
24696
+ size,
24697
+ minSize,
24698
+ maxSize,
24699
+ onSize,
24700
+ clampSize,
24701
+ panelRef,
24702
+ variant,
24703
+ ariaLabel
24704
+ }) {
24705
+ const isHorizontal = HORIZONTAL_SIDES.has(side);
24706
+ const startRef = _react.useRef.call(void 0, null);
24707
+ const dragSizeRef = _react.useRef.call(void 0, null);
24708
+ const onSizeRef = _react.useRef.call(void 0, onSize);
24709
+ _react.useEffect.call(void 0, () => {
24710
+ onSizeRef.current = onSize;
24711
+ }, [onSize]);
24712
+ _react.useEffect.call(void 0, () => () => finishDrag(startRef, dragSizeRef, onSizeRef.current), []);
24713
+ const direction = side === "right" || side === "bottom" ? -1 : 1;
24714
+ const handlePointerDown = (e) => {
24715
+ if (e.button !== 0 && e.pointerType === "mouse") return;
24716
+ e.preventDefault();
24717
+ startRef.current = { x: e.clientX, y: e.clientY, size };
24718
+ e.currentTarget.setPointerCapture(e.pointerId);
24719
+ document.body.style.cursor = isHorizontal ? "col-resize" : "row-resize";
24720
+ document.body.style.userSelect = "none";
24721
+ };
24722
+ const handlePointerMove = (e) => {
24723
+ const start = startRef.current;
24724
+ const panel = panelRef.current;
24725
+ if (!start || !panel) return;
24726
+ const delta = isHorizontal ? e.clientX - start.x : e.clientY - start.y;
24727
+ const next = clampSize(start.size + delta * direction);
24728
+ dragSizeRef.current = next;
24729
+ panel.style[isHorizontal ? "width" : "height"] = `${next}px`;
24730
+ e.currentTarget.setAttribute("aria-valuenow", String(Math.round(next)));
24731
+ };
24732
+ const endDrag = (e) => {
24733
+ if (!startRef.current) return;
24734
+ finishDrag(startRef, dragSizeRef, onSize);
24735
+ try {
24736
+ e.currentTarget.releasePointerCapture(e.pointerId);
24737
+ } catch (e67) {
24738
+ }
24739
+ };
24740
+ const handleKeyDown = (e) => {
24741
+ const step = e.shiftKey ? 40 : 16;
24742
+ if (isHorizontal) {
24743
+ if (e.key === "ArrowLeft") {
24744
+ e.preventDefault();
24745
+ onSize(size + step * (side === "right" ? 1 : -1));
24746
+ } else if (e.key === "ArrowRight") {
24747
+ e.preventDefault();
24748
+ onSize(size + step * (side === "right" ? -1 : 1));
24749
+ }
24750
+ } else {
24751
+ if (e.key === "ArrowUp") {
24752
+ e.preventDefault();
24753
+ onSize(size + step * (side === "bottom" ? 1 : -1));
24754
+ } else if (e.key === "ArrowDown") {
24755
+ e.preventDefault();
24756
+ onSize(size + step * (side === "bottom" ? -1 : 1));
24757
+ }
24758
+ }
24759
+ if (e.key === "Home") {
24760
+ e.preventDefault();
24761
+ onSize(minSize);
24762
+ } else if (e.key === "End") {
24763
+ e.preventDefault();
24764
+ onSize(maxSize);
24765
+ }
24766
+ };
24767
+ const track = variant === "inLayout" ? { w: "w-6", h: "h-6" } : { w: "w-3", h: "h-3" };
24768
+ const trackPosition = side === "right" ? `right-full top-4 bottom-4 ${track.w} items-center justify-end pr-1` : side === "left" ? `left-full top-4 bottom-4 ${track.w} items-center justify-start pl-1` : side === "bottom" ? `bottom-full left-4 right-4 ${track.h} justify-center items-end pb-1` : `top-full left-4 right-4 ${track.h} justify-center items-start pt-1`;
24769
+ const cursorClass = isHorizontal ? "cursor-col-resize" : "cursor-row-resize";
24770
+ const gripClass = isHorizontal ? "h-10 w-1" : "w-10 h-1";
24771
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24772
+ "div",
24773
+ {
24774
+ role: "separator",
24775
+ tabIndex: 0,
24776
+ "aria-orientation": isHorizontal ? "vertical" : "horizontal",
24777
+ "aria-valuenow": Math.round(size),
24778
+ "aria-valuemin": minSize,
24779
+ "aria-valuemax": maxSize,
24780
+ "aria-label": _nullishCoalesce(ariaLabel, () => ( (isHorizontal ? "Resize panel width" : "Resize panel height"))),
24781
+ onPointerDown: handlePointerDown,
24782
+ onPointerMove: handlePointerMove,
24783
+ onPointerUp: endDrag,
24784
+ onPointerCancel: endDrag,
24785
+ onLostPointerCapture: endDrag,
24786
+ onKeyDown: handleKeyDown,
24787
+ className: _chunk3ATAYP36cjs.cn.call(void 0,
24788
+ "group absolute z-20 flex touch-none select-none",
24789
+ "outline-none ring-0 focus:outline-none focus:ring-0 focus-visible:outline-none focus-visible:ring-0",
24790
+ trackPosition,
24791
+ cursorClass
24792
+ ),
24793
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24794
+ "div",
24795
+ {
24796
+ "aria-hidden": true,
24797
+ className: _chunk3ATAYP36cjs.cn.call(void 0, "rounded-full", variant === "inLayout" ? "bg-ods-border" : "bg-ods-bg-surface", gripClass)
24798
+ }
24799
+ )
24800
+ }
24801
+ );
24802
+ }
24803
+
24804
+ // src/components/ui/drawer.tsx
24805
+
24633
24806
  var OVERLAY_BACKDROP_CLASS = "bg-ods-overlay";
24634
24807
  var Drawer = DialogPrimitive.Root;
24635
24808
  var DrawerTrigger = DialogPrimitive.Trigger;
@@ -24727,132 +24900,19 @@ var drawerPanelVariants = _classvarianceauthority.cva.call(void 0,
24727
24900
  }
24728
24901
  }
24729
24902
  );
24730
- var HORIZONTAL_SIDES = /* @__PURE__ */ new Set(["left", "right"]);
24731
- function viewportSize(isHorizontal) {
24732
- if (typeof window === "undefined") return 0;
24733
- return isHorizontal ? window.innerWidth : window.innerHeight;
24734
- }
24735
- function useResizableSize({ enabled, isHorizontal, minSize, maxSize, defaultSize, storageKey }) {
24736
- const clampToViewport = _react.useCallback.call(void 0,
24737
- (value) => {
24738
- const vp = viewportSize(isHorizontal);
24739
- const effectiveMax = vp > 0 ? Math.min(maxSize, vp - 80) : maxSize;
24740
- return _chunkIIMICN7Lcjs.clamp.call(void 0, value, minSize, Math.max(minSize, effectiveMax));
24741
- },
24742
- [isHorizontal, minSize, maxSize]
24743
- );
24744
- const readInitial = _react.useCallback.call(void 0, () => {
24745
- if (!enabled) return defaultSize;
24746
- if (typeof window === "undefined") return defaultSize;
24747
- if (!storageKey) return clampToViewport(defaultSize);
24748
- try {
24749
- const raw = window.localStorage.getItem(storageKey);
24750
- if (!raw) return clampToViewport(defaultSize);
24751
- const parsed = parseFloat(raw);
24752
- if (!Number.isFinite(parsed)) return clampToViewport(defaultSize);
24753
- return clampToViewport(parsed);
24754
- } catch (e67) {
24755
- return clampToViewport(defaultSize);
24756
- }
24757
- }, [enabled, storageKey, defaultSize, clampToViewport]);
24758
- const [size, setSizeRaw] = _react.useState.call(void 0, readInitial);
24759
- const setSize = _react.useCallback.call(void 0, (next) => setSizeRaw(clampToViewport(next)), [clampToViewport]);
24760
- _react.useEffect.call(void 0, () => {
24761
- if (!enabled || !storageKey || typeof window === "undefined") return;
24762
- try {
24763
- window.localStorage.setItem(storageKey, String(Math.round(size)));
24764
- } catch (e68) {
24765
- }
24766
- }, [enabled, size, storageKey]);
24767
- _react.useEffect.call(void 0, () => {
24768
- if (!enabled || typeof window === "undefined") return void 0;
24769
- const onResize = () => setSizeRaw((prev) => clampToViewport(prev));
24770
- window.addEventListener("resize", onResize);
24771
- return () => window.removeEventListener("resize", onResize);
24772
- }, [enabled, clampToViewport]);
24773
- return { size, setSize };
24774
- }
24775
- function DrawerResizeHandle({ side, size, minSize, maxSize, onSize, ariaLabel }) {
24776
- const isHorizontal = HORIZONTAL_SIDES.has(side);
24777
- const startRef = _react.useRef.call(void 0, null);
24778
- const direction = side === "right" || side === "bottom" ? -1 : 1;
24779
- const handlePointerDown = (e) => {
24780
- if (e.button !== 0 && e.pointerType === "mouse") return;
24781
- e.preventDefault();
24782
- startRef.current = { x: e.clientX, y: e.clientY, size };
24783
- e.currentTarget.setPointerCapture(e.pointerId);
24784
- document.body.style.cursor = isHorizontal ? "col-resize" : "row-resize";
24785
- document.body.style.userSelect = "none";
24786
- };
24787
- const handlePointerMove = (e) => {
24788
- const start = startRef.current;
24789
- if (!start) return;
24790
- const delta = isHorizontal ? e.clientX - start.x : e.clientY - start.y;
24791
- onSize(start.size + delta * direction);
24792
- };
24793
- const endDrag = (e) => {
24794
- if (!startRef.current) return;
24795
- startRef.current = null;
24796
- try {
24797
- e.currentTarget.releasePointerCapture(e.pointerId);
24798
- } catch (e69) {
24799
- }
24800
- document.body.style.cursor = "";
24801
- document.body.style.userSelect = "";
24802
- };
24803
- const handleKeyDown = (e) => {
24804
- const step = e.shiftKey ? 40 : 16;
24805
- if (isHorizontal) {
24806
- if (e.key === "ArrowLeft") {
24807
- e.preventDefault();
24808
- onSize(size + step * (side === "right" ? 1 : -1));
24809
- } else if (e.key === "ArrowRight") {
24810
- e.preventDefault();
24811
- onSize(size + step * (side === "right" ? -1 : 1));
24812
- }
24813
- } else {
24814
- if (e.key === "ArrowUp") {
24815
- e.preventDefault();
24816
- onSize(size + step * (side === "bottom" ? 1 : -1));
24817
- } else if (e.key === "ArrowDown") {
24818
- e.preventDefault();
24819
- onSize(size + step * (side === "bottom" ? -1 : 1));
24820
- }
24821
- }
24822
- if (e.key === "Home") {
24823
- e.preventDefault();
24824
- onSize(minSize);
24825
- } else if (e.key === "End") {
24826
- e.preventDefault();
24827
- onSize(maxSize);
24828
- }
24829
- };
24830
- const trackPosition = side === "right" ? "right-full top-4 bottom-4 w-3 items-center justify-end pr-1" : side === "left" ? "left-full top-4 bottom-4 w-3 items-center justify-start pl-1" : side === "bottom" ? "bottom-full left-4 right-4 h-3 justify-center items-end pb-1" : "top-full left-4 right-4 h-3 justify-center items-start pt-1";
24831
- const cursorClass = isHorizontal ? "cursor-col-resize" : "cursor-row-resize";
24832
- const gripClass = isHorizontal ? "h-10 w-1" : "w-10 h-1";
24833
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24834
- "div",
24835
- {
24836
- role: "separator",
24837
- tabIndex: 0,
24838
- "aria-orientation": isHorizontal ? "vertical" : "horizontal",
24839
- "aria-valuenow": Math.round(size),
24840
- "aria-valuemin": minSize,
24841
- "aria-valuemax": maxSize,
24842
- "aria-label": _nullishCoalesce(ariaLabel, () => ( (isHorizontal ? "Resize panel width" : "Resize panel height"))),
24843
- onPointerDown: handlePointerDown,
24844
- onPointerMove: handlePointerMove,
24845
- onPointerUp: endDrag,
24846
- onPointerCancel: endDrag,
24847
- onKeyDown: handleKeyDown,
24848
- className: _chunk3ATAYP36cjs.cn.call(void 0,
24849
- "group absolute z-20 flex touch-none select-none",
24850
- "outline-none ring-0 focus:outline-none focus:ring-0 focus-visible:outline-none focus-visible:ring-0",
24851
- trackPosition,
24852
- cursorClass
24853
- ),
24854
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: _chunk3ATAYP36cjs.cn.call(void 0, "rounded-full bg-ods-bg-surface", gripClass) })
24855
- }
24903
+ var HORIZONTAL_SIDES2 = /* @__PURE__ */ new Set(["left", "right"]);
24904
+ var subscribeToResize = (onChange) => {
24905
+ window.addEventListener("resize", onChange);
24906
+ return () => window.removeEventListener("resize", onChange);
24907
+ };
24908
+ var subscribeToNothing = () => () => {
24909
+ };
24910
+ var noExtent = () => 0;
24911
+ function useViewportExtent(enabled, isHorizontal) {
24912
+ return _react.useSyncExternalStore.call(void 0,
24913
+ enabled ? subscribeToResize : subscribeToNothing,
24914
+ enabled ? isHorizontal ? () => window.innerWidth : () => window.innerHeight : noExtent,
24915
+ noExtent
24856
24916
  );
24857
24917
  }
24858
24918
  var DrawerContent = _react.forwardRef.call(void 0,
@@ -24877,8 +24937,7 @@ var DrawerContent = _react.forwardRef.call(void 0,
24877
24937
  ...props
24878
24938
  }, ref) => {
24879
24939
  const resolvedSide = _nullishCoalesce(side, () => ( "right"));
24880
- const isHorizontal = HORIZONTAL_SIDES.has(resolvedSide);
24881
- const initialSize = _nullishCoalesce(defaultSize, () => ( (isHorizontal ? 560 : 480)));
24940
+ const isHorizontal = HORIZONTAL_SIDES2.has(resolvedSide);
24882
24941
  const headerHeight = _chunkIIMICN7Lcjs.useHeaderHeight.call(void 0, );
24883
24942
  const [isMobile, setIsMobile] = _react.useState.call(void 0, false);
24884
24943
  _react.useEffect.call(void 0, () => {
@@ -24889,12 +24948,19 @@ var DrawerContent = _react.forwardRef.call(void 0,
24889
24948
  mq.addEventListener("change", update);
24890
24949
  return () => mq.removeEventListener("change", update);
24891
24950
  }, [mobileBreakpoint]);
24892
- const { size: resizedSize, setSize } = useResizableSize({
24951
+ const available = useViewportExtent(resizable, isHorizontal);
24952
+ const panelRef = _react.useRef.call(void 0, null);
24953
+ const {
24954
+ size: resizedSize,
24955
+ setSize,
24956
+ clampSize
24957
+ } = useResizablePanelSize({
24893
24958
  enabled: resizable,
24894
- isHorizontal,
24895
24959
  minSize,
24896
24960
  maxSize,
24897
- defaultSize: initialSize,
24961
+ defaultSize: _nullishCoalesce(defaultSize, () => ( (isHorizontal ? 560 : 480))),
24962
+ available,
24963
+ reserve: 80,
24898
24964
  storageKey
24899
24965
  });
24900
24966
  const applyInlineSize = resizable && !isMobile;
@@ -24910,19 +24976,23 @@ var DrawerContent = _react.forwardRef.call(void 0,
24910
24976
  ...props,
24911
24977
  children: [
24912
24978
  applyInlineSize ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24913
- DrawerResizeHandle,
24979
+ PanelResizeHandle,
24914
24980
  {
24981
+ variant: "overlay",
24915
24982
  side: resolvedSide,
24916
24983
  size: resizedSize,
24917
24984
  minSize,
24918
24985
  maxSize,
24919
24986
  onSize: setSize,
24987
+ clampSize,
24988
+ panelRef,
24920
24989
  ariaLabel: resizeAriaLabel
24921
24990
  }
24922
24991
  ) : null,
24923
24992
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24924
24993
  "div",
24925
24994
  {
24995
+ ref: panelRef,
24926
24996
  className: _chunk3ATAYP36cjs.cn.call(void 0, drawerPanelVariants({ side, flush, size }), className, panelClassName),
24927
24997
  style: { ...sizeStyle, ...panelStyle },
24928
24998
  children
@@ -25191,7 +25261,7 @@ function useChatDialogManager({
25191
25261
  const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
25192
25262
  if (restoreTarget) {
25193
25263
  try {
25194
- await _optionalChain([unarchiveDialog, 'optionalCall', _835 => _835(restoreTarget.id)]);
25264
+ await _optionalChain([unarchiveDialog, 'optionalCall', _843 => _843(restoreTarget.id)]);
25195
25265
  } catch (err) {
25196
25266
  console.error("[useChatDialogManager] unarchive failed:", err);
25197
25267
  return;
@@ -25329,12 +25399,14 @@ var DRAWER_DEFAULT_WIDTH_RATIO = 0.5;
25329
25399
  var DRAWER_WIDTH_KEY = "mingo-chat-width-v4";
25330
25400
  var DRAWER_DEFAULT_WIDTH_PX = 750;
25331
25401
  var SPLIT_DEFAULT_WIDTH_ALLOWANCE = 16;
25332
- function drawerDefaultWidth(withHistoryRail) {
25333
- if (typeof window === "undefined") return DRAWER_DEFAULT_WIDTH_PX;
25334
- const ratioWidth = Math.round(window.innerWidth * DRAWER_DEFAULT_WIDTH_RATIO);
25402
+ function drawerDefaultWidth(viewportWidth, withHistoryRail) {
25403
+ if (viewportWidth <= 0) return DRAWER_DEFAULT_WIDTH_PX;
25404
+ const ratioWidth = Math.round(viewportWidth * DRAWER_DEFAULT_WIDTH_RATIO);
25335
25405
  if (!withHistoryRail) return ratioWidth;
25336
25406
  return Math.max(ratioWidth, SPLIT_MIN_WIDTH + SPLIT_DEFAULT_WIDTH_ALLOWANCE);
25337
25407
  }
25408
+ var drawerDefaultWidthWithRail = (viewportWidth) => drawerDefaultWidth(viewportWidth, true);
25409
+ var drawerDefaultWidthWithoutRail = (viewportWidth) => drawerDefaultWidth(viewportWidth, false);
25338
25410
  var formatRelativePath = (p) => p.replace(/^\/+/, "").replace(/\/+$/, "");
25339
25411
  var mentionTokenOf = (key, markerByType) => {
25340
25412
  const ci = key.indexOf(":");
@@ -25742,7 +25814,7 @@ function EmbeddableChatInner({
25742
25814
  }),
25743
25815
  [commandsUrl]
25744
25816
  );
25745
- const headerUserName = _optionalChain([identityUser, 'optionalAccess', _836 => _836.name, 'optionalAccess', _837 => _837.trim, 'call', _838 => _838()]) || [_optionalChain([identityUser, 'optionalAccess', _839 => _839.firstName]), _optionalChain([identityUser, 'optionalAccess', _840 => _840.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([userDisplayName, 'optionalAccess', _841 => _841.trim, 'call', _842 => _842()]) || void 0;
25817
+ const headerUserName = _optionalChain([identityUser, 'optionalAccess', _844 => _844.name, 'optionalAccess', _845 => _845.trim, 'call', _846 => _846()]) || [_optionalChain([identityUser, 'optionalAccess', _847 => _847.firstName]), _optionalChain([identityUser, 'optionalAccess', _848 => _848.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([userDisplayName, 'optionalAccess', _849 => _849.trim, 'call', _850 => _850()]) || void 0;
25746
25818
  const effectiveModes = _react.useMemo.call(void 0, () => {
25747
25819
  if (modes) return modes;
25748
25820
  const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
@@ -25757,7 +25829,7 @@ function EmbeddableChatInner({
25757
25829
  if (controlledActiveMode === void 0) {
25758
25830
  setUncontrolledActiveMode(next);
25759
25831
  }
25760
- _optionalChain([onActiveModeChange, 'optionalCall', _843 => _843(next)]);
25832
+ _optionalChain([onActiveModeChange, 'optionalCall', _851 => _851(next)]);
25761
25833
  },
25762
25834
  [controlledActiveMode, onActiveModeChange]
25763
25835
  );
@@ -25784,7 +25856,7 @@ function EmbeddableChatInner({
25784
25856
  );
25785
25857
  const effectiveAssistantName = emptyStateConfig.name;
25786
25858
  const effectiveAssistantIcon = emptyStateConfig.icon;
25787
- const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _844 => _844.title]) === "string" ? guideWelcome.title : null)));
25859
+ const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _852 => _852.title]) === "string" ? guideWelcome.title : null)));
25788
25860
  const {
25789
25861
  messages: rawMessages,
25790
25862
  isLoading: chatLoading,
@@ -25840,8 +25912,8 @@ function EmbeddableChatInner({
25840
25912
  const mingoCaps = _react.useMemo.call(void 0,
25841
25913
  () => ({
25842
25914
  ...dialogCapabilities,
25843
- canRename: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _845 => _845.canRename]), () => ( false)),
25844
- canArchive: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _846 => _846.canArchive]), () => ( false))
25915
+ canRename: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _853 => _853.canRename]), () => ( false)),
25916
+ canArchive: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _854 => _854.canArchive]), () => ( false))
25845
25917
  }),
25846
25918
  [dialogCapabilities]
25847
25919
  );
@@ -25856,7 +25928,7 @@ function EmbeddableChatInner({
25856
25928
  void sendMessage(guidePendingPrompt).catch((err) => {
25857
25929
  console.error("[EmbeddableChat] guide launcher prompt failed:", err);
25858
25930
  });
25859
- _optionalChain([onGuidePromptConsumed, 'optionalCall', _847 => _847()]);
25931
+ _optionalChain([onGuidePromptConsumed, 'optionalCall', _855 => _855()]);
25860
25932
  }, [guidePendingPrompt, activeMode, sendMessage, onGuidePromptConsumed]);
25861
25933
  const {
25862
25934
  attachments: stagedAttachments,
@@ -25867,7 +25939,7 @@ function EmbeddableChatInner({
25867
25939
  clear: clearAttachments
25868
25940
  } = useChatAttachments();
25869
25941
  const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
25870
- const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _848 => _848.maxItems]), () => ( 10));
25942
+ const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _856 => _856.maxItems]), () => ( 10));
25871
25943
  const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
25872
25944
  const [contextItems, setContextItems] = _react.useState.call(void 0, NO_CONTEXT_ITEMS);
25873
25945
  const [contextPickerOpen, setContextPickerOpen] = _react.useState.call(void 0, false);
@@ -25896,10 +25968,10 @@ function EmbeddableChatInner({
25896
25968
  }, [composerKey, clearAttachments]);
25897
25969
  const mentionMarkerByType = _react.useMemo.call(void 0, () => {
25898
25970
  const m = /* @__PURE__ */ new Map();
25899
- for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _849 => _849.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
25971
+ for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _857 => _857.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
25900
25972
  return m;
25901
- }, [_optionalChain([contextPicker, 'optionalAccess', _850 => _850.entityTypes])]);
25902
- const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _851 => _851.entityTypes]);
25973
+ }, [_optionalChain([contextPicker, 'optionalAccess', _858 => _858.entityTypes])]);
25974
+ const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _859 => _859.entityTypes]);
25903
25975
  const resolveContextIcon = _react.useMemo.call(void 0, () => {
25904
25976
  const byType = /* @__PURE__ */ new Map();
25905
25977
  for (const t of _nullishCoalesce(contextEntityTypes, () => ( []))) byType.set(t.type, t.icon);
@@ -25911,7 +25983,7 @@ function EmbeddableChatInner({
25911
25983
  if (mentionActiveRef.current) {
25912
25984
  if (contextItems.some((p) => `${p.type}:${p.id}` === key)) return;
25913
25985
  if (contextItems.length >= contextMaxItems) return;
25914
- _optionalChain([chatInputRef, 'access', _852 => _852.current, 'optionalAccess', _853 => _853.commitMention, 'call', _854 => _854(mentionTokenOf(key, mentionMarkerByType), {
25986
+ _optionalChain([chatInputRef, 'access', _860 => _860.current, 'optionalAccess', _861 => _861.commitMention, 'call', _862 => _862(mentionTokenOf(key, mentionMarkerByType), {
25915
25987
  label: item.label,
25916
25988
  icon: resolveContextIcon(item)
25917
25989
  })]);
@@ -25934,9 +26006,9 @@ function EmbeddableChatInner({
25934
26006
  setContextItems((prev) => prev.filter((p) => `${p.type}:${p.id}` !== key));
25935
26007
  if (mentionKeysRef.current.has(key)) {
25936
26008
  mentionKeysRef.current.delete(key);
25937
- const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _855 => _855.current, 'optionalAccess', _856 => _856.getValue, 'call', _857 => _857()]), () => ( ""));
26009
+ const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _863 => _863.current, 'optionalAccess', _864 => _864.getValue, 'call', _865 => _865()]), () => ( ""));
25938
26010
  const next = cur.replace(`@${mentionTokenOf(key, mentionMarkerByType)}`, "").replace(/\s{2,}/g, " ").trimStart();
25939
- _optionalChain([chatInputRef, 'access', _858 => _858.current, 'optionalAccess', _859 => _859.setValue, 'call', _860 => _860(next)]);
26011
+ _optionalChain([chatInputRef, 'access', _866 => _866.current, 'optionalAccess', _867 => _867.setValue, 'call', _868 => _868(next)]);
25940
26012
  }
25941
26013
  },
25942
26014
  [mentionMarkerByType]
@@ -25958,7 +26030,7 @@ function EmbeddableChatInner({
25958
26030
  }, []);
25959
26031
  const closeContextPicker = _react.useCallback.call(void 0, () => {
25960
26032
  if (mentionActiveRef.current) {
25961
- _optionalChain([chatInputRef, 'access', _861 => _861.current, 'optionalAccess', _862 => _862.removeMentionTrigger, 'call', _863 => _863()]);
26033
+ _optionalChain([chatInputRef, 'access', _869 => _869.current, 'optionalAccess', _870 => _870.removeMentionTrigger, 'call', _871 => _871()]);
25962
26034
  }
25963
26035
  setContextPickerOpen(false);
25964
26036
  setMentionQuery(null);
@@ -25992,8 +26064,8 @@ function EmbeddableChatInner({
25992
26064
  [effectiveAssistantIcon]
25993
26065
  );
25994
26066
  const [timestampCache] = _react.useState.call(void 0, () => /* @__PURE__ */ new Map());
25995
- const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _864 => _864.firstName]), _optionalChain([identityUser, 'optionalAccess', _865 => _865.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _866 => _866.name, 'optionalAccess', _867 => _867.trim, 'call', _868 => _868()]) || void 0 : void 0;
25996
- const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _869 => _869.avatarUrl, 'optionalAccess', _870 => _870.trim, 'call', _871 => _871()]) || void 0 : void 0;
26067
+ const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _872 => _872.firstName]), _optionalChain([identityUser, 'optionalAccess', _873 => _873.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _874 => _874.name, 'optionalAccess', _875 => _875.trim, 'call', _876 => _876()]) || void 0 : void 0;
26068
+ const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _877 => _877.avatarUrl, 'optionalAccess', _878 => _878.trim, 'call', _879 => _879()]) || void 0 : void 0;
25997
26069
  const messages = _react.useMemo.call(void 0, () => {
25998
26070
  const options = { userName: guideUserName, userAvatar: guideUserAvatar, timestampCache };
25999
26071
  const mapped = rawMessages.map((m) => mapHostMessage(m, options));
@@ -26168,7 +26240,7 @@ function EmbeddableChatInner({
26168
26240
  _react.useEffect.call(void 0, () => {
26169
26241
  if (!panelBoundary || typeof ResizeObserver === "undefined") return void 0;
26170
26242
  const ro = new ResizeObserver((entries) => {
26171
- const w = _optionalChain([entries, 'access', _872 => _872[0], 'optionalAccess', _873 => _873.contentRect, 'optionalAccess', _874 => _874.width]);
26243
+ const w = _optionalChain([entries, 'access', _880 => _880[0], 'optionalAccess', _881 => _881.contentRect, 'optionalAccess', _882 => _882.width]);
26172
26244
  if (typeof w === "number") setCanSplit(w >= SPLIT_MIN_WIDTH);
26173
26245
  });
26174
26246
  ro.observe(panelBoundary);
@@ -26185,7 +26257,7 @@ function EmbeddableChatInner({
26185
26257
  setRailStorageRead(true);
26186
26258
  try {
26187
26259
  if (window.localStorage.getItem(RAIL_COLLAPSED_STORAGE_KEY) === "1") setRailCollapsed(true);
26188
- } catch (e70) {
26260
+ } catch (e68) {
26189
26261
  }
26190
26262
  }
26191
26263
  const toggleRailCollapsed = _react.useCallback.call(void 0, () => {
@@ -26193,7 +26265,7 @@ function EmbeddableChatInner({
26193
26265
  const next = !prev;
26194
26266
  try {
26195
26267
  window.localStorage.setItem(RAIL_COLLAPSED_STORAGE_KEY, next ? "1" : "0");
26196
- } catch (e71) {
26268
+ } catch (e69) {
26197
26269
  }
26198
26270
  return next;
26199
26271
  });
@@ -26211,18 +26283,18 @@ function EmbeddableChatInner({
26211
26283
  const stackedListView = isMingoMode && !hasConversation && !archiveOpen && !wideMingo && !composeOpen && !emptyListSkipped;
26212
26284
  const headerShowBack = hasConversation || guideCanReturnToMingo;
26213
26285
  const freshConversationTitle = isGuideEmpty ? _nullishCoalesce(headerAssistantName, () => ( "Mingo Guide")) : "New Chat";
26214
- const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _875 => _875.title]) || freshConversationTitle : isGuideEmpty ? freshConversationTitle : "Current Chats";
26286
+ const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _883 => _883.title]) || freshConversationTitle : isGuideEmpty ? freshConversationTitle : "Current Chats";
26215
26287
  const headerBackAriaLabel = hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo";
26216
26288
  const headerOnBack = hasConversation ? handleBack : () => handleActiveModeChange("mingo");
26217
26289
  const headerOnRestore = isViewingArchived && unarchiveDialog && activeDialog ? () => setRestoreTarget(activeDialog) : void 0;
26218
26290
  const headerOnRename = activeDialogId && activeDialog && mingoCaps.canRename ? () => setRenameTarget(activeDialog) : void 0;
26219
26291
  const headerOnArchive = activeDialogId && activeDialog && mingoCaps.canArchive ? () => setArchiveTarget(activeDialog) : void 0;
26220
- const headerOnCopyLink = activeDialogId && activeDialog && mingoCaps.onCopyLink ? () => _optionalChain([mingoCaps, 'access', _876 => _876.onCopyLink, 'optionalCall', _877 => _877(activeDialog)]) : void 0;
26221
- const headerOnCompact = activeDialogId && activeDialog && mingoCaps.compactDialog ? () => _optionalChain([mingoCaps, 'access', _878 => _878.compactDialog, 'optionalCall', _879 => _879(activeDialog)]) : void 0;
26292
+ const headerOnCopyLink = activeDialogId && activeDialog && mingoCaps.onCopyLink ? () => _optionalChain([mingoCaps, 'access', _884 => _884.onCopyLink, 'optionalCall', _885 => _885(activeDialog)]) : void 0;
26293
+ const headerOnCompact = activeDialogId && activeDialog && mingoCaps.compactDialog ? () => _optionalChain([mingoCaps, 'access', _886 => _886.compactDialog, 'optionalCall', _887 => _887(activeDialog)]) : void 0;
26222
26294
  const headerOnOpenArchive = fetchArchivedDialogs ? openArchive : void 0;
26223
- const headerOwner = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _880 => _880.owner]) : void 0;
26224
- const headerPersonName = _optionalChain([headerOwner, 'optionalAccess', _881 => _881.name, 'optionalAccess', _882 => _882.trim, 'call', _883 => _883()]) || headerUserName;
26225
- const headerPersonAvatarUrl = headerOwner ? _optionalChain([headerOwner, 'access', _884 => _884.avatarUrl, 'optionalAccess', _885 => _885.trim, 'call', _886 => _886()]) || void 0 : _optionalChain([identityUser, 'optionalAccess', _887 => _887.avatarUrl, 'optionalAccess', _888 => _888.trim, 'call', _889 => _889()]) || _optionalChain([userAvatarUrl, 'optionalAccess', _890 => _890.trim, 'call', _891 => _891()]) || void 0;
26295
+ const headerOwner = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _888 => _888.owner]) : void 0;
26296
+ const headerPersonName = _optionalChain([headerOwner, 'optionalAccess', _889 => _889.name, 'optionalAccess', _890 => _890.trim, 'call', _891 => _891()]) || headerUserName;
26297
+ const headerPersonAvatarUrl = headerOwner ? _optionalChain([headerOwner, 'access', _892 => _892.avatarUrl, 'optionalAccess', _893 => _893.trim, 'call', _894 => _894()]) || void 0 : _optionalChain([identityUser, 'optionalAccess', _895 => _895.avatarUrl, 'optionalAccess', _896 => _896.trim, 'call', _897 => _897()]) || _optionalChain([userAvatarUrl, 'optionalAccess', _898 => _898.trim, 'call', _899 => _899()]) || void 0;
26226
26298
  const headerAvatar = headerPersonName || headerPersonAvatarUrl ? { name: headerPersonName, avatarUrl: headerPersonAvatarUrl } : void 0;
26227
26299
  const handleNewChat = _react.useCallback.call(void 0, () => {
26228
26300
  resetToNewChat();
@@ -26575,9 +26647,9 @@ function EmbeddableChatInner({
26575
26647
  subtitle: _nullishCoalesce(effectiveGreeting, () => ( void 0)),
26576
26648
  subtitleLoading: emptyStateLoading,
26577
26649
  ...guideWelcome,
26578
- title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _892 => _892.title]))),
26579
- icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _893 => _893.icon]))),
26580
- quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _894 => _894.quickActions]), () => ( guideSuggestedActions)),
26650
+ title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _900 => _900.title]))),
26651
+ icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _901 => _901.icon]))),
26652
+ quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _902 => _902.quickActions]), () => ( guideSuggestedActions)),
26581
26653
  onQuickAction: (action) => {
26582
26654
  setQuickActionPreview(null);
26583
26655
  handleSend(_nullishCoalesce(action.prompt, () => ( action.label)));
@@ -26652,8 +26724,8 @@ function EmbeddableChatInner({
26652
26724
  selectedContextItems: contextItems,
26653
26725
  onToggleContextItem: toggleContextItem,
26654
26726
  onRemoveContextItem: removeContextItem,
26655
- contextMemoryItems: _optionalChain([contextMemory, 'optionalAccess', _895 => _895.items]),
26656
- onRemoveContextMemoryItem: _optionalChain([contextMemory, 'optionalAccess', _896 => _896.onRemove]),
26727
+ contextMemoryItems: _optionalChain([contextMemory, 'optionalAccess', _903 => _903.items]),
26728
+ onRemoveContextMemoryItem: _optionalChain([contextMemory, 'optionalAccess', _904 => _904.onRemove]),
26657
26729
  contextPickerOpen,
26658
26730
  onOpenContextPicker: openContextPicker,
26659
26731
  onCloseContextPicker: closeContextPicker,
@@ -26709,7 +26781,7 @@ function EmbeddableChatInner({
26709
26781
  resizable: true,
26710
26782
  minSize: 480,
26711
26783
  maxSize: 1600,
26712
- defaultSize: drawerDefaultWidth(historyListMode),
26784
+ defaultSize: historyListMode ? drawerDefaultWidthWithRail : drawerDefaultWidthWithoutRail,
26713
26785
  storageKey: DRAWER_WIDTH_KEY,
26714
26786
  resizeAriaLabel: "Resize chat panel",
26715
26787
  overlayClassName: "mingo-chat-overlay",
@@ -26862,7 +26934,7 @@ var GROUPS = [
26862
26934
  }
26863
26935
  ];
26864
26936
  function maskKey(key) {
26865
- const prefix = _nullishCoalesce(_optionalChain([/^fpk_[a-z0-9-]+_/i, 'access', _897 => _897.exec, 'call', _898 => _898(key), 'optionalAccess', _899 => _899[0]]), () => ( ""));
26937
+ const prefix = _nullishCoalesce(_optionalChain([/^fpk_[a-z0-9-]+_/i, 'access', _905 => _905.exec, 'call', _906 => _906(key), 'optionalAccess', _907 => _907[0]]), () => ( ""));
26866
26938
  return key.length - prefix.length <= 8 ? `${prefix}\u2022\u2022\u2022\u2022` : `${prefix}\u2026${key.slice(-4)}`;
26867
26939
  }
26868
26940
  function HeaderName({ children }) {
@@ -26899,8 +26971,8 @@ function ProxyCredentialsForm({ description, saved }) {
26899
26971
  const errors = _react.useMemo.call(void 0, () => {
26900
26972
  const out = {};
26901
26973
  for (const { field } of _chunkMDBHZBW7cjs.EMBED_PROXY_OPTIONAL_HEADERS) {
26902
- const value = _optionalChain([optional, 'access', _900 => _900[field], 'optionalAccess', _901 => _901.trim, 'call', _902 => _902()]);
26903
- const message = value ? _optionalChain([OPTIONAL_FIELD_COPY, 'access', _903 => _903[field], 'access', _904 => _904.validate, 'optionalCall', _905 => _905(value)]) : null;
26974
+ const value = _optionalChain([optional, 'access', _908 => _908[field], 'optionalAccess', _909 => _909.trim, 'call', _910 => _910()]);
26975
+ const message = value ? _optionalChain([OPTIONAL_FIELD_COPY, 'access', _911 => _911[field], 'access', _912 => _912.validate, 'optionalCall', _913 => _913(value)]) : null;
26904
26976
  if (message) out[field] = message;
26905
26977
  }
26906
26978
  return out;
@@ -26912,12 +26984,12 @@ function ProxyCredentialsForm({ description, saved }) {
26912
26984
  ...keyForPreview ? [["Authorization", `Bearer ${keyForPreview}`]] : [],
26913
26985
  ...email.trim() ? [["X-Chat-Act-As", email.trim().toLowerCase()]] : [],
26914
26986
  ..._chunkMDBHZBW7cjs.EMBED_PROXY_OPTIONAL_HEADERS.flatMap(({ field, header }) => {
26915
- const value = _optionalChain([optional, 'access', _906 => _906[field], 'optionalAccess', _907 => _907.trim, 'call', _908 => _908()]);
26987
+ const value = _optionalChain([optional, 'access', _914 => _914[field], 'optionalAccess', _915 => _915.trim, 'call', _916 => _916()]);
26916
26988
  return value ? [[header, value]] : [];
26917
26989
  })
26918
26990
  ];
26919
26991
  const save = () => {
26920
- const key = secret.trim() || _optionalChain([_chunkMDBHZBW7cjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _909 => _909.secret]);
26992
+ const key = secret.trim() || _optionalChain([_chunkMDBHZBW7cjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _917 => _917.secret]);
26921
26993
  const actAs = email.trim().toLowerCase();
26922
26994
  if (!key || !actAs || hasErrors) {
26923
26995
  setStatus(hasErrors ? "Fix the highlighted fields first." : "API key and act-as email are required.");
@@ -27450,4 +27522,6 @@ function ProxyCredentialsForm({ description, saved }) {
27450
27522
 
27451
27523
 
27452
27524
 
27453
- exports.InfoHint = InfoHint; exports.Field = Field; 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.DESIGN_PALETTE = DESIGN_PALETTE; exports.getContrastRatio = getContrastRatio; exports.pickReadableTextColor = pickReadableTextColor; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.getCurrentPlatform = getCurrentPlatform; exports.switchPlatformTheme = switchPlatformTheme; exports.getSemanticColor = getSemanticColor; exports.getPlatformConfig = getPlatformConfig; exports.usePlatformColors = usePlatformColors; exports.getReadableTextColor = getReadableTextColor; exports.HEX_PATTERN = HEX_PATTERN; exports.hexToRgb = hexToRgb2; exports.rgbToHex = rgbToHex; exports.deriveHoverColor = deriveHoverColor; exports.deriveActiveColor = deriveActiveColor; exports.rgbToHsl = rgbToHsl; exports.hslToRgb = hslToRgb; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.ScrollShadow = ScrollShadow; exports.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalTwoColumn = ModalTwoColumn; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; 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.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.buildHeadingIdMap = buildHeadingIdMap; exports.useHeadingIdMap = useHeadingIdMap; exports.extractText = extractText; exports.useIsHydrated = useIsHydrated; exports.MermaidDiagram = MermaidDiagram; exports.hasRenderableSrc = hasRenderableSrc; exports.buildStandardLeafRenderers = buildStandardLeafRenderers; 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.splitStreamingBlocks = splitStreamingBlocks; exports.completeStreamingTail = completeStreamingTail; exports.TEXT_SIZE_PRESETS = TEXT_SIZE_PRESETS; exports.resolveTextSizeConfig = resolveTextSizeConfig; exports.NO_BROKEN_LINKS = NO_BROKEN_LINKS; exports.MarkdownEngine = MarkdownEngine; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; 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_PLAYBACK_FAILED_EVENT = VIDEO_PLAYBACK_FAILED_EVENT; exports.Video = Video2; exports.HoverDropdown = HoverDropdown; exports.StatusLine = StatusLine; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.CommandBlock = CommandBlock; exports.ApprovalStatusTag = ApprovalStatusTag; exports.ApprovalWaitingLine = ApprovalWaitingLine; exports.ApprovalBatchMessage = ApprovalBatchMessage; 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.CHAT_APPEARANCE = CHAT_APPEARANCE; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent; exports.ChatAppearanceContext = ChatAppearanceContext; exports.useChatAppearance = useChatAppearance; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.formatTime = formatTime; 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.SystemEventMessage = SystemEventMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.ThinkingDisplay = ThinkingDisplay; 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.brandLogoForName = brandLogoForName; exports.resolveIcon = resolveIcon; exports.ICON_OPTIONS = ICON_OPTIONS; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.FAE_AVATAR_DATA_URI = FAE_AVATAR_DATA_URI; exports.AgentMark = AgentMark; 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.BlockCard = BlockCard; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.ChatMessageList = ChatMessageList; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; 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.ChatListEmptyState = ChatListEmptyState; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; 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.ChatNavSidebar = ChatNavSidebar; exports.ChatListItem = ChatListItem; exports.ChatTopNavigation = ChatTopNavigation; exports.OnboardingCarousel = OnboardingCarousel; 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.getCaptionsUrl = getCaptionsUrl; exports.rebaseCaptionsUrl = rebaseCaptionsUrl; exports.buildCaptionsUrl = buildCaptionsUrl; exports.getEntityCaptionUrls = getEntityCaptionUrls; exports.getEntityCaptionUrlsById = getEntityCaptionUrlsById; exports.captionsEntityTypeForDocType = captionsEntityTypeForDocType; exports.useCaptions = useCaptions; exports.UserDisplay = UserDisplay; exports.CardHitLayer = CardHitLayer; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.VideoHoverPreviewSurface = VideoHoverPreviewSurface; 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.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.DESIGN_DOC_READINESS = DESIGN_DOC_READINESS; exports.DESIGN_DOC_READINESS_DISPLAY = DESIGN_DOC_READINESS_DISPLAY; exports.designDocReadiness = designDocReadiness; exports.formatCompletionLabel = formatCompletionLabel; exports.formatCompletionLabelWithBlockers = formatCompletionLabelWithBlockers; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.designDocPeople = designDocPeople; exports.designDocMetaLine = designDocMetaLine; exports.DesignDocCardSkeleton = DesignDocCardSkeleton; exports.DesignDocCard = DesignDocCard; 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.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.useChatCardItem = useChatCardItem; exports.readFetchedCardTitle = readFetchedCardTitle; exports.readFetchedCardPath = readFetchedCardPath; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.byKey = byKey; exports.getPlatformProductionUrl = getPlatformProductionUrl; exports.getPlatformUrl = getPlatformUrl; exports.getDeploymentUrl = getDeploymentUrl; exports.isLocalUrl = isLocalUrl; exports.getRequestOrigin = getRequestOrigin; exports.resolveRedirectTarget = resolveRedirectTarget; exports.getAllPlatformBaseDomains = getAllPlatformBaseDomains; 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.DOC_TABLE_TYPES = DOC_TABLE_TYPES; exports.groupsByTable = groupsByTable; exports.recordCountLabel = recordCountLabel; exports.buildGroupedSource = buildGroupedSource; exports.groupSourcesByTable = groupSourcesByTable; exports.formatCitationIndices = formatCitationIndices; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.resolveCardDestination = resolveCardDestination; exports.clickupTaskUrl = clickupTaskUrl; exports.chatCardLabel = chatCardLabel; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.EMPTY_DIALOG_CAPABILITIES = EMPTY_DIALOG_CAPABILITIES; 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.approvalDisplaysInline = approvalDisplaysInline; 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.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.createChatConversationsApi = createChatConversationsApi; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.buildDiscussPrompt = buildDiscussPrompt; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.useManagedDialogList = useManagedDialogList; exports.useSseChatAdapter = useSseChatAdapter; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.extractIncompleteTailState = extractIncompleteTailState; exports.decodeHistoricalMessageData = decodeHistoricalMessageData; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useStableShallow = useStableShallow; 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.ProxyCredentialsPanel = ProxyCredentialsPanel;
27525
+
27526
+
27527
+ exports.InfoHint = InfoHint; exports.Field = Field; 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.DESIGN_PALETTE = DESIGN_PALETTE; exports.getContrastRatio = getContrastRatio; exports.pickReadableTextColor = pickReadableTextColor; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.getCurrentPlatform = getCurrentPlatform; exports.switchPlatformTheme = switchPlatformTheme; exports.getSemanticColor = getSemanticColor; exports.getPlatformConfig = getPlatformConfig; exports.usePlatformColors = usePlatformColors; exports.getReadableTextColor = getReadableTextColor; exports.HEX_PATTERN = HEX_PATTERN; exports.hexToRgb = hexToRgb2; exports.rgbToHex = rgbToHex; exports.deriveHoverColor = deriveHoverColor; exports.deriveActiveColor = deriveActiveColor; exports.rgbToHsl = rgbToHsl; exports.hslToRgb = hslToRgb; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.ScrollShadow = ScrollShadow; exports.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalTwoColumn = ModalTwoColumn; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.useResizablePanelSize = useResizablePanelSize; exports.PanelResizeHandle = PanelResizeHandle; 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.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.buildHeadingIdMap = buildHeadingIdMap; exports.useHeadingIdMap = useHeadingIdMap; exports.extractText = extractText; exports.useIsHydrated = useIsHydrated; exports.MermaidDiagram = MermaidDiagram; exports.hasRenderableSrc = hasRenderableSrc; exports.buildStandardLeafRenderers = buildStandardLeafRenderers; 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.splitStreamingBlocks = splitStreamingBlocks; exports.completeStreamingTail = completeStreamingTail; exports.TEXT_SIZE_PRESETS = TEXT_SIZE_PRESETS; exports.resolveTextSizeConfig = resolveTextSizeConfig; exports.NO_BROKEN_LINKS = NO_BROKEN_LINKS; exports.MarkdownEngine = MarkdownEngine; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; 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_PLAYBACK_FAILED_EVENT = VIDEO_PLAYBACK_FAILED_EVENT; exports.Video = Video2; exports.HoverDropdown = HoverDropdown; exports.StatusLine = StatusLine; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.CommandBlock = CommandBlock; exports.ApprovalStatusTag = ApprovalStatusTag; exports.ApprovalWaitingLine = ApprovalWaitingLine; exports.ApprovalBatchMessage = ApprovalBatchMessage; 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.CHAT_APPEARANCE = CHAT_APPEARANCE; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent; exports.ChatAppearanceContext = ChatAppearanceContext; exports.useChatAppearance = useChatAppearance; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.formatTime = formatTime; 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.SystemEventMessage = SystemEventMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.ThinkingDisplay = ThinkingDisplay; 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.brandLogoForName = brandLogoForName; exports.resolveIcon = resolveIcon; exports.ICON_OPTIONS = ICON_OPTIONS; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.FAE_AVATAR_DATA_URI = FAE_AVATAR_DATA_URI; exports.AgentMark = AgentMark; 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.BlockCard = BlockCard; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.ChatMessageList = ChatMessageList; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; 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.ChatListEmptyState = ChatListEmptyState; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; 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.ChatNavSidebar = ChatNavSidebar; exports.ChatListItem = ChatListItem; exports.ChatTopNavigation = ChatTopNavigation; exports.OnboardingCarousel = OnboardingCarousel; 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.getCaptionsUrl = getCaptionsUrl; exports.rebaseCaptionsUrl = rebaseCaptionsUrl; exports.buildCaptionsUrl = buildCaptionsUrl; exports.getEntityCaptionUrls = getEntityCaptionUrls; exports.getEntityCaptionUrlsById = getEntityCaptionUrlsById; exports.captionsEntityTypeForDocType = captionsEntityTypeForDocType; exports.useCaptions = useCaptions; exports.UserDisplay = UserDisplay; exports.CardHitLayer = CardHitLayer; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.VideoHoverPreviewSurface = VideoHoverPreviewSurface; 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.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.DESIGN_DOC_READINESS = DESIGN_DOC_READINESS; exports.DESIGN_DOC_READINESS_DISPLAY = DESIGN_DOC_READINESS_DISPLAY; exports.designDocReadiness = designDocReadiness; exports.formatCompletionLabel = formatCompletionLabel; exports.formatCompletionLabelWithBlockers = formatCompletionLabelWithBlockers; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.designDocPeople = designDocPeople; exports.designDocMetaLine = designDocMetaLine; exports.DesignDocCardSkeleton = DesignDocCardSkeleton; exports.DesignDocCard = DesignDocCard; 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.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.useChatCardItem = useChatCardItem; exports.readFetchedCardTitle = readFetchedCardTitle; exports.readFetchedCardPath = readFetchedCardPath; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.byKey = byKey; exports.getPlatformProductionUrl = getPlatformProductionUrl; exports.getPlatformUrl = getPlatformUrl; exports.getDeploymentUrl = getDeploymentUrl; exports.isLocalUrl = isLocalUrl; exports.getRequestOrigin = getRequestOrigin; exports.resolveRedirectTarget = resolveRedirectTarget; exports.getAllPlatformBaseDomains = getAllPlatformBaseDomains; 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.DOC_TABLE_TYPES = DOC_TABLE_TYPES; exports.groupsByTable = groupsByTable; exports.recordCountLabel = recordCountLabel; exports.buildGroupedSource = buildGroupedSource; exports.groupSourcesByTable = groupSourcesByTable; exports.formatCitationIndices = formatCitationIndices; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.resolveCardDestination = resolveCardDestination; exports.clickupTaskUrl = clickupTaskUrl; exports.chatCardLabel = chatCardLabel; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.EMPTY_DIALOG_CAPABILITIES = EMPTY_DIALOG_CAPABILITIES; 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.approvalDisplaysInline = approvalDisplaysInline; 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.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.createChatConversationsApi = createChatConversationsApi; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.buildDiscussPrompt = buildDiscussPrompt; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.useManagedDialogList = useManagedDialogList; exports.useSseChatAdapter = useSseChatAdapter; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.extractIncompleteTailState = extractIncompleteTailState; exports.decodeHistoricalMessageData = decodeHistoricalMessageData; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useStableShallow = useStableShallow; 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.ProxyCredentialsPanel = ProxyCredentialsPanel;