@ginia/ui 0.1.1 → 0.1.4

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 (283) 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/index.d.cts +1 -1
  158. package/dist/components/ui/index.d.ts +1 -1
  159. package/dist/components/ui/input/input.cjs +1 -1
  160. package/dist/components/ui/input/input.cjs.map +1 -1
  161. package/dist/components/ui/input/input.js +1 -1
  162. package/dist/components/ui/input/input.js.map +1 -1
  163. package/dist/components/ui/input-field/input-field.cjs +1 -1
  164. package/dist/components/ui/input-field/input-field.cjs.map +1 -1
  165. package/dist/components/ui/input-field/input-field.js +1 -1
  166. package/dist/components/ui/input-field/input-field.js.map +1 -1
  167. package/dist/components/ui/input-otp/input-otp.cjs +5 -15
  168. package/dist/components/ui/input-otp/input-otp.cjs.map +1 -1
  169. package/dist/components/ui/input-otp/input-otp.js +5 -15
  170. package/dist/components/ui/input-otp/input-otp.js.map +1 -1
  171. package/dist/components/ui/label/label.cjs +2 -5
  172. package/dist/components/ui/label/label.cjs.map +1 -1
  173. package/dist/components/ui/label/label.js +2 -5
  174. package/dist/components/ui/label/label.js.map +1 -1
  175. package/dist/components/ui/loading-state/loading-state.cjs +3 -8
  176. package/dist/components/ui/loading-state/loading-state.cjs.map +1 -1
  177. package/dist/components/ui/loading-state/loading-state.d.cts +1 -1
  178. package/dist/components/ui/loading-state/loading-state.d.ts +1 -1
  179. package/dist/components/ui/loading-state/loading-state.js +3 -8
  180. package/dist/components/ui/loading-state/loading-state.js.map +1 -1
  181. package/dist/components/ui/menubar/menubar.cjs +5 -21
  182. package/dist/components/ui/menubar/menubar.cjs.map +1 -1
  183. package/dist/components/ui/menubar/menubar.js +5 -21
  184. package/dist/components/ui/menubar/menubar.js.map +1 -1
  185. package/dist/components/ui/month-year-picker/month-year-picker.cjs +5 -23
  186. package/dist/components/ui/month-year-picker/month-year-picker.cjs.map +1 -1
  187. package/dist/components/ui/month-year-picker/month-year-picker.js +6 -28
  188. package/dist/components/ui/month-year-picker/month-year-picker.js.map +1 -1
  189. package/dist/components/ui/multi-select/multi-select.cjs +12 -29
  190. package/dist/components/ui/multi-select/multi-select.cjs.map +1 -1
  191. package/dist/components/ui/multi-select/multi-select.js +12 -29
  192. package/dist/components/ui/multi-select/multi-select.js.map +1 -1
  193. package/dist/components/ui/navigation-menu/navigation-menu.cjs +7 -13
  194. package/dist/components/ui/navigation-menu/navigation-menu.cjs.map +1 -1
  195. package/dist/components/ui/navigation-menu/navigation-menu.js +7 -13
  196. package/dist/components/ui/navigation-menu/navigation-menu.js.map +1 -1
  197. package/dist/components/ui/pagination/pagination.cjs +4 -18
  198. package/dist/components/ui/pagination/pagination.cjs.map +1 -1
  199. package/dist/components/ui/pagination/pagination.js +4 -18
  200. package/dist/components/ui/pagination/pagination.js.map +1 -1
  201. package/dist/components/ui/popover/popover.cjs.map +1 -1
  202. package/dist/components/ui/popover/popover.js.map +1 -1
  203. package/dist/components/ui/progress/progress.cjs +2 -2
  204. package/dist/components/ui/progress/progress.cjs.map +1 -1
  205. package/dist/components/ui/progress/progress.js +2 -2
  206. package/dist/components/ui/progress/progress.js.map +1 -1
  207. package/dist/components/ui/radio-group/radio-group.cjs +1 -8
  208. package/dist/components/ui/radio-group/radio-group.cjs.map +1 -1
  209. package/dist/components/ui/radio-group/radio-group.js +1 -8
  210. package/dist/components/ui/radio-group/radio-group.js.map +1 -1
  211. package/dist/components/ui/resizable/resizable.cjs +3 -6
  212. package/dist/components/ui/resizable/resizable.cjs.map +1 -1
  213. package/dist/components/ui/resizable/resizable.js +4 -11
  214. package/dist/components/ui/resizable/resizable.js.map +1 -1
  215. package/dist/components/ui/rich-text-editor/rich-text-editor.cjs +25 -37
  216. package/dist/components/ui/rich-text-editor/rich-text-editor.cjs.map +1 -1
  217. package/dist/components/ui/rich-text-editor/rich-text-editor.js +25 -37
  218. package/dist/components/ui/rich-text-editor/rich-text-editor.js.map +1 -1
  219. package/dist/components/ui/scroll-area/scroll-area.cjs.map +1 -1
  220. package/dist/components/ui/scroll-area/scroll-area.js.map +1 -1
  221. package/dist/components/ui/section-loader/section-loader.cjs +4 -15
  222. package/dist/components/ui/section-loader/section-loader.cjs.map +1 -1
  223. package/dist/components/ui/section-loader/section-loader.js +4 -15
  224. package/dist/components/ui/section-loader/section-loader.js.map +1 -1
  225. package/dist/components/ui/select/select.cjs +11 -29
  226. package/dist/components/ui/select/select.cjs.map +1 -1
  227. package/dist/components/ui/select/select.js +11 -29
  228. package/dist/components/ui/select/select.js.map +1 -1
  229. package/dist/components/ui/separator/separator.cjs +14 -16
  230. package/dist/components/ui/separator/separator.cjs.map +1 -1
  231. package/dist/components/ui/separator/separator.js +14 -16
  232. package/dist/components/ui/separator/separator.js.map +1 -1
  233. package/dist/components/ui/sheet/sheet.cjs +10 -24
  234. package/dist/components/ui/sheet/sheet.cjs.map +1 -1
  235. package/dist/components/ui/sheet/sheet.js +10 -24
  236. package/dist/components/ui/sheet/sheet.js.map +1 -1
  237. package/dist/components/ui/skeleton/skeleton.cjs +2 -11
  238. package/dist/components/ui/skeleton/skeleton.cjs.map +1 -1
  239. package/dist/components/ui/skeleton/skeleton.js +2 -11
  240. package/dist/components/ui/skeleton/skeleton.js.map +1 -1
  241. package/dist/components/ui/slider/slider.cjs +1 -4
  242. package/dist/components/ui/slider/slider.cjs.map +1 -1
  243. package/dist/components/ui/slider/slider.js +1 -4
  244. package/dist/components/ui/slider/slider.js.map +1 -1
  245. package/dist/components/ui/sonner/index.d.cts +1 -1
  246. package/dist/components/ui/sonner/index.d.ts +1 -1
  247. package/dist/components/ui/sonner/sonner.cjs +4 -2
  248. package/dist/components/ui/sonner/sonner.cjs.map +1 -1
  249. package/dist/components/ui/sonner/sonner.d.cts +1 -0
  250. package/dist/components/ui/sonner/sonner.d.ts +1 -0
  251. package/dist/components/ui/sonner/sonner.js +3 -2
  252. package/dist/components/ui/sonner/sonner.js.map +1 -1
  253. package/dist/components/ui/spinner/spinner.cjs +1 -1
  254. package/dist/components/ui/spinner/spinner.cjs.map +1 -1
  255. package/dist/components/ui/spinner/spinner.js +1 -1
  256. package/dist/components/ui/spinner/spinner.js.map +1 -1
  257. package/dist/components/ui/switch/switch.cjs.map +1 -1
  258. package/dist/components/ui/switch/switch.js.map +1 -1
  259. package/dist/components/ui/table/table.cjs +6 -28
  260. package/dist/components/ui/table/table.cjs.map +1 -1
  261. package/dist/components/ui/table/table.js +6 -28
  262. package/dist/components/ui/table/table.js.map +1 -1
  263. package/dist/components/ui/tabs/tabs.cjs.map +1 -1
  264. package/dist/components/ui/tabs/tabs.js.map +1 -1
  265. package/dist/components/ui/textarea/textarea.cjs +1 -4
  266. package/dist/components/ui/textarea/textarea.cjs.map +1 -1
  267. package/dist/components/ui/textarea/textarea.js +1 -4
  268. package/dist/components/ui/textarea/textarea.js.map +1 -1
  269. package/dist/components/ui/toast/toast.cjs +3 -12
  270. package/dist/components/ui/toast/toast.cjs.map +1 -1
  271. package/dist/components/ui/toast/toast.js +3 -12
  272. package/dist/components/ui/toast/toast.js.map +1 -1
  273. package/dist/components/ui/toggle/toggle.cjs.map +1 -1
  274. package/dist/components/ui/toggle/toggle.js.map +1 -1
  275. package/dist/components/ui/toggle-group/toggle-group.cjs +1 -4
  276. package/dist/components/ui/toggle-group/toggle-group.cjs.map +1 -1
  277. package/dist/components/ui/toggle-group/toggle-group.js +1 -4
  278. package/dist/components/ui/toggle-group/toggle-group.js.map +1 -1
  279. package/dist/components/ui/tooltip/tooltip.cjs.map +1 -1
  280. package/dist/components/ui/tooltip/tooltip.js.map +1 -1
  281. package/dist/index.d.cts +1 -1
  282. package/dist/index.d.ts +1 -1
  283. package/package.json +1 -1
