feat(responsiveManager): add a manager to monitor responsive state and give access to responsive state flags

This commit is contained in:
Ilia Mashkov
2026-02-06 14:20:32 +03:00
parent 352f30a558
commit a26bcbecff
8 changed files with 321 additions and 15 deletions

View File

@@ -0,0 +1,30 @@
<!--
Component: ResponsiveProvider
Provides a responsive manager to all children
-->
<script lang="ts">
import {
type ResponsiveManager,
createResponsiveManager,
} from '$shared/lib/helpers';
import { setContext } from 'svelte';
import type { Snippet } from 'svelte';
interface Props {
children: Snippet;
}
let { children }: Props = $props();
const responsive = createResponsiveManager();
// Initialize and cleanup
$effect(() => {
return responsive.init();
});
// Provide to all children
setContext('responsive', responsive);
</script>
{@render children()}

View File

@@ -0,0 +1 @@
export { default as ResponsiveProvider } from './ResponsiveProvider/ResponsiveProvider.svelte';