77} from "@zag-js/interact-outside"
88import { isFunction , warn , type MaybeFunction } from "@zag-js/utils"
99import { trackEscapeKeydown } from "./escape-keydown"
10- import { layerStack , type Layer , type LayerDismissEvent } from "./layer-stack"
10+ import { layerStack , type Layer , type LayerDismissEvent , type LayerType } from "./layer-stack"
1111import { assignPointerEventToLayers , clearPointerEvent , disablePointerEventsOutside } from "./pointer-event-outside"
1212
1313type MaybeElement = HTMLElement | null
@@ -59,6 +59,10 @@ export interface DismissableElementOptions extends DismissableElementHandlers, P
5959 * Whether to warn when the node is `null` or `undefined`
6060 */
6161 warnOnMissingNode ?: boolean | undefined
62+ /**
63+ * The type of layer being tracked
64+ */
65+ type ?: LayerType | undefined
6266}
6367
6468function trackDismissableElementImpl ( node : MaybeElement , options : DismissableElementOptions ) {
@@ -73,9 +77,9 @@ function trackDismissableElementImpl(node: MaybeElement, options: DismissableEle
7377 return
7478 }
7579
76- const { onDismiss, onRequestDismiss, pointerBlocking, exclude : excludeContainers , debug } = options
80+ const { onDismiss, onRequestDismiss, pointerBlocking, exclude : excludeContainers , debug, type = "dialog" } = options
7781
78- const layer : Layer = { dismiss : onDismiss , node, pointerBlocking, requestDismiss : onRequestDismiss }
82+ const layer : Layer = { dismiss : onDismiss , node, type , pointerBlocking, requestDismiss : onRequestDismiss }
7983
8084 layerStack . add ( layer )
8185 assignPointerEventToLayers ( )
0 commit comments