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

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 (359) 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/Button-C17mExpd.cjs.map +1 -1
  14. package/Button-UkkP-bNw.js.map +1 -1
  15. package/Card-DYKGY-NG.js +116 -0
  16. package/Card-DYKGY-NG.js.map +1 -0
  17. package/Card-Dr1-ATRY.cjs +115 -0
  18. package/Card-Dr1-ATRY.cjs.map +1 -0
  19. package/Checkbox-BCqMFWt4.cjs +187 -0
  20. package/Checkbox-BCqMFWt4.cjs.map +1 -0
  21. package/Checkbox-gB5YKkVo.js +188 -0
  22. package/Checkbox-gB5YKkVo.js.map +1 -0
  23. package/{components/DateRangePicker/DateRangePicker.js → Chip-OPYQ1uQ_.js} +33 -35
  24. package/Chip-OPYQ1uQ_.js.map +1 -0
  25. package/{components/DateRangePicker/DateRangePicker.cjs → Chip-qoJLDiva.cjs} +33 -36
  26. package/Chip-qoJLDiva.cjs.map +1 -0
  27. package/DatePicker-_IGWc3I5.js +178 -0
  28. package/DatePicker-_IGWc3I5.js.map +1 -0
  29. package/DatePicker-t7uDTZMl.cjs +177 -0
  30. package/DatePicker-t7uDTZMl.cjs.map +1 -0
  31. package/DateTimePicker-BxQyjTCY.cjs +229 -0
  32. package/DateTimePicker-BxQyjTCY.cjs.map +1 -0
  33. package/DateTimePicker-CrmWav_j.js +230 -0
  34. package/DateTimePicker-CrmWav_j.js.map +1 -0
  35. package/Input-CScC87J5.cjs +185 -0
  36. package/Input-CScC87J5.cjs.map +1 -0
  37. package/Input-DP_fKl38.js +186 -0
  38. package/Input-DP_fKl38.js.map +1 -0
  39. package/Modal-BFpX5AFV.js +347 -0
  40. package/Modal-BFpX5AFV.js.map +1 -0
  41. package/Modal-CkpuI8ns.cjs +346 -0
  42. package/Modal-CkpuI8ns.cjs.map +1 -0
  43. package/RadioGroup-Dd0rHXSX.cjs +202 -0
  44. package/RadioGroup-Dd0rHXSX.cjs.map +1 -0
  45. package/RadioGroup-bO-ahP9T.js +203 -0
  46. package/RadioGroup-bO-ahP9T.js.map +1 -0
  47. package/Select-BY5Y0qZ1.js +376 -0
  48. package/Select-BY5Y0qZ1.js.map +1 -0
  49. package/Select-CURrHSyl.cjs +375 -0
  50. package/Select-CURrHSyl.cjs.map +1 -0
  51. package/Spinner-B6sThC1p.js +74 -0
  52. package/Spinner-B6sThC1p.js.map +1 -0
  53. package/Spinner-D7qRmNS9.cjs +73 -0
  54. package/Spinner-D7qRmNS9.cjs.map +1 -0
  55. package/Stat-BUcFCGrz.cjs +83 -0
  56. package/Stat-BUcFCGrz.cjs.map +1 -0
  57. package/Stat-C06A_izS.js +84 -0
  58. package/Stat-C06A_izS.js.map +1 -0
  59. package/StatusMessage-B3nXpuRl.cjs +88 -0
  60. package/StatusMessage-B3nXpuRl.cjs.map +1 -0
  61. package/StatusMessage-D0WgSBx7.js +89 -0
  62. package/StatusMessage-D0WgSBx7.js.map +1 -0
  63. package/Step-BArsou1V.js +301 -0
  64. package/Step-BArsou1V.js.map +1 -0
  65. package/Step-Nd7SJbRZ.cjs +300 -0
  66. package/Step-Nd7SJbRZ.cjs.map +1 -0
  67. package/Switch-CQFOopYy.cjs +182 -0
  68. package/Switch-CQFOopYy.cjs.map +1 -0
  69. package/Switch-D72dpkH2.js +183 -0
  70. package/Switch-D72dpkH2.js.map +1 -0
  71. package/Tab-BbP8jBcK.cjs +110 -0
  72. package/Tab-BbP8jBcK.cjs.map +1 -0
  73. package/Tab-BxSxKJsP.js +111 -0
  74. package/Tab-BxSxKJsP.js.map +1 -0
  75. package/Table-C2LbW0B1.js +531 -0
  76. package/Table-C2LbW0B1.js.map +1 -0
  77. package/Table-C4OM6rrC.cjs +530 -0
  78. package/Table-C4OM6rrC.cjs.map +1 -0
  79. package/components/ActionMenu/ActionMenu.cjs +52 -52
  80. package/components/ActionMenu/ActionMenu.cjs.map +1 -1
  81. package/components/ActionMenu/ActionMenu.d.ts +20 -36
  82. package/components/ActionMenu/ActionMenu.js +55 -55
  83. package/components/ActionMenu/ActionMenu.js.map +1 -1
  84. package/components/ActionMenu/index.d.ts +2 -2
  85. package/components/Alert/Alert.cjs +6 -0
  86. package/components/Alert/Alert.cjs.map +1 -0
  87. package/components/Alert/Alert.d.ts +31 -0
  88. package/components/Alert/Alert.js +6 -0
  89. package/components/Alert/Alert.js.map +1 -0
  90. package/components/Alert/index.d.ts +2 -0
  91. package/components/Alert.d.ts +6 -0
  92. package/components/AppBar/AppBar.cjs +3 -220
  93. package/components/AppBar/AppBar.cjs.map +1 -1
  94. package/components/AppBar/AppBar.d.ts +6 -6
  95. package/components/AppBar/AppBar.js +6 -223
  96. package/components/AppBar/AppBar.js.map +1 -1
  97. package/components/AppBar/index.d.ts +0 -6
  98. package/components/Autocomplete/Autocomplete.cjs +4 -311
  99. package/components/Autocomplete/Autocomplete.cjs.map +1 -1
  100. package/components/Autocomplete/Autocomplete.d.ts +8 -6
  101. package/components/Autocomplete/Autocomplete.helpers.d.ts +8 -4
  102. package/components/Autocomplete/Autocomplete.js +4 -311
  103. package/components/Autocomplete/Autocomplete.js.map +1 -1
  104. package/components/Autocomplete/_parts/AutocompleteOption.d.ts +5 -8
  105. package/components/Autocomplete/index.d.ts +1 -1
  106. package/components/Avatar/Avatar.cjs +2 -160
  107. package/components/Avatar/Avatar.cjs.map +1 -1
  108. package/components/Avatar/Avatar.d.ts +16 -1
  109. package/components/Avatar/Avatar.js +2 -160
  110. package/components/Avatar/Avatar.js.map +1 -1
  111. package/components/Avatar/index.d.ts +1 -0
  112. package/components/Button/Button.d.ts +5 -5
  113. package/components/Button/index.d.ts +1 -0
  114. package/components/Card/Card.cjs +4 -184
  115. package/components/Card/Card.cjs.map +1 -1
  116. package/components/Card/Card.d.ts +21 -50
  117. package/components/Card/Card.js +4 -184
  118. package/components/Card/Card.js.map +1 -1
  119. package/components/Card/Card.sx.d.ts +3 -6
  120. package/components/Card/index.d.ts +1 -1
  121. package/components/Checkbox/Checkbox.cjs +6 -0
  122. package/components/Checkbox/Checkbox.cjs.map +1 -0
  123. package/components/Checkbox/Checkbox.d.ts +55 -0
  124. package/components/Checkbox/Checkbox.js +6 -0
  125. package/components/Checkbox/Checkbox.js.map +1 -0
  126. package/components/Checkbox/Checkbox.sx.d.ts +13 -0
  127. package/components/Checkbox/index.d.ts +2 -0
  128. package/components/Checkbox.d.ts +6 -0
  129. package/components/Chip/Chip.cjs +4 -72
  130. package/components/Chip/Chip.cjs.map +1 -1
  131. package/components/Chip/Chip.js +3 -71
  132. package/components/Chip/Chip.js.map +1 -1
  133. package/components/Chip/index.d.ts +2 -1
  134. package/components/Chip.d.ts +4 -0
  135. package/components/Column/Column.cjs +1 -1
  136. package/components/Column/Column.cjs.map +1 -1
  137. package/components/Column/Column.d.ts +1 -1
  138. package/components/Column/Column.js +1 -1
  139. package/components/Column/Column.js.map +1 -1
  140. package/components/Column/index.d.ts +1 -0
  141. package/components/DatePicker/DatePicker.cjs +3 -200
  142. package/components/DatePicker/DatePicker.cjs.map +1 -1
  143. package/components/DatePicker/DatePicker.d.ts +1 -13
  144. package/components/DatePicker/DatePicker.js +3 -200
  145. package/components/DatePicker/DatePicker.js.map +1 -1
  146. package/components/DatePicker/index.d.ts +1 -1
  147. package/components/DateTimePicker/DateTimePicker.cjs +3 -219
  148. package/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
  149. package/components/DateTimePicker/DateTimePicker.d.ts +10 -6
  150. package/components/DateTimePicker/DateTimePicker.definitions.d.ts +2 -0
  151. package/components/DateTimePicker/DateTimePicker.helpers.d.ts +4 -2
  152. package/components/DateTimePicker/DateTimePicker.js +3 -219
  153. package/components/DateTimePicker/DateTimePicker.js.map +1 -1
  154. package/components/DateTimePicker/index.d.ts +1 -1
  155. package/components/Drawer/Drawer.cjs +25 -24
  156. package/components/Drawer/Drawer.cjs.map +1 -1
  157. package/components/Drawer/Drawer.d.ts +8 -1
  158. package/components/Drawer/Drawer.js +26 -25
  159. package/components/Drawer/Drawer.js.map +1 -1
  160. package/components/Drawer/DrawerItem.d.ts +6 -1
  161. package/components/Gallery/Gallery.cjs +154 -79
  162. package/components/Gallery/Gallery.cjs.map +1 -1
  163. package/components/Gallery/Gallery.d.ts +25 -9
  164. package/components/Gallery/Gallery.js +154 -79
  165. package/components/Gallery/Gallery.js.map +1 -1
  166. package/components/Gallery/GalleryLightbox.d.ts +6 -10
  167. package/components/Gallery/GalleryMain.d.ts +3 -7
  168. package/components/Gallery/GalleryThumbnails.d.ts +7 -11
  169. package/components/Gallery/index.d.ts +2 -1
  170. package/components/Gallery.d.ts +4 -0
  171. package/components/Icon/Icon.cjs +6 -8
  172. package/components/Icon/Icon.cjs.map +1 -1
  173. package/components/Icon/Icon.d.ts +11 -17
  174. package/components/Icon/Icon.js +6 -8
  175. package/components/Icon/Icon.js.map +1 -1
  176. package/components/Icon/index.d.ts +2 -1
  177. package/components/Icon.d.ts +4 -0
  178. package/components/Input/Input.cjs +3 -172
  179. package/components/Input/Input.cjs.map +1 -1
  180. package/components/Input/Input.d.ts +9 -2
  181. package/components/Input/Input.definitions.d.ts +1 -0
  182. package/components/Input/Input.helpers.d.ts +3 -3
  183. package/components/Input/Input.js +3 -172
  184. package/components/Input/Input.js.map +1 -1
  185. package/components/Input/index.d.ts +1 -1
  186. package/components/InputGroup/InputGroup.cjs +23 -22
  187. package/components/InputGroup/InputGroup.cjs.map +1 -1
  188. package/components/InputGroup/InputGroup.d.ts +4 -4
  189. package/components/InputGroup/InputGroup.js +22 -21
  190. package/components/InputGroup/InputGroup.js.map +1 -1
  191. package/components/InputGroup/index.d.ts +2 -1
  192. package/components/InputGroup.d.ts +4 -0
  193. package/components/Modal/Modal.cjs +7 -317
  194. package/components/Modal/Modal.cjs.map +1 -1
  195. package/components/Modal/Modal.d.ts +20 -5
  196. package/components/Modal/Modal.js +6 -316
  197. package/components/Modal/Modal.js.map +1 -1
  198. package/components/Modal/ModalBody.d.ts +6 -1
  199. package/components/Modal/ModalFooter.d.ts +4 -4
  200. package/components/Modal/ModalHeader.d.ts +6 -1
  201. package/components/Modal/index.d.ts +3 -1
  202. package/components/Modal.d.ts +4 -0
  203. package/components/RadioGroup/RadioGroup.cjs +6 -0
  204. package/components/RadioGroup/RadioGroup.cjs.map +1 -0
  205. package/components/RadioGroup/RadioGroup.d.ts +59 -0
  206. package/components/RadioGroup/RadioGroup.definitions.d.ts +6 -0
  207. package/components/RadioGroup/RadioGroup.js +6 -0
  208. package/components/RadioGroup/RadioGroup.js.map +1 -0
  209. package/components/RadioGroup/RadioGroup.sx.d.ts +20 -0
  210. package/components/RadioGroup/index.d.ts +2 -0
  211. package/components/RadioGroup.d.ts +6 -0
  212. package/components/Select/Select.cjs +4 -445
  213. package/components/Select/Select.cjs.map +1 -1
  214. package/components/Select/Select.d.ts +37 -18
  215. package/components/Select/Select.helpers.d.ts +5 -19
  216. package/components/Select/Select.js +4 -445
  217. package/components/Select/Select.js.map +1 -1
  218. package/components/Select/index.d.ts +1 -1
  219. package/components/Spinner/Spinner.cjs +6 -0
  220. package/components/Spinner/Spinner.cjs.map +1 -0
  221. package/components/Spinner/Spinner.d.ts +26 -0
  222. package/components/Spinner/Spinner.js +6 -0
  223. package/components/Spinner/Spinner.js.map +1 -0
  224. package/components/Spinner/index.d.ts +2 -0
  225. package/components/Spinner.d.ts +6 -0
  226. package/components/Stat/Stat.cjs +4 -83
  227. package/components/Stat/Stat.cjs.map +1 -1
  228. package/components/Stat/Stat.js +3 -82
  229. package/components/Stat/Stat.js.map +1 -1
  230. package/components/Stat/index.d.ts +2 -1
  231. package/components/Stat.d.ts +4 -0
  232. package/components/StatusMessage/StatusMessage.cjs +4 -77
  233. package/components/StatusMessage/StatusMessage.cjs.map +1 -1
  234. package/components/StatusMessage/StatusMessage.d.ts +20 -36
  235. package/components/StatusMessage/StatusMessage.js +3 -76
  236. package/components/StatusMessage/StatusMessage.js.map +1 -1
  237. package/components/StatusMessage/index.d.ts +2 -1
  238. package/components/StatusMessage.d.ts +4 -0
  239. package/components/Stepper/Stepper.cjs +8 -47
  240. package/components/Stepper/Stepper.cjs.map +1 -1
  241. package/components/Stepper/Stepper.d.ts +9 -8
  242. package/components/Stepper/Stepper.js +7 -46
  243. package/components/Stepper/Stepper.js.map +1 -1
  244. package/{hooks/Wizard/WizardContext.d.ts → components/Stepper/StepperContext.d.ts} +29 -23
  245. package/components/Stepper/_hooks/useHorizontalScroll.d.ts +19 -0
  246. package/components/Stepper/_parts/StepperScrollArrow.d.ts +19 -0
  247. package/components/Stepper/index.d.ts +6 -2
  248. package/components/Stepper.d.ts +4 -0
  249. package/components/Switch/Switch.cjs +6 -0
  250. package/components/Switch/Switch.cjs.map +1 -0
  251. package/components/Switch/Switch.d.ts +48 -0
  252. package/components/Switch/Switch.definitions.d.ts +7 -0
  253. package/components/Switch/Switch.js +6 -0
  254. package/components/Switch/Switch.js.map +1 -0
  255. package/components/Switch/Switch.sx.d.ts +22 -0
  256. package/components/Switch/Switch.types.d.ts +1 -0
  257. package/components/Switch/index.d.ts +2 -0
  258. package/components/Switch.d.ts +6 -0
  259. package/components/Table/Table.cjs +2 -528
  260. package/components/Table/Table.cjs.map +1 -1
  261. package/components/Table/Table.d.ts +1 -1
  262. package/components/Table/Table.js +2 -528
  263. package/components/Table/Table.js.map +1 -1
  264. package/components/Tabs/Tabs.cjs +5 -94
  265. package/components/Tabs/Tabs.cjs.map +1 -1
  266. package/components/Tabs/Tabs.d.ts +21 -16
  267. package/components/Tabs/Tabs.js +4 -93
  268. package/components/Tabs/Tabs.js.map +1 -1
  269. package/components/Tabs/index.d.ts +4 -2
  270. package/components/Tabs.d.ts +4 -0
  271. package/components/Timeline/Timeline.cjs +3 -2
  272. package/components/Timeline/Timeline.cjs.map +1 -1
  273. package/components/Timeline/Timeline.d.ts +4 -8
  274. package/components/Timeline/Timeline.js +3 -2
  275. package/components/Timeline/Timeline.js.map +1 -1
  276. package/components/Timeline/index.d.ts +4 -2
  277. package/components/Timeline.d.ts +4 -0
  278. package/components/_shared/mergeSx.d.ts +7 -0
  279. package/{formField.sx-DfVbMe0V.js → formField.sx-8_QRnKxv.js} +2 -11
  280. package/formField.sx-8_QRnKxv.js.map +1 -0
  281. package/{formField.sx-CQ1mbk9M.cjs → formField.sx-BAX7KwMR.cjs} +10 -19
  282. package/formField.sx-BAX7KwMR.cjs.map +1 -0
  283. package/index.cjs +96 -6
  284. package/index.cjs.map +1 -1
  285. package/index.d.ts +36 -0
  286. package/index.js +70 -4
  287. package/index.js.map +1 -1
  288. package/local/affiliations/affiliations.dev.soyfri.com-key.pem +28 -0
  289. package/local/affiliations/affiliations.dev.soyfri.com.pem +27 -0
  290. package/local/aficiliaciones/afiliaciones.dev.soyfri.com-key.pem +28 -0
  291. package/local/aficiliaciones/afiliaciones.dev.soyfri.com.pem +27 -0
  292. package/local/afiliaciones/afiliaciones.dev.soyfri.com-key.pem +28 -0
  293. package/local/afiliaciones/afiliaciones.dev.soyfri.com.pem +27 -0
  294. package/local/root/rootCA-key.pem +40 -0
  295. package/local/root/rootCA.pem +30 -0
  296. package/local/soporte/supportweb.dev.soyfri.com-key.pem +28 -0
  297. package/local/soporte/supportweb.dev.soyfri.com.pem +27 -0
  298. package/local/support/supportweb.dev.soyfri.com-key.pem +28 -0
  299. package/local/support/supportweb.dev.soyfri.com.pem +27 -0
  300. package/mergeSx-BXoNZjB_.js +10 -0
  301. package/mergeSx-BXoNZjB_.js.map +1 -0
  302. package/mergeSx-Dbccoo_H.cjs +9 -0
  303. package/mergeSx-Dbccoo_H.cjs.map +1 -0
  304. package/mui.d.ts +3 -1
  305. package/package.json +78 -73
  306. package/{resolvePreset-CT3kU-K2.cjs → resolvePreset-CxTI6_Ln.cjs} +3 -3
  307. package/{resolvePreset-CT3kU-K2.cjs.map → resolvePreset-CxTI6_Ln.cjs.map} +1 -1
  308. package/{resolvePreset-B-IB0ehH.js → resolvePreset-K6_BfWHD.js} +3 -3
  309. package/{resolvePreset-B-IB0ehH.js.map → resolvePreset-K6_BfWHD.js.map} +1 -1
  310. package/theme/componentStyles.d.ts +1 -1
  311. package/tokens-BRrcP_p_.js +21 -0
  312. package/tokens-BRrcP_p_.js.map +1 -0
  313. package/tokens-jaWWNk39.cjs +20 -0
  314. package/tokens-jaWWNk39.cjs.map +1 -0
  315. package/utils/index.d.ts +2 -0
  316. package/{components/ScrollTopButton → utils}/scrollToTop.d.ts +6 -7
  317. package/components/AppBar/AppBarBrand.d.ts +0 -31
  318. package/components/AppBar/AppBarUserMenu.d.ts +0 -65
  319. package/components/Autocomplete/Autocomplete.types.d.ts +0 -1
  320. package/components/DatePicker/DatePicker.types.d.ts +0 -1
  321. package/components/DateRangePicker/DateRangePicker.cjs.map +0 -1
  322. package/components/DateRangePicker/DateRangePicker.d.ts +0 -15
  323. package/components/DateRangePicker/DateRangePicker.definitions.d.ts +0 -6
  324. package/components/DateRangePicker/DateRangePicker.js.map +0 -1
  325. package/components/DateRangePicker/index.d.ts +0 -1
  326. package/components/DateRangePicker.d.ts +0 -2
  327. package/components/DateTimePicker/DateTimePicker.types.d.ts +0 -1
  328. package/components/Input/Input.types.d.ts +0 -1
  329. package/components/PageLoader/PageLoader.cjs +0 -61
  330. package/components/PageLoader/PageLoader.cjs.map +0 -1
  331. package/components/PageLoader/PageLoader.d.ts +0 -38
  332. package/components/PageLoader/PageLoader.js +0 -61
  333. package/components/PageLoader/PageLoader.js.map +0 -1
  334. package/components/PageLoader/index.d.ts +0 -2
  335. package/components/PageLoader.d.ts +0 -6
  336. package/components/ScrollTopButton/ScrollTopButton.cjs +0 -79
  337. package/components/ScrollTopButton/ScrollTopButton.cjs.map +0 -1
  338. package/components/ScrollTopButton/ScrollTopButton.d.ts +0 -48
  339. package/components/ScrollTopButton/ScrollTopButton.js +0 -79
  340. package/components/ScrollTopButton/ScrollTopButton.js.map +0 -1
  341. package/components/ScrollTopButton/index.d.ts +0 -4
  342. package/components/ScrollTopButton.d.ts +0 -6
  343. package/components/Select/Select.definitions.d.ts +0 -17
  344. package/components/Select/Select.types.d.ts +0 -1
  345. package/components/Select/_parts/SelectSearchHeader.d.ts +0 -15
  346. package/formField.sx-CQ1mbk9M.cjs.map +0 -1
  347. package/formField.sx-DfVbMe0V.js.map +0 -1
  348. package/hooks/Wizard/Wizard.cjs +0 -7
  349. package/hooks/Wizard/Wizard.cjs.map +0 -1
  350. package/hooks/Wizard/Wizard.js +0 -7
  351. package/hooks/Wizard/Wizard.js.map +0 -1
  352. package/hooks/Wizard/index.d.ts +0 -3
  353. package/hooks/Wizard/useWizard.d.ts +0 -9
  354. package/hooks/Wizard.d.ts +0 -2
  355. package/useWizard-CWdIxZzX.cjs +0 -94
  356. package/useWizard-CWdIxZzX.cjs.map +0 -1
  357. package/useWizard-CWq--C3o.js +0 -95
  358. package/useWizard-CWq--C3o.js.map +0 -1
  359. /package/{styles.css → index.css} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../../../src/components/Table/exportsUtils.ts","../../../src/components/Table/EmptyTable.png","../../../src/components/Table/Table.tsx"],"sourcesContent":["import React from 'react';\nimport { AlertProps } from '@mui/material/Alert';\nimport { ColumnProps } from '../Column/Column'; // Importa ColumnProps y FieldName desde Column.tsx\n\n// Define las propiedades comunes para las funciones de exportación\ninterface ExportOptions<T> {\n data: T[]; // Los datos a exportar\n columns: React.ReactElement<ColumnProps<T>>[]; // Las definiciones de las columnas\n fileName: string; // El nombre del archivo a descargar\n exportColumns?: string[]; // Nombres de columnas específicas para exportar\n setSnackbarOpen: React.Dispatch<React.SetStateAction<boolean>>; // Setter para abrir/cerrar el Snackbar\n setSnackbarMessage: React.Dispatch<React.SetStateAction<string>>; // Setter para el mensaje del Snackbar\n setSnackbarSeverity: React.Dispatch<React.SetStateAction<AlertProps['severity']>>; // Setter para la severidad del Snackbar\n}\n\n/**\n * Función para exportar datos a un archivo CSV.\n * @param options Opciones de exportación, incluyendo datos, columnas, nombre de archivo y setters de Snackbar.\n */\nexport const exportToCSV = <T>(options: ExportOptions<T>) => {\n const { data, columns, fileName, exportColumns, setSnackbarOpen, setSnackbarMessage, setSnackbarSeverity } = options;\n\n if (!data || data.length === 0) {\n setSnackbarMessage(\"No hay datos para exportar a CSV.\");\n setSnackbarSeverity('warning');\n setSnackbarOpen(true);\n return;\n }\n\n setSnackbarMessage(\"Exportando datos a CSV...\");\n setSnackbarSeverity('info');\n setSnackbarOpen(true);\n\n try {\n // Filtra las columnas si se especifican columnas para exportar, de lo contrario, usa todas las columnas definidas.\n const columnsToExport = exportColumns\n ? columns.filter(col => exportColumns.includes(col.props.name))\n : columns;\n\n // Obtiene los encabezados (nombres de las columnas) y los escapa para CSV.\n const headers = columnsToExport.map(col => `\"${col.props.name.replace(/\"/g, '\"\"')}\"`).join(',');\n\n // Mapea los datos a filas CSV.\n const csvRows = data.map(row => {\n const values = columnsToExport.map(col => {\n const field = col.props.field;\n let cellValue: any;\n\n // Si 'field' es un array, toma el valor del primer campo para la exportación.\n if (Array.isArray(field)) {\n cellValue = (row as any)[field[0]];\n } else {\n cellValue = (row as any)[field];\n }\n\n // Convierte a string y maneja comas, comillas dobles y saltos de línea para CSV.\n let formattedValue = String(cellValue || '');\n if (formattedValue.includes(',') || formattedValue.includes('\"') || formattedValue.includes('\\n')) {\n formattedValue = `\"${formattedValue.replace(/\"/g, '\"\"')}\"`;\n }\n return formattedValue;\n });\n return values.join(',');\n });\n\n const csvContent = [headers, ...csvRows].join('\\n'); // Une los encabezados y las filas.\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const link = document.createElement('a');\n\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', fileName + '.csv');\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n\n setSnackbarMessage(\"¡Exportación a CSV completada!\");\n setSnackbarSeverity('success');\n } else {\n setSnackbarMessage(\"Tu navegador no soporta la descarga directa para CSV. Por favor, copia el contenido manualmente.\");\n setSnackbarSeverity('error');\n }\n } catch (error) {\n console.error(\"Error al exportar los datos a CSV:\", error);\n setSnackbarMessage(\"Error al exportar los datos a CSV.\");\n setSnackbarSeverity('error');\n } finally {\n setSnackbarOpen(true);\n }\n};\n\n/**\n * Función para exportar datos a un archivo Excel (formato XLSX).\n * Genera una tabla HTML que luego se descarga como un archivo .xlsx.\n * @param options Opciones de exportación, incluyendo datos, columnas, nombre de archivo y setters de Snackbar.\n */\nexport const exportToExcel = <T>(options: ExportOptions<T>) => {\n const { data, columns, fileName, exportColumns, setSnackbarOpen, setSnackbarMessage, setSnackbarSeverity } = options;\n\n if (!data || data.length === 0) {\n setSnackbarMessage(\"No hay datos para exportar a Excel.\");\n setSnackbarSeverity('warning');\n setSnackbarOpen(true);\n return;\n }\n\n setSnackbarMessage(\"Exportando datos a Excel (XLSX)...\");\n setSnackbarSeverity('info');\n setSnackbarOpen(true);\n\n try {\n const columnsToExport = exportColumns\n ? columns.filter(col => exportColumns.includes(col.props.name))\n : columns;\n\n // Construye el contenido HTML de la tabla.\n let tableHTML = `\n <html xmlns:o=\"urn:schemas-microsoft-com:office:office\"\n xmlns:x=\"urn:schemas-microsoft-com:office:excel\"\n xmlns=\"http://www.w3.org/TR/REC-html40\">\n <head>\n <meta charset=\"utf-8\" />\n <!--[if gte mso 9]><xml>\n <x:ExcelWorkbook>\n <x:ExcelWorksheets>\n <x:ExcelWorksheet>\n <x:Name>Hoja1</x:Name>\n <x:WorksheetOptions>\n <x:DisplayGridlines/>\n </x:WorksheetOptions>\n </x:ExcelWorksheet>\n </x:ExcelWorksheets>\n </x:ExcelWorkbook>\n </xml><![endif]-->\n </head>\n <body>\n <table>\n <thead>\n <tr>\n ${columnsToExport.map(col => `<th>${col.props.name}</th>`).join('')}\n </tr>\n </thead>\n <tbody>\n ${data.map(row => `\n <tr>\n ${columnsToExport.map(col => {\n const field = col.props.field;\n let cellValue: any;\n if (Array.isArray(field)) {\n cellValue = (row as any)[field[0]];\n } else {\n cellValue = (row as any)[field];\n }\n // Escapa caracteres HTML para el contenido de la celda.\n return `<td>${String(cellValue || '').replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;')}</td>`;\n }).join('')}\n </tr>\n `).join('')}\n </tbody>\n </table>\n </body>\n </html>\n `;\n\n // Crea un Blob con el contenido HTML y el tipo MIME de XLSX.\n const blob = new Blob([tableHTML], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8;' }); \n\n const link = document.createElement('a');\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', fileName + '.xlsx'); // Usa la extensión .xlsx\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n\n setSnackbarMessage(\"¡Exportación a Excel (XLSX) completada!\");\n setSnackbarSeverity('success');\n } else {\n setSnackbarMessage(\"Tu navegador no soporta la descarga directa para Excel (XLSX). Por favor, copia el contenido manualmente.\");\n setSnackbarSeverity('error');\n }\n } catch (error) {\n console.error(\"Error al exportar los datos a Excel (XLSX):\", error);\n setSnackbarMessage(\"Error al exportar los datos a Excel (XLSX).\");\n setSnackbarSeverity('error');\n } finally {\n setSnackbarOpen(true);\n }\n};\n","export default \"data:image/png;base64,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\"","import React, { Children, isValidElement, useState, useEffect, ReactElement } from 'react';\nimport {\n TableContainer,\n Table as MuiTable,\n TableHead,\n TableBody,\n TableRow,\n TableCell,\n Paper,\n Typography,\n Select,\n MenuItem,\n Box,\n Button,\n Snackbar,\n IconButton,\n Checkbox,\n} from '@mui/material';\nimport MuiAlert, { AlertProps } from '@mui/material/Alert';\nimport { ColumnProps } from '../Column/Column'; // Asegúrate de que esta ruta sea correcta\nimport DownloadOutlinedIcon from '@mui/icons-material/DownloadOutlined';\nimport FirstPageIcon from '@mui/icons-material/FirstPage';\nimport LastPageIcon from '@mui/icons-material/LastPage';\nimport KeyboardArrowLeftIcon from '@mui/icons-material/KeyboardArrowLeft';\nimport KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight';\n\nimport { exportToCSV, exportToExcel } from './exportsUtils';\n\n// @ts-ignore\nimport EmptyImage from './EmptyTable.png';\n\nexport type FieldName<T> = keyof T | Array<keyof T>;\n\ninterface TableProps<T> {\n data: T[];\n children: React.ReactNode;\n\n currentPage?: number;\n pageSize?: number;\n totalPages?: number;\n previousPage?: number;\n nextPage?: number;\n pageSizeSelectorValue?: number;\n onPageChange?: (newPage: number) => void;\n onPageSizeChange?: (newSize: number) => void;\n visiblePageNumbers?: number;\n\n enableCSVExport?: boolean;\n csvExportFileName?: string;\n csvExportButtonText?: string;\n csvExportColumns?: string[];\n\n enableExcelExport?: boolean;\n excelExportFileName?: string;\n excelExportButtonText?: string;\n excelExportColumns?: string[];\n\n enableRowSelection?: boolean;\n rowIdentifier?: keyof T;\n onSelectionChange?: (selectedItems: T[]) => void;\n showPageSizeSelector?: boolean;\n emptyTitle?: string;\n emptyMessage?: string;\n emptyImageSrc?: React.ReactNode;\n}\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(\n props,\n ref,\n) {\n return <MuiAlert elevation={6} ref={ref} variant=\"filled\" {...props} />;\n});\n\nexport function Table<T>({\n data,\n children,\n currentPage,\n pageSize,\n totalPages,\n previousPage,\n nextPage,\n pageSizeSelectorValue = 10,\n onPageChange,\n onPageSizeChange,\n visiblePageNumbers = 5,\n enableCSVExport = false,\n csvExportFileName = 'data.csv',\n csvExportButtonText = 'Exportar CSV',\n csvExportColumns,\n enableExcelExport = false,\n excelExportFileName = 'data.xlsx',\n excelExportButtonText = 'Exportar Excel',\n excelExportColumns,\n enableRowSelection = false,\n rowIdentifier,\n onSelectionChange,\n showPageSizeSelector = true,\n emptyTitle = 'No hay datos disponibles',\n emptyMessage,\n emptyImageSrc = <Box mb={2}>\n <img src={EmptyImage} alt=\"No data\" style={{ maxWidth: '150px', opacity: 0.6 }} />\n </Box>,\n}: TableProps<T>) {\n const columns = Children.toArray(children).filter(\n (child): child is React.ReactElement<ColumnProps<T>> =>\n isValidElement(child) && (child.type as any).displayName === 'Column'\n );\n\n const [snackbarOpen, setSnackbarOpen] = useState(false);\n const [snackbarMessage, setSnackbarMessage] = useState(\"\");\n const [snackbarSeverity, setSnackbarSeverity] = useState<AlertProps['severity']>('info');\n\n const [selectedRows, setSelectedRows] = useState<T[]>([]);\n\n useEffect(() => {\n setSelectedRows([]);\n }, [data, currentPage, pageSize]);\n\n useEffect(() => {\n onSelectionChange?.(selectedRows);\n }, [selectedRows, onSelectionChange]);\n\n const handleSnackbarClose = (event?: React.SyntheticEvent | Event, reason?: string) => {\n if (reason === 'clickaway') {\n return;\n }\n setSnackbarOpen(false);\n };\n\n const isControlled = typeof onPageChange === 'function' && typeof currentPage === 'number';\n const [internalPage, setInternalPage] = useState(1);\n const [internalPageSize, setInternalPageSize] = useState(pageSizeSelectorValue);\n\n const activePage = isControlled ? currentPage! : internalPage;\n const activePageSize = isControlled ? pageSize! : internalPageSize;\n\n const paginatedData = isControlled ? data : data.slice((activePage - 1) * activePageSize, activePage * activePageSize);\n\n const effectiveTotalPages = isControlled\n ? totalPages!\n : Math.ceil(data.length / activePageSize);\n\n const handlePageChange = (newPage: number) => {\n if (newPage < 1 || newPage > effectiveTotalPages) return;\n if (isControlled) onPageChange?.(newPage);\n else setInternalPage(newPage);\n };\n\n const handlePageSizeChange = (newSize: number) => {\n if (isControlled) {\n onPageSizeChange?.(newSize);\n onPageChange?.(1);\n } else {\n setInternalPageSize(newSize);\n setInternalPage(1);\n }\n };\n\n const getPageNumbers = () => {\n const pages = [];\n const maxPages = effectiveTotalPages;\n const current = activePage;\n const half = Math.floor(visiblePageNumbers / 2);\n\n let startPage = Math.max(1, current - half);\n let endPage = Math.min(maxPages, current + half);\n\n if (endPage - startPage + 1 < visiblePageNumbers) {\n if (startPage === 1) {\n endPage = Math.min(maxPages, startPage + visiblePageNumbers - 1);\n } else if (endPage === maxPages) {\n startPage = Math.max(1, maxPages - visiblePageNumbers + 1);\n }\n }\n\n for (let i = startPage; i <= endPage; i++) {\n pages.push(i);\n }\n return pages;\n };\n\n const pageNumbers = getPageNumbers();\n\n const handleSelectAllClick = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!rowIdentifier) {\n console.warn(\"`rowIdentifier` prop is required for row selection.\");\n return;\n }\n\n if (event.target.checked) {\n const newSelecteds = [...selectedRows];\n paginatedData.forEach(row => {\n const rowId = row[rowIdentifier] as any;\n if (!newSelecteds.some(selectedRow => (selectedRow as any)[rowIdentifier] === rowId)) {\n newSelecteds.push(row);\n }\n });\n setSelectedRows(newSelecteds);\n } else {\n const newSelecteds = selectedRows.filter(selectedRow =>\n !paginatedData.some(row => (row as any)[rowIdentifier] === (selectedRow as any)[rowIdentifier])\n );\n setSelectedRows(newSelecteds);\n }\n };\n\n const handleRowClick = (event: React.MouseEvent<unknown>, row: T) => {\n if (!rowIdentifier) {\n console.warn(\"`rowIdentifier` prop is required for row selection.\");\n return;\n }\n\n const rowId = row[rowIdentifier] as any;\n const selectedIndex = selectedRows.findIndex(selectedRow => (selectedRow as any)[rowIdentifier] === rowId);\n let newSelected: T[] = [];\n\n if (selectedIndex === -1) {\n newSelected = newSelected.concat(selectedRows, row);\n } else if (selectedIndex === 0) {\n newSelected = newSelected.concat(selectedRows.slice(1));\n } else if (selectedIndex === selectedRows.length - 1) {\n newSelected = newSelected.concat(selectedRows.slice(0, -1));\n } else if (selectedIndex > 0) {\n newSelected = newSelected.concat(\n selectedRows.slice(0, selectedIndex),\n selectedRows.slice(selectedIndex + 1),\n );\n }\n setSelectedRows(newSelected);\n };\n\n const isSelected = (row: T) => {\n if (!rowIdentifier) return false;\n return selectedRows.some(selectedRow => (selectedRow as any)[rowIdentifier] === (row as any)[rowIdentifier]);\n };\n\n const numSelectedOnPage = paginatedData.filter(isSelected).length;\n const isAllSelectedOnPage = paginatedData.length > 0 && numSelectedOnPage === paginatedData.length;\n const isIndeterminateOnPage = numSelectedOnPage > 0 && numSelectedOnPage < paginatedData.length;\n\n return (\n <TableContainer >\n\n <MuiTable sx={{ minWidth: 650 }} aria-label=\"custom table\" style={ paginatedData.length === 0 ? { display: 'none' } : {} }>\n {/* Table Header */}\n <TableHead sx={{ backgroundColor: '#fff' }}>\n <TableRow>\n {enableRowSelection && (\n <TableCell padding=\"checkbox\" sx={{ width: '50px' }}> {/* Puedes ajustar este ancho fijo si lo deseas */}\n <Checkbox\n color=\"primary\"\n indeterminate={isIndeterminateOnPage}\n checked={isAllSelectedOnPage}\n onChange={handleSelectAllClick}\n inputProps={{ 'aria-label': 'select all desserts' }}\n />\n </TableCell>\n )}\n {columns.map((column, index) => (\n <TableCell\n key={index}\n sx={{\n\n fontSize: '12px',\n color: (theme) => theme.palette.text.secondary,\n width: column.props.width || 'auto', // APLICA EL ANCHO AQUÍ\n whiteSpace: 'nowrap', // Evita que el texto se ajuste si la columna es pequeña\n \n }}\n >\n <Typography sx={{ fontSize: '12px' }}>\n {column.props.name}\n </Typography>\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n {/* Table Body */}\n <TableBody sx={{ borderRadius: '10px', overflow: 'hidden' }}>\n {paginatedData.map((row, rowIndex) => {\n const isRowSelected = enableRowSelection && isSelected(row);\n return (\n <TableRow\n key={rowIndex}\n sx={{ backgroundColor: '#F8F8F8', '&:last-child td, &:last-child th': { border: 0 }, '&:hover': { backgroundColor: (theme) => '#FFF' } }}\n selected={isRowSelected}\n >\n {enableRowSelection && (\n <TableCell padding=\"checkbox\" sx={{ width: '50px' }}> {/* Mismo ancho para la celda de la fila */}\n <Checkbox\n color=\"primary\"\n checked={isRowSelected}\n onClick={(event) => handleRowClick(event, row)}\n inputProps={{ 'aria-labelledby': `table-checkbox-${rowIndex}` }}\n />\n </TableCell>\n )}\n {columns.map((column, colIndex) => {\n const { field, children: cellRenderer } = column.props;\n\n let fieldData: Partial<T>;\n\n if (Array.isArray(field)) {\n if(field.length === 0){\n fieldData = {...row};\n }else{\n fieldData = (field as Array<keyof T>).reduce((acc, currentField) => {\n (acc as any)[currentField] = (row as any)[currentField];\n return acc;\n }, {} as Partial<T>);\n }\n\n } else {\n fieldData = { [field]: (row as any)[field] } as Partial<T>;\n }\n\n return (\n <TableCell\n key={colIndex}\n sx={{\n fontSize: '14px',\n width: column.props.width || 'auto', // APLICA EL ANCHO AQUÍ TAMBIÉN\n whiteSpace: 'nowrap', // Asegura que el contenido no se rompa prematuramente\n padding: '12px 16px', // Asegura un padding consistente\n borderBottom: 'none'\n }}\n >\n {cellRenderer(fieldData)}\n </TableCell>\n );\n })}\n </TableRow>\n );\n })}\n {/* Empty table message */}\n \n </TableBody>\n </MuiTable>\n\n { paginatedData.length === 0 && (\n <Box display=\"flex\" flexDirection=\"column\" alignItems=\"center\" justifyContent=\"center\" p={4} > \n { emptyImageSrc }\n\n <Typography variant=\"body2\" color=\"#878E9A\" fontSize=\"18px\" fontWeight=\"600\">\n {emptyTitle || 'No hay datos disponibles para mostrar.'}\n </Typography>\n <Typography variant=\"body2\" color=\"#878E9A\" fontSize=\"14px\" mt={1}> \n {emptyMessage || 'Intente ajustar sus filtros o agregar nuevos datos.'}\n </Typography>\n\n </Box>\n )\n }\n\n {/* Pagination and Export Controls */}\n {(effectiveTotalPages > 0 || enableCSVExport || enableExcelExport || (enableRowSelection && selectedRows.length > 0)) && (\n <Box display=\"flex\" justifyContent=\"space-between\" alignItems=\"center\" p={2}>\n {/* Page Size Selector (Left) */}\n {(effectiveTotalPages > 0 && showPageSizeSelector) && (\n <Select\n size=\"small\"\n value={activePageSize}\n onChange={(e) => handlePageSizeChange(Number(e.target.value))}\n >\n {[1, 2, 3, 5, 10, 20, 50, 100].map((size) => (\n <MenuItem key={size} value={size}>\n Mostrar {size}\n </MenuItem>\n ))}\n </Select>\n )}\n\n {/* Pagination Controls (Center) */}\n {effectiveTotalPages > 0 && (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n gap={0.5}\n sx={{ flexGrow: 1, justifyContent: 'center' }}\n >\n <IconButton\n onClick={() => handlePageChange(1)}\n disabled={activePage <= 1}\n size=\"small\"\n color=\"primary\"\n >\n <FirstPageIcon fontSize=\"small\" />\n </IconButton>\n\n <IconButton\n onClick={() => handlePageChange(activePage - 1)}\n disabled={activePage <= 1}\n size=\"small\"\n color=\"primary\"\n >\n <KeyboardArrowLeftIcon fontSize=\"small\" />\n </IconButton>\n\n {pageNumbers.map((pageNumber) => (\n <Button\n key={pageNumber}\n onClick={() => handlePageChange(pageNumber)}\n variant={activePage === pageNumber ? 'contained' : 'text'}\n size=\"small\"\n sx={{ minWidth: '32px', height: '32px' }}\n >\n {pageNumber}\n </Button>\n ))}\n\n <IconButton\n onClick={() => handlePageChange(activePage + 1)}\n disabled={activePage >= effectiveTotalPages}\n size=\"small\"\n color=\"primary\"\n >\n <KeyboardArrowRightIcon fontSize=\"small\" />\n </IconButton>\n\n <IconButton\n onClick={() => handlePageChange(effectiveTotalPages)}\n disabled={activePage >= effectiveTotalPages}\n size=\"small\"\n color=\"primary\"\n >\n <LastPageIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n )}\n\n {enableRowSelection && selectedRows.length > 0 && (\n <Typography variant=\"subtitle2\" sx={{ mr: 2 }}>\n {selectedRows.length} seleccionados\n </Typography>\n )}\n\n {(enableCSVExport || enableExcelExport) && (\n <Box display=\"flex\" alignItems=\"center\" gap={1}>\n {enableCSVExport && (\n <Button\n variant=\"text\"\n color=\"primary\"\n onClick={() =>\n exportToCSV({\n data,\n columns,\n fileName: csvExportFileName,\n exportColumns: csvExportColumns,\n setSnackbarOpen,\n setSnackbarMessage,\n setSnackbarSeverity,\n })\n }\n size=\"small\"\n startIcon={<DownloadOutlinedIcon />}\n >\n {csvExportButtonText}\n </Button>\n )}\n {enableExcelExport && (\n <Button\n variant=\"text\"\n color=\"primary\"\n onClick={() =>\n exportToExcel({\n data,\n columns,\n fileName: excelExportFileName,\n exportColumns: excelExportColumns,\n setSnackbarOpen,\n setSnackbarMessage,\n setSnackbarSeverity,\n })\n }\n size=\"small\"\n startIcon={<DownloadOutlinedIcon />}\n >\n {excelExportButtonText}\n </Button>\n )}\n </Box>\n )}\n </Box>\n )}\n\n <Snackbar open={snackbarOpen} autoHideDuration={3000} onClose={handleSnackbarClose} anchorOrigin={{ vertical: 'bottom', horizontal: 'center' }}>\n <Alert onClose={handleSnackbarClose} severity={snackbarSeverity} sx={{ width: '100%' }}>\n {snackbarMessage}\n </Alert>\n </Snackbar>\n </TableContainer>\n );\n}\n\nexport default Table;"],"names":["React","Alert","MuiTable"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAmBO,MAAM,cAAc,CAAI,YAA8B;AAC3D,QAAM,EAAE,MAAM,SAAS,UAAU,eAAe,iBAAiB,oBAAoB,wBAAwB;AAE7G,MAAI,CAAC,QAAQ,KAAK,WAAW,GAAG;AAC9B,uBAAmB,mCAAmC;AACtD,wBAAoB,SAAS;AAC7B,oBAAgB,IAAI;AACpB;AAAA,EACF;AAEA,qBAAmB,2BAA2B;AAC9C,sBAAoB,MAAM;AAC1B,kBAAgB,IAAI;AAEpB,MAAI;AAEF,UAAM,kBAAkB,gBACpB,QAAQ,OAAO,CAAA,QAAO,cAAc,SAAS,IAAI,MAAM,IAAI,CAAC,IAC5D;AAGJ,UAAM,UAAU,gBAAgB,IAAI,CAAA,QAAO,IAAI,IAAI,MAAM,KAAK,QAAQ,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG;AAG9F,UAAM,UAAU,KAAK,IAAI,CAAA,QAAO;AAC9B,YAAM,SAAS,gBAAgB,IAAI,CAAA,QAAO;AACxC,cAAM,QAAQ,IAAI,MAAM;AACxB,YAAI;AAGJ,YAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,sBAAa,IAAY,MAAM,CAAC,CAAC;AAAA,QACnC,OAAO;AACL,sBAAa,IAAY,KAAK;AAAA,QAChC;AAGA,YAAI,iBAAiB,OAAO,aAAa,EAAE;AAC3C,YAAI,eAAe,SAAS,GAAG,KAAK,eAAe,SAAS,GAAG,KAAK,eAAe,SAAS,IAAI,GAAG;AACjG,2BAAiB,IAAI,eAAe,QAAQ,MAAM,IAAI,CAAC;AAAA,QACzD;AACA,eAAO;AAAA,MACT,CAAC;AACD,aAAO,OAAO,KAAK,GAAG;AAAA,IACxB,CAAC;AAED,UAAM,aAAa,CAAC,SAAS,GAAG,OAAO,EAAE,KAAK,IAAI;AAClD,UAAM,OAAO,IAAI,KAAK,CAAC,UAAU,GAAG,EAAE,MAAM,2BAA2B;AACvE,UAAM,OAAO,SAAS,cAAc,GAAG;AAEvC,QAAI,KAAK,aAAa,QAAW;AAC/B,YAAM,MAAM,IAAI,gBAAgB,IAAI;AACpC,WAAK,aAAa,QAAQ,GAAG;AAC7B,WAAK,aAAa,YAAY,WAAW,MAAM;AAC/C,WAAK,MAAM,aAAa;AACxB,eAAS,KAAK,YAAY,IAAI;AAC9B,WAAK,MAAA;AACL,eAAS,KAAK,YAAY,IAAI;AAC9B,UAAI,gBAAgB,GAAG;AAEvB,yBAAmB,gCAAgC;AACnD,0BAAoB,SAAS;AAAA,IAC/B,OAAO;AACL,yBAAmB,kGAAkG;AACrH,0BAAoB,OAAO;AAAA,IAC7B;AAAA,EACF,SAAS,OAAO;AACd,YAAQ,MAAM,sCAAsC,KAAK;AACzD,uBAAmB,oCAAoC;AACvD,wBAAoB,OAAO;AAAA,EAC7B,UAAA;AACE,oBAAgB,IAAI;AAAA,EACtB;AACF;AAOO,MAAM,gBAAgB,CAAI,YAA8B;AAC7D,QAAM,EAAE,MAAM,SAAS,UAAU,eAAe,iBAAiB,oBAAoB,wBAAwB;AAE7G,MAAI,CAAC,QAAQ,KAAK,WAAW,GAAG;AAC9B,uBAAmB,qCAAqC;AACxD,wBAAoB,SAAS;AAC7B,oBAAgB,IAAI;AACpB;AAAA,EACF;AAEA,qBAAmB,oCAAoC;AACvD,sBAAoB,MAAM;AAC1B,kBAAgB,IAAI;AAEpB,MAAI;AACF,UAAM,kBAAkB,gBACpB,QAAQ,OAAO,CAAA,QAAO,cAAc,SAAS,IAAI,MAAM,IAAI,CAAC,IAC5D;AAGJ,QAAI,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAuBI,gBAAgB,IAAI,CAAA,QAAO,OAAO,IAAI,MAAM,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;AAAA;AAAA;AAAA;AAAA,oBAIrE,KAAK,IAAI,CAAA,QAAO;AAAA;AAAA,4BAER,gBAAgB,IAAI,CAAA,QAAO;AACzB,YAAM,QAAQ,IAAI,MAAM;AACxB,UAAI;AACJ,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,oBAAa,IAAY,MAAM,CAAC,CAAC;AAAA,MACrC,OAAO;AACH,oBAAa,IAAY,KAAK;AAAA,MAClC;AAEA,aAAO,OAAO,OAAO,aAAa,EAAE,EAAE,QAAQ,MAAM,OAAO,EAAE,QAAQ,MAAM,MAAM,EAAE,QAAQ,MAAM,MAAM,CAAC;AAAA,IAC5G,CAAC,EAAE,KAAK,EAAE,CAAC;AAAA;AAAA,mBAElB,EAAE,KAAK,EAAE,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAQzB,UAAM,OAAO,IAAI,KAAK,CAAC,SAAS,GAAG,EAAE,MAAM,oFAAoF;AAE/H,UAAM,OAAO,SAAS,cAAc,GAAG;AACvC,QAAI,KAAK,aAAa,QAAW;AAC/B,YAAM,MAAM,IAAI,gBAAgB,IAAI;AACpC,WAAK,aAAa,QAAQ,GAAG;AAC7B,WAAK,aAAa,YAAY,WAAW,OAAO;AAChD,WAAK,MAAM,aAAa;AACxB,eAAS,KAAK,YAAY,IAAI;AAC9B,WAAK,MAAA;AACL,eAAS,KAAK,YAAY,IAAI;AAC9B,UAAI,gBAAgB,GAAG;AAEvB,yBAAmB,yCAAyC;AAC5D,0BAAoB,SAAS;AAAA,IAC/B,OAAO;AACL,yBAAmB,2GAA2G;AAC9H,0BAAoB,OAAO;AAAA,IAC7B;AAAA,EACF,SAAS,OAAO;AACd,YAAQ,MAAM,+CAA+C,KAAK;AAClE,uBAAmB,6CAA6C;AAChE,wBAAoB,OAAO;AAAA,EAC7B,UAAA;AACE,oBAAgB,IAAI;AAAA,EACtB;AACF;AClMA,MAAA,aAAe;ACkEf,MAAM,QAAQA,eAAM,WAAuC,SAASC,OAClE,OACA,KACA;AACA,SAAO,oBAAC,2BAAS,WAAW,GAAG,KAAU,SAAQ,YAAa,MAAO;AACvE,CAAC;AAEM,SAAS,MAAS;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,wBAAwB;AAAA,EACxB;AAAA,EACA;AAAA,EACA,qBAAqB;AAAA,EACrB,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB;AAAA,EACA,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,wBAAwB;AAAA,EACxB;AAAA,EACA,qBAAqB;AAAA,EACrB;AAAA,EACA;AAAA,EACA,uBAAuB;AAAA,EACvB,aAAa;AAAA,EACb;AAAA,EACA,gBAAgB,oBAAC,KAAA,EAAI,IAAI,GACP,UAAA,oBAAC,SAAI,KAAK,YAAY,KAAI,WAAU,OAAO,EAAE,UAAU,SAAS,SAAS,IAAA,GAAO,EAAA,CAClF;AAClB,GAAkB;AAChB,QAAM,UAAU,SAAS,QAAQ,QAAQ,EAAE;AAAA,IACzC,CAAC,UACC,eAAe,KAAK,KAAM,MAAM,KAAa,gBAAgB;AAAA,EAAA;AAGjE,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,KAAK;AACtD,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,EAAE;AACzD,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,SAAiC,MAAM;AAEvF,QAAM,CAAC,cAAc,eAAe,IAAI,SAAc,CAAA,CAAE;AAExD,YAAU,MAAM;AACd,oBAAgB,CAAA,CAAE;AAAA,EACpB,GAAG,CAAC,MAAM,aAAa,QAAQ,CAAC;AAEhC,YAAU,MAAM;AACd,2DAAoB;AAAA,EACtB,GAAG,CAAC,cAAc,iBAAiB,CAAC;AAEpC,QAAM,sBAAsB,CAAC,OAAsC,WAAoB;AACrF,QAAI,WAAW,aAAa;AAC1B;AAAA,IACF;AACA,oBAAgB,KAAK;AAAA,EACvB;AAEA,QAAM,eAAe,OAAO,iBAAiB,cAAc,OAAO,gBAAgB;AAClF,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,CAAC;AAClD,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,SAAS,qBAAqB;AAE9E,QAAM,aAAa,eAAe,cAAe;AACjD,QAAM,iBAAiB,eAAe,WAAY;AAElD,QAAM,gBAAgB,eAAe,OAAO,KAAK,OAAO,aAAa,KAAK,gBAAgB,aAAa,cAAc;AAErH,QAAM,sBAAsB,eACxB,aACA,KAAK,KAAK,KAAK,SAAS,cAAc;AAE1C,QAAM,mBAAmB,CAAC,YAAoB;AAC5C,QAAI,UAAU,KAAK,UAAU,oBAAqB;AAClD,QAAI,2DAA6B;AAAA,yBACZ,OAAO;AAAA,EAC9B;AAEA,QAAM,uBAAuB,CAAC,YAAoB;AAChD,QAAI,cAAc;AAChB,2DAAmB;AACnB,mDAAe;AAAA,IACjB,OAAO;AACL,0BAAoB,OAAO;AAC3B,sBAAgB,CAAC;AAAA,IACnB;AAAA,EACF;AAEA,QAAM,iBAAiB,MAAM;AAC3B,UAAM,QAAQ,CAAA;AACd,UAAM,WAAW;AACjB,UAAM,UAAU;AAChB,UAAM,OAAO,KAAK,MAAM,qBAAqB,CAAC;AAE9C,QAAI,YAAY,KAAK,IAAI,GAAG,UAAU,IAAI;AAC1C,QAAI,UAAU,KAAK,IAAI,UAAU,UAAU,IAAI;AAE/C,QAAI,UAAU,YAAY,IAAI,oBAAoB;AAChD,UAAI,cAAc,GAAG;AACnB,kBAAU,KAAK,IAAI,UAAU,YAAY,qBAAqB,CAAC;AAAA,MACjE,WAAW,YAAY,UAAU;AAC/B,oBAAY,KAAK,IAAI,GAAG,WAAW,qBAAqB,CAAC;AAAA,MAC3D;AAAA,IACF;AAEA,aAAS,IAAI,WAAW,KAAK,SAAS,KAAK;AACzC,YAAM,KAAK,CAAC;AAAA,IACd;AACA,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,eAAA;AAEpB,QAAM,uBAAuB,CAAC,UAA+C;AAC3E,QAAI,CAAC,eAAe;AAClB,cAAQ,KAAK,qDAAqD;AAClE;AAAA,IACF;AAEA,QAAI,MAAM,OAAO,SAAS;AACxB,YAAM,eAAe,CAAC,GAAG,YAAY;AACrC,oBAAc,QAAQ,CAAA,QAAO;AAC3B,cAAM,QAAQ,IAAI,aAAa;AAC/B,YAAI,CAAC,aAAa,KAAK,CAAA,gBAAgB,YAAoB,aAAa,MAAM,KAAK,GAAG;AACpF,uBAAa,KAAK,GAAG;AAAA,QACvB;AAAA,MACF,CAAC;AACD,sBAAgB,YAAY;AAAA,IAC9B,OAAO;AACL,YAAM,eAAe,aAAa;AAAA,QAAO,CAAA,gBACvC,CAAC,cAAc,KAAK,CAAA,QAAQ,IAAY,aAAa,MAAO,YAAoB,aAAa,CAAC;AAAA,MAAA;AAEhG,sBAAgB,YAAY;AAAA,IAC9B;AAAA,EACF;AAEA,QAAM,iBAAiB,CAAC,OAAkC,QAAW;AACnE,QAAI,CAAC,eAAe;AAClB,cAAQ,KAAK,qDAAqD;AAClE;AAAA,IACF;AAEA,UAAM,QAAQ,IAAI,aAAa;AAC/B,UAAM,gBAAgB,aAAa,UAAU,iBAAgB,YAAoB,aAAa,MAAM,KAAK;AACzG,QAAI,cAAmB,CAAA;AAEvB,QAAI,kBAAkB,IAAI;AACxB,oBAAc,YAAY,OAAO,cAAc,GAAG;AAAA,IACpD,WAAW,kBAAkB,GAAG;AAC9B,oBAAc,YAAY,OAAO,aAAa,MAAM,CAAC,CAAC;AAAA,IACxD,WAAW,kBAAkB,aAAa,SAAS,GAAG;AACpD,oBAAc,YAAY,OAAO,aAAa,MAAM,GAAG,EAAE,CAAC;AAAA,IAC5D,WAAW,gBAAgB,GAAG;AAC5B,oBAAc,YAAY;AAAA,QACxB,aAAa,MAAM,GAAG,aAAa;AAAA,QACnC,aAAa,MAAM,gBAAgB,CAAC;AAAA,MAAA;AAAA,IAExC;AACA,oBAAgB,WAAW;AAAA,EAC7B;AAEA,QAAM,aAAa,CAAC,QAAW;AAC7B,QAAI,CAAC,cAAe,QAAO;AAC3B,WAAO,aAAa,KAAK,CAAA,gBAAgB,YAAoB,aAAa,MAAO,IAAY,aAAa,CAAC;AAAA,EAC7G;AAEA,QAAM,oBAAoB,cAAc,OAAO,UAAU,EAAE;AAC3D,QAAM,sBAAsB,cAAc,SAAS,KAAK,sBAAsB,cAAc;AAC5F,QAAM,wBAAwB,oBAAoB,KAAK,oBAAoB,cAAc;AAEzF,8BACG,gBAAA,EAEC,UAAA;AAAA,IAAA,qBAACC,WAAS,IAAI,EAAE,UAAU,IAAA,GAAO,cAAW,gBAAe,OAAQ,cAAc,WAAW,IAAI,EAAE,SAAS,OAAA,IAAW,CAAA,GAEpH,UAAA;AAAA,MAAA,oBAAC,aAAU,IAAI,EAAE,iBAAiB,OAAA,GAChC,+BAAC,UAAA,EACE,UAAA;AAAA,QAAA,sBACC,qBAAC,aAAU,SAAQ,YAAW,IAAI,EAAE,OAAO,UAAU,UAAA;AAAA,UAAA;AAAA,UACnD;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAM;AAAA,cACN,eAAe;AAAA,cACf,SAAS;AAAA,cACT,UAAU;AAAA,cACV,YAAY,EAAE,cAAc,sBAAA;AAAA,YAAsB;AAAA,UAAA;AAAA,QACpD,GACF;AAAA,QAED,QAAQ,IAAI,CAAC,QAAQ,UACpB;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,IAAI;AAAA,cAEF,UAAU;AAAA,cACV,OAAO,CAAC,UAAU,MAAM,QAAQ,KAAK;AAAA,cACrC,OAAO,OAAO,MAAM,SAAS;AAAA;AAAA,cAC7B,YAAY;AAAA;AAAA,YAAA;AAAA,YAId,UAAA,oBAAC,cAAW,IAAI,EAAE,UAAU,OAAA,GACzB,UAAA,OAAO,MAAM,KAAA,CAChB;AAAA,UAAA;AAAA,UAZK;AAAA,QAAA,CAcR;AAAA,MAAA,EAAA,CACH,EAAA,CACF;AAAA,MAEA,oBAAC,WAAA,EAAU,IAAI,EAAE,cAAc,QAAQ,UAAU,SAAA,GAC9C,UAAA,cAAc,IAAI,CAAC,KAAK,aAAa;AACpC,cAAM,gBAAgB,sBAAsB,WAAW,GAAG;AAC1D,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,IAAI,EAAE,iBAAiB,WAAW,oCAAoC,EAAE,QAAQ,EAAA,GAAK,WAAW,EAAE,iBAAiB,CAAC,UAAU,SAAO;AAAA,YACrI,UAAU;AAAA,YAET,UAAA;AAAA,cAAA,sBACC,qBAAC,aAAU,SAAQ,YAAW,IAAI,EAAE,OAAO,UAAU,UAAA;AAAA,gBAAA;AAAA,gBACnD;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAM;AAAA,oBACN,SAAS;AAAA,oBACT,SAAS,CAAC,UAAU,eAAe,OAAO,GAAG;AAAA,oBAC7C,YAAY,EAAE,mBAAmB,kBAAkB,QAAQ,GAAA;AAAA,kBAAG;AAAA,gBAAA;AAAA,cAChE,GACF;AAAA,cAED,QAAQ,IAAI,CAAC,QAAQ,aAAa;AACjC,sBAAM,EAAE,OAAO,UAAU,aAAA,IAAiB,OAAO;AAEjD,oBAAI;AAEJ,oBAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,sBAAG,MAAM,WAAW,GAAE;AACpB,gCAAY,mBAAI;AAAA,kBAClB,OAAK;AACH,gCAAa,MAAyB,OAAO,CAAC,KAAK,iBAAiB;AACjE,0BAAY,YAAY,IAAK,IAAY,YAAY;AACtD,6BAAO;AAAA,oBACT,GAAG,CAAA,CAAgB;AAAA,kBACrB;AAAA,gBAEF,OAAO;AACL,8BAAY,EAAE,CAAC,KAAK,GAAI,IAAY,KAAK,EAAA;AAAA,gBAC3C;AAEA,uBACE;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBAEC,IAAI;AAAA,sBACF,UAAU;AAAA,sBACV,OAAO,OAAO,MAAM,SAAS;AAAA;AAAA,sBAC7B,YAAY;AAAA;AAAA,sBACZ,SAAS;AAAA;AAAA,sBACT,cAAc;AAAA,oBAAA;AAAA,oBAGf,uBAAa,SAAS;AAAA,kBAAA;AAAA,kBATlB;AAAA,gBAAA;AAAA,cAYX,CAAC;AAAA,YAAA;AAAA,UAAA;AAAA,UA/CI;AAAA,QAAA;AAAA,MAkDX,CAAC,EAAA,CAGH;AAAA,IAAA,GACF;AAAA,IAEE,cAAc,WAAW,KACvB,qBAAC,OAAK,SAAQ,QAAO,eAAc,UAAS,YAAW,UAAS,gBAAe,UAAS,GAAG,GACtF,UAAA;AAAA,MAAA;AAAA,MAEG,oBAAC,YAAA,EAAW,SAAQ,SAAQ,OAAM,WAAU,UAAS,QAAO,YAAW,OACpE,UAAA,cAAc,yCAAA,CACjB;AAAA,MACA,oBAAC,YAAA,EAAW,SAAQ,SAAQ,OAAM,WAAU,UAAS,QAAO,IAAI,GAC7D,UAAA,gBAAgB,sDAAA,CACnB;AAAA,IAAA,GAER;AAAA,KAKF,sBAAsB,KAAK,mBAAmB,qBAAsB,sBAAsB,aAAa,SAAS,MAChH,qBAAC,KAAA,EAAI,SAAQ,QAAO,gBAAe,iBAAgB,YAAW,UAAS,GAAG,GAEtE,UAAA;AAAA,MAAA,sBAAsB,KAAK,wBAC3B;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAO;AAAA,UACP,UAAU,CAAC,MAAM,qBAAqB,OAAO,EAAE,OAAO,KAAK,CAAC;AAAA,UAE3D,WAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,SAClC,qBAAC,UAAA,EAAoB,OAAO,MAAM,UAAA;AAAA,YAAA;AAAA,YACvB;AAAA,UAAA,EAAA,GADI,IAEf,CACD;AAAA,QAAA;AAAA,MAAA;AAAA,MAKJ,sBAAsB,KACrB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,YAAW;AAAA,UACX,KAAK;AAAA,UACL,IAAI,EAAE,UAAU,GAAG,gBAAgB,SAAA;AAAA,UAEnC,UAAA;AAAA,YAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS,MAAM,iBAAiB,CAAC;AAAA,gBACjC,UAAU,cAAc;AAAA,gBACxB,MAAK;AAAA,gBACL,OAAM;AAAA,gBAEN,UAAA,oBAAC,eAAA,EAAc,UAAS,QAAA,CAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,YAGlC;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS,MAAM,iBAAiB,aAAa,CAAC;AAAA,gBAC9C,UAAU,cAAc;AAAA,gBACxB,MAAK;AAAA,gBACL,OAAM;AAAA,gBAEN,UAAA,oBAAC,uBAAA,EAAsB,UAAS,QAAA,CAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,YAGzC,YAAY,IAAI,CAAC,eAChB;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,SAAS,MAAM,iBAAiB,UAAU;AAAA,gBAC1C,SAAS,eAAe,aAAa,cAAc;AAAA,gBACnD,MAAK;AAAA,gBACL,IAAI,EAAE,UAAU,QAAQ,QAAQ,OAAA;AAAA,gBAE/B,UAAA;AAAA,cAAA;AAAA,cANI;AAAA,YAAA,CAQR;AAAA,YAED;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS,MAAM,iBAAiB,aAAa,CAAC;AAAA,gBAC9C,UAAU,cAAc;AAAA,gBACxB,MAAK;AAAA,gBACL,OAAM;AAAA,gBAEN,UAAA,oBAAC,wBAAA,EAAuB,UAAS,QAAA,CAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,YAG3C;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS,MAAM,iBAAiB,mBAAmB;AAAA,gBACnD,UAAU,cAAc;AAAA,gBACxB,MAAK;AAAA,gBACL,OAAM;AAAA,gBAEN,UAAA,oBAAC,cAAA,EAAa,UAAS,QAAA,CAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,UACjC;AAAA,QAAA;AAAA,MAAA;AAAA,MAIH,sBAAsB,aAAa,SAAS,KAC3C,qBAAC,YAAA,EAAW,SAAQ,aAAY,IAAI,EAAE,IAAI,EAAA,GACvC,UAAA;AAAA,QAAA,aAAa;AAAA,QAAO;AAAA,MAAA,GACvB;AAAA,OAGA,mBAAmB,sBACnB,qBAAC,KAAA,EAAI,SAAQ,QAAO,YAAW,UAAS,KAAK,GAC1C,UAAA;AAAA,QAAA,mBACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,OAAM;AAAA,YACN,SAAS,MACP,YAAY;AAAA,cACV;AAAA,cACA;AAAA,cACA,UAAU;AAAA,cACV,eAAe;AAAA,cACf;AAAA,cACA;AAAA,cACA;AAAA,YAAA,CACD;AAAA,YAEH,MAAK;AAAA,YACL,+BAAY,sBAAA,EAAqB;AAAA,YAEhC,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGJ,qBACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,OAAM;AAAA,YACN,SAAS,MACP,cAAc;AAAA,cACZ;AAAA,cACA;AAAA,cACA,UAAU;AAAA,cACV,eAAe;AAAA,cACf;AAAA,cACA;AAAA,cACA;AAAA,YAAA,CACD;AAAA,YAEH,MAAK;AAAA,YACL,+BAAY,sBAAA,EAAqB;AAAA,YAEhC,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,EAAA,CAEJ;AAAA,IAAA,GAEJ;AAAA,IAGF,oBAAC,UAAA,EAAS,MAAM,cAAc,kBAAkB,KAAM,SAAS,qBAAqB,cAAc,EAAE,UAAU,UAAU,YAAY,SAAA,GAClI,UAAA,oBAAC,OAAA,EAAM,SAAS,qBAAqB,UAAU,kBAAkB,IAAI,EAAE,OAAO,OAAA,GAC3E,UAAA,gBAAA,CACH,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"Table.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,96 +1,7 @@
