@flamingo-stack/openframe-frontend-core 0.0.455 → 0.0.456

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 (122) hide show
  1. package/dist/{chunk-DGPKGESY.js → chunk-2I3GN7WW.js} +4 -4
  2. package/dist/{chunk-NNDNJCJ3.cjs → chunk-6K6LAD6H.cjs} +18 -18
  3. package/dist/{chunk-NNDNJCJ3.cjs.map → chunk-6K6LAD6H.cjs.map} +1 -1
  4. package/dist/{chunk-RT7DIGTN.cjs → chunk-6TI3DCOG.cjs} +3 -3
  5. package/dist/{chunk-RT7DIGTN.cjs.map → chunk-6TI3DCOG.cjs.map} +1 -1
  6. package/dist/{chunk-YSKSBLCG.cjs → chunk-A7FTNFBX.cjs} +73 -73
  7. package/dist/{chunk-YSKSBLCG.cjs.map → chunk-A7FTNFBX.cjs.map} +1 -1
  8. package/dist/{chunk-XAQLBUCP.js → chunk-DAEKUR3J.js} +2 -2
  9. package/dist/{chunk-QSIZW6EX.js → chunk-DU6R7XNU.js} +2 -2
  10. package/dist/{chunk-D5PBUVGB.cjs → chunk-DYBATZJP.cjs} +5 -5
  11. package/dist/{chunk-D5PBUVGB.cjs.map → chunk-DYBATZJP.cjs.map} +1 -1
  12. package/dist/{chunk-IDCPYG7N.cjs → chunk-F2CCUPKC.cjs} +29 -29
  13. package/dist/{chunk-IDCPYG7N.cjs.map → chunk-F2CCUPKC.cjs.map} +1 -1
  14. package/dist/{chunk-EGTGRG7N.js → chunk-F3IBBAKV.js} +2 -2
  15. package/dist/{chunk-M5RT26WQ.cjs → chunk-GC63K4VD.cjs} +73 -73
  16. package/dist/{chunk-M5RT26WQ.cjs.map → chunk-GC63K4VD.cjs.map} +1 -1
  17. package/dist/{chunk-RZL7I6YN.cjs → chunk-GQZGCMRF.cjs} +7 -7
  18. package/dist/{chunk-RZL7I6YN.cjs.map → chunk-GQZGCMRF.cjs.map} +1 -1
  19. package/dist/{chunk-X62ICFPJ.js → chunk-ILUX3DXS.js} +2 -2
  20. package/dist/{chunk-XT6S6DYS.cjs → chunk-INH6SIP5.cjs} +12 -12
  21. package/dist/{chunk-XT6S6DYS.cjs.map → chunk-INH6SIP5.cjs.map} +1 -1
  22. package/dist/{chunk-KTGGM5WA.cjs → chunk-IOHQJOLR.cjs} +36 -12
  23. package/dist/chunk-IOHQJOLR.cjs.map +1 -0
  24. package/dist/{chunk-6W4ZEVIC.js → chunk-JHIT44TA.js} +3 -3
  25. package/dist/{chunk-BE77G7GW.cjs → chunk-KH5VTGCS.cjs} +40 -40
  26. package/dist/{chunk-BE77G7GW.cjs.map → chunk-KH5VTGCS.cjs.map} +1 -1
  27. package/dist/{chunk-YXCYQKAX.js → chunk-LAFCXJVT.js} +5 -5
  28. package/dist/{chunk-5YPKZM6Y.js → chunk-LMBPJAQ2.js} +6 -6
  29. package/dist/{chunk-BD3JBEUC.js → chunk-MK2YWJAA.js} +64 -40
  30. package/dist/chunk-MK2YWJAA.js.map +1 -0
  31. package/dist/{chunk-UJZ6O2ON.cjs → chunk-TXS2AMFV.cjs} +32 -32
  32. package/dist/{chunk-UJZ6O2ON.cjs.map → chunk-TXS2AMFV.cjs.map} +1 -1
  33. package/dist/{chunk-LB3OZE4B.js → chunk-U27TXTAK.js} +6 -6
  34. package/dist/{chunk-N4CHA7T7.js → chunk-UEKCD6WV.js} +131 -16
  35. package/dist/chunk-UEKCD6WV.js.map +1 -0
  36. package/dist/{chunk-FCVF4YAB.cjs → chunk-UHVVNVUE.cjs} +40 -40
  37. package/dist/{chunk-FCVF4YAB.cjs.map → chunk-UHVVNVUE.cjs.map} +1 -1
  38. package/dist/{chunk-2KUIA2AR.js → chunk-UXKSOJR7.js} +3 -3
  39. package/dist/{chunk-GNYV6HYO.cjs → chunk-VZNJ3RYI.cjs} +15 -15
  40. package/dist/{chunk-GNYV6HYO.cjs.map → chunk-VZNJ3RYI.cjs.map} +1 -1
  41. package/dist/{chunk-JUUPMMKI.js → chunk-YLTY4Z4B.js} +3 -3
  42. package/dist/{chunk-62AXZKYN.cjs → chunk-YMGOTPY7.cjs} +981 -866
  43. package/dist/chunk-YMGOTPY7.cjs.map +1 -0
  44. package/dist/{chunk-VNE5R4LQ.js → chunk-ZQHGSR3H.js} +5 -5
  45. package/dist/components/case-studies/index.cjs +9 -9
  46. package/dist/components/case-studies/index.js +3 -3
  47. package/dist/components/chat/chat-message-list.d.ts.map +1 -1
  48. package/dist/components/chat/guide-welcome.d.ts.map +1 -1
  49. package/dist/components/chat/index.cjs +3 -3
  50. package/dist/components/chat/index.js +2 -2
  51. package/dist/components/chat/mingo-welcome.d.ts.map +1 -1
  52. package/dist/components/chat/quick-action-wall.d.ts +5 -1
  53. package/dist/components/chat/quick-action-wall.d.ts.map +1 -1
  54. package/dist/components/chat/types/component.types.d.ts +17 -0
  55. package/dist/components/chat/types/component.types.d.ts.map +1 -1
  56. package/dist/components/contact/index.cjs +4 -4
  57. package/dist/components/contact/index.js +3 -3
  58. package/dist/components/docs/index.cjs +6 -6
  59. package/dist/components/docs/index.js +5 -5
  60. package/dist/components/embeds/index.cjs +4 -4
  61. package/dist/components/embeds/index.js +3 -3
  62. package/dist/components/faq/index.cjs +5 -5
  63. package/dist/components/faq/index.js +4 -4
  64. package/dist/components/features/cards-strip.d.ts.map +1 -1
  65. package/dist/components/features/index.cjs +3 -3
  66. package/dist/components/features/index.js +2 -2
  67. package/dist/components/help-center-pages/index.cjs +22 -22
  68. package/dist/components/help-center-pages/index.js +13 -13
  69. package/dist/components/index.cjs +135 -135
  70. package/dist/components/index.js +11 -11
  71. package/dist/components/navigation/index.cjs +3 -3
  72. package/dist/components/navigation/index.js +2 -2
  73. package/dist/components/onboarding-guides/index.cjs +7 -7
  74. package/dist/components/onboarding-guides/index.js +6 -6
  75. package/dist/components/related-content/index.cjs +5 -5
  76. package/dist/components/related-content/index.js +4 -4
  77. package/dist/components/tickets/index.cjs +6 -6
  78. package/dist/components/tickets/index.js +5 -5
  79. package/dist/components/ui/index.cjs +3 -3
  80. package/dist/components/ui/index.js +2 -2
  81. package/dist/components/ui/marquee-wall.d.ts +8 -1
  82. package/dist/components/ui/marquee-wall.d.ts.map +1 -1
  83. package/dist/hooks/index.cjs +4 -2
  84. package/dist/hooks/index.cjs.map +1 -1
  85. package/dist/hooks/index.js +3 -1
  86. package/dist/hooks/ui/index.d.ts +1 -0
  87. package/dist/hooks/ui/index.d.ts.map +1 -1
  88. package/dist/hooks/ui/use-reset-on-page-hidden.d.ts +19 -0
  89. package/dist/hooks/ui/use-reset-on-page-hidden.d.ts.map +1 -0
  90. package/dist/hooks/use-near-viewport.d.ts +3 -1
  91. package/dist/hooks/use-near-viewport.d.ts.map +1 -1
  92. package/dist/index.cjs +5 -3
  93. package/dist/index.cjs.map +1 -1
  94. package/dist/index.js +4 -2
  95. package/package.json +1 -1
  96. package/src/components/chat/chat-message-list.tsx +48 -5
  97. package/src/components/chat/embeddable-chat.tsx +31 -3
  98. package/src/components/chat/guide-welcome.tsx +1 -0
  99. package/src/components/chat/mingo-welcome.tsx +1 -0
  100. package/src/components/chat/quick-action-wall.tsx +7 -0
  101. package/src/components/chat/types/component.types.ts +17 -0
  102. package/src/components/features/cards-strip.tsx +16 -0
  103. package/src/components/ui/marquee-wall.tsx +160 -10
  104. package/src/hooks/ui/index.ts +1 -0
  105. package/src/hooks/ui/use-reset-on-page-hidden.ts +32 -0
  106. package/src/hooks/use-near-viewport.ts +36 -12
  107. package/dist/chunk-62AXZKYN.cjs.map +0 -1
  108. package/dist/chunk-BD3JBEUC.js.map +0 -1
  109. package/dist/chunk-KTGGM5WA.cjs.map +0 -1
  110. package/dist/chunk-N4CHA7T7.js.map +0 -1
  111. /package/dist/{chunk-DGPKGESY.js.map → chunk-2I3GN7WW.js.map} +0 -0
  112. /package/dist/{chunk-XAQLBUCP.js.map → chunk-DAEKUR3J.js.map} +0 -0
  113. /package/dist/{chunk-QSIZW6EX.js.map → chunk-DU6R7XNU.js.map} +0 -0
  114. /package/dist/{chunk-EGTGRG7N.js.map → chunk-F3IBBAKV.js.map} +0 -0
  115. /package/dist/{chunk-X62ICFPJ.js.map → chunk-ILUX3DXS.js.map} +0 -0
  116. /package/dist/{chunk-6W4ZEVIC.js.map → chunk-JHIT44TA.js.map} +0 -0
  117. /package/dist/{chunk-YXCYQKAX.js.map → chunk-LAFCXJVT.js.map} +0 -0
  118. /package/dist/{chunk-5YPKZM6Y.js.map → chunk-LMBPJAQ2.js.map} +0 -0
  119. /package/dist/{chunk-LB3OZE4B.js.map → chunk-U27TXTAK.js.map} +0 -0
  120. /package/dist/{chunk-2KUIA2AR.js.map → chunk-UXKSOJR7.js.map} +0 -0
  121. /package/dist/{chunk-JUUPMMKI.js.map → chunk-YLTY4Z4B.js.map} +0 -0
  122. /package/dist/{chunk-VNE5R4LQ.js.map → chunk-ZQHGSR3H.js.map} +0 -0
