@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.
Files changed (273) hide show
  1. package/dist/components/domain/resume/resume-editor/resume-editor.cjs +13 -5
  2. package/dist/components/domain/resume/resume-editor/resume-editor.cjs.map +1 -1
  3. package/dist/components/domain/resume/resume-editor/resume-editor.d.cts +1 -1
  4. package/dist/components/domain/resume/resume-editor/resume-editor.d.ts +1 -1
  5. package/dist/components/domain/resume/resume-editor/resume-editor.js +19 -6
  6. package/dist/components/domain/resume/resume-editor/resume-editor.js.map +1 -1
  7. package/dist/components/domain/resume/resume-editor/sections/academic-info.cjs +1 -1
  8. package/dist/components/domain/resume/resume-editor/sections/academic-info.cjs.map +1 -1
  9. package/dist/components/domain/resume/resume-editor/sections/academic-info.js +1 -1
  10. package/dist/components/domain/resume/resume-editor/sections/academic-info.js.map +1 -1
  11. package/dist/components/domain/resume/resume-editor/sections/activities.cjs +25 -11
  12. package/dist/components/domain/resume/resume-editor/sections/activities.cjs.map +1 -1
  13. package/dist/components/domain/resume/resume-editor/sections/activities.js +25 -11
  14. package/dist/components/domain/resume/resume-editor/sections/activities.js.map +1 -1
  15. package/dist/components/domain/resume/resume-editor/sections/certifications.cjs +27 -12
  16. package/dist/components/domain/resume/resume-editor/sections/certifications.cjs.map +1 -1
  17. package/dist/components/domain/resume/resume-editor/sections/certifications.js +27 -12
  18. package/dist/components/domain/resume/resume-editor/sections/certifications.js.map +1 -1
  19. package/dist/components/domain/resume/resume-editor/sections/education.cjs +25 -11
  20. package/dist/components/domain/resume/resume-editor/sections/education.cjs.map +1 -1
  21. package/dist/components/domain/resume/resume-editor/sections/education.js +25 -11
  22. package/dist/components/domain/resume/resume-editor/sections/education.js.map +1 -1
  23. package/dist/components/domain/resume/resume-editor/sections/experience.cjs +25 -11
  24. package/dist/components/domain/resume/resume-editor/sections/experience.cjs.map +1 -1
  25. package/dist/components/domain/resume/resume-editor/sections/experience.js +25 -11
  26. package/dist/components/domain/resume/resume-editor/sections/experience.js.map +1 -1
  27. package/dist/components/domain/resume/resume-editor/sections/personal-info.cjs +1 -1
  28. package/dist/components/domain/resume/resume-editor/sections/personal-info.cjs.map +1 -1
  29. package/dist/components/domain/resume/resume-editor/sections/personal-info.js +1 -1
  30. package/dist/components/domain/resume/resume-editor/sections/personal-info.js.map +1 -1
  31. package/dist/components/domain/resume/resume-editor/sections/preferences.cjs +2 -2
  32. package/dist/components/domain/resume/resume-editor/sections/preferences.cjs.map +1 -1
  33. package/dist/components/domain/resume/resume-editor/sections/preferences.js +2 -2
  34. package/dist/components/domain/resume/resume-editor/sections/preferences.js.map +1 -1
  35. package/dist/components/domain/resume/resume-editor/sections/requirements.cjs +19 -11
  36. package/dist/components/domain/resume/resume-editor/sections/requirements.cjs.map +1 -1
  37. package/dist/components/domain/resume/resume-editor/sections/requirements.js +29 -12
  38. package/dist/components/domain/resume/resume-editor/sections/requirements.js.map +1 -1
  39. package/dist/components/domain/resume/resume-editor/sections/skills.cjs +30 -10
  40. package/dist/components/domain/resume/resume-editor/sections/skills.cjs.map +1 -1
  41. package/dist/components/domain/resume/resume-editor/sections/skills.js +30 -10
  42. package/dist/components/domain/resume/resume-editor/sections/skills.js.map +1 -1
  43. package/dist/components/domain/resume/resume-preview/resume-preview.cjs +27 -11
  44. package/dist/components/domain/resume/resume-preview/resume-preview.cjs.map +1 -1
  45. package/dist/components/domain/resume/resume-preview/resume-preview.js +27 -11
  46. package/dist/components/domain/resume/resume-preview/resume-preview.js.map +1 -1
  47. package/dist/components/domain/resume/resume-preview/sections/contact-skills.cjs +31 -15
  48. package/dist/components/domain/resume/resume-preview/sections/contact-skills.cjs.map +1 -1
  49. package/dist/components/domain/resume/resume-preview/sections/contact-skills.js +31 -15
  50. package/dist/components/domain/resume/resume-preview/sections/contact-skills.js.map +1 -1
  51. package/dist/components/domain/resume/resume-preview/sections/experience-education.cjs +131 -73
  52. package/dist/components/domain/resume/resume-preview/sections/experience-education.cjs.map +1 -1
  53. package/dist/components/domain/resume/resume-preview/sections/experience-education.d.cts +1 -1
  54. package/dist/components/domain/resume/resume-preview/sections/experience-education.d.ts +1 -1
  55. package/dist/components/domain/resume/resume-preview/sections/experience-education.js +131 -73
  56. package/dist/components/domain/resume/resume-preview/sections/experience-education.js.map +1 -1
  57. package/dist/components/domain/resume/resume-preview/sections/footer-preview.cjs +2 -2
  58. package/dist/components/domain/resume/resume-preview/sections/footer-preview.cjs.map +1 -1
  59. package/dist/components/domain/resume/resume-preview/sections/footer-preview.js +2 -2
  60. package/dist/components/domain/resume/resume-preview/sections/footer-preview.js.map +1 -1
  61. package/dist/components/domain/resume/resume-preview/sections/header-preview.cjs +7 -7
  62. package/dist/components/domain/resume/resume-preview/sections/header-preview.cjs.map +1 -1
  63. package/dist/components/domain/resume/resume-preview/sections/header-preview.js +7 -7
  64. package/dist/components/domain/resume/resume-preview/sections/header-preview.js.map +1 -1
  65. package/dist/components/domain/resume/resume.cjs +46 -29
  66. package/dist/components/domain/resume/resume.cjs.map +1 -1
  67. package/dist/components/domain/resume/resume.js +46 -29
  68. package/dist/components/domain/resume/resume.js.map +1 -1
  69. package/dist/components/ui/accordion/accordion.cjs +1 -3
  70. package/dist/components/ui/accordion/accordion.cjs.map +1 -1
  71. package/dist/components/ui/accordion/accordion.js +1 -3
  72. package/dist/components/ui/accordion/accordion.js.map +1 -1
  73. package/dist/components/ui/alert/alert.cjs +12 -25
  74. package/dist/components/ui/alert/alert.cjs.map +1 -1
  75. package/dist/components/ui/alert/alert.js +12 -25
  76. package/dist/components/ui/alert/alert.js.map +1 -1
  77. package/dist/components/ui/alert-dialog/alert-dialog.cjs +12 -46
  78. package/dist/components/ui/alert-dialog/alert-dialog.cjs.map +1 -1
  79. package/dist/components/ui/alert-dialog/alert-dialog.js +12 -46
  80. package/dist/components/ui/alert-dialog/alert-dialog.js.map +1 -1
  81. package/dist/components/ui/autocomplete/autocomplete.cjs +12 -12
  82. package/dist/components/ui/autocomplete/autocomplete.cjs.map +1 -1
  83. package/dist/components/ui/autocomplete/autocomplete.js +12 -12
  84. package/dist/components/ui/autocomplete/autocomplete.js.map +1 -1
  85. package/dist/components/ui/avatar/avatar.cjs +1 -4
  86. package/dist/components/ui/avatar/avatar.cjs.map +1 -1
  87. package/dist/components/ui/avatar/avatar.js +1 -4
  88. package/dist/components/ui/avatar/avatar.js.map +1 -1
  89. package/dist/components/ui/badge/badge.cjs +1 -8
  90. package/dist/components/ui/badge/badge.cjs.map +1 -1
  91. package/dist/components/ui/badge/badge.js +1 -8
  92. package/dist/components/ui/badge/badge.js.map +1 -1
  93. package/dist/components/ui/breadcrumb/breadcrumb.cjs +6 -19
  94. package/dist/components/ui/breadcrumb/breadcrumb.cjs.map +1 -1
  95. package/dist/components/ui/breadcrumb/breadcrumb.js +6 -19
  96. package/dist/components/ui/breadcrumb/breadcrumb.js.map +1 -1
  97. package/dist/components/ui/button/button.cjs.map +1 -1
  98. package/dist/components/ui/button/button.js.map +1 -1
  99. package/dist/components/ui/calendar/calendar.cjs +1 -6
  100. package/dist/components/ui/calendar/calendar.cjs.map +1 -1
  101. package/dist/components/ui/calendar/calendar.js +1 -6
  102. package/dist/components/ui/calendar/calendar.js.map +1 -1
  103. package/dist/components/ui/card/card.cjs +7 -17
  104. package/dist/components/ui/card/card.cjs.map +1 -1
  105. package/dist/components/ui/card/card.js +7 -17
  106. package/dist/components/ui/card/card.js.map +1 -1
  107. package/dist/components/ui/carousel/carousel.cjs +4 -11
  108. package/dist/components/ui/carousel/carousel.cjs.map +1 -1
  109. package/dist/components/ui/carousel/carousel.js +4 -11
  110. package/dist/components/ui/carousel/carousel.js.map +1 -1
  111. package/dist/components/ui/checkbox/checkbox.cjs +1 -7
  112. package/dist/components/ui/checkbox/checkbox.cjs.map +1 -1
  113. package/dist/components/ui/checkbox/checkbox.js +1 -7
  114. package/dist/components/ui/checkbox/checkbox.js.map +1 -1
  115. package/dist/components/ui/collapsible/collapsible.cjs.map +1 -1
  116. package/dist/components/ui/collapsible/collapsible.js.map +1 -1
  117. package/dist/components/ui/combobox/combobox.cjs +1 -3
  118. package/dist/components/ui/combobox/combobox.cjs.map +1 -1
  119. package/dist/components/ui/combobox/combobox.js +1 -3
  120. package/dist/components/ui/combobox/combobox.js.map +1 -1
  121. package/dist/components/ui/command/command.cjs +7 -24
  122. package/dist/components/ui/command/command.cjs.map +1 -1
  123. package/dist/components/ui/command/command.js +7 -24
  124. package/dist/components/ui/command/command.js.map +1 -1
  125. package/dist/components/ui/context-menu/context-menu.cjs +4 -18
  126. package/dist/components/ui/context-menu/context-menu.cjs.map +1 -1
  127. package/dist/components/ui/context-menu/context-menu.js +4 -18
  128. package/dist/components/ui/context-menu/context-menu.js.map +1 -1
  129. package/dist/components/ui/date-picker/date-picker.cjs +21 -57
  130. package/dist/components/ui/date-picker/date-picker.cjs.map +1 -1
  131. package/dist/components/ui/date-picker/date-picker.js +22 -62
  132. package/dist/components/ui/date-picker/date-picker.js.map +1 -1
  133. package/dist/components/ui/dialog/dialog.cjs +12 -29
  134. package/dist/components/ui/dialog/dialog.cjs.map +1 -1
  135. package/dist/components/ui/dialog/dialog.js +12 -29
  136. package/dist/components/ui/dialog/dialog.js.map +1 -1
  137. package/dist/components/ui/drawer/drawer.cjs +9 -23
  138. package/dist/components/ui/drawer/drawer.cjs.map +1 -1
  139. package/dist/components/ui/drawer/drawer.js +9 -23
  140. package/dist/components/ui/drawer/drawer.js.map +1 -1
  141. package/dist/components/ui/dropdown-menu/dropdown-menu.cjs +3 -16
  142. package/dist/components/ui/dropdown-menu/dropdown-menu.cjs.map +1 -1
  143. package/dist/components/ui/dropdown-menu/dropdown-menu.js +3 -16
  144. package/dist/components/ui/dropdown-menu/dropdown-menu.js.map +1 -1
  145. package/dist/components/ui/form/form.cjs +7 -24
  146. package/dist/components/ui/form/form.cjs.map +1 -1
  147. package/dist/components/ui/form/form.js +7 -24
  148. package/dist/components/ui/form/form.js.map +1 -1
  149. package/dist/components/ui/hover-card/hover-card.cjs +2 -6
  150. package/dist/components/ui/hover-card/hover-card.cjs.map +1 -1
  151. package/dist/components/ui/hover-card/hover-card.js +2 -6
  152. package/dist/components/ui/hover-card/hover-card.js.map +1 -1
  153. package/dist/components/ui/icon/icon.cjs +1 -1
  154. package/dist/components/ui/icon/icon.cjs.map +1 -1
  155. package/dist/components/ui/icon/icon.js +1 -1
  156. package/dist/components/ui/icon/icon.js.map +1 -1
  157. package/dist/components/ui/input/input.cjs +1 -1
  158. package/dist/components/ui/input/input.cjs.map +1 -1
  159. package/dist/components/ui/input/input.js +1 -1
  160. package/dist/components/ui/input/input.js.map +1 -1
  161. package/dist/components/ui/input-field/input-field.cjs +1 -1
  162. package/dist/components/ui/input-field/input-field.cjs.map +1 -1
  163. package/dist/components/ui/input-field/input-field.js +1 -1
  164. package/dist/components/ui/input-field/input-field.js.map +1 -1
  165. package/dist/components/ui/input-otp/input-otp.cjs +5 -15
  166. package/dist/components/ui/input-otp/input-otp.cjs.map +1 -1
  167. package/dist/components/ui/input-otp/input-otp.js +5 -15
  168. package/dist/components/ui/input-otp/input-otp.js.map +1 -1
  169. package/dist/components/ui/label/label.cjs +2 -5
  170. package/dist/components/ui/label/label.cjs.map +1 -1
  171. package/dist/components/ui/label/label.js +2 -5
  172. package/dist/components/ui/label/label.js.map +1 -1
  173. package/dist/components/ui/loading-state/loading-state.cjs +3 -8
  174. package/dist/components/ui/loading-state/loading-state.cjs.map +1 -1
  175. package/dist/components/ui/loading-state/loading-state.d.cts +1 -1
  176. package/dist/components/ui/loading-state/loading-state.d.ts +1 -1
  177. package/dist/components/ui/loading-state/loading-state.js +3 -8
  178. package/dist/components/ui/loading-state/loading-state.js.map +1 -1
  179. package/dist/components/ui/menubar/menubar.cjs +5 -21
  180. package/dist/components/ui/menubar/menubar.cjs.map +1 -1
  181. package/dist/components/ui/menubar/menubar.js +5 -21
  182. package/dist/components/ui/menubar/menubar.js.map +1 -1
  183. package/dist/components/ui/month-year-picker/month-year-picker.cjs +5 -23
  184. package/dist/components/ui/month-year-picker/month-year-picker.cjs.map +1 -1
  185. package/dist/components/ui/month-year-picker/month-year-picker.js +6 -28
  186. package/dist/components/ui/month-year-picker/month-year-picker.js.map +1 -1
  187. package/dist/components/ui/multi-select/multi-select.cjs +12 -29
  188. package/dist/components/ui/multi-select/multi-select.cjs.map +1 -1
  189. package/dist/components/ui/multi-select/multi-select.js +12 -29
  190. package/dist/components/ui/multi-select/multi-select.js.map +1 -1
  191. package/dist/components/ui/navigation-menu/navigation-menu.cjs +7 -13
  192. package/dist/components/ui/navigation-menu/navigation-menu.cjs.map +1 -1
  193. package/dist/components/ui/navigation-menu/navigation-menu.js +7 -13
  194. package/dist/components/ui/navigation-menu/navigation-menu.js.map +1 -1
  195. package/dist/components/ui/pagination/pagination.cjs +4 -18
  196. package/dist/components/ui/pagination/pagination.cjs.map +1 -1
  197. package/dist/components/ui/pagination/pagination.js +4 -18
  198. package/dist/components/ui/pagination/pagination.js.map +1 -1
  199. package/dist/components/ui/popover/popover.cjs.map +1 -1
  200. package/dist/components/ui/popover/popover.js.map +1 -1
  201. package/dist/components/ui/progress/progress.cjs +2 -2
  202. package/dist/components/ui/progress/progress.cjs.map +1 -1
  203. package/dist/components/ui/progress/progress.js +2 -2
  204. package/dist/components/ui/progress/progress.js.map +1 -1
  205. package/dist/components/ui/radio-group/radio-group.cjs +1 -8
  206. package/dist/components/ui/radio-group/radio-group.cjs.map +1 -1
  207. package/dist/components/ui/radio-group/radio-group.js +1 -8
  208. package/dist/components/ui/radio-group/radio-group.js.map +1 -1
  209. package/dist/components/ui/resizable/resizable.cjs +3 -6
  210. package/dist/components/ui/resizable/resizable.cjs.map +1 -1
  211. package/dist/components/ui/resizable/resizable.js +4 -11
  212. package/dist/components/ui/resizable/resizable.js.map +1 -1
  213. package/dist/components/ui/rich-text-editor/rich-text-editor.cjs +25 -37
  214. package/dist/components/ui/rich-text-editor/rich-text-editor.cjs.map +1 -1
  215. package/dist/components/ui/rich-text-editor/rich-text-editor.js +25 -37
  216. package/dist/components/ui/rich-text-editor/rich-text-editor.js.map +1 -1
  217. package/dist/components/ui/scroll-area/scroll-area.cjs.map +1 -1
  218. package/dist/components/ui/scroll-area/scroll-area.js.map +1 -1
  219. package/dist/components/ui/section-loader/section-loader.cjs +4 -15
  220. package/dist/components/ui/section-loader/section-loader.cjs.map +1 -1
  221. package/dist/components/ui/section-loader/section-loader.js +4 -15
  222. package/dist/components/ui/section-loader/section-loader.js.map +1 -1
  223. package/dist/components/ui/select/select.cjs +11 -29
  224. package/dist/components/ui/select/select.cjs.map +1 -1
  225. package/dist/components/ui/select/select.js +11 -29
  226. package/dist/components/ui/select/select.js.map +1 -1
  227. package/dist/components/ui/separator/separator.cjs +14 -16
  228. package/dist/components/ui/separator/separator.cjs.map +1 -1
  229. package/dist/components/ui/separator/separator.js +14 -16
  230. package/dist/components/ui/separator/separator.js.map +1 -1
  231. package/dist/components/ui/sheet/sheet.cjs +10 -24
  232. package/dist/components/ui/sheet/sheet.cjs.map +1 -1
  233. package/dist/components/ui/sheet/sheet.js +10 -24
  234. package/dist/components/ui/sheet/sheet.js.map +1 -1
  235. package/dist/components/ui/skeleton/skeleton.cjs +2 -11
  236. package/dist/components/ui/skeleton/skeleton.cjs.map +1 -1
  237. package/dist/components/ui/skeleton/skeleton.js +2 -11
  238. package/dist/components/ui/skeleton/skeleton.js.map +1 -1
  239. package/dist/components/ui/slider/slider.cjs +1 -4
  240. package/dist/components/ui/slider/slider.cjs.map +1 -1
  241. package/dist/components/ui/slider/slider.js +1 -4
  242. package/dist/components/ui/slider/slider.js.map +1 -1
  243. package/dist/components/ui/sonner/sonner.cjs.map +1 -1
  244. package/dist/components/ui/sonner/sonner.js.map +1 -1
  245. package/dist/components/ui/spinner/spinner.cjs +1 -1
  246. package/dist/components/ui/spinner/spinner.cjs.map +1 -1
  247. package/dist/components/ui/spinner/spinner.js +1 -1
  248. package/dist/components/ui/spinner/spinner.js.map +1 -1
  249. package/dist/components/ui/switch/switch.cjs.map +1 -1
  250. package/dist/components/ui/switch/switch.js.map +1 -1
  251. package/dist/components/ui/table/table.cjs +6 -28
  252. package/dist/components/ui/table/table.cjs.map +1 -1
  253. package/dist/components/ui/table/table.js +6 -28
  254. package/dist/components/ui/table/table.js.map +1 -1
  255. package/dist/components/ui/tabs/tabs.cjs.map +1 -1
  256. package/dist/components/ui/tabs/tabs.js.map +1 -1
  257. package/dist/components/ui/textarea/textarea.cjs +1 -4
  258. package/dist/components/ui/textarea/textarea.cjs.map +1 -1
  259. package/dist/components/ui/textarea/textarea.js +1 -4
  260. package/dist/components/ui/textarea/textarea.js.map +1 -1
  261. package/dist/components/ui/toast/toast.cjs +3 -12
  262. package/dist/components/ui/toast/toast.cjs.map +1 -1
  263. package/dist/components/ui/toast/toast.js +3 -12
  264. package/dist/components/ui/toast/toast.js.map +1 -1
  265. package/dist/components/ui/toggle/toggle.cjs.map +1 -1
  266. package/dist/components/ui/toggle/toggle.js.map +1 -1
  267. package/dist/components/ui/toggle-group/toggle-group.cjs +1 -4
  268. package/dist/components/ui/toggle-group/toggle-group.cjs.map +1 -1
  269. package/dist/components/ui/toggle-group/toggle-group.js +1 -4
  270. package/dist/components/ui/toggle-group/toggle-group.js.map +1 -1
  271. package/dist/components/ui/tooltip/tooltip.cjs.map +1 -1
  272. package/dist/components/ui/tooltip/tooltip.js.map +1 -1
  273. 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 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 pt-2 pb-4\">\n {items.map((item, index) => (\n <div key={item.id} className=\"p-4 border border-border rounded-lg space-y-4 shadow-md\">\n <div className=\"flex items-center justify-between\">\n <Award className=\"w-5 h-5 text-secondary\" />\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 px-2 text-muted-foreground hover:text-destructive hover:bg-destructive/10\"\n onClick={() => handleRemove(index)}\n >\n <Trash2 className=\"w-3.5 h-3.5\" />\n </Button>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\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=\"md:col-span-2 flex items-center gap-2\">\n <Checkbox\n id={`verif-${item.id}`}\n checked={item.verified || false}\n onCheckedChange={(c) => handleUpdate(index, 'verified', !!c)}\n />\n <label htmlFor={`verif-${item.id}`} className=\"text-sm text-muted-foreground flex items-center gap-1\">\n Verificado\n </label>\n </div>\n )}\n </div>\n </div>\n ))}\n\n <Button variant=\"outline\" className=\"w-full flex items-center justify-center gap-2\" onClick={handleAdd}>\n <Plus className=\"w-4 h-4\" />\n Añadir certificación\n </Button>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
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 pb-4", children: [
25
- items.map((item, index) => /* @__PURE__ */ jsxs("div", { className: "p-4 border border-border rounded-lg space-y-4 shadow-md", children: [
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: "w-5 h-5 text-secondary" }),
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:text-destructive hover:bg-destructive/10",
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: "w-3.5 h-3.5" })
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 gap-4", children: [
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: "md:col-span-2 flex items-center gap-2", children: [
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("label", { htmlFor: `verif-${item.id}`, className: "text-sm text-muted-foreground flex items-center gap-1", children: "Verificado" })
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(Button, { variant: "outline", className: "w-full flex items-center justify-center gap-2", onClick: handleAdd, children: [
96
- /* @__PURE__ */ jsx(Plus, { className: "w-4 h-4" }),
97
- "A\xF1adir certificaci\xF3n"
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 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 pt-2 pb-4\">\n {items.map((item, index) => (\n <div key={item.id} className=\"p-4 border border-border rounded-lg space-y-4 shadow-md\">\n <div className=\"flex items-center justify-between\">\n <Award className=\"w-5 h-5 text-secondary\" />\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 px-2 text-muted-foreground hover:text-destructive hover:bg-destructive/10\"\n onClick={() => handleRemove(index)}\n >\n <Trash2 className=\"w-3.5 h-3.5\" />\n </Button>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\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=\"md:col-span-2 flex items-center gap-2\">\n <Checkbox\n id={`verif-${item.id}`}\n checked={item.verified || false}\n onCheckedChange={(c) => handleUpdate(index, 'verified', !!c)}\n />\n <label htmlFor={`verif-${item.id}`} className=\"text-sm text-muted-foreground flex items-center gap-1\">\n Verificado\n </label>\n </div>\n )}\n </div>\n </div>\n ))}\n\n <Button variant=\"outline\" className=\"w-full flex items-center justify-center gap-2\" onClick={handleAdd}>\n <Plus className=\"w-4 h-4\" />\n Añadir certificación\n </Button>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
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":"AAuCU,SACE,KADF;AAtCV,SAAS,OAAO,OAAO,QAAQ,gBAAgB;AAC/C,SAAS,MAAM,QAAQ,aAAa;AAS7B,SAAS,sBAAsB,EAAE,MAAM,UAAU,aAAa,CAAC,EAAE,GAAwB;AAC9F,QAAM,QAAQ,KAAK,kBAAkB,CAAC;AAEtC,QAAM,eAAe,CAAC,OAAe,OAAe,UAAe;AACjE,UAAM,UAAU,CAAC,GAAG,KAAK;AACzB,YAAQ,KAAK,IAAI,EAAE,GAAG,QAAQ,KAAK,GAAG,CAAC,KAAK,GAAG,MAAM;AACrD,aAAS,EAAE,gBAAgB,QAAQ,CAAC;AAAA,EACtC;AAEA,QAAM,YAAY,MAAM;AACtB,aAAS;AAAA,MACP,gBAAgB;AAAA,QACd,GAAG;AAAA,QACH,EAAE,IAAI,aAAa,KAAK,IAAI,CAAC,IAAI,OAAO,IAAI,kBAAkB,IAAI,cAAc,GAAG;AAAA,MACrF;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,eAAe,CAAC,UAAkB;AACtC,aAAS;AAAA,MACP,gBAAgB,MAAM,OAAO,CAAC,GAAG,MAAM,MAAM,KAAK;AAAA,IACpD,CAAC;AAAA,EACH;AAEA,SACE,qBAAC,SAAI,WAAU,uBACZ;AAAA,UAAM,IAAI,CAAC,MAAM,UAChB,qBAAC,SAAkB,WAAU,2DAC3B;AAAA,2BAAC,SAAI,WAAU,qCACb;AAAA,4BAAC,SAAM,WAAU,0BAAyB;AAAA,QAC1C;AAAA,UAAC;AAAA;AAAA,YACC,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,WAAU;AAAA,YACV,SAAS,MAAM,aAAa,KAAK;AAAA,YAEjC,8BAAC,UAAO,WAAU,eAAc;AAAA;AAAA,QAClC;AAAA,SACF;AAAA,MAEA,qBAAC,SAAI,WAAU,yCACZ;AAAA,SAAC,WAAW,SAAS,sBAAsB,KAC1C,qBAAC,SAAI,WAAU,2BACb;AAAA,8BAAC,SAAM,uBAAM;AAAA,UACb;AAAA,YAAC;AAAA;AAAA,cACC,OAAO,KAAK,SAAS;AAAA,cACrB,UAAU,CAAC,MAAM,aAAa,OAAO,SAAS,EAAE,OAAO,KAAK;AAAA;AAAA,UAC9D;AAAA,WACF;AAAA,QAED,CAAC,WAAW,SAAS,iCAAiC,KACrD,qBAAC,SAAI,WAAU,aACb;AAAA,8BAAC,SAAM,4BAAW;AAAA,UAClB;AAAA,YAAC;AAAA;AAAA,cACC,OAAO,KAAK,oBAAoB;AAAA,cAChC,UAAU,CAAC,MAAM,aAAa,OAAO,oBAAoB,EAAE,OAAO,KAAK;AAAA;AAAA,UACzE;AAAA,WACF;AAAA,QAED,CAAC,WAAW,SAAS,6BAA6B,KACjD,qBAAC,SAAI,WAAU,aACb;AAAA,8BAAC,SAAM,mCAAkB;AAAA,UACzB;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,OAAO,KAAK,gBAAgB;AAAA,cAC5B,UAAU,CAAC,MAAM,aAAa,OAAO,gBAAgB,EAAE,OAAO,KAAK;AAAA;AAAA,UACrE;AAAA,WACF;AAAA,QAED,CAAC,WAAW,SAAS,oBAAoB,KACxC,qBAAC,SAAI,WAAU,2BACb;AAAA,8BAAC,SAAM,+BAAiB;AAAA,UACxB;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,OAAO,KAAK,OAAO;AAAA,cACnB,UAAU,CAAC,MAAM,aAAa,OAAO,OAAO,EAAE,OAAO,KAAK;AAAA;AAAA,UAC5D;AAAA,WACF;AAAA,QAED,CAAC,WAAW,SAAS,yBAAyB,KAC7C,qBAAC,SAAI,WAAU,yCACb;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,IAAI,SAAS,KAAK,EAAE;AAAA,cACpB,SAAS,KAAK,YAAY;AAAA,cAC1B,iBAAiB,CAAC,MAAM,aAAa,OAAO,YAAY,CAAC,CAAC,CAAC;AAAA;AAAA,UAC7D;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,SAAS,SAAS,KAAK,EAAE;AAAA,cACzB,WAAU;AAAA,cACX;AAAA;AAAA,UAED;AAAA,WACF;AAAA,SAEJ;AAAA,SAnEQ,KAAK,EAoEf,CACD;AAAA,IAED;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,WAAU;AAAA,QACV,SAAS;AAAA,QAET;AAAA,8BAAC,QAAK,WAAU,WAAU;AAAA,UAAE;AAAA;AAAA;AAAA,IAE9B;AAAA,KACF;AAEJ;","names":[]}
@@ -35,7 +35,13 @@ function EducationSection({ data, onChange, hideFields = [] }) {
35
35
  onChange({
36
36
  education: [
37
37
  ...items,
38
- { id: `temp-edu-${Date.now()}`, title: "", type: "education", institution_name: "", start_date: "" }
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 pb-4", children: [
48
- items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "p-4 border border-border rounded-lg space-y-4 shadow-md", children: [
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: "w-5 h-5 text-secondary" }),
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:text-destructive hover:bg-destructive/10",
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: "w-3.5 h-3.5" })
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 gap-4", children: [
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)(import_ui.Button, { variant: "outline", className: "w-full flex items-center justify-center gap-2", onClick: handleAdd, children: [
118
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Plus, { className: "w-4 h-4" }),
119
- "A\xF1adir educaci\xF3n"
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 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 { id: `temp-edu-${Date.now()}`, title: \"\", type: \"education\", institution_name: \"\", start_date: \"\" }\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 pt-2 pb-4\">\n {items.map((item, index) => (\n <div key={item.id} className=\"p-4 border border-border rounded-lg space-y-4 shadow-md\">\n <div className=\"flex items-center justify-between\">\n <GraduationCap className=\"w-5 h-5 text-secondary\" />\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 px-2 text-muted-foreground hover:text-destructive hover:bg-destructive/10\"\n onClick={() => handleRemove(index)}\n >\n <Trash2 className=\"w-3.5 h-3.5\" />\n </Button>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\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 variant=\"outline\" className=\"w-full flex items-center justify-center gap-2\" onClick={handleAdd}>\n <Plus className=\"w-4 h-4\" />\n Añadir educación\n </Button>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAsCoB;AArCpB,gBAA+C;AAC/C,0BAA4C;AAQrC,SAAS,iBAAiB,EAAE,MAAM,UAAU,aAAa,CAAC,EAAE,GAAmB;AAClF,QAAM,QAAQ,KAAK,aAAa,CAAC;AAEjC,QAAM,eAAe,CAAC,OAAe,OAAe,UAAkB;AAClE,UAAM,UAAU,CAAC,GAAG,KAAK;AACzB,YAAQ,KAAK,IAAI,EAAE,GAAG,QAAQ,KAAK,GAAG,CAAC,KAAK,GAAG,MAAM;AACrD,aAAS,EAAE,WAAW,QAAQ,CAAC;AAAA,EACnC;AAEA,QAAM,YAAY,MAAM;AACpB,aAAS;AAAA,MACL,WAAW;AAAA,QACP,GAAG;AAAA,QACH,EAAE,IAAI,YAAY,KAAK,IAAI,CAAC,IAAI,OAAO,IAAI,MAAM,aAAa,kBAAkB,IAAI,YAAY,GAAG;AAAA,MACvG;AAAA,IACJ,CAAC;AAAA,EACL;AAEA,QAAM,eAAe,CAAC,UAAkB;AACpC,aAAS;AAAA,MACL,WAAW,MAAM,OAAO,CAAC,GAAG,MAAM,MAAM,KAAK;AAAA,IACjD,CAAC;AAAA,EACL;AAEA,SACI,6CAAC,SAAI,WAAU,uBACV;AAAA,UAAM,IAAI,CAAC,MAAM,UACd,6CAAC,SAAkB,WAAU,2DACzB;AAAA,mDAAC,SAAI,WAAU,qCACX;AAAA,oDAAC,qCAAc,WAAU,0BAAyB;AAAA,QAClD;AAAA,UAAC;AAAA;AAAA,YACG,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,WAAU;AAAA,YACV,SAAS,MAAM,aAAa,KAAK;AAAA,YAEjC,sDAAC,8BAAO,WAAU,eAAc;AAAA;AAAA,QACpC;AAAA,SACJ;AAAA,MAEA,6CAAC,SAAI,WAAU,yCACV;AAAA,SAAC,WAAW,SAAS,4BAA4B,KAC9C,6CAAC,SAAI,WAAU,2BACX;AAAA,sDAAC,mBAAM,4BAAW;AAAA,UAClB;AAAA,YAAC;AAAA;AAAA,cACG,OAAO,KAAK,oBAAoB;AAAA,cAChC,UAAU,CAAC,MAAM,aAAa,OAAO,oBAAoB,EAAE,OAAO,KAAK;AAAA;AAAA,UAC3E;AAAA,WACJ;AAAA,QAEH,CAAC,WAAW,SAAS,iBAAiB,KACnC,6CAAC,SAAI,WAAU,2BACX;AAAA,sDAAC,mBAAM,uBAAM;AAAA,UACb;AAAA,YAAC;AAAA;AAAA,cACG,OAAO,KAAK,SAAS;AAAA,cACrB,UAAU,CAAC,MAAM,aAAa,OAAO,SAAS,EAAE,OAAO,KAAK;AAAA;AAAA,UAChE;AAAA,WACJ;AAAA,QAEH,CAAC,WAAW,SAAS,sBAAsB,KACxC,6CAAC,SAAI,WAAU,aACX;AAAA,sDAAC,mBAAM,6BAAe;AAAA,UACtB;AAAA,YAAC;AAAA;AAAA,cACG,MAAK;AAAA,cACL,OAAO,KAAK,cAAc;AAAA,cAC1B,UAAU,CAAC,MAAM,aAAa,OAAO,cAAc,EAAE,OAAO,KAAK;AAAA;AAAA,UACrE;AAAA,WACJ;AAAA,QAEH,CAAC,WAAW,SAAS,oBAAoB,KACtC,6CAAC,SAAI,WAAU,aACX;AAAA,sDAAC,mBAAM,sCAAqB;AAAA,UAC5B;AAAA,YAAC;AAAA;AAAA,cACG,MAAK;AAAA,cACL,OAAO,KAAK,YAAY;AAAA,cACxB,UAAU,CAAC,MAAM,aAAa,OAAO,YAAY,EAAE,OAAO,KAAK;AAAA;AAAA,UACnE;AAAA,WACJ;AAAA,QAEH,CAAC,WAAW,SAAS,uBAAuB,KACzC,6CAAC,SAAI,WAAU,2BACX;AAAA,sDAAC,mBAAM,4BAAW;AAAA,UAClB;AAAA,YAAC;AAAA;AAAA,cACG,OAAO,KAAK,eAAe;AAAA,cAC3B,UAAU,CAAC,MAAM,aAAa,OAAO,eAAe,EAAE,OAAO,KAAK;AAAA;AAAA,UACtE;AAAA,WACJ;AAAA,SAER;AAAA,SA7DM,KAAK,EA8Df,CACH;AAAA,IAED,6CAAC,oBAAO,SAAQ,WAAU,WAAU,iDAAgD,SAAS,WACzF;AAAA,kDAAC,4BAAK,WAAU,WAAU;AAAA,MAAE;AAAA,OAEhC;AAAA,KACJ;AAER;","names":[]}
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
- { id: `temp-edu-${Date.now()}`, title: "", type: "education", institution_name: "", start_date: "" }
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 pb-4", children: [
25
- items.map((item, index) => /* @__PURE__ */ jsxs("div", { className: "p-4 border border-border rounded-lg space-y-4 shadow-md", children: [
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: "w-5 h-5 text-secondary" }),
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:text-destructive hover:bg-destructive/10",
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: "w-3.5 h-3.5" })
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 gap-4", children: [
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(Button, { variant: "outline", className: "w-full flex items-center justify-center gap-2", onClick: handleAdd, children: [
95
- /* @__PURE__ */ jsx(Plus, { className: "w-4 h-4" }),
96
- "A\xF1adir educaci\xF3n"
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 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 { id: `temp-edu-${Date.now()}`, title: \"\", type: \"education\", institution_name: \"\", start_date: \"\" }\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 pt-2 pb-4\">\n {items.map((item, index) => (\n <div key={item.id} className=\"p-4 border border-border rounded-lg space-y-4 shadow-md\">\n <div className=\"flex items-center justify-between\">\n <GraduationCap className=\"w-5 h-5 text-secondary\" />\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 px-2 text-muted-foreground hover:text-destructive hover:bg-destructive/10\"\n onClick={() => handleRemove(index)}\n >\n <Trash2 className=\"w-3.5 h-3.5\" />\n </Button>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\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 variant=\"outline\" className=\"w-full flex items-center justify-center gap-2\" onClick={handleAdd}>\n <Plus className=\"w-4 h-4\" />\n Añadir educación\n </Button>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
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
- { id: `temp-exp-${Date.now()}`, title: "", type: "employment", institution_name: "", start_date: "" }
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 pb-4", children: [
48
- items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "p-4 border border-border rounded-lg space-y-4 shadow-md", children: [
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: "w-5 h-5 text-secondary" }),
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:text-destructive hover:bg-destructive/10",
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: "w-3.5 h-3.5" })
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 gap-4", children: [
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)(import_ui.Button, { variant: "outline", className: "w-full flex items-center justify-center gap-2", onClick: handleAdd, children: [
118
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Plus, { className: "w-4 h-4" }),
119
- "A\xF1adir experiencia"
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 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 { id: `temp-exp-${Date.now()}`, title: \"\", type: \"employment\", institution_name: \"\", start_date: \"\" }\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 pt-2 pb-4\">\n {items.map((item, index) => (\n <div key={item.id} className=\"p-4 border border-border rounded-lg space-y-4 shadow-md\">\n <div className=\"flex items-center justify-between\">\n <Briefcase className=\"w-5 h-5 text-secondary\" />\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 px-2 text-muted-foreground hover:text-destructive hover:bg-destructive/10\"\n onClick={() => handleRemove(index)}\n >\n <Trash2 className=\"w-3.5 h-3.5\" />\n </Button>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\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 variant=\"outline\" className=\"w-full flex items-center justify-center gap-2\" onClick={handleAdd}>\n <Plus className=\"w-4 h-4\" />\n Añadir experiencia\n </Button>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAsCoB;AArCpB,gBAA+C;AAC/C,0BAAwC;AAQjC,SAAS,kBAAkB,EAAE,MAAM,UAAU,aAAa,CAAC,EAAE,GAAoB;AACpF,QAAM,QAAQ,KAAK,mBAAmB,CAAC;AAEvC,QAAM,eAAe,CAAC,OAAe,OAAe,UAAkB;AAClE,UAAM,UAAU,CAAC,GAAG,KAAK;AACzB,YAAQ,KAAK,IAAI,EAAE,GAAG,QAAQ,KAAK,GAAG,CAAC,KAAK,GAAG,MAAM;AACrD,aAAS,EAAE,iBAAiB,QAAQ,CAAC;AAAA,EACzC;AAEA,QAAM,YAAY,MAAM;AACpB,aAAS;AAAA,MACL,iBAAiB;AAAA,QACb,GAAG;AAAA,QACH,EAAE,IAAI,YAAY,KAAK,IAAI,CAAC,IAAI,OAAO,IAAI,MAAM,cAAc,kBAAkB,IAAI,YAAY,GAAG;AAAA,MACxG;AAAA,IACJ,CAAC;AAAA,EACL;AAEA,QAAM,eAAe,CAAC,UAAkB;AACpC,aAAS;AAAA,MACL,iBAAiB,MAAM,OAAO,CAAC,GAAG,MAAM,MAAM,KAAK;AAAA,IACvD,CAAC;AAAA,EACL;AAEA,SACI,6CAAC,SAAI,WAAU,uBACV;AAAA,UAAM,IAAI,CAAC,MAAM,UACd,6CAAC,SAAkB,WAAU,2DACzB;AAAA,mDAAC,SAAI,WAAU,qCACX;AAAA,oDAAC,iCAAU,WAAU,0BAAyB;AAAA,QAC9C;AAAA,UAAC;AAAA;AAAA,YACG,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,WAAU;AAAA,YACV,SAAS,MAAM,aAAa,KAAK;AAAA,YAEjC,sDAAC,8BAAO,WAAU,eAAc;AAAA;AAAA,QACpC;AAAA,SACJ;AAAA,MAEA,6CAAC,SAAI,WAAU,yCACV;AAAA,SAAC,WAAW,SAAS,kBAAkB,KACpC,6CAAC,SAAI,WAAU,2BACX;AAAA,sDAAC,mBAAM,mBAAK;AAAA,UACZ;AAAA,YAAC;AAAA;AAAA,cACG,OAAO,KAAK,SAAS;AAAA,cACrB,UAAU,CAAC,MAAM,aAAa,OAAO,SAAS,EAAE,OAAO,KAAK;AAAA;AAAA,UAChE;AAAA,WACJ;AAAA,QAEH,CAAC,WAAW,SAAS,6BAA6B,KAC/C,6CAAC,SAAI,WAAU,2BACX;AAAA,sDAAC,mBAAM,qBAAO;AAAA,UACd;AAAA,YAAC;AAAA;AAAA,cACG,OAAO,KAAK,oBAAoB;AAAA,cAChC,UAAU,CAAC,MAAM,aAAa,OAAO,oBAAoB,EAAE,OAAO,KAAK;AAAA;AAAA,UAC3E;AAAA,WACJ;AAAA,QAEH,CAAC,WAAW,SAAS,uBAAuB,KACzC,6CAAC,SAAI,WAAU,aACX;AAAA,sDAAC,mBAAM,6BAAe;AAAA,UACtB;AAAA,YAAC;AAAA;AAAA,cACG,MAAK;AAAA,cACL,OAAO,KAAK,cAAc;AAAA,cAC1B,UAAU,CAAC,MAAM,aAAa,OAAO,cAAc,EAAE,OAAO,KAAK;AAAA;AAAA,UACrE;AAAA,WACJ;AAAA,QAEH,CAAC,WAAW,SAAS,qBAAqB,KACvC,6CAAC,SAAI,WAAU,aACX;AAAA,sDAAC,mBAAM,sCAAqB;AAAA,UAC5B;AAAA,YAAC;AAAA;AAAA,cACG,MAAK;AAAA,cACL,OAAO,KAAK,YAAY;AAAA,cACxB,UAAU,CAAC,MAAM,aAAa,OAAO,YAAY,EAAE,OAAO,KAAK;AAAA;AAAA,UACnE;AAAA,WACJ;AAAA,QAEH,CAAC,WAAW,SAAS,wBAAwB,KAC1C,6CAAC,SAAI,WAAU,2BACX;AAAA,sDAAC,mBAAM,4BAAW;AAAA,UAClB;AAAA,YAAC;AAAA;AAAA,cACG,OAAO,KAAK,eAAe;AAAA,cAC3B,UAAU,CAAC,MAAM,aAAa,OAAO,eAAe,EAAE,OAAO,KAAK;AAAA;AAAA,UACtE;AAAA,WACJ;AAAA,SAER;AAAA,SA7DM,KAAK,EA8Df,CACH;AAAA,IAED,6CAAC,oBAAO,SAAQ,WAAU,WAAU,iDAAgD,SAAS,WACzF;AAAA,kDAAC,4BAAK,WAAU,WAAU;AAAA,MAAE;AAAA,OAEhC;AAAA,KACJ;AAER;","names":[]}
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
- { id: `temp-exp-${Date.now()}`, title: "", type: "employment", institution_name: "", start_date: "" }
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 pb-4", children: [
25
- items.map((item, index) => /* @__PURE__ */ jsxs("div", { className: "p-4 border border-border rounded-lg space-y-4 shadow-md", children: [
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: "w-5 h-5 text-secondary" }),
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:text-destructive hover:bg-destructive/10",
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: "w-3.5 h-3.5" })
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 gap-4", children: [
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(Button, { variant: "outline", className: "w-full flex items-center justify-center gap-2", onClick: handleAdd, children: [
95
- /* @__PURE__ */ jsx(Plus, { className: "w-4 h-4" }),
96
- "A\xF1adir experiencia"
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 {