@soyfri/shared-library 2.0.0-beta.9 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/Alert-B3SMPD1s.cjs +31 -0
  2. package/Alert-B3SMPD1s.cjs.map +1 -0
  3. package/Alert-YsPScpSE.js +32 -0
  4. package/Alert-YsPScpSE.js.map +1 -0
  5. package/Autocomplete-C_lW1VER.js +337 -0
  6. package/Autocomplete-C_lW1VER.js.map +1 -0
  7. package/Autocomplete-CejWztBY.cjs +336 -0
  8. package/Autocomplete-CejWztBY.cjs.map +1 -0
  9. package/Avatar-Dw5rzayR.cjs +166 -0
  10. package/Avatar-Dw5rzayR.cjs.map +1 -0
  11. package/Avatar-H8akSege.js +167 -0
  12. package/Avatar-H8akSege.js.map +1 -0
  13. package/Breadcrumbs-B9I3vxPb.cjs +25 -0
  14. package/Breadcrumbs-B9I3vxPb.cjs.map +1 -0
  15. package/Breadcrumbs-C41SPbtX.js +26 -0
  16. package/Breadcrumbs-C41SPbtX.js.map +1 -0
  17. package/Button-C17mExpd.cjs.map +1 -1
  18. package/Button-UkkP-bNw.js.map +1 -1
  19. package/ButtonGroup-CNunDofQ.cjs +33 -0
  20. package/ButtonGroup-CNunDofQ.cjs.map +1 -0
  21. package/ButtonGroup-CcKUZ-lT.js +34 -0
  22. package/ButtonGroup-CcKUZ-lT.js.map +1 -0
  23. package/Card-DYKGY-NG.js +116 -0
  24. package/Card-DYKGY-NG.js.map +1 -0
  25. package/Card-Dr1-ATRY.cjs +115 -0
  26. package/Card-Dr1-ATRY.cjs.map +1 -0
  27. package/Checkbox-BCqMFWt4.cjs +187 -0
  28. package/Checkbox-BCqMFWt4.cjs.map +1 -0
  29. package/Checkbox-gB5YKkVo.js +188 -0
  30. package/Checkbox-gB5YKkVo.js.map +1 -0
  31. package/{components/DateRangePicker/DateRangePicker.js → Chip-OPYQ1uQ_.js} +33 -35
  32. package/Chip-OPYQ1uQ_.js.map +1 -0
  33. package/{components/DateRangePicker/DateRangePicker.cjs → Chip-qoJLDiva.cjs} +33 -36
  34. package/Chip-qoJLDiva.cjs.map +1 -0
  35. package/DatePicker-_IGWc3I5.js +178 -0
  36. package/DatePicker-_IGWc3I5.js.map +1 -0
  37. package/DatePicker-t7uDTZMl.cjs +177 -0
  38. package/DatePicker-t7uDTZMl.cjs.map +1 -0
  39. package/DateTimePicker-BxQyjTCY.cjs +229 -0
  40. package/DateTimePicker-BxQyjTCY.cjs.map +1 -0
  41. package/DateTimePicker-CrmWav_j.js +230 -0
  42. package/DateTimePicker-CrmWav_j.js.map +1 -0
  43. package/Divider-BApcM5CV.js +28 -0
  44. package/Divider-BApcM5CV.js.map +1 -0
  45. package/Divider-CIY0JK4U.cjs +27 -0
  46. package/Divider-CIY0JK4U.cjs.map +1 -0
  47. package/Input-CScC87J5.cjs +185 -0
  48. package/Input-CScC87J5.cjs.map +1 -0
  49. package/Input-DP_fKl38.js +186 -0
  50. package/Input-DP_fKl38.js.map +1 -0
  51. package/Modal-C_QY7ZzY.js +352 -0
  52. package/Modal-C_QY7ZzY.js.map +1 -0
  53. package/Modal-D_6ZdSzw.cjs +351 -0
  54. package/Modal-D_6ZdSzw.cjs.map +1 -0
  55. package/README.md +188 -172
  56. package/RadioGroup-Dd0rHXSX.cjs +202 -0
  57. package/RadioGroup-Dd0rHXSX.cjs.map +1 -0
  58. package/RadioGroup-bO-ahP9T.js +203 -0
  59. package/RadioGroup-bO-ahP9T.js.map +1 -0
  60. package/Select-BY5Y0qZ1.js +376 -0
  61. package/Select-BY5Y0qZ1.js.map +1 -0
  62. package/Select-CURrHSyl.cjs +375 -0
  63. package/Select-CURrHSyl.cjs.map +1 -0
  64. package/Spinner-B6sThC1p.js +74 -0
  65. package/Spinner-B6sThC1p.js.map +1 -0
  66. package/Spinner-D7qRmNS9.cjs +73 -0
  67. package/Spinner-D7qRmNS9.cjs.map +1 -0
  68. package/Stat-BUcFCGrz.cjs +83 -0
  69. package/Stat-BUcFCGrz.cjs.map +1 -0
  70. package/Stat-C06A_izS.js +84 -0
  71. package/Stat-C06A_izS.js.map +1 -0
  72. package/StatusMessage-B3nXpuRl.cjs +88 -0
  73. package/StatusMessage-B3nXpuRl.cjs.map +1 -0
  74. package/StatusMessage-D0WgSBx7.js +89 -0
  75. package/StatusMessage-D0WgSBx7.js.map +1 -0
  76. package/Step-BArsou1V.js +301 -0
  77. package/Step-BArsou1V.js.map +1 -0
  78. package/Step-Nd7SJbRZ.cjs +300 -0
  79. package/Step-Nd7SJbRZ.cjs.map +1 -0
  80. package/Switch-CQFOopYy.cjs +182 -0
  81. package/Switch-CQFOopYy.cjs.map +1 -0
  82. package/Switch-D72dpkH2.js +183 -0
  83. package/Switch-D72dpkH2.js.map +1 -0
  84. package/Tab-D1S7kxXI.cjs +137 -0
  85. package/Tab-D1S7kxXI.cjs.map +1 -0
  86. package/Tab-DycIMXmQ.js +138 -0
  87. package/Tab-DycIMXmQ.js.map +1 -0
  88. package/Table-C2LbW0B1.js +531 -0
  89. package/Table-C2LbW0B1.js.map +1 -0
  90. package/Table-C4OM6rrC.cjs +530 -0
  91. package/Table-C4OM6rrC.cjs.map +1 -0
  92. package/components/ActionMenu/ActionMenu.cjs +52 -52
  93. package/components/ActionMenu/ActionMenu.cjs.map +1 -1
  94. package/components/ActionMenu/ActionMenu.d.ts +20 -36
  95. package/components/ActionMenu/ActionMenu.js +55 -55
  96. package/components/ActionMenu/ActionMenu.js.map +1 -1
  97. package/components/ActionMenu/index.d.ts +2 -2
  98. package/components/Alert/Alert.cjs +6 -0
  99. package/components/Alert/Alert.cjs.map +1 -0
  100. package/components/Alert/Alert.d.ts +31 -0
  101. package/components/Alert/Alert.js +6 -0
  102. package/components/Alert/Alert.js.map +1 -0
  103. package/components/Alert/index.d.ts +2 -0
  104. package/components/Alert.d.ts +6 -0
  105. package/components/AppBar/AppBar.cjs +3 -220
  106. package/components/AppBar/AppBar.cjs.map +1 -1
  107. package/components/AppBar/AppBar.d.ts +6 -6
  108. package/components/AppBar/AppBar.js +6 -223
  109. package/components/AppBar/AppBar.js.map +1 -1
  110. package/components/AppBar/index.d.ts +0 -6
  111. package/components/Autocomplete/Autocomplete.cjs +4 -311
  112. package/components/Autocomplete/Autocomplete.cjs.map +1 -1
  113. package/components/Autocomplete/Autocomplete.d.ts +8 -6
  114. package/components/Autocomplete/Autocomplete.helpers.d.ts +8 -4
  115. package/components/Autocomplete/Autocomplete.js +4 -311
  116. package/components/Autocomplete/Autocomplete.js.map +1 -1
  117. package/components/Autocomplete/_parts/AutocompleteOption.d.ts +5 -8
  118. package/components/Autocomplete/index.d.ts +1 -1
  119. package/components/Avatar/Avatar.cjs +2 -160
  120. package/components/Avatar/Avatar.cjs.map +1 -1
  121. package/components/Avatar/Avatar.d.ts +16 -1
  122. package/components/Avatar/Avatar.js +2 -160
  123. package/components/Avatar/Avatar.js.map +1 -1
  124. package/components/Avatar/index.d.ts +1 -0
  125. package/components/Breadcrumbs/Breadcrumbs.cjs +6 -0
  126. package/components/Breadcrumbs/Breadcrumbs.cjs.map +1 -0
  127. package/components/Breadcrumbs/Breadcrumbs.d.ts +16 -0
  128. package/components/Breadcrumbs/Breadcrumbs.js +6 -0
  129. package/components/Breadcrumbs/Breadcrumbs.js.map +1 -0
  130. package/components/Breadcrumbs/index.d.ts +2 -0
  131. package/components/Breadcrumbs.d.ts +6 -0
  132. package/components/Button/Button.d.ts +5 -5
  133. package/components/Button/index.d.ts +1 -0
  134. package/components/ButtonGroup/ButtonGroup.cjs +6 -0
  135. package/components/ButtonGroup/ButtonGroup.cjs.map +1 -0
  136. package/components/ButtonGroup/ButtonGroup.d.ts +18 -0
  137. package/components/ButtonGroup/ButtonGroup.js +6 -0
  138. package/components/ButtonGroup/ButtonGroup.js.map +1 -0
  139. package/components/ButtonGroup/index.d.ts +2 -0
  140. package/components/ButtonGroup.d.ts +6 -0
  141. package/components/Card/Card.cjs +4 -184
  142. package/components/Card/Card.cjs.map +1 -1
  143. package/components/Card/Card.d.ts +21 -50
  144. package/components/Card/Card.js +4 -184
  145. package/components/Card/Card.js.map +1 -1
  146. package/components/Card/Card.sx.d.ts +3 -6
  147. package/components/Card/index.d.ts +1 -1
  148. package/components/Checkbox/Checkbox.cjs +6 -0
  149. package/components/Checkbox/Checkbox.cjs.map +1 -0
  150. package/components/Checkbox/Checkbox.d.ts +55 -0
  151. package/components/Checkbox/Checkbox.js +6 -0
  152. package/components/Checkbox/Checkbox.js.map +1 -0
  153. package/components/Checkbox/Checkbox.sx.d.ts +13 -0
  154. package/components/Checkbox/index.d.ts +2 -0
  155. package/components/Checkbox.d.ts +6 -0
  156. package/components/Chip/Chip.cjs +4 -72
  157. package/components/Chip/Chip.cjs.map +1 -1
  158. package/components/Chip/Chip.js +3 -71
  159. package/components/Chip/Chip.js.map +1 -1
  160. package/components/Chip/index.d.ts +2 -1
  161. package/components/Chip.d.ts +4 -0
  162. package/components/Column/Column.cjs +1 -1
  163. package/components/Column/Column.cjs.map +1 -1
  164. package/components/Column/Column.d.ts +1 -1
  165. package/components/Column/Column.js +1 -1
  166. package/components/Column/Column.js.map +1 -1
  167. package/components/Column/index.d.ts +1 -0
  168. package/components/DatePicker/DatePicker.cjs +3 -200
  169. package/components/DatePicker/DatePicker.cjs.map +1 -1
  170. package/components/DatePicker/DatePicker.d.ts +1 -13
  171. package/components/DatePicker/DatePicker.js +3 -200
  172. package/components/DatePicker/DatePicker.js.map +1 -1
  173. package/components/DatePicker/index.d.ts +1 -1
  174. package/components/DateTimePicker/DateTimePicker.cjs +3 -219
  175. package/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
  176. package/components/DateTimePicker/DateTimePicker.d.ts +10 -6
  177. package/components/DateTimePicker/DateTimePicker.definitions.d.ts +2 -0
  178. package/components/DateTimePicker/DateTimePicker.helpers.d.ts +4 -2
  179. package/components/DateTimePicker/DateTimePicker.js +3 -219
  180. package/components/DateTimePicker/DateTimePicker.js.map +1 -1
  181. package/components/DateTimePicker/index.d.ts +1 -1
  182. package/components/Divider/Divider.cjs +6 -0
  183. package/components/Divider/Divider.cjs.map +1 -0
  184. package/components/Divider/Divider.d.ts +17 -0
  185. package/components/Divider/Divider.js +6 -0
  186. package/components/Divider/Divider.js.map +1 -0
  187. package/components/Divider/index.d.ts +2 -0
  188. package/components/Divider.d.ts +6 -0
  189. package/components/Drawer/Drawer.cjs +11 -7
  190. package/components/Drawer/Drawer.cjs.map +1 -1
  191. package/components/Drawer/Drawer.js +12 -8
  192. package/components/Drawer/Drawer.js.map +1 -1
  193. package/components/Drawer/DrawerItem.d.ts +6 -1
  194. package/components/Gallery/Gallery.cjs +154 -79
  195. package/components/Gallery/Gallery.cjs.map +1 -1
  196. package/components/Gallery/Gallery.d.ts +25 -9
  197. package/components/Gallery/Gallery.js +154 -79
  198. package/components/Gallery/Gallery.js.map +1 -1
  199. package/components/Gallery/GalleryLightbox.d.ts +6 -10
  200. package/components/Gallery/GalleryMain.d.ts +3 -7
  201. package/components/Gallery/GalleryThumbnails.d.ts +7 -11
  202. package/components/Gallery/index.d.ts +2 -1
  203. package/components/Gallery.d.ts +4 -0
  204. package/components/Icon/Icon.cjs +6 -8
  205. package/components/Icon/Icon.cjs.map +1 -1
  206. package/components/Icon/Icon.d.ts +11 -17
  207. package/components/Icon/Icon.js +6 -8
  208. package/components/Icon/Icon.js.map +1 -1
  209. package/components/Icon/index.d.ts +2 -1
  210. package/components/Icon.d.ts +4 -0
  211. package/components/Input/Input.cjs +3 -172
  212. package/components/Input/Input.cjs.map +1 -1
  213. package/components/Input/Input.d.ts +9 -2
  214. package/components/Input/Input.helpers.d.ts +3 -3
  215. package/components/Input/Input.js +3 -172
  216. package/components/Input/Input.js.map +1 -1
  217. package/components/Input/index.d.ts +1 -1
  218. package/components/InputGroup/InputGroup.cjs +23 -22
  219. package/components/InputGroup/InputGroup.cjs.map +1 -1
  220. package/components/InputGroup/InputGroup.d.ts +4 -4
  221. package/components/InputGroup/InputGroup.js +22 -21
  222. package/components/InputGroup/InputGroup.js.map +1 -1
  223. package/components/InputGroup/index.d.ts +2 -1
  224. package/components/InputGroup.d.ts +4 -0
  225. package/components/Modal/Modal.cjs +7 -317
  226. package/components/Modal/Modal.cjs.map +1 -1
  227. package/components/Modal/Modal.d.ts +27 -5
  228. package/components/Modal/Modal.js +6 -316
  229. package/components/Modal/Modal.js.map +1 -1
  230. package/components/Modal/ModalBody.d.ts +6 -1
  231. package/components/Modal/ModalFooter.d.ts +4 -4
  232. package/components/Modal/ModalHeader.d.ts +6 -1
  233. package/components/Modal/index.d.ts +3 -1
  234. package/components/Modal.d.ts +4 -0
  235. package/components/RadioGroup/RadioGroup.cjs +3 -199
  236. package/components/RadioGroup/RadioGroup.cjs.map +1 -1
  237. package/components/RadioGroup/RadioGroup.d.ts +9 -3
  238. package/components/RadioGroup/RadioGroup.js +3 -199
  239. package/components/RadioGroup/RadioGroup.js.map +1 -1
  240. package/components/RadioGroup/index.d.ts +1 -1
  241. package/components/Select/Select.cjs +4 -445
  242. package/components/Select/Select.cjs.map +1 -1
  243. package/components/Select/Select.d.ts +37 -18
  244. package/components/Select/Select.helpers.d.ts +5 -19
  245. package/components/Select/Select.js +4 -445
  246. package/components/Select/Select.js.map +1 -1
  247. package/components/Select/index.d.ts +1 -1
  248. package/components/Spinner/Spinner.cjs +6 -0
  249. package/components/Spinner/Spinner.cjs.map +1 -0
  250. package/components/Spinner/Spinner.d.ts +26 -0
  251. package/components/Spinner/Spinner.js +6 -0
  252. package/components/Spinner/Spinner.js.map +1 -0
  253. package/components/Spinner/index.d.ts +2 -0
  254. package/components/Spinner.d.ts +6 -0
  255. package/components/Stat/Stat.cjs +4 -83
  256. package/components/Stat/Stat.cjs.map +1 -1
  257. package/components/Stat/Stat.js +3 -82
  258. package/components/Stat/Stat.js.map +1 -1
  259. package/components/Stat/index.d.ts +2 -1
  260. package/components/Stat.d.ts +4 -0
  261. package/components/StatusMessage/StatusMessage.cjs +4 -77
  262. package/components/StatusMessage/StatusMessage.cjs.map +1 -1
  263. package/components/StatusMessage/StatusMessage.d.ts +20 -36
  264. package/components/StatusMessage/StatusMessage.js +3 -76
  265. package/components/StatusMessage/StatusMessage.js.map +1 -1
  266. package/components/StatusMessage/index.d.ts +2 -1
  267. package/components/StatusMessage.d.ts +4 -0
  268. package/components/Stepper/Stepper.cjs +8 -90
  269. package/components/Stepper/Stepper.cjs.map +1 -1
  270. package/components/Stepper/Stepper.d.ts +9 -20
  271. package/components/Stepper/Stepper.js +7 -89
  272. package/components/Stepper/Stepper.js.map +1 -1
  273. package/{hooks/Wizard/WizardContext.d.ts → components/Stepper/StepperContext.d.ts} +29 -23
  274. package/components/Stepper/_hooks/useHorizontalScroll.d.ts +19 -0
  275. package/components/Stepper/_parts/StepperScrollArrow.d.ts +19 -0
  276. package/components/Stepper/index.d.ts +6 -2
  277. package/components/Stepper.d.ts +4 -0
  278. package/components/Switch/Switch.cjs +3 -178
  279. package/components/Switch/Switch.cjs.map +1 -1
  280. package/components/Switch/Switch.d.ts +7 -2
  281. package/components/Switch/Switch.js +3 -178
  282. package/components/Switch/Switch.js.map +1 -1
  283. package/components/Table/Table.cjs +2 -528
  284. package/components/Table/Table.cjs.map +1 -1
  285. package/components/Table/Table.d.ts +1 -1
  286. package/components/Table/Table.js +2 -528
  287. package/components/Table/Table.js.map +1 -1
  288. package/components/Tabs/Tab.d.ts +13 -2
  289. package/components/Tabs/Tabs.cjs +5 -94
  290. package/components/Tabs/Tabs.cjs.map +1 -1
  291. package/components/Tabs/Tabs.d.ts +33 -16
  292. package/components/Tabs/Tabs.js +4 -93
  293. package/components/Tabs/Tabs.js.map +1 -1
  294. package/components/Tabs/index.d.ts +4 -2
  295. package/components/Tabs.d.ts +4 -0
  296. package/components/Timeline/Timeline.cjs +3 -2
  297. package/components/Timeline/Timeline.cjs.map +1 -1
  298. package/components/Timeline/Timeline.d.ts +4 -8
  299. package/components/Timeline/Timeline.js +3 -2
  300. package/components/Timeline/Timeline.js.map +1 -1
  301. package/components/Timeline/index.d.ts +4 -2
  302. package/components/Timeline.d.ts +4 -0
  303. package/components/_shared/mergeSx.d.ts +7 -0
  304. package/{formField.sx-DfVbMe0V.js → formField.sx-8_QRnKxv.js} +2 -11
  305. package/formField.sx-8_QRnKxv.js.map +1 -0
  306. package/{formField.sx-CQ1mbk9M.cjs → formField.sx-BAX7KwMR.cjs} +10 -19
  307. package/formField.sx-BAX7KwMR.cjs.map +1 -0
  308. package/index.cjs +78 -10
  309. package/index.cjs.map +1 -1
  310. package/index.d.ts +42 -0
  311. package/index.js +70 -5
  312. package/index.js.map +1 -1
  313. package/local/affiliations/affiliations.dev.soyfri.com-key.pem +28 -0
  314. package/local/affiliations/affiliations.dev.soyfri.com.pem +27 -0
  315. package/local/aficiliaciones/afiliaciones.dev.soyfri.com-key.pem +28 -0
  316. package/local/aficiliaciones/afiliaciones.dev.soyfri.com.pem +27 -0
  317. package/local/afiliaciones/afiliaciones.dev.soyfri.com-key.pem +28 -0
  318. package/local/afiliaciones/afiliaciones.dev.soyfri.com.pem +27 -0
  319. package/local/root/rootCA-key.pem +40 -0
  320. package/local/root/rootCA.pem +30 -0
  321. package/local/soporte/supportweb.dev.soyfri.com-key.pem +28 -0
  322. package/local/soporte/supportweb.dev.soyfri.com.pem +27 -0
  323. package/local/support/supportweb.dev.soyfri.com-key.pem +28 -0
  324. package/local/support/supportweb.dev.soyfri.com.pem +27 -0
  325. package/mergeSx-BXoNZjB_.js +10 -0
  326. package/mergeSx-BXoNZjB_.js.map +1 -0
  327. package/mergeSx-Dbccoo_H.cjs +9 -0
  328. package/mergeSx-Dbccoo_H.cjs.map +1 -0
  329. package/mui.d.ts +2 -1
  330. package/package.json +85 -76
  331. package/{resolvePreset-CT3kU-K2.cjs → resolvePreset-CxTI6_Ln.cjs} +3 -3
  332. package/{resolvePreset-CT3kU-K2.cjs.map → resolvePreset-CxTI6_Ln.cjs.map} +1 -1
  333. package/{resolvePreset-B-IB0ehH.js → resolvePreset-K6_BfWHD.js} +3 -3
  334. package/{resolvePreset-B-IB0ehH.js.map → resolvePreset-K6_BfWHD.js.map} +1 -1
  335. package/theme/componentStyles.d.ts +1 -1
  336. package/tokens-BRrcP_p_.js +21 -0
  337. package/tokens-BRrcP_p_.js.map +1 -0
  338. package/tokens-jaWWNk39.cjs +20 -0
  339. package/tokens-jaWWNk39.cjs.map +1 -0
  340. package/utils/index.d.ts +2 -0
  341. package/{components/ScrollTopButton → utils}/scrollToTop.d.ts +6 -7
  342. package/components/AppBar/AppBarBrand.d.ts +0 -31
  343. package/components/AppBar/AppBarUserMenu.d.ts +0 -65
  344. package/components/Autocomplete/Autocomplete.types.d.ts +0 -1
  345. package/components/DatePicker/DatePicker.types.d.ts +0 -1
  346. package/components/DateRangePicker/DateRangePicker.cjs.map +0 -1
  347. package/components/DateRangePicker/DateRangePicker.d.ts +0 -15
  348. package/components/DateRangePicker/DateRangePicker.definitions.d.ts +0 -6
  349. package/components/DateRangePicker/DateRangePicker.js.map +0 -1
  350. package/components/DateRangePicker/index.d.ts +0 -1
  351. package/components/DateRangePicker.d.ts +0 -2
  352. package/components/DateTimePicker/DateTimePicker.types.d.ts +0 -1
  353. package/components/Input/Input.types.d.ts +0 -1
  354. package/components/PageLoader/PageLoader.cjs +0 -61
  355. package/components/PageLoader/PageLoader.cjs.map +0 -1
  356. package/components/PageLoader/PageLoader.d.ts +0 -38
  357. package/components/PageLoader/PageLoader.js +0 -61
  358. package/components/PageLoader/PageLoader.js.map +0 -1
  359. package/components/PageLoader/index.d.ts +0 -2
  360. package/components/PageLoader.d.ts +0 -6
  361. package/components/RadioGroup/RadioGroup.types.d.ts +0 -1
  362. package/components/ScrollTopButton/ScrollTopButton.cjs +0 -79
  363. package/components/ScrollTopButton/ScrollTopButton.cjs.map +0 -1
  364. package/components/ScrollTopButton/ScrollTopButton.d.ts +0 -48
  365. package/components/ScrollTopButton/ScrollTopButton.js +0 -79
  366. package/components/ScrollTopButton/ScrollTopButton.js.map +0 -1
  367. package/components/ScrollTopButton/index.d.ts +0 -4
  368. package/components/ScrollTopButton.d.ts +0 -6
  369. package/components/Select/Select.definitions.d.ts +0 -17
  370. package/components/Select/Select.types.d.ts +0 -1
  371. package/components/Select/_parts/SelectSearchHeader.d.ts +0 -15
  372. package/formField.sx-CQ1mbk9M.cjs.map +0 -1
  373. package/formField.sx-DfVbMe0V.js.map +0 -1
  374. package/hooks/Wizard/Wizard.cjs +0 -7
  375. package/hooks/Wizard/Wizard.cjs.map +0 -1
  376. package/hooks/Wizard/Wizard.js +0 -7
  377. package/hooks/Wizard/Wizard.js.map +0 -1
  378. package/hooks/Wizard/index.d.ts +0 -3
  379. package/hooks/Wizard/useWizard.d.ts +0 -9
  380. package/hooks/Wizard.d.ts +0 -2
  381. package/useWizard-CWdIxZzX.cjs +0 -94
  382. package/useWizard-CWdIxZzX.cjs.map +0 -1
  383. package/useWizard-CWq--C3o.js +0 -95
  384. package/useWizard-CWq--C3o.js.map +0 -1
  385. /package/{styles.css → index.css} +0 -0
