@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.
Files changed (85) hide show
  1. package/dist/components/common/NoData.d.ts +8 -0
  2. package/dist/components/common/NoData.d.ts.map +1 -0
  3. package/dist/components/common/NoData.js +4 -0
  4. package/dist/components/cv/TemplatePicker.d.ts +14 -0
  5. package/dist/components/cv/TemplatePicker.d.ts.map +1 -0
  6. package/dist/components/cv/TemplatePicker.js +161 -0
  7. package/dist/components/cv/TemplateRenderer.d.ts +20 -0
  8. package/dist/components/cv/TemplateRenderer.d.ts.map +1 -0
  9. package/dist/components/cv/TemplateRenderer.js +14 -0
  10. package/dist/components/ui/BulletListTextarea.d.ts +19 -0
  11. package/dist/components/ui/BulletListTextarea.d.ts.map +1 -0
  12. package/dist/components/ui/BulletListTextarea.js +60 -0
  13. package/dist/components/ui/DesignationSelect.d.ts +13 -0
  14. package/dist/components/ui/DesignationSelect.d.ts.map +1 -0
  15. package/dist/components/ui/DesignationSelect.js +78 -0
  16. package/dist/components/ui/IndustrySelect.d.ts +13 -0
  17. package/dist/components/ui/IndustrySelect.d.ts.map +1 -0
  18. package/dist/components/ui/IndustrySelect.js +78 -0
  19. package/dist/components/ui/MultiSelectOptions.d.ts +18 -0
  20. package/dist/components/ui/MultiSelectOptions.d.ts.map +1 -0
  21. package/dist/components/ui/MultiSelectOptions.js +85 -0
  22. package/dist/components/ui/RatingStars.d.ts +10 -0
  23. package/dist/components/ui/RatingStars.d.ts.map +1 -0
  24. package/dist/components/ui/RatingStars.js +10 -0
  25. package/dist/components/ui/command.d.ts +68 -0
  26. package/dist/components/ui/command.d.ts.map +1 -0
  27. package/dist/components/ui/command.js +24 -0
  28. package/dist/components/ui/popover.d.ts +7 -0
  29. package/dist/components/ui/popover.d.ts.map +1 -0
  30. package/dist/components/ui/popover.js +10 -0
  31. package/dist/hooks/useDebounce.d.ts +2 -0
  32. package/dist/hooks/useDebounce.d.ts.map +1 -0
  33. package/dist/hooks/useDebounce.js +9 -0
  34. package/dist/hooks/useDesignations.d.ts +51 -0
  35. package/dist/hooks/useDesignations.d.ts.map +1 -0
  36. package/dist/hooks/useDesignations.js +117 -0
  37. package/dist/hooks/useIndustries.d.ts +51 -0
  38. package/dist/hooks/useIndustries.d.ts.map +1 -0
  39. package/dist/hooks/useIndustries.js +118 -0
  40. package/dist/hooks/useSkills.d.ts +19 -0
  41. package/dist/hooks/useSkills.d.ts.map +1 -0
  42. package/dist/hooks/useSkills.js +39 -0
  43. package/dist/index.d.ts +34 -0
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +28 -0
  46. package/dist/stores/cvDrafts.store.d.ts +44 -0
  47. package/dist/stores/cvDrafts.store.d.ts.map +1 -0
  48. package/dist/stores/cvDrafts.store.js +86 -0
  49. package/dist/stores/cvLayout.store.d.ts +24 -0
  50. package/dist/stores/cvLayout.store.d.ts.map +1 -0
  51. package/dist/stores/cvLayout.store.js +116 -0
  52. package/dist/stores/cvPreview.store.d.ts +29 -0
  53. package/dist/stores/cvPreview.store.d.ts.map +1 -0
  54. package/dist/stores/cvPreview.store.js +80 -0
  55. package/dist/types/cv-blocks.types.d.ts +44 -0
  56. package/dist/types/cv-blocks.types.d.ts.map +1 -0
  57. package/dist/types/cv-blocks.types.js +1 -0
  58. package/dist/types/cv-draft.types.d.ts +32 -0
  59. package/dist/types/cv-draft.types.d.ts.map +1 -0
  60. package/dist/types/cv-draft.types.js +1 -0
  61. package/dist/types/template.types.d.ts +122 -0
  62. package/dist/types/template.types.d.ts.map +1 -0
  63. package/dist/types/template.types.js +1 -0
  64. package/dist/utils/cn.d.ts +2 -0
  65. package/dist/utils/cn.d.ts.map +1 -0
  66. package/dist/utils/cn.js +3 -0
  67. package/dist/utils/commonDropdownOptions.d.ts +6 -0
  68. package/dist/utils/commonDropdownOptions.d.ts.map +1 -0
  69. package/dist/utils/commonDropdownOptions.js +15 -0
  70. package/dist/utils/cv/pdf/printReset.d.ts +3 -0
  71. package/dist/utils/cv/pdf/printReset.d.ts.map +1 -0
  72. package/dist/utils/cv/pdf/printReset.js +41 -0
  73. package/dist/utils/cv/pdf/styles/base.d.ts +2 -0
  74. package/dist/utils/cv/pdf/styles/base.d.ts.map +1 -0
  75. package/dist/utils/cv/pdf/styles/base.js +44 -0
  76. package/dist/utils/cv/pdf/styles/preprocessCssClient.d.ts +3 -0
  77. package/dist/utils/cv/pdf/styles/preprocessCssClient.d.ts.map +1 -0
  78. package/dist/utils/cv/pdf/styles/preprocessCssClient.js +33 -0
  79. package/dist/utils/cv-block-converter.d.ts +11 -0
  80. package/dist/utils/cv-block-converter.d.ts.map +1 -0
  81. package/dist/utils/cv-block-converter.js +83 -0
  82. package/dist/utils/generateSearchQuery.d.ts +2 -0
  83. package/dist/utils/generateSearchQuery.d.ts.map +1 -0
  84. package/dist/utils/generateSearchQuery.js +5 -0
  85. 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,2 @@
