@soyfri/shared-library 2.0.0-beta.3 → 2.0.0-beta.30

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 (348) hide show
  1. package/Autocomplete-C_lW1VER.js +337 -0
  2. package/Autocomplete-C_lW1VER.js.map +1 -0
  3. package/Autocomplete-CejWztBY.cjs +336 -0
  4. package/Autocomplete-CejWztBY.cjs.map +1 -0
  5. package/Avatar-Dw5rzayR.cjs +166 -0
  6. package/Avatar-Dw5rzayR.cjs.map +1 -0
  7. package/Avatar-H8akSege.js +167 -0
  8. package/Avatar-H8akSege.js.map +1 -0
  9. package/Button-C17mExpd.cjs.map +1 -1
  10. package/Button-UkkP-bNw.js.map +1 -1
  11. package/Card-DYKGY-NG.js +116 -0
  12. package/Card-DYKGY-NG.js.map +1 -0
  13. package/Card-Dr1-ATRY.cjs +115 -0
  14. package/Card-Dr1-ATRY.cjs.map +1 -0
  15. package/Checkbox-BCqMFWt4.cjs +187 -0
  16. package/Checkbox-BCqMFWt4.cjs.map +1 -0
  17. package/Checkbox-gB5YKkVo.js +188 -0
  18. package/Checkbox-gB5YKkVo.js.map +1 -0
  19. package/{components/DateRangePicker/DateRangePicker.js → Chip-OPYQ1uQ_.js} +33 -35
  20. package/Chip-OPYQ1uQ_.js.map +1 -0
  21. package/{components/DateRangePicker/DateRangePicker.cjs → Chip-qoJLDiva.cjs} +33 -36
  22. package/Chip-qoJLDiva.cjs.map +1 -0
  23. package/DatePicker-_IGWc3I5.js +178 -0
  24. package/DatePicker-_IGWc3I5.js.map +1 -0
  25. package/DatePicker-t7uDTZMl.cjs +177 -0
  26. package/DatePicker-t7uDTZMl.cjs.map +1 -0
  27. package/DateTimePicker-BxQyjTCY.cjs +229 -0
  28. package/DateTimePicker-BxQyjTCY.cjs.map +1 -0
  29. package/DateTimePicker-CrmWav_j.js +230 -0
  30. package/DateTimePicker-CrmWav_j.js.map +1 -0
  31. package/Input-CScC87J5.cjs +185 -0
  32. package/Input-CScC87J5.cjs.map +1 -0
  33. package/Input-DP_fKl38.js +186 -0
  34. package/Input-DP_fKl38.js.map +1 -0
  35. package/Modal-BFpX5AFV.js +347 -0
  36. package/Modal-BFpX5AFV.js.map +1 -0
  37. package/Modal-CkpuI8ns.cjs +346 -0
  38. package/Modal-CkpuI8ns.cjs.map +1 -0
  39. package/RadioGroup-Dd0rHXSX.cjs +202 -0
  40. package/RadioGroup-Dd0rHXSX.cjs.map +1 -0
  41. package/RadioGroup-bO-ahP9T.js +203 -0
  42. package/RadioGroup-bO-ahP9T.js.map +1 -0
  43. package/Select-BY5Y0qZ1.js +376 -0
  44. package/Select-BY5Y0qZ1.js.map +1 -0
  45. package/Select-CURrHSyl.cjs +375 -0
  46. package/Select-CURrHSyl.cjs.map +1 -0
  47. package/Spinner-B6sThC1p.js +74 -0
  48. package/Spinner-B6sThC1p.js.map +1 -0
  49. package/Spinner-D7qRmNS9.cjs +73 -0
  50. package/Spinner-D7qRmNS9.cjs.map +1 -0
  51. package/Stat-BUcFCGrz.cjs +83 -0
  52. package/Stat-BUcFCGrz.cjs.map +1 -0
  53. package/Stat-C06A_izS.js +84 -0
  54. package/Stat-C06A_izS.js.map +1 -0
  55. package/StatusMessage-B3nXpuRl.cjs +88 -0
  56. package/StatusMessage-B3nXpuRl.cjs.map +1 -0
  57. package/StatusMessage-D0WgSBx7.js +89 -0
  58. package/StatusMessage-D0WgSBx7.js.map +1 -0
  59. package/Step-BArsou1V.js +301 -0
  60. package/Step-BArsou1V.js.map +1 -0
  61. package/Step-Nd7SJbRZ.cjs +300 -0
  62. package/Step-Nd7SJbRZ.cjs.map +1 -0
  63. package/Switch-CQFOopYy.cjs +182 -0
  64. package/Switch-CQFOopYy.cjs.map +1 -0
  65. package/Switch-D72dpkH2.js +183 -0
  66. package/Switch-D72dpkH2.js.map +1 -0
  67. package/Tab-BbP8jBcK.cjs +110 -0
  68. package/Tab-BbP8jBcK.cjs.map +1 -0
  69. package/Tab-BxSxKJsP.js +111 -0
  70. package/Tab-BxSxKJsP.js.map +1 -0
  71. package/Table-C2LbW0B1.js +531 -0
  72. package/Table-C2LbW0B1.js.map +1 -0
  73. package/Table-C4OM6rrC.cjs +530 -0
  74. package/Table-C4OM6rrC.cjs.map +1 -0
  75. package/components/ActionMenu/ActionMenu.cjs +52 -52
  76. package/components/ActionMenu/ActionMenu.cjs.map +1 -1
  77. package/components/ActionMenu/ActionMenu.d.ts +20 -36
  78. package/components/ActionMenu/ActionMenu.js +55 -55
  79. package/components/ActionMenu/ActionMenu.js.map +1 -1
  80. package/components/ActionMenu/index.d.ts +2 -2
  81. package/components/AppBar/AppBar.cjs +3 -220
  82. package/components/AppBar/AppBar.cjs.map +1 -1
  83. package/components/AppBar/AppBar.d.ts +6 -6
  84. package/components/AppBar/AppBar.js +6 -223
  85. package/components/AppBar/AppBar.js.map +1 -1
  86. package/components/AppBar/index.d.ts +0 -6
  87. package/components/Autocomplete/Autocomplete.cjs +4 -311
  88. package/components/Autocomplete/Autocomplete.cjs.map +1 -1
  89. package/components/Autocomplete/Autocomplete.d.ts +8 -6
  90. package/components/Autocomplete/Autocomplete.helpers.d.ts +8 -4
  91. package/components/Autocomplete/Autocomplete.js +4 -311
  92. package/components/Autocomplete/Autocomplete.js.map +1 -1
  93. package/components/Autocomplete/_parts/AutocompleteOption.d.ts +5 -8
  94. package/components/Autocomplete/index.d.ts +1 -1
  95. package/components/Avatar/Avatar.cjs +2 -160
  96. package/components/Avatar/Avatar.cjs.map +1 -1
  97. package/components/Avatar/Avatar.d.ts +16 -1
  98. package/components/Avatar/Avatar.js +2 -160
  99. package/components/Avatar/Avatar.js.map +1 -1
  100. package/components/Avatar/index.d.ts +1 -0
  101. package/components/Button/Button.d.ts +5 -5
  102. package/components/Button/index.d.ts +1 -0
  103. package/components/Card/Card.cjs +4 -184
  104. package/components/Card/Card.cjs.map +1 -1
  105. package/components/Card/Card.d.ts +21 -50
  106. package/components/Card/Card.js +4 -184
  107. package/components/Card/Card.js.map +1 -1
  108. package/components/Card/Card.sx.d.ts +3 -6
  109. package/components/Card/index.d.ts +1 -1
  110. package/components/Checkbox/Checkbox.cjs +6 -0
  111. package/components/Checkbox/Checkbox.cjs.map +1 -0
  112. package/components/Checkbox/Checkbox.d.ts +55 -0
  113. package/components/Checkbox/Checkbox.js +6 -0
  114. package/components/Checkbox/Checkbox.js.map +1 -0
  115. package/components/Checkbox/Checkbox.sx.d.ts +13 -0
  116. package/components/Checkbox/index.d.ts +2 -0
  117. package/components/Checkbox.d.ts +6 -0
  118. package/components/Chip/Chip.cjs +4 -72
  119. package/components/Chip/Chip.cjs.map +1 -1
  120. package/components/Chip/Chip.js +3 -71
  121. package/components/Chip/Chip.js.map +1 -1
  122. package/components/Chip/index.d.ts +2 -1
  123. package/components/Chip.d.ts +4 -0
  124. package/components/Column/Column.cjs +1 -1
  125. package/components/Column/Column.cjs.map +1 -1
  126. package/components/Column/Column.d.ts +1 -1
  127. package/components/Column/Column.js +1 -1
  128. package/components/Column/Column.js.map +1 -1
  129. package/components/Column/index.d.ts +1 -0
  130. package/components/DatePicker/DatePicker.cjs +3 -200
  131. package/components/DatePicker/DatePicker.cjs.map +1 -1
  132. package/components/DatePicker/DatePicker.d.ts +1 -13
  133. package/components/DatePicker/DatePicker.js +3 -200
  134. package/components/DatePicker/DatePicker.js.map +1 -1
  135. package/components/DatePicker/index.d.ts +1 -1
  136. package/components/DateTimePicker/DateTimePicker.cjs +3 -219
  137. package/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
  138. package/components/DateTimePicker/DateTimePicker.d.ts +10 -6
  139. package/components/DateTimePicker/DateTimePicker.definitions.d.ts +2 -0
  140. package/components/DateTimePicker/DateTimePicker.helpers.d.ts +4 -2
  141. package/components/DateTimePicker/DateTimePicker.js +3 -219
  142. package/components/DateTimePicker/DateTimePicker.js.map +1 -1
  143. package/components/DateTimePicker/index.d.ts +1 -1
  144. package/components/Drawer/Drawer.cjs +25 -24
  145. package/components/Drawer/Drawer.cjs.map +1 -1
  146. package/components/Drawer/Drawer.d.ts +8 -1
  147. package/components/Drawer/Drawer.js +26 -25
  148. package/components/Drawer/Drawer.js.map +1 -1
  149. package/components/Drawer/DrawerItem.d.ts +6 -1
  150. package/components/Gallery/Gallery.cjs +154 -79
  151. package/components/Gallery/Gallery.cjs.map +1 -1
  152. package/components/Gallery/Gallery.d.ts +25 -9
  153. package/components/Gallery/Gallery.js +154 -79
  154. package/components/Gallery/Gallery.js.map +1 -1
  155. package/components/Gallery/GalleryLightbox.d.ts +6 -10
  156. package/components/Gallery/GalleryMain.d.ts +3 -7
  157. package/components/Gallery/GalleryThumbnails.d.ts +7 -11
  158. package/components/Gallery/index.d.ts +2 -1
  159. package/components/Gallery.d.ts +4 -0
  160. package/components/Icon/Icon.cjs +6 -8
  161. package/components/Icon/Icon.cjs.map +1 -1
  162. package/components/Icon/Icon.d.ts +11 -17
  163. package/components/Icon/Icon.js +6 -8
  164. package/components/Icon/Icon.js.map +1 -1
  165. package/components/Icon/index.d.ts +2 -1
  166. package/components/Icon.d.ts +4 -0
  167. package/components/Input/Input.cjs +3 -172
  168. package/components/Input/Input.cjs.map +1 -1
  169. package/components/Input/Input.d.ts +9 -2
  170. package/components/Input/Input.definitions.d.ts +1 -0
  171. package/components/Input/Input.helpers.d.ts +3 -3
  172. package/components/Input/Input.js +3 -172
  173. package/components/Input/Input.js.map +1 -1
  174. package/components/Input/index.d.ts +1 -1
  175. package/components/InputGroup/InputGroup.cjs +23 -22
  176. package/components/InputGroup/InputGroup.cjs.map +1 -1
  177. package/components/InputGroup/InputGroup.d.ts +4 -4
  178. package/components/InputGroup/InputGroup.js +22 -21
  179. package/components/InputGroup/InputGroup.js.map +1 -1
  180. package/components/InputGroup/index.d.ts +2 -1
  181. package/components/InputGroup.d.ts +4 -0
  182. package/components/Modal/Modal.cjs +7 -317
  183. package/components/Modal/Modal.cjs.map +1 -1
  184. package/components/Modal/Modal.d.ts +20 -5
  185. package/components/Modal/Modal.js +6 -316
  186. package/components/Modal/Modal.js.map +1 -1
  187. package/components/Modal/ModalBody.d.ts +6 -1
  188. package/components/Modal/ModalFooter.d.ts +4 -4
  189. package/components/Modal/ModalHeader.d.ts +6 -1
  190. package/components/Modal/index.d.ts +3 -1
  191. package/components/Modal.d.ts +4 -0
  192. package/components/RadioGroup/RadioGroup.cjs +6 -0
  193. package/components/RadioGroup/RadioGroup.cjs.map +1 -0
  194. package/components/RadioGroup/RadioGroup.d.ts +59 -0
  195. package/components/RadioGroup/RadioGroup.definitions.d.ts +6 -0
  196. package/components/RadioGroup/RadioGroup.js +6 -0
  197. package/components/RadioGroup/RadioGroup.js.map +1 -0
  198. package/components/RadioGroup/RadioGroup.sx.d.ts +20 -0
  199. package/components/RadioGroup/index.d.ts +2 -0
  200. package/components/RadioGroup.d.ts +6 -0
  201. package/components/Select/Select.cjs +4 -445
  202. package/components/Select/Select.cjs.map +1 -1
  203. package/components/Select/Select.d.ts +37 -18
  204. package/components/Select/Select.helpers.d.ts +5 -19
  205. package/components/Select/Select.js +4 -445
  206. package/components/Select/Select.js.map +1 -1
  207. package/components/Select/index.d.ts +1 -1
  208. package/components/Spinner/Spinner.cjs +6 -0
  209. package/components/Spinner/Spinner.cjs.map +1 -0
  210. package/components/Spinner/Spinner.d.ts +26 -0
  211. package/components/Spinner/Spinner.js +6 -0
  212. package/components/Spinner/Spinner.js.map +1 -0
  213. package/components/Spinner/index.d.ts +2 -0
  214. package/components/Spinner.d.ts +6 -0
  215. package/components/Stat/Stat.cjs +4 -83
  216. package/components/Stat/Stat.cjs.map +1 -1
  217. package/components/Stat/Stat.js +3 -82
  218. package/components/Stat/Stat.js.map +1 -1
  219. package/components/Stat/index.d.ts +2 -1
  220. package/components/Stat.d.ts +4 -0
  221. package/components/StatusMessage/StatusMessage.cjs +4 -77
  222. package/components/StatusMessage/StatusMessage.cjs.map +1 -1
  223. package/components/StatusMessage/StatusMessage.d.ts +20 -36
  224. package/components/StatusMessage/StatusMessage.js +3 -76
  225. package/components/StatusMessage/StatusMessage.js.map +1 -1
  226. package/components/StatusMessage/index.d.ts +2 -1
  227. package/components/StatusMessage.d.ts +4 -0
  228. package/components/Stepper/Stepper.cjs +8 -47
  229. package/components/Stepper/Stepper.cjs.map +1 -1
  230. package/components/Stepper/Stepper.d.ts +9 -8
  231. package/components/Stepper/Stepper.js +7 -46
  232. package/components/Stepper/Stepper.js.map +1 -1
  233. package/{hooks/Wizard/WizardContext.d.ts → components/Stepper/StepperContext.d.ts} +29 -23
  234. package/components/Stepper/_hooks/useHorizontalScroll.d.ts +19 -0
  235. package/components/Stepper/_parts/StepperScrollArrow.d.ts +19 -0
  236. package/components/Stepper/index.d.ts +6 -2
  237. package/components/Stepper.d.ts +4 -0
  238. package/components/Switch/Switch.cjs +6 -0
  239. package/components/Switch/Switch.cjs.map +1 -0
  240. package/components/Switch/Switch.d.ts +48 -0
  241. package/components/Switch/Switch.definitions.d.ts +7 -0
  242. package/components/Switch/Switch.js +6 -0
  243. package/components/Switch/Switch.js.map +1 -0
  244. package/components/Switch/Switch.sx.d.ts +22 -0
  245. package/components/Switch/Switch.types.d.ts +1 -0
  246. package/components/Switch/index.d.ts +2 -0
  247. package/components/Switch.d.ts +6 -0
  248. package/components/Table/Table.cjs +2 -528
  249. package/components/Table/Table.cjs.map +1 -1
  250. package/components/Table/Table.d.ts +1 -1
  251. package/components/Table/Table.js +2 -528
  252. package/components/Table/Table.js.map +1 -1
  253. package/components/Tabs/Tabs.cjs +5 -94
  254. package/components/Tabs/Tabs.cjs.map +1 -1
  255. package/components/Tabs/Tabs.d.ts +21 -16
  256. package/components/Tabs/Tabs.js +4 -93
  257. package/components/Tabs/Tabs.js.map +1 -1
  258. package/components/Tabs/index.d.ts +4 -2
  259. package/components/Tabs.d.ts +4 -0
  260. package/components/Timeline/Timeline.cjs +3 -2
  261. package/components/Timeline/Timeline.cjs.map +1 -1
  262. package/components/Timeline/Timeline.d.ts +4 -8
  263. package/components/Timeline/Timeline.js +3 -2
  264. package/components/Timeline/Timeline.js.map +1 -1
  265. package/components/Timeline/index.d.ts +4 -2
  266. package/components/Timeline.d.ts +4 -0
  267. package/components/_shared/mergeSx.d.ts +7 -0
  268. package/{formField.sx-DfVbMe0V.js → formField.sx-8_QRnKxv.js} +2 -11
  269. package/formField.sx-8_QRnKxv.js.map +1 -0
  270. package/{formField.sx-CQ1mbk9M.cjs → formField.sx-BAX7KwMR.cjs} +10 -19
  271. package/formField.sx-BAX7KwMR.cjs.map +1 -0
  272. package/index.cjs +94 -2
  273. package/index.cjs.map +1 -1
  274. package/index.d.ts +34 -0
  275. package/index.js +68 -3
  276. package/index.js.map +1 -1
  277. package/local/affiliations/affiliations.dev.soyfri.com-key.pem +28 -0
  278. package/local/affiliations/affiliations.dev.soyfri.com.pem +27 -0
  279. package/local/aficiliaciones/afiliaciones.dev.soyfri.com-key.pem +28 -0
  280. package/local/aficiliaciones/afiliaciones.dev.soyfri.com.pem +27 -0
  281. package/local/afiliaciones/afiliaciones.dev.soyfri.com-key.pem +28 -0
  282. package/local/afiliaciones/afiliaciones.dev.soyfri.com.pem +27 -0
  283. package/local/root/rootCA-key.pem +40 -0
  284. package/local/root/rootCA.pem +30 -0
  285. package/local/soporte/supportweb.dev.soyfri.com-key.pem +28 -0
  286. package/local/soporte/supportweb.dev.soyfri.com.pem +27 -0
  287. package/local/support/supportweb.dev.soyfri.com-key.pem +28 -0
  288. package/local/support/supportweb.dev.soyfri.com.pem +27 -0
  289. package/mergeSx-BXoNZjB_.js +10 -0
  290. package/mergeSx-BXoNZjB_.js.map +1 -0
  291. package/mergeSx-Dbccoo_H.cjs +9 -0
  292. package/mergeSx-Dbccoo_H.cjs.map +1 -0
  293. package/mui.d.ts +3 -1
  294. package/package.json +73 -73
  295. package/{resolvePreset-CT3kU-K2.cjs → resolvePreset-CxTI6_Ln.cjs} +3 -3
  296. package/{resolvePreset-CT3kU-K2.cjs.map → resolvePreset-CxTI6_Ln.cjs.map} +1 -1
  297. package/{resolvePreset-B-IB0ehH.js → resolvePreset-K6_BfWHD.js} +3 -3
  298. package/{resolvePreset-B-IB0ehH.js.map → resolvePreset-K6_BfWHD.js.map} +1 -1
  299. package/theme/componentStyles.d.ts +1 -1
  300. package/tokens-BRrcP_p_.js +21 -0
  301. package/tokens-BRrcP_p_.js.map +1 -0
  302. package/tokens-jaWWNk39.cjs +20 -0
  303. package/tokens-jaWWNk39.cjs.map +1 -0
  304. package/utils/index.d.ts +2 -0
  305. package/{components/ScrollTopButton → utils}/scrollToTop.d.ts +6 -7
  306. package/components/AppBar/AppBarBrand.d.ts +0 -31
  307. package/components/AppBar/AppBarUserMenu.d.ts +0 -65
  308. package/components/Autocomplete/Autocomplete.types.d.ts +0 -1
  309. package/components/DatePicker/DatePicker.types.d.ts +0 -1
  310. package/components/DateRangePicker/DateRangePicker.cjs.map +0 -1
  311. package/components/DateRangePicker/DateRangePicker.d.ts +0 -15
  312. package/components/DateRangePicker/DateRangePicker.definitions.d.ts +0 -6
  313. package/components/DateRangePicker/DateRangePicker.js.map +0 -1
  314. package/components/DateRangePicker/index.d.ts +0 -1
  315. package/components/DateRangePicker.d.ts +0 -2
  316. package/components/DateTimePicker/DateTimePicker.types.d.ts +0 -1
  317. package/components/Input/Input.types.d.ts +0 -1
  318. package/components/PageLoader/PageLoader.cjs +0 -61
  319. package/components/PageLoader/PageLoader.cjs.map +0 -1
  320. package/components/PageLoader/PageLoader.d.ts +0 -38
  321. package/components/PageLoader/PageLoader.js +0 -61
  322. package/components/PageLoader/PageLoader.js.map +0 -1
  323. package/components/PageLoader/index.d.ts +0 -2
  324. package/components/PageLoader.d.ts +0 -6
  325. package/components/ScrollTopButton/ScrollTopButton.cjs +0 -79
  326. package/components/ScrollTopButton/ScrollTopButton.cjs.map +0 -1
  327. package/components/ScrollTopButton/ScrollTopButton.d.ts +0 -48
  328. package/components/ScrollTopButton/ScrollTopButton.js +0 -79
  329. package/components/ScrollTopButton/ScrollTopButton.js.map +0 -1
  330. package/components/ScrollTopButton/index.d.ts +0 -4
  331. package/components/ScrollTopButton.d.ts +0 -6
  332. package/components/Select/Select.definitions.d.ts +0 -17
  333. package/components/Select/Select.types.d.ts +0 -1
  334. package/components/Select/_parts/SelectSearchHeader.d.ts +0 -15
  335. package/formField.sx-CQ1mbk9M.cjs.map +0 -1
  336. package/formField.sx-DfVbMe0V.js.map +0 -1
  337. package/hooks/Wizard/Wizard.cjs +0 -7
  338. package/hooks/Wizard/Wizard.cjs.map +0 -1
  339. package/hooks/Wizard/Wizard.js +0 -7
  340. package/hooks/Wizard/Wizard.js.map +0 -1
  341. package/hooks/Wizard/index.d.ts +0 -3
  342. package/hooks/Wizard/useWizard.d.ts +0 -9
  343. package/hooks/Wizard.d.ts +0 -2
  344. package/useWizard-CWdIxZzX.cjs +0 -94
  345. package/useWizard-CWdIxZzX.cjs.map +0 -1
  346. package/useWizard-CWq--C3o.js +0 -95
  347. package/useWizard-CWq--C3o.js.map +0 -1
  348. /package/{styles.css → index.css} +0 -0
