@slidy/media
Version:
Simple, observable & cookie-persisted media-query store
22 lines (21 loc) • 759 B
TypeScript
declare module "types" {
type Queries<T extends string> = Record<T, string | boolean | undefined>;
type Getter<T extends string> = (matches: Queries<T>) => void;
interface Options<T extends string> {
queries: Queries<T>;
getter: Getter<T>;
cookie: boolean;
}
export type { Options, Queries, Getter };
}
declare module "media" {
import type { Options, Queries } from "types";
export function media<T extends string>({ queries, getter, cookie }: Partial<Options<T>>): {
matches: Queries<T>;
subscribe: (fn: (matches: Queries<T>) => void) => () => boolean;
};
}
declare module "@slidy/media" {
export { media } from "media";
export type { Options, Queries, Getter } from "types";
}