types/viewport.types.ts
types/viewport.types.ts is a file in Project Scripts. 73 lines of code and 9 definitions.
export interface ViewportOptions {
readonly outDir: string;
readonly routes: readonly string[];
readonly browser: string | null;
readonly width: number;
readonly height: number;
readonly settleMs: number;
readonly timeoutMs: number;
readonly software: boolean;
}
export interface ViewportRules {
readonly inputMinPx: number;
readonly textMinPx: number;
readonly targetMinPx: number;
readonly tolerancePx: number;
readonly scrollRootId: string;
readonly scrollPauseMs: number;
readonly hiddenSelector: string;
readonly drawingSelector: string;
readonly fieldSelector: string;
readonly targetSelector: string;
readonly inlineSelector: string;
readonly cuttingOverflow: readonly string[];
}
export interface ViewportAudit {
readonly viewport: number;
readonly scrollsSideways: boolean;
readonly overflow: readonly string[];
readonly inputs: readonly string[];
readonly text: readonly string[];
readonly targets: readonly string[];
readonly clipped: readonly string[];
}
export interface LayoutFindings {
readonly overflow: readonly string[];
readonly clipped: readonly string[];
readonly text: readonly string[];
}
export interface ControlFindings {
readonly inputs: readonly string[];
readonly targets: readonly string[];
}
export type ProbePage = Pick<Window, "document" | "getComputedStyle" | "innerWidth">;
export interface ViewportProbe {
readonly pixelsOf: (value: string) => number;
readonly describeElement: (element: Element) => string;
readonly countedEntries: (keys: readonly string[]) => readonly string[];
readonly isAuditable: (page: ProbePage, rules: ViewportRules, element: Element) => boolean;
readonly escapesScreen: (page: ProbePage, rules: ViewportRules, element: Element) => boolean;
readonly widestDescendant: (element: Element) => Element | null;
readonly clippedEntry: (
page: ProbePage,
rules: ViewportRules,
probe: ViewportProbe,
element: Element,
) => string | null;
readonly smallTextEntry: (
page: ProbePage,
rules: ViewportRules,
probe: ViewportProbe,
element: Element,
) => string | null;
readonly layoutFindings: (page: ProbePage, rules: ViewportRules, probe: ViewportProbe) => LayoutFindings;
readonly controlFindings: (page: ProbePage, rules: ViewportRules, probe: ViewportProbe) => ControlFindings;
}
export interface BuiltSite {
readonly origin: string;
readonly close: () => void;
}
export interface ViewportResult {
readonly route: string;
readonly audit: ViewportAudit;
}