Files
Stackq/node_modules/bits-ui/dist/bits/utilities/dismissible-layer/dismissible-layer.svelte
T
eewing cf73cd3b4c INIT
2026-02-17 14:10:16 -06:00

30 lines
881 B
Svelte

<script lang="ts">
import { boxWith } from "svelte-toolbelt";
import type { DismissibleLayerImplProps } from "./types.js";
import { DismissibleLayerState } from "./use-dismissable-layer.svelte.js";
import { noop } from "../../../internal/noop.js";
let {
interactOutsideBehavior = "close",
onInteractOutside = noop,
onFocusOutside = noop,
id,
children,
enabled,
isValidEvent = () => false,
ref,
}: DismissibleLayerImplProps = $props();
const dismissibleLayerState = DismissibleLayerState.create({
id: boxWith(() => id),
interactOutsideBehavior: boxWith(() => interactOutsideBehavior),
onInteractOutside: boxWith(() => onInteractOutside),
enabled: boxWith(() => enabled),
onFocusOutside: boxWith(() => onFocusOutside),
isValidEvent: boxWith(() => isValidEvent),
ref,
});
</script>
{@render children?.({ props: dismissibleLayerState.props })}