// Default templates embedded in the app // These are written to disk on first run if no templates exist export const defaultTemplates: Record = { "academic/research-paper.json": JSON.stringify({ "id": "research-paper", "name": "Research Paper", "category": "Academic", "description": "Formal academic formatting for research papers and scholarly articles.", "vibe": "Scholarly, Formal, Precise", "googleFontsImport": "https://fonts.googleapis.com/css2?family=Crimson+Text:ital,wght@0,400;0,600;0,700;1,400&display=swap", "typography": { "fonts": { "heading": "Crimson Text", "body": "Crimson Text", "code": "Consolas, Monaco, monospace" }, "colors": { "text": "000000", "textSecondary": "444444", "background": "FFFFFF", "accent": "2F5496", "border": "CCCCCC", "codeBg": "F5F5F5", "blockquoteBorder": "2F5496" } }, "elements": { "h1": { "font": "heading", "size": 28, "color": "text", "bold": true, "align": "center", "spacing": { "before": 24, "after": 18, "line": 1.2 } }, "h2": { "font": "heading", "size": 14, "color": "text", "bold": true, "align": "left", "spacing": { "before": 18, "after": 8, "line": 1.2 } }, "h3": { "font": "heading", "size": 12, "color": "text", "bold": true, "align": "left", "spacing": { "before": 14, "after": 6, "line": 1.2 } }, "h4": { "font": "heading", "size": 11, "color": "text", "bold": true, "italic": true, "align": "left", "spacing": { "before": 12, "after": 4, "line": 1.2 } }, "p": { "font": "body", "size": 11, "color": "text", "align": "justify", "spacing": { "before": 0, "after": 0, "line": 1.8 }, "indent": 24 }, "blockquote": { "font": "body", "size": 10.5, "color": "textSecondary", "italic": true, "spacing": { "before": 12, "after": 12, "line": 1.5 }, "indent": 36, "borderLeft": { "color": "accent", "width": 3, "style": "solid" } }, "code": { "font": "code", "size": 9.5, "color": "text", "background": "codeBg" }, "pre": { "font": "code", "size": 9, "color": "text", "background": "codeBg", "spacing": { "before": 12, "after": 12 }, "padding": 12, "border": { "color": "border", "width": 1, "style": "solid" } }, "ul": { "spacing": { "before": 8, "after": 8 }, "indent": 24, "bullet": "disc" }, "ol": { "spacing": { "before": 8, "after": 8 }, "indent": 24, "numbering": "decimal" }, "li": { "font": "body", "size": 11, "spacing": { "before": 2, "after": 2 } }, "strong": { "font": "body", "bold": true }, "em": { "font": "body", "italic": true }, "a": { "font": "body", "color": "accent", "underline": true }, "table": { "spacing": { "before": 12, "after": 12 }, "border": { "color": "border", "width": 1, "style": "solid" } }, "th": { "font": "heading", "size": 10, "bold": true, "background": "F0F0F0", "padding": 8 }, "td": { "font": "body", "size": 10, "padding": 8 }, "hr": { "border": { "color": "border", "width": 1, "style": "solid" }, "spacing": { "before": 18, "after": 18 } } }, "page": { "margins": { "top": 72, "bottom": 72, "left": 72, "right": 72 } } }, null, 2), "core/default.json": JSON.stringify({ "id": "default", "name": "Default Clean", "category": "Core", "description": "Clean, versatile default style that works for any document type.", "vibe": "Clean, Versatile, Professional", "googleFontsImport": "https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;600;700&display=swap", "typography": { "fonts": { "heading": "Source Sans 3", "body": "Source Sans 3", "code": "Source Sans 3" }, "colors": { "text": "1A1A1A", "textSecondary": "2D2D2D", "background": "FFFFFF", "accent": "2563EB", "border": "E5E5E5", "codeBg": "F5F5F5", "blockquoteBorder": "2563EB" } }, "elements": { "h1": { "font": "heading", "size": 28, "color": "text", "bold": true, "align": "left", "spacing": { "before": 20, "after": 10 } }, "h2": { "font": "heading", "size": 15, "color": "textSecondary", "bold": true, "align": "left", "spacing": { "before": 14, "after": 7 } }, "h3": { "font": "heading", "size": 13, "color": "textSecondary", "bold": true, "align": "left", "spacing": { "before": 12, "after": 6 } }, "p": { "font": "body", "size": 11, "color": "333333", "align": "left", "spacing": { "before": 0, "after": 9, "line": 1.6 } }, "blockquote": { "font": "body", "size": 11, "color": "textSecondary", "italic": true, "spacing": { "before": 12, "after": 12 }, "borderLeft": { "color": "accent", "width": 4, "style": "solid" } }, "code": { "font": "code", "size": 9.5, "background": "codeBg" }, "pre": { "font": "code", "size": 9, "background": "codeBg", "padding": 12 }, "ul": { "spacing": { "before": 8, "after": 8 }, "indent": 24 }, "ol": { "spacing": { "before": 8, "after": 8 }, "indent": 24 }, "li": { "font": "body", "size": 11 }, "strong": { "font": "body", "bold": true }, "em": { "font": "body", "italic": true }, "a": { "font": "body", "color": "accent", "underline": true }, "table": { "spacing": { "before": 12, "after": 12 } }, "th": { "font": "heading", "size": 10, "bold": true, "background": "F0F0F0" }, "td": { "font": "body", "size": 10 }, "hr": { "border": { "color": "border", "width": 1, "style": "solid" } } }, "page": { "margins": { "top": 72, "bottom": 72, "left": 72, "right": 72 } } }, null, 2) }; // List of all template paths that should exist export const templatePaths = Object.keys(defaultTemplates);