1
+ export declare function cn(...classes: (string | undefined | false | null)[]): string;
2
+ //# sourceMappingURL=cn.d.ts.map
@@ -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"}
@@ -0,0 +1,3 @@
1
+ export function cn(...classes) {
2
+ return classes.filter(Boolean).join(' ');
3
+ }
@@ -0,0 +1,6 @@
1
+ export declare const monthsDropdown: {
2
+ value: number;
3
+ label: string;
4
+ }[];
5
+ export declare const yearsDropdown: string[];
6
+ //# sourceMappingURL=commonDropdownOptions.d.ts.map
@@ -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,3 @@
1
+ export declare function preprocessTemplateCssClient(template?: string, origin?: string): Promise<string>;
2
+ export declare function clearCssCacheClient(): void;
3
+ //# sourceMappingURL=preprocessCssClient.d.ts.map
@@ -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,2 @@
1
+ export declare const generateSearchQuery: (obj: Record<string, string | number | boolean | null | undefined>) => string;
2
+ //# sourceMappingURL=generateSearchQuery.d.ts.map
@@ -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"}
@@ -0,0 +1,5 @@
1
+ export const generateSearchQuery = (obj) => {
2
+ return new URLSearchParams(Object.entries(obj)
3
+ .filter(([, v]) => v !== null && v !== undefined && v !== '')
4
+ .map(([k, v]) => [k, String(v)])).toString();
5
+ };
package/package.json CHANGED
@@ -1,44 +1,51 @@
1
- {
2
- "name": "@recruitnepal/shared-packages",
3
- "version": "1.5.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
- ],
18
- "author": "",
19
- "license": "MIT",
20
- "peerDependencies": {
21
- "react": "^18.2.0",
22
- "react-dom": "^18.2.0",
23
- "@tanstack/react-query": "^5.50.0",
24
- "zod": "^3.22.0",
25
- "react-hook-form": "^7.49.0",
26
- "@hookform/resolvers": "^3.3.0"
27
- },
28
- "dependencies": {
29
- "axios": "^1.7.8"
30
- },
31
- "devDependencies": {
32
- "@types/node": "^20.11.17",
33
- "@types/react": "^18.2.55",
34
- "@types/react-dom": "^18.2.19",
35
- "typescript": "^5.3.3",
36
- "zod": "^3.22.0",
37
- "react-hook-form": "^7.49.0",
38
- "@hookform/resolvers": "^3.3.0"
39
- },
40
- "files": [
41
- "dist",
42
- "README.md"
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
+