@recruitnepal/shared-packages 1.5.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/common/NoData.d.ts +8 -0
- package/dist/components/common/NoData.d.ts.map +1 -0
- package/dist/components/common/NoData.js +4 -0
- package/dist/components/cv/TemplatePicker.d.ts +14 -0
- package/dist/components/cv/TemplatePicker.d.ts.map +1 -0
- package/dist/components/cv/TemplatePicker.js +161 -0
- package/dist/components/cv/TemplateRenderer.d.ts +20 -0
- package/dist/components/cv/TemplateRenderer.d.ts.map +1 -0
- package/dist/components/cv/TemplateRenderer.js +14 -0
- package/dist/components/ui/BulletListTextarea.d.ts +19 -0
- package/dist/components/ui/BulletListTextarea.d.ts.map +1 -0
- package/dist/components/ui/BulletListTextarea.js +60 -0
- package/dist/components/ui/DesignationSelect.d.ts +13 -0
- package/dist/components/ui/DesignationSelect.d.ts.map +1 -0
- package/dist/components/ui/DesignationSelect.js +78 -0
- package/dist/components/ui/IndustrySelect.d.ts +13 -0
- package/dist/components/ui/IndustrySelect.d.ts.map +1 -0
- package/dist/components/ui/IndustrySelect.js +78 -0
- package/dist/components/ui/MultiSelectOptions.d.ts +18 -0
- package/dist/components/ui/MultiSelectOptions.d.ts.map +1 -0
- package/dist/components/ui/MultiSelectOptions.js +85 -0
- package/dist/components/ui/RatingStars.d.ts +10 -0
- package/dist/components/ui/RatingStars.d.ts.map +1 -0
- package/dist/components/ui/RatingStars.js +10 -0
- package/dist/components/ui/command.d.ts +68 -0
- package/dist/components/ui/command.d.ts.map +1 -0
- package/dist/components/ui/command.js +24 -0
- package/dist/components/ui/popover.d.ts +7 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/popover.js +10 -0
- package/dist/hooks/useDebounce.d.ts +2 -0
- package/dist/hooks/useDebounce.d.ts.map +1 -0
- package/dist/hooks/useDebounce.js +9 -0
- package/dist/hooks/useDesignations.d.ts +51 -0
- package/dist/hooks/useDesignations.d.ts.map +1 -0
- package/dist/hooks/useDesignations.js +117 -0
- package/dist/hooks/useIndustries.d.ts +51 -0
- package/dist/hooks/useIndustries.d.ts.map +1 -0
- package/dist/hooks/useIndustries.js +118 -0
- package/dist/hooks/useSkills.d.ts +19 -0
- package/dist/hooks/useSkills.d.ts.map +1 -0
- package/dist/hooks/useSkills.js +39 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -0
- package/dist/stores/cvDrafts.store.d.ts +44 -0
- package/dist/stores/cvDrafts.store.d.ts.map +1 -0
- package/dist/stores/cvDrafts.store.js +86 -0
- package/dist/stores/cvLayout.store.d.ts +24 -0
- package/dist/stores/cvLayout.store.d.ts.map +1 -0
- package/dist/stores/cvLayout.store.js +116 -0
- package/dist/stores/cvPreview.store.d.ts +29 -0
- package/dist/stores/cvPreview.store.d.ts.map +1 -0
- package/dist/stores/cvPreview.store.js +80 -0
- package/dist/types/cv-blocks.types.d.ts +44 -0
- package/dist/types/cv-blocks.types.d.ts.map +1 -0
- package/dist/types/cv-blocks.types.js +1 -0
- package/dist/types/cv-draft.types.d.ts +32 -0
- package/dist/types/cv-draft.types.d.ts.map +1 -0
- package/dist/types/cv-draft.types.js +1 -0
- package/dist/types/template.types.d.ts +122 -0
- package/dist/types/template.types.d.ts.map +1 -0
- package/dist/types/template.types.js +1 -0
- package/dist/utils/cn.d.ts +2 -0
- package/dist/utils/cn.d.ts.map +1 -0
- package/dist/utils/cn.js +3 -0
- package/dist/utils/commonDropdownOptions.d.ts +6 -0
- package/dist/utils/commonDropdownOptions.d.ts.map +1 -0
- package/dist/utils/commonDropdownOptions.js +15 -0
- package/dist/utils/cv/pdf/printReset.d.ts +3 -0
- package/dist/utils/cv/pdf/printReset.d.ts.map +1 -0
- package/dist/utils/cv/pdf/printReset.js +41 -0
- package/dist/utils/cv/pdf/styles/base.d.ts +2 -0
- package/dist/utils/cv/pdf/styles/base.d.ts.map +1 -0
- package/dist/utils/cv/pdf/styles/base.js +44 -0
- package/dist/utils/cv/pdf/styles/preprocessCssClient.d.ts +3 -0
- package/dist/utils/cv/pdf/styles/preprocessCssClient.d.ts.map +1 -0
- package/dist/utils/cv/pdf/styles/preprocessCssClient.js +33 -0
- package/dist/utils/cv-block-converter.d.ts +11 -0
- package/dist/utils/cv-block-converter.d.ts.map +1 -0
- package/dist/utils/cv-block-converter.js +83 -0
- package/dist/utils/generateSearchQuery.d.ts +2 -0
- package/dist/utils/generateSearchQuery.d.ts.map +1 -0
- package/dist/utils/generateSearchQuery.js +5 -0
- package/package.json +51 -44
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
export type TemplateLink = {
|
|
2
|
+
type?: string;
|
|
3
|
+
label?: string;
|
|
4
|
+
url: string;
|
|
5
|
+
};
|
|
6
|
+
export type TemplateSkill = {
|
|
7
|
+
name: string;
|
|
8
|
+
level?: string;
|
|
9
|
+
rating?: number;
|
|
10
|
+
};
|
|
11
|
+
export type TemplateSkillCategory = {
|
|
12
|
+
id: string;
|
|
13
|
+
category: string;
|
|
14
|
+
skills: TemplateSkill[];
|
|
15
|
+
};
|
|
16
|
+
export type TemplateExperience = {
|
|
17
|
+
id: string;
|
|
18
|
+
position: string;
|
|
19
|
+
company: string;
|
|
20
|
+
location: string;
|
|
21
|
+
startDate: string;
|
|
22
|
+
endDate?: string;
|
|
23
|
+
current?: boolean;
|
|
24
|
+
description?: string;
|
|
25
|
+
highlights?: string[];
|
|
26
|
+
};
|
|
27
|
+
export type TemplateEducation = {
|
|
28
|
+
id: string;
|
|
29
|
+
degree: string;
|
|
30
|
+
field: string;
|
|
31
|
+
institution: string;
|
|
32
|
+
location?: string;
|
|
33
|
+
startDate: string;
|
|
34
|
+
endDate?: string;
|
|
35
|
+
current?: boolean;
|
|
36
|
+
gpa?: string;
|
|
37
|
+
honors?: string[];
|
|
38
|
+
};
|
|
39
|
+
export type TemplateProject = {
|
|
40
|
+
id: string;
|
|
41
|
+
name: string;
|
|
42
|
+
description: string;
|
|
43
|
+
technologies: string[];
|
|
44
|
+
url?: string;
|
|
45
|
+
startDate?: string;
|
|
46
|
+
endDate?: string;
|
|
47
|
+
highlights?: string[];
|
|
48
|
+
};
|
|
49
|
+
export type TemplateTraining = {
|
|
50
|
+
id: string;
|
|
51
|
+
course: string;
|
|
52
|
+
institute: string;
|
|
53
|
+
description?: string;
|
|
54
|
+
skills?: string[];
|
|
55
|
+
startDate?: string;
|
|
56
|
+
endDate?: string;
|
|
57
|
+
url?: string;
|
|
58
|
+
};
|
|
59
|
+
export type TemplateReference = {
|
|
60
|
+
id: string;
|
|
61
|
+
name: string;
|
|
62
|
+
position?: string;
|
|
63
|
+
email?: string;
|
|
64
|
+
phone?: string;
|
|
65
|
+
company?: string;
|
|
66
|
+
};
|
|
67
|
+
export type TemplateCertification = {
|
|
68
|
+
id: string;
|
|
69
|
+
name: string;
|
|
70
|
+
issuer: string;
|
|
71
|
+
date?: string;
|
|
72
|
+
};
|
|
73
|
+
export type TemplateLanguage = {
|
|
74
|
+
id: string;
|
|
75
|
+
language: string;
|
|
76
|
+
proficiency?: 'native' | 'professional' | 'conversational' | 'basic';
|
|
77
|
+
reading?: 'Excellent' | 'good' | 'basic' | number;
|
|
78
|
+
writing?: 'Excellent' | 'good' | 'basic' | number;
|
|
79
|
+
speaking?: 'Excellent' | 'good' | 'basic' | number;
|
|
80
|
+
};
|
|
81
|
+
export type TemplateSections = {
|
|
82
|
+
experience?: TemplateExperience[];
|
|
83
|
+
education?: TemplateEducation[];
|
|
84
|
+
projects?: TemplateProject[];
|
|
85
|
+
certifications?: TemplateCertification[];
|
|
86
|
+
references?: TemplateReference[];
|
|
87
|
+
awards?: {
|
|
88
|
+
id: string;
|
|
89
|
+
title: string;
|
|
90
|
+
issuer?: string;
|
|
91
|
+
date?: string;
|
|
92
|
+
description?: string;
|
|
93
|
+
}[];
|
|
94
|
+
skills?: TemplateSkillCategory[];
|
|
95
|
+
languages?: TemplateLanguage[];
|
|
96
|
+
trainings?: TemplateTraining[];
|
|
97
|
+
};
|
|
98
|
+
export type TemplatePersonalInfo = {
|
|
99
|
+
firstName: string;
|
|
100
|
+
lastName: string;
|
|
101
|
+
title?: string;
|
|
102
|
+
email: string;
|
|
103
|
+
phone?: string;
|
|
104
|
+
location: {
|
|
105
|
+
city?: string;
|
|
106
|
+
state?: string;
|
|
107
|
+
country?: string;
|
|
108
|
+
};
|
|
109
|
+
photo?: string;
|
|
110
|
+
summary?: string;
|
|
111
|
+
links?: TemplateLink[];
|
|
112
|
+
};
|
|
113
|
+
export type TemplateData = {
|
|
114
|
+
personalInfo: TemplatePersonalInfo;
|
|
115
|
+
sections: TemplateSections;
|
|
116
|
+
};
|
|
117
|
+
export type TemplateProps = {
|
|
118
|
+
data: TemplateData;
|
|
119
|
+
className?: string;
|
|
120
|
+
printMode?: boolean;
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=template.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.types.d.ts","sourceRoot":"","sources":["../../src/types/template.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../src/utils/cn.ts"],"names":[],"mappings":"AAAA,wBAAgB,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAE5E"}
|
package/dist/utils/cn.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commonDropdownOptions.d.ts","sourceRoot":"","sources":["../../src/utils/commonDropdownOptions.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;GAa1B,CAAC;AAEF,eAAO,MAAM,aAAa,UAGzB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const monthsDropdown = [
|
|
2
|
+
{ value: 1, label: 'January' },
|
|
3
|
+
{ value: 2, label: 'February' },
|
|
4
|
+
{ value: 3, label: 'March' },
|
|
5
|
+
{ value: 4, label: 'April' },
|
|
6
|
+
{ value: 5, label: 'May' },
|
|
7
|
+
{ value: 6, label: 'June' },
|
|
8
|
+
{ value: 7, label: 'July' },
|
|
9
|
+
{ value: 8, label: 'August' },
|
|
10
|
+
{ value: 9, label: 'September' },
|
|
11
|
+
{ value: 10, label: 'October' },
|
|
12
|
+
{ value: 11, label: 'November' },
|
|
13
|
+
{ value: 12, label: 'December' },
|
|
14
|
+
];
|
|
15
|
+
export const yearsDropdown = Array.from({ length: 50 }, (_, i) => `${new Date().getFullYear() - i}`);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const printReset = "\n @page :first { size: A4; margin: 0; }\n @page { size: A4; margin: 0; margin-top: 16px; }\n html, body { margin: 0 !important; padding: 0 !important; }\n @media print {\n html, body { min-height: 100vh; }\n #cv-root {\n width: 210mm !important;\n min-height: 297mm !important;\n margin: 0 !important;\n box-sizing: border-box !important;\n }\n #cv-root[data-template=\"professional\"],\n #cv-root[data-template=\"academic\"] { padding: 10mm !important; }\n #cv-root[data-template=\"modern\"],\n #cv-root[data-template=\"tech\"] { padding: 0 !important; }\n div[class*=\"mb-6\"]:not([class*=\"space-y\"]),\n div[class*=\"mb-8\"]:not([class*=\"space-y\"]) {\n page-break-before: avoid;\n break-before: avoid;\n break-inside: auto;\n page-break-inside: auto;\n }\n div[class*=\"mb-6\"]:not([class*=\"space-y\"]) > h2,\n div[class*=\"mb-8\"]:not([class*=\"space-y\"]) > h2 {\n page-break-after: avoid;\n break-after: avoid;\n }\n div[class*=\"space-y\"] { break-inside: auto; page-break-inside: auto; }\n div[class*=\"border-l-2\"] {\n break-inside: avoid !important;\n page-break-inside: avoid !important;\n }\n p, li { orphans: 2; widows: 2; }\n * {\n -webkit-print-color-adjust: exact !important;\n print-color-adjust: exact !important;\n }\n }\n";
|
|
2
|
+
export default printReset;
|
|
3
|
+
//# sourceMappingURL=printReset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"printReset.d.ts","sourceRoot":"","sources":["../../../../src/utils/cv/pdf/printReset.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,UAAU,w2CAuCf,CAAC;AACF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const printReset = `
|
|
2
|
+
@page :first { size: A4; margin: 0; }
|
|
3
|
+
@page { size: A4; margin: 0; margin-top: 16px; }
|
|
4
|
+
html, body { margin: 0 !important; padding: 0 !important; }
|
|
5
|
+
@media print {
|
|
6
|
+
html, body { min-height: 100vh; }
|
|
7
|
+
#cv-root {
|
|
8
|
+
width: 210mm !important;
|
|
9
|
+
min-height: 297mm !important;
|
|
10
|
+
margin: 0 !important;
|
|
11
|
+
box-sizing: border-box !important;
|
|
12
|
+
}
|
|
13
|
+
#cv-root[data-template="professional"],
|
|
14
|
+
#cv-root[data-template="academic"] { padding: 10mm !important; }
|
|
15
|
+
#cv-root[data-template="modern"],
|
|
16
|
+
#cv-root[data-template="tech"] { padding: 0 !important; }
|
|
17
|
+
div[class*="mb-6"]:not([class*="space-y"]),
|
|
18
|
+
div[class*="mb-8"]:not([class*="space-y"]) {
|
|
19
|
+
page-break-before: avoid;
|
|
20
|
+
break-before: avoid;
|
|
21
|
+
break-inside: auto;
|
|
22
|
+
page-break-inside: auto;
|
|
23
|
+
}
|
|
24
|
+
div[class*="mb-6"]:not([class*="space-y"]) > h2,
|
|
25
|
+
div[class*="mb-8"]:not([class*="space-y"]) > h2 {
|
|
26
|
+
page-break-after: avoid;
|
|
27
|
+
break-after: avoid;
|
|
28
|
+
}
|
|
29
|
+
div[class*="space-y"] { break-inside: auto; page-break-inside: auto; }
|
|
30
|
+
div[class*="border-l-2"] {
|
|
31
|
+
break-inside: avoid !important;
|
|
32
|
+
page-break-inside: avoid !important;
|
|
33
|
+
}
|
|
34
|
+
p, li { orphans: 2; widows: 2; }
|
|
35
|
+
* {
|
|
36
|
+
-webkit-print-color-adjust: exact !important;
|
|
37
|
+
print-color-adjust: exact !important;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
export default printReset;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const baseCssContent = "\n @page { size: A4; margin: 12mm; }\n html { font-size: 16px; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }\n html, body { margin: 0; padding: 0; }\n *, *::before, *::after { box-sizing: border-box; }\n * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }\n @font-face {\n font-family: \"Manrope\";\n src: url(\"__MANROPE_URL__\") format(\"woff2\");\n font-weight: 200 800;\n font-style: normal;\n font-display: swap;\n }\n body {\n font-family: \"Manrope\", ui-sans-serif, system-ui, -apple-system, sans-serif;\n line-height: 1.5;\n -webkit-font-smoothing: antialiased;\n }\n .cv-only-mobile { display: none !important; }\n .cv-hide-mobile { display: block !important; }\n :root{\n --page-h: 297mm;\n --page-mt: 12mm;\n --page-mb: 18mm;\n --pad-t: 0mm;\n --pad-b: 14mm;\n --cv-min-h: calc(var(--page-h) - var(--page-mt) - var(--page-mb) - var(--pad-t) - var(--pad-b));\n }\n .cv-page {\n width: 210mm;\n min-height: var(--cv-min-h);\n padding: 0mm 14mm 14mm 14mm;\n overflow: visible;\n display: grid;\n grid-template-rows: 1fr auto;\n page-break-after: auto !important;\n page-break-inside: avoid;\n break-inside: avoid;\n }\n .cv-content { min-height: 0; }\n .cv-footer { display: none; }\n .cv-page ul { list-style: disc outside; padding-left: 1.25rem; margin: 0; }\n .cv-page li { margin: .25rem 0; }\n";
|
|
2
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/utils/cv/pdf/styles/base.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,06CA2C1B,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export const baseCssContent = `
|
|
2
|
+
@page { size: A4; margin: 12mm; }
|
|
3
|
+
html { font-size: 16px; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
|
|
4
|
+
html, body { margin: 0; padding: 0; }
|
|
5
|
+
*, *::before, *::after { box-sizing: border-box; }
|
|
6
|
+
* { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
|
|
7
|
+
@font-face {
|
|
8
|
+
font-family: "Manrope";
|
|
9
|
+
src: url("__MANROPE_URL__") format("woff2");
|
|
10
|
+
font-weight: 200 800;
|
|
11
|
+
font-style: normal;
|
|
12
|
+
font-display: swap;
|
|
13
|
+
}
|
|
14
|
+
body {
|
|
15
|
+
font-family: "Manrope", ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
16
|
+
line-height: 1.5;
|
|
17
|
+
-webkit-font-smoothing: antialiased;
|
|
18
|
+
}
|
|
19
|
+
.cv-only-mobile { display: none !important; }
|
|
20
|
+
.cv-hide-mobile { display: block !important; }
|
|
21
|
+
:root{
|
|
22
|
+
--page-h: 297mm;
|
|
23
|
+
--page-mt: 12mm;
|
|
24
|
+
--page-mb: 18mm;
|
|
25
|
+
--pad-t: 0mm;
|
|
26
|
+
--pad-b: 14mm;
|
|
27
|
+
--cv-min-h: calc(var(--page-h) - var(--page-mt) - var(--page-mb) - var(--pad-t) - var(--pad-b));
|
|
28
|
+
}
|
|
29
|
+
.cv-page {
|
|
30
|
+
width: 210mm;
|
|
31
|
+
min-height: var(--cv-min-h);
|
|
32
|
+
padding: 0mm 14mm 14mm 14mm;
|
|
33
|
+
overflow: visible;
|
|
34
|
+
display: grid;
|
|
35
|
+
grid-template-rows: 1fr auto;
|
|
36
|
+
page-break-after: auto !important;
|
|
37
|
+
page-break-inside: avoid;
|
|
38
|
+
break-inside: avoid;
|
|
39
|
+
}
|
|
40
|
+
.cv-content { min-height: 0; }
|
|
41
|
+
.cv-footer { display: none; }
|
|
42
|
+
.cv-page ul { list-style: disc outside; padding-left: 1.25rem; margin: 0; }
|
|
43
|
+
.cv-page li { margin: .25rem 0; }
|
|
44
|
+
`;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preprocessCssClient.d.ts","sourceRoot":"","sources":["../../../../../src/utils/cv/pdf/styles/preprocessCssClient.ts"],"names":[],"mappings":"AAKA,wBAAsB,2BAA2B,CAC/C,QAAQ,GAAE,MAAiB,EAC3B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CA2BjB;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAI1C"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { baseCssContent } from './base';
|
|
2
|
+
import printReset from '../printReset';
|
|
3
|
+
const PREPROCESSED_CSS_CACHE = {};
|
|
4
|
+
export async function preprocessTemplateCssClient(template = 'modern', origin) {
|
|
5
|
+
const cacheKey = `${template}:${origin || ''}`;
|
|
6
|
+
if (PREPROCESSED_CSS_CACHE[cacheKey]) {
|
|
7
|
+
return PREPROCESSED_CSS_CACHE[cacheKey];
|
|
8
|
+
}
|
|
9
|
+
try {
|
|
10
|
+
let baseCss = baseCssContent;
|
|
11
|
+
if (origin) {
|
|
12
|
+
baseCss = baseCss.replace('__MANROPE_URL__', `${origin}/fonts/Manrope-Variable.woff2`);
|
|
13
|
+
}
|
|
14
|
+
else if (typeof window !== 'undefined') {
|
|
15
|
+
baseCss = baseCss.replace('__MANROPE_URL__', `${window.location.origin}/fonts/Manrope-Variable.woff2`);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
baseCss = baseCss.replace('__MANROPE_URL__', '');
|
|
19
|
+
}
|
|
20
|
+
const preprocessed = [baseCss, printReset].filter(Boolean).join('\n');
|
|
21
|
+
PREPROCESSED_CSS_CACHE[cacheKey] = preprocessed;
|
|
22
|
+
return preprocessed;
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
console.error('[preprocessCssClient] Error preprocessing CSS:', error);
|
|
26
|
+
return baseCssContent + printReset;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export function clearCssCacheClient() {
|
|
30
|
+
Object.keys(PREPROCESSED_CSS_CACHE).forEach((key) => {
|
|
31
|
+
delete PREPROCESSED_CSS_CACHE[key];
|
|
32
|
+
});
|
|
33
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { TemplateData } from '../types/template.types';
|
|
2
|
+
import type { CvBlock } from '../types/cv-blocks.types';
|
|
3
|
+
export declare function convertTemplateToBlocks(_templateSlug: string, data: TemplateData): CvBlock[];
|
|
4
|
+
export declare function getDefaultColumns(templateSlug: string): number;
|
|
5
|
+
export declare function getDefaultStyles(_templateSlug: string): {
|
|
6
|
+
fontFamily: string;
|
|
7
|
+
primaryColor: string;
|
|
8
|
+
backgroundColor: string;
|
|
9
|
+
textColor: string;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=cv-block-converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cv-block-converter.d.ts","sourceRoot":"","sources":["../../src/utils/cv-block-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExD,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,YAAY,GACjB,OAAO,EAAE,CA4EX;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAQ9D;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM;;;;;EAOrD"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
export function convertTemplateToBlocks(_templateSlug, data) {
|
|
2
|
+
const blocks = [];
|
|
3
|
+
let order = 0;
|
|
4
|
+
blocks.push({
|
|
5
|
+
id: 'block-header',
|
|
6
|
+
type: 'header',
|
|
7
|
+
data: data.personalInfo,
|
|
8
|
+
style: { order: order++ },
|
|
9
|
+
deletable: false,
|
|
10
|
+
});
|
|
11
|
+
if (data.personalInfo.summary) {
|
|
12
|
+
blocks.push({
|
|
13
|
+
id: 'block-summary',
|
|
14
|
+
type: 'summary',
|
|
15
|
+
data: { text: data.personalInfo.summary },
|
|
16
|
+
style: { order: order++ },
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
if (data.sections.experience?.length) {
|
|
20
|
+
blocks.push({
|
|
21
|
+
id: 'block-experience',
|
|
22
|
+
type: 'experience',
|
|
23
|
+
data: { items: data.sections.experience },
|
|
24
|
+
style: { order: order++ },
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
if (data.sections.education?.length) {
|
|
28
|
+
blocks.push({
|
|
29
|
+
id: 'block-education',
|
|
30
|
+
type: 'education',
|
|
31
|
+
data: { items: data.sections.education },
|
|
32
|
+
style: { order: order++ },
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
if (data.sections.skills?.length) {
|
|
36
|
+
blocks.push({
|
|
37
|
+
id: 'block-skills',
|
|
38
|
+
type: 'skills',
|
|
39
|
+
data: { items: data.sections.skills },
|
|
40
|
+
style: { order: order++ },
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
if (data.sections.projects?.length) {
|
|
44
|
+
blocks.push({
|
|
45
|
+
id: 'block-projects',
|
|
46
|
+
type: 'projects',
|
|
47
|
+
data: { items: data.sections.projects },
|
|
48
|
+
style: { order: order++ },
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
if (data.sections.certifications?.length) {
|
|
52
|
+
blocks.push({
|
|
53
|
+
id: 'block-certifications',
|
|
54
|
+
type: 'certifications',
|
|
55
|
+
data: { items: data.sections.certifications },
|
|
56
|
+
style: { order: order++ },
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
if (data.sections.languages?.length) {
|
|
60
|
+
blocks.push({
|
|
61
|
+
id: 'block-languages',
|
|
62
|
+
type: 'languages',
|
|
63
|
+
data: { items: data.sections.languages },
|
|
64
|
+
style: { order: order++ },
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
return blocks;
|
|
68
|
+
}
|
|
69
|
+
export function getDefaultColumns(templateSlug) {
|
|
70
|
+
if (templateSlug.includes('sidebar') ||
|
|
71
|
+
templateSlug.includes('europass-sidebar')) {
|
|
72
|
+
return 2;
|
|
73
|
+
}
|
|
74
|
+
return 1;
|
|
75
|
+
}
|
|
76
|
+
export function getDefaultStyles(_templateSlug) {
|
|
77
|
+
return {
|
|
78
|
+
fontFamily: 'Inter, sans-serif',
|
|
79
|
+
primaryColor: '#2276D2',
|
|
80
|
+
backgroundColor: '#ffffff',
|
|
81
|
+
textColor: '#111827',
|
|
82
|
+
};
|
|
83
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateSearchQuery.d.ts","sourceRoot":"","sources":["../../src/utils/generateSearchQuery.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,GAC9B,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,KAChE,MAMF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,44 +1,51 @@
|
|
|
1
|
-
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
"
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@recruitnepal/shared-packages",
|
|
3
|
+
"version": "1.7.0",
|
|
4
|
+
"description": "Shared UI components and hooks for Recruit Nepal projects",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"dev": "tsc --watch",
|
|
10
|
+
"prepublishOnly": "npm run build"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"react",
|
|
14
|
+
"nextjs",
|
|
15
|
+
"recruit-nepal",
|
|
16
|
+
"shared-components",
|
|
17
|
+
"cv-builder"
|
|
18
|
+
],
|
|
19
|
+
"author": "",
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"peerDependencies": {
|
|
22
|
+
"react": "^18.2.0",
|
|
23
|
+
"react-dom": "^18.2.0",
|
|
24
|
+
"@tanstack/react-query": "^5.50.0",
|
|
25
|
+
"zod": "^3.22.0",
|
|
26
|
+
"react-hook-form": "^7.49.0",
|
|
27
|
+
"@hookform/resolvers": "^3.3.0",
|
|
28
|
+
"zustand": "^4.5.0 || ^5.0.0",
|
|
29
|
+
"lucide-react": "^0.263.0",
|
|
30
|
+
"@radix-ui/react-popover": "^1.0.0",
|
|
31
|
+
"cmdk": "^1.0.0"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"axios": "^1.7.8"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/node": "^20.11.17",
|
|
38
|
+
"@types/react": "^18.2.55",
|
|
39
|
+
"@types/react-dom": "^18.2.19",
|
|
40
|
+
"typescript": "^5.3.3",
|
|
41
|
+
"zod": "^3.22.0",
|
|
42
|
+
"react-hook-form": "^7.49.0",
|
|
43
|
+
"@hookform/resolvers": "^3.3.0",
|
|
44
|
+
"zustand": "^4.5.0"
|
|
45
|
+
},
|
|
46
|
+
"files": [
|
|
47
|
+
"dist",
|
|
48
|
+
"README.md"
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
|