Add the Monolith and Cobalt Stripe templates

Standalone layouts for Canva templates 3 and 8, with the user's logo sized to the
placeholder box, a CapRule decor primitive, optional TableRows rule/heading options,
and a separate 1..45-row sweep test file.
This commit is contained in:
2026-10-04 11:25:19 +05:30
parent 5ea62a9be8
commit 385d7974cb
26 changed files with 2795 additions and 37 deletions
@@ -55,14 +55,14 @@ const near = (c: number[], hex: string, tol = 6) => {
};
describe("registry, catalog and fonts", () => {
it("lists Purple Pop and Citrus Split last, in the Northline family, with their thumbnails on disk", () => {
it("lists Purple Pop and Citrus Split before the standalone templates, in the Northline family, with their thumbnails on disk", () => {
for (const t of NORTHLINE) {
expect(getTemplate(t.id)).toBe(t);
expect(t.family).toBe("northline");
expect(catalogEntry(t.id).name).toBe(t.name);
expect(existsSync(path.join(process.cwd(), "public", t.thumbnail)), t.thumbnail).toBe(true);
}
expect(Object.keys(TEMPLATES).slice(-2)).toEqual(["purple-pop", "citrus-split"]);
expect(Object.keys(TEMPLATES).slice(-4, -2)).toEqual(["purple-pop", "citrus-split"]);
expect(TEMPLATE_CATALOG.map((e) => e.id)).toEqual(Object.keys(TEMPLATES));
expect(TEMPLATE_CATALOG.filter((e) => e.logoOptIn).map((e) => e.id)).toEqual(["linea", "purple-pop"]);
});