diff --git a/packages/site-kit/src/lib/actions/click-outside.ts b/packages/site-kit/src/lib/actions/click-outside.ts deleted file mode 100644 index 05c87e6d51..0000000000 --- a/packages/site-kit/src/lib/actions/click-outside.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Dispatch event on click outside of node - */ -export function click_outside(node: HTMLElement, callback: () => void) { - const handler = (e: MouseEvent) => { - if (!node.contains(e.target as HTMLElement)) callback(); - }; - - document.addEventListener('click', handler, true); - - return { - destroy() { - document.removeEventListener('click', handler, true); - } - }; -} diff --git a/packages/site-kit/src/lib/actions/focus-outside.ts b/packages/site-kit/src/lib/actions/focus-outside.ts deleted file mode 100644 index ed30988a92..0000000000 --- a/packages/site-kit/src/lib/actions/focus-outside.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Dispatch event on click outside of node - */ -export function focus_outside(node: HTMLElement, callback: () => void) { - function handler(e: FocusEvent) { - if (!node?.contains(/** @type {HTMLElement} */ e.target as HTMLElement)) callback(); - } - - document.addEventListener('focus', handler, true); - - return { - destroy() { - document.removeEventListener('focus', handler, true); - } - }; -} diff --git a/packages/site-kit/src/lib/actions/index.ts b/packages/site-kit/src/lib/actions/index.ts index 0f3ce16ff0..ff6707a77e 100644 --- a/packages/site-kit/src/lib/actions/index.ts +++ b/packages/site-kit/src/lib/actions/index.ts @@ -1,4 +1,2 @@ -export { click_outside } from './click-outside'; -export { focus_outside } from './focus-outside'; export { focusable_children, trap } from './focus'; export { legacy_details } from './legacy-details'; diff --git a/packages/site-kit/src/lib/components/ModalOverlay.svelte b/packages/site-kit/src/lib/components/ModalOverlay.svelte new file mode 100644 index 0000000000..38820c6651 --- /dev/null +++ b/packages/site-kit/src/lib/components/ModalOverlay.svelte @@ -0,0 +1,27 @@ + + + + + diff --git a/packages/site-kit/src/lib/components/Shell.svelte b/packages/site-kit/src/lib/components/Shell.svelte index 68f58feb33..e4a04af3b5 100644 --- a/packages/site-kit/src/lib/components/Shell.svelte +++ b/packages/site-kit/src/lib/components/Shell.svelte @@ -10,6 +10,7 @@ The main shell of the application. It provides a slot for the top navigation, th import '../styles/index.css'; import Icons from './Icons.svelte'; import type { Snippet } from 'svelte'; + import ModalOverlay from './ModalOverlay.svelte'; let { nav_visible = true, @@ -36,7 +37,9 @@ The main shell of the application. It provides a slot for the top navigation, th {@render top_nav?.()} {/if} - +{#if $overlay_open} + +{/if}
{@render children?.()} @@ -47,28 +50,6 @@ The main shell of the application. It provides a slot for the top navigation, th