Initial commit: TypoGenie - Markdown to Word document converter
This commit is contained in:
68
types.ts
Normal file
68
types.ts
Normal file
@@ -0,0 +1,68 @@
|
||||
export type PaperSize = 'A4' | 'Letter';
|
||||
export type StyleCategory = string;
|
||||
|
||||
export interface DocxBorder {
|
||||
color: string;
|
||||
space: number;
|
||||
style: string; // 'single' | 'double' | 'dotted' | 'dashed'
|
||||
size: number;
|
||||
}
|
||||
|
||||
export interface DocxStyleConfig {
|
||||
font: string;
|
||||
size: number; // in pt
|
||||
color: string;
|
||||
bold?: boolean;
|
||||
italic?: boolean;
|
||||
underline?: boolean;
|
||||
allCaps?: boolean;
|
||||
smallCaps?: boolean;
|
||||
tracking?: number; // Letter spacing
|
||||
align?: 'left' | 'center' | 'right' | 'both'; // 'both' is justify
|
||||
spacing?: { before: number; after: number; line: number };
|
||||
border?: {
|
||||
top?: DocxBorder;
|
||||
bottom?: DocxBorder;
|
||||
left?: DocxBorder;
|
||||
right?: DocxBorder;
|
||||
};
|
||||
shading?: {
|
||||
fill: string; // Hex color
|
||||
color: string; // usually 'auto'
|
||||
style: string; // usually 'clear'
|
||||
};
|
||||
}
|
||||
|
||||
export interface StyleOption {
|
||||
id: string;
|
||||
name: string;
|
||||
category: StyleCategory;
|
||||
description: string;
|
||||
vibe: string;
|
||||
googleFontsImport: string;
|
||||
|
||||
// Word Export Configuration
|
||||
wordConfig: {
|
||||
heading1: DocxStyleConfig;
|
||||
heading2: DocxStyleConfig;
|
||||
body: DocxStyleConfig;
|
||||
accentColor: string; // Used for graphical elements
|
||||
};
|
||||
|
||||
// CSS for Web Preview (Must match wordConfig manually for fidelity)
|
||||
previewCss: string;
|
||||
}
|
||||
|
||||
export interface GenerationConfig {
|
||||
styleId: string;
|
||||
paperSize: PaperSize;
|
||||
content: string;
|
||||
}
|
||||
|
||||
export enum AppState {
|
||||
UPLOAD = 'UPLOAD',
|
||||
CONFIG = 'CONFIG',
|
||||
GENERATING = 'GENERATING',
|
||||
PREVIEW = 'PREVIEW',
|
||||
ERROR = 'ERROR'
|
||||
}
|
||||
Reference in New Issue
Block a user