UNPKG

vite-plugin-shopify-theme-islands

Version:
88 lines (87 loc) 2.53 kB
import { type ClientDirective, type NormalizedReviveOptions } from "./contract.js"; export type GateResult = { kind: "visible"; attribute: string; rawValue: string; rootMargin: string; threshold: number; } | { kind: "media"; attribute: string; rawValue: string; query: string | null; } | { kind: "custom"; attribute: string; value: string; directive: ClientDirective; } | { kind: "idle"; attribute: string; timeout: number; invalid: boolean; rawValue: string; } | { kind: "defer"; attribute: string; delay: number; invalid: boolean; rawValue: string; } | { kind: "interaction"; attribute: string; rawValue: string; events: string[]; invalidTokens: string[]; emptyTokens: boolean; usedDefaultEvents: boolean; }; export type GateWarning = { kind: "emptyMediaQuery"; attribute: string; } | { kind: "invalidIdleValue"; attribute: string; rawValue: string; defaultMs: number; } | { kind: "invalidDeferValue"; attribute: string; rawValue: string; defaultMs: number; } | { kind: "emptyInteractionTokens"; attribute: string; } | { kind: "invalidInteractionTokens"; attribute: string; invalidTokens: string[]; usedDefaultEvents: boolean; }; export type BuiltInGateResult = Exclude<GateResult, { kind: "custom"; }>; export type CustomGateResult = Extract<GateResult, { kind: "custom"; }>; export interface GatePlan { /** All gates in built-in order followed by custom directives. */ gates: GateResult[]; /** Custom directive gates only, for custom directive execution. */ customGates: CustomGateResult[]; /** Canonical description used for same-Tag conflict detection. */ conflictSignature: string; /** Raw-value description parts for pre-Activation debug logging. */ initialDiagnosticParts: string[]; /** Structured warning facts from invalid built-in Gate states. */ warnings: GateWarning[]; } export interface DirectiveSpine { readGates(el: HTMLElement): GateResult[]; planGates(el: HTMLElement): GatePlan; describe(el: HTMLElement): string; attributeNames: ReadonlySet<string>; } export declare function createDirectiveSpine(directives?: NormalizedReviveOptions["directives"]): DirectiveSpine; export declare function extendDirectiveSpine(base: DirectiveSpine, customDirectives?: Map<string, ClientDirective>): DirectiveSpine; export declare const DEFAULT_DIRECTIVE_SPINE: DirectiveSpine;