@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.
- package/Button-C17mExpd.cjs.map +1 -1
- package/Button-UkkP-bNw.js.map +1 -1
- package/README.md +182 -150
- package/components/ActionMenu/ActionMenu.cjs +52 -52
- package/components/ActionMenu/ActionMenu.cjs.map +1 -1
- package/components/ActionMenu/ActionMenu.d.ts +20 -36
- package/components/ActionMenu/ActionMenu.js +55 -55
- package/components/ActionMenu/ActionMenu.js.map +1 -1
- package/components/ActionMenu/index.d.ts +2 -2
- package/components/AppBar/AppBar.cjs +3 -220
- package/components/AppBar/AppBar.cjs.map +1 -1
- package/components/AppBar/AppBar.d.ts +6 -6
- package/components/AppBar/AppBar.js +6 -223
- package/components/AppBar/AppBar.js.map +1 -1
- package/components/AppBar/index.d.ts +0 -6
- package/components/Autocomplete/Autocomplete.cjs +310 -4
- package/components/Autocomplete/Autocomplete.cjs.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +29 -26
- package/components/Autocomplete/Autocomplete.definitions.d.ts +2 -1
- package/components/Autocomplete/Autocomplete.helpers.d.ts +12 -8
- package/components/Autocomplete/Autocomplete.js +310 -4
- package/components/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/_parts/AutocompleteChips.d.ts +7 -6
- package/components/Autocomplete/_parts/AutocompleteOption.d.ts +10 -13
- package/components/Autocomplete/index.d.ts +1 -1
- package/components/Avatar/Avatar.cjs +159 -2
- package/components/Avatar/Avatar.cjs.map +1 -1
- package/components/Avatar/Avatar.js +159 -2
- package/components/Avatar/Avatar.js.map +1 -1
- package/components/Avatar/index.d.ts +1 -0
- package/components/Button/Button.d.ts +5 -5
- package/components/Button/index.d.ts +1 -0
- package/components/Card/Card.cjs +95 -7
- package/components/Card/Card.cjs.map +1 -1
- package/components/Card/Card.d.ts +3 -50
- package/components/Card/Card.js +95 -7
- package/components/Card/Card.js.map +1 -1
- package/components/Card/Card.sx.d.ts +3 -6
- package/components/Card/index.d.ts +1 -1
- package/{Switch-BIeobv6i.cjs → components/Checkbox/Checkbox.cjs} +30 -20
- package/components/Checkbox/Checkbox.cjs.map +1 -0
- package/components/Checkbox/Checkbox.d.ts +55 -0
- package/{Switch-DQEOxM2R.js → components/Checkbox/Checkbox.js} +29 -20
- package/components/Checkbox/Checkbox.js.map +1 -0
- package/components/Checkbox/Checkbox.sx.d.ts +13 -0
- package/components/Checkbox/index.d.ts +2 -0
- package/components/Checkbox.d.ts +6 -0
- package/components/Chip/Chip.cjs +73 -3
- package/components/Chip/Chip.cjs.map +1 -1
- package/components/Chip/Chip.js +72 -2
- package/components/Chip/Chip.js.map +1 -1
- package/components/Chip/index.d.ts +2 -1
- package/components/Chip.d.ts +4 -0
- package/components/Column/Column.cjs +1 -1
- package/components/Column/Column.cjs.map +1 -1
- package/components/Column/Column.d.ts +1 -1
- package/components/Column/Column.js +1 -1
- package/components/Column/Column.js.map +1 -1
- package/components/Column/index.d.ts +0 -1
- package/components/DatePicker/DatePicker.cjs +177 -3
- package/components/DatePicker/DatePicker.cjs.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +1 -13
- package/components/DatePicker/DatePicker.js +177 -3
- package/components/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/index.d.ts +1 -1
- package/components/DateRangePicker/DateRangePicker.cjs +73 -2
- package/components/DateRangePicker/DateRangePicker.cjs.map +1 -1
- package/components/DateRangePicker/DateRangePicker.js +73 -2
- package/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateTimePicker/DateTimePicker.cjs +195 -3
- package/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
- package/components/DateTimePicker/DateTimePicker.d.ts +9 -17
- package/components/DateTimePicker/DateTimePicker.definitions.d.ts +2 -0
- package/components/DateTimePicker/DateTimePicker.helpers.d.ts +4 -2
- package/components/DateTimePicker/DateTimePicker.js +195 -3
- package/components/DateTimePicker/DateTimePicker.js.map +1 -1
- package/components/DateTimePicker/index.d.ts +1 -1
- package/components/Drawer/Drawer.cjs +13 -7
- package/components/Drawer/Drawer.cjs.map +1 -1
- package/components/Drawer/Drawer.d.ts +3 -1
- package/components/Drawer/Drawer.js +14 -8
- package/components/Drawer/Drawer.js.map +1 -1
- package/components/Drawer/DrawerItem.d.ts +6 -1
- package/components/Gallery/Gallery.cjs +154 -79
- package/components/Gallery/Gallery.cjs.map +1 -1
- package/components/Gallery/Gallery.d.ts +25 -9
- package/components/Gallery/Gallery.js +154 -79
- package/components/Gallery/Gallery.js.map +1 -1
- package/components/Gallery/GalleryLightbox.d.ts +6 -10
- package/components/Gallery/GalleryMain.d.ts +3 -7
- package/components/Gallery/GalleryThumbnails.d.ts +7 -11
- package/components/Gallery/index.d.ts +2 -1
- package/components/Gallery.d.ts +4 -0
- package/components/Icon/Icon.cjs +6 -8
- package/components/Icon/Icon.cjs.map +1 -1
- package/components/Icon/Icon.d.ts +11 -17
- package/components/Icon/Icon.js +6 -8
- package/components/Icon/Icon.js.map +1 -1
- package/components/Icon/index.d.ts +2 -1
- package/components/Icon.d.ts +4 -0
- package/components/Input/Input.cjs +185 -3
- package/components/Input/Input.cjs.map +1 -1
- package/components/Input/Input.d.ts +9 -2
- package/components/Input/Input.helpers.d.ts +3 -3
- package/components/Input/Input.js +185 -3
- package/components/Input/Input.js.map +1 -1
- package/components/Input/index.d.ts +1 -1
- package/components/InputGroup/InputGroup.cjs +23 -22
- package/components/InputGroup/InputGroup.cjs.map +1 -1
- package/components/InputGroup/InputGroup.d.ts +4 -4
- package/components/InputGroup/InputGroup.js +22 -21
- package/components/InputGroup/InputGroup.js.map +1 -1
- package/components/InputGroup/index.d.ts +2 -1
- package/components/InputGroup.d.ts +4 -0
- package/components/Modal/Modal.cjs +345 -6
- package/components/Modal/Modal.cjs.map +1 -1
- package/components/Modal/Modal.d.ts +20 -5
- package/components/Modal/Modal.js +345 -6
- package/components/Modal/Modal.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +6 -1
- package/components/Modal/ModalFooter.d.ts +4 -4
- package/components/Modal/ModalHeader.d.ts +6 -1
- package/components/Modal/index.d.ts +4 -3
- package/components/RadioGroup/RadioGroup.cjs +201 -3
- package/components/RadioGroup/RadioGroup.cjs.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +9 -3
- package/components/RadioGroup/RadioGroup.js +201 -3
- package/components/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/index.d.ts +1 -1
- package/components/Select/Select.cjs +310 -4
- package/components/Select/Select.cjs.map +1 -1
- package/components/Select/Select.d.ts +35 -20
- package/components/Select/Select.helpers.d.ts +6 -19
- package/components/Select/Select.js +310 -4
- package/components/Select/Select.js.map +1 -1
- package/components/Select/index.d.ts +1 -1
- package/components/Stat/Stat.cjs +83 -4
- package/components/Stat/Stat.cjs.map +1 -1
- package/components/Stat/Stat.js +82 -3
- package/components/Stat/Stat.js.map +1 -1
- package/components/Stat/index.d.ts +2 -1
- package/components/Stat.d.ts +4 -0
- package/components/StatusMessage/StatusMessage.cjs +105 -3
- package/components/StatusMessage/StatusMessage.cjs.map +1 -1
- package/components/StatusMessage/StatusMessage.d.ts +20 -36
- package/components/StatusMessage/StatusMessage.js +105 -3
- package/components/StatusMessage/StatusMessage.js.map +1 -1
- package/components/StatusMessage/StatusMessageContext.d.ts +16 -0
- package/components/StatusMessage/index.d.ts +2 -0
- package/components/Stepper/Stepper.cjs +324 -4
- package/components/Stepper/Stepper.cjs.map +1 -1
- package/components/Stepper/Stepper.d.ts +9 -8
- package/components/Stepper/Stepper.js +323 -3
- package/components/Stepper/Stepper.js.map +1 -1
- package/{hooks/Wizard/WizardContext.d.ts → components/Stepper/StepperContext.d.ts} +28 -22
- package/components/Stepper/_hooks/useHorizontalScroll.d.ts +19 -0
- package/components/Stepper/_parts/StepperScrollArrow.d.ts +19 -0
- package/components/Stepper/index.d.ts +6 -2
- package/components/Stepper.d.ts +4 -0
- package/components/Switch/Switch.cjs +181 -3
- package/components/Switch/Switch.cjs.map +1 -1
- package/components/Switch/Switch.d.ts +7 -2
- package/components/Switch/Switch.js +181 -3
- package/components/Switch/Switch.js.map +1 -1
- package/components/Table/Table.cjs +528 -2
- package/components/Table/Table.cjs.map +1 -1
- package/components/Table/Table.d.ts +1 -1
- package/components/Table/Table.js +528 -2
- package/components/Table/Table.js.map +1 -1
- package/components/Tabs/Tabs.cjs +110 -4
- package/components/Tabs/Tabs.cjs.map +1 -1
- package/components/Tabs/Tabs.d.ts +21 -16
- package/components/Tabs/Tabs.js +109 -3
- package/components/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/index.d.ts +4 -2
- package/components/Tabs.d.ts +4 -0
- package/components/Timeline/Timeline.cjs +3 -2
- package/components/Timeline/Timeline.cjs.map +1 -1
- package/components/Timeline/Timeline.d.ts +4 -8
- package/components/Timeline/Timeline.js +3 -2
- package/components/Timeline/Timeline.js.map +1 -1
- package/components/Timeline/index.d.ts +4 -2
- package/components/Timeline.d.ts +4 -0
- package/components/_shared/mergeSx.d.ts +7 -0
- package/{formField.sx-DfVbMe0V.js → formField.sx-8_QRnKxv.js} +2 -11
- package/formField.sx-8_QRnKxv.js.map +1 -0
- package/{formField.sx-CQ1mbk9M.cjs → formField.sx-BAX7KwMR.cjs} +10 -19
- package/formField.sx-BAX7KwMR.cjs.map +1 -0
- package/index.cjs +63 -47
- package/index.cjs.map +1 -1
- package/index.d.ts +1 -30
- package/index.js +25 -48
- package/index.js.map +1 -1
- package/mergeSx-BXoNZjB_.js +10 -0
- package/mergeSx-BXoNZjB_.js.map +1 -0
- package/mergeSx-Dbccoo_H.cjs +9 -0
- package/mergeSx-Dbccoo_H.cjs.map +1 -0
- package/mui.d.ts +4 -2
- package/package.json +8 -20
- package/{resolvePreset-K6_BfWHD.js → resolvePreset-B-IB0ehH.js} +3 -3
- package/{resolvePreset-K6_BfWHD.js.map → resolvePreset-B-IB0ehH.js.map} +1 -1
- package/{resolvePreset-CxTI6_Ln.cjs → resolvePreset-CT3kU-K2.cjs} +3 -3
- package/{resolvePreset-CxTI6_Ln.cjs.map → resolvePreset-CT3kU-K2.cjs.map} +1 -1
- package/theme/componentStyles.d.ts +1 -1
- package/tokens-BRrcP_p_.js +21 -0
- package/tokens-BRrcP_p_.js.map +1 -0
- package/tokens-jaWWNk39.cjs +20 -0
- package/tokens-jaWWNk39.cjs.map +1 -0
- package/utils/index.d.ts +2 -0
- package/{components/ScrollTopButton → utils}/scrollToTop.d.ts +6 -7
- package/Autocomplete-BA-cGASd.js +0 -316
- package/Autocomplete-BA-cGASd.js.map +0 -1
- package/Autocomplete-C2x-lBvZ.cjs +0 -315
- package/Autocomplete-C2x-lBvZ.cjs.map +0 -1
- package/Avatar-9L7YMxya.cjs +0 -162
- package/Avatar-9L7YMxya.cjs.map +0 -1
- package/Avatar-BJTr-PBd.js +0 -163
- package/Avatar-BJTr-PBd.js.map +0 -1
- package/Card-DG_crfkK.cjs +0 -185
- package/Card-DG_crfkK.cjs.map +0 -1
- package/Card-Ug-ttVSh.js +0 -186
- package/Card-Ug-ttVSh.js.map +0 -1
- package/Chip-OPYQ1uQ_.js +0 -74
- package/Chip-OPYQ1uQ_.js.map +0 -1
- package/Chip-qoJLDiva.cjs +0 -73
- package/Chip-qoJLDiva.cjs.map +0 -1
- package/DatePicker-8f_9bwhS.js +0 -202
- package/DatePicker-8f_9bwhS.js.map +0 -1
- package/DatePicker-DLSfkgGA.cjs +0 -201
- package/DatePicker-DLSfkgGA.cjs.map +0 -1
- package/DateRangePicker-BVpeJCHI.js +0 -76
- package/DateRangePicker-BVpeJCHI.js.map +0 -1
- package/DateRangePicker-B_hKQhbj.cjs +0 -75
- package/DateRangePicker-B_hKQhbj.cjs.map +0 -1
- package/DateTimePicker-CWNW09-O.cjs +0 -220
- package/DateTimePicker-CWNW09-O.cjs.map +0 -1
- package/DateTimePicker-D4L9GAod.js +0 -221
- package/DateTimePicker-D4L9GAod.js.map +0 -1
- package/Input-Cp911l23.js +0 -174
- package/Input-Cp911l23.js.map +0 -1
- package/Input-DI0jfq5X.cjs +0 -173
- package/Input-DI0jfq5X.cjs.map +0 -1
- package/Modal-Bm_HH9cv.cjs +0 -319
- package/Modal-Bm_HH9cv.cjs.map +0 -1
- package/Modal-Bnz6d9m9.js +0 -320
- package/Modal-Bnz6d9m9.js.map +0 -1
- package/RadioGroup-CxqDHap1.cjs +0 -200
- package/RadioGroup-CxqDHap1.cjs.map +0 -1
- package/RadioGroup-DMi9FvMP.js +0 -201
- package/RadioGroup-DMi9FvMP.js.map +0 -1
- package/Select-3CBOfM2H.js +0 -447
- package/Select-3CBOfM2H.js.map +0 -1
- package/Select-Bku4f4f8.cjs +0 -446
- package/Select-Bku4f4f8.cjs.map +0 -1
- package/Stat-BUcFCGrz.cjs +0 -83
- package/Stat-BUcFCGrz.cjs.map +0 -1
- package/Stat-C06A_izS.js +0 -84
- package/Stat-C06A_izS.js.map +0 -1
- package/StatusMessage-C5B6oGZ_.cjs +0 -78
- package/StatusMessage-C5B6oGZ_.cjs.map +0 -1
- package/StatusMessage-D1GlfQdz.js +0 -79
- package/StatusMessage-D1GlfQdz.js.map +0 -1
- package/Step-Dq0N72YB.js +0 -49
- package/Step-Dq0N72YB.js.map +0 -1
- package/Step-a8U8O-91.cjs +0 -48
- package/Step-a8U8O-91.cjs.map +0 -1
- package/Switch-BIeobv6i.cjs.map +0 -1
- package/Switch-DQEOxM2R.js.map +0 -1
- package/Tab-Co31KY2k.cjs +0 -95
- package/Tab-Co31KY2k.cjs.map +0 -1
- package/Tab-DiK62gRz.js +0 -96
- package/Tab-DiK62gRz.js.map +0 -1
- package/Table-C2LbW0B1.js +0 -531
- package/Table-C2LbW0B1.js.map +0 -1
- package/Table-C4OM6rrC.cjs +0 -530
- package/Table-C4OM6rrC.cjs.map +0 -1
- package/components/AppBar/AppBarBrand.d.ts +0 -31
- package/components/AppBar/AppBarUserMenu.d.ts +0 -65
- package/components/Autocomplete/Autocomplete.types.d.ts +0 -1
- package/components/DatePicker/DatePicker.types.d.ts +0 -1
- package/components/DateTimePicker/DateTimePicker.types.d.ts +0 -1
- package/components/Input/Input.types.d.ts +0 -1
- package/components/PageLoader/PageLoader.cjs +0 -61
- package/components/PageLoader/PageLoader.cjs.map +0 -1
- package/components/PageLoader/PageLoader.d.ts +0 -38
- package/components/PageLoader/PageLoader.js +0 -61
- package/components/PageLoader/PageLoader.js.map +0 -1
- package/components/PageLoader/index.d.ts +0 -2
- package/components/PageLoader.d.ts +0 -6
- package/components/RadioGroup/RadioGroup.types.d.ts +0 -1
- package/components/ScrollTopButton/ScrollTopButton.cjs +0 -79
- package/components/ScrollTopButton/ScrollTopButton.cjs.map +0 -1
- package/components/ScrollTopButton/ScrollTopButton.d.ts +0 -48
- package/components/ScrollTopButton/ScrollTopButton.js +0 -79
- package/components/ScrollTopButton/ScrollTopButton.js.map +0 -1
- package/components/ScrollTopButton/index.d.ts +0 -4
- package/components/ScrollTopButton.d.ts +0 -6
- package/components/Select/Select.definitions.d.ts +0 -17
- package/components/Select/Select.types.d.ts +0 -1
- package/components/Select/_parts/SelectSearchHeader.d.ts +0 -15
- package/components/Select/_parts/SelectValue.d.ts +0 -22
- package/formField.sx-CQ1mbk9M.cjs.map +0 -1
- package/formField.sx-DfVbMe0V.js.map +0 -1
- package/hooks/Wizard/Wizard.cjs +0 -7
- package/hooks/Wizard/Wizard.cjs.map +0 -1
- package/hooks/Wizard/Wizard.js +0 -7
- package/hooks/Wizard/Wizard.js.map +0 -1
- package/hooks/Wizard/index.d.ts +0 -3
- package/hooks/Wizard/useWizard.d.ts +0 -9
- package/hooks/Wizard.d.ts +0 -2
- package/useWizard-CWdIxZzX.cjs +0 -94
- package/useWizard-CWdIxZzX.cjs.map +0 -1
- package/useWizard-CWq--C3o.js +0 -95
- package/useWizard-CWq--C3o.js.map +0 -1
- /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("
|
|
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
|
|
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:
|
|
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
|
|
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("
|
|
109
|
+
const presetSx = resolvePreset.resolvePreset("Checkbox", preset, theme);
|
|
106
110
|
const buildSx = (effectiveError) => [
|
|
107
|
-
|
|
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
|
|
117
|
-
const
|
|
118
|
-
material.
|
|
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:
|
|
137
|
+
control: checkboxEl,
|
|
132
138
|
label,
|
|
133
139
|
labelPlacement,
|
|
134
140
|
disabled
|
|
135
141
|
}
|
|
136
|
-
) :
|
|
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
|
-
|
|
164
|
+
renderCheckbox(
|
|
159
165
|
!!field.value,
|
|
160
|
-
(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
|
-
|
|
183
|
+
renderCheckbox(checked, onChange),
|
|
175
184
|
helperText && /* @__PURE__ */ jsxRuntime.jsx(material.FormHelperText, { children: helperText })
|
|
176
185
|
] });
|
|
177
186
|
};
|
|
178
|
-
exports.
|
|
179
|
-
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,WAAW,CAAC,iBAChB,OAAO,iBAAiB,WAAW,GAAG,YAAY,OAAO;AAE3D,MAAM,mBACJ;AAQK,MAAM,kBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA8C;AAC5C,QAAM,SAAS,SAAS,YAAY;AAEpC,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,MACL,6BAA6B,EAAE,YAAY,EAAA;AAAA,IAAE;AAAA,EAEjD;AAEA,SAAO,CAAC,WAAW;AAAA,IACjB,+BAA+B;AAAA,MAC7B,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,UAAU;AAAA,MACV,UAAU;AAAA,MACV,QAAQ,aACN,QAAQ,MAAM,QAAQ,MAAM,OAAO,MAAM,QAAQ,OACnD;AAAA,MACA,cAAc;AAAA,MACd,YAAY;AAAA,OACR,SAAS;AAAA,MACX,WAAW,aAAa,MAAM,QAAQ,MAAM,IAAI;AAAA,IAAA,IAXrB;AAAA,MAa7B,kBAAkB;AAAA,QAChB,aAAa,QACT,MAAM,QAAQ,MAAM,OACpB,MAAM,QAAQ,QAAQ;AAAA,QAC1B,WAAW,aACT,QAAQ,MAAM,QAAQ,MAAM,OAAO,MAAM,QAAQ,QAAQ,IAC3D;AAAA,MAAA;AAAA,QAEE,YAAY;AAAA,MACd,OAAO;AAAA,MACP,gBAAgB;AAAA,IAAA;AAAA,IAGpB,6BAA6B;AAAA,MAC3B,YAAY;AAAA,IAAA;AAAA,EACd;AAEJ;AC2BO,MAAM,WAA8B,CAAC,UAAU;AACpD,QAeI,YAdF;AAAA;AAAA,IACA,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,iBAAiB;AAAA,IACjB,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,QAAQ;AAAA,IACR;AAAA,IACA,WAAW;AAAA,IACX,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,MAEE,IADC,iBACD,IADC;AAAA,IAbH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAOF,QAAM,QAAQA,OAAAA,SAAA;AACd,QAAM,WAAWC,cAAAA,cAAc,YAAY,QAAQ,KAAK;AAIxD,QAAM,UAAU,CAAC,mBAA4B;AAAA,IAC3C,gBAAgB;AAAA,MACd;AAAA,MACA;AAAA,MACA,UAAU,CAAC,CAAC;AAAA,MACZ,OAAO;AAAA,IAAA,CACR;AAAA,IACD,GAAI,WAAW,CAAC,QAAQ,IAAI,CAAA;AAAA,IAC5B,GAAI,MAAM,QAAQ,EAAE,IAAI,KAAK,KAAK,CAAC,EAAE,IAAI,CAAA;AAAA,EAAC;AAG5C,QAAM,iBAAiB,CACrBC,UACAC,WACA,QACA,aACG;AACH,UAAM,aACJC,2BAAAA;AAAAA,MAACC,SAAAA;AAAAA,MAAA,iCACK,OADL;AAAA,QAEC;AAAA,QACA;AAAA,QACA,SAAS,CAAC,CAACH;AAAAA,QACX;AAAA,QACA,UAAU,CAAC,IAAI,SAASC,UAAS,IAAI;AAAA,QACrC;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAAA;AAIJ,WAAO,QACLC,2BAAAA;AAAAA,MAACE,SAAAA;AAAAA,MAAA;AAAA,QACC,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAAA,IAGF;AAAA,EAEJ;AAGA,MAAI,aAAa,SAAS,MAAM,SAAS;AACvC,UAAM,EAAE,MAAM,SAAS,YAAY,kBAAkB;AACrD,WACEF,2BAAAA;AAAAA,MAACG,cAAAA;AAAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP,cAAc;AAAA,QACd,QAAQ,CAAC,EAAE,OAAO,YAAY,EAAE,OAAO,WAAA,QAAmB;;AACxD,gBAAM,aAAa,CAAC,CAAC,cAAc;AACnC,gBAAM,mBAAkBC,MAAA,yCAAY,YAAZ,OAAAA,MAAuB;AAC/C,iBACEC,2BAAAA;AAAAA,YAACC,SAAAA;AAAAA,YAAA;AAAA,cACC,OAAO;AAAA,cACP;AAAA,cACA,IAAI,QAAQ,UAAU;AAAA,cAErB,UAAA;AAAA,gBAAA;AAAA,kBACC,CAAC,CAAC,MAAM;AAAA,kBACR,CAAC,SAAS;AACR,0BAAM,SAAS,IAAI;AACnB,mEAAgB;AAAA,kBAClB;AAAA,kBACA,MAAM;AAAA,kBACN,MAAM;AAAA,gBAAA;AAAA,gBAEP,mBAAmBN,2BAAAA,IAACO,SAAAA,gBAAA,EAAgB,UAAA,gBAAA,CAAgB;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAG3D;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AAGA,QAAM,EAAE,SAAS,SAAA,IAAa;AAC9B,yCACGD,sBAAA,EAAY,OAAc,UAAoB,IAAI,QAAQ,KAAK,GAC7D,UAAA;AAAA,IAAA,eAAe,SAAS,QAAQ;AAAA,IAChC,cAAcN,2BAAAA,IAACO,SAAAA,gBAAA,EAAgB,UAAA,WAAA,CAAW;AAAA,EAAA,GAC7C;AAEJ;;;"}
|
|
@@ -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 "
|
|
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
|
|
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:
|
|
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
|
|
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("
|
|
107
|
+
const presetSx = resolvePreset("Checkbox", preset, theme);
|
|
105
108
|
const buildSx = (effectiveError) => [
|
|
106
|
-
|
|
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
|
|
116
|
-
const
|
|
117
|
-
|
|
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:
|
|
135
|
+
control: checkboxEl,
|
|
131
136
|
label,
|
|
132
137
|
labelPlacement,
|
|
133
138
|
disabled
|
|
134
139
|
}
|
|
135
|
-
) :
|
|
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
|
-
|
|
162
|
+
renderCheckbox(
|
|
158
163
|
!!field.value,
|
|
159
|
-
(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
|
-
|
|
181
|
+
renderCheckbox(checked, onChange),
|
|
174
182
|
helperText && /* @__PURE__ */ jsx(FormHelperText, { children: helperText })
|
|
175
183
|
] });
|
|
176
184
|
};
|
|
177
185
|
export {
|
|
178
|
-
|
|
186
|
+
Checkbox,
|
|
187
|
+
Checkbox as default
|
|
179
188
|
};
|
|
180
|
-
//# sourceMappingURL=
|
|
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>;
|
package/components/Chip/Chip.cjs
CHANGED
|
@@ -1,5 +1,75 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
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;;;"}
|
package/components/Chip/Chip.js
CHANGED
|
@@ -1,5 +1,75 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
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
|
|
1
|
+
export { Chip, default } from './Chip';
|
|
2
|
+
export type { ChipProps } from './Chip';
|
package/components/Chip.d.ts
CHANGED
|
@@ -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>(
|
|
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>(
|
|
8
|
+
export declare function Column<T>(props: ColumnProps<T>): React.ReactNode;
|
|
9
9
|
export declare namespace Column {
|
|
10
10
|
var displayName: string;
|
|
11
11
|
}
|