1
1
  "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
- var __spreadValues = (a, b) => {
8
- for (var prop in b || (b = {}))
9
- if (__hasOwnProp.call(b, prop))
10
- __defNormalProp(a, prop, b[prop]);
11
- if (__getOwnPropSymbols)
12
- for (var prop of __getOwnPropSymbols(b)) {
13
- if (__propIsEnum.call(b, prop))
14
- __defNormalProp(a, prop, b[prop]);
15
- }
16
- return a;
17
- };
18
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
19
- const jsxRuntime = require("react/jsx-runtime");
20
- const React = require("react");
21
- const material = require("@mui/material");
22
- const TAB_DISPLAY_MAP = {
23
- horizontal: { display: "flex", flexDirection: "column" },
24
- vertical: { display: "flex", flexDirection: "row" }
25
- };
26
- const Tabs = ({
27
- children,
28
- defaultValue,
29
- onChange,
30
- centered = true,
31
- orientation = "horizontal",
32
- scrollButtons = "auto",
33
- variant = "standard",
34
- indicatorColor = "primary",
35
- labelColor = "primary",
36
- className,
37
- onChangeValue,
38
- allowScrollButtonsMobile = true,
39
- sx
40
- }) => {
41
- var _a, _b;
42
- const firstValue = (_a = children[0]) == null ? void 0 : _a.props.value;
43
- const [currentValue, setCurrentValue] = React.useState(
44
- (_b = defaultValue != null ? defaultValue : firstValue) != null ? _b : 0
45
- );
46
- const handleChange = (event, newValue) => {
47
- setCurrentValue(newValue);
48
- onChange == null ? void 0 : onChange();
49
- onChangeValue == null ? void 0 : onChangeValue(newValue);
50
- };
51
- return /* @__PURE__ */ jsxRuntime.jsxs(material.Box, { sx: { display: TAB_DISPLAY_MAP[orientation].display, flexDirection: TAB_DISPLAY_MAP[orientation].flexDirection }, children: [
52
- /* @__PURE__ */ jsxRuntime.jsx(
53
- material.Tabs,
54
- {
55
- value: currentValue,
56
- onChange: handleChange,
57
- centered,
58
- indicatorColor,
59
- orientation,
60
- scrollButtons,
61
- variant,
62
- className,
63
- textColor: labelColor,
64
- sx: __spreadValues({}, sx),
65
- allowScrollButtonsMobile,
66
- children: children.map((child, idx) => {
67
- const { label, icon, value = idx, disabled, wrapped, iconPosition, className: tabClassName, sx: tabSx } = child.props;
68
- return /* @__PURE__ */ jsxRuntime.jsx(
69
- material.Tab,
70
- {
71
- label,
72
- icon,
73
- value,
74
- disabled,
75
- wrapped,
76
- iconPosition,
77
- className: tabClassName,
78
- sx: tabSx
79
- },
80
- value
81
- );
82
- })
83
- }
84
- ),
85
- /* @__PURE__ */ jsxRuntime.jsx(material.Box, { m: 2, role: "tabpanel", sx: { width: "100%" }, children: children.map((child, idx) => {
86
- var _a2;
87
- const value = (_a2 = child.props.value) != null ? _a2 : idx;
88
- return value === currentValue ? /* @__PURE__ */ jsxRuntime.jsx(material.Box, { children: child.props.children }, value) : null;
89
- }) })
90
- ] });
91
- };
92
- const Tab = (_) => null;
93
- Tab.displayName = "Tab";
94
- exports.Tab = Tab;
95
- exports.Tabs = Tabs;
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const Tab = require("../../Tab-BbP8jBcK.cjs");
4
+ exports.Tab = Tab.Tab;
5
+ exports.Tabs = Tab.Tabs;
6
+ exports.default = Tab.Tabs;
96
7
  //# sourceMappingURL=Tabs.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.cjs","sources":["../../../src/components/Tabs/_tabUtils.tsx","../../../src/components/Tabs/Tabs.tsx","../../../src/components/Tabs/Tab.tsx"],"sourcesContent":["export const TAB_DISPLAY_MAP: Record<\"horizontal\" | \"vertical\", { display: string, flexDirection: string }> = {\n horizontal: { display: \"flex\", flexDirection: \"column\" },\n vertical: { display: \"flex\", flexDirection: \"row\" }\n};","import React, { useState, ReactElement } from \"react\";\nimport { Tabs as MuiTabs, Tab as MuiTab, Box, TabsProps as MuiTabsProps } from \"@mui/material\";\nimport { TabProps } from \"./Tab\";\nimport { TAB_DISPLAY_MAP } from \"./_tabUtils\";\n\ntype PickTabsProps = Pick<\n MuiTabsProps,\n \"centered\" | \"indicatorColor\" | \"orientation\" | \"scrollButtons\" | \"variant\" | \"className\" | \"sx\" | \"visibleScrollbar\" | 'indicatorColor'| 'allowScrollButtonsMobile'\n>;\n\ninterface MyTabsProps extends PickTabsProps {\n children: ReactElement<TabProps>[];\n defaultValue?: number;\n onChange?: () => void;\n centered?: boolean;\n orientation?: \"horizontal\" | \"vertical\";\n scrollButtons?: \"auto\" | false | true;\n variant?: \"standard\" | \"scrollable\" | \"fullWidth\";\n indicatorColor?: \"primary\" | \"secondary\";\n labelColor?: \"primary\" | \"secondary\" | \"inherit\";\n onChangeValue?: (newValue: number) => void;\n allowScrollButtonsMobile?: boolean;\n}\n\nexport const Tabs: React.FC<MyTabsProps> = ({\n children,\n defaultValue,\n onChange,\n centered = true,\n orientation = 'horizontal',\n scrollButtons = \"auto\",\n variant = \"standard\",\n indicatorColor = \"primary\",\n labelColor = \"primary\",\n className,\n onChangeValue,\n allowScrollButtonsMobile = true,\n sx,\n}) => {\n const firstValue = children[0]?.props.value;\n const [currentValue, setCurrentValue] = useState<string | number>(\n defaultValue ?? firstValue ?? 0\n );\n\n const handleChange = (event: React.SyntheticEvent, newValue: number) => {\n setCurrentValue(newValue);\n onChange?.();\n onChangeValue?.(newValue);\n };\n\n return (\n <Box sx={{ display: TAB_DISPLAY_MAP[orientation].display, flexDirection: TAB_DISPLAY_MAP[orientation].flexDirection}}>\n <MuiTabs\n value={currentValue}\n onChange={handleChange}\n centered={centered}\n indicatorColor={indicatorColor}\n orientation={orientation}\n scrollButtons={scrollButtons}\n variant={variant}\n className={className}\n textColor={labelColor}\n sx={{ ...sx }}\n allowScrollButtonsMobile={allowScrollButtonsMobile}\n \n\n >\n {children.map((child, idx) => {\n const { label, icon, value = idx, disabled, wrapped, iconPosition, className: tabClassName, sx: tabSx } = child.props;\n return (\n <MuiTab\n key={value}\n label={label}\n icon={icon}\n value={value}\n disabled={disabled}\n wrapped={wrapped}\n iconPosition={iconPosition}\n className={tabClassName}\n sx={tabSx}\n />\n );\n })}\n </MuiTabs>\n\n <Box m={2} role=\"tabpanel\" sx={{width:'100%'}} >\n {children.map((child, idx) => {\n const value = child.props.value ?? idx;\n return value === currentValue ? (\n <Box key={value}>{child.props.children}</Box>\n ) : null;\n })}\n </Box>\n </Box>\n\n );\n};\n\nexport default Tabs;\n","import React from \"react\";\nimport { TabProps as MuiTabProps } from \"@mui/material\";\n\ntype PickMuiTabProps = Pick<\n MuiTabProps,\n \"label\" | \"icon\" | \"disabled\" | \"sx\" | \"value\" | \"wrapped\" | \"iconPosition\" | \"className\" | \"disabled\"| 'disableRipple'\n>;\n\nexport interface TabProps extends PickMuiTabProps {\n value?: number;\n onChange?: () => void;\n children?: React.ReactNode;\n}\n\nexport const Tab = (_: TabProps): null => null;\n\nTab.displayName = \"Tab\";\n\nexport default Tab;\n"],"names":["useState","jsxs","Box","jsx","MuiTabs","MuiTab","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAO,MAAM,kBAAiG;AAAA,EAC5G,YAAY,EAAE,SAAS,QAAQ,eAAe,SAAA;AAAA,EAC9C,UAAU,EAAE,SAAS,QAAQ,eAAe,MAAA;AAC9C;ACqBO,MAAM,OAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA,2BAA2B;AAAA,EAC3B;AACF,MAAM;;AACJ,QAAM,cAAa,cAAS,CAAC,MAAV,mBAAa,MAAM;AACtC,QAAM,CAAC,cAAc,eAAe,IAAIA,MAAAA;AAAAA,KACtC,2CAAgB,eAAhB,YAA8B;AAAA,EAAA;AAGhC,QAAM,eAAe,CAAC,OAA6B,aAAqB;AACtE,oBAAgB,QAAQ;AACxB;AACA,mDAAgB;AAAA,EAClB;AAEA,SACEC,2BAAAA,KAACC,SAAAA,KAAA,EAAI,IAAI,EAAE,SAAS,gBAAgB,WAAW,EAAE,SAAS,eAAe,gBAAgB,WAAW,EAAE,iBACpG,UAAA;AAAA,IAAAC,2BAAAA;AAAAA,MAACC,SAAAA;AAAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,IAAI,mBAAK;AAAA,QACT;AAAA,QAIC,UAAA,SAAS,IAAI,CAAC,OAAO,QAAQ;AAC5B,gBAAM,EAAE,OAAO,MAAM,QAAQ,KAAK,UAAU,SAAS,cAAc,WAAW,cAAc,IAAI,MAAA,IAAU,MAAM;AAChH,iBACED,2BAAAA;AAAAA,YAACE,SAAAA;AAAAA,YAAA;AAAA,cAEC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,WAAW;AAAA,cACX,IAAI;AAAA,YAAA;AAAA,YARC;AAAA,UAAA;AAAA,QAWX,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,IAGHF,2BAAAA,IAACD,SAAAA,KAAA,EAAI,GAAG,GAAG,MAAK,YAAW,IAAI,EAAC,OAAM,UACnC,UAAA,SAAS,IAAI,CAAC,OAAO,QAAQ;;AAC5B,YAAM,SAAQI,MAAA,MAAM,MAAM,UAAZ,OAAAA,MAAqB;AACnC,aAAO,UAAU,eACfH,2BAAAA,IAACD,SAAAA,KAAA,EAAiB,gBAAM,MAAM,YAApB,KAA6B,IACrC;AAAA,IACN,CAAC,EAAA,CACH;AAAA,EAAA,GACF;AAGJ;AClFO,MAAM,MAAM,CAAC,MAAsB;AAE1C,IAAI,cAAc;;;"}