@@ -29,9 +29,10 @@ import {
29
29
  useNotificationPermission,
30
30
  useOgPlaceholderUrl,
31
31
  useOnboardingState,
32
+ useResetOnPageHidden,
32
33
  useSuppressCloneFocus,
33
34
  useToast
34
- } from "./chunk-BD3JBEUC.js";
35
+ } from "./chunk-MK2YWJAA.js";
35
36
  import {
36
37
  AlertCircleIcon,
37
38
  AnthropicLogoGreyIcon,
@@ -5995,6 +5996,8 @@ var ChatMessageList = forwardRef12(
5995
5996
  isLoading = false,
5996
5997
  isTyping = false,
5997
5998
  autoScroll = true,
5999
+ overscrollContain = true,
6000
+ pinBottom = false,
5998
6001
  showAvatars = true,
5999
6002
  fullWidth = false,
6000
6003
  contentClassName,
@@ -6065,6 +6068,18 @@ var ChatMessageList = forwardRef12(
6065
6068
  }
6066
6069
  }
6067
6070
  }, [autoScroll, messages, dialogId, scrollToBottom, contentRef]);
6071
+ const pinPrevHeightRef = useRef7(0);
6072
+ useLayoutEffect4(() => {
6073
+ if (!pinBottom) {
6074
+ pinPrevHeightRef.current = 0;
6075
+ return;
6076
+ }
6077
+ const el = scrollRef.current;
6078
+ if (!el) return;
6079
+ if (el.scrollHeight === pinPrevHeightRef.current) return;
6080
+ pinPrevHeightRef.current = el.scrollHeight;
6081
+ el.scrollTop = el.scrollHeight;
6082
+ }, [pinBottom, messages, isTyping, pendingApprovals, scrollRef]);
6068
6083
  useLayoutEffect4(() => {
6069
6084
  const el = scrollRef.current;
6070
6085
  const anchor = loadOlderAnchorRef.current;
@@ -6195,11 +6210,16 @@ var ChatMessageList = forwardRef12(
6195
6210
  {
6196
6211
  ref: setScrollRef,
6197
6212
  className: cn(
6198
- // `overscroll-contain`: reaching the top/bottom of the thread must
6199
- // NOT chain the wheel/touch scroll to the page behind the chat —
6200
- // e.g. the company-hub deck (native body scroll + sticky slide
6201
- // panels) would otherwise advance slides while you scroll the chat.
6202
- "flex h-full w-full flex-col overflow-y-auto overflow-x-hidden overscroll-contain flex-1",
6213
+ "flex h-full w-full flex-col overflow-y-auto overflow-x-hidden flex-1",
6214
+ // `overscroll-contain` (default ON, opt-out via `overscrollContain={false}`):
6215
+ // reaching the top/bottom of the thread must NOT chain the wheel/
6216
+ // touch scroll to the page behind the chat — e.g. the company-hub
6217
+ // deck (native body scroll + sticky slide panels) would otherwise
6218
+ // advance slides while you scroll the chat (fixed in #1501; kept as
6219
+ // the prop default here). Passive in-page DEMO chats disable it so
6220
+ // the surrounding page keeps scrolling normally when the pointer is
6221
+ // over the (non-interactive) thread.
6222
+ overscrollContain && "overscroll-contain",
6203
6223
  "scrollbar-thin scrollbar-track-transparent scrollbar-thumb-ods-border/30 hover:scrollbar-thumb-ods-text-secondary/30",
6204
6224
  className
6205
6225
  ),
@@ -6672,6 +6692,7 @@ function MarqueeWall({
6672
6692
  speed = 40,
6673
6693
  animate = true,
6674
6694
  pauseOnHover = true,
6695
+ dragScroll = false,
6675
6696
  fade,
6676
6697
  fadeColor = "var(--color-bg)",
6677
6698
  fadeSize,
@@ -6727,6 +6748,9 @@ function MarqueeWall({
6727
6748
  return () => io.disconnect();
6728
6749
  }, []);
6729
6750
  const pointerInsideRef = React11.useRef(false);
6751
+ const clearPointerInside = React11.useCallback(() => {
6752
+ pointerInsideRef.current = false;
6753
+ }, []);
6730
6754
  const onPointerEnter = React11.useCallback((e) => {
6731
6755
  if (e.pointerType === "touch") return;
6732
6756
  pointerInsideRef.current = true;
@@ -6735,6 +6759,9 @@ function MarqueeWall({
6735
6759
  if (e.pointerType === "touch") return;
6736
6760
  pointerInsideRef.current = false;
6737
6761
  }, []);
6762
+ useResetOnPageHidden(clearPointerInside);
6763
+ const draggingRef = React11.useRef(false);
6764
+ const dragSuppressUntilRef = React11.useRef(0);
6738
6765
  const applyTransform = React11.useCallback(
6739
6766
  (pos) => {
6740
6767
  const track = trackRef.current;
@@ -6751,6 +6778,17 @@ function MarqueeWall({
6751
6778
  },
6752
6779
  [axis, reverse, trackId]
6753
6780
  );
6781
+ const applyPos = React11.useCallback(
6782
+ (pos) => {
6783
+ if (sync) {
6784
+ sync.position = pos;
6785
+ sync.members.forEach((m) => m.apply(pos));
6786
+ } else {
6787
+ applyTransform(pos);
6788
+ }
6789
+ },
6790
+ [sync, applyTransform]
6791
+ );
6754
6792
  React11.useEffect(() => {
6755
6793
  if (marqueeMounted) return;
6756
6794
  const track = trackRef.current;
@@ -6776,15 +6814,12 @@ function MarqueeWall({
6776
6814
  }
6777
6815
  };
6778
6816
  }, [sync, applyTransform]);
6779
- const { posRef } = useMarqueeEngine({
6817
+ const { posRef, wrap } = useMarqueeEngine({
6780
6818
  active: marqueeActive && nearViewport && isDriver,
6781
6819
  speed,
6782
- isPaused: () => pauseOnHover && pointerInsideRef.current || document.visibilityState === "hidden",
6820
+ isPaused: (now) => pauseOnHover && pointerInsideRef.current || draggingRef.current || now < dragSuppressUntilRef.current || document.visibilityState === "hidden",
6783
6821
  getWrapSize: () => wrapSizeRef.current,
6784
- apply: sync ? (pos) => {
6785
- sync.position = pos;
6786
- sync.members.forEach((m) => m.apply(pos));
6787
- } : applyTransform,
6822
+ apply: applyPos,
6788
6823
  // Synced pairs: a re-elected driver resumes from the pair's live position
6789
6824
  // (engine seeds from readBack on activation) instead of restarting at 0.
6790
6825
  readBack: sync ? () => sync.position : void 0
@@ -6798,15 +6833,81 @@ function MarqueeWall({
6798
6833
  posRef.current = Math.max(0, wrapSizeRef.current - 0.01);
6799
6834
  }
6800
6835
  }, [marqueeMounted, reverse, posRef]);
6836
+ const DRAG_RESUME_MS = 1200;
6837
+ const dragStartRef = React11.useRef({ coord: 0, pos: 0 });
6838
+ const dragMovedRef = React11.useRef(false);
6839
+ const suppressClickRef = React11.useRef(false);
6840
+ const onDragPointerDown = React11.useCallback((e) => {
6841
+ if (!marqueeMounted) return;
6842
+ draggingRef.current = true;
6843
+ dragMovedRef.current = false;
6844
+ suppressClickRef.current = false;
6845
+ dragStartRef.current = { coord: axis === "y" ? e.clientY : e.clientX, pos: posRef.current };
6846
+ try {
6847
+ containerRef.current?.setPointerCapture(e.pointerId);
6848
+ } catch {
6849
+ }
6850
+ }, [marqueeMounted, axis, posRef]);
6851
+ const onDragPointerMove = React11.useCallback((e) => {
6852
+ if (!draggingRef.current) return;
6853
+ const delta = (axis === "y" ? e.clientY : e.clientX) - dragStartRef.current.coord;
6854
+ if (Math.abs(delta) > 3) dragMovedRef.current = true;
6855
+ posRef.current = wrap(dragStartRef.current.pos + (reverse ? delta : -delta));
6856
+ applyPos(posRef.current);
6857
+ dragSuppressUntilRef.current = performance.now() + DRAG_RESUME_MS;
6858
+ }, [axis, reverse, wrap, posRef, applyPos]);
6859
+ const onDragPointerUp = React11.useCallback((e) => {
6860
+ if (!draggingRef.current) return;
6861
+ draggingRef.current = false;
6862
+ if (dragMovedRef.current) suppressClickRef.current = true;
6863
+ dragSuppressUntilRef.current = performance.now() + DRAG_RESUME_MS;
6864
+ try {
6865
+ containerRef.current?.releasePointerCapture(e.pointerId);
6866
+ } catch {
6867
+ }
6868
+ }, []);
6869
+ const onDragClickCapture = React11.useCallback((e) => {
6870
+ if (suppressClickRef.current) {
6871
+ suppressClickRef.current = false;
6872
+ e.preventDefault();
6873
+ e.stopPropagation();
6874
+ }
6875
+ }, []);
6876
+ React11.useEffect(() => {
6877
+ const el = containerRef.current;
6878
+ if (!el || !dragScroll || !marqueeMounted) return;
6879
+ const onWheel = (e) => {
6880
+ const primary = axis === "y" ? Math.abs(e.deltaY) >= Math.abs(e.deltaX) ? e.deltaY : 0 : Math.abs(e.deltaX) >= Math.abs(e.deltaY) ? e.deltaX : 0;
6881
+ if (primary === 0) return;
6882
+ e.preventDefault();
6883
+ posRef.current = wrap(posRef.current + (reverse ? -primary : primary));
6884
+ applyPos(posRef.current);
6885
+ dragSuppressUntilRef.current = performance.now() + DRAG_RESUME_MS;
6886
+ };
6887
+ el.addEventListener("wheel", onWheel, { passive: false });
6888
+ return () => el.removeEventListener("wheel", onWheel);
6889
+ }, [dragScroll, marqueeMounted, axis, reverse, wrap, posRef, applyPos]);
6801
6890
  const renderContent = (isClone) => typeof children === "function" ? children({ isClone }) : children;
6891
+ const staticScrollable = dragScroll && overflows && !marqueeMounted;
6802
6892
  return /* @__PURE__ */ jsxs28(
6803
6893
  "div",
6804
6894
  {
6805
6895
  ref: containerRef,
6806
- className: cn("relative overflow-hidden", className),
6896
+ className: cn(
6897
+ "relative",
6898
+ staticScrollable ? axis === "y" ? "overflow-y-auto" : "overflow-x-auto" : "overflow-hidden",
6899
+ dragScroll && marqueeMounted && "cursor-grab active:cursor-grabbing select-none",
6900
+ className
6901
+ ),
6902
+ style: dragScroll && marqueeMounted ? { touchAction: axis === "y" ? "pan-x" : "pan-y" } : void 0,
6807
6903
  "data-marquee-track": trackId,
6808
6904
  onPointerEnter,
6809
6905
  onPointerLeave,
6906
+ onPointerDown: dragScroll ? onDragPointerDown : void 0,
6907
+ onPointerMove: dragScroll ? onDragPointerMove : void 0,
6908
+ onPointerUp: dragScroll ? onDragPointerUp : void 0,
6909
+ onPointerCancel: dragScroll ? onDragPointerUp : void 0,
6910
+ onClickCapture: dragScroll ? onDragClickCapture : void 0,
6810
6911
  children: [
6811
6912
  /* @__PURE__ */ jsxs28(
6812
6913
  "div",
@@ -6863,6 +6964,7 @@ function QuickActionWall({
6863
6964
  speed,
6864
6965
  animate = true,
6865
6966
  pauseOnHover,
6967
+ dragScroll = false,
6866
6968
  fade,
6867
6969
  fadeColor,
6868
6970
  fadeSize,
@@ -6918,6 +7020,7 @@ function QuickActionWall({
6918
7020
  speed,
6919
7021
  animate: animate && !loading,
6920
7022
  pauseOnHover,
7023
+ dragScroll,
6921
7024
  copyGap: gap,
6922
7025
  contentClassName: cn("flex items-center", contentClassName),
6923
7026
  contentStyle: { gap },
@@ -6937,6 +7040,7 @@ function QuickActionWall({
6937
7040
  speed,
6938
7041
  animate: animate && !loading,
6939
7042
  pauseOnHover,
7043
+ dragScroll,
6940
7044
  fade,
6941
7045
  fadeColor,
6942
7046
  fadeSize,
@@ -7699,6 +7803,7 @@ function MingoWelcome({
7699
7803
  })),
7700
7804
  rows: 4,
7701
7805
  pauseOnHover: true,
7806
+ dragScroll: true,
7702
7807
  fade: ["left", "right"],
7703
7808
  fadeSize: { left: 32 },
7704
7809
  fadeColor: "var(--color-bg)",
@@ -7800,6 +7905,7 @@ function GuideWelcome({
7800
7905
  chips: chipItems,
7801
7906
  rows: 4,
7802
7907
  pauseOnHover: true,
7908
+ dragScroll: true,
7803
7909
  fade: ["left", "right"],
7804
7910
  fadeSize: { left: 32 },
7805
7911
  fadeColor: "var(--color-bg)",
@@ -11354,6 +11460,12 @@ function CardsStrip(props) {
11354
11460
  const current = activeKeyRef.current;
11355
11461
  if (current !== null) deactivate(current);
11356
11462
  }, [deactivate]);
11463
+ const clearHover = useCallback14(() => {
11464
+ hoverPointerRef.current.inside = false;
11465
+ const current = activeKeyRef.current;
11466
+ if (current !== null) deactivate(current);
11467
+ }, [deactivate]);
11468
+ useResetOnPageHidden(clearHover);
11357
11469
  const syncHoverIfScrolled = useCallback14(() => {
11358
11470
  const scroller = scrollerRef.current;
11359
11471
  if (!scroller) return;
@@ -11514,6 +11626,7 @@ function CardsStrip(props) {
11514
11626
  onPointerEnter: onHoverPointerEnter,
11515
11627
  onPointerMove: onHoverPointerMove,
11516
11628
  onPointerLeave: onHoverPointerLeave,
11629
+ onPointerCancel: clearHover,
11517
11630
  onScroll: onSeamWarp,
11518
11631
  children: /* @__PURE__ */ jsx78("div", { ref: trackRef, "data-copies": copies, className: "flex w-max items-stretch gap-4", children: Array.from(
11519
11632
  { length: copies },
@@ -53655,7 +53768,9 @@ function EmbeddableChatInner({
53655
53768
  {
53656
53769
  messages,
53657
53770
  isTyping: chatLoading,
53658
- autoScroll: true,
53771
+ autoScroll: !previewMode,
53772
+ pinBottom: previewMode,
53773
+ overscrollContain: !previewMode,
53659
53774
  assistantType: "mingo",
53660
53775
  assistantIcon: mingoAssistantIcon,
53661
53776
  renderEntityCard,
@@ -53663,7 +53778,7 @@ function EmbeddableChatInner({
53663
53778
  renderContextItem,
53664
53779
  renderMention,
53665
53780
  NavLinkAnchor: NavLinkAnchorViaRuntime,
53666
- className: "flex-1 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
53781
+ className: previewMode ? "flex-1 pointer-events-auto" : "flex-1 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
53667
53782
  contentClassName: "max-w-none pb-0",
53668
53783
  fullWidth: true,
53669
53784
  hasNextPage: hasMoreMessages,
@@ -54878,4 +54993,4 @@ export {
54878
54993
  LogsList,
54879
54994
  assets
54880
54995
  };
54881
- //# sourceMappingURL=chunk-N4CHA7T7.js.map
54996
+ //# sourceMappingURL=chunk-UEKCD6WV.js.map