@soyfri/shared-library 2.0.0-beta.3 → 2.0.0-beta.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Autocomplete-C_lW1VER.js +337 -0
- package/Autocomplete-C_lW1VER.js.map +1 -0
- package/Autocomplete-CejWztBY.cjs +336 -0
- package/Autocomplete-CejWztBY.cjs.map +1 -0
- package/Avatar-Dw5rzayR.cjs +166 -0
- package/Avatar-Dw5rzayR.cjs.map +1 -0
- package/Avatar-H8akSege.js +167 -0
- package/Avatar-H8akSege.js.map +1 -0
- package/Button-C17mExpd.cjs.map +1 -1
- package/Button-UkkP-bNw.js.map +1 -1
- package/Card-DYKGY-NG.js +116 -0
- package/Card-DYKGY-NG.js.map +1 -0
- package/Card-Dr1-ATRY.cjs +115 -0
- package/Card-Dr1-ATRY.cjs.map +1 -0
- package/Checkbox-BCqMFWt4.cjs +187 -0
- package/Checkbox-BCqMFWt4.cjs.map +1 -0
- package/Checkbox-gB5YKkVo.js +188 -0
- package/Checkbox-gB5YKkVo.js.map +1 -0
- package/{components/DateRangePicker/DateRangePicker.js → Chip-OPYQ1uQ_.js} +33 -35
- package/Chip-OPYQ1uQ_.js.map +1 -0
- package/{components/DateRangePicker/DateRangePicker.cjs → Chip-qoJLDiva.cjs} +33 -36
- package/Chip-qoJLDiva.cjs.map +1 -0
- package/DatePicker-_IGWc3I5.js +178 -0
- package/DatePicker-_IGWc3I5.js.map +1 -0
- package/DatePicker-t7uDTZMl.cjs +177 -0
- package/DatePicker-t7uDTZMl.cjs.map +1 -0
- package/DateTimePicker-BxQyjTCY.cjs +229 -0
- package/DateTimePicker-BxQyjTCY.cjs.map +1 -0
- package/DateTimePicker-CrmWav_j.js +230 -0
- package/DateTimePicker-CrmWav_j.js.map +1 -0
- package/Input-CScC87J5.cjs +185 -0
- package/Input-CScC87J5.cjs.map +1 -0
- package/Input-DP_fKl38.js +186 -0
- package/Input-DP_fKl38.js.map +1 -0
- package/Modal-BFpX5AFV.js +347 -0
- package/Modal-BFpX5AFV.js.map +1 -0
- package/Modal-CkpuI8ns.cjs +346 -0
- package/Modal-CkpuI8ns.cjs.map +1 -0
- package/RadioGroup-Dd0rHXSX.cjs +202 -0
- package/RadioGroup-Dd0rHXSX.cjs.map +1 -0
- package/RadioGroup-bO-ahP9T.js +203 -0
- package/RadioGroup-bO-ahP9T.js.map +1 -0
- package/Select-BY5Y0qZ1.js +376 -0
- package/Select-BY5Y0qZ1.js.map +1 -0
- package/Select-CURrHSyl.cjs +375 -0
- package/Select-CURrHSyl.cjs.map +1 -0
- package/Spinner-B6sThC1p.js +74 -0
- package/Spinner-B6sThC1p.js.map +1 -0
- package/Spinner-D7qRmNS9.cjs +73 -0
- package/Spinner-D7qRmNS9.cjs.map +1 -0
- package/Stat-BUcFCGrz.cjs +83 -0
- package/Stat-BUcFCGrz.cjs.map +1 -0
- package/Stat-C06A_izS.js +84 -0
- package/Stat-C06A_izS.js.map +1 -0
- package/StatusMessage-B3nXpuRl.cjs +88 -0
- package/StatusMessage-B3nXpuRl.cjs.map +1 -0
- package/StatusMessage-D0WgSBx7.js +89 -0
- package/StatusMessage-D0WgSBx7.js.map +1 -0
- package/Step-BArsou1V.js +301 -0
- package/Step-BArsou1V.js.map +1 -0
- package/Step-Nd7SJbRZ.cjs +300 -0
- package/Step-Nd7SJbRZ.cjs.map +1 -0
- package/Switch-CQFOopYy.cjs +182 -0
- package/Switch-CQFOopYy.cjs.map +1 -0
- package/Switch-D72dpkH2.js +183 -0
- package/Switch-D72dpkH2.js.map +1 -0
- package/Tab-BbP8jBcK.cjs +110 -0
- package/Tab-BbP8jBcK.cjs.map +1 -0
- package/Tab-BxSxKJsP.js +111 -0
- package/Tab-BxSxKJsP.js.map +1 -0
- package/Table-C2LbW0B1.js +531 -0
- package/Table-C2LbW0B1.js.map +1 -0
- package/Table-C4OM6rrC.cjs +530 -0
- package/Table-C4OM6rrC.cjs.map +1 -0
- 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 +4 -311
- package/components/Autocomplete/Autocomplete.cjs.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +8 -6
- package/components/Autocomplete/Autocomplete.helpers.d.ts +8 -4
- package/components/Autocomplete/Autocomplete.js +4 -311
- package/components/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/_parts/AutocompleteOption.d.ts +5 -8
- package/components/Autocomplete/index.d.ts +1 -1
- package/components/Avatar/Avatar.cjs +2 -160
- package/components/Avatar/Avatar.cjs.map +1 -1
- package/components/Avatar/Avatar.d.ts +16 -1
- package/components/Avatar/Avatar.js +2 -160
- 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 +4 -184
- package/components/Card/Card.cjs.map +1 -1
- package/components/Card/Card.d.ts +21 -50
- package/components/Card/Card.js +4 -184
- 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/components/Checkbox/Checkbox.cjs +6 -0
- package/components/Checkbox/Checkbox.cjs.map +1 -0
- package/components/Checkbox/Checkbox.d.ts +55 -0
- package/components/Checkbox/Checkbox.js +6 -0
- 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 +4 -72
- package/components/Chip/Chip.cjs.map +1 -1
- package/components/Chip/Chip.js +3 -71
- 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 +1 -0
- package/components/DatePicker/DatePicker.cjs +3 -200
- package/components/DatePicker/DatePicker.cjs.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +1 -13
- package/components/DatePicker/DatePicker.js +3 -200
- package/components/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/index.d.ts +1 -1
- package/components/DateTimePicker/DateTimePicker.cjs +3 -219
- package/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
- package/components/DateTimePicker/DateTimePicker.d.ts +10 -6
- package/components/DateTimePicker/DateTimePicker.definitions.d.ts +2 -0
- package/components/DateTimePicker/DateTimePicker.helpers.d.ts +4 -2
- package/components/DateTimePicker/DateTimePicker.js +3 -219
- package/components/DateTimePicker/DateTimePicker.js.map +1 -1
- package/components/DateTimePicker/index.d.ts +1 -1
- package/components/Drawer/Drawer.cjs +25 -24
- package/components/Drawer/Drawer.cjs.map +1 -1
- package/components/Drawer/Drawer.d.ts +8 -1
- package/components/Drawer/Drawer.js +26 -25
- 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 +3 -172
- package/components/Input/Input.cjs.map +1 -1
- package/components/Input/Input.d.ts +9 -2
- package/components/Input/Input.definitions.d.ts +1 -0
- package/components/Input/Input.helpers.d.ts +3 -3
- package/components/Input/Input.js +3 -172
- 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 +7 -317
- package/components/Modal/Modal.cjs.map +1 -1
- package/components/Modal/Modal.d.ts +20 -5
- package/components/Modal/Modal.js +6 -316
- 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 +3 -1
- package/components/Modal.d.ts +4 -0
- package/components/RadioGroup/RadioGroup.cjs +6 -0
- package/components/RadioGroup/RadioGroup.cjs.map +1 -0
- package/components/RadioGroup/RadioGroup.d.ts +59 -0
- package/components/RadioGroup/RadioGroup.definitions.d.ts +6 -0
- package/components/RadioGroup/RadioGroup.js +6 -0
- package/components/RadioGroup/RadioGroup.js.map +1 -0
- package/components/RadioGroup/RadioGroup.sx.d.ts +20 -0
- package/components/RadioGroup/index.d.ts +2 -0
- package/components/RadioGroup.d.ts +6 -0
- package/components/Select/Select.cjs +4 -445
- package/components/Select/Select.cjs.map +1 -1
- package/components/Select/Select.d.ts +37 -18
- package/components/Select/Select.helpers.d.ts +5 -19
- package/components/Select/Select.js +4 -445
- package/components/Select/Select.js.map +1 -1
- package/components/Select/index.d.ts +1 -1
- package/components/Spinner/Spinner.cjs +6 -0
- package/components/Spinner/Spinner.cjs.map +1 -0
- package/components/Spinner/Spinner.d.ts +26 -0
- package/components/Spinner/Spinner.js +6 -0
- package/components/Spinner/Spinner.js.map +1 -0
- package/components/Spinner/index.d.ts +2 -0
- package/components/Spinner.d.ts +6 -0
- package/components/Stat/Stat.cjs +4 -83
- package/components/Stat/Stat.cjs.map +1 -1
- package/components/Stat/Stat.js +3 -82
- 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 +4 -77
- package/components/StatusMessage/StatusMessage.cjs.map +1 -1
- package/components/StatusMessage/StatusMessage.d.ts +20 -36
- package/components/StatusMessage/StatusMessage.js +3 -76
- package/components/StatusMessage/StatusMessage.js.map +1 -1
- package/components/StatusMessage/index.d.ts +2 -1
- package/components/StatusMessage.d.ts +4 -0
- package/components/Stepper/Stepper.cjs +8 -47
- package/components/Stepper/Stepper.cjs.map +1 -1
- package/components/Stepper/Stepper.d.ts +9 -8
- package/components/Stepper/Stepper.js +7 -46
- package/components/Stepper/Stepper.js.map +1 -1
- package/{hooks/Wizard/WizardContext.d.ts → components/Stepper/StepperContext.d.ts} +29 -23
- 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 +6 -0
- package/components/Switch/Switch.cjs.map +1 -0
- package/components/Switch/Switch.d.ts +48 -0
- package/components/Switch/Switch.definitions.d.ts +7 -0
- package/components/Switch/Switch.js +6 -0
- package/components/Switch/Switch.js.map +1 -0
- package/components/Switch/Switch.sx.d.ts +22 -0
- package/components/Switch/Switch.types.d.ts +1 -0
- package/components/Switch/index.d.ts +2 -0
- package/components/Switch.d.ts +6 -0
- package/components/Table/Table.cjs +2 -528
- package/components/Table/Table.cjs.map +1 -1
- package/components/Table/Table.d.ts +1 -1
- package/components/Table/Table.js +2 -528
- package/components/Table/Table.js.map +1 -1
- package/components/Tabs/Tabs.cjs +5 -94
- package/components/Tabs/Tabs.cjs.map +1 -1
- package/components/Tabs/Tabs.d.ts +21 -16
- package/components/Tabs/Tabs.js +4 -93
- 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 +94 -2
- package/index.cjs.map +1 -1
- package/index.d.ts +34 -0
- package/index.js +68 -3
- package/index.js.map +1 -1
- package/local/affiliations/affiliations.dev.soyfri.com-key.pem +28 -0
- package/local/affiliations/affiliations.dev.soyfri.com.pem +27 -0
- package/local/aficiliaciones/afiliaciones.dev.soyfri.com-key.pem +28 -0
- package/local/aficiliaciones/afiliaciones.dev.soyfri.com.pem +27 -0
- package/local/afiliaciones/afiliaciones.dev.soyfri.com-key.pem +28 -0
- package/local/afiliaciones/afiliaciones.dev.soyfri.com.pem +27 -0
- package/local/root/rootCA-key.pem +40 -0
- package/local/root/rootCA.pem +30 -0
- package/local/soporte/supportweb.dev.soyfri.com-key.pem +28 -0
- package/local/soporte/supportweb.dev.soyfri.com.pem +27 -0
- package/local/support/supportweb.dev.soyfri.com-key.pem +28 -0
- package/local/support/supportweb.dev.soyfri.com.pem +27 -0
- 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 +3 -1
- package/package.json +73 -73
- package/{resolvePreset-CT3kU-K2.cjs → resolvePreset-CxTI6_Ln.cjs} +3 -3
- package/{resolvePreset-CT3kU-K2.cjs.map → resolvePreset-CxTI6_Ln.cjs.map} +1 -1
- package/{resolvePreset-B-IB0ehH.js → resolvePreset-K6_BfWHD.js} +3 -3
- package/{resolvePreset-B-IB0ehH.js.map → resolvePreset-K6_BfWHD.js.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/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/DateRangePicker/DateRangePicker.cjs.map +0 -1
- package/components/DateRangePicker/DateRangePicker.d.ts +0 -15
- package/components/DateRangePicker/DateRangePicker.definitions.d.ts +0 -6
- package/components/DateRangePicker/DateRangePicker.js.map +0 -1
- package/components/DateRangePicker/index.d.ts +0 -1
- package/components/DateRangePicker.d.ts +0 -2
- 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/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/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
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export declare const SimpleSelectDefinition = "\nimport React, { useState } from 'react';\nimport { Select } from './Select'; // Asumiendo que Select.tsx est\u00E1 en el mismo directorio\nimport { Box, Typography } from '@mui/material';\n\nconst basicOptions = [\n { value: '10', label: '10' },\n { value: '25', label: '25' },\n { value: '50', label: '50' },\n { value: '100', label: '100' },\n];\n\nexport const SimpleSelectExample = () => {\n const [value, setValue] = useState<string>('25');\n return (\n <Box sx={{ width: 200 }}>\n <Select\n label=\"Registros por p\u00E1gina\"\n options={basicOptions}\n value={value}\n onChange={(val) => setValue(val as string)}\n maxWidth={150}\n />\n <Typography sx={{ mt: 2 }}>Valor seleccionado: {value}</Typography>\n </Box>\n );\n};\n";
|
|
2
|
-
export declare const MultiSelectDefinition = "\nimport React, { useState } from 'react';\nimport { Select } from './Select'; // Asumiendo que Select.tsx est\u00E1 en el mismo directorio\nimport { Box, Typography } from '@mui/material';\n\nexport const MultiSelectExample = () => {\n const [value, setValue] = useState<string[]>([]);\n return (\n <Box sx={{ width: 400 }}>\n <Select\n label=\"Seleccionar estados\"\n multiple\n maxChipsToShow={2}\n options={[\n { value: 'pending', label: 'Pendiente' },\n { value: 'approved', label: 'Aprobado' },\n { value: 'rejected', label: 'Rechazado' },\n { value: 'canceled', label: 'Cancelado' },\n { value: 'completed', label: 'Completado' },\n { value: 'invoiced', label: 'Facturado' },\n ]}\n value={value}\n onChange={(val) => setValue(val as string[])}\n />\n <Typography sx={{ mt: 2 }}>Valor seleccionado: {JSON.stringify(value)}</Typography>\n </Box>\n );\n};\n";
|
|
3
|
-
export declare const WithPlaceholderDefinition = "\nimport React, { useState } from 'react';\nimport { Select } from './Select'; // Asumiendo que Select.tsx est\u00E1 en el mismo directorio\nimport { Box, Typography } from '@mui/material';\n\nconst basicOptions = [\n { value: '10', label: '10' },\n { value: '25', label: '25' },\n { value: '50', label: '50' },\n { value: '100', label: '100' },\n];\n\nexport const WithPlaceholderExample = () => {\n const [value, setValue] = useState('');\n return (\n <Box sx={{ width: 300 }}>\n <Select\n label=\"Seleccione una opci\u00F3n\"\n options={basicOptions}\n value={value}\n onChange={(val) => setValue(val as string)}\n placeholder=\"Ninguna opci\u00F3n seleccionada\"\n />\n <Typography sx={{ mt: 2 }}>Valor seleccionado: {value || 'Ninguno'}</Typography>\n </Box>\n );\n};\n";
|
|
4
|
-
export declare const WithFilterDefinition = "\nimport React, { useState } from 'react';\nimport { Select } from './Select'; // Asumiendo que Select.tsx est\u00E1 en el mismo directorio\nimport { Box, Typography } from '@mui/material';\n\nconst groupedOptions = [\n { value: 'gt', label: 'Guatemala', group: 'Centroam\u00E9rica' },\n { value: 'sv', label: 'El Salvador', group: 'Centroam\u00E9rica' },\n { value: 'mx', label: 'M\u00E9xico', group: 'Norteam\u00E9rica' },\n { value: 'us', label: 'EE.UU.', group: 'Norteam\u00E9rica' },\n];\n\nexport const WithFilterExample = () => {\n const [value, setValue] = useState('');\n return (\n <Box sx={{ width: 300 }}>\n <Select\n label=\"Buscar pa\u00EDs\"\n filterable\n options={groupedOptions}\n value={value}\n onChange={(val) => setValue(val as string)}\n />\n <Typography sx={{ mt: 2 }}>Valor seleccionado: {value}</Typography>\n </Box>\n );\n};\n";
|
|
5
|
-
export declare const WithGroupDefinition = "\nimport React, { useState } from 'react';\nimport { Select } from './Select'; // Asumiendo que Select.tsx est\u00E1 en el mismo directorio\nimport { Box, Typography } from '@mui/material';\n\nconst groupedOptions = [\n { value: 'gt', label: 'Guatemala', group: 'Centroam\u00E9rica' },\n { value: 'sv', label: 'El Salvador', group: 'Centroam\u00E9rica' },\n { value: 'mx', label: 'M\u00E9xico', group: 'Norteam\u00E9rica' },\n { value: 'us', label: 'EE.UU.', group: 'Norteam\u00E9rica' },\n];\n\nexport const WithGroupExample = () => {\n const [value, setValue] = useState('');\n return (\n <Box sx={{ width: 300 }}>\n <Select\n label=\"Pa\u00EDs por regi\u00F3n\"\n options={groupedOptions}\n value={value}\n onChange={(val) => setValue(val as string)}\n />\n <Typography sx={{ mt: 2 }}>Valor seleccionado: {value}</Typography>\n </Box>\n );\n};\n";
|
|
6
|
-
export declare const CustomRenderWithAvatarDefinition = "\nimport React, { useState } from 'react';\nimport { Select, Option } from './Select'; // Asumiendo que Select.tsx est\u00E1 en el mismo directorio\nimport { Avatar, Box, Typography } from '@mui/material';\n\nconst userOptions = [\n { value: 'admin', label: 'Administrador', img: 'https://placehold.co/40x40?text=A' },\n { value: 'user', label: 'Usuario', img: 'https://placehold.co/40x40?text=U' },\n];\n\nexport const CustomRenderWithAvatarExample = () => {\n const [value, setValue] = useState<string[]>([]);\n return (\n <Box sx={{ width: 300 }}>\n <Select\n options={userOptions}\n multiple\n value={value}\n onChange={(val) => setValue(val as string[])}\n label=\"Usuarios\"\n placeholder=\"Selecciona usuarios\"\n >\n <Option>\n {({ img, label }) => (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <Avatar src={img} sx={{ width: 24, height: 24 }} />\n <Typography variant=\"body2\">{label}</Typography>\n </Box>\n )}\n </Option>\n </Select>\n <Typography sx={{ mt: 2 }}>Valor seleccionado: {JSON.stringify(value)}</Typography>\n </Box>\n );\n};\n";
|
|
7
|
-
export declare const MultiSelectCustomChipRenderDefinition = "\nimport React, { useState } from 'react';\nimport { Select } from './Select'; // Asumiendo que Select.tsx est\u00E1 en el mismo directorio\nimport { Box, Typography, Chip } from '@mui/material';\n\nconst transactionStatuses = [\n { value: 'PENDING', label: 'Pendiente' },\n { value: 'REJECTED', label: 'Rechazado' },\n { value: 'CANCELED', label: 'Cancelado' },\n { value: 'REFUNDED', label: 'Reembolsado' },\n { value: 'COMPLETED', label: 'Completado' },\n { value: 'EXPIRED', label: 'Expirado' },\n];\n\nexport const MultiSelectCustomChipRenderExample = () => {\n const [value, setValue] = useState<string[]>(['pending', 'approved', 'rejected', 'canceled']);\n return (\n <Box sx={{ width: 400 }}>\n <Select\n label=\"Estados de Transacci\u00F3n\"\n multiple\n maxChipsToShow={3}\n options={transactionStatuses}\n value={value}\n onChange={(val) => setValue(val as string[])}\n placeholder=\"Selecciona estados\"\n renderChipLabel={(item) => (\n <Typography variant=\"caption\" sx={{ fontWeight: 'bold' }}>\n {item.label.charAt(0).toUpperCase()}\n </Typography>\n )}\n />\n <Typography sx={{ mt: 2 }}>Valor seleccionado: {JSON.stringify(value)}</Typography>\n </Box>\n );\n};\n";
|
|
8
|
-
export declare const MultiSelectCustomChipRenderFullLabelDefinition = "\nimport React, { useState } from 'react';\nimport { Select } from './Select'; // Asumiendo que Select.tsx est\u00E1 en el mismo directorio\nimport { Avatar, Box, Typography } from '@mui/material';\n\nconst groupedOptions = [\n { value: 'gt', label: 'Guatemala', group: 'Centroam\u00E9rica' },\n { value: 'sv', label: 'El Salvador', group: 'Centroam\u00E9rica' },\n { value: 'mx', label: 'M\u00E9xico', group: 'Norteam\u00E9rica' },\n { value: 'us', label: 'EE.UU.', group: 'Norteam\u00E9rica' },\n { value: 'ca', label: 'Canad\u00E1', group: 'Norteam\u00E9rica' },\n { value: 'br', label: 'Brasil', group: 'Sudam\u00E9rica' },\n { value: 'ar', label: 'Argentina', group: 'Sudam\u00E9rica' },\n];\n\nexport const MultiSelectCustomChipRenderFullLabelExample = () => {\n const [value, setValue] = useState<string[]>(['gt', 'mx', 'us', 'ca', 'br']);\n return (\n <Box sx={{ width: 400 }}>\n <Select\n label=\"Pa\u00EDses seleccionados\"\n multiple\n maxChipsToShow={3}\n options={groupedOptions}\n value={value}\n onChange={(val) => setValue(val as string[])}\n placeholder=\"Selecciona pa\u00EDses\"\n renderChipLabel={(item) => (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n {item.img && <Avatar src={item.img} sx={{ width: 18, height: 18 }} />}\n <Typography variant=\"caption\" sx={{ fontWeight: 'medium' }}>\n {item.label}\n </Typography>\n </Box>\n )}\n />\n <Typography sx={{ mt: 2 }}>Valor seleccionado: {JSON.stringify(value)}</Typography>\n </Box>\n );\n};\n";
|
|
9
|
-
export declare const ConstrainedHeightDefinition = "\nimport React, { useState } from 'react';\nimport { Select } from './Select'; // Asumiendo que Select.tsx est\u00E1 en el mismo directorio\nimport { Box, Typography } from '@mui/material';\n\nconst optionsWithManyItems = [\n { value: 'gt', label: 'Guatemala' }, { value: 'sv', label: 'El Salvador' },\n { value: 'mx', label: 'M\u00E9xico' }, { value: 'us', label: 'EE.UU.' },\n { value: 'ca', label: 'Canad\u00E1' }, { value: 'br', label: 'Brasil' },\n { value: 'ar', label: 'Argentina' }, { value: 'cl', label: 'Chile' },\n { value: 'co', label: 'Colombia' }, { value: 'pe', label: 'Per\u00FA' },\n { value: 'ec', label: 'Ecuador' }, { value: 've', label: 'Venezuela' },\n { value: 'py', label: 'Paraguay' }, { value: 'uy', label: 'Uruguay' },\n { value: 'bo', label: 'Bolivia' }, { value: 'cr', label: 'Costa Rica' },\n { value: 'pa', label: 'Panam\u00E1' }, { value: 'hn', label: 'Honduras' },\n { value: 'ni', label: 'Nicaragua' }, { value: 'do', label: 'Rep. Dominicana' },\n { value: 'cu', label: 'Cuba' }, { value: 'pr', label: 'Puerto Rico' },\n { value: 'es', label: 'Espa\u00F1a' }, { value: 'fr', label: 'Francia' },\n { value: 'de', label: 'Alemania' }, { value: 'it', label: 'Italia' },\n];\n\nexport const ConstrainedHeightExample = () => {\n const [value, setValue] = useState('');\n return (\n <Box sx={{ width: 300 }}>\n <Select\n label=\"Opciones (Altura Limitada)\"\n options={optionsWithManyItems}\n value={value}\n onChange={(val) => setValue(val as string)}\n maxHeight={150}\n />\n <Typography sx={{ mt: 2 }}>Valor seleccionado: {value}</Typography>\n </Box>\n );\n};\n";
|
|
10
|
-
export declare const ConstrainedWidthDefinition = "\nimport React, { useState } from 'react';\nimport { Select } from './Select'; // Asumiendo que Select.tsx est\u00E1 en el mismo directorio\nimport { Box, Typography } from '@mui/material';\n\nconst basicOptions = [\n { value: '10', label: '10' },\n { value: '25', label: '25' },\n];\nconst groupedOptions = [\n { value: 'gt', label: 'Guatemala', group: 'Centroam\u00E9rica' },\n { value: 'sv', label: 'El Salvador', group: 'Centroam\u00E9rica' },\n];\n\nexport const ConstrainedWidthExample = () => {\n const [value, setValue] = useState('');\n return (\n <Box sx={{ width: 200 }}>\n <Select\n label=\"Opciones (Ancho Limitado)\"\n options={basicOptions.concat(groupedOptions)}\n value={value}\n onChange={(val) => setValue(val as string)}\n maxWidth={100}\n />\n <Typography sx={{ mt: 2 }}>Valor seleccionado: {value}</Typography>\n </Box>\n );\n};\n";
|
|
11
|
-
export declare const AllFeaturesCombinedDefinition = "\nimport React, { useState } from 'react';\nimport { Select, Option } from './Select'; // Asumiendo que Select.tsx est\u00E1 en el mismo directorio\nimport { Avatar, Box, Typography, Chip } from '@mui/material';\n\nconst allOptions = [\n { value: 'gt', label: 'Guatemala', group: 'Centroam\u00E9rica' },\n { value: 'admin', label: 'Administrador', img: 'https://placehold.co/40x40?text=A' },\n { value: 'PENDING', label: 'Pendiente' },\n { value: 'ca', label: 'Canad\u00E1', group: 'Norteam\u00E9rica' },\n { value: 'user', label: 'Usuario', img: 'https://placehold.co/40x40?text=U' },\n { value: 'COMPLETED', label: 'Completado' },\n];\n\nexport const AllFeaturesCombinedExample = () => {\n const [value, setValue] = useState<string[]>(['gt', 'admin', 'PENDING', 'ca', 'user', 'COMPLETED']);\n return (\n <Box sx={{ width: 500 }}>\n <Select\n label=\"Selecci\u00F3n Completa\"\n multiple\n filterable\n maxChipsToShow={3}\n maxHeight={250}\n maxWidth=\"400px\"\n options={allOptions}\n value={value}\n onChange={(val) => setValue(val as string[])}\n placeholder=\"Busca y selecciona todo tipo de elementos\"\n renderChipLabel={(item) => (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n {item.img && <Avatar src={item.img} sx={{ width: 16, height: 16 }} />}\n <Typography variant=\"caption\" sx={{ fontWeight: 'bold' }}>\n {item.label.length > 10 ? item.label.substring(0, 7) + '...' : item.label}\n </Typography>\n </Box>\n )}\n >\n <Option>\n {(item) => (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, my: 0.5 }}>\n {item.img && <Avatar src={item.img} sx={{ width: 28, height: 28 }} />}\n <Box>\n <Typography variant=\"body2\" fontWeight=\"medium\">{item.label}</Typography>\n {item.group && (\n <Typography variant=\"caption\" color=\"text.secondary\">\n Grupo: {item.group}\n </Typography>\n )}\n {item.disabled && <Chip label=\"No disponible\" size=\"small\" color=\"warning\" sx={{ ml: 1 }} />}\n </Box>\n </Box>\n )}\n </Option>\n </Select>\n <Typography sx={{ mt: 2 }}>Valor seleccionado: {JSON.stringify(value)}</Typography>\n </Box>\n );\n};\n";
|
|
12
|
-
export declare const EmptyOptionsDefinition = "\nimport React, { useState } from 'react';\nimport { Select } from './Select'; // Asumiendo que Select.tsx est\u00E1 en el mismo directorio\nimport { Box, Typography } from '@mui/material';\n\nexport const EmptyOptionsExample = () => {\n const [value, setValue] = useState(null);\n return (\n <Box sx={{ width: 300 }}>\n <Select\n label=\"Seleccionar (Vac\u00EDo)\"\n options={[]}\n value={value}\n onChange={setValue}\n placeholder=\"No hay opciones disponibles\"\n />\n <Typography sx={{ mt: 2 }}>Valor seleccionado: {value || 'Ninguno'}</Typography>\n </Box>\n );\n};\n";
|
|
13
|
-
export declare const SelectWithManyOptionsDefinition = "\nimport React, { useState } from 'react';\nimport { Select } from './Select'; // Asumiendo que Select.tsx est\u00E1 en el mismo directorio\nimport { Box, Typography } from '@mui/material';\n\nconst manyOptions = Array.from({ length: 50 }, (_, i) => ({\n value: `option-${i}`,\n label: `Opci\u00F3n ${i + 1}`,\n group: i < 25 ? 'Grupo A' : 'Grupo B',\n}));\n\nexport const SelectWithManyOptionsExample = () => {\n const [value, setValue] = useState('');\n return (\n <Box sx={{ width: 300 }}>\n <Select\n label=\"Muchas Opciones\"\n options={manyOptions}\n value={value}\n onChange={(val) => setValue(val as string)}\n filterable\n maxHeight={200}\n />\n <Typography sx={{ mt: 2 }}>Valor seleccionado: {value}</Typography>\n </Box>\n );\n};\n";
|
|
14
|
-
export declare const LabelPositionFloatingDefinition = "\nimport React, { useState } from 'react';\nimport { Select } from './Select';\nimport { Box, Typography } from '@mui/material';\n\nconst basicOptions = [\n { value: '10', label: '10' },\n { value: '25', label: '25' },\n { value: '50', label: '50' },\n { value: '100', label: '100' },\n];\n\nexport const LabelPositionFloatingExample = () => {\n const [value, setValue] = useState('');\n return (\n <Box sx={{ width: 300 }}>\n <Select\n label=\"Label flotante (MUI nativo)\"\n options={basicOptions}\n value={value}\n onChange={(val) => setValue(val as string)}\n labelPosition=\"floating\"\n />\n <Typography sx={{ mt: 2 }}>Valor seleccionado: {value || 'Ninguno'}</Typography>\n </Box>\n );\n};\n";
|
|
15
|
-
export declare const CustomBorderRadiusDefinition = "\nimport React, { useState } from 'react';\nimport { Select } from './Select';\nimport { Box } from '@mui/material';\n\nconst basicOptions = [\n { value: '10', label: '10' },\n { value: '25', label: '25' },\n { value: '50', label: '50' },\n { value: '100', label: '100' },\n];\n\nexport const CustomBorderRadiusExample = () => {\n const [valueA, setValueA] = useState('25');\n const [valueB, setValueB] = useState('25');\n const [valueC, setValueC] = useState('25');\n return (\n <Box sx={{ width: 300, display: 'flex', flexDirection: 'column', gap: 2 }}>\n <Select\n label=\"Sin border radius\"\n options={basicOptions}\n value={valueA}\n onChange={(val) => setValueA(val as string)}\n borderRadius={0}\n />\n <Select\n label=\"Border radius est\u00E1ndar\"\n options={basicOptions}\n value={valueB}\n onChange={(val) => setValueB(val as string)}\n borderRadius={10}\n />\n <Select\n label=\"Pill-shaped\"\n options={basicOptions}\n value={valueC}\n onChange={(val) => setValueC(val as string)}\n borderRadius={999}\n />\n </Box>\n );\n};\n";
|
|
16
|
-
export declare const CustomStylingDefinition = "\nimport React, { useState } from 'react';\nimport { Select } from './Select';\nimport { Box, Typography } from '@mui/material';\n\nconst userOptions = [\n { value: 'admin', label: 'Administrador', img: 'https://placehold.co/40x40?text=A' },\n { value: 'user', label: 'Usuario', img: 'https://placehold.co/40x40?text=U' },\n { value: 'moderator', label: 'Moderador', img: 'https://placehold.co/40x40?text=M' },\n];\n\nexport const CustomStylingExample = () => {\n const [value, setValue] = useState<string[]>(['admin']);\n return (\n <Box sx={{ width: 360 }}>\n <Select\n label=\"Select con estilos personalizados\"\n options={userOptions}\n multiple\n value={value}\n onChange={(val) => setValue(val as string[])}\n placeholder=\"Selecciona usuarios\"\n sx={{\n '& .MuiInputBase-root': {\n backgroundColor: 'action.hover',\n },\n '& .MuiOutlinedInput-notchedOutline': {\n borderColor: 'primary.main',\n borderWidth: '2px',\n },\n '&:hover .MuiOutlinedInput-notchedOutline': {\n borderColor: 'primary.dark',\n },\n }}\n />\n <Typography sx={{ mt: 2 }}>Valor seleccionado: {JSON.stringify(value)}</Typography>\n </Box>\n );\n};\n";
|
|
17
|
-
export declare const AsyncSelectDefinition = "\nimport React, { useState } from 'react';\nimport { Select } from './Select';\nimport { Box, Typography } from '@mui/material';\n\nconst mockAsyncOptions = [\n { value: 'apple', label: 'Apple' },\n { value: 'banana', label: 'Banana' },\n { value: 'orange', label: 'Orange' },\n { value: 'grape', label: 'Grape' },\n { value: 'strawberry', label: 'Strawberry' },\n { value: 'blueberry', label: 'Blueberry' },\n { value: 'pineapple', label: 'Pineapple' },\n];\n\n// Simulate an API call\nconst simulatedLoadOptions = (inputValue: string): Promise<any[]> => {\n return new Promise((resolve) => {\n setTimeout(() => {\n const filtered = mockAsyncOptions.filter(option =>\n option.label.toLowerCase().includes(inputValue.toLowerCase())\n );\n resolve(filtered);\n }, 800); // Simulate network delay\n });\n};\n\nexport const AsyncSelectExample = () => {\n const [value, setValue] = useState('');\n return (\n <Box sx={{ width: 300 }}>\n <Select\n label=\"Buscar Frutas\"\n loadOptions={simulatedLoadOptions}\n value={value}\n onChange={(val) => setValue(val as string)}\n placeholder=\"Escribe para buscar...\"\n loadingMessage=\"Buscando frutas...\"\n noOptionsMessage=\"No se encontraron frutas.\"\n />\n <Typography sx={{ mt: 2 }}>Valor seleccionado: {value}</Typography>\n </Box>\n );\n};\n";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export type { SelectOption, LabelPosition, ChipVariant, SelectSize, RenderOptionItem, RenderChipLabel, OptionProps, BaseSelectProps, RHFSelectProps, StandardSelectProps, SelectProps, } from './Select';
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
interface SelectSearchHeaderProps {
|
|
3
|
-
value: string;
|
|
4
|
-
onChange: (next: string) => void;
|
|
5
|
-
placeholder?: string;
|
|
6
|
-
inputRef?: React.Ref<HTMLInputElement>;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Header sticky del menu del Select que contiene el input de búsqueda.
|
|
10
|
-
* Se usa cuando `filterable` es true o cuando el Select opera en modo async.
|
|
11
|
-
* Detiene la propagación de click/keydown para que el menu no se cierre ni
|
|
12
|
-
* intercepte las teclas al tipear.
|
|
13
|
-
*/
|
|
14
|
-
export declare const SelectSearchHeader: React.FC<SelectSearchHeaderProps>;
|
|
15
|
-
export default SelectSearchHeader;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"formField.sx-CQ1mbk9M.cjs","sources":["../src/theme/tokens.ts","../src/components/_shared/formField.sx.ts"],"sourcesContent":["/**\n * Design tokens compartidos por los componentes de formulario\n * (Input, Select, Autocomplete, DatePicker, DateTimePicker).\n *\n * Centralizar estos valores garantiza que:\n * - el espaciado, la tipografía y las animaciones del label sean idénticos\n * en todos los campos;\n * - un cambio visual global (p.ej. cambiar el transform del shrink) se haga\n * en un único archivo.\n */\n\n// ── Spacing ──────────────────────────────────────────────────────────────\n/** Margen superior que deja el aire para el label flotante \"outside\". */\nexport const LABEL_MARGIN_TOP = '14px';\n\n/** Padding vertical interno del input (TextField/Select/Picker sections). */\nexport const FIELD_INPUT_PADDING_Y = '8.5px';\n\n// ── Label animation ──────────────────────────────────────────────────────\n/** Transform que aplica el label cuando sube arriba del input (shrink). */\nexport const LABEL_SHRINK_TRANSFORM = 'translate(4px, -22px) scale(0.85)';\n\n/** Origen del transform para el shrink. */\nexport const LABEL_TRANSFORM_ORIGIN = 'top left';\n\n/** Transición del label (color + transform + max-width). */\nexport const LABEL_TRANSITION =\n 'color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms, ' +\n 'transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms, ' +\n 'max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms';\n\n// ── Label colors (theme-aware) ───────────────────────────────────────────\n/** Color del label en reposo. */\nexport const LABEL_COLOR_REST = 'text.secondary';\n\n/** Color del label cuando el campo tiene valor (shrink). */\nexport const LABEL_COLOR_FILLED = 'text.primary';\n\n/** Color del label cuando el campo está focused. */\nexport const LABEL_COLOR_FOCUSED = 'primary.main';\n\n/** Peso del label cuando sube (filled/focused). */\nexport const LABEL_FONT_WEIGHT_FILLED = 500;\n","import type { SxProps, Theme } from '@mui/material/styles';\n\nimport {\n LABEL_COLOR_FILLED,\n LABEL_COLOR_FOCUSED,\n LABEL_COLOR_REST,\n LABEL_FONT_WEIGHT_FILLED,\n LABEL_MARGIN_TOP,\n LABEL_SHRINK_TRANSFORM,\n LABEL_TRANSFORM_ORIGIN,\n LABEL_TRANSITION,\n} from '../../theme/tokens';\n\nexport type LabelPosition = 'outside' | 'floating';\n\nexport interface BuildFormFieldSxOptions {\n borderRadius: number | string;\n labelPosition: LabelPosition;\n /**\n * Si es `true`, los selectores incluyen también la API nueva de MUI X\n * Pickers (v8): `MuiPickersInputBase-root`, `MuiPickersOutlinedInput-*`.\n */\n includePickersApi?: boolean;\n /**\n * Selectores/valores extra que se mergean SOLO cuando labelPosition === 'outside'.\n * Usar para paddings específicos del componente (p.ej. MuiAutocomplete-input).\n */\n extraOutsideSx?: Record<string, any>;\n /**\n * Selectores/valores extra que se mergean SOLO cuando labelPosition === 'floating'.\n */\n extraFloatingSx?: Record<string, any>;\n}\n\nconst toRadius = (borderRadius: number | string) =>\n typeof borderRadius === 'number' ? `${borderRadius}px` : borderRadius;\n\n/**\n * Builder del sx compartido por todos los campos de formulario\n * (Input/Select/Autocomplete/DatePicker/DateTimePicker).\n *\n * Produce:\n * - en modo \"floating\": sólo el border-radius del outlined input;\n * - en modo \"outside\": todo el pack (margen superior, label flotante afuera,\n * input base, notched outline oculto, helper text sin margen izquierdo).\n *\n * Componentes con paddings o selectores propios pueden inyectarlos vía\n * `extraOutsideSx` / `extraFloatingSx`.\n */\nexport const buildFormFieldSx = ({\n borderRadius,\n labelPosition,\n includePickersApi = false,\n extraOutsideSx,\n extraFloatingSx,\n}: BuildFormFieldSxOptions): SxProps<Theme> => {\n const radius = toRadius(borderRadius);\n\n // ── Selectores (alternan según la API de pickers) ────────────────────\n const outlinedRootSelector = includePickersApi\n ? '& .MuiOutlinedInput-root, & .MuiPickersOutlinedInput-root'\n : '& .MuiOutlinedInput-root';\n\n const inputBaseSelector = includePickersApi\n ? '& .MuiInputBase-root, & .MuiPickersInputBase-root'\n : '& .MuiInputBase-root';\n\n const notchedOutlineSelector = includePickersApi\n ? '& .MuiOutlinedInput-notchedOutline, & .MuiPickersOutlinedInput-notchedOutline'\n : '& .MuiOutlinedInput-notchedOutline';\n\n // ── Floating ─────────────────────────────────────────────────────────\n if (labelPosition === 'floating') {\n return {\n [outlinedRootSelector]: { borderRadius: radius },\n ...(extraFloatingSx ?? {}),\n };\n }\n\n // ── Outside ──────────────────────────────────────────────────────────\n return {\n marginTop: LABEL_MARGIN_TOP,\n\n '& .MuiInputLabel-root': {\n color: LABEL_COLOR_REST,\n transition: LABEL_TRANSITION,\n\n // Estado shrunk (focused o con valor): flota ARRIBA del input.\n '&.MuiInputLabel-shrink': {\n transform: LABEL_SHRINK_TRANSFORM,\n transformOrigin: LABEL_TRANSFORM_ORIGIN,\n color: LABEL_COLOR_FILLED,\n fontWeight: LABEL_FONT_WEIGHT_FILLED,\n },\n\n '&.Mui-focused': { color: LABEL_COLOR_FOCUSED },\n },\n\n // Input base — centra verticalmente (clásico y, si aplica, pickers).\n [inputBaseSelector]: {\n borderRadius: radius,\n display: 'flex',\n alignItems: 'center',\n },\n\n // El label flota afuera: ocultar legend del notch.\n [notchedOutlineSelector]: {\n top: 0,\n '& legend': { display: 'none' },\n },\n\n '& .MuiFormHelperText-root': {\n marginLeft: 0,\n },\n\n ...(extraOutsideSx ?? {}),\n };\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAaO,MAAM,mBAAmB;AAGzB,MAAM,wBAAwB;AAI9B,MAAM,yBAAyB;AAG/B,MAAM,yBAAyB;AAG/B,MAAM,mBACX;AAMK,MAAM,mBAAmB;AAGzB,MAAM,qBAAqB;AAG3B,MAAM,sBAAsB;AAG5B,MAAM,2BAA2B;ACRxC,MAAM,WAAW,CAAC,iBAChB,OAAO,iBAAiB,WAAW,GAAG,YAAY,OAAO;AAcpD,MAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB;AAAA,EACA;AACF,MAA+C;AAC7C,QAAM,SAAS,SAAS,YAAY;AAGpC,QAAM,uBAAuB,oBACzB,8DACA;AAEJ,QAAM,oBAAoB,oBACtB,sDACA;AAEJ,QAAM,yBAAyB,oBAC3B,kFACA;AAGJ,MAAI,kBAAkB,YAAY;AAChC,WAAO;AAAA,MACL,CAAC,oBAAoB,GAAG,EAAE,cAAc,OAAA;AAAA,OACpC,4CAAmB,CAAA;AAAA,EAE3B;AAGA,SAAO;AAAA,IACL,WAAW;AAAA,IAEX,yBAAyB;AAAA,MACvB,OAAO;AAAA,MACP,YAAY;AAAA;AAAA,MAGZ,0BAA0B;AAAA,QACxB,WAAW;AAAA,QACX,iBAAiB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,MAAA;AAAA,MAGd,iBAAiB,EAAE,OAAO,oBAAA;AAAA,IAAoB;AAAA;AAAA,IAIhD,CAAC,iBAAiB,GAAG;AAAA,MACnB,cAAc;AAAA,MACd,SAAS;AAAA,MACT,YAAY;AAAA,IAAA;AAAA;AAAA,IAId,CAAC,sBAAsB,GAAG;AAAA,MACxB,KAAK;AAAA,MACL,YAAY,EAAE,SAAS,OAAA;AAAA,IAAO;AAAA,IAGhC,6BAA6B;AAAA,MAC3B,YAAY;AAAA,IAAA;AAAA,KAGV,0CAAkB,CAAA;AAE1B;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"formField.sx-DfVbMe0V.js","sources":["../src/theme/tokens.ts","../src/components/_shared/formField.sx.ts"],"sourcesContent":["/**\n * Design tokens compartidos por los componentes de formulario\n * (Input, Select, Autocomplete, DatePicker, DateTimePicker).\n *\n * Centralizar estos valores garantiza que:\n * - el espaciado, la tipografía y las animaciones del label sean idénticos\n * en todos los campos;\n * - un cambio visual global (p.ej. cambiar el transform del shrink) se haga\n * en un único archivo.\n */\n\n// ── Spacing ──────────────────────────────────────────────────────────────\n/** Margen superior que deja el aire para el label flotante \"outside\". */\nexport const LABEL_MARGIN_TOP = '14px';\n\n/** Padding vertical interno del input (TextField/Select/Picker sections). */\nexport const FIELD_INPUT_PADDING_Y = '8.5px';\n\n// ── Label animation ──────────────────────────────────────────────────────\n/** Transform que aplica el label cuando sube arriba del input (shrink). */\nexport const LABEL_SHRINK_TRANSFORM = 'translate(4px, -22px) scale(0.85)';\n\n/** Origen del transform para el shrink. */\nexport const LABEL_TRANSFORM_ORIGIN = 'top left';\n\n/** Transición del label (color + transform + max-width). */\nexport const LABEL_TRANSITION =\n 'color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms, ' +\n 'transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms, ' +\n 'max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms';\n\n// ── Label colors (theme-aware) ───────────────────────────────────────────\n/** Color del label en reposo. */\nexport const LABEL_COLOR_REST = 'text.secondary';\n\n/** Color del label cuando el campo tiene valor (shrink). */\nexport const LABEL_COLOR_FILLED = 'text.primary';\n\n/** Color del label cuando el campo está focused. */\nexport const LABEL_COLOR_FOCUSED = 'primary.main';\n\n/** Peso del label cuando sube (filled/focused). */\nexport const LABEL_FONT_WEIGHT_FILLED = 500;\n","import type { SxProps, Theme } from '@mui/material/styles';\n\nimport {\n LABEL_COLOR_FILLED,\n LABEL_COLOR_FOCUSED,\n LABEL_COLOR_REST,\n LABEL_FONT_WEIGHT_FILLED,\n LABEL_MARGIN_TOP,\n LABEL_SHRINK_TRANSFORM,\n LABEL_TRANSFORM_ORIGIN,\n LABEL_TRANSITION,\n} from '../../theme/tokens';\n\nexport type LabelPosition = 'outside' | 'floating';\n\nexport interface BuildFormFieldSxOptions {\n borderRadius: number | string;\n labelPosition: LabelPosition;\n /**\n * Si es `true`, los selectores incluyen también la API nueva de MUI X\n * Pickers (v8): `MuiPickersInputBase-root`, `MuiPickersOutlinedInput-*`.\n */\n includePickersApi?: boolean;\n /**\n * Selectores/valores extra que se mergean SOLO cuando labelPosition === 'outside'.\n * Usar para paddings específicos del componente (p.ej. MuiAutocomplete-input).\n */\n extraOutsideSx?: Record<string, any>;\n /**\n * Selectores/valores extra que se mergean SOLO cuando labelPosition === 'floating'.\n */\n extraFloatingSx?: Record<string, any>;\n}\n\nconst toRadius = (borderRadius: number | string) =>\n typeof borderRadius === 'number' ? `${borderRadius}px` : borderRadius;\n\n/**\n * Builder del sx compartido por todos los campos de formulario\n * (Input/Select/Autocomplete/DatePicker/DateTimePicker).\n *\n * Produce:\n * - en modo \"floating\": sólo el border-radius del outlined input;\n * - en modo \"outside\": todo el pack (margen superior, label flotante afuera,\n * input base, notched outline oculto, helper text sin margen izquierdo).\n *\n * Componentes con paddings o selectores propios pueden inyectarlos vía\n * `extraOutsideSx` / `extraFloatingSx`.\n */\nexport const buildFormFieldSx = ({\n borderRadius,\n labelPosition,\n includePickersApi = false,\n extraOutsideSx,\n extraFloatingSx,\n}: BuildFormFieldSxOptions): SxProps<Theme> => {\n const radius = toRadius(borderRadius);\n\n // ── Selectores (alternan según la API de pickers) ────────────────────\n const outlinedRootSelector = includePickersApi\n ? '& .MuiOutlinedInput-root, & .MuiPickersOutlinedInput-root'\n : '& .MuiOutlinedInput-root';\n\n const inputBaseSelector = includePickersApi\n ? '& .MuiInputBase-root, & .MuiPickersInputBase-root'\n : '& .MuiInputBase-root';\n\n const notchedOutlineSelector = includePickersApi\n ? '& .MuiOutlinedInput-notchedOutline, & .MuiPickersOutlinedInput-notchedOutline'\n : '& .MuiOutlinedInput-notchedOutline';\n\n // ── Floating ─────────────────────────────────────────────────────────\n if (labelPosition === 'floating') {\n return {\n [outlinedRootSelector]: { borderRadius: radius },\n ...(extraFloatingSx ?? {}),\n };\n }\n\n // ── Outside ──────────────────────────────────────────────────────────\n return {\n marginTop: LABEL_MARGIN_TOP,\n\n '& .MuiInputLabel-root': {\n color: LABEL_COLOR_REST,\n transition: LABEL_TRANSITION,\n\n // Estado shrunk (focused o con valor): flota ARRIBA del input.\n '&.MuiInputLabel-shrink': {\n transform: LABEL_SHRINK_TRANSFORM,\n transformOrigin: LABEL_TRANSFORM_ORIGIN,\n color: LABEL_COLOR_FILLED,\n fontWeight: LABEL_FONT_WEIGHT_FILLED,\n },\n\n '&.Mui-focused': { color: LABEL_COLOR_FOCUSED },\n },\n\n // Input base — centra verticalmente (clásico y, si aplica, pickers).\n [inputBaseSelector]: {\n borderRadius: radius,\n display: 'flex',\n alignItems: 'center',\n },\n\n // El label flota afuera: ocultar legend del notch.\n [notchedOutlineSelector]: {\n top: 0,\n '& legend': { display: 'none' },\n },\n\n '& .MuiFormHelperText-root': {\n marginLeft: 0,\n },\n\n ...(extraOutsideSx ?? {}),\n };\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAaO,MAAM,mBAAmB;AAGzB,MAAM,wBAAwB;AAI9B,MAAM,yBAAyB;AAG/B,MAAM,yBAAyB;AAG/B,MAAM,mBACX;AAMK,MAAM,mBAAmB;AAGzB,MAAM,qBAAqB;AAG3B,MAAM,sBAAsB;AAG5B,MAAM,2BAA2B;ACRxC,MAAM,WAAW,CAAC,iBAChB,OAAO,iBAAiB,WAAW,GAAG,YAAY,OAAO;AAcpD,MAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB;AAAA,EACA;AACF,MAA+C;AAC7C,QAAM,SAAS,SAAS,YAAY;AAGpC,QAAM,uBAAuB,oBACzB,8DACA;AAEJ,QAAM,oBAAoB,oBACtB,sDACA;AAEJ,QAAM,yBAAyB,oBAC3B,kFACA;AAGJ,MAAI,kBAAkB,YAAY;AAChC,WAAO;AAAA,MACL,CAAC,oBAAoB,GAAG,EAAE,cAAc,OAAA;AAAA,OACpC,4CAAmB,CAAA;AAAA,EAE3B;AAGA,SAAO;AAAA,IACL,WAAW;AAAA,IAEX,yBAAyB;AAAA,MACvB,OAAO;AAAA,MACP,YAAY;AAAA;AAAA,MAGZ,0BAA0B;AAAA,QACxB,WAAW;AAAA,QACX,iBAAiB;AAAA,QACjB,OAAO;AAAA,QACP,YAAY;AAAA,MAAA;AAAA,MAGd,iBAAiB,EAAE,OAAO,oBAAA;AAAA,IAAoB;AAAA;AAAA,IAIhD,CAAC,iBAAiB,GAAG;AAAA,MACnB,cAAc;AAAA,MACd,SAAS;AAAA,MACT,YAAY;AAAA,IAAA;AAAA;AAAA,IAId,CAAC,sBAAsB,GAAG;AAAA,MACxB,KAAK;AAAA,MACL,YAAY,EAAE,SAAS,OAAA;AAAA,IAAO;AAAA,IAGhC,6BAA6B;AAAA,MAC3B,YAAY;AAAA,IAAA;AAAA,KAGV,0CAAkB,CAAA;AAE1B;"}
|
package/hooks/Wizard/Wizard.cjs
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const useWizard = require("../../useWizard-CWdIxZzX.cjs");
|
|
4
|
-
exports.WizardContext = useWizard.WizardContext;
|
|
5
|
-
exports.WizardProvider = useWizard.WizardProvider;
|
|
6
|
-
exports.useWizard = useWizard.useWizard;
|
|
7
|
-
//# sourceMappingURL=Wizard.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Wizard.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
package/hooks/Wizard/Wizard.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Wizard.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/hooks/Wizard/index.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { WizardContextValue } from './WizardContext';
|
|
2
|
-
/**
|
|
3
|
-
* Hook para consumir el `WizardContext` desde cualquier descendiente de
|
|
4
|
-
* `<WizardProvider>`.
|
|
5
|
-
*
|
|
6
|
-
* Si se llama fuera de un provider, devuelve los valores por defecto (no-op)
|
|
7
|
-
* para mantener compatibilidad con el hook original de fri-web-components.
|
|
8
|
-
*/
|
|
9
|
-
export declare function useWizard(): WizardContextValue;
|
package/hooks/Wizard.d.ts
DELETED
package/useWizard-CWdIxZzX.cjs
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const React = require("react");
|
|
3
|
-
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
-
const defaultValue = {
|
|
5
|
-
currentStep: 0,
|
|
6
|
-
totalSteps: 0,
|
|
7
|
-
isFirst: true,
|
|
8
|
-
isLast: true,
|
|
9
|
-
completed: false,
|
|
10
|
-
nextStep: () => {
|
|
11
|
-
},
|
|
12
|
-
prevStep: () => {
|
|
13
|
-
},
|
|
14
|
-
goToStep: () => {
|
|
15
|
-
},
|
|
16
|
-
submitStep: () => {
|
|
17
|
-
},
|
|
18
|
-
reset: () => {
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
const WizardContext = React.createContext(defaultValue);
|
|
22
|
-
const WizardProvider = ({
|
|
23
|
-
totalSteps,
|
|
24
|
-
initialStep = 0,
|
|
25
|
-
onSubmit,
|
|
26
|
-
onStepChange,
|
|
27
|
-
children
|
|
28
|
-
}) => {
|
|
29
|
-
const [currentStep, setCurrentStep] = React.useState(initialStep);
|
|
30
|
-
const [completed, setCompleted] = React.useState(false);
|
|
31
|
-
const changeStep = React.useCallback(
|
|
32
|
-
(newStep) => {
|
|
33
|
-
setCurrentStep((prev) => {
|
|
34
|
-
if (newStep === prev) return prev;
|
|
35
|
-
if (newStep < 0 || newStep >= totalSteps) return prev;
|
|
36
|
-
onStepChange == null ? void 0 : onStepChange(newStep, prev);
|
|
37
|
-
return newStep;
|
|
38
|
-
});
|
|
39
|
-
},
|
|
40
|
-
[totalSteps, onStepChange]
|
|
41
|
-
);
|
|
42
|
-
const nextStep = React.useCallback(() => {
|
|
43
|
-
changeStep(currentStep + 1);
|
|
44
|
-
}, [changeStep, currentStep]);
|
|
45
|
-
const prevStep = React.useCallback(() => {
|
|
46
|
-
changeStep(currentStep - 1);
|
|
47
|
-
}, [changeStep, currentStep]);
|
|
48
|
-
const goToStep = React.useCallback(
|
|
49
|
-
(stepNumber) => {
|
|
50
|
-
changeStep(stepNumber);
|
|
51
|
-
},
|
|
52
|
-
[changeStep]
|
|
53
|
-
);
|
|
54
|
-
const submitStep = React.useCallback(() => {
|
|
55
|
-
setCompleted(true);
|
|
56
|
-
onSubmit == null ? void 0 : onSubmit(currentStep);
|
|
57
|
-
}, [currentStep, onSubmit]);
|
|
58
|
-
const reset = React.useCallback(() => {
|
|
59
|
-
setCurrentStep(initialStep);
|
|
60
|
-
setCompleted(false);
|
|
61
|
-
}, [initialStep]);
|
|
62
|
-
const value = React.useMemo(
|
|
63
|
-
() => ({
|
|
64
|
-
currentStep,
|
|
65
|
-
totalSteps,
|
|
66
|
-
isFirst: currentStep === 0,
|
|
67
|
-
isLast: currentStep === totalSteps - 1,
|
|
68
|
-
completed,
|
|
69
|
-
nextStep,
|
|
70
|
-
prevStep,
|
|
71
|
-
goToStep,
|
|
72
|
-
submitStep,
|
|
73
|
-
reset
|
|
74
|
-
}),
|
|
75
|
-
[
|
|
76
|
-
currentStep,
|
|
77
|
-
totalSteps,
|
|
78
|
-
completed,
|
|
79
|
-
nextStep,
|
|
80
|
-
prevStep,
|
|
81
|
-
goToStep,
|
|
82
|
-
submitStep,
|
|
83
|
-
reset
|
|
84
|
-
]
|
|
85
|
-
);
|
|
86
|
-
return /* @__PURE__ */ jsxRuntime.jsx(WizardContext.Provider, { value, children });
|
|
87
|
-
};
|
|
88
|
-
function useWizard() {
|
|
89
|
-
return React.useContext(WizardContext);
|
|
90
|
-
}
|
|
91
|
-
exports.WizardContext = WizardContext;
|
|
92
|
-
exports.WizardProvider = WizardProvider;
|
|
93
|
-
exports.useWizard = useWizard;
|
|
94
|
-
//# sourceMappingURL=useWizard-CWdIxZzX.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useWizard-CWdIxZzX.cjs","sources":["../src/hooks/Wizard/WizardContext.tsx","../src/hooks/Wizard/useWizard.ts"],"sourcesContent":["import React, {\n createContext,\n useCallback,\n useMemo,\n useState,\n type FC,\n type ReactNode,\n} from 'react';\n\n/**\n * API expuesta por `useWizard()`.\n *\n * Nota de retro-compatibilidad: los nombres `submitStep`, `nextStep`,\n * `prevStep`, `goToStep` se mantienen idénticos al `WizardContext` de\n * `@soyfri/fri-web-components` para que consumers migrando no tengan que\n * cambiar sus llamadas. Se agregan campos extra opcionales que antes no\n * existían (`currentStep`, `totalSteps`, `isFirst`, `isLast`, `completed`).\n */\nexport interface WizardContextValue {\n /** Índice del paso actual (0-based). */\n currentStep: number;\n /** Total de pasos del wizard. */\n totalSteps: number;\n /** True si `currentStep === 0`. */\n isFirst: boolean;\n /** True si `currentStep === totalSteps - 1`. */\n isLast: boolean;\n /** True tras ejecutar `submitStep()` desde el último paso. */\n completed: boolean;\n /** Avanza al siguiente paso (no pasa de `totalSteps - 1`). */\n nextStep: () => void;\n /** Retrocede al paso anterior (no baja de 0). */\n prevStep: () => void;\n /** Salta a un paso específico (0-based). No-op si fuera de rango. */\n goToStep: (stepNumber: number) => void;\n /**\n * Envía el wizard. Marca `completed = true` y dispara el callback\n * `onSubmit` del provider. En el último paso suele reemplazar a `nextStep`.\n */\n submitStep: () => void;\n /** Resetea el wizard al paso inicial y limpia `completed`. */\n reset: () => void;\n}\n\nconst defaultValue: WizardContextValue = {\n currentStep: 0,\n totalSteps: 0,\n isFirst: true,\n isLast: true,\n completed: false,\n nextStep: () => {},\n prevStep: () => {},\n goToStep: () => {},\n submitStep: () => {},\n reset: () => {},\n};\n\nexport const WizardContext = createContext<WizardContextValue>(defaultValue);\n\nexport interface WizardProviderProps {\n /** Número total de pasos del wizard. Requerido. */\n totalSteps: number;\n /** Paso inicial (0-based). Default: 0. */\n initialStep?: number;\n /**\n * Callback disparado cuando se llama `submitStep()`. Recibe el paso actual.\n * El paquete NO ejecuta ninguna petición; queda a cargo del consumer.\n */\n onSubmit?: (currentStep: number) => void;\n /**\n * Callback disparado en cada cambio de paso (next/prev/goTo).\n * Útil para tracking o validaciones externas.\n */\n onStepChange?: (newStep: number, prevStep: number) => void;\n children?: ReactNode;\n}\n\n/**\n * Provider del wizard. Administra el `currentStep` internamente. El consumer\n * no necesita gestionar estado — sólo consumirlo con `useWizard()` desde\n * cualquier descendiente.\n *\n * ```tsx\n * <WizardProvider totalSteps={3} onSubmit={handleFinalSubmit}>\n * <Stepper ... />\n * <StepContent />\n * <WizardControls />\n * </WizardProvider>\n * ```\n */\nexport const WizardProvider: FC<WizardProviderProps> = ({\n totalSteps,\n initialStep = 0,\n onSubmit,\n onStepChange,\n children,\n}) => {\n const [currentStep, setCurrentStep] = useState(initialStep);\n const [completed, setCompleted] = useState(false);\n\n const changeStep = useCallback(\n (newStep: number) => {\n setCurrentStep((prev) => {\n if (newStep === prev) return prev;\n if (newStep < 0 || newStep >= totalSteps) return prev;\n onStepChange?.(newStep, prev);\n return newStep;\n });\n },\n [totalSteps, onStepChange],\n );\n\n const nextStep = useCallback(() => {\n changeStep(currentStep + 1);\n }, [changeStep, currentStep]);\n\n const prevStep = useCallback(() => {\n changeStep(currentStep - 1);\n }, [changeStep, currentStep]);\n\n const goToStep = useCallback(\n (stepNumber: number) => {\n changeStep(stepNumber);\n },\n [changeStep],\n );\n\n const submitStep = useCallback(() => {\n setCompleted(true);\n onSubmit?.(currentStep);\n }, [currentStep, onSubmit]);\n\n const reset = useCallback(() => {\n setCurrentStep(initialStep);\n setCompleted(false);\n }, [initialStep]);\n\n const value = useMemo<WizardContextValue>(\n () => ({\n currentStep,\n totalSteps,\n isFirst: currentStep === 0,\n isLast: currentStep === totalSteps - 1,\n completed,\n nextStep,\n prevStep,\n goToStep,\n submitStep,\n reset,\n }),\n [\n currentStep,\n totalSteps,\n completed,\n nextStep,\n prevStep,\n goToStep,\n submitStep,\n reset,\n ],\n );\n\n return (\n <WizardContext.Provider value={value}>{children}</WizardContext.Provider>\n );\n};\n","import { useContext } from 'react';\nimport { WizardContext, type WizardContextValue } from './WizardContext';\n\n/**\n * Hook para consumir el `WizardContext` desde cualquier descendiente de\n * `<WizardProvider>`.\n *\n * Si se llama fuera de un provider, devuelve los valores por defecto (no-op)\n * para mantener compatibilidad con el hook original de fri-web-components.\n */\nexport function useWizard(): WizardContextValue {\n return useContext(WizardContext);\n}\n"],"names":["createContext","useState","useCallback","useMemo","jsx","useContext"],"mappings":";;;AA4CA,MAAM,eAAmC;AAAA,EACvC,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,YAAY,MAAM;AAAA,EAAC;AAAA,EACnB,OAAO,MAAM;AAAA,EAAC;AAChB;AAEO,MAAM,gBAAgBA,MAAAA,cAAkC,YAAY;AAiCpE,MAAM,iBAA0C,CAAC;AAAA,EACtD;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,aAAa,cAAc,IAAIC,MAAAA,SAAS,WAAW;AAC1D,QAAM,CAAC,WAAW,YAAY,IAAIA,MAAAA,SAAS,KAAK;AAEhD,QAAM,aAAaC,MAAAA;AAAAA,IACjB,CAAC,YAAoB;AACnB,qBAAe,CAAC,SAAS;AACvB,YAAI,YAAY,KAAM,QAAO;AAC7B,YAAI,UAAU,KAAK,WAAW,WAAY,QAAO;AACjD,qDAAe,SAAS;AACxB,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,CAAC,YAAY,YAAY;AAAA,EAAA;AAG3B,QAAM,WAAWA,MAAAA,YAAY,MAAM;AACjC,eAAW,cAAc,CAAC;AAAA,EAC5B,GAAG,CAAC,YAAY,WAAW,CAAC;AAE5B,QAAM,WAAWA,MAAAA,YAAY,MAAM;AACjC,eAAW,cAAc,CAAC;AAAA,EAC5B,GAAG,CAAC,YAAY,WAAW,CAAC;AAE5B,QAAM,WAAWA,MAAAA;AAAAA,IACf,CAAC,eAAuB;AACtB,iBAAW,UAAU;AAAA,IACvB;AAAA,IACA,CAAC,UAAU;AAAA,EAAA;AAGb,QAAM,aAAaA,MAAAA,YAAY,MAAM;AACnC,iBAAa,IAAI;AACjB,yCAAW;AAAA,EACb,GAAG,CAAC,aAAa,QAAQ,CAAC;AAE1B,QAAM,QAAQA,MAAAA,YAAY,MAAM;AAC9B,mBAAe,WAAW;AAC1B,iBAAa,KAAK;AAAA,EACpB,GAAG,CAAC,WAAW,CAAC;AAEhB,QAAM,QAAQC,MAAAA;AAAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAS,gBAAgB;AAAA,MACzB,QAAQ,gBAAgB,aAAa;AAAA,MACrC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAGF,SACEC,2BAAAA,IAAC,cAAc,UAAd,EAAuB,OAAe,SAAA,CAAS;AAEpD;AC3JO,SAAS,YAAgC;AAC9C,SAAOC,MAAAA,WAAW,aAAa;AACjC;;;;"}
|
package/useWizard-CWq--C3o.js
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { createContext, useState, useCallback, useMemo, useContext } from "react";
|
|
2
|
-
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
const defaultValue = {
|
|
4
|
-
currentStep: 0,
|
|
5
|
-
totalSteps: 0,
|
|
6
|
-
isFirst: true,
|
|
7
|
-
isLast: true,
|
|
8
|
-
completed: false,
|
|
9
|
-
nextStep: () => {
|
|
10
|
-
},
|
|
11
|
-
prevStep: () => {
|
|
12
|
-
},
|
|
13
|
-
goToStep: () => {
|
|
14
|
-
},
|
|
15
|
-
submitStep: () => {
|
|
16
|
-
},
|
|
17
|
-
reset: () => {
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
const WizardContext = createContext(defaultValue);
|
|
21
|
-
const WizardProvider = ({
|
|
22
|
-
totalSteps,
|
|
23
|
-
initialStep = 0,
|
|
24
|
-
onSubmit,
|
|
25
|
-
onStepChange,
|
|
26
|
-
children
|
|
27
|
-
}) => {
|
|
28
|
-
const [currentStep, setCurrentStep] = useState(initialStep);
|
|
29
|
-
const [completed, setCompleted] = useState(false);
|
|
30
|
-
const changeStep = useCallback(
|
|
31
|
-
(newStep) => {
|
|
32
|
-
setCurrentStep((prev) => {
|
|
33
|
-
if (newStep === prev) return prev;
|
|
34
|
-
if (newStep < 0 || newStep >= totalSteps) return prev;
|
|
35
|
-
onStepChange == null ? void 0 : onStepChange(newStep, prev);
|
|
36
|
-
return newStep;
|
|
37
|
-
});
|
|
38
|
-
},
|
|
39
|
-
[totalSteps, onStepChange]
|
|
40
|
-
);
|
|
41
|
-
const nextStep = useCallback(() => {
|
|
42
|
-
changeStep(currentStep + 1);
|
|
43
|
-
}, [changeStep, currentStep]);
|
|
44
|
-
const prevStep = useCallback(() => {
|
|
45
|
-
changeStep(currentStep - 1);
|
|
46
|
-
}, [changeStep, currentStep]);
|
|
47
|
-
const goToStep = useCallback(
|
|
48
|
-
(stepNumber) => {
|
|
49
|
-
changeStep(stepNumber);
|
|
50
|
-
},
|
|
51
|
-
[changeStep]
|
|
52
|
-
);
|
|
53
|
-
const submitStep = useCallback(() => {
|
|
54
|
-
setCompleted(true);
|
|
55
|
-
onSubmit == null ? void 0 : onSubmit(currentStep);
|
|
56
|
-
}, [currentStep, onSubmit]);
|
|
57
|
-
const reset = useCallback(() => {
|
|
58
|
-
setCurrentStep(initialStep);
|
|
59
|
-
setCompleted(false);
|
|
60
|
-
}, [initialStep]);
|
|
61
|
-
const value = useMemo(
|
|
62
|
-
() => ({
|
|
63
|
-
currentStep,
|
|
64
|
-
totalSteps,
|
|
65
|
-
isFirst: currentStep === 0,
|
|
66
|
-
isLast: currentStep === totalSteps - 1,
|
|
67
|
-
completed,
|
|
68
|
-
nextStep,
|
|
69
|
-
prevStep,
|
|
70
|
-
goToStep,
|
|
71
|
-
submitStep,
|
|
72
|
-
reset
|
|
73
|
-
}),
|
|
74
|
-
[
|
|
75
|
-
currentStep,
|
|
76
|
-
totalSteps,
|
|
77
|
-
completed,
|
|
78
|
-
nextStep,
|
|
79
|
-
prevStep,
|
|
80
|
-
goToStep,
|
|
81
|
-
submitStep,
|
|
82
|
-
reset
|
|
83
|
-
]
|
|
84
|
-
);
|
|
85
|
-
return /* @__PURE__ */ jsx(WizardContext.Provider, { value, children });
|
|
86
|
-
};
|
|
87
|
-
function useWizard() {
|
|
88
|
-
return useContext(WizardContext);
|
|
89
|
-
}
|
|
90
|
-
export {
|
|
91
|
-
WizardProvider as W,
|
|
92
|
-
WizardContext as a,
|
|
93
|
-
useWizard as u
|
|
94
|
-
};
|
|
95
|
-
//# sourceMappingURL=useWizard-CWq--C3o.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useWizard-CWq--C3o.js","sources":["../src/hooks/Wizard/WizardContext.tsx","../src/hooks/Wizard/useWizard.ts"],"sourcesContent":["import React, {\n createContext,\n useCallback,\n useMemo,\n useState,\n type FC,\n type ReactNode,\n} from 'react';\n\n/**\n * API expuesta por `useWizard()`.\n *\n * Nota de retro-compatibilidad: los nombres `submitStep`, `nextStep`,\n * `prevStep`, `goToStep` se mantienen idénticos al `WizardContext` de\n * `@soyfri/fri-web-components` para que consumers migrando no tengan que\n * cambiar sus llamadas. Se agregan campos extra opcionales que antes no\n * existían (`currentStep`, `totalSteps`, `isFirst`, `isLast`, `completed`).\n */\nexport interface WizardContextValue {\n /** Índice del paso actual (0-based). */\n currentStep: number;\n /** Total de pasos del wizard. */\n totalSteps: number;\n /** True si `currentStep === 0`. */\n isFirst: boolean;\n /** True si `currentStep === totalSteps - 1`. */\n isLast: boolean;\n /** True tras ejecutar `submitStep()` desde el último paso. */\n completed: boolean;\n /** Avanza al siguiente paso (no pasa de `totalSteps - 1`). */\n nextStep: () => void;\n /** Retrocede al paso anterior (no baja de 0). */\n prevStep: () => void;\n /** Salta a un paso específico (0-based). No-op si fuera de rango. */\n goToStep: (stepNumber: number) => void;\n /**\n * Envía el wizard. Marca `completed = true` y dispara el callback\n * `onSubmit` del provider. En el último paso suele reemplazar a `nextStep`.\n */\n submitStep: () => void;\n /** Resetea el wizard al paso inicial y limpia `completed`. */\n reset: () => void;\n}\n\nconst defaultValue: WizardContextValue = {\n currentStep: 0,\n totalSteps: 0,\n isFirst: true,\n isLast: true,\n completed: false,\n nextStep: () => {},\n prevStep: () => {},\n goToStep: () => {},\n submitStep: () => {},\n reset: () => {},\n};\n\nexport const WizardContext = createContext<WizardContextValue>(defaultValue);\n\nexport interface WizardProviderProps {\n /** Número total de pasos del wizard. Requerido. */\n totalSteps: number;\n /** Paso inicial (0-based). Default: 0. */\n initialStep?: number;\n /**\n * Callback disparado cuando se llama `submitStep()`. Recibe el paso actual.\n * El paquete NO ejecuta ninguna petición; queda a cargo del consumer.\n */\n onSubmit?: (currentStep: number) => void;\n /**\n * Callback disparado en cada cambio de paso (next/prev/goTo).\n * Útil para tracking o validaciones externas.\n */\n onStepChange?: (newStep: number, prevStep: number) => void;\n children?: ReactNode;\n}\n\n/**\n * Provider del wizard. Administra el `currentStep` internamente. El consumer\n * no necesita gestionar estado — sólo consumirlo con `useWizard()` desde\n * cualquier descendiente.\n *\n * ```tsx\n * <WizardProvider totalSteps={3} onSubmit={handleFinalSubmit}>\n * <Stepper ... />\n * <StepContent />\n * <WizardControls />\n * </WizardProvider>\n * ```\n */\nexport const WizardProvider: FC<WizardProviderProps> = ({\n totalSteps,\n initialStep = 0,\n onSubmit,\n onStepChange,\n children,\n}) => {\n const [currentStep, setCurrentStep] = useState(initialStep);\n const [completed, setCompleted] = useState(false);\n\n const changeStep = useCallback(\n (newStep: number) => {\n setCurrentStep((prev) => {\n if (newStep === prev) return prev;\n if (newStep < 0 || newStep >= totalSteps) return prev;\n onStepChange?.(newStep, prev);\n return newStep;\n });\n },\n [totalSteps, onStepChange],\n );\n\n const nextStep = useCallback(() => {\n changeStep(currentStep + 1);\n }, [changeStep, currentStep]);\n\n const prevStep = useCallback(() => {\n changeStep(currentStep - 1);\n }, [changeStep, currentStep]);\n\n const goToStep = useCallback(\n (stepNumber: number) => {\n changeStep(stepNumber);\n },\n [changeStep],\n );\n\n const submitStep = useCallback(() => {\n setCompleted(true);\n onSubmit?.(currentStep);\n }, [currentStep, onSubmit]);\n\n const reset = useCallback(() => {\n setCurrentStep(initialStep);\n setCompleted(false);\n }, [initialStep]);\n\n const value = useMemo<WizardContextValue>(\n () => ({\n currentStep,\n totalSteps,\n isFirst: currentStep === 0,\n isLast: currentStep === totalSteps - 1,\n completed,\n nextStep,\n prevStep,\n goToStep,\n submitStep,\n reset,\n }),\n [\n currentStep,\n totalSteps,\n completed,\n nextStep,\n prevStep,\n goToStep,\n submitStep,\n reset,\n ],\n );\n\n return (\n <WizardContext.Provider value={value}>{children}</WizardContext.Provider>\n );\n};\n","import { useContext } from 'react';\nimport { WizardContext, type WizardContextValue } from './WizardContext';\n\n/**\n * Hook para consumir el `WizardContext` desde cualquier descendiente de\n * `<WizardProvider>`.\n *\n * Si se llama fuera de un provider, devuelve los valores por defecto (no-op)\n * para mantener compatibilidad con el hook original de fri-web-components.\n */\nexport function useWizard(): WizardContextValue {\n return useContext(WizardContext);\n}\n"],"names":[],"mappings":";;AA4CA,MAAM,eAAmC;AAAA,EACvC,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,YAAY,MAAM;AAAA,EAAC;AAAA,EACnB,OAAO,MAAM;AAAA,EAAC;AAChB;AAEO,MAAM,gBAAgB,cAAkC,YAAY;AAiCpE,MAAM,iBAA0C,CAAC;AAAA,EACtD;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,WAAW;AAC1D,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,QAAM,aAAa;AAAA,IACjB,CAAC,YAAoB;AACnB,qBAAe,CAAC,SAAS;AACvB,YAAI,YAAY,KAAM,QAAO;AAC7B,YAAI,UAAU,KAAK,WAAW,WAAY,QAAO;AACjD,qDAAe,SAAS;AACxB,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,CAAC,YAAY,YAAY;AAAA,EAAA;AAG3B,QAAM,WAAW,YAAY,MAAM;AACjC,eAAW,cAAc,CAAC;AAAA,EAC5B,GAAG,CAAC,YAAY,WAAW,CAAC;AAE5B,QAAM,WAAW,YAAY,MAAM;AACjC,eAAW,cAAc,CAAC;AAAA,EAC5B,GAAG,CAAC,YAAY,WAAW,CAAC;AAE5B,QAAM,WAAW;AAAA,IACf,CAAC,eAAuB;AACtB,iBAAW,UAAU;AAAA,IACvB;AAAA,IACA,CAAC,UAAU;AAAA,EAAA;AAGb,QAAM,aAAa,YAAY,MAAM;AACnC,iBAAa,IAAI;AACjB,yCAAW;AAAA,EACb,GAAG,CAAC,aAAa,QAAQ,CAAC;AAE1B,QAAM,QAAQ,YAAY,MAAM;AAC9B,mBAAe,WAAW;AAC1B,iBAAa,KAAK;AAAA,EACpB,GAAG,CAAC,WAAW,CAAC;AAEhB,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAS,gBAAgB;AAAA,MACzB,QAAQ,gBAAgB,aAAa;AAAA,MACrC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAGF,SACE,oBAAC,cAAc,UAAd,EAAuB,OAAe,SAAA,CAAS;AAEpD;AC3JO,SAAS,YAAgC;AAC9C,SAAO,WAAW,aAAa;AACjC;"}
|
|
File without changes
|