package/README.md CHANGED
@@ -1,243 +1,259 @@
1
1
  # @soyfri/shared-library
2
2
 
3
- Una librería de componentes React reutilizables construida con Material-UI, TypeScript y Tailwind CSS, diseñada para proporcionar componentes UI consistentes y bien documentados.
3
+ Librería de componentes React de FRI, construida sobre **Material UI v7** + TypeScript. Provee componentes UI consistentes y tipados para los frontends del ecosistema (`soporte`, `afiliaciones`, …).
4
4
 
5
- ## 📋 Tabla de Contenidos
6
-
7
- - [Características](#características)
8
- - [Instalación](#instalación)
9
- - [Uso](#uso)
10
- - [Componentes Disponibles](#componentes-disponibles)
11
- - [Desarrollo](#desarrollo)
12
- - [Scripts Disponibles](#scripts-disponibles)
13
- - [Storybook](#storybook)
14
- - [Testing](#testing)
15
- - [Tecnologías](#tecnologías)
16
- - [Estructura del Proyecto](#estructura-del-proyecto)
17
-
18
- ## ✨ Características
19
-
20
- - 🎨 **Componentes tipados**: Todos los componentes están construidos con TypeScript para mayor seguridad de tipos
21
- - 📚 **Documentación con Storybook**: Cada componente incluye historias interactivas y documentación
22
- - 🎯 **Material-UI**: Basado en Material-UI para un diseño consistente y accesible
23
- - 🌈 **Tailwind CSS**: Integración con Tailwind para estilos utilitarios
24
- - 🧪 **Testing**: Configurado con Vitest y Playwright para testing de componentes
25
- - 📦 **Build optimizado**: Configuración con Rollup para generar builds ESM y CommonJS
26
-
27
- ## 📦 Instalación
5
+ ## Instalación
28
6
 
29
7
  ```bash
30
8
  npm install @soyfri/shared-library
31
9
  ```
32
10
 
33
- ## 🚀 Uso
11
+ ### Peer dependencies
34
12
 
35
- ```tsx
36
- import { Button, Table, Select } from '@soyfri/shared-library';
37
- import '@soyfri/shared-library/dist/styles.css';
13
+ El consumidor debe tener instaladas (la librería no las empaqueta):
38
14
 
39
- function App() {
40
- return (
41
- <div>
42
- <Button variant="contained" color="primary">
43
- Mi Botón
44
- </Button>
45
- </div>
46
- );
47
- }
15
+ ```
16
+ react >=18 react-dom >=18 react-hook-form ^7
17
+ @mui/material ^7 @mui/icons-material ^7 @mui/x-date-pickers ^8 @mui/lab ^7
18
+ @emotion/react ^11 @emotion/styled ^11 dayjs ^1
48
19
  ```
49
20
 
50
- ## 🧩 Componentes Disponibles
21
+ ## Setup
51
22
 
52
- ### Button
53
- Componente de botón personalizable basado en Material-UI con soporte para iconos, diferentes tamaños y estados.
23
+ 1. Envuelve la app en el `ThemeProvider` de MUI (los componentes leen el theme del contexto).
24
+ 2. Importa los estilos una vez. El barrel los importa solo; si **solo** usas subpaths, impórtalos manualmente:
54
25
 
55
- **Características:**
56
- - Variantes: `text`, `outlined`, `contained`
57
- - Tamaños: `small`, `medium`, `large`
58
- - Soporte para iconos de inicio y fin
59
- - Estados de carga
60
- - Completamente tipado
26
+ ```tsx
27
+ import '@soyfri/shared-library/styles.css'
28
+ ```
61
29
 
62
- ### Table
63
- Componente de tabla flexible con paginación interna y externa, ordenamiento y renderizado personalizado de columnas.
30
+ ## Dos formas de importar
64
31
 
65
- **Características:**
66
- - Paginación interna automática
67
- - Paginación externa controlada
68
- - Columnas personalizables con renderizado custom
69
- - Soporte para componentes complejos en celdas
70
- - Completamente tipado con generics
32
+ ```tsx
33
+ // 1) Subpath por componente (recomendado — tree-shaking, lo que usan los proyectos)
34
+ import { Button } from '@soyfri/shared-library/components/Button'
35
+ import { Table } from '@soyfri/shared-library/components/Table'
71
36
 
72
- ### Select
73
- Componente select avanzado con soporte para selección múltiple, filtros, agrupación y renderizado personalizado.
37
+ // 2) Barrel raíz (importa styles.css automáticamente)
38
+ import { Button, Table, Select } from '@soyfri/shared-library'
39
+ ```
74
40
 
75
- **Características:**
76
- - Selección simple y múltiple
77
- - Filtrado de opciones
78
- - Agrupación de opciones
79
- - Renderizado personalizado con avatars
80
- - Placeholder configurable
41
+ > Cada componente se publica como subpath `@soyfri/shared-library/components/<Nombre>`.
81
42
 
82
- ### Avatar
83
- Componente para mostrar avatares de usuarios con soporte para imágenes y texto.
43
+ ---
84
44
 
85
- ### Icon
86
- Wrapper para iconos de Material-UI con propiedades consistentes.
45
+ ## Componentes
87
46
 
88
- ### Stat
89
- Componente para mostrar estadísticas con diferentes plantillas de visualización.
47
+ Uso mínimo de cada componente. Todos aceptan `sx` y son tipados.
90
48
 
91
- **Características:**
92
- - Plantilla simple
93
- - Plantilla con chip
94
- - Plantilla con lista de chips
95
- - Colores personalizables
49
+ ### Formularios e inputs
96
50
 
97
- ### Column
98
- Componente auxiliar para definir columnas en el componente Table.
51
+ **Button** — `variant` (`text`/`outlined`/`contained`), `color`, `size`, `loading`, `startIcon`/`endIcon`.
52
+ ```tsx
53
+ <Button variant="contained" color="primary" onClick={fn}>Guardar</Button>
54
+ ```
99
55
 
100
- ## 🛠️ Desarrollo
56
+ **Input** — campo de texto. Modo controlado (`value`/`onChange`) o RHF (`name`/`control`).
57
+ ```tsx
58
+ <Input label="Nombre" value={v} onChange={setV} />
59
+ <Input label="Correo" type="email" name="email" control={control} />
60
+ ```
101
61
 
102
- ### Prerrequisitos
62
+ **InputGroup** — agrupa inputs/botones adyacentes con bordes unificados.
63
+ ```tsx
64
+ <InputGroup><Input label="Buscar" value={q} onChange={setQ} /><Button>Ir</Button></InputGroup>
65
+ ```
103
66
 
104
- - Node.js (versión 18 o superior)
105
- - npm o yarn
67
+ **Select** + **Option** — single, múltiple y filtrable. Modo controlado o RHF.
68
+ ```tsx
69
+ <Select label="País" value={v} onChange={setV} options={[{value:'gt',label:'Guatemala'}]} />
70
+ <Select label="Tags" multiple value={vals} onChange={setVals} options={opts} filterable />
71
+ ```
106
72
 
107
- ### Configuración del entorno de desarrollo
73
+ **Autocomplete** — búsqueda con `options` (`{value,label,img?}`), `multiple`.
74
+ ```tsx
75
+ <Autocomplete label="Usuario" options={opts} value={v} onChange={setV} />
76
+ ```
108
77
 
109
- 1. Clona el repositorio:
110
- ```bash
111
- git clone <repository-url>
112
- cd shared-library
78
+ **Checkbox** / **Switch** — `label`, controlado (`checked`/`onChange`) o RHF (`name`/`control`).
79
+ ```tsx
80
+ <Checkbox label="Acepto" checked={ok} onChange={setOk} />
81
+ <Switch label="Activo" checked={on} onChange={setOn} />
113
82
  ```
114
83
 
115
- 2. Instala las dependencias:
116
- ```bash
117
- npm install
84
+ **RadioGroup** — `options` (`{value,label}`), `row`.
85
+ ```tsx
86
+ <RadioGroup label="Tipo" options={[{value:'a',label:'A'},{value:'b',label:'B'}]} value={v} onChange={setV} />
118
87
  ```
119
88
 
120
- 3. Inicia el entorno de desarrollo:
121
- ```bash
122
- npm run dev
89
+ **DatePicker** / **DateTimePicker** — valor `Dayjs`, `minDate`/`maxDate`.
90
+ ```tsx
91
+ <DatePicker label="Fecha" value={date} onChange={setDate} />
123
92
  ```
124
93
 
125
- ## 📜 Scripts Disponibles
94
+ ### Datos y visualización
126
95
 
127
- - `npm run build` - Construye la librería para producción
128
- - `npm run dev` - Inicia el modo de desarrollo con watch
129
- - `npm run build:css` - Construye los estilos CSS
130
- - `npm run watch:css` - Observa cambios en los estilos CSS
131
- - `npm run clean` - Limpia la carpeta dist
132
- - `npm run prepare` - Limpia y construye la librería
133
- - `npm run storybook` - Inicia Storybook en modo desarrollo
134
- - `npm run build-storybook` - Construye Storybook para producción
135
- - `npm run dist` - Ejecuta el script de distribución personalizado
96
+ **Table** + **Column** — paginación interna o externa, render por columna.
97
+ ```tsx
98
+ <Table data={rows}>
99
+ <Column name="Nombre" field="name">{({name}) => <b>{name}</b>}</Column>
100
+ <Column name="Estado" field="status">{({status}) => <Chip label={status} />}</Column>
101
+ </Table>
102
+ ```
136
103
 
137
- ## 📚 Storybook
104
+ **Avatar** — uno (`src`/`alt`/`fallback`) o grupo apilado (`items`).
105
+ ```tsx
106
+ <Avatar src={url} alt="Ada" fallback="AL" />
107
+ <Avatar items={[{imageUrl:u1,text:'Ada'},{imageUrl:u2,text:'Bob'}]} displayedAvatars={3} />
108
+ ```
138
109
 
139
- La librería incluye Storybook para documentación interactiva y desarrollo de componentes.
110
+ **Chip** — `label`, `color`, `variant`, `onDelete`.
111
+ ```tsx
112
+ <Chip label="Activo" color="success" size="small" />
113
+ ```
140
114
 
141
- ### Iniciar Storybook
115
+ **Stat** — KPI con plantillas `simple`/`chip`/`chipList`.
116
+ ```tsx
117
+ <Stat simple statDisplay={() => <>Q 1,200</>} />
118
+ ```
142
119
 
143
- ```bash
144
- npm run storybook
120
+ **Icon** — SVG por `path`/`url` o `children`, con `badge`, `spin`.
121
+ ```tsx
122
+ <Icon url="/icons/user.svg" size="md" />
145
123
  ```
146
124
 
147
- Esto abrirá Storybook en `http://localhost:6006` donde podrás:
125
+ **Gallery** — galería con lightbox; `items` (`{url,type,title}`).
126
+ ```tsx
127
+ <Gallery items={[{url:img,type:'image',title:'Doc'}]} />
128
+ ```
129
+
130
+ **Timeline** + **TimelineItem** — línea temporal.
131
+ ```tsx
132
+ <Timeline><TimelineItem>Creado</TimelineItem><TimelineItem>Aprobado</TimelineItem></Timeline>
133
+ ```
148
134
 
149
- - Ver todos los componentes disponibles
150
- - Interactuar con las propiedades de cada componente
151
- - Ver ejemplos de uso
152
- - Acceder a la documentación detallada
135
+ **Stepper** + **Step** — pasos `horizontal`/`vertical`, `currentStep`.
136
+ ```tsx
137
+ <Stepper currentStep={1}><Step label="Datos" /><Step label="Pago" /></Stepper>
138
+ ```
153
139
 
154
- ### Construir Storybook
140
+ ### Feedback
155
141
 
156
- ```bash
157
- npm run build-storybook
142
+ **Alert** — `severity` (`success`/`info`/`warning`/`error`), `variant`.
143
+ ```tsx
144
+ <Alert severity="error">No se pudo guardar</Alert>
158
145
  ```
159
146
 
160
- ## 🧪 Testing
147
+ **Spinner** — `size`, `color`.
148
+ ```tsx
149
+ <Spinner size={16} />
150
+ ```
161
151
 
162
- La librería está configurada con Vitest y Playwright para testing de componentes.
152
+ **StatusMessage** — mensaje de estado como `alert` o `modal`.
153
+ ```tsx
154
+ <StatusMessage open messageType="success" title="Listo" description="Guardado" close={fn} />
155
+ ```
163
156
 
164
- ### Configuración de Testing
157
+ **Tooltip** — `text` envolviendo un hijo.
158
+ ```tsx
159
+ <Tooltip text="Editar"><Button>✎</Button></Tooltip>
160
+ ```
165
161
 
166
- - **Vitest**: Para unit tests y testing de componentes
167
- - **Playwright**: Para testing de browser
168
- - **Storybook Test Addon**: Para testing de historias de Storybook
162
+ **Modal** (+ `ModalHeader`/`ModalBody`/`ModalFooter`) — `open`/`onClose`, `actions`, `staticBackdrop`, `maxWidth`.
163
+ ```tsx
164
+ <Modal open={open} onClose={close} title="Confirmar" actions={[{text:'OK',onClick:save}]} staticBackdrop />
165
+ ```
169
166
 
170
- ## 🔧 Tecnologías
167
+ ### Navegación
171
168
 
172
- ### Dependencias Principales
169
+ **Tabs** + **Tab** — paneles por contenido, o modo `nav` (enlaces controlados por ruta).
170
+ ```tsx
171
+ <Tabs onChangeValue={setV}>
172
+ <Tab value={0} label="General">…</Tab>
173
+ <Tab value={1} label="Historial">…</Tab>
174
+ </Tabs>
175
+ // Modo nav (router): value controlado, sin paneles
176
+ <Tabs nav value={current}>
177
+ <Tab value="info" label="Info" component={Link} to="info" />
178
+ </Tabs>
179
+ ```
173
180
 
174
- - **React 19.1.0**: Librería de UI
175
- - **Material-UI 7.1.0**: Sistema de diseño y componentes
176
- - **TypeScript 5.8.3**: Tipado estático
177
- - **Tailwind CSS 4.1.7**: Framework de CSS utilitario
181
+ **Breadcrumbs** — migas; los hijos son `Link`/`Typography`.
182
+ ```tsx
183
+ <Breadcrumbs><Link href="/">Inicio</Link><Typography>Detalle</Typography></Breadcrumbs>
184
+ ```
178
185
 
179
- ### Herramientas de Desarrollo
186
+ **Drawer** + **DrawerItem** — panel lateral colapsable.
187
+ ```tsx
188
+ <Drawer open variant="permanent"><DrawerItem>Inicio</DrawerItem></Drawer>
189
+ ```
180
190
 
181
- - **Storybook 9.0.8**: Documentación y desarrollo de componentes
182
- - **Rollup**: Bundler para la construcción de la librería
183
- - **Vitest**: Framework de testing
184
- - **Playwright**: Testing de browser
185
- - **Prettier**: Formateo de código
191
+ **AppBar** — barra superior (incluye `AppBarMenuToggle`, `useAppBarContext`).
186
192
 
187
- ## 📁 Estructura del Proyecto
193
+ **MenuButton** — botón que abre un menú de `options`.
194
+ ```tsx
195
+ <MenuButton buttonText="Acciones" options={[{label:'Editar',onClick:fn}]} />
196
+ ```
188
197
 
198
+ **ActionMenu** + **ActionMenuItem** — menú contextual (compound; `trigger` opcional, default ⋮).
199
+ ```tsx
200
+ <ActionMenu><ActionMenuItem onClick={edit}>Editar</ActionMenuItem><ActionMenuItem onClick={del}>Eliminar</ActionMenuItem></ActionMenu>
189
201
  ```
190
- shared-library/
191
- ├── .storybook/ # Configuración de Storybook
192
- ├── src/
193
- │ ├── components/ # Componentes de la librería
194
- │ │ ├── Avatar/
195
- │ │ ├── Button/
196
- │ │ ├── Column/
197
- │ │ ├── Icon/
198
- │ │ ├── Select/
199
- │ │ ├── Stat/
200
- │ │ └── Table/
201
- │ ├── index.ts # Punto de entrada principal
202
- │ └── styles.css # Estilos globales
203
- ├── dist/ # Archivos construidos
204
- ├── package.json
205
- ├── tsconfig.json
206
- ├── tailwind.config.js
207
- ├── rollup.config.cjs
208
- └── vitest.config.ts
202
+
203
+ ### Layout y contenedores
204
+
205
+ **Card** — `variant`, `padding`; o composición con `title`/`subheader`/`action` y `contentSx`.
206
+ ```tsx
207
+ <Card title="Resumen" action={<Button>Editar</Button>}>…</Card>
208
+ <Card contentSx={{ p: 0 }}><Table data={rows}>…</Table></Card> // tabla flush
209
209
  ```
210
210
 
211
- ### Estructura de Componentes
211
+ **Divider** — separador `horizontal`/`vertical`.
212
+ ```tsx
213
+ <Divider sx={{ my: 2 }} />
214
+ ```
212
215
 
213
- Cada componente sigue una estructura consistente:
216
+ **ButtonGroup** — agrupa botones.
217
+ ```tsx
218
+ <ButtonGroup><Button>Día</Button><Button>Mes</Button></ButtonGroup>
219
+ ```
214
220
 
221
+ **Flyout** — panel flotante `open`/`onClose`, `anchor`.
222
+ ```tsx
223
+ <Flyout open={open} onClose={close} anchor="right">…</Flyout>
215
224
  ```
216
- ComponentName/
217
- ├── ComponentName.tsx # Implementación del componente
218
- ├── ComponentName.stories.tsx # Historias de Storybook
219
- ├── ComponentName.definition.ts # Definiciones de código (opcional)
220
- ├── index.ts # Exportaciones
221
- └── types.ts # Tipos específicos (opcional)
225
+
226
+ ### Hooks
227
+
228
+ **useClipboard** — copiar al portapapeles con feedback.
229
+ ```tsx
230
+ import { useClipboard } from '@soyfri/shared-library/hooks/ClipBoard'
231
+ const { copy, CopyMessage } = useClipboard({ message: 'Copiado', severity: 'success' })
222
232
  ```
223
233
 
224
- ## 🤝 Contribución
234
+ ---
225
235
 
226
- Para contribuir al proyecto:
236
+ ## Certificados HTTPS de desarrollo
227
237
 
228
- 1. Fork el repositorio
229
- 2. Crea una rama para tu feature (`git checkout -b feature/nueva-funcionalidad`)
230
- 3. Commit tus cambios (`git commit -am 'Agrega nueva funcionalidad'`)
231
- 4. Push a la rama (`git push origin feature/nueva-funcionalidad`)
232
- 5. Crea un Pull Request
238
+ El paquete incluye los certs del dev server de cada proyecto bajo el subpath `./local/*` (los consume el `vite.config` de cada frontend):
233
239
 
234
- ## 📄 Licencia
240
+ ```
241
+ @soyfri/shared-library/local/support/supportweb.dev.soyfri.com.pem
242
+ ```
235
243
 
236
- ISC License
244
+ ## Desarrollo
237
245
 
238
- ---
246
+ ```bash
247
+ npm install
248
+ npm run dev # build en watch (tsup)
249
+ npm run storybook # Storybook en :6006 (documentación interactiva, 260+ stories)
250
+ npm run build # build de producción (vite + postbuild genera subpaths en dist/)
251
+ ```
252
+
253
+ ## Tecnologías
254
+
255
+ React 18/19 · Material UI v7 · TypeScript 5 · Tailwind CSS 4 · Storybook 9 · Vite/Rollup · Vitest + Playwright.
239
256
 
240
- **Versión actual:** 1.0.1
257
+ ## Licencia
241
258
 
242
- Para más información y ejemplos detallados, consulta la documentación en Storybook ejecutando `npm run storybook`.
243
-
259
+ ISC
@@ -0,0 +1,202 @@
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
+ var __objRest = (source, exclude) => {
22
+ var target = {};
23
+ for (var prop in source)
24
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
25
+ target[prop] = source[prop];
26
+ if (source != null && __getOwnPropSymbols)
27
+ for (var prop of __getOwnPropSymbols(source)) {
28
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
29
+ target[prop] = source[prop];
30
+ }
31
+ return target;
32
+ };
33
+ const jsxRuntime = require("react/jsx-runtime");
34
+ const styles = require("@mui/material/styles");
35
+ const material = require("@mui/material");
36
+ const reactHookForm = require("react-hook-form");
37
+ const resolvePreset = require("./resolvePreset-CxTI6_Ln.cjs");
38
+ const toRadius = (borderRadius) => typeof borderRadius === "number" ? `${borderRadius}px` : borderRadius;
39
+ const FOCUS_TRANSITION = "border-color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms, box-shadow 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms";
40
+ const buildRadioGroupSx = ({
41
+ bordered,
42
+ borderRadius,
43
+ error
44
+ }) => {
45
+ const radius = toRadius(borderRadius);
46
+ if (!bordered) {
47
+ return {
48
+ "& .MuiFormHelperText-root": { marginLeft: 0 }
49
+ };
50
+ }
51
+ return (theme) => ({
52
+ "& .MuiRadioGroup-root": __spreadProps(__spreadValues({
53
+ paddingTop: 1.25,
54
+ paddingBottom: 1.25,
55
+ paddingX: 1.5,
56
+ border: `1px solid ${error ? theme.palette.error.main : theme.palette.divider}`,
57
+ borderRadius: radius,
58
+ transition: FOCUS_TRANSITION
59
+ }, error && {
60
+ boxShadow: `0 0 0 1px ${theme.palette.error.main}`
61
+ }), {
62
+ // Focus del usuario sobre cualquier radio interno.
63
+ "&:focus-within": {
64
+ borderColor: error ? theme.palette.error.main : theme.palette.primary.main,
65
+ boxShadow: `0 0 0 1px ${error ? theme.palette.error.main : theme.palette.primary.main}`
66
+ }
67
+ }),
68
+ "& .MuiFormHelperText-root": {
69
+ marginLeft: 0
70
+ },
71
+ "& .MuiFormLabel-root": {
72
+ marginBottom: 0.5
73
+ }
74
+ });
75
+ };
76
+ const RadioGroup = (props) => {
77
+ const _a = props, {
78
+ options,
79
+ label,
80
+ row = true,
81
+ size = "small",
82
+ disabled = false,
83
+ error = false,
84
+ helperText,
85
+ bordered = true,
86
+ borderRadius = 10,
87
+ defaultValue,
88
+ preset,
89
+ sx
90
+ } = _a, rest = __objRest(_a, [
91
+ "options",
92
+ "label",
93
+ "row",
94
+ "size",
95
+ "disabled",
96
+ "error",
97
+ "helperText",
98
+ "bordered",
99
+ "borderRadius",
100
+ "defaultValue",
101
+ "preset",
102
+ "sx"
103
+ ]);
104
+ const theme = styles.useTheme();
105
+ const presetSx = resolvePreset.resolvePreset("RadioGroup", preset, theme);
106
+ const buildSx = (effectiveError) => [
107
+ buildRadioGroupSx({ bordered, borderRadius, error: effectiveError }),
108
+ ...presetSx ? [presetSx] : [],
109
+ ...Array.isArray(sx) ? sx : sx ? [sx] : []
110
+ ];
111
+ const renderOptions = (fieldName) => options.map((opt) => {
112
+ var _a2;
113
+ const inputId = (_a2 = opt.id) != null ? _a2 : `${fieldName != null ? fieldName : "radio"}-${opt.value}`;
114
+ return /* @__PURE__ */ jsxRuntime.jsx(
115
+ material.FormControlLabel,
116
+ {
117
+ value: opt.value,
118
+ control: /* @__PURE__ */ jsxRuntime.jsx(
119
+ material.Radio,
120
+ {
121
+ id: inputId,
122
+ size,
123
+ disabled: disabled || opt.disabled
124
+ }
125
+ ),
126
+ label: opt.label,
127
+ disabled: disabled || opt.disabled
128
+ },
129
+ inputId
130
+ );
131
+ });
132
+ if ("control" in props && props.control) {
133
+ const { name: name2, control, validation, onValueChange } = props;
134
+ return /* @__PURE__ */ jsxRuntime.jsx(
135
+ reactHookForm.Controller,
136
+ {
137
+ name: name2,
138
+ control,
139
+ rules: validation,
140
+ defaultValue,
141
+ render: ({ field, fieldState: { error: fieldError } }) => {
142
+ var _a2, _b;
143
+ const finalError = !!fieldError || error;
144
+ const finalHelperText = (_a2 = fieldError == null ? void 0 : fieldError.message) != null ? _a2 : helperText;
145
+ return /* @__PURE__ */ jsxRuntime.jsxs(
146
+ material.FormControl,
147
+ {
148
+ error: finalError,
149
+ disabled,
150
+ sx: buildSx(finalError),
151
+ fullWidth: true,
152
+ children: [
153
+ label && /* @__PURE__ */ jsxRuntime.jsx(material.FormLabel, { children: label }),
154
+ /* @__PURE__ */ jsxRuntime.jsx(
155
+ material.RadioGroup,
156
+ __spreadProps(__spreadValues({}, rest), {
157
+ row,
158
+ name: field.name,
159
+ value: (_b = field.value) != null ? _b : "",
160
+ onBlur: field.onBlur,
161
+ onChange: (_e, value2) => {
162
+ field.onChange(value2);
163
+ onValueChange == null ? void 0 : onValueChange(value2);
164
+ },
165
+ children: renderOptions(field.name)
166
+ })
167
+ ),
168
+ finalHelperText && /* @__PURE__ */ jsxRuntime.jsx(material.FormHelperText, { children: finalHelperText })
169
+ ]
170
+ }
171
+ );
172
+ }
173
+ }
174
+ );
175
+ }
176
+ const { value, onChange, name } = props;
177
+ return /* @__PURE__ */ jsxRuntime.jsxs(
178
+ material.FormControl,
179
+ {
180
+ error,
181
+ disabled,
182
+ sx: buildSx(error),
183
+ fullWidth: true,
184
+ children: [
185
+ label && /* @__PURE__ */ jsxRuntime.jsx(material.FormLabel, { children: label }),
186
+ /* @__PURE__ */ jsxRuntime.jsx(
187
+ material.RadioGroup,
188
+ __spreadProps(__spreadValues({}, rest), {
189
+ row,
190
+ name,
191
+ value: value != null ? value : "",
192
+ onChange: (_e, next) => onChange(next),
193
+ children: renderOptions(name)
194
+ })
195
+ ),
196
+ helperText && /* @__PURE__ */ jsxRuntime.jsx(material.FormHelperText, { children: helperText })
197
+ ]
198
+ }
199
+ );
200
+ };
201
+ exports.RadioGroup = RadioGroup;
202
+ //# sourceMappingURL=RadioGroup-Dd0rHXSX.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioGroup-Dd0rHXSX.cjs","sources":["../src/components/RadioGroup/RadioGroup.sx.ts","../src/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material/styles';\n\nexport interface BuildRadioGroupSxOptions {\n bordered: boolean;\n borderRadius: number | string;\n error: boolean;\n}\n\nconst toRadius = (borderRadius: number | string) =>\n typeof borderRadius === 'number' ? `${borderRadius}px` : borderRadius;\n\n/**\n * Transición compartida (matchea el InputGroup).\n */\nconst FOCUS_TRANSITION =\n 'border-color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms, ' +\n 'box-shadow 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms';\n\n/**\n * Builder de sx para RadioGroup. Reproduce el estilo del antiguo\n * `FormRadioGroup` legacy: contenedor con borde + padding vertical.\n *\n * Cuando `bordered=true`, el contenedor gana:\n * - `:focus-within` → borde + shadow primario (mismo patrón que `InputGroup`).\n * - `error=true` → borde + shadow de error (palette.error.main).\n *\n * El shadow es de 1px, así que no hay shift de layout — sólo se intensifica\n * visualmente el borde sin empujar nada alrededor.\n *\n * Si `bordered=false`, devuelve un sx mínimo (sólo helper text reset).\n */\nexport const buildRadioGroupSx = ({\n bordered,\n borderRadius,\n error,\n}: BuildRadioGroupSxOptions): SxProps<Theme> => {\n const radius = toRadius(borderRadius);\n\n if (!bordered) {\n return {\n '& .MuiFormHelperText-root': { marginLeft: 0 },\n };\n }\n\n return (theme) => ({\n '& .MuiRadioGroup-root': {\n paddingTop: 1.25,\n paddingBottom: 1.25,\n paddingX: 1.5,\n border: `1px solid ${\n error ? theme.palette.error.main : theme.palette.divider\n }`,\n borderRadius: radius,\n transition: FOCUS_TRANSITION,\n ...(error && {\n boxShadow: `0 0 0 1px ${theme.palette.error.main}`,\n }),\n // Focus del usuario sobre cualquier radio interno.\n '&:focus-within': {\n borderColor: error\n ? theme.palette.error.main\n : theme.palette.primary.main,\n boxShadow: `0 0 0 1px ${\n error ? theme.palette.error.main : theme.palette.primary.main\n }`,\n },\n },\n '& .MuiFormHelperText-root': {\n marginLeft: 0,\n },\n '& .MuiFormLabel-root': {\n marginBottom: 0.5,\n },\n });\n};\n","import type { FC } from 'react';\nimport { useTheme } from '@mui/material/styles';\nimport {\n FormControl,\n FormControlLabel,\n FormHelperText,\n FormLabel,\n Radio,\n RadioGroup as MuiRadioGroup,\n type RadioGroupProps as MuiRadioGroupProps,\n type SxProps,\n type Theme,\n} from '@mui/material';\nimport { Controller, type Control, type RegisterOptions } from 'react-hook-form';\n\nimport { buildRadioGroupSx } from './RadioGroup.sx';\nimport { resolvePreset } from '../_shared/resolvePreset';\n\n// ── Tipos de dominio ─────────────────────────────────────────────────────\nexport interface RadioOption {\n /** Valor que se emite cuando se selecciona la opción. */\n value: string;\n /** Texto mostrado al lado del radio. */\n label: string;\n /** Deshabilitar opción individualmente. */\n disabled?: boolean;\n /** ID custom del input (default: prefijo + value). */\n id?: string;\n}\n\nexport type RadioGroupSize = 'small' | 'medium';\n\n// ── Props base (todo lo común entre RHF y controlado) ────────────────────\nexport interface BaseRadioGroupProps\n extends Omit<MuiRadioGroupProps, 'value' | 'onChange' | 'defaultValue'> {\n options: RadioOption[];\n /** Label superior del grupo. */\n label?: string;\n /** Distribución horizontal (default: true — replica el comportamiento legacy). */\n row?: boolean;\n size?: RadioGroupSize;\n disabled?: boolean;\n error?: boolean;\n helperText?: string;\n /** Renderiza un contenedor con borde estilo \"form field\". Default: true. */\n bordered?: boolean;\n /** Border radius del contenedor (cuando bordered). Default: 10. */\n borderRadius?: number | string;\n defaultValue?: string;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.RadioGroup`.\n * - `\"default\"` (o ausente) = estilo built-in del paquete.\n * - Cualquier otro string = mergea el preset encima del estilo built-in.\n */\n preset?: string;\n sx?: SxProps<Theme>;\n}\n\n// ── Variantes discriminadas (RHF vs controlado) ──────────────────────────\nexport interface RHFRadioGroupProps extends BaseRadioGroupProps {\n name: string;\n // `any` plano (no `Control<any>`): RHF tipa `Control<T>` con generics en\n // posiciones tanto contravariantes como covariantes (ej. `_subjects.state`).\n // Cuando el componente o su uso involucra generics adicionales, TS se\n // confunde narroweando el discriminated union y `Control<any>` no logra\n // absorber `Control<MyForm>` en la comparación estructural profunda. El\n // `any` plano elimina ese ruido. RHF adentro sigue teniendo sus tipos\n // fuertes — solo degradamos la superficie del prop del componente.\n control: any;\n validation?: RegisterOptions;\n /**\n * Side-effect que corre después de que RHF actualiza el form state.\n * Útil para cascadas entre campos. NO reemplaza al handler de RHF.\n */\n onValueChange?: (value: string) => void;\n value?: never;\n onChange?: never;\n}\n\nexport interface ControlledRadioGroupProps extends BaseRadioGroupProps {\n name?: string;\n control?: never;\n validation?: never;\n value: string;\n onChange: (value: string) => void;\n}\n\n// ── API pública final ────────────────────────────────────────────────────\nexport type RadioGroupProps = RHFRadioGroupProps | ControlledRadioGroupProps;\n\nexport const RadioGroup: FC<RadioGroupProps> = (props) => {\n const {\n options,\n label,\n row = true,\n size = 'small',\n disabled = false,\n error = false,\n helperText,\n bordered = true,\n borderRadius = 10,\n defaultValue,\n preset,\n sx,\n ...rest\n } = props as ControlledRadioGroupProps & {\n control?: Control<any>;\n validation?: RegisterOptions;\n };\n\n const theme = useTheme();\n const presetSx = resolvePreset('RadioGroup', preset, theme);\n\n // Construye el sx con el estado de error efectivo; se llama por rama\n // (RHF usa el error del Controller, controlado usa el prop `error`).\n const buildSx = (effectiveError: boolean) => [\n buildRadioGroupSx({ bordered, borderRadius, error: effectiveError }),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n const renderOptions = (fieldName?: string) =>\n options.map((opt) => {\n const inputId = opt.id ?? `${fieldName ?? 'radio'}-${opt.value}`;\n return (\n <FormControlLabel\n key={inputId}\n value={opt.value}\n control={\n <Radio\n id={inputId}\n size={size}\n disabled={disabled || opt.disabled}\n />\n }\n label={opt.label}\n disabled={disabled || opt.disabled}\n />\n );\n });\n\n // ── RHF mode ──────────────────────────────────────────────────────────\n if ('control' in props && props.control) {\n const { name, control, validation, onValueChange } = props as RHFRadioGroupProps;\n return (\n <Controller\n name={name}\n control={control}\n rules={validation}\n defaultValue={defaultValue}\n render={({ field, fieldState: { error: fieldError } }) => {\n const finalError = !!fieldError || error;\n const finalHelperText = fieldError?.message ?? helperText;\n return (\n <FormControl\n error={finalError}\n disabled={disabled}\n sx={buildSx(finalError)}\n fullWidth\n >\n {label && <FormLabel>{label}</FormLabel>}\n <MuiRadioGroup\n {...rest}\n row={row}\n name={field.name}\n value={field.value ?? ''}\n onBlur={field.onBlur}\n onChange={(_e, value) => {\n field.onChange(value);\n onValueChange?.(value);\n }}\n >\n {renderOptions(field.name)}\n </MuiRadioGroup>\n {finalHelperText && <FormHelperText>{finalHelperText}</FormHelperText>}\n </FormControl>\n );\n }}\n />\n );\n }\n\n // ── Controlled mode ───────────────────────────────────────────────────\n const { value, onChange, name } = props as ControlledRadioGroupProps;\n return (\n <FormControl\n error={error}\n disabled={disabled}\n sx={buildSx(error)}\n fullWidth\n >\n {label && <FormLabel>{label}</FormLabel>}\n <MuiRadioGroup\n {...rest}\n row={row}\n name={name}\n value={value ?? ''}\n onChange={(_e, next) => onChange(next)}\n >\n {renderOptions(name)}\n </MuiRadioGroup>\n {helperText && <FormHelperText>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n\nexport default RadioGroup;\n"],"names":["useTheme","resolvePreset","_a","jsx","FormControlLabel","Radio","name","Controller","jsxs","FormControl","FormLabel","MuiRadioGroup","value","FormHelperText"],"mappings":"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"}