@@ -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":"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","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":[]}
@@ -26,7 +26,7 @@ var import_input = require("../../../../ui/input");
26
26
  var import_label = require("../../../../ui/label");
27
27
  var import_textarea = require("../../../../ui/textarea");
28
28
  function PersonalInfo({ data, onChange, hideFields = [] }) {
29
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "space-y-4 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4", children: [
29
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "space-y-4 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [
30
30
  !hideFields.includes("first_name") && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-2", children: [
31
31
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_label.Label, { children: "Nombre(s) *" }),
32
32
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/personal-info.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input } from \"../../../../ui/input\";\nimport { Label } from \"../../../../ui/label\";\nimport { Textarea } from \"../../../../ui/textarea\";\n\ninterface PersonalInfoProps {\n data: CandidateProfile;\n onChange: (partial: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n}\n\nexport function PersonalInfo({ data, onChange, hideFields = [] }: PersonalInfoProps) {\n return (\n <div className=\"space-y-4 pt-2\">\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4\">\n {!hideFields.includes(\"first_name\") && (\n <div className=\"space-y-2\">\n <Label>Nombre(s) *</Label>\n <Input\n value={data.first_name || \"\"}\n onChange={(e) => onChange({ first_name: e.target.value })}\n placeholder=\"Ej. Juan\"\n />\n </div>\n )}\n {!hideFields.includes(\"middle_name\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"middle_name\">Segundo nombre</Label>\n <Input\n id=\"middle_name\"\n value={data.middle_name || \"\"}\n onChange={(e) => onChange({ middle_name: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"last_name\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"last_name\">Primer apellido *</Label>\n <Input\n id=\"last_name\"\n value={data.last_name || \"\"}\n onChange={(e) => onChange({ last_name: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"second_last_name\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"second_last_name\">Segundo apellido</Label>\n <Input\n id=\"second_last_name\"\n value={data.second_last_name || \"\"}\n onChange={(e) => onChange({ second_last_name: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"phone_number\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"phone_number\">Teléfono *</Label>\n <Input\n id=\"phone_number\"\n value={data.phone_number || \"\"}\n onChange={(e) => onChange({ phone_number: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"phone_number_2\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"phone_number_2\">Teléfono 2</Label>\n <Input\n id=\"phone_number_2\"\n value={data.phone_number_2 || \"\"}\n onChange={(e) => onChange({ phone_number_2: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"email\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label htmlFor=\"email\">Email</Label>\n <Input\n id=\"email\"\n type=\"email\"\n value={data.email || \"\"}\n onChange={(e) => onChange({ email: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"birth_date\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label htmlFor=\"birth_date\">Fecha de nacimiento</Label>\n <Input\n id=\"birth_date\"\n type=\"date\"\n value={data.birth_date || \"\"}\n onChange={(e) => onChange({ birth_date: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"city\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"city\">Ciudad</Label>\n <Input\n id=\"city\"\n value={data.city || \"\"}\n onChange={(e) => onChange({ city: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"postal_code\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"postal_code\">Código postal</Label>\n <Input\n id=\"postal_code\"\n value={data.postal_code || \"\"}\n onChange={(e) => onChange({ postal_code: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"address\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label htmlFor=\"address\">Dirección</Label>\n <Input\n id=\"address\"\n value={data.address || \"\"}\n onChange={(e) => onChange({ address: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"summary\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label htmlFor=\"summary\">Resumen profesional</Label>\n <Textarea\n id=\"summary\"\n value={data.summary || \"\"}\n onChange={(e) => onChange({ summary: e.target.value })}\n rows={4}\n />\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/personal-info.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input } from \"../../../../ui/input\";\nimport { Label } from \"../../../../ui/label\";\nimport { Textarea } from \"../../../../ui/textarea\";\n\ninterface PersonalInfoProps {\n data: CandidateProfile;\n onChange: (partial: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n}\n\nexport function PersonalInfo({ data, onChange, hideFields = [] }: PersonalInfoProps) {\n return (\n <div className=\"space-y-4 pt-2\">\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2\">\n {!hideFields.includes(\"first_name\") && (\n <div className=\"space-y-2\">\n <Label>Nombre(s) *</Label>\n <Input\n value={data.first_name || \"\"}\n onChange={(e) => onChange({ first_name: e.target.value })}\n placeholder=\"Ej. Juan\"\n />\n </div>\n )}\n {!hideFields.includes(\"middle_name\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"middle_name\">Segundo nombre</Label>\n <Input\n id=\"middle_name\"\n value={data.middle_name || \"\"}\n onChange={(e) => onChange({ middle_name: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"last_name\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"last_name\">Primer apellido *</Label>\n <Input\n id=\"last_name\"\n value={data.last_name || \"\"}\n onChange={(e) => onChange({ last_name: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"second_last_name\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"second_last_name\">Segundo apellido</Label>\n <Input\n id=\"second_last_name\"\n value={data.second_last_name || \"\"}\n onChange={(e) => onChange({ second_last_name: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"phone_number\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"phone_number\">Teléfono *</Label>\n <Input\n id=\"phone_number\"\n value={data.phone_number || \"\"}\n onChange={(e) => onChange({ phone_number: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"phone_number_2\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"phone_number_2\">Teléfono 2</Label>\n <Input\n id=\"phone_number_2\"\n value={data.phone_number_2 || \"\"}\n onChange={(e) => onChange({ phone_number_2: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"email\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label htmlFor=\"email\">Email</Label>\n <Input\n id=\"email\"\n type=\"email\"\n value={data.email || \"\"}\n onChange={(e) => onChange({ email: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"birth_date\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label htmlFor=\"birth_date\">Fecha de nacimiento</Label>\n <Input\n id=\"birth_date\"\n type=\"date\"\n value={data.birth_date || \"\"}\n onChange={(e) => onChange({ birth_date: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"city\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"city\">Ciudad</Label>\n <Input\n id=\"city\"\n value={data.city || \"\"}\n onChange={(e) => onChange({ city: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"postal_code\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"postal_code\">Código postal</Label>\n <Input\n id=\"postal_code\"\n value={data.postal_code || \"\"}\n onChange={(e) => onChange({ postal_code: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"address\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label htmlFor=\"address\">Dirección</Label>\n <Input\n id=\"address\"\n value={data.address || \"\"}\n onChange={(e) => onChange({ address: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"summary\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label htmlFor=\"summary\">Resumen profesional</Label>\n <Textarea\n id=\"summary\"\n value={data.summary || \"\"}\n onChange={(e) => onChange({ summary: e.target.value })}\n rows={4}\n />\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
@@ -3,7 +3,7 @@ import { Input } from "../../../../ui/input";
3
3
  import { Label } from "../../../../ui/label";
