/** @import { ReactiveController, LitElement } from 'lit' */ /** @import { Device } from '../types.js' */ /** * Tracks whether the viewport is narrow enough to count as a phone. * * Uses matchMedia rather than a resize listener: it only fires when the * boundary is actually crossed, so nothing runs while the user drags a window * around inside one bucket. * * @implements {ReactiveController} */ export class BreakpointController implements ReactiveController { /** @param {LitElement} host */ constructor(host: LitElement); /** @returns {Device} */ get device(): Device; hostDisconnected(): void; /** * Point the controller at a breakpoint. Safe to call on every update; the * media query is only rebuilt when the value actually changes. * * @param {number} breakpoint */ observe(breakpoint: number): void; #private; } import type { ReactiveController } from 'lit'; import type { Device } from '../types.js'; import type { LitElement } from 'lit';