@ai-matrx/summon 0.1.3 → 0.1.5

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 (49) hide show
  1. package/CHANGELOG.md +4 -1
  2. package/README.md +22 -2
  3. package/dist/dock.cjs +552 -0
  4. package/dist/dock.cjs.map +1 -0
  5. package/dist/dock.d.cts +224 -0
  6. package/dist/dock.d.ts +224 -0
  7. package/dist/dock.js +537 -0
  8. package/dist/dock.js.map +1 -0
  9. package/dist/index.cjs +4 -1
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.d.cts +6 -0
  12. package/dist/index.d.ts +6 -0
  13. package/dist/index.js +4 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/persistence-data.cjs +9 -0
  16. package/dist/persistence-data.cjs.map +1 -1
  17. package/dist/persistence-data.d.cts +2 -1
  18. package/dist/persistence-data.d.ts +2 -1
  19. package/dist/persistence-data.js +9 -0
  20. package/dist/persistence-data.js.map +1 -1
  21. package/dist/persistence.cjs +6 -4
  22. package/dist/persistence.cjs.map +1 -1
  23. package/dist/persistence.js +6 -4
  24. package/dist/persistence.js.map +1 -1
  25. package/dist/react.cjs +19 -0
  26. package/dist/react.cjs.map +1 -1
  27. package/dist/react.d.cts +8 -1
  28. package/dist/react.d.ts +8 -1
  29. package/dist/react.js +19 -0
  30. package/dist/react.js.map +1 -1
  31. package/dist/url.cjs +32 -50
  32. package/dist/url.cjs.map +1 -1
  33. package/dist/url.d.cts +2 -8
  34. package/dist/url.d.ts +2 -8
  35. package/dist/url.js +8 -24
  36. package/dist/url.js.map +1 -1
  37. package/dist/window-host.cjs +43 -1
  38. package/dist/window-host.cjs.map +1 -1
  39. package/dist/window-host.d.cts +45 -1
  40. package/dist/window-host.d.ts +45 -1
  41. package/dist/window-host.js +44 -2
  42. package/dist/window-host.js.map +1 -1
  43. package/dist/window.cjs +127 -149
  44. package/dist/window.cjs.map +1 -1
  45. package/dist/window.d.cts +2 -46
  46. package/dist/window.d.ts +2 -46
  47. package/dist/window.js +14 -34
  48. package/dist/window.js.map +1 -1
  49. package/package.json +14 -4
package/dist/window.d.cts CHANGED
@@ -2,7 +2,7 @@ import * as react from 'react';
2
2
  import react__default, { ComponentType, SVGAttributes, ReactNode } from 'react';
3
3
  import { WindowRect, WindowPersistenceRegistration, MobilePresentation } from '@ai-matrx/summon';
4
4
  import { TraySnapshotCapture } from '@ai-matrx/summon/window-host';
5
- export { DEFAULT_ESCAPE_YIELD_SELECTOR, DEFAULT_MOBILE_TOP_OFFSET, DEFAULT_WINDOW_CONFIG, TrayPreviewContext, TrayPreviewEntry, TraySnapshotCapture, WindowConfig, WindowSelectionSurface, WindowSelectionSurfaceProps, WindowTraySync, WindowsProvider, WindowsProviderProps, getTrayPreviewEntry, registerTrayPreview, resetTrayPreviews, useWindowConfig } from '@ai-matrx/summon/window-host';
5
+ export { DEFAULT_ESCAPE_YIELD_SELECTOR, DEFAULT_MOBILE_TOP_OFFSET, DEFAULT_WINDOW_CONFIG, PopoutContext, PopoutContextValue, PopoutMode, TrayPreviewContext, TrayPreviewEntry, TraySnapshotCapture, WindowConfig, WindowSelectionSurface, WindowSelectionSurfaceProps, WindowTraySync, WindowsProvider, WindowsProviderProps, getTrayPreviewEntry, registerTrayPreview, resetTrayPreviews, useOverlaySurfaceRenderAck, usePopout, usePopoutContainer, useWindowConfig } from '@ai-matrx/summon/window-host';
6
6
 
