This commit is contained in:
eewing
2026-02-17 14:10:16 -06:00
parent 2bca5834c5
commit cf73cd3b4c
11246 changed files with 1690552 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
export type ScrollLockProps = {
/**
* Whether to prevent body scrolling when the content is open.
*
* @default true
*/
preventScroll?: boolean;
/**
* The delay in milliseconds before the scrollbar is restored after closing the
* dialog. This is only applicable when using the `child` snippet for custom
* transitions and `preventScroll` is `true`. You should set this to a value
* greater than the transition duration to prevent content from shifting during
* the transition.
*
* @default null
*/
restoreScrollDelay?: number | null;
};
+1
View File
@@ -0,0 +1 @@
export {};
@@ -0,0 +1,10 @@
<script lang="ts">
import type { ScrollLockProps } from "./index.js";
import { BodyScrollLock } from "../../../internal/body-scroll-lock.svelte.js";
let { preventScroll = true, restoreScrollDelay = null }: ScrollLockProps = $props();
if (preventScroll) {
new BodyScrollLock(preventScroll, () => restoreScrollDelay);
}
</script>
@@ -0,0 +1,4 @@
import type { ScrollLockProps } from "./index.js";
declare const ScrollLock: import("svelte").Component<ScrollLockProps, {}, "">;
type ScrollLock = ReturnType<typeof ScrollLock>;
export default ScrollLock;