@ginia/ui 0.1.1 → 0.1.3
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/domain/resume/resume-editor/resume-editor.cjs +13 -5
- package/dist/components/domain/resume/resume-editor/resume-editor.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/resume-editor.d.cts +1 -1
- package/dist/components/domain/resume/resume-editor/resume-editor.d.ts +1 -1
- package/dist/components/domain/resume/resume-editor/resume-editor.js +19 -6
- package/dist/components/domain/resume/resume-editor/resume-editor.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/academic-info.cjs +1 -1
- package/dist/components/domain/resume/resume-editor/sections/academic-info.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/academic-info.js +1 -1
- package/dist/components/domain/resume/resume-editor/sections/academic-info.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/activities.cjs +25 -11
- package/dist/components/domain/resume/resume-editor/sections/activities.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/activities.js +25 -11
- package/dist/components/domain/resume/resume-editor/sections/activities.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/certifications.cjs +27 -12
- package/dist/components/domain/resume/resume-editor/sections/certifications.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/certifications.js +27 -12
- package/dist/components/domain/resume/resume-editor/sections/certifications.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/education.cjs +25 -11
- package/dist/components/domain/resume/resume-editor/sections/education.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/education.js +25 -11
- package/dist/components/domain/resume/resume-editor/sections/education.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/experience.cjs +25 -11
- package/dist/components/domain/resume/resume-editor/sections/experience.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/experience.js +25 -11
- package/dist/components/domain/resume/resume-editor/sections/experience.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/personal-info.cjs +1 -1
- package/dist/components/domain/resume/resume-editor/sections/personal-info.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/personal-info.js +1 -1
- package/dist/components/domain/resume/resume-editor/sections/personal-info.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/preferences.cjs +2 -2
- package/dist/components/domain/resume/resume-editor/sections/preferences.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/preferences.js +2 -2
- package/dist/components/domain/resume/resume-editor/sections/preferences.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/requirements.cjs +19 -11
- package/dist/components/domain/resume/resume-editor/sections/requirements.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/requirements.js +29 -12
- package/dist/components/domain/resume/resume-editor/sections/requirements.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/skills.cjs +30 -10
- package/dist/components/domain/resume/resume-editor/sections/skills.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/skills.js +30 -10
- package/dist/components/domain/resume/resume-editor/sections/skills.js.map +1 -1
- package/dist/components/domain/resume/resume-preview/resume-preview.cjs +27 -11
- package/dist/components/domain/resume/resume-preview/resume-preview.cjs.map +1 -1
- package/dist/components/domain/resume/resume-preview/resume-preview.js +27 -11
- package/dist/components/domain/resume/resume-preview/resume-preview.js.map +1 -1
- package/dist/components/domain/resume/resume-preview/sections/contact-skills.cjs +31 -15
- package/dist/components/domain/resume/resume-preview/sections/contact-skills.cjs.map +1 -1
- package/dist/components/domain/resume/resume-preview/sections/contact-skills.js +31 -15
- package/dist/components/domain/resume/resume-preview/sections/contact-skills.js.map +1 -1
- package/dist/components/domain/resume/resume-preview/sections/experience-education.cjs +131 -73
- package/dist/components/domain/resume/resume-preview/sections/experience-education.cjs.map +1 -1
- package/dist/components/domain/resume/resume-preview/sections/experience-education.d.cts +1 -1
- package/dist/components/domain/resume/resume-preview/sections/experience-education.d.ts +1 -1
- package/dist/components/domain/resume/resume-preview/sections/experience-education.js +131 -73
- package/dist/components/domain/resume/resume-preview/sections/experience-education.js.map +1 -1
- package/dist/components/domain/resume/resume-preview/sections/footer-preview.cjs +2 -2
- package/dist/components/domain/resume/resume-preview/sections/footer-preview.cjs.map +1 -1
- package/dist/components/domain/resume/resume-preview/sections/footer-preview.js +2 -2
- package/dist/components/domain/resume/resume-preview/sections/footer-preview.js.map +1 -1
- package/dist/components/domain/resume/resume-preview/sections/header-preview.cjs +7 -7
- package/dist/components/domain/resume/resume-preview/sections/header-preview.cjs.map +1 -1
- package/dist/components/domain/resume/resume-preview/sections/header-preview.js +7 -7
- package/dist/components/domain/resume/resume-preview/sections/header-preview.js.map +1 -1
- package/dist/components/domain/resume/resume.cjs +46 -29
- package/dist/components/domain/resume/resume.cjs.map +1 -1
- package/dist/components/domain/resume/resume.js +46 -29
- package/dist/components/domain/resume/resume.js.map +1 -1
- package/dist/components/ui/accordion/accordion.cjs +1 -3
- package/dist/components/ui/accordion/accordion.cjs.map +1 -1
- package/dist/components/ui/accordion/accordion.js +1 -3
- package/dist/components/ui/accordion/accordion.js.map +1 -1
- package/dist/components/ui/alert/alert.cjs +12 -25
- package/dist/components/ui/alert/alert.cjs.map +1 -1
- package/dist/components/ui/alert/alert.js +12 -25
- package/dist/components/ui/alert/alert.js.map +1 -1
- package/dist/components/ui/alert-dialog/alert-dialog.cjs +12 -46
- package/dist/components/ui/alert-dialog/alert-dialog.cjs.map +1 -1
- package/dist/components/ui/alert-dialog/alert-dialog.js +12 -46
- package/dist/components/ui/alert-dialog/alert-dialog.js.map +1 -1
- package/dist/components/ui/autocomplete/autocomplete.cjs +12 -12
- package/dist/components/ui/autocomplete/autocomplete.cjs.map +1 -1
- package/dist/components/ui/autocomplete/autocomplete.js +12 -12
- package/dist/components/ui/autocomplete/autocomplete.js.map +1 -1
- package/dist/components/ui/avatar/avatar.cjs +1 -4
- package/dist/components/ui/avatar/avatar.cjs.map +1 -1
- package/dist/components/ui/avatar/avatar.js +1 -4
- package/dist/components/ui/avatar/avatar.js.map +1 -1
- package/dist/components/ui/badge/badge.cjs +1 -8
- package/dist/components/ui/badge/badge.cjs.map +1 -1
- package/dist/components/ui/badge/badge.js +1 -8
- package/dist/components/ui/badge/badge.js.map +1 -1
- package/dist/components/ui/breadcrumb/breadcrumb.cjs +6 -19
- package/dist/components/ui/breadcrumb/breadcrumb.cjs.map +1 -1
- package/dist/components/ui/breadcrumb/breadcrumb.js +6 -19
- package/dist/components/ui/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/components/ui/button/button.cjs.map +1 -1
- package/dist/components/ui/button/button.js.map +1 -1
- package/dist/components/ui/calendar/calendar.cjs +1 -6
- package/dist/components/ui/calendar/calendar.cjs.map +1 -1
- package/dist/components/ui/calendar/calendar.js +1 -6
- package/dist/components/ui/calendar/calendar.js.map +1 -1
- package/dist/components/ui/card/card.cjs +7 -17
- package/dist/components/ui/card/card.cjs.map +1 -1
- package/dist/components/ui/card/card.js +7 -17
- package/dist/components/ui/card/card.js.map +1 -1
- package/dist/components/ui/carousel/carousel.cjs +4 -11
- package/dist/components/ui/carousel/carousel.cjs.map +1 -1
- package/dist/components/ui/carousel/carousel.js +4 -11
- package/dist/components/ui/carousel/carousel.js.map +1 -1
- package/dist/components/ui/checkbox/checkbox.cjs +1 -7
- package/dist/components/ui/checkbox/checkbox.cjs.map +1 -1
- package/dist/components/ui/checkbox/checkbox.js +1 -7
- package/dist/components/ui/checkbox/checkbox.js.map +1 -1
- package/dist/components/ui/collapsible/collapsible.cjs.map +1 -1
- package/dist/components/ui/collapsible/collapsible.js.map +1 -1
- package/dist/components/ui/combobox/combobox.cjs +1 -3
- package/dist/components/ui/combobox/combobox.cjs.map +1 -1
- package/dist/components/ui/combobox/combobox.js +1 -3
- package/dist/components/ui/combobox/combobox.js.map +1 -1
- package/dist/components/ui/command/command.cjs +7 -24
- package/dist/components/ui/command/command.cjs.map +1 -1
- package/dist/components/ui/command/command.js +7 -24
- package/dist/components/ui/command/command.js.map +1 -1
- package/dist/components/ui/context-menu/context-menu.cjs +4 -18
- package/dist/components/ui/context-menu/context-menu.cjs.map +1 -1
- package/dist/components/ui/context-menu/context-menu.js +4 -18
- package/dist/components/ui/context-menu/context-menu.js.map +1 -1
- package/dist/components/ui/date-picker/date-picker.cjs +21 -57
- package/dist/components/ui/date-picker/date-picker.cjs.map +1 -1
- package/dist/components/ui/date-picker/date-picker.js +22 -62
- package/dist/components/ui/date-picker/date-picker.js.map +1 -1
- package/dist/components/ui/dialog/dialog.cjs +12 -29
- package/dist/components/ui/dialog/dialog.cjs.map +1 -1
- package/dist/components/ui/dialog/dialog.js +12 -29
- package/dist/components/ui/dialog/dialog.js.map +1 -1
- package/dist/components/ui/drawer/drawer.cjs +9 -23
- package/dist/components/ui/drawer/drawer.cjs.map +1 -1
- package/dist/components/ui/drawer/drawer.js +9 -23
- package/dist/components/ui/drawer/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu.cjs +3 -16
- package/dist/components/ui/dropdown-menu/dropdown-menu.cjs.map +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu.js +3 -16
- package/dist/components/ui/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/components/ui/form/form.cjs +7 -24
- package/dist/components/ui/form/form.cjs.map +1 -1
- package/dist/components/ui/form/form.js +7 -24
- package/dist/components/ui/form/form.js.map +1 -1
- package/dist/components/ui/hover-card/hover-card.cjs +2 -6
- package/dist/components/ui/hover-card/hover-card.cjs.map +1 -1
- package/dist/components/ui/hover-card/hover-card.js +2 -6
- package/dist/components/ui/hover-card/hover-card.js.map +1 -1
- package/dist/components/ui/icon/icon.cjs +1 -1
- package/dist/components/ui/icon/icon.cjs.map +1 -1
- package/dist/components/ui/icon/icon.js +1 -1
- package/dist/components/ui/icon/icon.js.map +1 -1
- package/dist/components/ui/input/input.cjs +1 -1
- package/dist/components/ui/input/input.cjs.map +1 -1
- package/dist/components/ui/input/input.js +1 -1
- package/dist/components/ui/input/input.js.map +1 -1
- package/dist/components/ui/input-field/input-field.cjs +1 -1
- package/dist/components/ui/input-field/input-field.cjs.map +1 -1
- package/dist/components/ui/input-field/input-field.js +1 -1
- package/dist/components/ui/input-field/input-field.js.map +1 -1
- package/dist/components/ui/input-otp/input-otp.cjs +5 -15
- package/dist/components/ui/input-otp/input-otp.cjs.map +1 -1
- package/dist/components/ui/input-otp/input-otp.js +5 -15
- package/dist/components/ui/input-otp/input-otp.js.map +1 -1
- package/dist/components/ui/label/label.cjs +2 -5
- package/dist/components/ui/label/label.cjs.map +1 -1
- package/dist/components/ui/label/label.js +2 -5
- package/dist/components/ui/label/label.js.map +1 -1
- package/dist/components/ui/loading-state/loading-state.cjs +3 -8
- package/dist/components/ui/loading-state/loading-state.cjs.map +1 -1
- package/dist/components/ui/loading-state/loading-state.d.cts +1 -1
- package/dist/components/ui/loading-state/loading-state.d.ts +1 -1
- package/dist/components/ui/loading-state/loading-state.js +3 -8
- package/dist/components/ui/loading-state/loading-state.js.map +1 -1
- package/dist/components/ui/menubar/menubar.cjs +5 -21
- package/dist/components/ui/menubar/menubar.cjs.map +1 -1
- package/dist/components/ui/menubar/menubar.js +5 -21
- package/dist/components/ui/menubar/menubar.js.map +1 -1
- package/dist/components/ui/month-year-picker/month-year-picker.cjs +5 -23
- package/dist/components/ui/month-year-picker/month-year-picker.cjs.map +1 -1
- package/dist/components/ui/month-year-picker/month-year-picker.js +6 -28
- package/dist/components/ui/month-year-picker/month-year-picker.js.map +1 -1
- package/dist/components/ui/multi-select/multi-select.cjs +12 -29
- package/dist/components/ui/multi-select/multi-select.cjs.map +1 -1
- package/dist/components/ui/multi-select/multi-select.js +12 -29
- package/dist/components/ui/multi-select/multi-select.js.map +1 -1
- package/dist/components/ui/navigation-menu/navigation-menu.cjs +7 -13
- package/dist/components/ui/navigation-menu/navigation-menu.cjs.map +1 -1
- package/dist/components/ui/navigation-menu/navigation-menu.js +7 -13
- package/dist/components/ui/navigation-menu/navigation-menu.js.map +1 -1
- package/dist/components/ui/pagination/pagination.cjs +4 -18
- package/dist/components/ui/pagination/pagination.cjs.map +1 -1
- package/dist/components/ui/pagination/pagination.js +4 -18
- package/dist/components/ui/pagination/pagination.js.map +1 -1
- package/dist/components/ui/popover/popover.cjs.map +1 -1
- package/dist/components/ui/popover/popover.js.map +1 -1
- package/dist/components/ui/progress/progress.cjs +2 -2
- package/dist/components/ui/progress/progress.cjs.map +1 -1
- package/dist/components/ui/progress/progress.js +2 -2
- package/dist/components/ui/progress/progress.js.map +1 -1
- package/dist/components/ui/radio-group/radio-group.cjs +1 -8
- package/dist/components/ui/radio-group/radio-group.cjs.map +1 -1
- package/dist/components/ui/radio-group/radio-group.js +1 -8
- package/dist/components/ui/radio-group/radio-group.js.map +1 -1
- package/dist/components/ui/resizable/resizable.cjs +3 -6
- package/dist/components/ui/resizable/resizable.cjs.map +1 -1
- package/dist/components/ui/resizable/resizable.js +4 -11
- package/dist/components/ui/resizable/resizable.js.map +1 -1
- package/dist/components/ui/rich-text-editor/rich-text-editor.cjs +25 -37
- package/dist/components/ui/rich-text-editor/rich-text-editor.cjs.map +1 -1
- package/dist/components/ui/rich-text-editor/rich-text-editor.js +25 -37
- package/dist/components/ui/rich-text-editor/rich-text-editor.js.map +1 -1
- package/dist/components/ui/scroll-area/scroll-area.cjs.map +1 -1
- package/dist/components/ui/scroll-area/scroll-area.js.map +1 -1
- package/dist/components/ui/section-loader/section-loader.cjs +4 -15
- package/dist/components/ui/section-loader/section-loader.cjs.map +1 -1
- package/dist/components/ui/section-loader/section-loader.js +4 -15
- package/dist/components/ui/section-loader/section-loader.js.map +1 -1
- package/dist/components/ui/select/select.cjs +11 -29
- package/dist/components/ui/select/select.cjs.map +1 -1
- package/dist/components/ui/select/select.js +11 -29
- package/dist/components/ui/select/select.js.map +1 -1
- package/dist/components/ui/separator/separator.cjs +14 -16
- package/dist/components/ui/separator/separator.cjs.map +1 -1
- package/dist/components/ui/separator/separator.js +14 -16
- package/dist/components/ui/separator/separator.js.map +1 -1
- package/dist/components/ui/sheet/sheet.cjs +10 -24
- package/dist/components/ui/sheet/sheet.cjs.map +1 -1
- package/dist/components/ui/sheet/sheet.js +10 -24
- package/dist/components/ui/sheet/sheet.js.map +1 -1
- package/dist/components/ui/skeleton/skeleton.cjs +2 -11
- package/dist/components/ui/skeleton/skeleton.cjs.map +1 -1
- package/dist/components/ui/skeleton/skeleton.js +2 -11
- package/dist/components/ui/skeleton/skeleton.js.map +1 -1
- package/dist/components/ui/slider/slider.cjs +1 -4
- package/dist/components/ui/slider/slider.cjs.map +1 -1
- package/dist/components/ui/slider/slider.js +1 -4
- package/dist/components/ui/slider/slider.js.map +1 -1
- package/dist/components/ui/sonner/sonner.cjs.map +1 -1
- package/dist/components/ui/sonner/sonner.js.map +1 -1
- package/dist/components/ui/spinner/spinner.cjs +1 -1
- package/dist/components/ui/spinner/spinner.cjs.map +1 -1
- package/dist/components/ui/spinner/spinner.js +1 -1
- package/dist/components/ui/spinner/spinner.js.map +1 -1
- package/dist/components/ui/switch/switch.cjs.map +1 -1
- package/dist/components/ui/switch/switch.js.map +1 -1
- package/dist/components/ui/table/table.cjs +6 -28
- package/dist/components/ui/table/table.cjs.map +1 -1
- package/dist/components/ui/table/table.js +6 -28
- package/dist/components/ui/table/table.js.map +1 -1
- package/dist/components/ui/tabs/tabs.cjs.map +1 -1
- package/dist/components/ui/tabs/tabs.js.map +1 -1
- package/dist/components/ui/textarea/textarea.cjs +1 -4
- package/dist/components/ui/textarea/textarea.cjs.map +1 -1
- package/dist/components/ui/textarea/textarea.js +1 -4
- package/dist/components/ui/textarea/textarea.js.map +1 -1
- package/dist/components/ui/toast/toast.cjs +3 -12
- package/dist/components/ui/toast/toast.cjs.map +1 -1
- package/dist/components/ui/toast/toast.js +3 -12
- package/dist/components/ui/toast/toast.js.map +1 -1
- package/dist/components/ui/toggle/toggle.cjs.map +1 -1
- package/dist/components/ui/toggle/toggle.js.map +1 -1
- package/dist/components/ui/toggle-group/toggle-group.cjs +1 -4
- package/dist/components/ui/toggle-group/toggle-group.cjs.map +1 -1
- package/dist/components/ui/toggle-group/toggle-group.js +1 -4
- package/dist/components/ui/toggle-group/toggle-group.js.map +1 -1
- package/dist/components/ui/tooltip/tooltip.cjs.map +1 -1
- package/dist/components/ui/tooltip/tooltip.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/certifications.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input, Label, Button, Checkbox } from \"../../../../ui\";\nimport { Plus, Trash2, Award } from \"lucide-react\";\n\ninterface CertificationsProps {\n
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/certifications.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input, Label, Button, Checkbox } from \"../../../../ui\";\nimport { Plus, Trash2, Award } from \"lucide-react\";\n\ninterface CertificationsProps {\n data: CandidateProfile;\n onChange: (partial: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n theme?: string;\n}\n\nexport function CertificationsSection({ data, onChange, hideFields = [] }: CertificationsProps) {\n const items = data.certifications || [];\n\n const handleUpdate = (index: number, field: string, value: any) => {\n const updated = [...items];\n updated[index] = { ...updated[index], [field]: value };\n onChange({ certifications: updated });\n };\n\n const handleAdd = () => {\n onChange({\n certifications: [\n ...items,\n { id: `temp-cert-${Date.now()}`, title: \"\", institution_name: \"\", date_awarded: \"\" },\n ],\n });\n };\n\n const handleRemove = (index: number) => {\n onChange({\n certifications: items.filter((_, i) => i !== index),\n });\n };\n\n return (\n <div className=\"space-y-6 pb-4 pt-2\">\n {items.map((item, index) => (\n <div key={item.id} className=\"space-y-4 rounded-lg border border-border p-4 shadow-md\">\n <div className=\"flex items-center justify-between\">\n <Award className=\"h-5 w-5 text-secondary\" />\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 px-2 text-muted-foreground hover:bg-destructive/10 hover:text-destructive\"\n onClick={() => handleRemove(index)}\n >\n <Trash2 className=\"h-3.5 w-3.5\" />\n </Button>\n </div>\n\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n {!hideFields.includes(\"certifications.title\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Título</Label>\n <Input\n value={item.title || \"\"}\n onChange={(e) => handleUpdate(index, \"title\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"certifications.institution_name\") && (\n <div className=\"space-y-2\">\n <Label>Institución</Label>\n <Input\n value={item.institution_name || \"\"}\n onChange={(e) => handleUpdate(index, \"institution_name\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"certifications.date_awarded\") && (\n <div className=\"space-y-2\">\n <Label>Fecha de obtención</Label>\n <Input\n type=\"date\"\n value={item.date_awarded || \"\"}\n onChange={(e) => handleUpdate(index, \"date_awarded\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"certifications.url\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>URL de credencial</Label>\n <Input\n type=\"url\"\n value={item.url || \"\"}\n onChange={(e) => handleUpdate(index, \"url\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"certifications.verified\") && (\n <div className=\"flex items-center gap-2 md:col-span-2\">\n <Checkbox\n id={`verif-${item.id}`}\n checked={item.verified || false}\n onCheckedChange={(c) => handleUpdate(index, \"verified\", !!c)}\n />\n <label\n htmlFor={`verif-${item.id}`}\n className=\"flex items-center gap-1 text-sm text-muted-foreground\"\n >\n Verificado\n </label>\n </div>\n )}\n </div>\n </div>\n ))}\n\n <Button\n variant=\"outline\"\n className=\"flex w-full items-center justify-center gap-2\"\n onClick={handleAdd}\n >\n <Plus className=\"h-4 w-4\" />\n Añadir certificación\n </Button>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -21,22 +21,22 @@ function CertificationsSection({ data, onChange, hideFields = [] }) {
|
|
|
21
21
|
certifications: items.filter((_, i) => i !== index)
|
|
22
22
|
});
|
|
23
23
|
};
|
|
24
|
-
return /* @__PURE__ */ jsxs("div", { className: "space-y-6 pt-2
|
|
25
|
-
items.map((item, index) => /* @__PURE__ */ jsxs("div", { className: "
|
|
24
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-6 pb-4 pt-2", children: [
|
|
25
|
+
items.map((item, index) => /* @__PURE__ */ jsxs("div", { className: "space-y-4 rounded-lg border border-border p-4 shadow-md", children: [
|
|
26
26
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
27
|
-
/* @__PURE__ */ jsx(Award, { className: "
|
|
27
|
+
/* @__PURE__ */ jsx(Award, { className: "h-5 w-5 text-secondary" }),
|
|
28
28
|
/* @__PURE__ */ jsx(
|
|
29
29
|
Button,
|
|
30
30
|
{
|
|
31
31
|
variant: "ghost",
|
|
32
32
|
size: "sm",
|
|
33
|
-
className: "h-7 px-2 text-muted-foreground hover:
|
|
33
|
+
className: "h-7 px-2 text-muted-foreground hover:bg-destructive/10 hover:text-destructive",
|
|
34
34
|
onClick: () => handleRemove(index),
|
|
35
|
-
children: /* @__PURE__ */ jsx(Trash2, { className: "
|
|
35
|
+
children: /* @__PURE__ */ jsx(Trash2, { className: "h-3.5 w-3.5" })
|
|
36
36
|
}
|
|
37
37
|
)
|
|
38
38
|
] }),
|
|
39
|
-
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2
|
|
39
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [
|
|
40
40
|
!hideFields.includes("certifications.title") && /* @__PURE__ */ jsxs("div", { className: "space-y-2 md:col-span-2", children: [
|
|
41
41
|
/* @__PURE__ */ jsx(Label, { children: "T\xEDtulo" }),
|
|
42
42
|
/* @__PURE__ */ jsx(
|
|
@@ -79,7 +79,7 @@ function CertificationsSection({ data, onChange, hideFields = [] }) {
|
|
|
79
79
|
}
|
|
80
80
|
)
|
|
81
81
|
] }),
|
|
82
|
-
!hideFields.includes("certifications.verified") && /* @__PURE__ */ jsxs("div", { className: "
|
|
82
|
+
!hideFields.includes("certifications.verified") && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 md:col-span-2", children: [
|
|
83
83
|
/* @__PURE__ */ jsx(
|
|
84
84
|
Checkbox,
|
|
85
85
|
{
|
|
@@ -88,14 +88,29 @@ function CertificationsSection({ data, onChange, hideFields = [] }) {
|
|
|
88
88
|
onCheckedChange: (c) => handleUpdate(index, "verified", !!c)
|
|
89
89
|
}
|
|
90
90
|
),
|
|
91
|
-
/* @__PURE__ */ jsx(
|
|
91
|
+
/* @__PURE__ */ jsx(
|
|
92
|
+
"label",
|
|
93
|
+
{
|
|
94
|
+
htmlFor: `verif-${item.id}`,
|
|
95
|
+
className: "flex items-center gap-1 text-sm text-muted-foreground",
|
|
96
|
+
children: "Verificado"
|
|
97
|
+
}
|
|
98
|
+
)
|
|
92
99
|
] })
|
|
93
100
|
] })
|
|
94
101
|
] }, item.id)),
|
|
95
|
-
/* @__PURE__ */ jsxs(
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
102
|
+
/* @__PURE__ */ jsxs(
|
|
103
|
+
Button,
|
|
104
|
+
{
|
|
105
|
+
variant: "outline",
|
|
106
|
+
className: "flex w-full items-center justify-center gap-2",
|
|
107
|
+
onClick: handleAdd,
|
|
108
|
+
children: [
|
|
109
|
+
/* @__PURE__ */ jsx(Plus, { className: "h-4 w-4" }),
|
|
110
|
+
"A\xF1adir certificaci\xF3n"
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
)
|
|
99
114
|
] });
|
|
100
115
|
}
|
|
101
116
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/certifications.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input, Label, Button, Checkbox } from \"../../../../ui\";\nimport { Plus, Trash2, Award } from \"lucide-react\";\n\ninterface CertificationsProps {\n
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/certifications.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input, Label, Button, Checkbox } from \"../../../../ui\";\nimport { Plus, Trash2, Award } from \"lucide-react\";\n\ninterface CertificationsProps {\n data: CandidateProfile;\n onChange: (partial: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n theme?: string;\n}\n\nexport function CertificationsSection({ data, onChange, hideFields = [] }: CertificationsProps) {\n const items = data.certifications || [];\n\n const handleUpdate = (index: number, field: string, value: any) => {\n const updated = [...items];\n updated[index] = { ...updated[index], [field]: value };\n onChange({ certifications: updated });\n };\n\n const handleAdd = () => {\n onChange({\n certifications: [\n ...items,\n { id: `temp-cert-${Date.now()}`, title: \"\", institution_name: \"\", date_awarded: \"\" },\n ],\n });\n };\n\n const handleRemove = (index: number) => {\n onChange({\n certifications: items.filter((_, i) => i !== index),\n });\n };\n\n return (\n <div className=\"space-y-6 pb-4 pt-2\">\n {items.map((item, index) => (\n <div key={item.id} className=\"space-y-4 rounded-lg border border-border p-4 shadow-md\">\n <div className=\"flex items-center justify-between\">\n <Award className=\"h-5 w-5 text-secondary\" />\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 px-2 text-muted-foreground hover:bg-destructive/10 hover:text-destructive\"\n onClick={() => handleRemove(index)}\n >\n <Trash2 className=\"h-3.5 w-3.5\" />\n </Button>\n </div>\n\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n {!hideFields.includes(\"certifications.title\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Título</Label>\n <Input\n value={item.title || \"\"}\n onChange={(e) => handleUpdate(index, \"title\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"certifications.institution_name\") && (\n <div className=\"space-y-2\">\n <Label>Institución</Label>\n <Input\n value={item.institution_name || \"\"}\n onChange={(e) => handleUpdate(index, \"institution_name\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"certifications.date_awarded\") && (\n <div className=\"space-y-2\">\n <Label>Fecha de obtención</Label>\n <Input\n type=\"date\"\n value={item.date_awarded || \"\"}\n onChange={(e) => handleUpdate(index, \"date_awarded\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"certifications.url\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>URL de credencial</Label>\n <Input\n type=\"url\"\n value={item.url || \"\"}\n onChange={(e) => handleUpdate(index, \"url\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"certifications.verified\") && (\n <div className=\"flex items-center gap-2 md:col-span-2\">\n <Checkbox\n id={`verif-${item.id}`}\n checked={item.verified || false}\n onCheckedChange={(c) => handleUpdate(index, \"verified\", !!c)}\n />\n <label\n htmlFor={`verif-${item.id}`}\n className=\"flex items-center gap-1 text-sm text-muted-foreground\"\n >\n Verificado\n </label>\n </div>\n )}\n </div>\n </div>\n ))}\n\n <Button\n variant=\"outline\"\n className=\"flex w-full items-center justify-center gap-2\"\n onClick={handleAdd}\n >\n <Plus className=\"h-4 w-4\" />\n Añadir certificación\n </Button>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -35,7 +35,13 @@ function EducationSection({ data, onChange, hideFields = [] }) {
|
|
|
35
35
|
onChange({
|
|
36
36
|
education: [
|
|
37
37
|
...items,
|
|
38
|
-
{
|
|
38
|
+
{
|
|
39
|
+
id: `temp-edu-${Date.now()}`,
|
|
40
|
+
title: "",
|
|
41
|
+
type: "education",
|
|
42
|
+
institution_name: "",
|
|
43
|
+
start_date: ""
|
|
44
|
+
}
|
|
39
45
|
]
|
|
40
46
|
});
|
|
41
47
|
};
|
|
@@ -44,22 +50,22 @@ function EducationSection({ data, onChange, hideFields = [] }) {
|
|
|
44
50
|
education: items.filter((_, i) => i !== index)
|
|
45
51
|
});
|
|
46
52
|
};
|
|
47
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-6 pt-2
|
|
48
|
-
items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "
|
|
53
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-6 pb-4 pt-2", children: [
|
|
54
|
+
items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-4 rounded-lg border border-border p-4 shadow-md", children: [
|
|
49
55
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between", children: [
|
|
50
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.GraduationCap, { className: "
|
|
56
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.GraduationCap, { className: "h-5 w-5 text-secondary" }),
|
|
51
57
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
52
58
|
import_ui.Button,
|
|
53
59
|
{
|
|
54
60
|
variant: "ghost",
|
|
55
61
|
size: "sm",
|
|
56
|
-
className: "h-7 px-2 text-muted-foreground hover:
|
|
62
|
+
className: "h-7 px-2 text-muted-foreground hover:bg-destructive/10 hover:text-destructive",
|
|
57
63
|
onClick: () => handleRemove(index),
|
|
58
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Trash2, { className: "
|
|
64
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Trash2, { className: "h-3.5 w-3.5" })
|
|
59
65
|
}
|
|
60
66
|
)
|
|
61
67
|
] }),
|
|
62
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "grid grid-cols-1 md:grid-cols-2
|
|
68
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [
|
|
63
69
|
!hideFields.includes("education.institution_name") && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-2 md:col-span-2", children: [
|
|
64
70
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ui.Label, { children: "Instituci\xF3n" }),
|
|
65
71
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -114,10 +120,18 @@ function EducationSection({ data, onChange, hideFields = [] }) {
|
|
|
114
120
|
] })
|
|
115
121
|
] })
|
|
116
122
|
] }, item.id)),
|
|
117
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
123
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
124
|
+
import_ui.Button,
|
|
125
|
+
{
|
|
126
|
+
variant: "outline",
|
|
127
|
+
className: "flex w-full items-center justify-center gap-2",
|
|
128
|
+
onClick: handleAdd,
|
|
129
|
+
children: [
|
|
130
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Plus, { className: "h-4 w-4" }),
|
|
131
|
+
"A\xF1adir educaci\xF3n"
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
)
|
|
121
135
|
] });
|
|
122
136
|
}
|
|
123
137
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/education.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input, Label, Textarea, Button } from \"../../../../ui\";\nimport { Plus, Trash2, GraduationCap } from \"lucide-react\";\n\ninterface EducationProps {\n
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/education.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input, Label, Textarea, Button } from \"../../../../ui\";\nimport { Plus, Trash2, GraduationCap } from \"lucide-react\";\n\ninterface EducationProps {\n data: CandidateProfile;\n onChange: (data: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n}\n\nexport function EducationSection({ data, onChange, hideFields = [] }: EducationProps) {\n const items = data.education || [];\n\n const handleUpdate = (index: number, field: string, value: string) => {\n const updated = [...items];\n updated[index] = { ...updated[index], [field]: value };\n onChange({ education: updated });\n };\n\n const handleAdd = () => {\n onChange({\n education: [\n ...items,\n {\n id: `temp-edu-${Date.now()}`,\n title: \"\",\n type: \"education\",\n institution_name: \"\",\n start_date: \"\",\n },\n ],\n });\n };\n\n const handleRemove = (index: number) => {\n onChange({\n education: items.filter((_, i) => i !== index),\n });\n };\n\n return (\n <div className=\"space-y-6 pb-4 pt-2\">\n {items.map((item, index) => (\n <div key={item.id} className=\"space-y-4 rounded-lg border border-border p-4 shadow-md\">\n <div className=\"flex items-center justify-between\">\n <GraduationCap className=\"h-5 w-5 text-secondary\" />\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 px-2 text-muted-foreground hover:bg-destructive/10 hover:text-destructive\"\n onClick={() => handleRemove(index)}\n >\n <Trash2 className=\"h-3.5 w-3.5\" />\n </Button>\n </div>\n\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n {!hideFields.includes(\"education.institution_name\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Institución</Label>\n <Input\n value={item.institution_name || \"\"}\n onChange={(e) => handleUpdate(index, \"institution_name\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"education.title\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Título</Label>\n <Input\n value={item.title || \"\"}\n onChange={(e) => handleUpdate(index, \"title\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"education.start_date\") && (\n <div className=\"space-y-2\">\n <Label>Fecha de inicio</Label>\n <Input\n type=\"date\"\n value={item.start_date || \"\"}\n onChange={(e) => handleUpdate(index, \"start_date\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"education.end_date\") && (\n <div className=\"space-y-2\">\n <Label>Fecha de finalización</Label>\n <Input\n type=\"date\"\n value={item.end_date || \"\"}\n onChange={(e) => handleUpdate(index, \"end_date\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"education.description\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Descripción</Label>\n <Textarea\n value={item.description || \"\"}\n onChange={(e) => handleUpdate(index, \"description\", e.target.value)}\n />\n </div>\n )}\n </div>\n </div>\n ))}\n\n <Button\n variant=\"outline\"\n className=\"flex w-full items-center justify-center gap-2\"\n onClick={handleAdd}\n >\n <Plus className=\"h-4 w-4\" />\n Añadir educación\n </Button>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -12,7 +12,13 @@ function EducationSection({ data, onChange, hideFields = [] }) {
|
|
|
12
12
|
onChange({
|
|
13
13
|
education: [
|
|
14
14
|
...items,
|
|
15
|
-
{
|
|
15
|
+
{
|
|
16
|
+
id: `temp-edu-${Date.now()}`,
|
|
17
|
+
title: "",
|
|
18
|
+
type: "education",
|
|
19
|
+
institution_name: "",
|
|
20
|
+
start_date: ""
|
|
21
|
+
}
|
|
16
22
|
]
|
|
17
23
|
});
|
|
18
24
|
};
|
|
@@ -21,22 +27,22 @@ function EducationSection({ data, onChange, hideFields = [] }) {
|
|
|
21
27
|
education: items.filter((_, i) => i !== index)
|
|
22
28
|
});
|
|
23
29
|
};
|
|
24
|
-
return /* @__PURE__ */ jsxs("div", { className: "space-y-6 pt-2
|
|
25
|
-
items.map((item, index) => /* @__PURE__ */ jsxs("div", { className: "
|
|
30
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-6 pb-4 pt-2", children: [
|
|
31
|
+
items.map((item, index) => /* @__PURE__ */ jsxs("div", { className: "space-y-4 rounded-lg border border-border p-4 shadow-md", children: [
|
|
26
32
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
27
|
-
/* @__PURE__ */ jsx(GraduationCap, { className: "
|
|
33
|
+
/* @__PURE__ */ jsx(GraduationCap, { className: "h-5 w-5 text-secondary" }),
|
|
28
34
|
/* @__PURE__ */ jsx(
|
|
29
35
|
Button,
|
|
30
36
|
{
|
|
31
37
|
variant: "ghost",
|
|
32
38
|
size: "sm",
|
|
33
|
-
className: "h-7 px-2 text-muted-foreground hover:
|
|
39
|
+
className: "h-7 px-2 text-muted-foreground hover:bg-destructive/10 hover:text-destructive",
|
|
34
40
|
onClick: () => handleRemove(index),
|
|
35
|
-
children: /* @__PURE__ */ jsx(Trash2, { className: "
|
|
41
|
+
children: /* @__PURE__ */ jsx(Trash2, { className: "h-3.5 w-3.5" })
|
|
36
42
|
}
|
|
37
43
|
)
|
|
38
44
|
] }),
|
|
39
|
-
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2
|
|
45
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [
|
|
40
46
|
!hideFields.includes("education.institution_name") && /* @__PURE__ */ jsxs("div", { className: "space-y-2 md:col-span-2", children: [
|
|
41
47
|
/* @__PURE__ */ jsx(Label, { children: "Instituci\xF3n" }),
|
|
42
48
|
/* @__PURE__ */ jsx(
|
|
@@ -91,10 +97,18 @@ function EducationSection({ data, onChange, hideFields = [] }) {
|
|
|
91
97
|
] })
|
|
92
98
|
] })
|
|
93
99
|
] }, item.id)),
|
|
94
|
-
/* @__PURE__ */ jsxs(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
100
|
+
/* @__PURE__ */ jsxs(
|
|
101
|
+
Button,
|
|
102
|
+
{
|
|
103
|
+
variant: "outline",
|
|
104
|
+
className: "flex w-full items-center justify-center gap-2",
|
|
105
|
+
onClick: handleAdd,
|
|
106
|
+
children: [
|
|
107
|
+
/* @__PURE__ */ jsx(Plus, { className: "h-4 w-4" }),
|
|
108
|
+
"A\xF1adir educaci\xF3n"
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
)
|
|
98
112
|
] });
|
|
99
113
|
}
|
|
100
114
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/education.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input, Label, Textarea, Button } from \"../../../../ui\";\nimport { Plus, Trash2, GraduationCap } from \"lucide-react\";\n\ninterface EducationProps {\n
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/education.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input, Label, Textarea, Button } from \"../../../../ui\";\nimport { Plus, Trash2, GraduationCap } from \"lucide-react\";\n\ninterface EducationProps {\n data: CandidateProfile;\n onChange: (data: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n}\n\nexport function EducationSection({ data, onChange, hideFields = [] }: EducationProps) {\n const items = data.education || [];\n\n const handleUpdate = (index: number, field: string, value: string) => {\n const updated = [...items];\n updated[index] = { ...updated[index], [field]: value };\n onChange({ education: updated });\n };\n\n const handleAdd = () => {\n onChange({\n education: [\n ...items,\n {\n id: `temp-edu-${Date.now()}`,\n title: \"\",\n type: \"education\",\n institution_name: \"\",\n start_date: \"\",\n },\n ],\n });\n };\n\n const handleRemove = (index: number) => {\n onChange({\n education: items.filter((_, i) => i !== index),\n });\n };\n\n return (\n <div className=\"space-y-6 pb-4 pt-2\">\n {items.map((item, index) => (\n <div key={item.id} className=\"space-y-4 rounded-lg border border-border p-4 shadow-md\">\n <div className=\"flex items-center justify-between\">\n <GraduationCap className=\"h-5 w-5 text-secondary\" />\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 px-2 text-muted-foreground hover:bg-destructive/10 hover:text-destructive\"\n onClick={() => handleRemove(index)}\n >\n <Trash2 className=\"h-3.5 w-3.5\" />\n </Button>\n </div>\n\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n {!hideFields.includes(\"education.institution_name\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Institución</Label>\n <Input\n value={item.institution_name || \"\"}\n onChange={(e) => handleUpdate(index, \"institution_name\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"education.title\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Título</Label>\n <Input\n value={item.title || \"\"}\n onChange={(e) => handleUpdate(index, \"title\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"education.start_date\") && (\n <div className=\"space-y-2\">\n <Label>Fecha de inicio</Label>\n <Input\n type=\"date\"\n value={item.start_date || \"\"}\n onChange={(e) => handleUpdate(index, \"start_date\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"education.end_date\") && (\n <div className=\"space-y-2\">\n <Label>Fecha de finalización</Label>\n <Input\n type=\"date\"\n value={item.end_date || \"\"}\n onChange={(e) => handleUpdate(index, \"end_date\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"education.description\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Descripción</Label>\n <Textarea\n value={item.description || \"\"}\n onChange={(e) => handleUpdate(index, \"description\", e.target.value)}\n />\n </div>\n )}\n </div>\n </div>\n ))}\n\n <Button\n variant=\"outline\"\n className=\"flex w-full items-center justify-center gap-2\"\n onClick={handleAdd}\n >\n <Plus className=\"h-4 w-4\" />\n Añadir educación\n </Button>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -35,7 +35,13 @@ function ExperienceSection({ data, onChange, hideFields = [] }) {
|
|
|
35
35
|
onChange({
|
|
36
36
|
work_experience: [
|
|
37
37
|
...items,
|
|
38
|
-
{
|
|
38
|
+
{
|
|
39
|
+
id: `temp-exp-${Date.now()}`,
|
|
40
|
+
title: "",
|
|
41
|
+
type: "employment",
|
|
42
|
+
institution_name: "",
|
|
43
|
+
start_date: ""
|
|
44
|
+
}
|
|
39
45
|
]
|
|
40
46
|
});
|
|
41
47
|
};
|
|
@@ -44,22 +50,22 @@ function ExperienceSection({ data, onChange, hideFields = [] }) {
|
|
|
44
50
|
work_experience: items.filter((_, i) => i !== index)
|
|
45
51
|
});
|
|
46
52
|
};
|
|
47
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-6 pt-2
|
|
48
|
-
items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "
|
|
53
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-6 pb-4 pt-2", children: [
|
|
54
|
+
items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-4 rounded-lg border border-border p-4 shadow-md", children: [
|
|
49
55
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between", children: [
|
|
50
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Briefcase, { className: "
|
|
56
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Briefcase, { className: "h-5 w-5 text-secondary" }),
|
|
51
57
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
52
58
|
import_ui.Button,
|
|
53
59
|
{
|
|
54
60
|
variant: "ghost",
|
|
55
61
|
size: "sm",
|
|
56
|
-
className: "h-7 px-2 text-muted-foreground hover:
|
|
62
|
+
className: "h-7 px-2 text-muted-foreground hover:bg-destructive/10 hover:text-destructive",
|
|
57
63
|
onClick: () => handleRemove(index),
|
|
58
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Trash2, { className: "
|
|
64
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Trash2, { className: "h-3.5 w-3.5" })
|
|
59
65
|
}
|
|
60
66
|
)
|
|
61
67
|
] }),
|
|
62
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "grid grid-cols-1 md:grid-cols-2
|
|
68
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [
|
|
63
69
|
!hideFields.includes("experience.title") && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-2 md:col-span-2", children: [
|
|
64
70
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ui.Label, { children: "Cargo" }),
|
|
65
71
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -114,10 +120,18 @@ function ExperienceSection({ data, onChange, hideFields = [] }) {
|
|
|
114
120
|
] })
|
|
115
121
|
] })
|
|
116
122
|
] }, item.id)),
|
|
117
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
123
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
124
|
+
import_ui.Button,
|
|
125
|
+
{
|
|
126
|
+
variant: "outline",
|
|
127
|
+
className: "flex w-full items-center justify-center gap-2",
|
|
128
|
+
onClick: handleAdd,
|
|
129
|
+
children: [
|
|
130
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Plus, { className: "h-4 w-4" }),
|
|
131
|
+
"A\xF1adir experiencia"
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
)
|
|
121
135
|
] });
|
|
122
136
|
}
|
|
123
137
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/experience.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input, Label, Textarea, Button } from \"../../../../ui\";\nimport { Plus, Trash2, Briefcase } from \"lucide-react\";\n\ninterface ExperienceProps {\n
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/experience.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input, Label, Textarea, Button } from \"../../../../ui\";\nimport { Plus, Trash2, Briefcase } from \"lucide-react\";\n\ninterface ExperienceProps {\n data: CandidateProfile;\n onChange: (partial: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n}\n\nexport function ExperienceSection({ data, onChange, hideFields = [] }: ExperienceProps) {\n const items = data.work_experience || [];\n\n const handleUpdate = (index: number, field: string, value: string) => {\n const updated = [...items];\n updated[index] = { ...updated[index], [field]: value };\n onChange({ work_experience: updated });\n };\n\n const handleAdd = () => {\n onChange({\n work_experience: [\n ...items,\n {\n id: `temp-exp-${Date.now()}`,\n title: \"\",\n type: \"employment\",\n institution_name: \"\",\n start_date: \"\",\n },\n ],\n });\n };\n\n const handleRemove = (index: number) => {\n onChange({\n work_experience: items.filter((_, i) => i !== index),\n });\n };\n\n return (\n <div className=\"space-y-6 pb-4 pt-2\">\n {items.map((item, index) => (\n <div key={item.id} className=\"space-y-4 rounded-lg border border-border p-4 shadow-md\">\n <div className=\"flex items-center justify-between\">\n <Briefcase className=\"h-5 w-5 text-secondary\" />\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 px-2 text-muted-foreground hover:bg-destructive/10 hover:text-destructive\"\n onClick={() => handleRemove(index)}\n >\n <Trash2 className=\"h-3.5 w-3.5\" />\n </Button>\n </div>\n\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n {!hideFields.includes(\"experience.title\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Cargo</Label>\n <Input\n value={item.title || \"\"}\n onChange={(e) => handleUpdate(index, \"title\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"experience.institution_name\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Empresa</Label>\n <Input\n value={item.institution_name || \"\"}\n onChange={(e) => handleUpdate(index, \"institution_name\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"experience.start_date\") && (\n <div className=\"space-y-2\">\n <Label>Fecha de inicio</Label>\n <Input\n type=\"date\"\n value={item.start_date || \"\"}\n onChange={(e) => handleUpdate(index, \"start_date\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"experience.end_date\") && (\n <div className=\"space-y-2\">\n <Label>Fecha de finalización</Label>\n <Input\n type=\"date\"\n value={item.end_date || \"\"}\n onChange={(e) => handleUpdate(index, \"end_date\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"experience.description\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Descripción</Label>\n <Textarea\n value={item.description || \"\"}\n onChange={(e) => handleUpdate(index, \"description\", e.target.value)}\n />\n </div>\n )}\n </div>\n </div>\n ))}\n\n <Button\n variant=\"outline\"\n className=\"flex w-full items-center justify-center gap-2\"\n onClick={handleAdd}\n >\n <Plus className=\"h-4 w-4\" />\n Añadir experiencia\n </Button>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -12,7 +12,13 @@ function ExperienceSection({ data, onChange, hideFields = [] }) {
|
|
|
12
12
|
onChange({
|
|
13
13
|
work_experience: [
|
|
14
14
|
...items,
|
|
15
|
-
{
|
|
15
|
+
{
|
|
16
|
+
id: `temp-exp-${Date.now()}`,
|
|
17
|
+
title: "",
|
|
18
|
+
type: "employment",
|
|
19
|
+
institution_name: "",
|
|
20
|
+
start_date: ""
|
|
21
|
+
}
|
|
16
22
|
]
|
|
17
23
|
});
|
|
18
24
|
};
|
|
@@ -21,22 +27,22 @@ function ExperienceSection({ data, onChange, hideFields = [] }) {
|
|
|
21
27
|
work_experience: items.filter((_, i) => i !== index)
|
|
22
28
|
});
|
|
23
29
|
};
|
|
24
|
-
return /* @__PURE__ */ jsxs("div", { className: "space-y-6 pt-2
|
|
25
|
-
items.map((item, index) => /* @__PURE__ */ jsxs("div", { className: "
|
|
30
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-6 pb-4 pt-2", children: [
|
|
31
|
+
items.map((item, index) => /* @__PURE__ */ jsxs("div", { className: "space-y-4 rounded-lg border border-border p-4 shadow-md", children: [
|
|
26
32
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
27
|
-
/* @__PURE__ */ jsx(Briefcase, { className: "
|
|
33
|
+
/* @__PURE__ */ jsx(Briefcase, { className: "h-5 w-5 text-secondary" }),
|
|
28
34
|
/* @__PURE__ */ jsx(
|
|
29
35
|
Button,
|
|
30
36
|
{
|
|
31
37
|
variant: "ghost",
|
|
32
38
|
size: "sm",
|
|
33
|
-
className: "h-7 px-2 text-muted-foreground hover:
|
|
39
|
+
className: "h-7 px-2 text-muted-foreground hover:bg-destructive/10 hover:text-destructive",
|
|
34
40
|
onClick: () => handleRemove(index),
|
|
35
|
-
children: /* @__PURE__ */ jsx(Trash2, { className: "
|
|
41
|
+
children: /* @__PURE__ */ jsx(Trash2, { className: "h-3.5 w-3.5" })
|
|
36
42
|
}
|
|
37
43
|
)
|
|
38
44
|
] }),
|
|
39
|
-
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2
|
|
45
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [
|
|
40
46
|
!hideFields.includes("experience.title") && /* @__PURE__ */ jsxs("div", { className: "space-y-2 md:col-span-2", children: [
|
|
41
47
|
/* @__PURE__ */ jsx(Label, { children: "Cargo" }),
|
|
42
48
|
/* @__PURE__ */ jsx(
|
|
@@ -91,10 +97,18 @@ function ExperienceSection({ data, onChange, hideFields = [] }) {
|
|
|
91
97
|
] })
|
|
92
98
|
] })
|
|
93
99
|
] }, item.id)),
|
|
94
|
-
/* @__PURE__ */ jsxs(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
100
|
+
/* @__PURE__ */ jsxs(
|
|
101
|
+
Button,
|
|
102
|
+
{
|
|
103
|
+
variant: "outline",
|
|
104
|
+
className: "flex w-full items-center justify-center gap-2",
|
|
105
|
+
onClick: handleAdd,
|
|
106
|
+
children: [
|
|
107
|
+
/* @__PURE__ */ jsx(Plus, { className: "h-4 w-4" }),
|
|
108
|
+
"A\xF1adir experiencia"
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
)
|
|
98
112
|
] });
|
|
99
113
|
}
|
|
100
114
|
export {
|