diff --git a/packages/lint/src/rules/core.test.ts b/packages/lint/src/rules/core.test.ts index cf5e463e4..1419c545e 100644 --- a/packages/lint/src/rules/core.test.ts +++ b/packages/lint/src/rules/core.test.ts @@ -227,6 +227,15 @@ describe("core rules", () => { expect(finding).toBeDefined(); }); + it("allows a timeline-free root that explicitly declares data-no-timeline", async () => { + const html = ` + +
+`; + const result = await lintHyperframeHtml(html); + expect(result.findings.find((f) => f.code === "missing_timeline_registry")).toBeUndefined(); + }); + it("does not flag missing_timeline_registry on a sub-composition (inherits from host)", async () => { const html = ` diff --git a/packages/lint/src/rules/core.ts b/packages/lint/src/rules/core.ts index d297d4a76..f4b6b8a30 100644 --- a/packages/lint/src/rules/core.ts +++ b/packages/lint/src/rules/core.ts @@ -264,11 +264,12 @@ export const coreRules: Array<(ctx: LintContext) => HyperframeLintFinding[]> = [ }, // missing_timeline_registry + timeline_registry_missing_init - ({ source, rawSource, options }) => { + ({ source, rawSource, rootTag, options }) => { // Sub-compositions inherit window.__timelines from the host composition if (options.isSubComposition || rawSource.trimStart().toLowerCase().startsWith("