@@ -0,0 +1,167 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { jsxs, jsx } from "react/jsx-runtime";
21
+ import React__default, { useState } from "react";
22
+ import { Box, Typography, Avatar as Avatar$1, Tooltip } from "@mui/material";
23
+ import AccountCircleIcon from "@mui/icons-material/AccountCircle";
24
+ const sizeMap = {
25
+ sm: { px: 32, border: 2, font: 14, overlap: 8 },
26
+ md: { px: 40, border: 2, font: 16, overlap: 10 },
27
+ lg: { px: 56, border: 3, font: 22, overlap: 14 },
28
+ xl: { px: 96, border: 4, font: 36, overlap: 20 }
29
+ };
30
+ const resolveSize = (size) => {
31
+ if (typeof size === "number") {
32
+ return {
33
+ px: size,
34
+ border: Math.max(2, Math.round(size * 0.05)),
35
+ font: Math.round(size * 0.4),
36
+ overlap: Math.round(size * 0.25)
37
+ };
38
+ }
39
+ return sizeMap[size];
40
+ };
41
+ const mergeSx = (base, extra) => {
42
+ if (!extra) return base;
43
+ const baseArr = Array.isArray(base) ? base : [base];
44
+ const extraArr = Array.isArray(extra) ? extra : [extra];
45
+ return [...baseArr, ...extraArr];
46
+ };
47
+ const Avatar = ({
48
+ items,
49
+ src,
50
+ alt,
51
+ fallback,
52
+ type,
53
+ displayedAvatars = 4,
54
+ size = "sm",
55
+ showText = true,
56
+ showTooltip = false,
57
+ sx,
58
+ avatarSx,
59
+ className,
60
+ overlap
61
+ }) => {
62
+ var _a;
63
+ const resolvedItems = items && items.length > 0 ? items : src || fallback ? [{ imageUrl: src, text: alt, content: fallback }] : [];
64
+ const showCaption = items && items.length > 0 ? showText : false;
65
+ const [failedUrls, setFailedUrls] = useState(/* @__PURE__ */ new Set());
66
+ const handleImageError = (url) => {
67
+ setFailedUrls((prev) => {
68
+ if (prev.has(url)) return prev;
69
+ const next = new Set(prev);
70
+ next.add(url);
71
+ return next;
72
+ });
73
+ };
74
+ if (resolvedItems.length === 0) {
75
+ return null;
76
+ }
77
+ const s = resolveSize(size);
78
+ const effectiveOverlap = overlap != null ? overlap : s.overlap;
79
+ const visibleItems = resolvedItems.slice(0, displayedAvatars);
80
+ const baseAvatarSx = {
81
+ width: s.px,
82
+ height: s.px,
83
+ fontSize: s.font,
84
+ fontWeight: 700,
85
+ border: (theme) => `${s.border}px solid ${theme.palette.background.paper}`,
86
+ boxSizing: "content-box"
87
+ };
88
+ const renderSingleAvatar = (item, i) => {
89
+ var _a2, _b, _c, _d, _e;
90
+ const hasImage = !!item.imageUrl && !failedUrls.has(item.imageUrl);
91
+ const showBadgeFallback = !!item.badge;
92
+ const itemKey = (_c = item.imageUrl) != null ? _c : `${(_a2 = item.text) != null ? _a2 : ""}-${(_b = item.badge) != null ? _b : ""}-${i}`;
93
+ const itemSx = __spreadProps(__spreadValues({
94
+ bgcolor: (_d = item.backgroundColor) != null ? _d : "action.selected",
95
+ color: (_e = item.color) != null ? _e : "text.secondary"
96
+ }, i > 0 && { marginLeft: `-${effectiveOverlap}px` }), {
97
+ zIndex: visibleItems.length - i
98
+ });
99
+ const finalSx = mergeSx(mergeSx(baseAvatarSx, itemSx), avatarSx);
100
+ const avatarEl = /* @__PURE__ */ jsx(
101
+ Avatar$1,
102
+ {
103
+ alt: item.text || "User avatar",
104
+ src: hasImage ? item.imageUrl : void 0,
105
+ imgProps: {
106
+ onError: () => {
107
+ if (item.imageUrl) handleImageError(item.imageUrl);
108
+ }
109
+ },
110
+ sx: finalSx,
111
+ children: !hasImage && item.content != null ? item.content : !hasImage && showBadgeFallback ? /* @__PURE__ */ jsx("span", { "aria-label": item.text, children: item.badge }) : !hasImage ? /* @__PURE__ */ jsx(
112
+ AccountCircleIcon,
113
+ {
114
+ "aria-label": item.text,
115
+ sx: { width: "100%", height: "100%" }
116
+ }
117
+ ) : null
118
+ }
119
+ );
120
+ if (showTooltip && item.text) {
121
+ return /* @__PURE__ */ jsx(Tooltip, { title: item.text, children: avatarEl }, itemKey);
122
+ }
123
+ return /* @__PURE__ */ jsx(React__default.Fragment, { children: avatarEl }, itemKey);
124
+ };
125
+ return /* @__PURE__ */ jsxs(
126
+ Box,
127
+ {
128
+ className,
129
+ sx: mergeSx(
130
+ {
131
+ display: "flex",
132
+ alignItems: "center",
133
+ lineHeight: 1,
134
+ width: "fit-content"
135
+ },
136
+ sx
137
+ ),
138
+ children: [
139
+ /* @__PURE__ */ jsx(Box, { sx: { display: "flex", alignItems: "center" }, children: visibleItems.map((item, i) => renderSingleAvatar(item, i)) }),
140
+ showCaption && ((_a = resolvedItems[0]) == null ? void 0 : _a.text) && /* @__PURE__ */ jsxs(
141
+ Typography,
142
+ {
143
+ variant: "caption",
144
+ sx: {
145
+ ml: 1,
146
+ fontSize: "0.75rem",
147
+ fontWeight: 400,
148
+ color: "text.primary"
149
+ },
150
+ children: [
151
+ type && resolvedItems.length === 1 && /* @__PURE__ */ jsxs(Box, { component: "span", sx: { mr: 0.5 }, children: [
152
+ type,
153
+ ":"
154
+ ] }),
155
+ resolvedItems[0].text,
156
+ resolvedItems.length > 1 && ` +${resolvedItems.length - 1}`
157
+ ]
158
+ }
159
+ )
160
+ ]
161
+ }
162
+ );
163
+ };
164
+ export {
165
+ Avatar as A
166
+ };
167
+ //# sourceMappingURL=Avatar-H8akSege.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar-H8akSege.js","sources":["../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n Avatar as MuiAvatar,\n Box,\n Tooltip,\n Typography,\n type SxProps,\n type Theme,\n} from '@mui/material';\nimport AccountCircleIcon from '@mui/icons-material/AccountCircle';\n\nexport interface AvatarItem {\n text?: string;\n imageUrl?: string;\n badge?: string;\n color?: string;\n backgroundColor?: string;\n /** Contenido a renderizar como fallback cuando no hay imagen (ej. iniciales). */\n content?: React.ReactNode;\n}\n\nexport type AvatarSize = 'sm' | 'md' | 'lg' | 'xl' | number;\n\nexport interface AvatarProps {\n type?: string;\n /**\n * Lista de avatares (grupo apilado). Para un solo avatar puedes usar\n * `src`/`alt` en su lugar.\n */\n items?: AvatarItem[];\n /**\n * Atajo para un único avatar por URL de imagen. Equivale a\n * `items={[{ imageUrl: src, text: alt }]}`. Ignorado si `items` tiene elementos.\n */\n src?: string;\n /** Texto alternativo de la imagen cuando se usa `src` (modo single). */\n alt?: string;\n /** Fallback (ej. iniciales) cuando no hay imagen, en modo single (`src`). */\n fallback?: React.ReactNode;\n displayedAvatars?: number;\n size?: AvatarSize;\n showText?: boolean;\n showTooltip?: boolean;\n /**\n * sx aplicado al contenedor raíz.\n */\n sx?: SxProps<Theme>;\n /**\n * sx aplicado a cada MuiAvatar individual (se mergea sobre los defaults).\n */\n avatarSx?: SxProps<Theme>;\n className?: string;\n /**\n * Overlap (px) entre avatares cuando hay varios. Default depende del tamaño.\n */\n overlap?: number;\n}\n\n// Escala alineada con la escala de MUI (sm=32, md=40, lg=56, xl=96) con borde\n// proporcional para el efecto stacked.\nconst sizeMap: Record<\n Exclude<AvatarSize, number>,\n { px: number; border: number; font: number; overlap: number }\n> = {\n sm: { px: 32, border: 2, font: 14, overlap: 8 },\n md: { px: 40, border: 2, font: 16, overlap: 10 },\n lg: { px: 56, border: 3, font: 22, overlap: 14 },\n xl: { px: 96, border: 4, font: 36, overlap: 20 },\n};\n\nconst resolveSize = (size: AvatarSize) => {\n if (typeof size === 'number') {\n return {\n px: size,\n border: Math.max(2, Math.round(size * 0.05)),\n font: Math.round(size * 0.4),\n overlap: Math.round(size * 0.25),\n };\n }\n return sizeMap[size];\n};\n\nconst mergeSx = (base: SxProps<Theme>, extra?: SxProps<Theme>): SxProps<Theme> => {\n if (!extra) return base;\n const baseArr = Array.isArray(base) ? base : [base];\n const extraArr = Array.isArray(extra) ? extra : [extra];\n return [...baseArr, ...extraArr] as SxProps<Theme>;\n};\n\nexport const Avatar: React.FC<AvatarProps> = ({\n items,\n src,\n alt,\n fallback,\n type,\n displayedAvatars = 4,\n size = 'sm',\n showText = true,\n showTooltip = false,\n sx,\n avatarSx,\n className,\n overlap,\n}) => {\n // Modo single (`src`) vs grupo (`items`). En single no mostramos caption.\n const resolvedItems: AvatarItem[] =\n items && items.length > 0\n ? items\n : src || fallback\n ? [{ imageUrl: src, text: alt, content: fallback }]\n : [];\n const showCaption = items && items.length > 0 ? showText : false;\n // Indexamos por URL (no por posición) para que cambios en `items` — reorder,\n // filtrado, paginación — no hagan que un avatar válido \"herede\" el estado de\n // imagen rota de un item anterior que estaba en la misma posición.\n const [failedUrls, setFailedUrls] = useState<Set<string>>(new Set());\n\n const handleImageError = (url: string) => {\n setFailedUrls((prev) => {\n if (prev.has(url)) return prev;\n const next = new Set(prev);\n next.add(url);\n return next;\n });\n };\n\n if (resolvedItems.length === 0) {\n return null;\n }\n\n const s = resolveSize(size);\n const effectiveOverlap = overlap ?? s.overlap;\n const visibleItems = resolvedItems.slice(0, displayedAvatars);\n\n const baseAvatarSx: SxProps<Theme> = {\n width: s.px,\n height: s.px,\n fontSize: s.font,\n fontWeight: 700,\n border: (theme) => `${s.border}px solid ${theme.palette.background.paper}`,\n boxSizing: 'content-box',\n };\n\n const renderSingleAvatar = (item: AvatarItem, i: number) => {\n const hasImage = !!item.imageUrl && !failedUrls.has(item.imageUrl);\n const showBadgeFallback = !!item.badge;\n const itemKey = item.imageUrl ?? `${item.text ?? ''}-${item.badge ?? ''}-${i}`;\n\n // Defaults tirando al theme; item.color / item.backgroundColor tienen prioridad.\n const itemSx: SxProps<Theme> = {\n bgcolor: item.backgroundColor ?? 'action.selected',\n color: item.color ?? 'text.secondary',\n // Stacking manual: margen negativo al segundo avatar en adelante.\n ...(i > 0 && { marginLeft: `-${effectiveOverlap}px` }),\n zIndex: visibleItems.length - i,\n };\n\n const finalSx = mergeSx(mergeSx(baseAvatarSx, itemSx), avatarSx);\n\n const avatarEl = (\n <MuiAvatar\n alt={item.text || 'User avatar'}\n src={hasImage ? item.imageUrl : undefined}\n imgProps={{\n onError: () => {\n if (item.imageUrl) handleImageError(item.imageUrl);\n },\n }}\n sx={finalSx}\n >\n {!hasImage && item.content != null ? (\n item.content\n ) : !hasImage && showBadgeFallback ? (\n <span aria-label={item.text}>{item.badge}</span>\n ) : !hasImage ? (\n <AccountCircleIcon\n aria-label={item.text}\n sx={{ width: '100%', height: '100%' }}\n />\n ) : null}\n </MuiAvatar>\n );\n\n if (showTooltip && item.text) {\n return (\n <Tooltip key={itemKey} title={item.text}>\n {avatarEl}\n </Tooltip>\n );\n }\n return <React.Fragment key={itemKey}>{avatarEl}</React.Fragment>;\n };\n\n return (\n <Box\n className={className}\n sx={mergeSx(\n {\n display: 'flex',\n alignItems: 'center',\n lineHeight: 1,\n width: 'fit-content',\n },\n sx,\n )}\n >\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n {visibleItems.map((item, i) => renderSingleAvatar(item, i))}\n </Box>\n\n {showCaption && resolvedItems[0]?.text && (\n <Typography\n variant=\"caption\"\n sx={{\n ml: 1,\n fontSize: '0.75rem',\n fontWeight: 400,\n color: 'text.primary',\n }}\n >\n {type && resolvedItems.length === 1 && (\n <Box component=\"span\" sx={{ mr: 0.5 }}>\n {type}:\n </Box>\n )}\n {resolvedItems[0].text}\n {resolvedItems.length > 1 && ` +${resolvedItems.length - 1}`}\n </Typography>\n )}\n </Box>\n );\n};\n\nexport default Avatar;\n"],"names":["_a","MuiAvatar","React"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button-C17mExpd.cjs","sources":["../src/components/Button/Button.tsx"],"sourcesContent":["import { Button as MuiButton } from \"@mui/material\";\nimport type { ButtonProps } from \"@mui/material/Button\";\nimport React from \"react\";\n\ntype PickButtonProps = Pick<ButtonProps, \"href\" | \"children\" | \"onClick\" | \"color\" | \"disabled\" | \"className\" | \"endIcon\" | \"startIcon\" | \"loading\" | \"loadingIndicator\" | \"variant\" | \"size\" | \"loadingPosition\" | \"type\" | \"sx\">;\n\nexport interface MyButtonProps extends PickButtonProps {\n children?: React.ReactNode;\n variant?: \"text\" | \"outlined\" | \"contained\";\n disabled?: boolean;\n endIcon?: React.ReactNode;\n startIcon?: React.ReactNode;\n size?: \"small\" | \"medium\" | \"large\";\n className?: string;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n loading?: boolean;\n loadingIndicator?: React.ReactNode;\n loadingPosition?: \"start\" | \"end\" | \"center\";\n color?: \"primary\" | \"success\" | \"error\" | \"info\" | \"warning\"; //change for tailwind class colors\n href?: string;\n \"data-testid\"?: string;\n type?: \"button\" | \"submit\" ;\n}\n\nexport const Button: React.FC<MyButtonProps> = ({\n children,\n variant,\n disabled,\n startIcon,\n endIcon,\n size,\n className,\n onClick,\n loading,\n loadingPosition,\n loadingIndicator,\n color,\n href,\n \"data-testid\": dataTestId,\n type,\n sx\n}) => {\n return (\n <MuiButton\n disabled={disabled}\n variant={variant}\n startIcon={startIcon}\n endIcon={endIcon}\n size={size}\n className={className}\n onClick={onClick}\n loading={loading}\n loadingPosition={loadingPosition}\n loadingIndicator={loadingIndicator}\n sx={{ textTransform: \"none\", ...sx }}\n disableRipple={true}\n disableElevation={true}\n color={color}\n data-testid={dataTestId}\n href={href}\n type={type}\n >\n {children}\n </MuiButton>);\n};\n\nexport default Button;"],"names":["jsx","MuiButton"],"mappings":";;;;;;;;;;;;;;;;;;;AAwBO,MAAM,SAAkC,CAAC;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf;AAAA,EACA;AACF,MAAM;AACJ,SACEA,2BAAAA;AAAAA,IAACC,SAAAA;AAAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,IAAI,iBAAE,eAAe,UAAW;AAAA,MAChC,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB;AAAA,MACA,eAAa;AAAA,MACb;AAAA,MACA;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAEP;;"}
1
+ {"version":3,"file":"Button-C17mExpd.cjs","sources":["../src/components/Button/Button.tsx"],"sourcesContent":["import { Button as MuiButton } from \"@mui/material\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport React from \"react\";\n\nexport interface ButtonProps {\n children?: React.ReactNode;\n variant?: \"text\" | \"outlined\" | \"contained\";\n disabled?: boolean;\n endIcon?: React.ReactNode;\n startIcon?: React.ReactNode;\n size?: \"small\" | \"medium\" | \"large\";\n className?: string;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n loading?: boolean;\n loadingIndicator?: React.ReactNode;\n loadingPosition?: \"start\" | \"end\" | \"center\";\n color?: \"inherit\" | \"primary\" | \"secondary\" | \"success\" | \"error\" | \"info\" | \"warning\";\n href?: string;\n \"data-testid\"?: string;\n type?: \"button\" | \"submit\";\n sx?: SxProps<Theme>;\n}\n\nexport const Button: React.FC<ButtonProps> = ({\n children,\n variant,\n disabled,\n startIcon,\n endIcon,\n size,\n className,\n onClick,\n loading,\n loadingPosition,\n loadingIndicator,\n color,\n href,\n \"data-testid\": dataTestId,\n type,\n sx\n}) => {\n return (\n <MuiButton\n disabled={disabled}\n variant={variant}\n startIcon={startIcon}\n endIcon={endIcon}\n size={size}\n className={className}\n onClick={onClick}\n loading={loading}\n loadingPosition={loadingPosition}\n loadingIndicator={loadingIndicator}\n sx={{ textTransform: \"none\", ...sx }}\n disableRipple={true}\n disableElevation={true}\n color={color}\n data-testid={dataTestId}\n href={href}\n type={type}\n >\n {children}\n </MuiButton>);\n};\n\nexport default Button;"],"names":["jsx","MuiButton"],"mappings":";;;;;;;;;;;;;;;;;;;AAuBO,MAAM,SAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf;AAAA,EACA;AACF,MAAM;AACJ,SACEA,2BAAAA;AAAAA,IAACC,SAAAA;AAAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,IAAI,iBAAE,eAAe,UAAW;AAAA,MAChC,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB;AAAA,MACA,eAAa;AAAA,MACb;AAAA,MACA;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAEP;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button-UkkP-bNw.js","sources":["../src/components/Button/Button.tsx"],"sourcesContent":["import { Button as MuiButton } from \"@mui/material\";\nimport type { ButtonProps } from \"@mui/material/Button\";\nimport React from \"react\";\n\ntype PickButtonProps = Pick<ButtonProps, \"href\" | \"children\" | \"onClick\" | \"color\" | \"disabled\" | \"className\" | \"endIcon\" | \"startIcon\" | \"loading\" | \"loadingIndicator\" | \"variant\" | \"size\" | \"loadingPosition\" | \"type\" | \"sx\">;\n\nexport interface MyButtonProps extends PickButtonProps {\n children?: React.ReactNode;\n variant?: \"text\" | \"outlined\" | \"contained\";\n disabled?: boolean;\n endIcon?: React.ReactNode;\n startIcon?: React.ReactNode;\n size?: \"small\" | \"medium\" | \"large\";\n className?: string;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n loading?: boolean;\n loadingIndicator?: React.ReactNode;\n loadingPosition?: \"start\" | \"end\" | \"center\";\n color?: \"primary\" | \"success\" | \"error\" | \"info\" | \"warning\"; //change for tailwind class colors\n href?: string;\n \"data-testid\"?: string;\n type?: \"button\" | \"submit\" ;\n}\n\nexport const Button: React.FC<MyButtonProps> = ({\n children,\n variant,\n disabled,\n startIcon,\n endIcon,\n size,\n className,\n onClick,\n loading,\n loadingPosition,\n loadingIndicator,\n color,\n href,\n \"data-testid\": dataTestId,\n type,\n sx\n}) => {\n return (\n <MuiButton\n disabled={disabled}\n variant={variant}\n startIcon={startIcon}\n endIcon={endIcon}\n size={size}\n className={className}\n onClick={onClick}\n loading={loading}\n loadingPosition={loadingPosition}\n loadingIndicator={loadingIndicator}\n sx={{ textTransform: \"none\", ...sx }}\n disableRipple={true}\n disableElevation={true}\n color={color}\n data-testid={dataTestId}\n href={href}\n type={type}\n >\n {children}\n </MuiButton>);\n};\n\nexport default Button;"],"names":["MuiButton"],"mappings":";;;;;;;;;;;;;;;;;;AAwBO,MAAM,SAAkC,CAAC;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf;AAAA,EACA;AACF,MAAM;AACJ,SACE;AAAA,IAACA;AAAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,IAAI,iBAAE,eAAe,UAAW;AAAA,MAChC,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB;AAAA,MACA,eAAa;AAAA,MACb;AAAA,MACA;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAEP;"}
1
+ {"version":3,"file":"Button-UkkP-bNw.js","sources":["../src/components/Button/Button.tsx"],"sourcesContent":["import { Button as MuiButton } from \"@mui/material\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport React from \"react\";\n\nexport interface ButtonProps {\n children?: React.ReactNode;\n variant?: \"text\" | \"outlined\" | \"contained\";\n disabled?: boolean;\n endIcon?: React.ReactNode;\n startIcon?: React.ReactNode;\n size?: \"small\" | \"medium\" | \"large\";\n className?: string;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n loading?: boolean;\n loadingIndicator?: React.ReactNode;\n loadingPosition?: \"start\" | \"end\" | \"center\";\n color?: \"inherit\" | \"primary\" | \"secondary\" | \"success\" | \"error\" | \"info\" | \"warning\";\n href?: string;\n \"data-testid\"?: string;\n type?: \"button\" | \"submit\";\n sx?: SxProps<Theme>;\n}\n\nexport const Button: React.FC<ButtonProps> = ({\n children,\n variant,\n disabled,\n startIcon,\n endIcon,\n size,\n className,\n onClick,\n loading,\n loadingPosition,\n loadingIndicator,\n color,\n href,\n \"data-testid\": dataTestId,\n type,\n sx\n}) => {\n return (\n <MuiButton\n disabled={disabled}\n variant={variant}\n startIcon={startIcon}\n endIcon={endIcon}\n size={size}\n className={className}\n onClick={onClick}\n loading={loading}\n loadingPosition={loadingPosition}\n loadingIndicator={loadingIndicator}\n sx={{ textTransform: \"none\", ...sx }}\n disableRipple={true}\n disableElevation={true}\n color={color}\n data-testid={dataTestId}\n href={href}\n type={type}\n >\n {children}\n </MuiButton>);\n};\n\nexport default Button;"],"names":["MuiButton"],"mappings":";;;;;;;;;;;;;;;;;;AAuBO,MAAM,SAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf;AAAA,EACA;AACF,MAAM;AACJ,SACE;AAAA,IAACA;AAAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,IAAI,iBAAE,eAAe,UAAW;AAAA,MAChC,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB;AAAA,MACA,eAAa;AAAA,MACb;AAAA,MACA;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAEP;"}
@@ -0,0 +1,116 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { jsxs, jsx } from "react/jsx-runtime";
21
+ import { useTheme, Card as Card$1, CardHeader, CardContent } from "@mui/material";
22
+ import { r as resolvePreset } from "./resolvePreset-K6_BfWHD.js";
23
+ const paddingMap = {
24
+ none: 0,
25
+ dense: 1.5,
26
+ normal: 2.5,
27
+ loose: 4
28
+ };
29
+ function buildCardSx({
30
+ variant,
31
+ padding,
32
+ clickable
33
+ }) {
34
+ return (theme) => __spreadProps(__spreadValues({
35
+ borderRadius: 2,
36
+ backgroundColor: "background.paper",
37
+ boxShadow: variant === "elevated" ? theme.shadows[1] : "none",
38
+ border: variant === "outlined" ? `1px solid ${theme.palette.divider}` : "none",
39
+ transition: theme.transitions.create(
40
+ ["box-shadow", "transform", "border-color"],
41
+ { duration: theme.transitions.duration.shorter }
42
+ ),
43
+ cursor: clickable ? "pointer" : "default"
44
+ }, clickable && {
45
+ "&:hover": {
46
+ boxShadow: variant === "elevated" ? theme.shadows[3] : variant === "outlined" ? theme.shadows[1] : "none",
47
+ transform: variant !== "plain" ? "translateY(-1px)" : "none"
48
+ },
49
+ "&:active": {
50
+ transform: "translateY(0)"
51
+ }
52
+ }), {
53
+ p: paddingMap[padding]
54
+ });
55
+ }
56
+ function Card({
57
+ children,
58
+ variant,
59
+ padding = "normal",
60
+ clickable = false,
61
+ preset,
62
+ raised,
63
+ title,
64
+ subheader,
65
+ action,
66
+ headerSx,
67
+ contentSx,
68
+ sx,
69
+ onClick,
70
+ onBlur,
71
+ className,
72
+ "data-testid": dataTestId
73
+ }) {
74
+ const theme = useTheme();
75
+ const resolvedVariant = raised ? "elevated" : variant != null ? variant : "elevated";
76
+ const presetSx = resolvePreset("Card", preset, theme);
77
+ const hasHeader = title != null || subheader != null || action != null;
78
+ const useComposition = hasHeader || contentSx != null;
79
+ const rootSx = [
80
+ buildCardSx({
81
+ variant: resolvedVariant,
82
+ padding: useComposition ? "none" : padding,
83
+ clickable: clickable || Boolean(onClick)
84
+ }),
85
+ ...presetSx ? [presetSx] : [],
86
+ ...Array.isArray(sx) ? sx : sx ? [sx] : []
87
+ ];
88
+ return /* @__PURE__ */ jsxs(
89
+ Card$1,
90
+ {
91
+ sx: rootSx,
92
+ className,
93
+ "data-testid": dataTestId,
94
+ onClick,
95
+ onBlur,
96
+ elevation: 0,
97
+ children: [
98
+ hasHeader && /* @__PURE__ */ jsx(
99
+ CardHeader,
100
+ {
101
+ title,
102
+ subheader,
103
+ action,
104
+ sx: headerSx
105
+ }
106
+ ),
107
+ useComposition ? /* @__PURE__ */ jsx(CardContent, { sx: contentSx, children }) : children
108
+ ]
109
+ }
110
+ );
111
+ }
112
+ export {
113
+ Card as C,
114
+ buildCardSx as b
115
+ };
116
+ //# sourceMappingURL=Card-DYKGY-NG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card-DYKGY-NG.js","sources":["../src/components/Card/Card.sx.ts","../src/components/Card/Card.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material/styles';\n\nexport type CardVariant = 'elevated' | 'outlined' | 'plain';\nexport type CardPadding = 'none' | 'dense' | 'normal' | 'loose';\n\nexport interface BuildCardSxArgs {\n variant: CardVariant;\n padding: CardPadding;\n clickable: boolean;\n}\n\nconst paddingMap: Record<CardPadding, number> = {\n none: 0,\n dense: 1.5,\n normal: 2.5,\n loose: 4,\n};\n\n/**\n * Estilo base del Card. La prop `sx` del consumer se compone encima junto al\n * preset resuelto (en Card.tsx). Este builder solo se ocupa de variant +\n * padding para que siga siendo predecible.\n */\nexport function buildCardSx({\n variant,\n padding,\n clickable,\n}: BuildCardSxArgs): SxProps<Theme> {\n return (theme) => ({\n borderRadius: 2,\n backgroundColor: 'background.paper',\n boxShadow: variant === 'elevated' ? theme.shadows[1] : 'none',\n border:\n variant === 'outlined'\n ? `1px solid ${theme.palette.divider}`\n : 'none',\n transition: theme.transitions.create(\n ['box-shadow', 'transform', 'border-color'],\n { duration: theme.transitions.duration.shorter },\n ),\n cursor: clickable ? 'pointer' : 'default',\n ...(clickable && {\n '&:hover': {\n boxShadow:\n variant === 'elevated'\n ? theme.shadows[3]\n : variant === 'outlined'\n ? theme.shadows[1]\n : 'none',\n transform: variant !== 'plain' ? 'translateY(-1px)' : 'none',\n },\n '&:active': {\n transform: 'translateY(0)',\n },\n }),\n p: paddingMap[padding],\n });\n}\n","import { type ReactNode } from 'react';\nimport { Card as MuiCard, CardHeader, CardContent, useTheme } from '@mui/material';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\nimport { resolvePreset } from '../_shared/resolvePreset';\nimport { buildCardSx, type CardVariant, type CardPadding } from './Card.sx';\n\nexport interface CardProps {\n /** Contenido del Card. */\n children?: ReactNode;\n /**\n * Variante visual.\n * - `elevated` (default): sombra sutil.\n * - `outlined`: borde sin sombra.\n * - `plain`: sin borde ni sombra, útil para layouts con nesting.\n */\n variant?: CardVariant;\n /** Densidad del padding interno. */\n padding?: CardPadding;\n /** Si `true`, muestra feedback de hover/active (cursor, sombra). */\n clickable?: boolean;\n /**\n * Preset registrado en `theme.styles.Card`. `\"default\"` usa el estilo\n * built-in sin preset extra.\n */\n preset?: string;\n /**\n * MUI `raised` legacy — mantenido por backward-compat. Equivale a\n * `variant=\"elevated\"` con sombra mayor. Ignora `variant` si se usa.\n */\n raised?: boolean;\n /**\n * Título de cabecera. Si se provee (o `subheader`/`action`), se renderiza un\n * `CardHeader` antes del contenido. Reemplaza el patrón\n * `<Card><CardHeader/>...</Card>` de MUI.\n */\n title?: ReactNode;\n /** Subtítulo de la cabecera. */\n subheader?: ReactNode;\n /** Acción a la derecha de la cabecera (ej. botón/menú). */\n action?: ReactNode;\n /** sx aplicado al `CardHeader`. */\n headerSx?: SxProps<Theme>;\n /**\n * sx aplicado al `CardContent` que envuelve a `children`. Al proveerlo (o al\n * usar header), el body se envuelve en un `CardContent` y el padding del root\n * pasa a `none` — equivale al patrón `<CardContent sx={...}>` de MUI.\n */\n contentSx?: SxProps<Theme>;\n /** sx del root. Se compone sobre el base + preset. */\n sx?: SxProps<Theme>;\n onClick?: () => void;\n onBlur?: () => void;\n className?: string;\n 'data-testid'?: string;\n}\n\nexport function Card({\n children,\n variant,\n padding = 'normal',\n clickable = false,\n preset,\n raised,\n title,\n subheader,\n action,\n headerSx,\n contentSx,\n sx,\n onClick,\n onBlur,\n className,\n 'data-testid': dataTestId,\n}: CardProps) {\n const theme = useTheme();\n\n const resolvedVariant: CardVariant = raised\n ? 'elevated'\n : (variant ?? 'elevated');\n\n const presetSx = resolvePreset('Card', preset, theme);\n\n const hasHeader =\n title != null || subheader != null || action != null;\n // En modo composición (header o contentSx) el padding lo manejan\n // CardHeader/CardContent, así que el root va sin padding.\n const useComposition = hasHeader || contentSx != null;\n\n const rootSx: SxProps<Theme> = [\n buildCardSx({\n variant: resolvedVariant,\n padding: useComposition ? 'none' : padding,\n clickable: clickable || Boolean(onClick),\n }),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n return (\n <MuiCard\n sx={rootSx}\n className={className}\n data-testid={dataTestId}\n onClick={onClick}\n onBlur={onBlur}\n elevation={0}\n >\n {hasHeader && (\n <CardHeader\n title={title}\n subheader={subheader}\n action={action}\n sx={headerSx}\n />\n )}\n {useComposition ? (\n <CardContent sx={contentSx}>{children}</CardContent>\n ) : (\n children\n )}\n </MuiCard>\n );\n}\n\nexport default Card;\n"],"names":["MuiCard"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,aAA0C;AAAA,EAC9C,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT;AAOO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,GAAoC;AAClC,SAAO,CAAC,UAAW;AAAA,IACjB,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB,WAAW,YAAY,aAAa,MAAM,QAAQ,CAAC,IAAI;AAAA,IACvD,QACE,YAAY,aACR,aAAa,MAAM,QAAQ,OAAO,KAClC;AAAA,IACN,YAAY,MAAM,YAAY;AAAA,MAC5B,CAAC,cAAc,aAAa,cAAc;AAAA,MAC1C,EAAE,UAAU,MAAM,YAAY,SAAS,QAAA;AAAA,IAAQ;AAAA,IAEjD,QAAQ,YAAY,YAAY;AAAA,KAC5B,aAAa;AAAA,IACf,WAAW;AAAA,MACT,WACE,YAAY,aACR,MAAM,QAAQ,CAAC,IACf,YAAY,aACV,MAAM,QAAQ,CAAC,IACf;AAAA,MACR,WAAW,YAAY,UAAU,qBAAqB;AAAA,IAAA;AAAA,IAExD,YAAY;AAAA,MACV,WAAW;AAAA,IAAA;AAAA,EACb,IAzBe;AAAA,IA2BjB,GAAG,WAAW,OAAO;AAAA,EAAA;AAEzB;ACAO,SAAS,KAAK;AAAA,EACnB;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AACjB,GAAc;AACZ,QAAM,QAAQ,SAAA;AAEd,QAAM,kBAA+B,SACjC,aACC,4BAAW;AAEhB,QAAM,WAAW,cAAc,QAAQ,QAAQ,KAAK;AAEpD,QAAM,YACJ,SAAS,QAAQ,aAAa,QAAQ,UAAU;AAGlD,QAAM,iBAAiB,aAAa,aAAa;AAEjD,QAAM,SAAyB;AAAA,IAC7B,YAAY;AAAA,MACV,SAAS;AAAA,MACT,SAAS,iBAAiB,SAAS;AAAA,MACnC,WAAW,aAAa,QAAQ,OAAO;AAAA,IAAA,CACxC;AAAA,IACD,GAAI,WAAW,CAAC,QAAQ,IAAI,CAAA;AAAA,IAC5B,GAAI,MAAM,QAAQ,EAAE,IAAI,KAAK,KAAK,CAAC,EAAE,IAAI,CAAA;AAAA,EAAC;AAG5C,SACE;AAAA,IAACA;AAAAA,IAAA;AAAA,MACC,IAAI;AAAA,MACJ;AAAA,MACA,eAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MAEV,UAAA;AAAA,QAAA,aACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA,IAAI;AAAA,UAAA;AAAA,QAAA;AAAA,QAGP,iBACC,oBAAC,aAAA,EAAY,IAAI,WAAY,UAAS,IAEtC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __spreadValues = (a, b) => {
10
+ for (var prop in b || (b = {}))
11
+ if (__hasOwnProp.call(b, prop))
12
+ __defNormalProp(a, prop, b[prop]);
13
+ if (__getOwnPropSymbols)
14
+ for (var prop of __getOwnPropSymbols(b)) {
15
+ if (__propIsEnum.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ }
18
+ return a;
19
+ };
20
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
21
+ const jsxRuntime = require("react/jsx-runtime");
22
+ const material = require("@mui/material");
23
+ const resolvePreset = require("./resolvePreset-CxTI6_Ln.cjs");
24
+ const paddingMap = {
25
+ none: 0,
26
+ dense: 1.5,
27
+ normal: 2.5,
28
+ loose: 4
29
+ };
30
+ function buildCardSx({
31
+ variant,
32
+ padding,
33
+ clickable
34
+ }) {
35
+ return (theme) => __spreadProps(__spreadValues({
36
+ borderRadius: 2,
37
+ backgroundColor: "background.paper",
38
+ boxShadow: variant === "elevated" ? theme.shadows[1] : "none",
39
+ border: variant === "outlined" ? `1px solid ${theme.palette.divider}` : "none",
40
+ transition: theme.transitions.create(
41
+ ["box-shadow", "transform", "border-color"],
42
+ { duration: theme.transitions.duration.shorter }
43
+ ),
44
+ cursor: clickable ? "pointer" : "default"
45
+ }, clickable && {
46
+ "&:hover": {
47
+ boxShadow: variant === "elevated" ? theme.shadows[3] : variant === "outlined" ? theme.shadows[1] : "none",
48
+ transform: variant !== "plain" ? "translateY(-1px)" : "none"
49
+ },
50
+ "&:active": {
51
+ transform: "translateY(0)"
52
+ }
53
+ }), {
54
+ p: paddingMap[padding]
55
+ });
56
+ }
57
+ function Card({
58
+ children,
59
+ variant,
60
+ padding = "normal",
61
+ clickable = false,
62
+ preset,
63
+ raised,
64
+ title,
65
+ subheader,
66
+ action,
67
+ headerSx,
68
+ contentSx,
69
+ sx,
70
+ onClick,
71
+ onBlur,
72
+ className,
73
+ "data-testid": dataTestId
74
+ }) {
75
+ const theme = material.useTheme();
76
+ const resolvedVariant = raised ? "elevated" : variant != null ? variant : "elevated";
77
+ const presetSx = resolvePreset.resolvePreset("Card", preset, theme);
78
+ const hasHeader = title != null || subheader != null || action != null;
79
+ const useComposition = hasHeader || contentSx != null;
80
+ const rootSx = [
81
+ buildCardSx({
82
+ variant: resolvedVariant,
83
+ padding: useComposition ? "none" : padding,
84
+ clickable: clickable || Boolean(onClick)
85
+ }),
86
+ ...presetSx ? [presetSx] : [],
87
+ ...Array.isArray(sx) ? sx : sx ? [sx] : []
88
+ ];
89
+ return /* @__PURE__ */ jsxRuntime.jsxs(
90
+ material.Card,
91
+ {
92
+ sx: rootSx,
93
+ className,
94
+ "data-testid": dataTestId,
95
+ onClick,
96
+ onBlur,
97
+ elevation: 0,
98
+ children: [
99
+ hasHeader && /* @__PURE__ */ jsxRuntime.jsx(
100
+ material.CardHeader,
101
+ {
102
+ title,
103
+ subheader,
104
+ action,
105
+ sx: headerSx
106
+ }
107
+ ),
108
+ useComposition ? /* @__PURE__ */ jsxRuntime.jsx(material.CardContent, { sx: contentSx, children }) : children
109
+ ]
110
+ }
111
+ );
112
+ }
113
+ exports.Card = Card;
114
+ exports.buildCardSx = buildCardSx;
115
+ //# sourceMappingURL=Card-Dr1-ATRY.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card-Dr1-ATRY.cjs","sources":["../src/components/Card/Card.sx.ts","../src/components/Card/Card.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material/styles';\n\nexport type CardVariant = 'elevated' | 'outlined' | 'plain';\nexport type CardPadding = 'none' | 'dense' | 'normal' | 'loose';\n\nexport interface BuildCardSxArgs {\n variant: CardVariant;\n padding: CardPadding;\n clickable: boolean;\n}\n\nconst paddingMap: Record<CardPadding, number> = {\n none: 0,\n dense: 1.5,\n normal: 2.5,\n loose: 4,\n};\n\n/**\n * Estilo base del Card. La prop `sx` del consumer se compone encima junto al\n * preset resuelto (en Card.tsx). Este builder solo se ocupa de variant +\n * padding para que siga siendo predecible.\n */\nexport function buildCardSx({\n variant,\n padding,\n clickable,\n}: BuildCardSxArgs): SxProps<Theme> {\n return (theme) => ({\n borderRadius: 2,\n backgroundColor: 'background.paper',\n boxShadow: variant === 'elevated' ? theme.shadows[1] : 'none',\n border:\n variant === 'outlined'\n ? `1px solid ${theme.palette.divider}`\n : 'none',\n transition: theme.transitions.create(\n ['box-shadow', 'transform', 'border-color'],\n { duration: theme.transitions.duration.shorter },\n ),\n cursor: clickable ? 'pointer' : 'default',\n ...(clickable && {\n '&:hover': {\n boxShadow:\n variant === 'elevated'\n ? theme.shadows[3]\n : variant === 'outlined'\n ? theme.shadows[1]\n : 'none',\n transform: variant !== 'plain' ? 'translateY(-1px)' : 'none',\n },\n '&:active': {\n transform: 'translateY(0)',\n },\n }),\n p: paddingMap[padding],\n });\n}\n","import { type ReactNode } from 'react';\nimport { Card as MuiCard, CardHeader, CardContent, useTheme } from '@mui/material';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\nimport { resolvePreset } from '../_shared/resolvePreset';\nimport { buildCardSx, type CardVariant, type CardPadding } from './Card.sx';\n\nexport interface CardProps {\n /** Contenido del Card. */\n children?: ReactNode;\n /**\n * Variante visual.\n * - `elevated` (default): sombra sutil.\n * - `outlined`: borde sin sombra.\n * - `plain`: sin borde ni sombra, útil para layouts con nesting.\n */\n variant?: CardVariant;\n /** Densidad del padding interno. */\n padding?: CardPadding;\n /** Si `true`, muestra feedback de hover/active (cursor, sombra). */\n clickable?: boolean;\n /**\n * Preset registrado en `theme.styles.Card`. `\"default\"` usa el estilo\n * built-in sin preset extra.\n */\n preset?: string;\n /**\n * MUI `raised` legacy — mantenido por backward-compat. Equivale a\n * `variant=\"elevated\"` con sombra mayor. Ignora `variant` si se usa.\n */\n raised?: boolean;\n /**\n * Título de cabecera. Si se provee (o `subheader`/`action`), se renderiza un\n * `CardHeader` antes del contenido. Reemplaza el patrón\n * `<Card><CardHeader/>...</Card>` de MUI.\n */\n title?: ReactNode;\n /** Subtítulo de la cabecera. */\n subheader?: ReactNode;\n /** Acción a la derecha de la cabecera (ej. botón/menú). */\n action?: ReactNode;\n /** sx aplicado al `CardHeader`. */\n headerSx?: SxProps<Theme>;\n /**\n * sx aplicado al `CardContent` que envuelve a `children`. Al proveerlo (o al\n * usar header), el body se envuelve en un `CardContent` y el padding del root\n * pasa a `none` — equivale al patrón `<CardContent sx={...}>` de MUI.\n */\n contentSx?: SxProps<Theme>;\n /** sx del root. Se compone sobre el base + preset. */\n sx?: SxProps<Theme>;\n onClick?: () => void;\n onBlur?: () => void;\n className?: string;\n 'data-testid'?: string;\n}\n\nexport function Card({\n children,\n variant,\n padding = 'normal',\n clickable = false,\n preset,\n raised,\n title,\n subheader,\n action,\n headerSx,\n contentSx,\n sx,\n onClick,\n onBlur,\n className,\n 'data-testid': dataTestId,\n}: CardProps) {\n const theme = useTheme();\n\n const resolvedVariant: CardVariant = raised\n ? 'elevated'\n : (variant ?? 'elevated');\n\n const presetSx = resolvePreset('Card', preset, theme);\n\n const hasHeader =\n title != null || subheader != null || action != null;\n // En modo composición (header o contentSx) el padding lo manejan\n // CardHeader/CardContent, así que el root va sin padding.\n const useComposition = hasHeader || contentSx != null;\n\n const rootSx: SxProps<Theme> = [\n buildCardSx({\n variant: resolvedVariant,\n padding: useComposition ? 'none' : padding,\n clickable: clickable || Boolean(onClick),\n }),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n return (\n <MuiCard\n sx={rootSx}\n className={className}\n data-testid={dataTestId}\n onClick={onClick}\n onBlur={onBlur}\n elevation={0}\n >\n {hasHeader && (\n <CardHeader\n title={title}\n subheader={subheader}\n action={action}\n sx={headerSx}\n />\n )}\n {useComposition ? (\n <CardContent sx={contentSx}>{children}</CardContent>\n ) : (\n children\n )}\n </MuiCard>\n );\n}\n\nexport default Card;\n"],"names":["useTheme","resolvePreset","jsxs","MuiCard","jsx","CardHeader","CardContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,aAA0C;AAAA,EAC9C,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT;AAOO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,GAAoC;AAClC,SAAO,CAAC,UAAW;AAAA,IACjB,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB,WAAW,YAAY,aAAa,MAAM,QAAQ,CAAC,IAAI;AAAA,IACvD,QACE,YAAY,aACR,aAAa,MAAM,QAAQ,OAAO,KAClC;AAAA,IACN,YAAY,MAAM,YAAY;AAAA,MAC5B,CAAC,cAAc,aAAa,cAAc;AAAA,MAC1C,EAAE,UAAU,MAAM,YAAY,SAAS,QAAA;AAAA,IAAQ;AAAA,IAEjD,QAAQ,YAAY,YAAY;AAAA,KAC5B,aAAa;AAAA,IACf,WAAW;AAAA,MACT,WACE,YAAY,aACR,MAAM,QAAQ,CAAC,IACf,YAAY,aACV,MAAM,QAAQ,CAAC,IACf;AAAA,MACR,WAAW,YAAY,UAAU,qBAAqB;AAAA,IAAA;AAAA,IAExD,YAAY;AAAA,MACV,WAAW;AAAA,IAAA;AAAA,EACb,IAzBe;AAAA,IA2BjB,GAAG,WAAW,OAAO;AAAA,EAAA;AAEzB;ACAO,SAAS,KAAK;AAAA,EACnB;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AACjB,GAAc;AACZ,QAAM,QAAQA,SAAAA,SAAA;AAEd,QAAM,kBAA+B,SACjC,aACC,4BAAW;AAEhB,QAAM,WAAWC,cAAAA,cAAc,QAAQ,QAAQ,KAAK;AAEpD,QAAM,YACJ,SAAS,QAAQ,aAAa,QAAQ,UAAU;AAGlD,QAAM,iBAAiB,aAAa,aAAa;AAEjD,QAAM,SAAyB;AAAA,IAC7B,YAAY;AAAA,MACV,SAAS;AAAA,MACT,SAAS,iBAAiB,SAAS;AAAA,MACnC,WAAW,aAAa,QAAQ,OAAO;AAAA,IAAA,CACxC;AAAA,IACD,GAAI,WAAW,CAAC,QAAQ,IAAI,CAAA;AAAA,IAC5B,GAAI,MAAM,QAAQ,EAAE,IAAI,KAAK,KAAK,CAAC,EAAE,IAAI,CAAA;AAAA,EAAC;AAG5C,SACEC,2BAAAA;AAAAA,IAACC,SAAAA;AAAAA,IAAA;AAAA,MACC,IAAI;AAAA,MACJ;AAAA,MACA,eAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MAEV,UAAA;AAAA,QAAA,aACCC,2BAAAA;AAAAA,UAACC,SAAAA;AAAAA,UAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA,IAAI;AAAA,UAAA;AAAA,QAAA;AAAA,QAGP,iBACCD,2BAAAA,IAACE,sBAAA,EAAY,IAAI,WAAY,UAAS,IAEtC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;;;"}