@forgeax/app-shell 0.52.0 → 0.53.0

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.
package/dist/react.d.ts CHANGED
@@ -197,6 +197,15 @@ interface DockTabStatusSummaryProps extends HTMLAttributes<HTMLSpanElement> {
197
197
  */
198
198
  declare const DockTabStatusSummary: react.ForwardRefExoticComponent<DockTabStatusSummaryProps & react.RefAttributes<HTMLSpanElement>>;
199
199
 
200
+ /** Stable opt-in hook for portalled controls that belong to an interaction. */
201
+ declare const OWNED_INTERACTION_SURFACE_SELECTOR = "[data-fx-interaction-scope]";
202
+ /**
203
+ * Report whether a pointer/focus target belongs to an owned or caller-exempt
204
+ * interaction surface. Each caller selector is isolated so one malformed host
205
+ * selector cannot suppress a later valid match or escape the dismissal guard.
206
+ */
207
+ declare function isDismissExemptInteractionTarget(target: Element | null, additionalSelectors?: readonly string[]): boolean;
208
+
200
209
  type PanelContentPadding = 'none' | 'sm' | 'md';
201
210
  type PanelContentScroll = 'none' | 'auto';
202
211
  type PanelContentTone = 'default' | 'surface' | 'tool';
@@ -338,4 +347,4 @@ interface ShellSlotProps extends HTMLAttributes<HTMLElement> {
338
347
  /** Structural shell marker that preserves the caller's semantic element. */
339
348
  declare function ShellSlot({ as, name, ...props }: ShellSlotProps): ReactElement;
340
349
 
341
- export { type AnchoredResizeDirection, AnchoredResizeHandle, type AnchoredResizeHandleProps, type AnchoredResizeSession, DetachedPanelBoundary, type DetachedPanelBoundaryProps, DetachedSurfaceFrame, type DetachedSurfaceFrameProps, DetachedSurfaceStatus, type DetachedSurfaceStatusProps, type DetachedSurfaceStatusTone, type DockLayoutControlBinding, type DockLayoutControlBindingOptions, DockLayoutMenu, type DockLayoutMenuPanel, type DockLayoutMenuProps, DockTabAction, type DockTabActionProps, DockTabFrame, type DockTabFrameProps, DockTabIcon, type DockTabIconProps, DockTabStatusSummary, type DockTabStatusSummaryItem, type DockTabStatusSummaryProps, type DockTabStatusTone, DockTabTitle, type DockTabTitleProps, FloatingMenu, type FloatingMenuAnchor, type FloatingMenuPoint, type FloatingMenuProps, type LiveTabPlacement, type LiveTabPlacementSource, type LiveTabTitleSource, type PanelContentPadding, type PanelContentPolicy, type PanelContentScroll, type PanelContentTone, PanelEmptyState, type PanelEmptyStateProps, PanelSurface, type PanelSurfaceProps, type PersistentSizeStorage, type PersistentSizeStore, type PersistentSizeStoreOptions, type PersistentSizeUpdate, type PointerDragFinishReason, type PointerDragSessionOptions, type PointerReorderFinishReason, type PointerReorderSession, type PointerReorderSessionOptions, ResizeHandle, type ResizeHandleProps, ShellSlot, type ShellSlotElement, type ShellSlotProps, SlotDebugOverlay, SurfacePlaceholder, type SurfacePlaceholderProps, SurfaceRegion, type SurfaceRegionProps, type TabCloseInteractions, type TabCloseInteractionsOptions, type TabPinnedStateSource, type ThresholdPointerDragFinishReason, type ThresholdPointerDragSession, type ThresholdPointerDragSessionOptions, applyAnchoredResizeDelta, beginAnchoredResize, createPersistentSizeStore, hashSlotHue, installPointerDragSession, installPointerReorderSession, installThresholdPointerDragSession, isSlotDebugEnabled, useDockLayoutControlBinding, useLiveTabPlacement, useLiveTabTitle, useLocalSize, usePersistentSizeStore, useTabCloseInteractions, useTabPinnedState };
350
+ export { type AnchoredResizeDirection, AnchoredResizeHandle, type AnchoredResizeHandleProps, type AnchoredResizeSession, DetachedPanelBoundary, type DetachedPanelBoundaryProps, DetachedSurfaceFrame, type DetachedSurfaceFrameProps, DetachedSurfaceStatus, type DetachedSurfaceStatusProps, type DetachedSurfaceStatusTone, type DockLayoutControlBinding, type DockLayoutControlBindingOptions, DockLayoutMenu, type DockLayoutMenuPanel, type DockLayoutMenuProps, DockTabAction, type DockTabActionProps, DockTabFrame, type DockTabFrameProps, DockTabIcon, type DockTabIconProps, DockTabStatusSummary, type DockTabStatusSummaryItem, type DockTabStatusSummaryProps, type DockTabStatusTone, DockTabTitle, type DockTabTitleProps, FloatingMenu, type FloatingMenuAnchor, type FloatingMenuPoint, type FloatingMenuProps, type LiveTabPlacement, type LiveTabPlacementSource, type LiveTabTitleSource, OWNED_INTERACTION_SURFACE_SELECTOR, type PanelContentPadding, type PanelContentPolicy, type PanelContentScroll, type PanelContentTone, PanelEmptyState, type PanelEmptyStateProps, PanelSurface, type PanelSurfaceProps, type PersistentSizeStorage, type PersistentSizeStore, type PersistentSizeStoreOptions, type PersistentSizeUpdate, type PointerDragFinishReason, type PointerDragSessionOptions, type PointerReorderFinishReason, type PointerReorderSession, type PointerReorderSessionOptions, ResizeHandle, type ResizeHandleProps, ShellSlot, type ShellSlotElement, type ShellSlotProps, SlotDebugOverlay, SurfacePlaceholder, type SurfacePlaceholderProps, SurfaceRegion, type SurfaceRegionProps, type TabCloseInteractions, type TabCloseInteractionsOptions, type TabPinnedStateSource, type ThresholdPointerDragFinishReason, type ThresholdPointerDragSession, type ThresholdPointerDragSessionOptions, applyAnchoredResizeDelta, beginAnchoredResize, createPersistentSizeStore, hashSlotHue, installPointerDragSession, installPointerReorderSession, installThresholdPointerDragSession, isDismissExemptInteractionTarget, isSlotDebugEnabled, useDockLayoutControlBinding, useLiveTabPlacement, useLiveTabTitle, useLocalSize, usePersistentSizeStore, useTabCloseInteractions, useTabPinnedState };
package/dist/react.js CHANGED
@@ -1544,6 +1544,19 @@ var DockTabStatusSummary = forwardRef2(function DockTabStatusSummary2({ classNam
1544
1544
  });
1545
1545
  DockTabStatusSummary.displayName = "DockTabStatusSummary";
1546
1546
 
1547
+ // src/dismiss-exemption.ts
1548
+ var OWNED_INTERACTION_SURFACE_SELECTOR = "[data-fx-interaction-scope]";
1549
+ function isDismissExemptInteractionTarget(target, additionalSelectors = []) {
1550
+ if (!target) return false;
1551
+ for (const selector of [OWNED_INTERACTION_SURFACE_SELECTOR, ...additionalSelectors]) {
1552
+ try {
1553
+ if (target.closest(selector) !== null) return true;
1554
+ } catch {
1555
+ }
1556
+ }
1557
+ return false;
1558
+ }
1559
+
1547
1560
  // src/panel.tsx
1548
1561
  import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
1549
1562
  function PanelEmptyState({
@@ -1905,6 +1918,7 @@ export {
1905
1918
  DockTabStatusSummary,
1906
1919
  DockTabTitle,
1907
1920
  FloatingMenu,
1921
+ OWNED_INTERACTION_SURFACE_SELECTOR,
1908
1922
  PanelEmptyState,
1909
1923
  PanelSurface,
1910
1924
  ResizeHandle,
@@ -1919,6 +1933,7 @@ export {
1919
1933
  installPointerDragSession,
1920
1934
  installPointerReorderSession,
1921
1935
  installThresholdPointerDragSession,
1936
+ isDismissExemptInteractionTarget,
1922
1937
  isSlotDebugEnabled,
1923
1938
  useDockLayoutControlBinding,
1924
1939
  useLiveTabPlacement,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgeax/app-shell",
3
- "version": "0.52.0",
3
+ "version": "0.53.0",
4
4
  "description": "Generic Dock, Panel, Window, and Slot composition primitives",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",