/** * Named breakpoint signals. * * Defines named breakpoints that return reactive boolean signals, * making it easy to respond to viewport size changes. * * @module bquery/media */ import type { BreakpointMap, MediaSignalHandle } from './types'; type BreakpointSignals = { [K in keyof T]: MediaSignalHandle; } & { destroyAll(): void; } & ('destroy' extends keyof T ? Record : { destroy(): void; }); /** * Defines named breakpoints and returns reactive boolean signals for each. * * Each breakpoint is a minimum-width media query. The returned object maps * each breakpoint name to a `ReadonlySignal` that is `true` when * the viewport width is at or above the breakpoint value. * * @param bp - An object mapping breakpoint names to minimum widths in pixels * @returns An object with the same keys, each a reactive boolean signal with * `destroy()`, plus a top-level `destroyAll()` method to clean up all listeners. * When no breakpoint is named `destroy`, a `destroy()` alias is also provided. * * @example * ```ts * import { breakpoints } from '@bquery/bquery/media'; * import { effect } from '@bquery/bquery/reactive'; * * const bp = breakpoints({ sm: 640, md: 768, lg: 1024, xl: 1280 }); * * effect(() => { * if (bp.xl.value) { * console.log('Extra large viewport'); * } else if (bp.lg.value) { * console.log('Large viewport'); * } else if (bp.md.value) { * console.log('Medium viewport'); * } else { * console.log('Small viewport'); * } * }); * ``` */ export declare const breakpoints: (bp: T) => BreakpointSignals; export {}; //# sourceMappingURL=breakpoints.d.ts.map