1
+ {"version":3,"file":"Tabs.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,19 +1,24 @@
1
- import { default as React, ReactElement } from 'react';
1
+ import { FC, ReactNode } from 'react';
2
2
  import { TabsProps as MuiTabsProps } from '@mui/material';
3
- import { TabProps } from './Tab';
4
- type PickTabsProps = Pick<MuiTabsProps, "centered" | "indicatorColor" | "orientation" | "scrollButtons" | "variant" | "className" | "sx" | "visibleScrollbar" | 'indicatorColor' | 'allowScrollButtonsMobile'>;
5
- interface MyTabsProps extends PickTabsProps {
6
- children: ReactElement<TabProps>[];
7
- defaultValue?: number;
8
- onChange?: () => void;
9
- centered?: boolean;
10
- orientation?: "horizontal" | "vertical";
11
- scrollButtons?: "auto" | false | true;
12
- variant?: "standard" | "scrollable" | "fullWidth";
13
- indicatorColor?: "primary" | "secondary";
14
- labelColor?: "primary" | "secondary" | "inherit";
15
- onChangeValue?: (newValue: number) => void;
16
- allowScrollButtonsMobile?: boolean;
3
+ type PickTabsProps = Pick<MuiTabsProps, 'centered' | 'indicatorColor' | 'orientation' | 'scrollButtons' | 'variant' | 'className' | 'sx' | 'visibleScrollbar' | 'allowScrollButtonsMobile'>;
4
+ export interface TabsProps extends PickTabsProps {
5
+ /** Uno o varios `<Tab>`. Children que no sean `<Tab>` se ignoran. */
6
+ children: ReactNode;
7
+ /** Valor del tab inicialmente activo. Si no se provee, toma el `value` del primer `<Tab>` o `0`. */
8
+ defaultValue?: number | string;
9
+ /** Callback al cambiar de tab. Recibe el `value` del tab nuevo. */
10
+ onChangeValue?: (newValue: number | string) => void;
11
+ labelColor?: 'primary' | 'secondary' | 'inherit';
12
+ /**
13
+ * Cómo se manejan los paneles al cambiar de tab:
14
+ * - `false` (default): **unmount** — solo se renderiza el panel activo; los
15
+ * demás se desmontan. El state interno de los hijos se pierde al navegar.
16
+ * Menor uso de memoria.
17
+ * - `true`: **keep mounted** — renderiza todos los paneles pero oculta los
18
+ * no activos con `display: none`. El state se preserva (inputs, scroll,
19
+ * timers, subscripciones) al navegar entre tabs.
20
+ */
21
+ keepMounted?: boolean;
17
22
  }
18
- export declare const Tabs: React.FC<MyTabsProps>;
23
+ export declare const Tabs: FC<TabsProps>;
19
24
  export default Tabs;
@@ -1,96 +1,7 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
- var __hasOwnProp = Object.prototype.hasOwnProperty;
4
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
- var __spreadValues = (a, b) => {
7
- for (var prop in b || (b = {}))
8
- if (__hasOwnProp.call(b, prop))
9
- __defNormalProp(a, prop, b[prop]);
10
- if (__getOwnPropSymbols)
11
- for (var prop of __getOwnPropSymbols(b)) {
12
- if (__propIsEnum.call(b, prop))
13
- __defNormalProp(a, prop, b[prop]);
14
- }
15
- return a;
16
- };
17
- import { jsxs, jsx } from "react/jsx-runtime";
18
- import { useState } from "react";
19
- import { Box, Tabs as Tabs$1, Tab as Tab$1 } from "@mui/material";
20
- const TAB_DISPLAY_MAP = {
21
- horizontal: { display: "flex", flexDirection: "column" },
22
- vertical: { display: "flex", flexDirection: "row" }
23
- };
24
- const Tabs = ({
25
- children,
26
- defaultValue,
27
- onChange,
28
- centered = true,
29
- orientation = "horizontal",
30
- scrollButtons = "auto",
31
- variant = "standard",
32
- indicatorColor = "primary",
33
- labelColor = "primary",
34
- className,
35
- onChangeValue,
36
- allowScrollButtonsMobile = true,
37
- sx
38
- }) => {
39
- var _a, _b;
40
- const firstValue = (_a = children[0]) == null ? void 0 : _a.props.value;
41
- const [currentValue, setCurrentValue] = useState(
42
- (_b = defaultValue != null ? defaultValue : firstValue) != null ? _b : 0
43
- );
44
- const handleChange = (event, newValue) => {
45
- setCurrentValue(newValue);
46
- onChange == null ? void 0 : onChange();
47
- onChangeValue == null ? void 0 : onChangeValue(newValue);
48
- };
49
- return /* @__PURE__ */ jsxs(Box, { sx: { display: TAB_DISPLAY_MAP[orientation].display, flexDirection: TAB_DISPLAY_MAP[orientation].flexDirection }, children: [
50
- /* @__PURE__ */ jsx(
51
- Tabs$1,
52
- {
53
- value: currentValue,
54
- onChange: handleChange,
55
- centered,
56
- indicatorColor,
57
- orientation,
58
- scrollButtons,
59
- variant,
60
- className,
61
- textColor: labelColor,
62
- sx: __spreadValues({}, sx),
63
- allowScrollButtonsMobile,
64
- children: children.map((child, idx) => {
65
- const { label, icon, value = idx, disabled, wrapped, iconPosition, className: tabClassName, sx: tabSx } = child.props;
66
- return /* @__PURE__ */ jsx(
67
- Tab$1,
68
- {
69
- label,
70
- icon,
71
- value,
72
- disabled,
73
- wrapped,
74
- iconPosition,
75
- className: tabClassName,
76
- sx: tabSx
77
- },
78
- value
79
- );
80
- })
81
- }
82
- ),
83
- /* @__PURE__ */ jsx(Box, { m: 2, role: "tabpanel", sx: { width: "100%" }, children: children.map((child, idx) => {
84
- var _a2;
85
- const value = (_a2 = child.props.value) != null ? _a2 : idx;
86
- return value === currentValue ? /* @__PURE__ */ jsx(Box, { children: child.props.children }, value) : null;
87
- }) })
88
- ] });
89
- };
90
- const Tab = (_) => null;
91
- Tab.displayName = "Tab";
1
+ import { a, T, T as T2 } from "../../Tab-BxSxKJsP.js";
92
2
  export {
93
- Tab,
94
- Tabs
3
+ a as Tab,
4
+ T as Tabs,
5
+ T2 as default
95
6
  };
96
7
  //# sourceMappingURL=Tabs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sources":["../../../src/components/Tabs/_tabUtils.tsx","../../../src/components/Tabs/Tabs.tsx","../../../src/components/Tabs/Tab.tsx"],"sourcesContent":["export const TAB_DISPLAY_MAP: Record<\"horizontal\" | \"vertical\", { display: string, flexDirection: string }> = {\n horizontal: { display: \"flex\", flexDirection: \"column\" },\n vertical: { display: \"flex\", flexDirection: \"row\" }\n};","import React, { useState, ReactElement } from \"react\";\nimport { Tabs as MuiTabs, Tab as MuiTab, Box, TabsProps as MuiTabsProps } from \"@mui/material\";\nimport { TabProps } from \"./Tab\";\nimport { TAB_DISPLAY_MAP } from \"./_tabUtils\";\n\ntype PickTabsProps = Pick<\n MuiTabsProps,\n \"centered\" | \"indicatorColor\" | \"orientation\" | \"scrollButtons\" | \"variant\" | \"className\" | \"sx\" | \"visibleScrollbar\" | 'indicatorColor'| 'allowScrollButtonsMobile'\n>;\n\ninterface MyTabsProps extends PickTabsProps {\n children: ReactElement<TabProps>[];\n defaultValue?: number;\n onChange?: () => void;\n centered?: boolean;\n orientation?: \"horizontal\" | \"vertical\";\n scrollButtons?: \"auto\" | false | true;\n variant?: \"standard\" | \"scrollable\" | \"fullWidth\";\n indicatorColor?: \"primary\" | \"secondary\";\n labelColor?: \"primary\" | \"secondary\" | \"inherit\";\n onChangeValue?: (newValue: number) => void;\n allowScrollButtonsMobile?: boolean;\n}\n\nexport const Tabs: React.FC<MyTabsProps> = ({\n children,\n defaultValue,\n onChange,\n centered = true,\n orientation = 'horizontal',\n scrollButtons = \"auto\",\n variant = \"standard\",\n indicatorColor = \"primary\",\n labelColor = \"primary\",\n className,\n onChangeValue,\n allowScrollButtonsMobile = true,\n sx,\n}) => {\n const firstValue = children[0]?.props.value;\n const [currentValue, setCurrentValue] = useState<string | number>(\n defaultValue ?? firstValue ?? 0\n );\n\n const handleChange = (event: React.SyntheticEvent, newValue: number) => {\n setCurrentValue(newValue);\n onChange?.();\n onChangeValue?.(newValue);\n };\n\n return (\n <Box sx={{ display: TAB_DISPLAY_MAP[orientation].display, flexDirection: TAB_DISPLAY_MAP[orientation].flexDirection}}>\n <MuiTabs\n value={currentValue}\n onChange={handleChange}\n centered={centered}\n indicatorColor={indicatorColor}\n orientation={orientation}\n scrollButtons={scrollButtons}\n variant={variant}\n className={className}\n textColor={labelColor}\n sx={{ ...sx }}\n allowScrollButtonsMobile={allowScrollButtonsMobile}\n \n\n >\n {children.map((child, idx) => {\n const { label, icon, value = idx, disabled, wrapped, iconPosition, className: tabClassName, sx: tabSx } = child.props;\n return (\n <MuiTab\n key={value}\n label={label}\n icon={icon}\n value={value}\n disabled={disabled}\n wrapped={wrapped}\n iconPosition={iconPosition}\n className={tabClassName}\n sx={tabSx}\n />\n );\n })}\n </MuiTabs>\n\n <Box m={2} role=\"tabpanel\" sx={{width:'100%'}} >\n {children.map((child, idx) => {\n const value = child.props.value ?? idx;\n return value === currentValue ? (\n <Box key={value}>{child.props.children}</Box>\n ) : null;\n })}\n </Box>\n </Box>\n\n );\n};\n\nexport default Tabs;\n","import React from \"react\";\nimport { TabProps as MuiTabProps } from \"@mui/material\";\n\ntype PickMuiTabProps = Pick<\n MuiTabProps,\n \"label\" | \"icon\" | \"disabled\" | \"sx\" | \"value\" | \"wrapped\" | \"iconPosition\" | \"className\" | \"disabled\"| 'disableRipple'\n>;\n\nexport interface TabProps extends PickMuiTabProps {\n value?: number;\n onChange?: () => void;\n children?: React.ReactNode;\n}\n\nexport const Tab = (_: TabProps): null => null;\n\nTab.displayName = \"Tab\";\n\nexport default Tab;\n"],"names":["MuiTabs","MuiTab","_a"],"mappings":";;;;;;;;;;;;;;;;;;;AAAO,MAAM,kBAAiG;AAAA,EAC5G,YAAY,EAAE,SAAS,QAAQ,eAAe,SAAA;AAAA,EAC9C,UAAU,EAAE,SAAS,QAAQ,eAAe,MAAA;AAC9C;ACqBO,MAAM,OAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA,2BAA2B;AAAA,EAC3B;AACF,MAAM;;AACJ,QAAM,cAAa,cAAS,CAAC,MAAV,mBAAa,MAAM;AACtC,QAAM,CAAC,cAAc,eAAe,IAAI;AAAA,KACtC,2CAAgB,eAAhB,YAA8B;AAAA,EAAA;AAGhC,QAAM,eAAe,CAAC,OAA6B,aAAqB;AACtE,oBAAgB,QAAQ;AACxB;AACA,mDAAgB;AAAA,EAClB;AAEA,SACE,qBAAC,KAAA,EAAI,IAAI,EAAE,SAAS,gBAAgB,WAAW,EAAE,SAAS,eAAe,gBAAgB,WAAW,EAAE,iBACpG,UAAA;AAAA,IAAA;AAAA,MAACA;AAAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,IAAI,mBAAK;AAAA,QACT;AAAA,QAIC,UAAA,SAAS,IAAI,CAAC,OAAO,QAAQ;AAC5B,gBAAM,EAAE,OAAO,MAAM,QAAQ,KAAK,UAAU,SAAS,cAAc,WAAW,cAAc,IAAI,MAAA,IAAU,MAAM;AAChH,iBACE;AAAA,YAACC;AAAAA,YAAA;AAAA,cAEC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,WAAW;AAAA,cACX,IAAI;AAAA,YAAA;AAAA,YARC;AAAA,UAAA;AAAA,QAWX,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,IAGH,oBAAC,KAAA,EAAI,GAAG,GAAG,MAAK,YAAW,IAAI,EAAC,OAAM,UACnC,UAAA,SAAS,IAAI,CAAC,OAAO,QAAQ;;AAC5B,YAAM,SAAQC,MAAA,MAAM,MAAM,UAAZ,OAAAA,MAAqB;AACnC,aAAO,UAAU,eACf,oBAAC,KAAA,EAAiB,gBAAM,MAAM,YAApB,KAA6B,IACrC;AAAA,IACN,CAAC,EAAA,CACH;AAAA,EAAA,GACF;AAGJ;AClFO,MAAM,MAAM,CAAC,MAAsB;AAE1C,IAAI,cAAc;"}
1
+ {"version":3,"file":"Tabs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,2 +1,4 @@
1
- export { default as Tabs } from './Tabs';
2
- export { default as Tab } from './Tab';
1
+ export { Tabs, default } from './Tabs';
2
+ export type { TabsProps } from './Tabs';
3
+ export { Tab } from './Tab';
4
+ export type { TabProps } from './Tab';
@@ -1,2 +1,6 @@
1
1
  export * from './Tabs/index'
2
2
  export {}
3
+ import _default from './Tabs/index'
4
+ export default _default
5
+ export * from './Tabs/index'
6
+ export {}
@@ -15,7 +15,7 @@ var __spreadValues = (a, b) => {
15
15
  }
16
16
  return a;
17
17
  };
18
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
18
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
19
19
  const jsxRuntime = require("react/jsx-runtime");
20
20
  const React = require("react");
21
21
  const MuiTimeline = require("@mui/lab/Timeline");
@@ -59,7 +59,7 @@ const Timeline = ({ children, position = "right", sx }) => {
59
59
  (child, idx) => {
60
60
  var _a;
61
61
  return React__namespace.isValidElement(child) ? React__namespace.cloneElement(child, {
62
- connectorColor: idx < count - 1 ? (_a = child.props.connectorColor) != null ? _a : "gray.main" : void 0
62
+ connectorColor: idx < count - 1 ? (_a = child.props.connectorColor) != null ? _a : "grey" : void 0
63
63
  }) : null;
64
64
  }
65
65
  )
@@ -82,4 +82,5 @@ const TimelineItem = ({
82
82
  };
83
83
  exports.Timeline = Timeline;
84
84
  exports.TimelineItem = TimelineItem;
85
+ exports.default = Timeline;
85
86
  //# sourceMappingURL=Timeline.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Timeline.cjs","sources":["../../../src/components/Timeline/Timeline.tsx","../../../src/components/Timeline/TimelineItem.tsx"],"sourcesContent":["import * as React from \"react\";\nimport MuiTimeline from \"@mui/lab/Timeline\";\nimport { timelineContentClasses } from \"@mui/lab/TimelineContent\";\nimport { timelineItemClasses, TimelineItemProps as MuiTimelineItemProps } from \"@mui/lab/TimelineItem\";\nimport { Box } from \"@mui/material\";\n\ninterface TimelineItemProps extends MuiTimelineItemProps {\n connectorColor?: string;\n sx?: object;\n}\n\ninterface TimelineProps {\n children: React.ReactElement<TimelineItemProps>[];\n position?: \"left\" | \"right\" | 'alternate' | 'alternate-reverse' ;\n sx?: object;\n}\n\nexport const Timeline: React.FC<TimelineProps> = ({ children, position = \"right\", sx }) => {\n const count = React.Children.count(children);\n\n const customSx = (position === \"left\" || position === \"right\")\n ? {\n [`& .${timelineItemClasses.root}:before`]: {\n flex: 0,\n padding: 0,\n },\n ...sx,\n }\n : sx;\n \n return (\n <MuiTimeline position={position}\n sx={{...customSx}}\n >\n {React.Children.map(children, (child, idx) =>\n React.isValidElement(child)\n ? React.cloneElement(child, {\n connectorColor: idx < count - 1\n ? child.props.connectorColor ?? 'gray.main'\n : undefined,\n })\n : null\n )}\n </MuiTimeline>\n\n );\n};\n\nexport default Timeline;","\nimport MuiTimelineItem from \"@mui/lab/TimelineItem\";\nimport MuiTimelineSeparator from \"@mui/lab/TimelineSeparator\";\nimport MuiTimelineConnector from \"@mui/lab/TimelineConnector\";\nimport MuiTimelineContent from \"@mui/lab/TimelineContent\";\nimport MuiTimelineDot from \"@mui/lab/TimelineDot\";\n\nexport interface TimelineItemProps {\n dotColor?: 'primary' | 'secondary' | 'grey' | 'inherit' | 'success' | 'error' | 'info' | 'warning';\n connectorColor?: 'success' | 'error' | 'info' | 'warning' | 'primary' | 'secondary' | 'grey';\n children: React.ReactNode;\n}\n\nexport const TimelineItem: React.FC<TimelineItemProps> = ({\n dotColor = 'grey',\n connectorColor,\n children\n}) => {\n const color = connectorColor ? `${connectorColor}.main` : 'secondary.main';\n return (\n <MuiTimelineItem>\n <MuiTimelineSeparator>\n <MuiTimelineDot color={dotColor} />\n {connectorColor !== undefined && <MuiTimelineConnector sx={{ bgcolor: color }} />}\n </MuiTimelineSeparator>\n <MuiTimelineContent>{children}</MuiTimelineContent>\n </MuiTimelineItem>\n );\n};\n\nexport default TimelineItem"],"names":["React","timelineItemClasses","jsx","jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBO,MAAM,WAAoC,CAAC,EAAE,UAAU,WAAW,SAAS,SAAS;AACzF,QAAM,QAAQA,iBAAM,SAAS,MAAM,QAAQ;AAEzC,QAAM,WAAY,aAAa,UAAU,aAAa,UACpD;AAAA,IACE,CAAC,MAAMC,gBAAAA,oBAAoB,IAAI,SAAS,GAAG;AAAA,MACzC,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,KAER,MAEL;AAEJ,SACEC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MAAY;AAAA,MACX,IAAI,mBAAI;AAAA,MAEP,2BAAM,SAAS;AAAA,QAAI;AAAA,QAAU,CAAC,OAAO,QAAA;;AACpCF,kCAAM,eAAe,KAAK,IACtBA,iBAAM,aAAa,OAAO;AAAA,YAC1B,gBAAgB,MAAM,QAAQ,KAC1B,WAAM,MAAM,mBAAZ,YAA8B,cAC9B;AAAA,UAAA,CACL,IACC;AAAA;AAAA,MAAA;AAAA,IACN;AAAA,EAAA;AAIN;ACjCO,MAAM,eAA4C,CAAC;AAAA,EACxD,WAAW;AAAA,EACX;AAAA,EACA;AACF,MAAM;AACJ,QAAM,QAAQ,iBAAiB,GAAG,cAAc,UAAU;AAC1D,yCACG,iBAAA,EACC,UAAA;AAAA,IAAAG,gCAAC,sBAAA,EACC,UAAA;AAAA,MAAAD,2BAAAA,IAAC,gBAAA,EAAe,OAAO,SAAA,CAAU;AAAA,MAChC,mBAAmB,UAAaA,2BAAAA,IAAC,sBAAA,EAAqB,IAAI,EAAE,SAAS,QAAM,CAAG;AAAA,IAAA,GACjF;AAAA,IACAA,+BAAC,sBAAoB,SAAA,CAAS;AAAA,EAAA,GAChC;AAEJ;;;"}
1
+ {"version":3,"file":"Timeline.cjs","sources":["../../../src/components/Timeline/Timeline.tsx","../../../src/components/Timeline/TimelineItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport MuiTimeline from '@mui/lab/Timeline';\nimport { timelineItemClasses } from '@mui/lab/TimelineItem';\n\nimport type { TimelineItemProps } from './TimelineItem';\n\nexport interface TimelineProps {\n children: React.ReactElement<TimelineItemProps>[];\n position?: 'left' | 'right' | 'alternate' | 'alternate-reverse';\n sx?: object;\n}\n\nexport const Timeline: React.FC<TimelineProps> = ({ children, position = \"right\", sx }) => {\n const count = React.Children.count(children);\n\n const customSx = (position === \"left\" || position === \"right\")\n ? {\n [`& .${timelineItemClasses.root}:before`]: {\n flex: 0,\n padding: 0,\n },\n ...sx,\n }\n : sx;\n \n return (\n <MuiTimeline position={position}\n sx={{...customSx}}\n >\n {React.Children.map(children, (child, idx) =>\n React.isValidElement(child)\n ? React.cloneElement(child, {\n connectorColor: idx < count - 1\n ? child.props.connectorColor ?? 'grey'\n : undefined,\n })\n : null\n )}\n </MuiTimeline>\n\n );\n};\n\nexport default Timeline;","\nimport MuiTimelineItem from \"@mui/lab/TimelineItem\";\nimport MuiTimelineSeparator from \"@mui/lab/TimelineSeparator\";\nimport MuiTimelineConnector from \"@mui/lab/TimelineConnector\";\nimport MuiTimelineContent from \"@mui/lab/TimelineContent\";\nimport MuiTimelineDot from \"@mui/lab/TimelineDot\";\n\nexport interface TimelineItemProps {\n dotColor?: 'primary' | 'secondary' | 'grey' | 'inherit' | 'success' | 'error' | 'info' | 'warning';\n connectorColor?: 'success' | 'error' | 'info' | 'warning' | 'primary' | 'secondary' | 'grey';\n children: React.ReactNode;\n}\n\nexport const TimelineItem: React.FC<TimelineItemProps> = ({\n dotColor = 'grey',\n connectorColor,\n children\n}) => {\n const color = connectorColor ? `${connectorColor}.main` : 'secondary.main';\n return (\n <MuiTimelineItem>\n <MuiTimelineSeparator>\n <MuiTimelineDot color={dotColor} />\n {connectorColor !== undefined && <MuiTimelineConnector sx={{ bgcolor: color }} />}\n </MuiTimelineSeparator>\n <MuiTimelineContent>{children}</MuiTimelineContent>\n </MuiTimelineItem>\n );\n};\n\nexport default TimelineItem"],"names":["React","timelineItemClasses","jsx","jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,WAAoC,CAAC,EAAE,UAAU,WAAW,SAAS,SAAS;AACzF,QAAM,QAAQA,iBAAM,SAAS,MAAM,QAAQ;AAEzC,QAAM,WAAY,aAAa,UAAU,aAAa,UACpD;AAAA,IACE,CAAC,MAAMC,gBAAAA,oBAAoB,IAAI,SAAS,GAAG;AAAA,MACzC,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,KAER,MAEL;AAEJ,SACEC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MAAY;AAAA,MACX,IAAI,mBAAI;AAAA,MAEP,2BAAM,SAAS;AAAA,QAAI;AAAA,QAAU,CAAC,OAAO,QAAA;;AACpCF,kCAAM,eAAe,KAAK,IACtBA,iBAAM,aAAa,OAAO;AAAA,YAC1B,gBAAgB,MAAM,QAAQ,KAC1B,WAAM,MAAM,mBAAZ,YAA8B,SAC9B;AAAA,UAAA,CACL,IACC;AAAA;AAAA,MAAA;AAAA,IACN;AAAA,EAAA;AAIN;AC5BO,MAAM,eAA4C,CAAC;AAAA,EACxD,WAAW;AAAA,EACX;AAAA,EACA;AACF,MAAM;AACJ,QAAM,QAAQ,iBAAiB,GAAG,cAAc,UAAU;AAC1D,yCACG,iBAAA,EACC,UAAA;AAAA,IAAAG,gCAAC,sBAAA,EACC,UAAA;AAAA,MAAAD,2BAAAA,IAAC,gBAAA,EAAe,OAAO,SAAA,CAAU;AAAA,MAChC,mBAAmB,UAAaA,2BAAAA,IAAC,sBAAA,EAAqB,IAAI,EAAE,SAAS,QAAM,CAAG;AAAA,IAAA,GACjF;AAAA,IACAA,+BAAC,sBAAoB,SAAA,CAAS;AAAA,EAAA,GAChC;AAEJ;;;;"}
@@ -1,12 +1,8 @@
1
- import { TimelineItemProps as MuiTimelineItemProps } from '@mui/lab/TimelineItem';
2
- import * as React from "react";
3
- interface TimelineItemProps extends MuiTimelineItemProps {
4
- connectorColor?: string;
5
- sx?: object;
6
- }
7
- interface TimelineProps {
1
+ import { TimelineItemProps } from './TimelineItem';
2
+ import * as React from 'react';
3
+ export interface TimelineProps {
8
4
  children: React.ReactElement<TimelineItemProps>[];
9
- position?: "left" | "right" | 'alternate' | 'alternate-reverse';
5
+ position?: 'left' | 'right' | 'alternate' | 'alternate-reverse';
10
6
  sx?: object;
11
7
  }
12
8
  export declare const Timeline: React.FC<TimelineProps>;
@@ -40,7 +40,7 @@ const Timeline = ({ children, position = "right", sx }) => {
40
40
  (child, idx) => {
41
41
  var _a;
42
42
  return React.isValidElement(child) ? React.cloneElement(child, {
43
- connectorColor: idx < count - 1 ? (_a = child.props.connectorColor) != null ? _a : "gray.main" : void 0
43
+ connectorColor: idx < count - 1 ? (_a = child.props.connectorColor) != null ? _a : "grey" : void 0
44
44
  }) : null;
45
45
  }
46
46
  )
@@ -63,6 +63,7 @@ const TimelineItem = ({
63
63
  };
64
64
  export {
65
65
  Timeline,
66
- TimelineItem
66
+ TimelineItem,
67
+ Timeline as default
67
68
  };
68
69
  //# sourceMappingURL=Timeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Timeline.js","sources":["../../../src/components/Timeline/Timeline.tsx","../../../src/components/Timeline/TimelineItem.tsx"],"sourcesContent":["import * as React from \"react\";\nimport MuiTimeline from \"@mui/lab/Timeline\";\nimport { timelineContentClasses } from \"@mui/lab/TimelineContent\";\nimport { timelineItemClasses, TimelineItemProps as MuiTimelineItemProps } from \"@mui/lab/TimelineItem\";\nimport { Box } from \"@mui/material\";\n\ninterface TimelineItemProps extends MuiTimelineItemProps {\n connectorColor?: string;\n sx?: object;\n}\n\ninterface TimelineProps {\n children: React.ReactElement<TimelineItemProps>[];\n position?: \"left\" | \"right\" | 'alternate' | 'alternate-reverse' ;\n sx?: object;\n}\n\nexport const Timeline: React.FC<TimelineProps> = ({ children, position = \"right\", sx }) => {\n const count = React.Children.count(children);\n\n const customSx = (position === \"left\" || position === \"right\")\n ? {\n [`& .${timelineItemClasses.root}:before`]: {\n flex: 0,\n padding: 0,\n },\n ...sx,\n }\n : sx;\n \n return (\n <MuiTimeline position={position}\n sx={{...customSx}}\n >\n {React.Children.map(children, (child, idx) =>\n React.isValidElement(child)\n ? React.cloneElement(child, {\n connectorColor: idx < count - 1\n ? child.props.connectorColor ?? 'gray.main'\n : undefined,\n })\n : null\n )}\n </MuiTimeline>\n\n );\n};\n\nexport default Timeline;","\nimport MuiTimelineItem from \"@mui/lab/TimelineItem\";\nimport MuiTimelineSeparator from \"@mui/lab/TimelineSeparator\";\nimport MuiTimelineConnector from \"@mui/lab/TimelineConnector\";\nimport MuiTimelineContent from \"@mui/lab/TimelineContent\";\nimport MuiTimelineDot from \"@mui/lab/TimelineDot\";\n\nexport interface TimelineItemProps {\n dotColor?: 'primary' | 'secondary' | 'grey' | 'inherit' | 'success' | 'error' | 'info' | 'warning';\n connectorColor?: 'success' | 'error' | 'info' | 'warning' | 'primary' | 'secondary' | 'grey';\n children: React.ReactNode;\n}\n\nexport const TimelineItem: React.FC<TimelineItemProps> = ({\n dotColor = 'grey',\n connectorColor,\n children\n}) => {\n const color = connectorColor ? `${connectorColor}.main` : 'secondary.main';\n return (\n <MuiTimelineItem>\n <MuiTimelineSeparator>\n <MuiTimelineDot color={dotColor} />\n {connectorColor !== undefined && <MuiTimelineConnector sx={{ bgcolor: color }} />}\n </MuiTimelineSeparator>\n <MuiTimelineContent>{children}</MuiTimelineContent>\n </MuiTimelineItem>\n );\n};\n\nexport default TimelineItem"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAiBO,MAAM,WAAoC,CAAC,EAAE,UAAU,WAAW,SAAS,SAAS;AACzF,QAAM,QAAQ,MAAM,SAAS,MAAM,QAAQ;AAEzC,QAAM,WAAY,aAAa,UAAU,aAAa,UACpD;AAAA,IACE,CAAC,MAAM,oBAAoB,IAAI,SAAS,GAAG;AAAA,MACzC,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,KAER,MAEL;AAEJ,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MAAY;AAAA,MACX,IAAI,mBAAI;AAAA,MAEP,gBAAM,SAAS;AAAA,QAAI;AAAA,QAAU,CAAC,OAAO,QAAA;;AACpC,uBAAM,eAAe,KAAK,IACtB,MAAM,aAAa,OAAO;AAAA,YAC1B,gBAAgB,MAAM,QAAQ,KAC1B,WAAM,MAAM,mBAAZ,YAA8B,cAC9B;AAAA,UAAA,CACL,IACC;AAAA;AAAA,MAAA;AAAA,IACN;AAAA,EAAA;AAIN;ACjCO,MAAM,eAA4C,CAAC;AAAA,EACxD,WAAW;AAAA,EACX;AAAA,EACA;AACF,MAAM;AACJ,QAAM,QAAQ,iBAAiB,GAAG,cAAc,UAAU;AAC1D,8BACG,iBAAA,EACC,UAAA;AAAA,IAAA,qBAAC,sBAAA,EACC,UAAA;AAAA,MAAA,oBAAC,gBAAA,EAAe,OAAO,SAAA,CAAU;AAAA,MAChC,mBAAmB,UAAa,oBAAC,sBAAA,EAAqB,IAAI,EAAE,SAAS,QAAM,CAAG;AAAA,IAAA,GACjF;AAAA,IACA,oBAAC,sBAAoB,SAAA,CAAS;AAAA,EAAA,GAChC;AAEJ;"}
1
+ {"version":3,"file":"Timeline.js","sources":["../../../src/components/Timeline/Timeline.tsx","../../../src/components/Timeline/TimelineItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport MuiTimeline from '@mui/lab/Timeline';\nimport { timelineItemClasses } from '@mui/lab/TimelineItem';\n\nimport type { TimelineItemProps } from './TimelineItem';\n\nexport interface TimelineProps {\n children: React.ReactElement<TimelineItemProps>[];\n position?: 'left' | 'right' | 'alternate' | 'alternate-reverse';\n sx?: object;\n}\n\nexport const Timeline: React.FC<TimelineProps> = ({ children, position = \"right\", sx }) => {\n const count = React.Children.count(children);\n\n const customSx = (position === \"left\" || position === \"right\")\n ? {\n [`& .${timelineItemClasses.root}:before`]: {\n flex: 0,\n padding: 0,\n },\n ...sx,\n }\n : sx;\n \n return (\n <MuiTimeline position={position}\n sx={{...customSx}}\n >\n {React.Children.map(children, (child, idx) =>\n React.isValidElement(child)\n ? React.cloneElement(child, {\n connectorColor: idx < count - 1\n ? child.props.connectorColor ?? 'grey'\n : undefined,\n })\n : null\n )}\n </MuiTimeline>\n\n );\n};\n\nexport default Timeline;","\nimport MuiTimelineItem from \"@mui/lab/TimelineItem\";\nimport MuiTimelineSeparator from \"@mui/lab/TimelineSeparator\";\nimport MuiTimelineConnector from \"@mui/lab/TimelineConnector\";\nimport MuiTimelineContent from \"@mui/lab/TimelineContent\";\nimport MuiTimelineDot from \"@mui/lab/TimelineDot\";\n\nexport interface TimelineItemProps {\n dotColor?: 'primary' | 'secondary' | 'grey' | 'inherit' | 'success' | 'error' | 'info' | 'warning';\n connectorColor?: 'success' | 'error' | 'info' | 'warning' | 'primary' | 'secondary' | 'grey';\n children: React.ReactNode;\n}\n\nexport const TimelineItem: React.FC<TimelineItemProps> = ({\n dotColor = 'grey',\n connectorColor,\n children\n}) => {\n const color = connectorColor ? `${connectorColor}.main` : 'secondary.main';\n return (\n <MuiTimelineItem>\n <MuiTimelineSeparator>\n <MuiTimelineDot color={dotColor} />\n {connectorColor !== undefined && <MuiTimelineConnector sx={{ bgcolor: color }} />}\n </MuiTimelineSeparator>\n <MuiTimelineContent>{children}</MuiTimelineContent>\n </MuiTimelineItem>\n );\n};\n\nexport default TimelineItem"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,WAAoC,CAAC,EAAE,UAAU,WAAW,SAAS,SAAS;AACzF,QAAM,QAAQ,MAAM,SAAS,MAAM,QAAQ;AAEzC,QAAM,WAAY,aAAa,UAAU,aAAa,UACpD;AAAA,IACE,CAAC,MAAM,oBAAoB,IAAI,SAAS,GAAG;AAAA,MACzC,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,KAER,MAEL;AAEJ,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MAAY;AAAA,MACX,IAAI,mBAAI;AAAA,MAEP,gBAAM,SAAS;AAAA,QAAI;AAAA,QAAU,CAAC,OAAO,QAAA;;AACpC,uBAAM,eAAe,KAAK,IACtB,MAAM,aAAa,OAAO;AAAA,YAC1B,gBAAgB,MAAM,QAAQ,KAC1B,WAAM,MAAM,mBAAZ,YAA8B,SAC9B;AAAA,UAAA,CACL,IACC;AAAA;AAAA,MAAA;AAAA,IACN;AAAA,EAAA;AAIN;AC5BO,MAAM,eAA4C,CAAC;AAAA,EACxD,WAAW;AAAA,EACX;AAAA,EACA;AACF,MAAM;AACJ,QAAM,QAAQ,iBAAiB,GAAG,cAAc,UAAU;AAC1D,8BACG,iBAAA,EACC,UAAA;AAAA,IAAA,qBAAC,sBAAA,EACC,UAAA;AAAA,MAAA,oBAAC,gBAAA,EAAe,OAAO,SAAA,CAAU;AAAA,MAChC,mBAAmB,UAAa,oBAAC,sBAAA,EAAqB,IAAI,EAAE,SAAS,QAAM,CAAG;AAAA,IAAA,GACjF;AAAA,IACA,oBAAC,sBAAoB,SAAA,CAAS;AAAA,EAAA,GAChC;AAEJ;"}
@@ -1,2 +1,4 @@
1
- export { default as Timeline } from './Timeline';
2
- export { default as TimelineItem } from './TimelineItem';
1
+ export { Timeline, default } from './Timeline';
2
+ export type { TimelineProps } from './Timeline';
3
+ export { TimelineItem } from './TimelineItem';
4
+ export type { TimelineItemProps } from './TimelineItem';
@@ -1,2 +1,6 @@
1
1
  export * from './Timeline/index'
2
2
  export {}
3
+ import _default from './Timeline/index'
4
+ export default _default
5
+ export * from './Timeline/index'
6
+ export {}
@@ -0,0 +1,7 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ /**
3
+ * Merge helper para props `sx` de MUI. Acepta formatos objeto o array y
4
+ * devuelve un array combinado. El `extra` se aplica después del `base` —
5
+ * el consumer puede pisar los defaults del componente.
6
+ */
7
+ export declare const mergeSx: (base: SxProps<Theme>, extra?: SxProps<Theme>) => SxProps<Theme>;
@@ -14,15 +14,7 @@ var __spreadValues = (a, b) => {
14
14
  }
15
15
  return a;
16
16
  };
17
- const LABEL_MARGIN_TOP = "14px";
18
- const FIELD_INPUT_PADDING_Y = "8.5px";
19
- const LABEL_SHRINK_TRANSFORM = "translate(4px, -22px) scale(0.85)";
20
- const LABEL_TRANSFORM_ORIGIN = "top left";
21
- const LABEL_TRANSITION = "color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms, transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms, max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms";
22
- const LABEL_COLOR_REST = "text.secondary";
23
- const LABEL_COLOR_FILLED = "text.primary";
24
- const LABEL_COLOR_FOCUSED = "primary.main";
25
- const LABEL_FONT_WEIGHT_FILLED = 500;
17
+ import { a as LABEL_COLOR_FOCUSED, b as LABEL_FONT_WEIGHT_FILLED, c as LABEL_COLOR_FILLED, d as LABEL_TRANSFORM_ORIGIN, e as LABEL_SHRINK_TRANSFORM, f as LABEL_TRANSITION, g as LABEL_COLOR_REST, L as LABEL_MARGIN_TOP } from "./tokens-BRrcP_p_.js";
26
18
  const toRadius = (borderRadius) => typeof borderRadius === "number" ? `${borderRadius}px` : borderRadius;
27
19
  const buildFormFieldSx = ({
28
20
  borderRadius,
@@ -71,7 +63,6 @@ const buildFormFieldSx = ({
71
63
  }, extraOutsideSx != null ? extraOutsideSx : {});
72
64
  };
73
65
  export {
74
- FIELD_INPUT_PADDING_Y as F,
75
66
  buildFormFieldSx as b
76
67
  };
77
- //# sourceMappingURL=formField.sx-DfVbMe0V.js.map
68
+ //# sourceMappingURL=formField.sx-8_QRnKxv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formField.sx-8_QRnKxv.js","sources":["../src/components/_shared/formField.sx.ts"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material/styles';\n\nimport {\n LABEL_COLOR_FILLED,\n LABEL_COLOR_FOCUSED,\n LABEL_COLOR_REST,\n LABEL_FONT_WEIGHT_FILLED,\n LABEL_MARGIN_TOP,\n LABEL_SHRINK_TRANSFORM,\n LABEL_TRANSFORM_ORIGIN,\n LABEL_TRANSITION,\n} from '../../theme/tokens';\n\nexport type LabelPosition = 'outside' | 'floating';\n\nexport interface BuildFormFieldSxOptions {\n borderRadius: number | string;\n labelPosition: LabelPosition;\n /**\n * Si es `true`, los selectores incluyen también la API nueva de MUI X\n * Pickers (v8): `MuiPickersInputBase-root`, `MuiPickersOutlinedInput-*`.\n */\n includePickersApi?: boolean;\n /**\n * Selectores/valores extra que se mergean SOLO cuando labelPosition === 'outside'.\n * Usar para paddings específicos del componente (p.ej. MuiAutocomplete-input).\n */\n extraOutsideSx?: Record<string, any>;\n /**\n * Selectores/valores extra que se mergean SOLO cuando labelPosition === 'floating'.\n */\n extraFloatingSx?: Record<string, any>;\n}\n\nconst toRadius = (borderRadius: number | string) =>\n typeof borderRadius === 'number' ? `${borderRadius}px` : borderRadius;\n\n/**\n * Builder del sx compartido por todos los campos de formulario\n * (Input/Select/Autocomplete/DatePicker/DateTimePicker).\n *\n * Produce:\n * - en modo \"floating\": sólo el border-radius del outlined input;\n * - en modo \"outside\": todo el pack (margen superior, label flotante afuera,\n * input base, notched outline oculto, helper text sin margen izquierdo).\n *\n * Componentes con paddings o selectores propios pueden inyectarlos vía\n * `extraOutsideSx` / `extraFloatingSx`.\n */\nexport const buildFormFieldSx = ({\n borderRadius,\n labelPosition,\n includePickersApi = false,\n extraOutsideSx,\n extraFloatingSx,\n}: BuildFormFieldSxOptions): SxProps<Theme> => {\n const radius = toRadius(borderRadius);\n\n // ── Selectores (alternan según la API de pickers) ────────────────────\n const outlinedRootSelector = includePickersApi\n ? '& .MuiOutlinedInput-root, & .MuiPickersOutlinedInput-root'\n : '& .MuiOutlinedInput-root';\n\n const inputBaseSelector = includePickersApi\n ? '& .MuiInputBase-root, & .MuiPickersInputBase-root'\n : '& .MuiInputBase-root';\n\n const notchedOutlineSelector = includePickersApi\n ? '& .MuiOutlinedInput-notchedOutline, & .MuiPickersOutlinedInput-notchedOutline'\n : '& .MuiOutlinedInput-notchedOutline';\n\n // ── Floating ─────────────────────────────────────────────────────────\n if (labelPosition === 'floating') {\n return {\n [outlinedRootSelector]: { borderRadius: radius },\n ...(extraFloatingSx ?? {}),\n };\n }\n\n // ── Outside ──────────────────────────────────────────────────────────\n return {\n marginTop: LABEL_MARGIN_TOP,\n\n '& .MuiInputLabel-root': {\n color: LABEL_COLOR_REST,\n transition: LABEL_TRANSITION,\n\n // Estado shrunk (focused o con valor): flota ARRIBA del input.\n '&.MuiInputLabel-shrink': {\n transform: LABEL_SHRINK_TRANSFORM,\n transformOrigin: LABEL_TRANSFORM_ORIGIN,\n color: LABEL_COLOR_FILLED,\n fontWeight: LABEL_FONT_WEIGHT_FILLED,\n },\n\n '&.Mui-focused': { color: LABEL_COLOR_FOCUSED },\n },\n\n // Input base — centra verticalmente (clásico y, si aplica, pickers).\n [inputBaseSelector]: {\n borderRadius: radius,\n display: 'flex',\n alignItems: 'center',\n },\n\n // El label flota afuera: ocultar legend del notch.\n [notchedOutlineSelector]: {\n top: 0,\n '& legend': { display: 'none' },\n },\n\n '& .MuiFormHelperText-root': {\n marginLeft: 0,\n },\n\n ...(extraOutsideSx ?? {}),\n };\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAkCA,MAAM,WAAW,CAAC,iBAChB,OAAO,iBAAiB,WAAW,GAAG,YAAY,OAAO;AAcpD,MAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB;AAAA,EACA;AACF,MAA+C;AAC7C,QAAM,SAAS,SAAS,YAAY;AAGpC,QAAM,uBAAuB,oBACzB,8DACA;AAEJ,QAAM,oBAAoB,oBACtB,sDACA;AAEJ,QAAM,yBAAyB,oBAC3B,kFACA;AAGJ,MAAI,kBAAkB,YAAY;AAChC,WAAO;AAAA,MACL,CAAC,oBAAoB,GAAG,EAAE,cAAc,OAAA;AAAA,OACpC,4CAAmB,CAAA;AAAA,EAE3B;AAGA,SAAO;AAAA,IACL,WAAW;AAAA,IAEX,yBAAyB;AAAA,MACvB,OAAO;AAAA,MACP,YAAY;AAAA;AAAA,MAGZ,0BAA0B;AAAA,QACxB,WAAW;AAAA,QACX,iBAAiB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,MAAA;AAAA,MAGd,iBAAiB,EAAE,OAAO,oBAAA;AAAA,IAAoB;AAAA;AAAA,IAIhD,CAAC,iBAAiB,GAAG;AAAA,MACnB,cAAc;AAAA,MACd,SAAS;AAAA,MACT,YAAY;AAAA,IAAA;AAAA;AAAA,IAId,CAAC,sBAAsB,GAAG;AAAA,MACxB,KAAK;AAAA,MACL,YAAY,EAAE,SAAS,OAAA;AAAA,IAAO;AAAA,IAGhC,6BAA6B;AAAA,MAC3B,YAAY;AAAA,IAAA;AAAA,KAGV,0CAAkB,CAAA;AAE1B;"}