4
4
  import { Textarea } from "../../../../ui/textarea";
5
5
  function PersonalInfo({ data, onChange, hideFields = [] }) {
6
- return /* @__PURE__ */ jsx("div", { className: "space-y-4 pt-2", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4", children: [
6
+ return /* @__PURE__ */ jsx("div", { className: "space-y-4 pt-2", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [
7
7
  !hideFields.includes("first_name") && /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
8
8
  /* @__PURE__ */ jsx(Label, { children: "Nombre(s) *" }),
9
9
  /* @__PURE__ */ jsx(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/personal-info.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input } from \"../../../../ui/input\";\nimport { Label } from \"../../../../ui/label\";\nimport { Textarea } from \"../../../../ui/textarea\";\n\ninterface PersonalInfoProps {\n data: CandidateProfile;\n onChange: (partial: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n}\n\nexport function PersonalInfo({ data, onChange, hideFields = [] }: PersonalInfoProps) {\n return (\n <div className=\"space-y-4 pt-2\">\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4\">\n {!hideFields.includes(\"first_name\") && (\n <div className=\"space-y-2\">\n <Label>Nombre(s) *</Label>\n <Input\n value={data.first_name || \"\"}\n onChange={(e) => onChange({ first_name: e.target.value })}\n placeholder=\"Ej. Juan\"\n />\n </div>\n )}\n {!hideFields.includes(\"middle_name\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"middle_name\">Segundo nombre</Label>\n <Input\n id=\"middle_name\"\n value={data.middle_name || \"\"}\n onChange={(e) => onChange({ middle_name: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"last_name\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"last_name\">Primer apellido *</Label>\n <Input\n id=\"last_name\"\n value={data.last_name || \"\"}\n onChange={(e) => onChange({ last_name: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"second_last_name\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"second_last_name\">Segundo apellido</Label>\n <Input\n id=\"second_last_name\"\n value={data.second_last_name || \"\"}\n onChange={(e) => onChange({ second_last_name: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"phone_number\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"phone_number\">Teléfono *</Label>\n <Input\n id=\"phone_number\"\n value={data.phone_number || \"\"}\n onChange={(e) => onChange({ phone_number: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"phone_number_2\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"phone_number_2\">Teléfono 2</Label>\n <Input\n id=\"phone_number_2\"\n value={data.phone_number_2 || \"\"}\n onChange={(e) => onChange({ phone_number_2: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"email\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label htmlFor=\"email\">Email</Label>\n <Input\n id=\"email\"\n type=\"email\"\n value={data.email || \"\"}\n onChange={(e) => onChange({ email: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"birth_date\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label htmlFor=\"birth_date\">Fecha de nacimiento</Label>\n <Input\n id=\"birth_date\"\n type=\"date\"\n value={data.birth_date || \"\"}\n onChange={(e) => onChange({ birth_date: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"city\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"city\">Ciudad</Label>\n <Input\n id=\"city\"\n value={data.city || \"\"}\n onChange={(e) => onChange({ city: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"postal_code\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"postal_code\">Código postal</Label>\n <Input\n id=\"postal_code\"\n value={data.postal_code || \"\"}\n onChange={(e) => onChange({ postal_code: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"address\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label htmlFor=\"address\">Dirección</Label>\n <Input\n id=\"address\"\n value={data.address || \"\"}\n onChange={(e) => onChange({ address: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"summary\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label htmlFor=\"summary\">Resumen profesional</Label>\n <Textarea\n id=\"summary\"\n value={data.summary || \"\"}\n onChange={(e) => onChange({ summary: e.target.value })}\n rows={4}\n />\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/personal-info.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input } from \"../../../../ui/input\";\nimport { Label } from \"../../../../ui/label\";\nimport { Textarea } from \"../../../../ui/textarea\";\n\ninterface PersonalInfoProps {\n data: CandidateProfile;\n onChange: (partial: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n}\n\nexport function PersonalInfo({ data, onChange, hideFields = [] }: PersonalInfoProps) {\n return (\n <div className=\"space-y-4 pt-2\">\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2\">\n {!hideFields.includes(\"first_name\") && (\n <div className=\"space-y-2\">\n <Label>Nombre(s) *</Label>\n <Input\n value={data.first_name || \"\"}\n onChange={(e) => onChange({ first_name: e.target.value })}\n placeholder=\"Ej. Juan\"\n />\n </div>\n )}\n {!hideFields.includes(\"middle_name\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"middle_name\">Segundo nombre</Label>\n <Input\n id=\"middle_name\"\n value={data.middle_name || \"\"}\n onChange={(e) => onChange({ middle_name: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"last_name\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"last_name\">Primer apellido *</Label>\n <Input\n id=\"last_name\"\n value={data.last_name || \"\"}\n onChange={(e) => onChange({ last_name: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"second_last_name\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"second_last_name\">Segundo apellido</Label>\n <Input\n id=\"second_last_name\"\n value={data.second_last_name || \"\"}\n onChange={(e) => onChange({ second_last_name: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"phone_number\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"phone_number\">Teléfono *</Label>\n <Input\n id=\"phone_number\"\n value={data.phone_number || \"\"}\n onChange={(e) => onChange({ phone_number: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"phone_number_2\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"phone_number_2\">Teléfono 2</Label>\n <Input\n id=\"phone_number_2\"\n value={data.phone_number_2 || \"\"}\n onChange={(e) => onChange({ phone_number_2: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"email\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label htmlFor=\"email\">Email</Label>\n <Input\n id=\"email\"\n type=\"email\"\n value={data.email || \"\"}\n onChange={(e) => onChange({ email: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"birth_date\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label htmlFor=\"birth_date\">Fecha de nacimiento</Label>\n <Input\n id=\"birth_date\"\n type=\"date\"\n value={data.birth_date || \"\"}\n onChange={(e) => onChange({ birth_date: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"city\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"city\">Ciudad</Label>\n <Input\n id=\"city\"\n value={data.city || \"\"}\n onChange={(e) => onChange({ city: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"postal_code\") && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"postal_code\">Código postal</Label>\n <Input\n id=\"postal_code\"\n value={data.postal_code || \"\"}\n onChange={(e) => onChange({ postal_code: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"address\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label htmlFor=\"address\">Dirección</Label>\n <Input\n id=\"address\"\n value={data.address || \"\"}\n onChange={(e) => onChange({ address: e.target.value })}\n />\n </div>\n )}\n {!hideFields.includes(\"summary\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label htmlFor=\"summary\">Resumen profesional</Label>\n <Textarea\n id=\"summary\"\n value={data.summary || \"\"}\n onChange={(e) => onChange({ summary: e.target.value })}\n rows={4}\n />\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
@@ -23,7 +23,7 @@ __export(preferences_exports, {
23
23
  module.exports = __toCommonJS(preferences_exports);
24
24
  var import_jsx_runtime = require("react/jsx-runtime");
25
25
  var import_ui = require("../../../../ui");
26
- var import_constants = require("@/constants");
26
+ var import_constants = require("../../../../../constants");
27
27
  function PreferencesSection({ data, onChange, hideFields = [] }) {
28
28
  const prefs = data.preferences || {};
29
29
  const handleUpdate = (field, value) => {
@@ -32,7 +32,7 @@ function PreferencesSection({ data, onChange, hideFields = [] }) {
32
32
  const stateOptions = (0, import_constants.getCandidateStateOptions)();
33
33
  const employmentOptions = (0, import_constants.getEmploymentPreferenceOptions)();
34
34
  const workStudyOptions = (0, import_constants.getWorkStudyPreferenceOptions)();
35
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "space-y-4 pt-2 pb-4", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
35
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "space-y-4 pb-4 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [
36
36
  prefs.candidate_state !== void 0 && !hideFields.includes("preferences.candidate_state") && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-2 md:col-span-2", children: [
37
37
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ui.Label, { children: "Estado del candidato" }),
38
38
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/preferences.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input, Label } from \"../../../../ui\";\nimport {\n getCandidateStateOptions,\n getEmploymentPreferenceOptions,\n getWorkStudyPreferenceOptions\n} from \"@/constants\";\n\ninterface PreferencesProps {\n data: CandidateProfile;\n onChange: (partial: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n}\n\nexport function PreferencesSection({ data, onChange, hideFields = [] }: PreferencesProps) {\n const prefs = data.preferences || {};\n\n const handleUpdate = (field: string, value: string | number | boolean) => {\n onChange({ preferences: { ...prefs, [field]: value } });\n };\n\n const stateOptions = getCandidateStateOptions();\n const employmentOptions = getEmploymentPreferenceOptions();\n const workStudyOptions = getWorkStudyPreferenceOptions();\n\n return (\n <div className=\"space-y-4 pt-2 pb-4\">\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n {prefs.candidate_state !== undefined && !hideFields.includes(\"preferences.candidate_state\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Estado del candidato</Label>\n <select\n className=\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"\n value={prefs.candidate_state || \"\"}\n onChange={(e) => handleUpdate('candidate_state', e.target.value)}\n >\n <option value=\"\">Selecciona un estado</option>\n {stateOptions.map(opt => (\n <option key={opt.value} value={opt.value}>{opt.label}</option>\n ))}\n </select>\n </div>\n )}\n {prefs.employment_preference !== undefined && !hideFields.includes(\"preferences.employment_preference\") && (\n <div className=\"space-y-2\">\n <Label>Preferencia de empleo</Label>\n <select\n className=\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"\n value={prefs.employment_preference || \"\"}\n onChange={(e) => handleUpdate('employment_preference', e.target.value)}\n >\n <option value=\"\">Selecciona</option>\n {employmentOptions.map(opt => (\n <option key={opt.value} value={opt.value}>{opt.label}</option>\n ))}\n </select>\n </div>\n )}\n {prefs.work_study_preference !== undefined && !hideFields.includes(\"preferences.work_study_preference\") && (\n <div className=\"space-y-2\">\n <Label>Preferencia trabajo/estudio</Label>\n <select\n className=\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"\n value={prefs.work_study_preference || \"\"}\n onChange={(e) => handleUpdate('work_study_preference', e.target.value)}\n >\n <option value=\"\">Selecciona</option>\n {workStudyOptions.map(opt => (\n <option key={opt.value} value={opt.value}>{opt.label}</option>\n ))}\n </select>\n </div>\n )}\n {prefs.min_expected_salary !== undefined && !hideFields.includes(\"preferences.min_expected_salary\") && (\n <div className=\"space-y-2\">\n <Label>Salario mínimo esperado</Label>\n <Input\n type=\"number\"\n value={prefs.min_expected_salary || \"\"}\n onChange={(e) => handleUpdate('min_expected_salary', Number(e.target.value))}\n />\n </div>\n )}\n {prefs.max_expected_salary !== undefined && !hideFields.includes(\"preferences.max_expected_salary\") && (\n <div className=\"space-y-2\">\n <Label>Salario máximo esperado</Label>\n <Input\n type=\"number\"\n value={prefs.max_expected_salary || \"\"}\n onChange={(e) => handleUpdate('max_expected_salary', Number(e.target.value))}\n />\n </div>\n )}\n {prefs.desired_role !== undefined && !hideFields.includes(\"preferences.desired_role\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Rol deseado</Label>\n <Input\n value={prefs.desired_role || \"\"}\n onChange={(e) => handleUpdate('desired_role', e.target.value)}\n />\n </div>\n )}\n {prefs.dream_job !== undefined && !hideFields.includes(\"preferences.dream_job\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Trabajo soñado</Label>\n <Input\n value={prefs.dream_job || \"\"}\n onChange={(e) => handleUpdate('dream_job', e.target.value)}\n />\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/preferences.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input, Label } from \"../../../../ui\";\nimport {\n getCandidateStateOptions,\n getEmploymentPreferenceOptions,\n getWorkStudyPreferenceOptions,\n} from \"../../../../../constants\";\n\ninterface PreferencesProps {\n data: CandidateProfile;\n onChange: (partial: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n}\n\nexport function PreferencesSection({ data, onChange, hideFields = [] }: PreferencesProps) {\n const prefs = data.preferences || {};\n\n const handleUpdate = (field: string, value: string | number | boolean) => {\n onChange({ preferences: { ...prefs, [field]: value } });\n };\n\n const stateOptions = getCandidateStateOptions();\n const employmentOptions = getEmploymentPreferenceOptions();\n const workStudyOptions = getWorkStudyPreferenceOptions();\n\n return (\n <div className=\"space-y-4 pb-4 pt-2\">\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n {prefs.candidate_state !== undefined &&\n !hideFields.includes(\"preferences.candidate_state\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Estado del candidato</Label>\n <select\n className=\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"\n value={prefs.candidate_state || \"\"}\n onChange={(e) => handleUpdate(\"candidate_state\", e.target.value)}\n >\n <option value=\"\">Selecciona un estado</option>\n {stateOptions.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n )}\n {prefs.employment_preference !== undefined &&\n !hideFields.includes(\"preferences.employment_preference\") && (\n <div className=\"space-y-2\">\n <Label>Preferencia de empleo</Label>\n <select\n className=\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"\n value={prefs.employment_preference || \"\"}\n onChange={(e) => handleUpdate(\"employment_preference\", e.target.value)}\n >\n <option value=\"\">Selecciona</option>\n {employmentOptions.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n )}\n {prefs.work_study_preference !== undefined &&\n !hideFields.includes(\"preferences.work_study_preference\") && (\n <div className=\"space-y-2\">\n <Label>Preferencia trabajo/estudio</Label>\n <select\n className=\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"\n value={prefs.work_study_preference || \"\"}\n onChange={(e) => handleUpdate(\"work_study_preference\", e.target.value)}\n >\n <option value=\"\">Selecciona</option>\n {workStudyOptions.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n )}\n {prefs.min_expected_salary !== undefined &&\n !hideFields.includes(\"preferences.min_expected_salary\") && (\n <div className=\"space-y-2\">\n <Label>Salario mínimo esperado</Label>\n <Input\n type=\"number\"\n value={prefs.min_expected_salary || \"\"}\n onChange={(e) => handleUpdate(\"min_expected_salary\", Number(e.target.value))}\n />\n </div>\n )}\n {prefs.max_expected_salary !== undefined &&\n !hideFields.includes(\"preferences.max_expected_salary\") && (\n <div className=\"space-y-2\">\n <Label>Salario máximo esperado</Label>\n <Input\n type=\"number\"\n value={prefs.max_expected_salary || \"\"}\n onChange={(e) => handleUpdate(\"max_expected_salary\", Number(e.target.value))}\n />\n </div>\n )}\n {prefs.desired_role !== undefined && !hideFields.includes(\"preferences.desired_role\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Rol deseado</Label>\n <Input\n value={prefs.desired_role || \"\"}\n onChange={(e) => handleUpdate(\"desired_role\", e.target.value)}\n />\n </div>\n )}\n {prefs.dream_job !== undefined && !hideFields.includes(\"preferences.dream_job\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Trabajo soñado</Label>\n <Input\n value={prefs.dream_job || \"\"}\n onChange={(e) => handleUpdate(\"dream_job\", e.target.value)}\n />\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
@@ -4,7 +4,7 @@ import {
4
4
  getCandidateStateOptions,
5
5
  getEmploymentPreferenceOptions,
6
6
  getWorkStudyPreferenceOptions
7
- } from "@/constants";
7
+ } from "../../../../../constants";
8
8
  function PreferencesSection({ data, onChange, hideFields = [] }) {
9
9
  const prefs = data.preferences || {};
10
10
  const handleUpdate = (field, value) => {
@@ -13,7 +13,7 @@ function PreferencesSection({ data, onChange, hideFields = [] }) {
13
13
  const stateOptions = getCandidateStateOptions();
14
14
  const employmentOptions = getEmploymentPreferenceOptions();
15
15
  const workStudyOptions = getWorkStudyPreferenceOptions();
16
- return /* @__PURE__ */ jsx("div", { className: "space-y-4 pt-2 pb-4", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
16
+ return /* @__PURE__ */ jsx("div", { className: "space-y-4 pb-4 pt-2", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [
17
17
  prefs.candidate_state !== void 0 && !hideFields.includes("preferences.candidate_state") && /* @__PURE__ */ jsxs("div", { className: "space-y-2 md:col-span-2", children: [
18
18
  /* @__PURE__ */ jsx(Label, { children: "Estado del candidato" }),
19
19
  /* @__PURE__ */ jsxs(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/preferences.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input, Label } from \"../../../../ui\";\nimport {\n getCandidateStateOptions,\n getEmploymentPreferenceOptions,\n getWorkStudyPreferenceOptions\n} from \"@/constants\";\n\ninterface PreferencesProps {\n data: CandidateProfile;\n onChange: (partial: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n}\n\nexport function PreferencesSection({ data, onChange, hideFields = [] }: PreferencesProps) {\n const prefs = data.preferences || {};\n\n const handleUpdate = (field: string, value: string | number | boolean) => {\n onChange({ preferences: { ...prefs, [field]: value } });\n };\n\n const stateOptions = getCandidateStateOptions();\n const employmentOptions = getEmploymentPreferenceOptions();\n const workStudyOptions = getWorkStudyPreferenceOptions();\n\n return (\n <div className=\"space-y-4 pt-2 pb-4\">\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n {prefs.candidate_state !== undefined && !hideFields.includes(\"preferences.candidate_state\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Estado del candidato</Label>\n <select\n className=\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"\n value={prefs.candidate_state || \"\"}\n onChange={(e) => handleUpdate('candidate_state', e.target.value)}\n >\n <option value=\"\">Selecciona un estado</option>\n {stateOptions.map(opt => (\n <option key={opt.value} value={opt.value}>{opt.label}</option>\n ))}\n </select>\n </div>\n )}\n {prefs.employment_preference !== undefined && !hideFields.includes(\"preferences.employment_preference\") && (\n <div className=\"space-y-2\">\n <Label>Preferencia de empleo</Label>\n <select\n className=\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"\n value={prefs.employment_preference || \"\"}\n onChange={(e) => handleUpdate('employment_preference', e.target.value)}\n >\n <option value=\"\">Selecciona</option>\n {employmentOptions.map(opt => (\n <option key={opt.value} value={opt.value}>{opt.label}</option>\n ))}\n </select>\n </div>\n )}\n {prefs.work_study_preference !== undefined && !hideFields.includes(\"preferences.work_study_preference\") && (\n <div className=\"space-y-2\">\n <Label>Preferencia trabajo/estudio</Label>\n <select\n className=\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"\n value={prefs.work_study_preference || \"\"}\n onChange={(e) => handleUpdate('work_study_preference', e.target.value)}\n >\n <option value=\"\">Selecciona</option>\n {workStudyOptions.map(opt => (\n <option key={opt.value} value={opt.value}>{opt.label}</option>\n ))}\n </select>\n </div>\n )}\n {prefs.min_expected_salary !== undefined && !hideFields.includes(\"preferences.min_expected_salary\") && (\n <div className=\"space-y-2\">\n <Label>Salario mínimo esperado</Label>\n <Input\n type=\"number\"\n value={prefs.min_expected_salary || \"\"}\n onChange={(e) => handleUpdate('min_expected_salary', Number(e.target.value))}\n />\n </div>\n )}\n {prefs.max_expected_salary !== undefined && !hideFields.includes(\"preferences.max_expected_salary\") && (\n <div className=\"space-y-2\">\n <Label>Salario máximo esperado</Label>\n <Input\n type=\"number\"\n value={prefs.max_expected_salary || \"\"}\n onChange={(e) => handleUpdate('max_expected_salary', Number(e.target.value))}\n />\n </div>\n )}\n {prefs.desired_role !== undefined && !hideFields.includes(\"preferences.desired_role\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Rol deseado</Label>\n <Input\n value={prefs.desired_role || \"\"}\n onChange={(e) => handleUpdate('desired_role', e.target.value)}\n />\n </div>\n )}\n {prefs.dream_job !== undefined && !hideFields.includes(\"preferences.dream_job\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Trabajo soñado</Label>\n <Input\n value={prefs.dream_job || \"\"}\n onChange={(e) => handleUpdate('dream_job', e.target.value)}\n />\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/preferences.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input, Label } from \"../../../../ui\";\nimport {\n getCandidateStateOptions,\n getEmploymentPreferenceOptions,\n getWorkStudyPreferenceOptions,\n} from \"../../../../../constants\";\n\ninterface PreferencesProps {\n data: CandidateProfile;\n onChange: (partial: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n}\n\nexport function PreferencesSection({ data, onChange, hideFields = [] }: PreferencesProps) {\n const prefs = data.preferences || {};\n\n const handleUpdate = (field: string, value: string | number | boolean) => {\n onChange({ preferences: { ...prefs, [field]: value } });\n };\n\n const stateOptions = getCandidateStateOptions();\n const employmentOptions = getEmploymentPreferenceOptions();\n const workStudyOptions = getWorkStudyPreferenceOptions();\n\n return (\n <div className=\"space-y-4 pb-4 pt-2\">\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n {prefs.candidate_state !== undefined &&\n !hideFields.includes(\"preferences.candidate_state\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Estado del candidato</Label>\n <select\n className=\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"\n value={prefs.candidate_state || \"\"}\n onChange={(e) => handleUpdate(\"candidate_state\", e.target.value)}\n >\n <option value=\"\">Selecciona un estado</option>\n {stateOptions.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n )}\n {prefs.employment_preference !== undefined &&\n !hideFields.includes(\"preferences.employment_preference\") && (\n <div className=\"space-y-2\">\n <Label>Preferencia de empleo</Label>\n <select\n className=\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"\n value={prefs.employment_preference || \"\"}\n onChange={(e) => handleUpdate(\"employment_preference\", e.target.value)}\n >\n <option value=\"\">Selecciona</option>\n {employmentOptions.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n )}\n {prefs.work_study_preference !== undefined &&\n !hideFields.includes(\"preferences.work_study_preference\") && (\n <div className=\"space-y-2\">\n <Label>Preferencia trabajo/estudio</Label>\n <select\n className=\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"\n value={prefs.work_study_preference || \"\"}\n onChange={(e) => handleUpdate(\"work_study_preference\", e.target.value)}\n >\n <option value=\"\">Selecciona</option>\n {workStudyOptions.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n )}\n {prefs.min_expected_salary !== undefined &&\n !hideFields.includes(\"preferences.min_expected_salary\") && (\n <div className=\"space-y-2\">\n <Label>Salario mínimo esperado</Label>\n <Input\n type=\"number\"\n value={prefs.min_expected_salary || \"\"}\n onChange={(e) => handleUpdate(\"min_expected_salary\", Number(e.target.value))}\n />\n </div>\n )}\n {prefs.max_expected_salary !== undefined &&\n !hideFields.includes(\"preferences.max_expected_salary\") && (\n <div className=\"space-y-2\">\n <Label>Salario máximo esperado</Label>\n <Input\n type=\"number\"\n value={prefs.max_expected_salary || \"\"}\n onChange={(e) => handleUpdate(\"max_expected_salary\", Number(e.target.value))}\n />\n </div>\n )}\n {prefs.desired_role !== undefined && !hideFields.includes(\"preferences.desired_role\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Rol deseado</Label>\n <Input\n value={prefs.desired_role || \"\"}\n onChange={(e) => handleUpdate(\"desired_role\", e.target.value)}\n />\n </div>\n )}\n {prefs.dream_job !== undefined && !hideFields.includes(\"preferences.dream_job\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Trabajo soñado</Label>\n <Input\n value={prefs.dream_job || \"\"}\n onChange={(e) => handleUpdate(\"dream_job\", e.target.value)}\n />\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
@@ -48,24 +48,24 @@ function RequirementsSection({ data, onChange, hideFields = [] }) {
48
48
  }
49
49
  });
50
50
  };
51
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "pt-2 pb-4", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ui.Tabs, { defaultValue: "documents", className: "w-full", children: [
51
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "pb-4 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ui.Tabs, { defaultValue: "documents", className: "w-full", children: [
52
52
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ui.TabsList, { className: "w-full", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ui.TabsTrigger, { value: "documents", className: "flex-1", children: "Documentos" }) }),
53
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ui.TabsContent, { value: "documents", className: "space-y-6 mt-4", children: [
54
- documents.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
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ui.TabsContent, { value: "documents", className: "mt-4 space-y-6", children: [
54
+ documents.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-4 rounded-lg border border-border p-4 shadow-md", children: [
55
55
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between", children: [
56
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.FileCheck, { className: "w-5 h-5 text-secondary" }),
56
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.FileCheck, { className: "h-5 w-5 text-secondary" }),
57
57
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
58
58
  import_ui.Button,
59
59
  {
60
60
  variant: "ghost",
61
61
  size: "sm",
62
- 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",
63
63
  onClick: () => handleRemove(index),
64
- 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" })
65
65
  }
66
66
  )
67
67
  ] }),
68
- /* @__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: [
69
69
  !hideFields.includes("requirements.document_type") && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-2", children: [
70
70
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ui.Label, { children: "Tipo de documento" }),
71
71
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -109,10 +109,18 @@ function RequirementsSection({ data, onChange, hideFields = [] }) {
109
109
  ] })
110
110
  ] })
111
111
  ] }, item.id)),
112
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ui.Button, { variant: "outline", className: "w-full flex items-center justify-center gap-2", onClick: handleAdd, children: [
113
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Plus, { className: "w-4 h-4" }),
114
- "A\xF1adir documento"
115
- ] })
112
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
113
+ import_ui.Button,
114
+ {
115
+ variant: "outline",
116
+ className: "flex w-full items-center justify-center gap-2",
117
+ onClick: handleAdd,
118
+ children: [
119
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Plus, { className: "h-4 w-4" }),
120
+ "A\xF1adir documento"
121
+ ]
122
+ }
123
+ )
116
124
  ] })
117
125
  ] }) });
118
126
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/requirements.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input, Label, Button, Tabs, TabsList, TabsTrigger, TabsContent, Textarea } from \"../../../../ui\";\nimport { Plus, Trash2, FileCheck } from \"lucide-react\";\n\ninterface RequirementsProps {\n data: CandidateProfile;\n onChange: (partial: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n}\n\nexport function RequirementsSection({ data, onChange, hideFields = [] }: RequirementsProps) {\n const documents = data.work_requirements?.documents || [];\n\n const handleUpdate = (index: number, field: string, value: any) => {\n const updated = [...documents];\n updated[index] = { ...updated[index], [field]: value };\n onChange({ work_requirements: { documents: updated } });\n };\n\n const handleAdd = () => {\n onChange({\n work_requirements: {\n documents: [\n ...documents,\n { id: `temp-doc-${Date.now()}`, document_type: \"\", document_status: \"existent\" }\n ]\n }\n });\n };\n\n const handleRemove = (index: number) => {\n onChange({\n work_requirements: {\n documents: documents.filter((_, i) => i !== index)\n }\n });\n };\n\n return (\n <div className=\"pt-2 pb-4\">\n <Tabs defaultValue=\"documents\" className=\"w-full\">\n <TabsList className=\"w-full\">\n <TabsTrigger value=\"documents\" className=\"flex-1\">Documentos</TabsTrigger>\n </TabsList>\n <TabsContent value=\"documents\" className=\"space-y-6 mt-4\">\n {documents.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 <FileCheck 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(\"requirements.document_type\") && (\n <div className=\"space-y-2\">\n <Label>Tipo de documento</Label>\n <Input\n value={item.document_type || \"\"}\n onChange={(e) => handleUpdate(index, 'document_type', e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"requirements.document_status\") && (\n <div className=\"space-y-2\">\n <Label>Estado del documento</Label>\n <Input\n value={item.document_status || \"\"}\n onChange={(e) => handleUpdate(index, 'document_status', e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"requirements.appointment_date\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Fecha de cita</Label>\n <Input\n type=\"datetime-local\"\n value={item.appointment_date || \"\"}\n onChange={(e) => handleUpdate(index, 'appointment_date', e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"requirements.comments\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Comentarios</Label>\n <Textarea\n value={item.comments || \"\"}\n onChange={(e) => handleUpdate(index, 'comments', 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 documento\n </Button>\n </TabsContent>\n </Tabs>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/requirements.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport {\n Input,\n Label,\n Button,\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n Textarea,\n} from \"../../../../ui\";\nimport { Plus, Trash2, FileCheck } from \"lucide-react\";\n\ninterface RequirementsProps {\n data: CandidateProfile;\n onChange: (partial: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n}\n\nexport function RequirementsSection({ data, onChange, hideFields = [] }: RequirementsProps) {\n const documents = data.work_requirements?.documents || [];\n\n const handleUpdate = (index: number, field: string, value: any) => {\n const updated = [...documents];\n updated[index] = { ...updated[index], [field]: value };\n onChange({ work_requirements: { documents: updated } });\n };\n\n const handleAdd = () => {\n onChange({\n work_requirements: {\n documents: [\n ...documents,\n { id: `temp-doc-${Date.now()}`, document_type: \"\", document_status: \"existent\" },\n ],\n },\n });\n };\n\n const handleRemove = (index: number) => {\n onChange({\n work_requirements: {\n documents: documents.filter((_, i) => i !== index),\n },\n });\n };\n\n return (\n <div className=\"pb-4 pt-2\">\n <Tabs defaultValue=\"documents\" className=\"w-full\">\n <TabsList className=\"w-full\">\n <TabsTrigger value=\"documents\" className=\"flex-1\">\n Documentos\n </TabsTrigger>\n </TabsList>\n <TabsContent value=\"documents\" className=\"mt-4 space-y-6\">\n {documents.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 <FileCheck 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(\"requirements.document_type\") && (\n <div className=\"space-y-2\">\n <Label>Tipo de documento</Label>\n <Input\n value={item.document_type || \"\"}\n onChange={(e) => handleUpdate(index, \"document_type\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"requirements.document_status\") && (\n <div className=\"space-y-2\">\n <Label>Estado del documento</Label>\n <Input\n value={item.document_status || \"\"}\n onChange={(e) => handleUpdate(index, \"document_status\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"requirements.appointment_date\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Fecha de cita</Label>\n <Input\n type=\"datetime-local\"\n value={item.appointment_date || \"\"}\n onChange={(e) => handleUpdate(index, \"appointment_date\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"requirements.comments\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Comentarios</Label>\n <Textarea\n value={item.comments || \"\"}\n onChange={(e) => handleUpdate(index, \"comments\", 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 documento\n </Button>\n </TabsContent>\n </Tabs>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
@@ -1,5 +1,14 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { Input, Label, Button, Tabs, TabsList, TabsTrigger, TabsContent, Textarea } from "../../../../ui";
2
+ import {
3
+ Input,
4
+ Label,
5
+ Button,
6
+ Tabs,
7
+ TabsList,
8
+ TabsTrigger,
9
+ TabsContent,
10
+ Textarea
11
+ } from "../../../../ui";
3
12
  import { Plus, Trash2, FileCheck } from "lucide-react";
4
13
  function RequirementsSection({ data, onChange, hideFields = [] }) {
5
14
  const documents = data.work_requirements?.documents || [];
@@ -25,24 +34,24 @@ function RequirementsSection({ data, onChange, hideFields = [] }) {
25
34
  }
26
35
  });
27
36
  };
28
- return /* @__PURE__ */ jsx("div", { className: "pt-2 pb-4", children: /* @__PURE__ */ jsxs(Tabs, { defaultValue: "documents", className: "w-full", children: [
37
+ return /* @__PURE__ */ jsx("div", { className: "pb-4 pt-2", children: /* @__PURE__ */ jsxs(Tabs, { defaultValue: "documents", className: "w-full", children: [
29
38
  /* @__PURE__ */ jsx(TabsList, { className: "w-full", children: /* @__PURE__ */ jsx(TabsTrigger, { value: "documents", className: "flex-1", children: "Documentos" }) }),
30
- /* @__PURE__ */ jsxs(TabsContent, { value: "documents", className: "space-y-6 mt-4", children: [
31
- documents.map((item, index) => /* @__PURE__ */ jsxs("div", { className: "p-4 border border-border rounded-lg space-y-4 shadow-md", children: [
39
+ /* @__PURE__ */ jsxs(TabsContent, { value: "documents", className: "mt-4 space-y-6", children: [
40
+ documents.map((item, index) => /* @__PURE__ */ jsxs("div", { className: "space-y-4 rounded-lg border border-border p-4 shadow-md", children: [
32
41
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
33
- /* @__PURE__ */ jsx(FileCheck, { className: "w-5 h-5 text-secondary" }),
42
+ /* @__PURE__ */ jsx(FileCheck, { className: "h-5 w-5 text-secondary" }),
34
43
  /* @__PURE__ */ jsx(
35
44
  Button,
36
45
  {
37
46
  variant: "ghost",
38
47
  size: "sm",
39
- className: "h-7 px-2 text-muted-foreground hover:text-destructive hover:bg-destructive/10",
48
+ className: "h-7 px-2 text-muted-foreground hover:bg-destructive/10 hover:text-destructive",
40
49
  onClick: () => handleRemove(index),
41
- children: /* @__PURE__ */ jsx(Trash2, { className: "w-3.5 h-3.5" })
50
+ children: /* @__PURE__ */ jsx(Trash2, { className: "h-3.5 w-3.5" })
42
51
  }
43
52
  )
44
53
  ] }),
45
- /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [
54
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [
46
55
  !hideFields.includes("requirements.document_type") && /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
47
56
  /* @__PURE__ */ jsx(Label, { children: "Tipo de documento" }),
48
57
  /* @__PURE__ */ jsx(
@@ -86,10 +95,18 @@ function RequirementsSection({ data, onChange, hideFields = [] }) {
86
95
  ] })
87
96
  ] })
88
97
  ] }, item.id)),
89
- /* @__PURE__ */ jsxs(Button, { variant: "outline", className: "w-full flex items-center justify-center gap-2", onClick: handleAdd, children: [
90
- /* @__PURE__ */ jsx(Plus, { className: "w-4 h-4" }),
91
- "A\xF1adir documento"
92
- ] })
98
+ /* @__PURE__ */ jsxs(
99
+ Button,
100
+ {
101
+ variant: "outline",
102
+ className: "flex w-full items-center justify-center gap-2",
103
+ onClick: handleAdd,
104
+ children: [
105
+ /* @__PURE__ */ jsx(Plus, { className: "h-4 w-4" }),
106
+ "A\xF1adir documento"
107
+ ]
108
+ }
109
+ )
93
110
  ] })
94
111
  ] }) });
95
112
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/requirements.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport { Input, Label, Button, Tabs, TabsList, TabsTrigger, TabsContent, Textarea } from \"../../../../ui\";\nimport { Plus, Trash2, FileCheck } from \"lucide-react\";\n\ninterface RequirementsProps {\n data: CandidateProfile;\n onChange: (partial: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n}\n\nexport function RequirementsSection({ data, onChange, hideFields = [] }: RequirementsProps) {\n const documents = data.work_requirements?.documents || [];\n\n const handleUpdate = (index: number, field: string, value: any) => {\n const updated = [...documents];\n updated[index] = { ...updated[index], [field]: value };\n onChange({ work_requirements: { documents: updated } });\n };\n\n const handleAdd = () => {\n onChange({\n work_requirements: {\n documents: [\n ...documents,\n { id: `temp-doc-${Date.now()}`, document_type: \"\", document_status: \"existent\" }\n ]\n }\n });\n };\n\n const handleRemove = (index: number) => {\n onChange({\n work_requirements: {\n documents: documents.filter((_, i) => i !== index)\n }\n });\n };\n\n return (\n <div className=\"pt-2 pb-4\">\n <Tabs defaultValue=\"documents\" className=\"w-full\">\n <TabsList className=\"w-full\">\n <TabsTrigger value=\"documents\" className=\"flex-1\">Documentos</TabsTrigger>\n </TabsList>\n <TabsContent value=\"documents\" className=\"space-y-6 mt-4\">\n {documents.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 <FileCheck 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(\"requirements.document_type\") && (\n <div className=\"space-y-2\">\n <Label>Tipo de documento</Label>\n <Input\n value={item.document_type || \"\"}\n onChange={(e) => handleUpdate(index, 'document_type', e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"requirements.document_status\") && (\n <div className=\"space-y-2\">\n <Label>Estado del documento</Label>\n <Input\n value={item.document_status || \"\"}\n onChange={(e) => handleUpdate(index, 'document_status', e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"requirements.appointment_date\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Fecha de cita</Label>\n <Input\n type=\"datetime-local\"\n value={item.appointment_date || \"\"}\n onChange={(e) => handleUpdate(index, 'appointment_date', e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"requirements.comments\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Comentarios</Label>\n <Textarea\n value={item.comments || \"\"}\n onChange={(e) => handleUpdate(index, 'comments', 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 documento\n </Button>\n </TabsContent>\n </Tabs>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../../../src/components/domain/resume/resume-editor/sections/requirements.tsx"],"sourcesContent":["import { CandidateProfile } from \"../../types\";\nimport {\n Input,\n Label,\n Button,\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n Textarea,\n} from \"../../../../ui\";\nimport { Plus, Trash2, FileCheck } from \"lucide-react\";\n\ninterface RequirementsProps {\n data: CandidateProfile;\n onChange: (partial: Partial<CandidateProfile>) => void;\n hideFields?: string[];\n}\n\nexport function RequirementsSection({ data, onChange, hideFields = [] }: RequirementsProps) {\n const documents = data.work_requirements?.documents || [];\n\n const handleUpdate = (index: number, field: string, value: any) => {\n const updated = [...documents];\n updated[index] = { ...updated[index], [field]: value };\n onChange({ work_requirements: { documents: updated } });\n };\n\n const handleAdd = () => {\n onChange({\n work_requirements: {\n documents: [\n ...documents,\n { id: `temp-doc-${Date.now()}`, document_type: \"\", document_status: \"existent\" },\n ],\n },\n });\n };\n\n const handleRemove = (index: number) => {\n onChange({\n work_requirements: {\n documents: documents.filter((_, i) => i !== index),\n },\n });\n };\n\n return (\n <div className=\"pb-4 pt-2\">\n <Tabs defaultValue=\"documents\" className=\"w-full\">\n <TabsList className=\"w-full\">\n <TabsTrigger value=\"documents\" className=\"flex-1\">\n Documentos\n </TabsTrigger>\n </TabsList>\n <TabsContent value=\"documents\" className=\"mt-4 space-y-6\">\n {documents.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 <FileCheck 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(\"requirements.document_type\") && (\n <div className=\"space-y-2\">\n <Label>Tipo de documento</Label>\n <Input\n value={item.document_type || \"\"}\n onChange={(e) => handleUpdate(index, \"document_type\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"requirements.document_status\") && (\n <div className=\"space-y-2\">\n <Label>Estado del documento</Label>\n <Input\n value={item.document_status || \"\"}\n onChange={(e) => handleUpdate(index, \"document_status\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"requirements.appointment_date\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Fecha de cita</Label>\n <Input\n type=\"datetime-local\"\n value={item.appointment_date || \"\"}\n onChange={(e) => handleUpdate(index, \"appointment_date\", e.target.value)}\n />\n </div>\n )}\n {!hideFields.includes(\"requirements.comments\") && (\n <div className=\"space-y-2 md:col-span-2\">\n <Label>Comentarios</Label>\n <Textarea\n value={item.comments || \"\"}\n onChange={(e) => handleUpdate(index, \"comments\", 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 documento\n </Button>\n </TabsContent>\n </Tabs>\n </div>\n );\n}\n"],"mappings":"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","names":[]}