7
7
  type ResizeEdge = "e" | "s" | "se" | "w" | "sw" | "n" | "ne" | "nw";
8
8
  /** Where to place the window when it first opens. */
@@ -300,16 +300,6 @@ declare function LayoutIconButton({ onClick, type, className, }: {
300
300
  className?: string | undefined;
301
301
  }): react.JSX.Element;
302
302
 
303
- /**
304
- * Acknowledge a visible presentation that intentionally replaces WindowPanel.
305
- *
306
- * Registered singleton window overlays normally prove they are on screen by mounting a
307
- * WindowPanel and registering geometry. Mobile drawers, sheets, and full-screen
308
- * viewers have no window-manager geometry, so their composition root must use
309
- * this hook while that alternate surface is active.
310
- */
311
- declare function useOverlaySurfaceRenderAck(overlayId: string, active: boolean): void;
312
-
313
303
  /** Store a local snapshot blob for a window and notify subscribers. */
314
304
  declare function setTraySnapshot(id: string, blob: Blob): void;
315
305
  /** Clear the snapshot for a given window id. */
@@ -399,40 +389,6 @@ interface TrayStatusChipProps {
399
389
  }
400
390
  declare function TrayStatusChip({ icon: Icon, tone, count, caption, segments, pulse, }: TrayStatusChipProps): react.JSX.Element;
401
391
 
