@soyfri/shared-library 2.0.0-beta8 → 2.0.1

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 (315) hide show
  1. package/Button-C17mExpd.cjs.map +1 -1
  2. package/Button-UkkP-bNw.js.map +1 -1
  3. package/README.md +182 -150
  4. package/components/ActionMenu/ActionMenu.cjs +52 -52
  5. package/components/ActionMenu/ActionMenu.cjs.map +1 -1
  6. package/components/ActionMenu/ActionMenu.d.ts +20 -36
  7. package/components/ActionMenu/ActionMenu.js +55 -55
  8. package/components/ActionMenu/ActionMenu.js.map +1 -1
  9. package/components/ActionMenu/index.d.ts +2 -2
  10. package/components/AppBar/AppBar.cjs +3 -220
  11. package/components/AppBar/AppBar.cjs.map +1 -1
  12. package/components/AppBar/AppBar.d.ts +6 -6
  13. package/components/AppBar/AppBar.js +6 -223
  14. package/components/AppBar/AppBar.js.map +1 -1
  15. package/components/AppBar/index.d.ts +0 -6
  16. package/components/Autocomplete/Autocomplete.cjs +310 -4
  17. package/components/Autocomplete/Autocomplete.cjs.map +1 -1
  18. package/components/Autocomplete/Autocomplete.d.ts +29 -26
  19. package/components/Autocomplete/Autocomplete.definitions.d.ts +2 -1
  20. package/components/Autocomplete/Autocomplete.helpers.d.ts +12 -8
  21. package/components/Autocomplete/Autocomplete.js +310 -4
  22. package/components/Autocomplete/Autocomplete.js.map +1 -1
  23. package/components/Autocomplete/_parts/AutocompleteChips.d.ts +7 -6
  24. package/components/Autocomplete/_parts/AutocompleteOption.d.ts +10 -13
  25. package/components/Autocomplete/index.d.ts +1 -1
  26. package/components/Avatar/Avatar.cjs +159 -2
  27. package/components/Avatar/Avatar.cjs.map +1 -1
  28. package/components/Avatar/Avatar.js +159 -2
  29. package/components/Avatar/Avatar.js.map +1 -1
  30. package/components/Avatar/index.d.ts +1 -0
  31. package/components/Button/Button.d.ts +5 -5
  32. package/components/Button/index.d.ts +1 -0
  33. package/components/Card/Card.cjs +95 -7
  34. package/components/Card/Card.cjs.map +1 -1
  35. package/components/Card/Card.d.ts +3 -50
  36. package/components/Card/Card.js +95 -7
  37. package/components/Card/Card.js.map +1 -1
  38. package/components/Card/Card.sx.d.ts +3 -6
  39. package/components/Card/index.d.ts +1 -1
  40. package/{Switch-BIeobv6i.cjs → components/Checkbox/Checkbox.cjs} +30 -20
  41. package/components/Checkbox/Checkbox.cjs.map +1 -0
  42. package/components/Checkbox/Checkbox.d.ts +55 -0
  43. package/{Switch-DQEOxM2R.js → components/Checkbox/Checkbox.js} +29 -20
  44. package/components/Checkbox/Checkbox.js.map +1 -0
  45. package/components/Checkbox/Checkbox.sx.d.ts +13 -0
  46. package/components/Checkbox/index.d.ts +2 -0
  47. package/components/Checkbox.d.ts +6 -0
  48. package/components/Chip/Chip.cjs +73 -3
  49. package/components/Chip/Chip.cjs.map +1 -1
  50. package/components/Chip/Chip.js +72 -2
  51. package/components/Chip/Chip.js.map +1 -1
  52. package/components/Chip/index.d.ts +2 -1
  53. package/components/Chip.d.ts +4 -0
  54. package/components/Column/Column.cjs +1 -1
  55. package/components/Column/Column.cjs.map +1 -1
  56. package/components/Column/Column.d.ts +1 -1
  57. package/components/Column/Column.js +1 -1
  58. package/components/Column/Column.js.map +1 -1
  59. package/components/Column/index.d.ts +0 -1
  60. package/components/DatePicker/DatePicker.cjs +177 -3
  61. package/components/DatePicker/DatePicker.cjs.map +1 -1
  62. package/components/DatePicker/DatePicker.d.ts +1 -13
  63. package/components/DatePicker/DatePicker.js +177 -3
  64. package/components/DatePicker/DatePicker.js.map +1 -1
  65. package/components/DatePicker/index.d.ts +1 -1
  66. package/components/DateRangePicker/DateRangePicker.cjs +73 -2
  67. package/components/DateRangePicker/DateRangePicker.cjs.map +1 -1
  68. package/components/DateRangePicker/DateRangePicker.js +73 -2
  69. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  70. package/components/DateTimePicker/DateTimePicker.cjs +195 -3
  71. package/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
  72. package/components/DateTimePicker/DateTimePicker.d.ts +9 -17
  73. package/components/DateTimePicker/DateTimePicker.definitions.d.ts +2 -0
  74. package/components/DateTimePicker/DateTimePicker.helpers.d.ts +4 -2
  75. package/components/DateTimePicker/DateTimePicker.js +195 -3
  76. package/components/DateTimePicker/DateTimePicker.js.map +1 -1
  77. package/components/DateTimePicker/index.d.ts +1 -1
  78. package/components/Drawer/Drawer.cjs +13 -7
  79. package/components/Drawer/Drawer.cjs.map +1 -1
  80. package/components/Drawer/Drawer.d.ts +3 -1
  81. package/components/Drawer/Drawer.js +14 -8
  82. package/components/Drawer/Drawer.js.map +1 -1
  83. package/components/Drawer/DrawerItem.d.ts +6 -1
  84. package/components/Gallery/Gallery.cjs +154 -79
  85. package/components/Gallery/Gallery.cjs.map +1 -1
  86. package/components/Gallery/Gallery.d.ts +25 -9
  87. package/components/Gallery/Gallery.js +154 -79
  88. package/components/Gallery/Gallery.js.map +1 -1
  89. package/components/Gallery/GalleryLightbox.d.ts +6 -10
  90. package/components/Gallery/GalleryMain.d.ts +3 -7
  91. package/components/Gallery/GalleryThumbnails.d.ts +7 -11
  92. package/components/Gallery/index.d.ts +2 -1
  93. package/components/Gallery.d.ts +4 -0
  94. package/components/Icon/Icon.cjs +6 -8
  95. package/components/Icon/Icon.cjs.map +1 -1
  96. package/components/Icon/Icon.d.ts +11 -17
  97. package/components/Icon/Icon.js +6 -8
  98. package/components/Icon/Icon.js.map +1 -1
  99. package/components/Icon/index.d.ts +2 -1
  100. package/components/Icon.d.ts +4 -0
  101. package/components/Input/Input.cjs +185 -3
  102. package/components/Input/Input.cjs.map +1 -1
  103. package/components/Input/Input.d.ts +9 -2
  104. package/components/Input/Input.helpers.d.ts +3 -3
  105. package/components/Input/Input.js +185 -3
  106. package/components/Input/Input.js.map +1 -1
  107. package/components/Input/index.d.ts +1 -1
  108. package/components/InputGroup/InputGroup.cjs +23 -22
  109. package/components/InputGroup/InputGroup.cjs.map +1 -1
  110. package/components/InputGroup/InputGroup.d.ts +4 -4
  111. package/components/InputGroup/InputGroup.js +22 -21
  112. package/components/InputGroup/InputGroup.js.map +1 -1
  113. package/components/InputGroup/index.d.ts +2 -1
  114. package/components/InputGroup.d.ts +4 -0
  115. package/components/Modal/Modal.cjs +345 -6
  116. package/components/Modal/Modal.cjs.map +1 -1
  117. package/components/Modal/Modal.d.ts +20 -5
  118. package/components/Modal/Modal.js +345 -6
  119. package/components/Modal/Modal.js.map +1 -1
  120. package/components/Modal/ModalBody.d.ts +6 -1
  121. package/components/Modal/ModalFooter.d.ts +4 -4
  122. package/components/Modal/ModalHeader.d.ts +6 -1
  123. package/components/Modal/index.d.ts +4 -3
  124. package/components/RadioGroup/RadioGroup.cjs +201 -3
  125. package/components/RadioGroup/RadioGroup.cjs.map +1 -1
  126. package/components/RadioGroup/RadioGroup.d.ts +9 -3
  127. package/components/RadioGroup/RadioGroup.js +201 -3
  128. package/components/RadioGroup/RadioGroup.js.map +1 -1
  129. package/components/RadioGroup/index.d.ts +1 -1
  130. package/components/Select/Select.cjs +310 -4
  131. package/components/Select/Select.cjs.map +1 -1
  132. package/components/Select/Select.d.ts +35 -20
  133. package/components/Select/Select.helpers.d.ts +6 -19
  134. package/components/Select/Select.js +310 -4
  135. package/components/Select/Select.js.map +1 -1
  136. package/components/Select/index.d.ts +1 -1
  137. package/components/Stat/Stat.cjs +83 -4
  138. package/components/Stat/Stat.cjs.map +1 -1
  139. package/components/Stat/Stat.js +82 -3
  140. package/components/Stat/Stat.js.map +1 -1
  141. package/components/Stat/index.d.ts +2 -1
  142. package/components/Stat.d.ts +4 -0
  143. package/components/StatusMessage/StatusMessage.cjs +105 -3
  144. package/components/StatusMessage/StatusMessage.cjs.map +1 -1
  145. package/components/StatusMessage/StatusMessage.d.ts +20 -36
  146. package/components/StatusMessage/StatusMessage.js +105 -3
  147. package/components/StatusMessage/StatusMessage.js.map +1 -1
  148. package/components/StatusMessage/StatusMessageContext.d.ts +16 -0
  149. package/components/StatusMessage/index.d.ts +2 -0
  150. package/components/Stepper/Stepper.cjs +324 -4
  151. package/components/Stepper/Stepper.cjs.map +1 -1
  152. package/components/Stepper/Stepper.d.ts +9 -8
  153. package/components/Stepper/Stepper.js +323 -3
  154. package/components/Stepper/Stepper.js.map +1 -1
  155. package/{hooks/Wizard/WizardContext.d.ts → components/Stepper/StepperContext.d.ts} +28 -22
  156. package/components/Stepper/_hooks/useHorizontalScroll.d.ts +19 -0
  157. package/components/Stepper/_parts/StepperScrollArrow.d.ts +19 -0
  158. package/components/Stepper/index.d.ts +6 -2
  159. package/components/Stepper.d.ts +4 -0
  160. package/components/Switch/Switch.cjs +181 -3
  161. package/components/Switch/Switch.cjs.map +1 -1
  162. package/components/Switch/Switch.d.ts +7 -2
  163. package/components/Switch/Switch.js +181 -3
  164. package/components/Switch/Switch.js.map +1 -1
  165. package/components/Table/Table.cjs +528 -2
  166. package/components/Table/Table.cjs.map +1 -1
  167. package/components/Table/Table.d.ts +1 -1
  168. package/components/Table/Table.js +528 -2
  169. package/components/Table/Table.js.map +1 -1
  170. package/components/Tabs/Tabs.cjs +110 -4
  171. package/components/Tabs/Tabs.cjs.map +1 -1
  172. package/components/Tabs/Tabs.d.ts +21 -16
  173. package/components/Tabs/Tabs.js +109 -3
  174. package/components/Tabs/Tabs.js.map +1 -1
  175. package/components/Tabs/index.d.ts +4 -2
  176. package/components/Tabs.d.ts +4 -0
  177. package/components/Timeline/Timeline.cjs +3 -2
  178. package/components/Timeline/Timeline.cjs.map +1 -1
  179. package/components/Timeline/Timeline.d.ts +4 -8
  180. package/components/Timeline/Timeline.js +3 -2
  181. package/components/Timeline/Timeline.js.map +1 -1
  182. package/components/Timeline/index.d.ts +4 -2
  183. package/components/Timeline.d.ts +4 -0
  184. package/components/_shared/mergeSx.d.ts +7 -0
  185. package/{formField.sx-DfVbMe0V.js → formField.sx-8_QRnKxv.js} +2 -11
  186. package/formField.sx-8_QRnKxv.js.map +1 -0
  187. package/{formField.sx-CQ1mbk9M.cjs → formField.sx-BAX7KwMR.cjs} +10 -19
  188. package/formField.sx-BAX7KwMR.cjs.map +1 -0
  189. package/index.cjs +63 -47
  190. package/index.cjs.map +1 -1
  191. package/index.d.ts +1 -30
  192. package/index.js +25 -48
  193. package/index.js.map +1 -1
  194. package/mergeSx-BXoNZjB_.js +10 -0
  195. package/mergeSx-BXoNZjB_.js.map +1 -0
  196. package/mergeSx-Dbccoo_H.cjs +9 -0
  197. package/mergeSx-Dbccoo_H.cjs.map +1 -0
  198. package/mui.d.ts +4 -2
  199. package/package.json +8 -20
  200. package/{resolvePreset-K6_BfWHD.js → resolvePreset-B-IB0ehH.js} +3 -3
  201. package/{resolvePreset-K6_BfWHD.js.map → resolvePreset-B-IB0ehH.js.map} +1 -1
  202. package/{resolvePreset-CxTI6_Ln.cjs → resolvePreset-CT3kU-K2.cjs} +3 -3
  203. package/{resolvePreset-CxTI6_Ln.cjs.map → resolvePreset-CT3kU-K2.cjs.map} +1 -1
  204. package/theme/componentStyles.d.ts +1 -1
  205. package/tokens-BRrcP_p_.js +21 -0
  206. package/tokens-BRrcP_p_.js.map +1 -0
  207. package/tokens-jaWWNk39.cjs +20 -0
  208. package/tokens-jaWWNk39.cjs.map +1 -0
  209. package/utils/index.d.ts +2 -0
  210. package/{components/ScrollTopButton → utils}/scrollToTop.d.ts +6 -7
  211. package/Autocomplete-BA-cGASd.js +0 -316
  212. package/Autocomplete-BA-cGASd.js.map +0 -1
  213. package/Autocomplete-C2x-lBvZ.cjs +0 -315
  214. package/Autocomplete-C2x-lBvZ.cjs.map +0 -1
  215. package/Avatar-9L7YMxya.cjs +0 -162
  216. package/Avatar-9L7YMxya.cjs.map +0 -1
  217. package/Avatar-BJTr-PBd.js +0 -163
  218. package/Avatar-BJTr-PBd.js.map +0 -1
  219. package/Card-DG_crfkK.cjs +0 -185
  220. package/Card-DG_crfkK.cjs.map +0 -1
  221. package/Card-Ug-ttVSh.js +0 -186
  222. package/Card-Ug-ttVSh.js.map +0 -1
  223. package/Chip-OPYQ1uQ_.js +0 -74
  224. package/Chip-OPYQ1uQ_.js.map +0 -1
  225. package/Chip-qoJLDiva.cjs +0 -73
  226. package/Chip-qoJLDiva.cjs.map +0 -1
  227. package/DatePicker-8f_9bwhS.js +0 -202
  228. package/DatePicker-8f_9bwhS.js.map +0 -1
  229. package/DatePicker-DLSfkgGA.cjs +0 -201
  230. package/DatePicker-DLSfkgGA.cjs.map +0 -1
  231. package/DateRangePicker-BVpeJCHI.js +0 -76
  232. package/DateRangePicker-BVpeJCHI.js.map +0 -1
  233. package/DateRangePicker-B_hKQhbj.cjs +0 -75
  234. package/DateRangePicker-B_hKQhbj.cjs.map +0 -1
  235. package/DateTimePicker-CWNW09-O.cjs +0 -220
  236. package/DateTimePicker-CWNW09-O.cjs.map +0 -1
  237. package/DateTimePicker-D4L9GAod.js +0 -221
  238. package/DateTimePicker-D4L9GAod.js.map +0 -1
  239. package/Input-Cp911l23.js +0 -174
  240. package/Input-Cp911l23.js.map +0 -1
  241. package/Input-DI0jfq5X.cjs +0 -173
  242. package/Input-DI0jfq5X.cjs.map +0 -1
  243. package/Modal-Bm_HH9cv.cjs +0 -319
  244. package/Modal-Bm_HH9cv.cjs.map +0 -1
  245. package/Modal-Bnz6d9m9.js +0 -320
  246. package/Modal-Bnz6d9m9.js.map +0 -1
  247. package/RadioGroup-CxqDHap1.cjs +0 -200
  248. package/RadioGroup-CxqDHap1.cjs.map +0 -1
  249. package/RadioGroup-DMi9FvMP.js +0 -201
  250. package/RadioGroup-DMi9FvMP.js.map +0 -1
  251. package/Select-3CBOfM2H.js +0 -447
  252. package/Select-3CBOfM2H.js.map +0 -1
  253. package/Select-Bku4f4f8.cjs +0 -446
  254. package/Select-Bku4f4f8.cjs.map +0 -1
  255. package/Stat-BUcFCGrz.cjs +0 -83
  256. package/Stat-BUcFCGrz.cjs.map +0 -1
  257. package/Stat-C06A_izS.js +0 -84
  258. package/Stat-C06A_izS.js.map +0 -1
  259. package/StatusMessage-C5B6oGZ_.cjs +0 -78
  260. package/StatusMessage-C5B6oGZ_.cjs.map +0 -1
  261. package/StatusMessage-D1GlfQdz.js +0 -79
  262. package/StatusMessage-D1GlfQdz.js.map +0 -1
  263. package/Step-Dq0N72YB.js +0 -49
  264. package/Step-Dq0N72YB.js.map +0 -1
  265. package/Step-a8U8O-91.cjs +0 -48
  266. package/Step-a8U8O-91.cjs.map +0 -1
  267. package/Switch-BIeobv6i.cjs.map +0 -1
  268. package/Switch-DQEOxM2R.js.map +0 -1
  269. package/Tab-Co31KY2k.cjs +0 -95
  270. package/Tab-Co31KY2k.cjs.map +0 -1
  271. package/Tab-DiK62gRz.js +0 -96
  272. package/Tab-DiK62gRz.js.map +0 -1
  273. package/Table-C2LbW0B1.js +0 -531
  274. package/Table-C2LbW0B1.js.map +0 -1
  275. package/Table-C4OM6rrC.cjs +0 -530
  276. package/Table-C4OM6rrC.cjs.map +0 -1
  277. package/components/AppBar/AppBarBrand.d.ts +0 -31
  278. package/components/AppBar/AppBarUserMenu.d.ts +0 -65
  279. package/components/Autocomplete/Autocomplete.types.d.ts +0 -1
  280. package/components/DatePicker/DatePicker.types.d.ts +0 -1
  281. package/components/DateTimePicker/DateTimePicker.types.d.ts +0 -1
  282. package/components/Input/Input.types.d.ts +0 -1
  283. package/components/PageLoader/PageLoader.cjs +0 -61
  284. package/components/PageLoader/PageLoader.cjs.map +0 -1
  285. package/components/PageLoader/PageLoader.d.ts +0 -38
  286. package/components/PageLoader/PageLoader.js +0 -61
  287. package/components/PageLoader/PageLoader.js.map +0 -1
  288. package/components/PageLoader/index.d.ts +0 -2
  289. package/components/PageLoader.d.ts +0 -6
  290. package/components/RadioGroup/RadioGroup.types.d.ts +0 -1
  291. package/components/ScrollTopButton/ScrollTopButton.cjs +0 -79
  292. package/components/ScrollTopButton/ScrollTopButton.cjs.map +0 -1
  293. package/components/ScrollTopButton/ScrollTopButton.d.ts +0 -48
  294. package/components/ScrollTopButton/ScrollTopButton.js +0 -79
  295. package/components/ScrollTopButton/ScrollTopButton.js.map +0 -1
  296. package/components/ScrollTopButton/index.d.ts +0 -4
  297. package/components/ScrollTopButton.d.ts +0 -6
  298. package/components/Select/Select.definitions.d.ts +0 -17
  299. package/components/Select/Select.types.d.ts +0 -1
  300. package/components/Select/_parts/SelectSearchHeader.d.ts +0 -15
  301. package/components/Select/_parts/SelectValue.d.ts +0 -22
  302. package/formField.sx-CQ1mbk9M.cjs.map +0 -1
  303. package/formField.sx-DfVbMe0V.js.map +0 -1
  304. package/hooks/Wizard/Wizard.cjs +0 -7
  305. package/hooks/Wizard/Wizard.cjs.map +0 -1
  306. package/hooks/Wizard/Wizard.js +0 -7
  307. package/hooks/Wizard/Wizard.js.map +0 -1
  308. package/hooks/Wizard/index.d.ts +0 -3
  309. package/hooks/Wizard/useWizard.d.ts +0 -9
  310. package/hooks/Wizard.d.ts +0 -2
  311. package/useWizard-CWdIxZzX.cjs +0 -94
  312. package/useWizard-CWdIxZzX.cjs.map +0 -1
  313. package/useWizard-CWq--C3o.js +0 -95
  314. package/useWizard-CWq--C3o.js.map +0 -1
  315. /package/{styles.css → index.css} +0 -0
