@pathfolio/types 0.3.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.
@@ -0,0 +1,272 @@
1
+ /**
2
+ * Resume Content Types
3
+ * Entry types, contacts, sections, and content-related definitions
4
+ */
5
+ /**
6
+ * Social Media Platform Types
7
+ */
8
+ export type SocialPlatform = 'linkedin' | 'github' | 'twitter' | 'instagram' | 'facebook' | 'youtube' | 'tiktok' | 'medium' | 'dev' | 'stackoverflow' | 'behance' | 'dribbble' | 'portfolio' | 'other';
9
+ /**
10
+ * Social Link
11
+ */
12
+ export interface SocialLink {
13
+ id: string;
14
+ platform: SocialPlatform;
15
+ text: string;
16
+ url?: string;
17
+ label?: string;
18
+ }
19
+ /**
20
+ * Contact Information
21
+ */
22
+ export interface ContactInfo {
23
+ fullName: string;
24
+ professionalTitle?: string;
25
+ email: string;
26
+ phone: string;
27
+ location: string;
28
+ linkedin?: string;
29
+ github?: string;
30
+ photo?: string;
31
+ photoCropSettings?: ImageCropSettings;
32
+ socialLinks: SocialLink[];
33
+ pronouns?: string;
34
+ disability?: string;
35
+ workPermit?: string;
36
+ }
37
+ /**
38
+ * Summary Section
39
+ */
40
+ export interface Summary {
41
+ id: string;
42
+ content: string;
43
+ }
44
+ /**
45
+ * Date display format options for entries
46
+ */
47
+ export type DateDisplayFormat = 'full' | 'month-numeric' | 'year-only';
48
+ /**
49
+ * Experience Entry
50
+ */
51
+ export interface ExperienceEntry {
52
+ id: string;
53
+ company: string;
54
+ position: string;
55
+ location: string;
56
+ startDate: string;
57
+ endDate: string | null;
58
+ description: string;
59
+ highlights: string[];
60
+ link?: string;
61
+ dateDisplayFormat?: DateDisplayFormat;
62
+ technologies: string[];
63
+ }
64
+ /**
65
+ * Skill Item with optional level
66
+ */
67
+ export interface SkillItem {
68
+ name: string;
69
+ level?: number;
70
+ }
71
+ /**
72
+ * Skill Entry
73
+ */
74
+ export interface SkillEntry {
75
+ id: string;
76
+ category: string;
77
+ skills: (string | SkillItem)[];
78
+ }
79
+ /**
80
+ * Project Entry
81
+ */
82
+ export interface ProjectEntry {
83
+ id: string;
84
+ name: string;
85
+ role?: string;
86
+ date: string;
87
+ description: string;
88
+ technologies: string[];
89
+ link?: string;
90
+ dateDisplayFormat?: DateDisplayFormat;
91
+ }
92
+ /**
93
+ * Language Proficiency Level
94
+ */
95
+ export type LanguageProficiency = 'native' | 'fluent' | 'advanced' | 'intermediate' | 'beginner';
96
+ /**
97
+ * Language Entry
98
+ */
99
+ export interface LanguageEntry {
100
+ id: string;
101
+ language: string;
102
+ proficiency: LanguageProficiency;
103
+ }
104
+ /**
105
+ * Interest Entry (simple list item)
106
+ */
107
+ export interface InterestEntry {
108
+ id: string;
109
+ interest: string;
110
+ }
111
+ /**
112
+ * Declaration (single text block)
113
+ */
114
+ export interface Declaration {
115
+ id: string;
116
+ content: string;
117
+ }
118
+ /**
119
+ * Certificate Entry
120
+ */
121
+ export interface CertificateEntry {
122
+ id: string;
123
+ name: string;
124
+ issuer: string;
125
+ date: string;
126
+ expiryDate?: string | null;
127
+ link?: string;
128
+ description?: string;
129
+ dateDisplayFormat?: DateDisplayFormat;
130
+ }
131
+ /**
132
+ * Education Entry
133
+ */
134
+ export interface EducationEntry {
135
+ id: string;
136
+ school: string;
137
+ degree: string;
138
+ startDate: string;
139
+ endDate: string | null;
140
+ location?: string;
141
+ gpa?: string;
142
+ description?: string;
143
+ link?: string;
144
+ dateDisplayFormat?: DateDisplayFormat;
145
+ }
146
+ /**
147
+ * Course Entry
148
+ */
149
+ export interface CourseEntry {
150
+ id: string;
151
+ name: string;
152
+ institution: string;
153
+ date: string;
154
+ description?: string;
155
+ link?: string;
156
+ dateDisplayFormat?: DateDisplayFormat;
157
+ }
158
+ /**
159
+ * Award Entry
160
+ */
161
+ export interface AwardEntry {
162
+ id: string;
163
+ title: string;
164
+ issuer: string;
165
+ date: string;
166
+ description?: string;
167
+ dateDisplayFormat?: DateDisplayFormat;
168
+ }
169
+ /**
170
+ * Organisation Entry (volunteer/organization work)
171
+ */
172
+ export interface OrganisationEntry {
173
+ id: string;
174
+ name: string;
175
+ role: string;
176
+ startDate: string;
177
+ endDate: string | null;
178
+ location?: string;
179
+ description?: string;
180
+ link?: string;
181
+ dateDisplayFormat?: DateDisplayFormat;
182
+ }
183
+ /**
184
+ * Publication Entry
185
+ */
186
+ export interface PublicationEntry {
187
+ id: string;
188
+ title: string;
189
+ publisher: string;
190
+ date: string;
191
+ authors?: string[];
192
+ description?: string;
193
+ link?: string;
194
+ dateDisplayFormat?: DateDisplayFormat;
195
+ }
196
+ /**
197
+ * Reference Entry
198
+ */
199
+ export interface ReferenceEntry {
200
+ id: string;
201
+ name: string;
202
+ position: string;
203
+ company: string;
204
+ email?: string;
205
+ phone?: string;
206
+ relationship?: string;
207
+ }
208
+ /**
209
+ * Custom Entry (for user-defined sections)
210
+ */
211
+ export interface CustomEntry {
212
+ id: string;
213
+ title: string;
214
+ titleLink?: string;
215
+ subtitle?: string;
216
+ startDate?: string;
217
+ endDate?: string | null;
218
+ location?: string;
219
+ description?: string;
220
+ dateDisplayFormat?: DateDisplayFormat;
221
+ }
222
+ /**
223
+ * Custom Section Definition
224
+ */
225
+ export interface CustomSectionDefinition {
226
+ id: string;
227
+ name: string;
228
+ icon: string;
229
+ entries: CustomEntry[];
230
+ }
231
+ /**
232
+ * Section Type Union
233
+ */
234
+ export type SectionType = 'summary' | 'experience' | 'skills' | 'projects' | 'languages' | 'interests' | 'declaration' | 'certificates' | 'education' | 'courses' | 'awards' | 'organisations' | 'publications' | 'references';
235
+ /**
236
+ * Section Visibility Settings
237
+ */
238
+ export interface SectionVisibility {
239
+ summary: boolean;
240
+ experience: boolean;
241
+ skills: boolean;
242
+ projects: boolean;
243
+ languages: boolean;
244
+ interests: boolean;
245
+ declaration: boolean;
246
+ certificates: boolean;
247
+ education: boolean;
248
+ courses: boolean;
249
+ awards: boolean;
250
+ organisations: boolean;
251
+ publications: boolean;
252
+ references: boolean;
253
+ }
254
+ /**
255
+ * Section Ordering (array of section types in display order)
256
+ */
257
+ export type SectionOrder = SectionType[];
258
+ /**
259
+ * Crop Shape (for image cropping modal)
260
+ */
261
+ export type CropShape = 'square' | 'rounded' | 'circle';
262
+ /**
263
+ * Non-destructive image crop settings
264
+ * Stores the crop parameters to apply visually without modifying the original image
265
+ */
266
+ export interface ImageCropSettings {
267
+ zoom: number;
268
+ panX: number;
269
+ panY: number;
270
+ shape: CropShape;
271
+ }
272
+ //# sourceMappingURL=content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/resume/content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Resume Content Types
3
+ * Entry types, contacts, sections, and content-related definitions
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/resume/content.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,229 @@
1
+ /**
2
+ * Resume Design Types
3
+ * Layout, templates, fonts, and visual styling definitions
4
+ */
5
+ import type { SectionType } from './content';
6
+ /**
7
+ * Template Type
8
+ */
9
+ export type TemplateType = 'single-column' | 'double-column' | 'double-column-sidebar-left' | 'double-column-sidebar-right';
10
+ /**
11
+ * Section Heading Style
12
+ */
13
+ export type HeadingStyle = 'classic' | 'simple' | 'underlined' | 'boxed' | 'pill' | 'bold-underline' | 'left-border' | 'shadowed' | 'gradient' | 'accent-underline' | 'dotted-underline' | 'double-line' | 'split-line' | 'highlight' | 'brackets' | 'ribbon';
14
+ /**
15
+ * Heading Size
16
+ */
17
+ export type HeadingSize = 'small' | 'medium' | 'large';
18
+ /**
19
+ * Date/Location Position
20
+ */
21
+ export type DateLocationPosition = 'right' | 'left' | 'below';
22
+ /**
23
+ * Description Position
24
+ */
25
+ export type DescriptionPosition = 'below' | 'right';
26
+ /**
27
+ * Bullet Point Style
28
+ */
29
+ export type BulletStyle = 'disc' | 'circle' | 'square' | 'dash' | 'arrow';
30
+ /**
31
+ * Entry Layout Preset Type
32
+ * Combines dateLocationPosition and descriptionPosition into intuitive presets
33
+ * to prevent conflicting combinations (e.g., both being 'right')
34
+ */
35
+ export type EntryLayoutPreset = 'classic' | 'compact' | 'side-by-side' | 'left-aligned' | 'timeline';
36
+ /**
37
+ * Entry Layout Preset Mapping Configuration
38
+ */
39
+ export interface EntryLayoutPresetMapping {
40
+ dateLocationPosition: DateLocationPosition;
41
+ descriptionPosition: DescriptionPosition;
42
+ label: string;
43
+ description: string;
44
+ }
45
+ /**
46
+ * Image Shape
47
+ */
48
+ export type ImageShape = 'square' | 'round' | 'rounded';
49
+ /**
50
+ * Header Layout Type
51
+ */
52
+ export type HeaderLayout = 'centered' | 'left' | 'right' | 'split';
53
+ /**
54
+ * Socials Layout Type
55
+ * Controls how social links are arranged in the header
56
+ * - 'row': Horizontal inline layout
57
+ * - 'column': Vertical stacked layout
58
+ * - 'grid': Multi-column grid layout
59
+ */
60
+ export type SocialsLayout = 'row' | 'column' | 'grid';
61
+ /**
62
+ * Socials Grid Settings
63
+ * Configuration for grid layout of social links
64
+ */
65
+ export interface SocialsGridSettings {
66
+ /** Number of columns in the grid (2 or 3) */
67
+ columns: 2 | 3;
68
+ /** Column assignments - maps column index (0-based) to array of social link IDs */
69
+ columnAssignments?: Record<number, string[]>;
70
+ }
71
+ /**
72
+ * Unified Header Layout Type
73
+ * Combines image position, header layout, and title position into intuitive presets
74
+ */
75
+ export type UnifiedHeaderLayout = 'centered' | 'left-portrait' | 'right-portrait' | 'left-stacked' | 'right-stacked' | 'split' | 'name-first-left' | 'name-first-centered' | 'name-first-right';
76
+ /**
77
+ * Unified Layout Mapping Configuration
78
+ */
79
+ export interface UnifiedLayoutMapping {
80
+ headerLayout: HeaderLayout;
81
+ imagePosition: ImagePosition;
82
+ titlePosition: ProfessionalTitlePosition;
83
+ }
84
+ /**
85
+ * Contact Field Type
86
+ * NOTE: linkedin and github were removed - they are now exclusively handled
87
+ * as SocialPlatform types in the socialLinks array
88
+ */
89
+ export type ContactField = 'email' | 'phone' | 'location' | 'pronouns' | 'workPermit' | 'disability';
90
+ /**
91
+ * Skills Display Mode (legacy - kept for migration)
92
+ */
93
+ export type SkillsDisplayMode = 'category-list' | 'simple-list';
94
+ /**
95
+ * Skills Layout Mode - Controls overall structure/arrangement
96
+ */
97
+ export type SkillsLayoutMode = 'category-list' | 'simple-list' | 'grid' | 'grouped-grid' | 'pills' | 'grouped-pills';
98
+ /**
99
+ * Skills Level Visualization - Controls how proficiency levels are shown
100
+ */
101
+ export type SkillsLevelVisualization = 'none' | 'bars' | 'dots' | 'stars';
102
+ /**
103
+ * Skills Pill Variant - Styling for pill/badge display
104
+ */
105
+ export type SkillsPillVariant = 'solid' | 'outline' | 'soft' | 'subtle';
106
+ /**
107
+ * Skills Pill Shape - Controls pill border radius
108
+ */
109
+ export type SkillsPillShape = 'rounded' | 'box';
110
+ /**
111
+ * Link Color Mode
112
+ */
113
+ export type LinkColorMode = 'primary' | 'custom' | 'text';
114
+ /**
115
+ * Link Underline Style
116
+ */
117
+ export type LinkUnderlineStyle = 'none' | 'solid' | 'dotted' | 'dashed' | 'hover';
118
+ /**
119
+ * Image Position
120
+ */
121
+ export type ImagePosition = 'above' | 'beside-left' | 'beside-right' | 'below' | 'middle';
122
+ /**
123
+ * Image Shadow Size
124
+ */
125
+ export type ImageShadow = 'none' | 'sm' | 'md' | 'lg';
126
+ /**
127
+ * Profession Title Size
128
+ */
129
+ export type ProfessionTitleSize = 'sm' | 'md' | 'lg' | 'xl';
130
+ /**
131
+ * Professional Title Position
132
+ */
133
+ export type ProfessionalTitlePosition = 'below-name' | 'above-contacts' | 'inline' | 'below-image';
134
+ /**
135
+ * Design Settings
136
+ * NOTE: Margins and spacing are now in LayoutSettings, not here.
137
+ * See layoutSettings.marginTop/Bottom/Left/Right and layoutSettings.sectionGap
138
+ */
139
+ export interface DesignSettings {
140
+ primaryColor: string;
141
+ accentColor: string;
142
+ headerBackgroundColor: string;
143
+ sidebarBackgroundColor: string;
144
+ }
145
+ /**
146
+ * Typography Preset - Curated font pairings
147
+ */
148
+ export interface TypographyPreset {
149
+ id: string;
150
+ name: string;
151
+ description: string;
152
+ fonts: {
153
+ nameFont: string;
154
+ headingFont: string;
155
+ bodyFont: string;
156
+ };
157
+ recommended?: Partial<FontSettings>;
158
+ }
159
+ /**
160
+ * Font Settings
161
+ */
162
+ export interface FontSettings {
163
+ nameFont: string;
164
+ headingFont: string;
165
+ bodyFont: string;
166
+ nameSize: number;
167
+ headingSize: number;
168
+ bodySize: number;
169
+ nameWeight: number;
170
+ headingWeight: number;
171
+ bodyWeight: number;
172
+ entryTitleSize: number;
173
+ entryTitleWeight: number;
174
+ positionSize: number;
175
+ positionWeight: number;
176
+ dateSize: number;
177
+ dateWeight: number;
178
+ lineHeight: number;
179
+ letterSpacing: number;
180
+ paragraphSpacing: number;
181
+ }
182
+ /**
183
+ * Typography Quick Mode Preset Types
184
+ */
185
+ export type TypographyPresetSize = 's' | 'm' | 'l';
186
+ export interface ScalePreset {
187
+ nameSize: number;
188
+ headingSize: number;
189
+ bodySize: number;
190
+ entryTitleSize: number;
191
+ positionSize: number;
192
+ dateSize: number;
193
+ }
194
+ export interface WeightPreset {
195
+ nameWeight: number;
196
+ headingWeight: number;
197
+ bodyWeight: number;
198
+ entryTitleWeight: number;
199
+ positionWeight: number;
200
+ dateWeight: number;
201
+ }
202
+ export interface SpacingPreset {
203
+ lineHeight: number;
204
+ letterSpacing: number;
205
+ paragraphSpacing: number;
206
+ }
207
+ /**
208
+ * Layout Settings
209
+ */
210
+ export interface LayoutSettings {
211
+ template: TemplateType;
212
+ columnGap: number;
213
+ sidebarWidth: number;
214
+ pageSize: 'A4' | 'US Letter';
215
+ pageOrientation: 'portrait' | 'landscape';
216
+ sectionColumnAssignment: Record<SectionType, 0 | 1>;
217
+ leftColumnWidth: number;
218
+ rightColumnWidth: number;
219
+ sectionPadding: number;
220
+ sectionGap: number;
221
+ subsectionGap: number;
222
+ marginTop: number;
223
+ marginBottom: number;
224
+ marginLeft: number;
225
+ marginRight: number;
226
+ titleSpacing: number;
227
+ headerToContentGap: number;
228
+ }
229
+ //# sourceMappingURL=design.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design.d.ts","sourceRoot":"","sources":["../../src/resume/design.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Resume Design Types
3
+ * Layout, templates, fonts, and visual styling definitions
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=design.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design.js","sourceRoot":"","sources":["../../src/resume/design.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Resume Types Module
3
+ * Main barrel export for all resume-related types
4
+ */
5
+ export * from './content';
6
+ export * from './design';
7
+ export * from './settings';
8
+ export * from './constants';
9
+ import type { ContactInfo, Summary, ExperienceEntry, SkillEntry, ProjectEntry, LanguageEntry, InterestEntry, Declaration, CertificateEntry, EducationEntry, CourseEntry, AwardEntry, OrganisationEntry, PublicationEntry, ReferenceEntry, CustomSectionDefinition, SectionOrder, SectionVisibility } from './content';
10
+ import type { TemplateType, DesignSettings, FontSettings, LayoutSettings } from './design';
11
+ import type { HeaderSettings, SectionHeadingSettings, EntryLayoutSettings, SkillsSettings, LinkSettings } from './settings';
12
+ /**
13
+ * Complete Resume Data Structure
14
+ */
15
+ export interface Resume {
16
+ id: string;
17
+ version: number;
18
+ lastModified: string;
19
+ contact: ContactInfo;
20
+ summary: Summary | null;
21
+ experience: ExperienceEntry[];
22
+ skills: SkillEntry[];
23
+ projects: ProjectEntry[];
24
+ languages: LanguageEntry[];
25
+ interests: InterestEntry[];
26
+ declaration: Declaration | null;
27
+ certificates: CertificateEntry[];
28
+ education: EducationEntry[];
29
+ courses: CourseEntry[];
30
+ awards: AwardEntry[];
31
+ organisations: OrganisationEntry[];
32
+ publications: PublicationEntry[];
33
+ references: ReferenceEntry[];
34
+ customSections: CustomSectionDefinition[];
35
+ customSectionOrder: string[];
36
+ customSectionColumnAssignment: Record<string, 0 | 1>;
37
+ unifiedColumnOrder: [string[], string[]];
38
+ template: TemplateType;
39
+ layoutSettings: LayoutSettings;
40
+ sectionOrder: SectionOrder;
41
+ sectionVisibility: SectionVisibility;
42
+ designSettings: DesignSettings;
43
+ fontSettings: FontSettings;
44
+ sectionHeadingSettings: SectionHeadingSettings;
45
+ entryLayoutSettings: EntryLayoutSettings;
46
+ headerSettings: HeaderSettings;
47
+ skillsSettings: SkillsSettings;
48
+ linkSettings: LinkSettings;
49
+ }
50
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resume/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,eAAe,EACf,UAAU,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,cAAc,EACf,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IAGrB,OAAO,EAAE,WAAW,CAAC;IAGrB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,EAAE,YAAY,EAAE,CAAC;IAGzB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,UAAU,EAAE,cAAc,EAAE,CAAC;IAG7B,cAAc,EAAE,uBAAuB,EAAE,CAAC;IAG1C,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAKrD,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAGzC,QAAQ,EAAE,YAAY,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;CAC5B"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Resume Types Module
3
+ * Main barrel export for all resume-related types
4
+ */
5
+ // Export all content types
6
+ export * from './content';
7
+ // Export all design types
8
+ export * from './design';
9
+ // Export all settings types
10
+ export * from './settings';
11
+ // Export all constants
12
+ export * from './constants';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resume/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2BAA2B;AAC3B,cAAc,WAAW,CAAC;AAE1B,0BAA0B;AAC1B,cAAc,UAAU,CAAC;AAEzB,4BAA4B;AAC5B,cAAc,YAAY,CAAC;AAE3B,uBAAuB;AACvB,cAAc,aAAa,CAAC"}