402
- type PopoutMode = "pip" | "popup";
403
- interface PopoutContextValue {
404
- /**
405
- * The popout `Document`. `null` when this subtree is rendered in the
406
- * parent (the default).
407
- */
408
- popoutDocument: Document | null;
409
- /**
410
- * The popout `Window`. `null` when this subtree is rendered in the parent.
411
- * Use for `addEventListener`, `matchMedia`, `innerWidth`, etc., when the
412
- * popout-scoped answer is what you need.
413
- */
414
- popoutWindow: Window | null;
415
- /**
416
- * Element to use as the Radix `Portal.container` prop so floating UI
417
- * (tooltips, popovers, dropdowns) renders inside the popout instead of
418
- * the parent `document.body`. Returns `null` outside a popout —
419
- * `usePopoutContainer` coerces this to `undefined` so Radix falls back
420
- * to its default container automatically.
421
- */
422
- popoutContainer: HTMLElement | null;
423
- /**
424
- * Which popout mechanism is in use. `null` outside a popout.
425
- * Currently only used for diagnostics; downstream components may branch
426
- * on it later (e.g. show different chrome for `popup` vs `pip`).
427
- */
428
- mode: PopoutMode | null;
429
- }
430
- declare const PopoutContext: react.Context<PopoutContextValue>;
431
- /** Read the current popout context. Always defined — never throws. */
432
- declare function usePopout(): PopoutContextValue;
433
-
434
- declare function usePopoutContainer(): HTMLElement | undefined;
435
-
436
392
  interface OpenPopoutOptions {
437
393
  width: number;
438
394
  height: number;
@@ -793,4 +749,4 @@ declare function assertLazyLoaded(moduleId: string, report?: (message: string, s
793
749
 
794
750
  declare function sanitizeWindowData(value: unknown, allowedKeys: readonly string[]): Record<string, unknown>;
795
751
 
796
- export { AUTO_OPEN_MIN_WIDTH, AUTO_OPEN_NO_ROOM_EVENT, type AutoOpenPlacement, DEFAULT_DRAG_OUT_CONFIG, type DragOutConfig, type DragOutEvalResult, type DragOutInput, type DragOutState, type ElementThumbnailOptions, INITIAL_DRAG_OUT_STATE, LayoutIcon, LayoutIconButton, type LayoutIconType, MOBILE_WINDOW_TITLE_TEXT, MinimizedWindowContent, MobileCardSurface, MobileDrawerSurface, MobileWindowActionsRow, MobileWindowTitle, MobileWindowTitleRow, type OpenPopoutOptions, type OpenPopoutResult, type PopOutByIdOptions, type PopoutCapability, PopoutContext, type PopoutContextValue, type PopoutControlApi, type PopoutMode, type ResizeEdge, TrayChipPreview, TrayStatusChip, type TrayStatusChipProps, type TrayStatusSegment, type TrayStatusTone, type UnbiddenRaiseVerdict, type UnbiddenRefusalCode, type UsePopoutWindowReturn, type UseWindowPanelOptions, type UseWindowPanelReturn, WindowPanel, type WindowPanelBaseProps, type WindowPanelCloseBinding, type WindowPanelProps, type WindowPosition, WindowSidebar, type WindowSidebarItem, assertLazyLoaded, autoOpenHasRoom, buildPopoutOpts, captureElementThumbnail, clearAllPopoutPending, clearAutoOpened, clearTraySnapshot, defaultTraySnapshotCapture, detectPopoutCapability, evaluateDragOut, forEachPopoutWindow, getPendingPopoutWindowIds, getPopoutOpener, getPopoutWindow, getTraySnapshot, isAutoOpened, isUnderRoute, markAutoOpened, mayRaiseUnbidden, measureWorkingColumn, mobileWindowTitleClass, resetDefaultWindowCascade, resolveAutoOpenPlacement, resolvePosition, sanitizeWindowData, setTraySnapshot, subscribePopoutWindowMap, subscribeTraySnapshotMap, supportsAnyPopout, supportsDocumentPictureInPicture, useOverlaySurfaceRenderAck, usePopout, usePopoutContainer, usePopoutControl, usePopoutWindow, usePopoutWindowRef, useWindowPanel };
752
+ export { AUTO_OPEN_MIN_WIDTH, AUTO_OPEN_NO_ROOM_EVENT, type AutoOpenPlacement, DEFAULT_DRAG_OUT_CONFIG, type DragOutConfig, type DragOutEvalResult, type DragOutInput, type DragOutState, type ElementThumbnailOptions, INITIAL_DRAG_OUT_STATE, LayoutIcon, LayoutIconButton, type LayoutIconType, MOBILE_WINDOW_TITLE_TEXT, MinimizedWindowContent, MobileCardSurface, MobileDrawerSurface, MobileWindowActionsRow, MobileWindowTitle, MobileWindowTitleRow, type OpenPopoutOptions, type OpenPopoutResult, type PopOutByIdOptions, type PopoutCapability, type PopoutControlApi, type ResizeEdge, TrayChipPreview, TrayStatusChip, type TrayStatusChipProps, type TrayStatusSegment, type TrayStatusTone, type UnbiddenRaiseVerdict, type UnbiddenRefusalCode, type UsePopoutWindowReturn, type UseWindowPanelOptions, type UseWindowPanelReturn, WindowPanel, type WindowPanelBaseProps, type WindowPanelCloseBinding, type WindowPanelProps, type WindowPosition, WindowSidebar, type WindowSidebarItem, assertLazyLoaded, autoOpenHasRoom, buildPopoutOpts, captureElementThumbnail, clearAllPopoutPending, clearAutoOpened, clearTraySnapshot, defaultTraySnapshotCapture, detectPopoutCapability, evaluateDragOut, forEachPopoutWindow, getPendingPopoutWindowIds, getPopoutOpener, getPopoutWindow, getTraySnapshot, isAutoOpened, isUnderRoute, markAutoOpened, mayRaiseUnbidden, measureWorkingColumn, mobileWindowTitleClass, resetDefaultWindowCascade, resolveAutoOpenPlacement, resolvePosition, sanitizeWindowData, setTraySnapshot, subscribePopoutWindowMap, subscribeTraySnapshotMap, supportsAnyPopout, supportsDocumentPictureInPicture, usePopoutControl, usePopoutWindow, usePopoutWindowRef, useWindowPanel };
package/dist/window.d.ts CHANGED
@@ -2,7 +2,7 @@ import * as react from 'react';
2
2
  import react__default, { ComponentType, SVGAttributes, ReactNode } from 'react';
3
3
  import { WindowRect, WindowPersistenceRegistration, MobilePresentation } from '@ai-matrx/summon';
4
4
  import { TraySnapshotCapture } from '@ai-matrx/summon/window-host';
5
- export { DEFAULT_ESCAPE_YIELD_SELECTOR, DEFAULT_MOBILE_TOP_OFFSET, DEFAULT_WINDOW_CONFIG, TrayPreviewContext, TrayPreviewEntry, TraySnapshotCapture, WindowConfig, WindowSelectionSurface, WindowSelectionSurfaceProps, WindowTraySync, WindowsProvider, WindowsProviderProps, getTrayPreviewEntry, registerTrayPreview, resetTrayPreviews, useWindowConfig } from '@ai-matrx/summon/window-host';
5
+ export { DEFAULT_ESCAPE_YIELD_SELECTOR, DEFAULT_MOBILE_TOP_OFFSET, DEFAULT_WINDOW_CONFIG, PopoutContext, PopoutContextValue, PopoutMode, TrayPreviewContext, TrayPreviewEntry, TraySnapshotCapture, WindowConfig, WindowSelectionSurface, WindowSelectionSurfaceProps, WindowTraySync, WindowsProvider, WindowsProviderProps, getTrayPreviewEntry, registerTrayPreview, resetTrayPreviews, useOverlaySurfaceRenderAck, usePopout, usePopoutContainer, useWindowConfig } from '@ai-matrx/summon/window-host';
6
6
 
7
7
  type ResizeEdge = "e" | "s" | "se" | "w" | "sw" | "n" | "ne" | "nw";
8
8
  /** Where to place the window when it first opens. */
@@ -300,16 +300,6 @@ declare function LayoutIconButton({ onClick, type, className, }: {
300
300
  className?: string | undefined;
301
301
  }): react.JSX.Element;
302
302
 
303
- /**
304
- * Acknowledge a visible presentation that intentionally replaces WindowPanel.
305
- *
306
- * Registered singleton window overlays normally prove they are on screen by mounting a
307
- * WindowPanel and registering geometry. Mobile drawers, sheets, and full-screen
308
- * viewers have no window-manager geometry, so their composition root must use
309
- * this hook while that alternate surface is active.
310
- */
311
- declare function useOverlaySurfaceRenderAck(overlayId: string, active: boolean): void;
312
-
313
303
  /** Store a local snapshot blob for a window and notify subscribers. */
314
304
  declare function setTraySnapshot(id: string, blob: Blob): void;
315
305
  /** Clear the snapshot for a given window id. */
@@ -399,40 +389,6 @@ interface TrayStatusChipProps {
399
389
  }
400
390
  declare function TrayStatusChip({ icon: Icon, tone, count, caption, segments, pulse, }: TrayStatusChipProps): react.JSX.Element;
401
391
 
402
- type PopoutMode = "pip" | "popup";
403
- interface PopoutContextValue {
404
- /**
405
- * The popout `Document`. `null` when this subtree is rendered in the
406
- * parent (the default).
407
- */
408
- popoutDocument: Document | null;
409
- /**
410
- * The popout `Window`. `null` when this subtree is rendered in the parent.
411
- * Use for `addEventListener`, `matchMedia`, `innerWidth`, etc., when the
412
- * popout-scoped answer is what you need.
413
- */
414
- popoutWindow: Window | null;
415
- /**
416
- * Element to use as the Radix `Portal.container` prop so floating UI
417
- * (tooltips, popovers, dropdowns) renders inside the popout instead of
418
- * the parent `document.body`. Returns `null` outside a popout —
419
- * `usePopoutContainer` coerces this to `undefined` so Radix falls back
420
- * to its default container automatically.
421
- */
422
- popoutContainer: HTMLElement | null;
423
- /**
424
- * Which popout mechanism is in use. `null` outside a popout.
425
- * Currently only used for diagnostics; downstream components may branch
426
- * on it later (e.g. show different chrome for `popup` vs `pip`).
427
- */
428
- mode: PopoutMode | null;
429
- }
430
- declare const PopoutContext: react.Context<PopoutContextValue>;
431
- /** Read the current popout context. Always defined — never throws. */
432
- declare function usePopout(): PopoutContextValue;
433
-
434
- declare function usePopoutContainer(): HTMLElement | undefined;
435
-
436
392
  interface OpenPopoutOptions {
437
393
  width: number;
438
394
  height: number;
@@ -793,4 +749,4 @@ declare function assertLazyLoaded(moduleId: string, report?: (message: string, s
793
749
 
794
750
  declare function sanitizeWindowData(value: unknown, allowedKeys: readonly string[]): Record<string, unknown>;
795
751
 
796
- export { AUTO_OPEN_MIN_WIDTH, AUTO_OPEN_NO_ROOM_EVENT, type AutoOpenPlacement, DEFAULT_DRAG_OUT_CONFIG, type DragOutConfig, type DragOutEvalResult, type DragOutInput, type DragOutState, type ElementThumbnailOptions, INITIAL_DRAG_OUT_STATE, LayoutIcon, LayoutIconButton, type LayoutIconType, MOBILE_WINDOW_TITLE_TEXT, MinimizedWindowContent, MobileCardSurface, MobileDrawerSurface, MobileWindowActionsRow, MobileWindowTitle, MobileWindowTitleRow, type OpenPopoutOptions, type OpenPopoutResult, type PopOutByIdOptions, type PopoutCapability, PopoutContext, type PopoutContextValue, type PopoutControlApi, type PopoutMode, type ResizeEdge, TrayChipPreview, TrayStatusChip, type TrayStatusChipProps, type TrayStatusSegment, type TrayStatusTone, type UnbiddenRaiseVerdict, type UnbiddenRefusalCode, type UsePopoutWindowReturn, type UseWindowPanelOptions, type UseWindowPanelReturn, WindowPanel, type WindowPanelBaseProps, type WindowPanelCloseBinding, type WindowPanelProps, type WindowPosition, WindowSidebar, type WindowSidebarItem, assertLazyLoaded, autoOpenHasRoom, buildPopoutOpts, captureElementThumbnail, clearAllPopoutPending, clearAutoOpened, clearTraySnapshot, defaultTraySnapshotCapture, detectPopoutCapability, evaluateDragOut, forEachPopoutWindow, getPendingPopoutWindowIds, getPopoutOpener, getPopoutWindow, getTraySnapshot, isAutoOpened, isUnderRoute, markAutoOpened, mayRaiseUnbidden, measureWorkingColumn, mobileWindowTitleClass, resetDefaultWindowCascade, resolveAutoOpenPlacement, resolvePosition, sanitizeWindowData, setTraySnapshot, subscribePopoutWindowMap, subscribeTraySnapshotMap, supportsAnyPopout, supportsDocumentPictureInPicture, useOverlaySurfaceRenderAck, usePopout, usePopoutContainer, usePopoutControl, usePopoutWindow, usePopoutWindowRef, useWindowPanel };
752
+ export { AUTO_OPEN_MIN_WIDTH, AUTO_OPEN_NO_ROOM_EVENT, type AutoOpenPlacement, DEFAULT_DRAG_OUT_CONFIG, type DragOutConfig, type DragOutEvalResult, type DragOutInput, type DragOutState, type ElementThumbnailOptions, INITIAL_DRAG_OUT_STATE, LayoutIcon, LayoutIconButton, type LayoutIconType, MOBILE_WINDOW_TITLE_TEXT, MinimizedWindowContent, MobileCardSurface, MobileDrawerSurface, MobileWindowActionsRow, MobileWindowTitle, MobileWindowTitleRow, type OpenPopoutOptions, type OpenPopoutResult, type PopOutByIdOptions, type PopoutCapability, type PopoutControlApi, type ResizeEdge, TrayChipPreview, TrayStatusChip, type TrayStatusChipProps, type TrayStatusSegment, type TrayStatusTone, type UnbiddenRaiseVerdict, type UnbiddenRefusalCode, type UsePopoutWindowReturn, type UseWindowPanelOptions, type UseWindowPanelReturn, WindowPanel, type WindowPanelBaseProps, type WindowPanelCloseBinding, type WindowPanelProps, type WindowPosition, WindowSidebar, type WindowSidebarItem, assertLazyLoaded, autoOpenHasRoom, buildPopoutOpts, captureElementThumbnail, clearAllPopoutPending, clearAutoOpened, clearTraySnapshot, defaultTraySnapshotCapture, detectPopoutCapability, evaluateDragOut, forEachPopoutWindow, getPendingPopoutWindowIds, getPopoutOpener, getPopoutWindow, getTraySnapshot, isAutoOpened, isUnderRoute, markAutoOpened, mayRaiseUnbidden, measureWorkingColumn, mobileWindowTitleClass, resetDefaultWindowCascade, resolveAutoOpenPlacement, resolvePosition, sanitizeWindowData, setTraySnapshot, subscribePopoutWindowMap, subscribeTraySnapshotMap, supportsAnyPopout, supportsDocumentPictureInPicture, usePopoutControl, usePopoutWindow, usePopoutWindowRef, useWindowPanel };
package/dist/window.js CHANGED
@@ -800,7 +800,7 @@ function useDebugFlag(debug) {
800
800
  }
801
801
 
802
802
  // src/window/WindowPanel.tsx
803
- import { useOverlayLink } from "@ai-matrx/summon/url";
803
+ import { useOverlayLink } from "@ai-matrx/summon/react";
804
804
 
805
805
  // src/window/utils/urlSyncIdentity.ts
806
806
  function resolveWindowUrlSyncKey(registryKey, explicitKey) {
@@ -1849,21 +1849,9 @@ import { selectPopoutMode as selectPopoutMode2 } from "@ai-matrx/summon";
1849
1849
  // src/window/popout/PopoutShell.tsx
1850
1850
  import { useMemo } from "react";
1851
1851
  import { PortalContainerProvider } from "@ai-matrx/design-system";
1852
-
1853
- // src/window/popout/PopoutContext.tsx
1854
- import { createContext, useContext } from "react";
1855
- var DEFAULT_VALUE = {
1856
- popoutDocument: null,
1857
- popoutWindow: null,
1858
- popoutContainer: null,
1859
- mode: null
1860
- };
1861
- var PopoutContext = createContext(DEFAULT_VALUE);
1862
- function usePopout() {
1863
- return useContext(PopoutContext);
1864
- }
1865
-
1866
- // src/window/popout/PopoutShell.tsx
1852
+ import {
1853
+ PopoutContext
1854
+ } from "@ai-matrx/summon/window-host";
1867
1855
  import { jsx as jsx10 } from "react/jsx-runtime";
1868
1856
  function PopoutShell({
1869
1857
  popoutWindow,
@@ -1894,6 +1882,9 @@ function PopoutPortal({ windowId, children }) {
1894
1882
  );
1895
1883
  }
1896
1884
 
1885
+ // src/window/WindowPanel.tsx
1886
+ import { PopoutContext as PopoutContext2, usePopout } from "@ai-matrx/summon/window-host";
1887
+
1897
1888
  // src/window/tray/traySnapshotMap.ts
1898
1889
  import { globalSlot as globalSlot5 } from "@ai-matrx/kit/global-slot";
1899
1890
  var MAX_SNAPSHOTS = 16;
@@ -2925,7 +2916,7 @@ function WindowPanel({
2925
2916
  }
2926
2917
  ) : null;
2927
2918
  const bodyPortal = isMounted && bodyHost && !isMobile ? createPortal3(
2928
- /* @__PURE__ */ jsx14(PopoutContext.Provider, { value: bodyPopoutValue, children: /* @__PURE__ */ jsx14(PortalContainerProvider2, { container: bodyPortalContainer, children: /* @__PURE__ */ jsx14("div", { className: "contents", onPointerDown: onFocus, onPointerDownCapture: claimFront, onFocusCapture: claimFront, children: bodyContent }) }) }),
2919
+ /* @__PURE__ */ jsx14(PopoutContext2.Provider, { value: bodyPopoutValue, children: /* @__PURE__ */ jsx14(PortalContainerProvider2, { container: bodyPortalContainer, children: /* @__PURE__ */ jsx14("div", { className: "contents", onPointerDown: onFocus, onPointerDownCapture: claimFront, onFocusCapture: claimFront, children: bodyContent }) }) }),
2929
2920
  bodyHost
2930
2921
  ) : null;
2931
2922
  if (isMobile) {
@@ -3768,18 +3759,8 @@ function WindowSidebar({
3768
3759
  }) }) });
3769
3760
  }
3770
3761
 
3771
- // src/window/useOverlaySurfaceRenderAck.ts
3772
- import { useEffect as useEffect6 } from "react";
3773
- import { ackOverlaySurfaceRender, clearOverlaySurfaceRender } from "@ai-matrx/summon";
3774
- function useOverlaySurfaceRenderAck(overlayId, active) {
3775
- useEffect6(() => {
3776
- if (!active) return void 0;
3777
- ackOverlaySurfaceRender(overlayId);
3778
- return () => clearOverlaySurfaceRender(overlayId);
3779
- }, [active, overlayId]);
3780
- }
3781
-
3782
3762
  // src/window.ts
3763
+ import { useOverlaySurfaceRenderAck } from "@ai-matrx/summon/window-host";
3783
3764
  import {
3784
3765
  registerTrayPreview,
3785
3766
  getTrayPreviewEntry as getTrayPreviewEntry3,
@@ -3858,10 +3839,9 @@ function TrayStatusChip({
3858
3839
  ] });
3859
3840
  }
3860
3841
 
3861
- // src/window/popout/usePopoutContainer.ts
3862
- function usePopoutContainer() {
3863
- return usePopout().popoutContainer ?? void 0;
3864
- }
3842
+ // src/window.ts
3843
+ import { usePopout as usePopout2, PopoutContext as PopoutContext3 } from "@ai-matrx/summon/window-host";
3844
+ import { usePopoutContainer } from "@ai-matrx/summon/window-host";
3865
3845
 
3866
3846
  // src/window/utils/mayRaiseUnbidden.ts
3867
3847
  import { getOverlayMeta as getOverlayMeta4 } from "@ai-matrx/summon";
@@ -3954,7 +3934,7 @@ export {
3954
3934
  MobileWindowActionsRow,
3955
3935
  MobileWindowTitle,
3956
3936
  MobileWindowTitleRow,
3957
- PopoutContext,
3937
+ PopoutContext3 as PopoutContext,
3958
3938
  TrayChipPreview,
3959
3939
  TrayStatusChip,
3960
3940
  WindowPanel,
@@ -3996,7 +3976,7 @@ export {
3996
3976
  supportsAnyPopout,
3997
3977
  supportsDocumentPictureInPicture,
3998
3978
  useOverlaySurfaceRenderAck,
3999
- usePopout,
3979
+ usePopout2 as usePopout,
4000
3980
  usePopoutContainer,
4001
3981
  usePopoutControl,
4002
3982
  usePopoutWindow,