mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-08-23 23:02:17 +10:00
feat: add semantic CSS stylesheets (#3274)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor Agent
parent
4ac19f81b3
commit
d2ffbf9618
@@ -0,0 +1,49 @@
|
||||
import type { ResumeData, StyleRule } from "@reactive-resume/schema/resume/data";
|
||||
import { resumeDataSchema } from "@reactive-resume/schema/resume/data";
|
||||
|
||||
export type RenderDataProjection = {
|
||||
picture: ResumeData["picture"];
|
||||
basics: ResumeData["basics"];
|
||||
summary: ResumeData["summary"];
|
||||
sections: ResumeData["sections"];
|
||||
customSections: ResumeData["customSections"];
|
||||
metadata: {
|
||||
template: ResumeData["metadata"]["template"];
|
||||
layout: ResumeData["metadata"]["layout"];
|
||||
page: ResumeData["metadata"]["page"];
|
||||
design: ResumeData["metadata"]["design"];
|
||||
typography: ResumeData["metadata"]["typography"];
|
||||
styleRules?: StyleRule[];
|
||||
stylesheet?: never;
|
||||
notes?: never;
|
||||
};
|
||||
};
|
||||
|
||||
function project(data: ResumeData): RenderDataProjection {
|
||||
const parsed = resumeDataSchema.parse(data);
|
||||
const includeLegacyRules = parsed.metadata.stylesheet?.mode !== "semantic";
|
||||
|
||||
return {
|
||||
picture: parsed.picture,
|
||||
basics: parsed.basics,
|
||||
summary: parsed.summary,
|
||||
sections: parsed.sections,
|
||||
customSections: parsed.customSections,
|
||||
metadata: {
|
||||
template: parsed.metadata.template,
|
||||
layout: parsed.metadata.layout,
|
||||
page: parsed.metadata.page,
|
||||
design: parsed.metadata.design,
|
||||
typography: parsed.metadata.typography,
|
||||
...(includeLegacyRules ? { styleRules: parsed.metadata.styleRules } : {}),
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export function projectRenderData(data: ResumeData): RenderDataProjection {
|
||||
return project(data);
|
||||
}
|
||||
|
||||
export function projectPublicRenderData(data: ResumeData): RenderDataProjection {
|
||||
return project(data);
|
||||
}
|
||||
Reference in New Issue
Block a user