@@ -30,14 +30,15 @@ var __objRest = (source, exclude) => {
30
30
  }
31
31
  return target;
32
32
  };
33
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
33
34
  const jsxRuntime = require("react/jsx-runtime");
34
- const styles = require("@mui/material/styles");
35
35
  const material = require("@mui/material");
36
+ const styles = require("@mui/material/styles");
36
37
  const reactHookForm = require("react-hook-form");
37
- const resolvePreset = require("./resolvePreset-CxTI6_Ln.cjs");
38
+ const resolvePreset = require("../../resolvePreset-CT3kU-K2.cjs");
38
39
  const toRadius = (borderRadius) => typeof borderRadius === "number" ? `${borderRadius}px` : borderRadius;
39
40
  const FOCUS_TRANSITION = "border-color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms, box-shadow 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms";
40
- const buildSwitchSx = ({
41
+ const buildCheckboxSx = ({
41
42
  bordered,
42
43
  borderRadius,
43
44
  hasLabel,
@@ -54,14 +55,13 @@ const buildSwitchSx = ({
54
55
  marginLeft: 0,
55
56
  marginRight: 0,
56
57
  paddingX: 1.5,
57
- paddingY: 1.25,
58
+ paddingY: 0.5,
58
59
  border: `1px solid ${error ? theme.palette.error.main : theme.palette.divider}`,
59
60
  borderRadius: radius,
60
61
  transition: FOCUS_TRANSITION
61
62
  }, error && {
62
63
  boxShadow: `0 0 0 1px ${theme.palette.error.main}`
63
64
  }), {
64
- // Focus del usuario sobre el switch interno.
65
65
  "&:focus-within": {
66
66
  borderColor: error ? theme.palette.error.main : theme.palette.primary.main,
67
67
  boxShadow: `0 0 0 1px ${error ? theme.palette.error.main : theme.palette.primary.main}`
@@ -75,11 +75,13 @@ const buildSwitchSx = ({
75
75
  }
76
76
  });
77
77
  };
78
- const Switch = (props) => {
78
+ const Checkbox = (props) => {
79
79
  const _a = props, {
80
80
  label,
81
81
  size = "medium",
82
+ color = "primary",
82
83
  labelPlacement = "end",
84
+ indeterminate = false,
83
85
  disabled = false,
84
86
  error = false,
85
87
  helperText,
@@ -91,7 +93,9 @@ const Switch = (props) => {
91
93
  } = _a, rest = __objRest(_a, [
92
94
  "label",
93
95
  "size",
96
+ "color",
94
97
  "labelPlacement",
98
+ "indeterminate",
95
99
  "disabled",
96
100
  "error",
97
101
  "helperText",
@@ -102,23 +106,25 @@ const Switch = (props) => {
102
106
  "sx"
103
107
  ]);
104
108
  const theme = styles.useTheme();
105
- const presetSx = resolvePreset.resolvePreset("Switch", preset, theme);
109
+ const presetSx = resolvePreset.resolvePreset("Checkbox", preset, theme);
106
110
  const buildSx = (effectiveError) => [
107
- buildSwitchSx({
111
+ buildCheckboxSx({
108
112
  bordered,
109
113
  borderRadius,
110
114
  hasLabel: !!label,
111
115
  error: effectiveError
112
116
  }),
113
117
  ...presetSx ? [presetSx] : [],
114
- ...Array.isArray(sx) ? sx : [sx]
118
+ ...Array.isArray(sx) ? sx : sx ? [sx] : []
115
119
  ];
116
- const renderSwitch = (checked2, onChange2, onBlur, inputRef) => {
117
- const switchEl = /* @__PURE__ */ jsxRuntime.jsx(
118
- material.Switch,
120
+ const renderCheckbox = (checked2, onChange2, onBlur, inputRef) => {
121
+ const checkboxEl = /* @__PURE__ */ jsxRuntime.jsx(
122
+ material.Checkbox,
119
123
  __spreadProps(__spreadValues({}, rest), {
120
124
  size,
125
+ color,
121
126
  checked: !!checked2,
127
+ indeterminate,
122
128
  onChange: (_e, next) => onChange2(next),
123
129
  onBlur,
124
130
  inputRef,
@@ -128,15 +134,15 @@ const Switch = (props) => {
128
134
  return label ? /* @__PURE__ */ jsxRuntime.jsx(
129
135
  material.FormControlLabel,
130
136
  {
131
- control: switchEl,
137
+ control: checkboxEl,
132
138
  label,
133
139
  labelPlacement,
134
140
  disabled
135
141
  }
136
- ) : switchEl;
142
+ ) : checkboxEl;
137
143
  };
138
144
  if ("control" in props && props.control) {
139
- const { name, control, validation } = props;
145
+ const { name, control, validation, onValueChange } = props;
140
146
  return /* @__PURE__ */ jsxRuntime.jsx(
141
147
  reactHookForm.Controller,
142
148
  {
@@ -155,9 +161,12 @@ const Switch = (props) => {
155
161
  disabled,
156
162
  sx: buildSx(finalError),
157
163
  children: [
158
- renderSwitch(
164
+ renderCheckbox(
159
165
  !!field.value,
160
- (next) => field.onChange(next),
166
+ (next) => {
167
+ field.onChange(next);
168
+ onValueChange == null ? void 0 : onValueChange(next);
169
+ },
161
170
  field.onBlur,
162
171
  field.ref
163
172
  ),
@@ -171,9 +180,10 @@ const Switch = (props) => {
171
180
  }
172
181
  const { checked, onChange } = props;
173
182
  return /* @__PURE__ */ jsxRuntime.jsxs(material.FormControl, { error, disabled, sx: buildSx(error), children: [
174
- renderSwitch(checked, onChange),
183
+ renderCheckbox(checked, onChange),
175
184
  helperText && /* @__PURE__ */ jsxRuntime.jsx(material.FormHelperText, { children: helperText })
176
185
  ] });
177
186
  };
178
- exports.Switch = Switch;
179
- //# sourceMappingURL=Switch-BIeobv6i.cjs.map
187
+ exports.Checkbox = Checkbox;
188
+ exports.default = Checkbox;
189
+ //# sourceMappingURL=Checkbox.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.cjs","sources":["../../../src/components/Checkbox/Checkbox.sx.ts","../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material/styles';\n\nexport interface BuildCheckboxSxOptions {\n bordered: boolean;\n borderRadius: number | string;\n hasLabel: boolean;\n error: boolean;\n}\n\nconst toRadius = (borderRadius: number | string) =>\n typeof borderRadius === 'number' ? `${borderRadius}px` : borderRadius;\n\nconst FOCUS_TRANSITION =\n 'border-color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms, ' +\n 'box-shadow 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms';\n\n/**\n * Builder de sx para Checkbox. Cuando `bordered=true`, el contenedor del\n * `FormControlLabel` gana un borde estilo \"form field\" con focus ring y\n * estado de error (matchea InputGroup / Switch / RadioGroup).\n */\nexport const buildCheckboxSx = ({\n bordered,\n borderRadius,\n hasLabel,\n error,\n}: BuildCheckboxSxOptions): SxProps<Theme> => {\n const radius = toRadius(borderRadius);\n\n if (!bordered) {\n return {\n '& .MuiFormHelperText-root': { marginLeft: 0 },\n };\n }\n\n return (theme) => ({\n '& .MuiFormControlLabel-root': {\n marginLeft: 0,\n marginRight: 0,\n paddingX: 1.5,\n paddingY: 0.5,\n border: `1px solid ${\n error ? theme.palette.error.main : theme.palette.divider\n }`,\n borderRadius: radius,\n transition: FOCUS_TRANSITION,\n ...(error && {\n boxShadow: `0 0 0 1px ${theme.palette.error.main}`,\n }),\n '&:focus-within': {\n borderColor: error\n ? theme.palette.error.main\n : theme.palette.primary.main,\n boxShadow: `0 0 0 1px ${\n error ? theme.palette.error.main : theme.palette.primary.main\n }`,\n },\n ...(hasLabel && {\n width: '100%',\n justifyContent: 'space-between',\n }),\n },\n '& .MuiFormHelperText-root': {\n marginLeft: 0,\n },\n });\n};\n","import type { FC, Ref } from 'react';\nimport {\n Checkbox as MuiCheckbox,\n FormControl,\n FormControlLabel,\n FormHelperText,\n type CheckboxProps as MuiCheckboxProps,\n type SxProps,\n type Theme,\n} from '@mui/material';\nimport { useTheme } from '@mui/material/styles';\nimport { Controller, type Control, type RegisterOptions } from 'react-hook-form';\n\nimport { buildCheckboxSx } from './Checkbox.sx';\nimport { resolvePreset } from '../_shared/resolvePreset';\n\n// ── Tipos de dominio ─────────────────────────────────────────────────────\nexport type CheckboxSize = 'small' | 'medium';\nexport type CheckboxLabelPlacement = 'start' | 'end' | 'top' | 'bottom';\nexport type CheckboxColor =\n | 'default'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'error'\n | 'info'\n | 'warning';\n\n// ── Props base (todo lo común entre RHF y controlado) ────────────────────\nexport interface BaseCheckboxProps\n extends Omit<\n MuiCheckboxProps,\n 'value' | 'onChange' | 'checked' | 'defaultChecked' | 'size' | 'color'\n > {\n /** Texto al lado del checkbox. Si está ausente, se renderiza solo el control. */\n label?: string;\n size?: CheckboxSize;\n /** Color del checkbox. Default: `'primary'`. */\n color?: CheckboxColor;\n /** Posición del label respecto al checkbox. Default: `'end'`. */\n labelPlacement?: CheckboxLabelPlacement;\n /** Estado indeterminate (tri-state). Típico para \"select all\" parcial. */\n indeterminate?: boolean;\n disabled?: boolean;\n error?: boolean;\n helperText?: string;\n /** Renderiza un contenedor con borde alrededor del checkbox + label. Default: false. */\n bordered?: boolean;\n /** Border radius del contenedor (cuando bordered). Default: 10. */\n borderRadius?: number | string;\n /** Valor inicial del checkbox en modo RHF. */\n defaultChecked?: boolean;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.Checkbox`.\n * - `\"default\"` (o ausente) = estilo built-in del paquete.\n * - Cualquier otro string = mergea el preset encima del estilo built-in.\n */\n preset?: string;\n sx?: SxProps<Theme>;\n}\n\n// ── Variantes discriminadas (RHF vs controlado) ──────────────────────────\nexport interface RHFCheckboxProps extends BaseCheckboxProps {\n name: string;\n // `any` plano (no `Control<any>`): RHF tipa `Control<T>` con generics en\n // posiciones tanto contravariantes como covariantes (ej. `_subjects.state`).\n // Cuando el componente o su uso involucra generics adicionales, TS se\n // confunde narroweando el discriminated union y `Control<any>` no logra\n // absorber `Control<MyForm>` en la comparación estructural profunda. El\n // `any` plano elimina ese ruido. RHF adentro sigue teniendo sus tipos\n // fuertes — solo degradamos la superficie del prop del componente.\n control: any;\n validation?: RegisterOptions;\n /**\n * Side-effect que corre después de que RHF actualiza el form state.\n * Útil para cascadas entre campos. NO reemplaza al handler de RHF.\n */\n onValueChange?: (checked: boolean) => void;\n checked?: never;\n onChange?: never;\n}\n\nexport interface ControlledCheckboxProps extends BaseCheckboxProps {\n name?: string;\n control?: never;\n validation?: never;\n checked: boolean;\n onChange: (checked: boolean) => void;\n}\n\n// ── API pública final ────────────────────────────────────────────────────\nexport type CheckboxProps = RHFCheckboxProps | ControlledCheckboxProps;\n\nexport const Checkbox: FC<CheckboxProps> = (props) => {\n const {\n label,\n size = 'medium',\n color = 'primary',\n labelPlacement = 'end',\n indeterminate = false,\n disabled = false,\n error = false,\n helperText,\n bordered = false,\n borderRadius = 10,\n defaultChecked,\n preset,\n sx,\n ...rest\n } = props as ControlledCheckboxProps & {\n control?: Control<any>;\n validation?: RegisterOptions;\n };\n\n const theme = useTheme();\n const presetSx = resolvePreset('Checkbox', preset, theme);\n\n // Construye el sx con el estado de error efectivo; se llama por rama\n // (RHF usa el error del Controller, controlado usa el prop `error`).\n const buildSx = (effectiveError: boolean) => [\n buildCheckboxSx({\n bordered,\n borderRadius,\n hasLabel: !!label,\n error: effectiveError,\n }),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n const renderCheckbox = (\n checked: boolean,\n onChange: (next: boolean) => void,\n onBlur?: () => void,\n inputRef?: Ref<HTMLInputElement>,\n ) => {\n const checkboxEl = (\n <MuiCheckbox\n {...rest}\n size={size}\n color={color}\n checked={!!checked}\n indeterminate={indeterminate}\n onChange={(_e, next) => onChange(next)}\n onBlur={onBlur}\n inputRef={inputRef}\n disabled={disabled}\n />\n );\n\n return label ? (\n <FormControlLabel\n control={checkboxEl}\n label={label}\n labelPlacement={labelPlacement}\n disabled={disabled}\n />\n ) : (\n checkboxEl\n );\n };\n\n // ── RHF mode ──────────────────────────────────────────────────────────\n if ('control' in props && props.control) {\n const { name, control, validation, onValueChange } = props as RHFCheckboxProps;\n return (\n <Controller\n name={name}\n control={control}\n rules={validation}\n defaultValue={defaultChecked}\n render={({ field, fieldState: { error: fieldError } }) => {\n const finalError = !!fieldError || error;\n const finalHelperText = fieldError?.message ?? helperText;\n return (\n <FormControl\n error={finalError}\n disabled={disabled}\n sx={buildSx(finalError)}\n >\n {renderCheckbox(\n !!field.value,\n (next) => {\n field.onChange(next);\n onValueChange?.(next);\n },\n field.onBlur,\n field.ref,\n )}\n {finalHelperText && <FormHelperText>{finalHelperText}</FormHelperText>}\n </FormControl>\n );\n }}\n />\n );\n }\n\n // ── Controlled mode ───────────────────────────────────────────────────\n const { checked, onChange } = props as ControlledCheckboxProps;\n return (\n <FormControl error={error} disabled={disabled} sx={buildSx(error)}>\n {renderCheckbox(checked, onChange)}\n {helperText && <FormHelperText>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n\nexport default Checkbox;\n"],"names":["useTheme","resolvePreset","checked","onChange","jsx","MuiCheckbox","FormControlLabel","Controller","_a","jsxs","FormControl","FormHelperText"],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { FC } from 'react';
2
+ import { CheckboxProps as MuiCheckboxProps, SxProps, Theme } from '@mui/material';
3
+ import { RegisterOptions } from 'react-hook-form';
4
+ export type CheckboxSize = 'small' | 'medium';
5
+ export type CheckboxLabelPlacement = 'start' | 'end' | 'top' | 'bottom';
6
+ export type CheckboxColor = 'default' | 'primary' | 'secondary' | 'success' | 'error' | 'info' | 'warning';
7
+ export interface BaseCheckboxProps extends Omit<MuiCheckboxProps, 'value' | 'onChange' | 'checked' | 'defaultChecked' | 'size' | 'color'> {
8
+ /** Texto al lado del checkbox. Si está ausente, se renderiza solo el control. */
9
+ label?: string;
10
+ size?: CheckboxSize;
11
+ /** Color del checkbox. Default: `'primary'`. */
12
+ color?: CheckboxColor;
13
+ /** Posición del label respecto al checkbox. Default: `'end'`. */
14
+ labelPlacement?: CheckboxLabelPlacement;
15
+ /** Estado indeterminate (tri-state). Típico para "select all" parcial. */
16
+ indeterminate?: boolean;
17
+ disabled?: boolean;
18
+ error?: boolean;
19
+ helperText?: string;
20
+ /** Renderiza un contenedor con borde alrededor del checkbox + label. Default: false. */
21
+ bordered?: boolean;
22
+ /** Border radius del contenedor (cuando bordered). Default: 10. */
23
+ borderRadius?: number | string;
24
+ /** Valor inicial del checkbox en modo RHF. */
25
+ defaultChecked?: boolean;
26
+ /**
27
+ * Nombre del preset de estilo registrado en `theme.styles.Checkbox`.
28
+ * - `"default"` (o ausente) = estilo built-in del paquete.
29
+ * - Cualquier otro string = mergea el preset encima del estilo built-in.
30
+ */
31
+ preset?: string;
32
+ sx?: SxProps<Theme>;
33
+ }
34
+ export interface RHFCheckboxProps extends BaseCheckboxProps {
35
+ name: string;
36
+ control: any;
37
+ validation?: RegisterOptions;
38
+ /**
39
+ * Side-effect que corre después de que RHF actualiza el form state.
40
+ * Útil para cascadas entre campos. NO reemplaza al handler de RHF.
41
+ */
42
+ onValueChange?: (checked: boolean) => void;
43
+ checked?: never;
44
+ onChange?: never;
45
+ }
46
+ export interface ControlledCheckboxProps extends BaseCheckboxProps {
47
+ name?: string;
48
+ control?: never;
49
+ validation?: never;
50
+ checked: boolean;
51
+ onChange: (checked: boolean) => void;
52
+ }
53
+ export type CheckboxProps = RHFCheckboxProps | ControlledCheckboxProps;
54
+ export declare const Checkbox: FC<CheckboxProps>;
55
+ export default Checkbox;
@@ -30,13 +30,13 @@ var __objRest = (source, exclude) => {
30
30
  return target;
31
31
  };
32
32
  import { jsx, jsxs } from "react/jsx-runtime";
33
+ import { FormControl, FormHelperText, Checkbox as Checkbox$1, FormControlLabel } from "@mui/material";
33
34
  import { useTheme } from "@mui/material/styles";
34
- import { FormControl, FormHelperText, Switch as Switch$1, FormControlLabel } from "@mui/material";
35
35
  import { Controller } from "react-hook-form";
36
- import { r as resolvePreset } from "./resolvePreset-K6_BfWHD.js";
36
+ import { r as resolvePreset } from "../../resolvePreset-B-IB0ehH.js";
37
37
  const toRadius = (borderRadius) => typeof borderRadius === "number" ? `${borderRadius}px` : borderRadius;
38
38
  const FOCUS_TRANSITION = "border-color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms, box-shadow 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms";
39
- const buildSwitchSx = ({
39
+ const buildCheckboxSx = ({
40
40
  bordered,
41
41
  borderRadius,
42
42
  hasLabel,
@@ -53,14 +53,13 @@ const buildSwitchSx = ({
53
53
  marginLeft: 0,
54
54
  marginRight: 0,
55
55
  paddingX: 1.5,
56
- paddingY: 1.25,
56
+ paddingY: 0.5,
57
57
  border: `1px solid ${error ? theme.palette.error.main : theme.palette.divider}`,
58
58
  borderRadius: radius,
59
59
  transition: FOCUS_TRANSITION
60
60
  }, error && {
61
61
  boxShadow: `0 0 0 1px ${theme.palette.error.main}`
62
62
  }), {
63
- // Focus del usuario sobre el switch interno.
64
63
  "&:focus-within": {
65
64
  borderColor: error ? theme.palette.error.main : theme.palette.primary.main,
66
65
  boxShadow: `0 0 0 1px ${error ? theme.palette.error.main : theme.palette.primary.main}`
@@ -74,11 +73,13 @@ const buildSwitchSx = ({
74
73
  }
75
74
  });
76
75
  };
77
- const Switch = (props) => {
76
+ const Checkbox = (props) => {
78
77
  const _a = props, {
79
78
  label,
80
79
  size = "medium",
80
+ color = "primary",
81
81
  labelPlacement = "end",
82
+ indeterminate = false,
82
83
  disabled = false,
83
84
  error = false,
84
85
  helperText,
@@ -90,7 +91,9 @@ const Switch = (props) => {
90
91
  } = _a, rest = __objRest(_a, [
91
92
  "label",
92
93
  "size",
94
+ "color",
93
95
  "labelPlacement",
96
+ "indeterminate",
94
97
  "disabled",
95
98
  "error",
96
99
  "helperText",
@@ -101,23 +104,25 @@ const Switch = (props) => {
101
104
  "sx"
102
105
  ]);
103
106
  const theme = useTheme();
104
- const presetSx = resolvePreset("Switch", preset, theme);
107
+ const presetSx = resolvePreset("Checkbox", preset, theme);
105
108
  const buildSx = (effectiveError) => [
106
- buildSwitchSx({
109
+ buildCheckboxSx({
107
110
  bordered,
108
111
  borderRadius,
109
112
  hasLabel: !!label,
110
113
  error: effectiveError
111
114
  }),
112
115
  ...presetSx ? [presetSx] : [],
113
- ...Array.isArray(sx) ? sx : [sx]
116
+ ...Array.isArray(sx) ? sx : sx ? [sx] : []
114
117
  ];
115
- const renderSwitch = (checked2, onChange2, onBlur, inputRef) => {
116
- const switchEl = /* @__PURE__ */ jsx(
117
- Switch$1,
118
+ const renderCheckbox = (checked2, onChange2, onBlur, inputRef) => {
119
+ const checkboxEl = /* @__PURE__ */ jsx(
120
+ Checkbox$1,
118
121
  __spreadProps(__spreadValues({}, rest), {
119
122
  size,
123
+ color,
120
124
  checked: !!checked2,
125
+ indeterminate,
121
126
  onChange: (_e, next) => onChange2(next),
122
127
  onBlur,
123
128
  inputRef,
@@ -127,15 +132,15 @@ const Switch = (props) => {
127
132
  return label ? /* @__PURE__ */ jsx(
128
133
  FormControlLabel,
129
134
  {
130
- control: switchEl,
135
+ control: checkboxEl,
131
136
  label,
132
137
  labelPlacement,
133
138
  disabled
134
139
  }
135
- ) : switchEl;
140
+ ) : checkboxEl;
136
141
  };
137
142
  if ("control" in props && props.control) {
138
- const { name, control, validation } = props;
143
+ const { name, control, validation, onValueChange } = props;
139
144
  return /* @__PURE__ */ jsx(
140
145
  Controller,
141
146
  {
@@ -154,9 +159,12 @@ const Switch = (props) => {
154
159
  disabled,
155
160
  sx: buildSx(finalError),
156
161
  children: [
157
- renderSwitch(
162
+ renderCheckbox(
158
163
  !!field.value,
159
- (next) => field.onChange(next),
164
+ (next) => {
165
+ field.onChange(next);
166
+ onValueChange == null ? void 0 : onValueChange(next);
167
+ },
160
168
  field.onBlur,
161
169
  field.ref
162
170
  ),
@@ -170,11 +178,12 @@ const Switch = (props) => {
170
178
  }
171
179
  const { checked, onChange } = props;
172
180
  return /* @__PURE__ */ jsxs(FormControl, { error, disabled, sx: buildSx(error), children: [
173
- renderSwitch(checked, onChange),
181
+ renderCheckbox(checked, onChange),
174
182
  helperText && /* @__PURE__ */ jsx(FormHelperText, { children: helperText })
175
183
  ] });
176
184
  };
177
185
  export {
178
- Switch as S
186
+ Checkbox,
187
+ Checkbox as default
179
188
  };
180
- //# sourceMappingURL=Switch-DQEOxM2R.js.map
189
+ //# sourceMappingURL=Checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.js","sources":["../../../src/components/Checkbox/Checkbox.sx.ts","../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material/styles';\n\nexport interface BuildCheckboxSxOptions {\n bordered: boolean;\n borderRadius: number | string;\n hasLabel: boolean;\n error: boolean;\n}\n\nconst toRadius = (borderRadius: number | string) =>\n typeof borderRadius === 'number' ? `${borderRadius}px` : borderRadius;\n\nconst FOCUS_TRANSITION =\n 'border-color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms, ' +\n 'box-shadow 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms';\n\n/**\n * Builder de sx para Checkbox. Cuando `bordered=true`, el contenedor del\n * `FormControlLabel` gana un borde estilo \"form field\" con focus ring y\n * estado de error (matchea InputGroup / Switch / RadioGroup).\n */\nexport const buildCheckboxSx = ({\n bordered,\n borderRadius,\n hasLabel,\n error,\n}: BuildCheckboxSxOptions): SxProps<Theme> => {\n const radius = toRadius(borderRadius);\n\n if (!bordered) {\n return {\n '& .MuiFormHelperText-root': { marginLeft: 0 },\n };\n }\n\n return (theme) => ({\n '& .MuiFormControlLabel-root': {\n marginLeft: 0,\n marginRight: 0,\n paddingX: 1.5,\n paddingY: 0.5,\n border: `1px solid ${\n error ? theme.palette.error.main : theme.palette.divider\n }`,\n borderRadius: radius,\n transition: FOCUS_TRANSITION,\n ...(error && {\n boxShadow: `0 0 0 1px ${theme.palette.error.main}`,\n }),\n '&:focus-within': {\n borderColor: error\n ? theme.palette.error.main\n : theme.palette.primary.main,\n boxShadow: `0 0 0 1px ${\n error ? theme.palette.error.main : theme.palette.primary.main\n }`,\n },\n ...(hasLabel && {\n width: '100%',\n justifyContent: 'space-between',\n }),\n },\n '& .MuiFormHelperText-root': {\n marginLeft: 0,\n },\n });\n};\n","import type { FC, Ref } from 'react';\nimport {\n Checkbox as MuiCheckbox,\n FormControl,\n FormControlLabel,\n FormHelperText,\n type CheckboxProps as MuiCheckboxProps,\n type SxProps,\n type Theme,\n} from '@mui/material';\nimport { useTheme } from '@mui/material/styles';\nimport { Controller, type Control, type RegisterOptions } from 'react-hook-form';\n\nimport { buildCheckboxSx } from './Checkbox.sx';\nimport { resolvePreset } from '../_shared/resolvePreset';\n\n// ── Tipos de dominio ─────────────────────────────────────────────────────\nexport type CheckboxSize = 'small' | 'medium';\nexport type CheckboxLabelPlacement = 'start' | 'end' | 'top' | 'bottom';\nexport type CheckboxColor =\n | 'default'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'error'\n | 'info'\n | 'warning';\n\n// ── Props base (todo lo común entre RHF y controlado) ────────────────────\nexport interface BaseCheckboxProps\n extends Omit<\n MuiCheckboxProps,\n 'value' | 'onChange' | 'checked' | 'defaultChecked' | 'size' | 'color'\n > {\n /** Texto al lado del checkbox. Si está ausente, se renderiza solo el control. */\n label?: string;\n size?: CheckboxSize;\n /** Color del checkbox. Default: `'primary'`. */\n color?: CheckboxColor;\n /** Posición del label respecto al checkbox. Default: `'end'`. */\n labelPlacement?: CheckboxLabelPlacement;\n /** Estado indeterminate (tri-state). Típico para \"select all\" parcial. */\n indeterminate?: boolean;\n disabled?: boolean;\n error?: boolean;\n helperText?: string;\n /** Renderiza un contenedor con borde alrededor del checkbox + label. Default: false. */\n bordered?: boolean;\n /** Border radius del contenedor (cuando bordered). Default: 10. */\n borderRadius?: number | string;\n /** Valor inicial del checkbox en modo RHF. */\n defaultChecked?: boolean;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.Checkbox`.\n * - `\"default\"` (o ausente) = estilo built-in del paquete.\n * - Cualquier otro string = mergea el preset encima del estilo built-in.\n */\n preset?: string;\n sx?: SxProps<Theme>;\n}\n\n// ── Variantes discriminadas (RHF vs controlado) ──────────────────────────\nexport interface RHFCheckboxProps extends BaseCheckboxProps {\n name: string;\n // `any` plano (no `Control<any>`): RHF tipa `Control<T>` con generics en\n // posiciones tanto contravariantes como covariantes (ej. `_subjects.state`).\n // Cuando el componente o su uso involucra generics adicionales, TS se\n // confunde narroweando el discriminated union y `Control<any>` no logra\n // absorber `Control<MyForm>` en la comparación estructural profunda. El\n // `any` plano elimina ese ruido. RHF adentro sigue teniendo sus tipos\n // fuertes — solo degradamos la superficie del prop del componente.\n control: any;\n validation?: RegisterOptions;\n /**\n * Side-effect que corre después de que RHF actualiza el form state.\n * Útil para cascadas entre campos. NO reemplaza al handler de RHF.\n */\n onValueChange?: (checked: boolean) => void;\n checked?: never;\n onChange?: never;\n}\n\nexport interface ControlledCheckboxProps extends BaseCheckboxProps {\n name?: string;\n control?: never;\n validation?: never;\n checked: boolean;\n onChange: (checked: boolean) => void;\n}\n\n// ── API pública final ────────────────────────────────────────────────────\nexport type CheckboxProps = RHFCheckboxProps | ControlledCheckboxProps;\n\nexport const Checkbox: FC<CheckboxProps> = (props) => {\n const {\n label,\n size = 'medium',\n color = 'primary',\n labelPlacement = 'end',\n indeterminate = false,\n disabled = false,\n error = false,\n helperText,\n bordered = false,\n borderRadius = 10,\n defaultChecked,\n preset,\n sx,\n ...rest\n } = props as ControlledCheckboxProps & {\n control?: Control<any>;\n validation?: RegisterOptions;\n };\n\n const theme = useTheme();\n const presetSx = resolvePreset('Checkbox', preset, theme);\n\n // Construye el sx con el estado de error efectivo; se llama por rama\n // (RHF usa el error del Controller, controlado usa el prop `error`).\n const buildSx = (effectiveError: boolean) => [\n buildCheckboxSx({\n bordered,\n borderRadius,\n hasLabel: !!label,\n error: effectiveError,\n }),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n const renderCheckbox = (\n checked: boolean,\n onChange: (next: boolean) => void,\n onBlur?: () => void,\n inputRef?: Ref<HTMLInputElement>,\n ) => {\n const checkboxEl = (\n <MuiCheckbox\n {...rest}\n size={size}\n color={color}\n checked={!!checked}\n indeterminate={indeterminate}\n onChange={(_e, next) => onChange(next)}\n onBlur={onBlur}\n inputRef={inputRef}\n disabled={disabled}\n />\n );\n\n return label ? (\n <FormControlLabel\n control={checkboxEl}\n label={label}\n labelPlacement={labelPlacement}\n disabled={disabled}\n />\n ) : (\n checkboxEl\n );\n };\n\n // ── RHF mode ──────────────────────────────────────────────────────────\n if ('control' in props && props.control) {\n const { name, control, validation, onValueChange } = props as RHFCheckboxProps;\n return (\n <Controller\n name={name}\n control={control}\n rules={validation}\n defaultValue={defaultChecked}\n render={({ field, fieldState: { error: fieldError } }) => {\n const finalError = !!fieldError || error;\n const finalHelperText = fieldError?.message ?? helperText;\n return (\n <FormControl\n error={finalError}\n disabled={disabled}\n sx={buildSx(finalError)}\n >\n {renderCheckbox(\n !!field.value,\n (next) => {\n field.onChange(next);\n onValueChange?.(next);\n },\n field.onBlur,\n field.ref,\n )}\n {finalHelperText && <FormHelperText>{finalHelperText}</FormHelperText>}\n </FormControl>\n );\n }}\n />\n );\n }\n\n // ── Controlled mode ───────────────────────────────────────────────────\n const { checked, onChange } = props as ControlledCheckboxProps;\n return (\n <FormControl error={error} disabled={disabled} sx={buildSx(error)}>\n {renderCheckbox(checked, onChange)}\n {helperText && <FormHelperText>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n\nexport default Checkbox;\n"],"names":["checked","onChange","MuiCheckbox","_a"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { SxProps, Theme } from '@mui/material/styles';
2
+ export interface BuildCheckboxSxOptions {
3
+ bordered: boolean;
4
+ borderRadius: number | string;
5
+ hasLabel: boolean;
6
+ error: boolean;
7
+ }
8
+ /**
9
+ * Builder de sx para Checkbox. Cuando `bordered=true`, el contenedor del
10
+ * `FormControlLabel` gana un borde estilo "form field" con focus ring y
11
+ * estado de error (matchea InputGroup / Switch / RadioGroup).
12
+ */
13
+ export declare const buildCheckboxSx: ({ bordered, borderRadius, hasLabel, error, }: BuildCheckboxSxOptions) => SxProps<Theme>;
@@ -0,0 +1,2 @@
1
+ export { Checkbox, default } from './Checkbox';
2
+ export type { CheckboxProps, BaseCheckboxProps, RHFCheckboxProps, ControlledCheckboxProps, CheckboxSize, CheckboxLabelPlacement, CheckboxColor, } from './Checkbox';
@@ -0,0 +1,6 @@
1
+ export * from './Checkbox/index'
2
+ export {}
3
+ import _default from './Checkbox/index'
4
+ export default _default
5
+ export * from './Checkbox/index'
6
+ export {}
@@ -1,5 +1,75 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Chip = require("../../Chip-qoJLDiva.cjs");
4
- exports.Chip = Chip.Chip;
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
+ var __objRest = (source, exclude) => {
19
+ var target = {};
20
+ for (var prop in source)
21
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
22
+ target[prop] = source[prop];
23
+ if (source != null && __getOwnPropSymbols)
24
+ for (var prop of __getOwnPropSymbols(source)) {
25
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
26
+ target[prop] = source[prop];
27
+ }
28
+ return target;
29
+ };
30
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
31
+ const jsxRuntime = require("react/jsx-runtime");
32
+ const material = require("@mui/material");
33
+ const Chip = (_a) => {
34
+ var _b = _a, {
35
+ label,
36
+ onClick,
37
+ onDelete,
38
+ avatar,
39
+ icon,
40
+ disabled = false,
41
+ variant = "filled",
42
+ color: color = "default",
43
+ size: size = "medium"
44
+ } = _b, rest = __objRest(_b, [
45
+ "label",
46
+ "onClick",
47
+ "onDelete",
48
+ "avatar",
49
+ "icon",
50
+ "disabled",
51
+ "variant",
52
+ // Default variant
53
+ "color",
54
+ // Default color
55
+ "size"
56
+ ]);
57
+ return /* @__PURE__ */ jsxRuntime.jsx(
58
+ material.Chip,
59
+ __spreadValues({
60
+ label,
61
+ onClick,
62
+ onDelete,
63
+ avatar,
64
+ icon,
65
+ disabled,
66
+ variant,
67
+ color,
68
+ size,
69
+ clickable: !!onClick
70
+ }, rest)
71
+ );
72
+ };
73
+ exports.Chip = Chip;
74
+ exports.default = Chip;
5
75
  //# sourceMappingURL=Chip.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chip.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"Chip.cjs","sources":["../../../src/components/Chip/Chip.tsx"],"sourcesContent":["import React from 'react';\nimport { Chip as MuiChip } from '@mui/material';\nimport type { ChipProps as MuiChipProps } from '@mui/material';\n\n// Define las props para el componente Chip personalizado\n// Omitimos algunas props de MuiChipProps que redefiniremos para mayor claridad\nexport interface ChipProps extends Omit<MuiChipProps, 'onClick' | 'onDelete' | 'avatar' | 'icon' | 'label' | 'variant' | 'color' | 'size'> {\n // Contenido principal del chip\n label: React.ReactNode;\n // Handler para el evento click del chip\n onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;\n // Handler para el evento delete del chip (muestra un botón de borrar)\n onDelete?: (event: React.MouseEvent<HTMLDivElement>) => void;\n // Elemento Avatar a mostrar al inicio del chip\n avatar?: React.ReactElement;\n // Icono a mostrar al inicio del chip (alternativa a avatar)\n icon?: React.ReactElement;\n // Si el chip está deshabilitado\n disabled?: boolean;\n // Variante visual del chip\n variant?: 'filled' | 'outlined';\n // Color del chip\n color?: 'default' | 'primary' | 'secondary' | 'error' | 'info' | 'success' | 'warning';\n // Tamaño del chip\n size?: 'small' | 'medium';\n}\n\n/**\n * Componente Chip personalizado de Material UI.\n * Proporciona una interfaz simplificada para el componente Chip de Material UI,\n * permitiendo una fácil personalización de etiquetas, avatares, iconos y acciones.\n */\nexport const Chip: React.FC<ChipProps> = ({\n label,\n onClick,\n onDelete,\n avatar,\n icon,\n disabled = false,\n variant = 'filled', // Default variant\n color = 'default', // Default color\n size = 'medium', // Default size\n ...rest // Permite pasar otras props de MuiChipProps (ej. sx, className)\n}) => {\n return (\n <MuiChip\n label={label}\n onClick={onClick}\n onDelete={onDelete}\n avatar={avatar}\n icon={icon}\n disabled={disabled}\n variant={variant}\n color={color}\n size={size}\n clickable={!!onClick} // Habilita el estilo clickable si se proporciona onClick\n {...rest}\n />\n );\n};\n\nexport default Chip;\n"],"names":["jsx","MuiChip"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCO,MAAM,OAA4B,CAAC,OAWpC;AAXoC,eACxC;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,UAAU;AAAA,IACV,eAAQ;AAAA,IACR,aAAO;AAAA,MATiC,IAUrC,iBAVqC,IAUrC;AAAA,IATH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAGA,SACEA,2BAAAA;AAAAA,IAACC,SAAAA;AAAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,CAAC,CAAC;AAAA,OACT;AAAA,EAAA;AAGV;;;"}
@@ -1,5 +1,75 @@
1
- import { C } from "../../Chip-OPYQ1uQ_.js";
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
+ var __objRest = (source, exclude) => {
18
+ var target = {};
19
+ for (var prop in source)
20
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
21
+ target[prop] = source[prop];
22
+ if (source != null && __getOwnPropSymbols)
23
+ for (var prop of __getOwnPropSymbols(source)) {
24
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
25
+ target[prop] = source[prop];
26
+ }
27
+ return target;
28
+ };
29
+ import { jsx } from "react/jsx-runtime";
30
+ import { Chip as Chip$1 } from "@mui/material";
31
+ const Chip = (_a) => {
32
+ var _b = _a, {
33
+ label,
34
+ onClick,
35
+ onDelete,
36
+ avatar,
37
+ icon,
38
+ disabled = false,
39
+ variant = "filled",
40
+ color: color = "default",
41
+ size: size = "medium"
42
+ } = _b, rest = __objRest(_b, [
43
+ "label",
44
+ "onClick",
45
+ "onDelete",
46
+ "avatar",
47
+ "icon",
48
+ "disabled",
49
+ "variant",
50
+ // Default variant
51
+ "color",
52
+ // Default color
53
+ "size"
54
+ ]);
55
+ return /* @__PURE__ */ jsx(
56
+ Chip$1,
57
+ __spreadValues({
58
+ label,
59
+ onClick,
60
+ onDelete,
61
+ avatar,
62
+ icon,
63
+ disabled,
64
+ variant,
65
+ color,
66
+ size,
67
+ clickable: !!onClick
68
+ }, rest)
69
+ );
70
+ };
2
71
  export {
3
- C as Chip
72
+ Chip,
73
+ Chip as default
4
74
  };
5
75
  //# sourceMappingURL=Chip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chip.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"Chip.js","sources":["../../../src/components/Chip/Chip.tsx"],"sourcesContent":["import React from 'react';\nimport { Chip as MuiChip } from '@mui/material';\nimport type { ChipProps as MuiChipProps } from '@mui/material';\n\n// Define las props para el componente Chip personalizado\n// Omitimos algunas props de MuiChipProps que redefiniremos para mayor claridad\nexport interface ChipProps extends Omit<MuiChipProps, 'onClick' | 'onDelete' | 'avatar' | 'icon' | 'label' | 'variant' | 'color' | 'size'> {\n // Contenido principal del chip\n label: React.ReactNode;\n // Handler para el evento click del chip\n onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;\n // Handler para el evento delete del chip (muestra un botón de borrar)\n onDelete?: (event: React.MouseEvent<HTMLDivElement>) => void;\n // Elemento Avatar a mostrar al inicio del chip\n avatar?: React.ReactElement;\n // Icono a mostrar al inicio del chip (alternativa a avatar)\n icon?: React.ReactElement;\n // Si el chip está deshabilitado\n disabled?: boolean;\n // Variante visual del chip\n variant?: 'filled' | 'outlined';\n // Color del chip\n color?: 'default' | 'primary' | 'secondary' | 'error' | 'info' | 'success' | 'warning';\n // Tamaño del chip\n size?: 'small' | 'medium';\n}\n\n/**\n * Componente Chip personalizado de Material UI.\n * Proporciona una interfaz simplificada para el componente Chip de Material UI,\n * permitiendo una fácil personalización de etiquetas, avatares, iconos y acciones.\n */\nexport const Chip: React.FC<ChipProps> = ({\n label,\n onClick,\n onDelete,\n avatar,\n icon,\n disabled = false,\n variant = 'filled', // Default variant\n color = 'default', // Default color\n size = 'medium', // Default size\n ...rest // Permite pasar otras props de MuiChipProps (ej. sx, className)\n}) => {\n return (\n <MuiChip\n label={label}\n onClick={onClick}\n onDelete={onDelete}\n avatar={avatar}\n icon={icon}\n disabled={disabled}\n variant={variant}\n color={color}\n size={size}\n clickable={!!onClick} // Habilita el estilo clickable si se proporciona onClick\n {...rest}\n />\n );\n};\n\nexport default Chip;\n"],"names":["MuiChip"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCO,MAAM,OAA4B,CAAC,OAWpC;AAXoC,eACxC;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,UAAU;AAAA,IACV,eAAQ;AAAA,IACR,aAAO;AAAA,MATiC,IAUrC,iBAVqC,IAUrC;AAAA,IATH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAGA,SACE;AAAA,IAACA;AAAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,CAAC,CAAC;AAAA,OACT;AAAA,EAAA;AAGV;"}
@@ -1 +1,2 @@
1
- export { default as Chip } from './Chip';
1
+ export { Chip, default } from './Chip';
2
+ export type { ChipProps } from './Chip';
@@ -1,2 +1,6 @@
1
1
  export * from './Chip/index'
2
2
  export {}
3
+ import _default from './Chip/index'
4
+ export default _default
5
+ export * from './Chip/index'
6
+ export {}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- function Column(_props) {
3
+ function Column(props) {
4
4
  return null;
5
5
  }
6
6
  Column.displayName = "Column";
@@ -1 +1 @@
1
- {"version":3,"file":"Column.cjs","sources":["../../../src/components/Column/Column.tsx"],"sourcesContent":["// -----------------------------------------------------------------------------\n// Componente Column: Define la estructura de una columna en la tabla.\n// Este componente NO renderiza nada directamente, solo pasa sus props al componente Table.\n// -----------------------------------------------------------------------------\n// Tipo auxiliar para 'field'.\n// Define si 'field' es una sola clave (keyof T) o un array de claves (Array<keyof T>).\ntype FieldName<T> = keyof T | Array<keyof T>;\n\nexport interface ColumnProps<T> {\n name: string; // Nombre a mostrar en el encabezado de la columna\n field: FieldName<T>; // Define el campo o campos a usar de los datos\n // La prop 'children' ahora recibe 'Partial<T>'.\n // Esto permite a TypeScript inferir los tipos de las propiedades desestructuradas\n // como 'avatar', 'nombre', etc., basándose en la interfaz genérica 'T' de tu data.\n width?: string; \n children: (fieldData: Partial<T>) => React.ReactNode;\n}\n\n// El componente Column no renderiza nada directamente en el DOM.\n// Su propósito es actuar como un contenedor de configuración para el componente Table.\nexport function Column<T>(_props: ColumnProps<T>): React.ReactNode {\n return null;\n}\n\n// Esto es crucial para que el componente Table pueda identificar a nuestros componentes Column\n// entre sus hijos, utilizando (child.type as any).displayName === 'Column'.\nColumn.displayName = 'Column';\n\nexport default Column;"],"names":[],"mappings":";;AAoBO,SAAS,OAAU,QAAyC;AACjE,SAAO;AACT;AAIA,OAAO,cAAc;;"}
1
+ {"version":3,"file":"Column.cjs","sources":["../../../src/components/Column/Column.tsx"],"sourcesContent":["// -----------------------------------------------------------------------------\n// Componente Column: Define la estructura de una columna en la tabla.\n// Este componente NO renderiza nada directamente, solo pasa sus props al componente Table.\n// -----------------------------------------------------------------------------\n// Tipo auxiliar para 'field'.\n// Define si 'field' es una sola clave (keyof T) o un array de claves (Array<keyof T>).\ntype FieldName<T> = keyof T | Array<keyof T>;\n\nexport interface ColumnProps<T> {\n name: string; // Nombre a mostrar en el encabezado de la columna\n field: FieldName<T>; // Define el campo o campos a usar de los datos\n // La prop 'children' ahora recibe 'Partial<T>'.\n // Esto permite a TypeScript inferir los tipos de las propiedades desestructuradas\n // como 'avatar', 'nombre', etc., basándose en la interfaz genérica 'T' de tu data.\n width?: string; \n children: (fieldData: Partial<T>) => React.ReactNode;\n}\n\n// El componente Column no renderiza nada directamente en el DOM.\n// Su propósito es actuar como un contenedor de configuración para el componente Table.\nexport function Column<T>(props: ColumnProps<T>): React.ReactNode {\n return null;\n}\n\n// Esto es crucial para que el componente Table pueda identificar a nuestros componentes Column\n// entre sus hijos, utilizando (child.type as any).displayName === 'Column'.\nColumn.displayName = 'Column';\n\nexport default Column;"],"names":[],"mappings":";;AAoBO,SAAS,OAAU,OAAwC;AAChE,SAAO;AACT;AAIA,OAAO,cAAc;;"}
@@ -5,7 +5,7 @@ export interface ColumnProps<T> {
5
5
  width?: string;
6
6
  children: (fieldData: Partial<T>) => React.ReactNode;
7
7
  }
8
- export declare function Column<T>(_props: ColumnProps<T>): React.ReactNode;
8
+ export declare function Column<T>(props: ColumnProps<T>): React.ReactNode;
9
9
  export declare namespace Column {
10
10
  var displayName: string;
11
11
  }
@@ -1,4 +1,4 @@
1
- function Column(_props) {
1
+ function Column(props) {
2
2
  return null;
3
3
  }
4
4
  Column.displayName = "Column";