@soyfri/shared-library 1.5.0 → 1.6.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Button-C17mExpd.cjs.map +1 -0
- package/Button-UkkP-bNw.js.map +1 -0
- package/components/ActionMenu/ActionMenu.cjs +107 -0
- package/components/ActionMenu/ActionMenu.cjs.map +1 -0
- package/components/ActionMenu/ActionMenu.d.ts +44 -0
- package/components/ActionMenu/ActionMenu.js +107 -0
- package/components/ActionMenu/ActionMenu.js.map +1 -0
- package/components/ActionMenu/index.d.ts +2 -0
- package/components/ActionMenu.d.ts +6 -0
- package/components/AppBar/AppBar.cjs +129 -0
- package/components/AppBar/AppBar.cjs.map +1 -0
- package/components/AppBar/AppBar.d.ts +55 -0
- package/components/AppBar/AppBar.js +129 -0
- package/components/AppBar/AppBar.js.map +1 -0
- package/components/AppBar/AppBar.sx.d.ts +12 -0
- package/components/AppBar/AppBarContext.d.ts +18 -0
- package/components/AppBar/AppBarMenuToggle.d.ts +39 -0
- package/components/AppBar/index.d.ts +6 -0
- package/components/AppBar.d.ts +6 -0
- package/components/Autocomplete/Autocomplete.cjs +313 -0
- package/components/Autocomplete/Autocomplete.cjs.map +1 -0
- package/components/Autocomplete/Autocomplete.d.ts +86 -0
- package/components/Autocomplete/Autocomplete.definitions.d.ts +16 -0
- package/components/Autocomplete/Autocomplete.helpers.d.ts +22 -0
- package/components/Autocomplete/Autocomplete.js +313 -0
- package/components/Autocomplete/Autocomplete.js.map +1 -0
- package/components/Autocomplete/Autocomplete.sx.d.ts +7 -0
- package/components/Autocomplete/_parts/AutocompleteChips.d.ts +20 -0
- package/components/Autocomplete/_parts/AutocompleteLoader.d.ts +9 -0
- package/components/Autocomplete/_parts/AutocompleteOption.d.ts +16 -0
- package/components/Autocomplete/index.d.ts +2 -0
- package/components/Autocomplete.d.ts +6 -0
- package/components/Avatar/Avatar.cjs +162 -0
- package/components/Avatar/Avatar.cjs.map +1 -0
- package/components/Avatar/Avatar.d.ts +33 -0
- package/components/Avatar/Avatar.definitions.d.ts +11 -0
- package/components/Avatar/Avatar.js +162 -0
- package/components/Avatar/Avatar.js.map +1 -0
- package/components/Avatar/index.d.ts +2 -0
- package/{dist/components → components}/Button/Button.d.ts +5 -5
- package/{dist/components → components}/Button/index.d.ts +1 -0
- package/components/Card/Card.cjs +99 -0
- package/components/Card/Card.cjs.map +1 -0
- package/components/Card/Card.d.ts +36 -0
- package/components/Card/Card.js +99 -0
- package/components/Card/Card.js.map +1 -0
- package/components/Card/Card.sx.d.ts +14 -0
- package/components/Card/index.d.ts +4 -0
- package/components/Card.d.ts +6 -0
- package/components/Checkbox/Checkbox.cjs +189 -0
- package/components/Checkbox/Checkbox.cjs.map +1 -0
- package/components/Checkbox/Checkbox.d.ts +55 -0
- package/components/Checkbox/Checkbox.js +189 -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/{dist/components → components}/Chip/Chip.cjs +2 -1
- package/components/Chip/Chip.cjs.map +1 -0
- package/{dist/components → components}/Chip/Chip.js +2 -1
- package/components/Chip/Chip.js.map +1 -0
- package/components/Chip/index.d.ts +2 -0
- package/components/Chip.d.ts +6 -0
- package/components/DatePicker/DatePicker.cjs +180 -0
- package/components/DatePicker/DatePicker.cjs.map +1 -0
- package/components/DatePicker/DatePicker.d.ts +44 -0
- package/{dist/components → components}/DatePicker/DatePicker.definitions.d.ts +1 -0
- package/components/DatePicker/DatePicker.helpers.d.ts +7 -0
- package/components/DatePicker/DatePicker.js +180 -0
- package/components/DatePicker/DatePicker.js.map +1 -0
- package/components/DatePicker/DatePicker.sx.d.ts +9 -0
- package/components/DatePicker/index.d.ts +2 -0
- package/components/DatePicker.d.ts +6 -0
- package/components/DateTimePicker/DateTimePicker.cjs +198 -0
- package/components/DateTimePicker/DateTimePicker.cjs.map +1 -0
- package/components/DateTimePicker/DateTimePicker.d.ts +57 -0
- package/{dist/components → components}/DateTimePicker/DateTimePicker.definitions.d.ts +3 -0
- package/components/DateTimePicker/DateTimePicker.helpers.d.ts +13 -0
- package/components/DateTimePicker/DateTimePicker.js +198 -0
- package/components/DateTimePicker/DateTimePicker.js.map +1 -0
- package/components/DateTimePicker/DateTimePicker.sx.d.ts +7 -0
- package/components/DateTimePicker/index.d.ts +2 -0
- package/components/DateTimePicker.d.ts +6 -0
- package/components/Drawer/Drawer.cjs +272 -0
- package/components/Drawer/Drawer.cjs.map +1 -0
- package/components/Drawer/Drawer.d.ts +58 -0
- package/components/Drawer/Drawer.js +272 -0
- package/components/Drawer/Drawer.js.map +1 -0
- package/components/Drawer/Drawer.sx.d.ts +23 -0
- package/components/Drawer/DrawerContext.d.ts +18 -0
- package/components/Drawer/DrawerItem.d.ts +40 -0
- package/components/Drawer/index.d.ts +6 -0
- package/components/Drawer.d.ts +6 -0
- package/{dist/components → components}/Gallery/Gallery.cjs +154 -79
- package/components/Gallery/Gallery.cjs.map +1 -0
- package/components/Gallery/Gallery.d.ts +28 -0
- package/{dist/components → components}/Gallery/Gallery.js +154 -79
- package/components/Gallery/Gallery.js.map +1 -0
- package/components/Gallery/GalleryLightbox.d.ts +16 -0
- package/{dist/components → components}/Gallery/GalleryMain.d.ts +3 -7
- package/components/Gallery/GalleryThumbnails.d.ts +13 -0
- package/components/Gallery/index.d.ts +2 -0
- package/components/Gallery.d.ts +6 -0
- package/{dist/components → components}/Icon/Icon.cjs +49 -10
- package/components/Icon/Icon.cjs.map +1 -0
- package/components/Icon/Icon.d.ts +48 -0
- package/{dist/components → components}/Icon/Icon.js +49 -10
- package/components/Icon/Icon.js.map +1 -0
- package/components/Icon/index.d.ts +2 -0
- package/components/Icon.d.ts +6 -0
- package/components/Input/Input.cjs +188 -0
- package/components/Input/Input.cjs.map +1 -0
- package/components/Input/Input.d.ts +44 -0
- package/{dist/components → components}/Input/Input.definitions.d.ts +6 -2
- package/components/Input/Input.helpers.d.ts +14 -0
- package/components/Input/Input.js +188 -0
- package/components/Input/Input.js.map +1 -0
- package/components/Input/Input.sx.d.ts +8 -0
- package/components/Input/index.d.ts +2 -0
- package/components/Input.d.ts +6 -0
- package/components/InputGroup/InputGroup.cjs +140 -0
- package/components/InputGroup/InputGroup.cjs.map +1 -0
- package/components/InputGroup/InputGroup.d.ts +42 -0
- package/components/InputGroup/InputGroup.definitions.d.ts +6 -0
- package/components/InputGroup/InputGroup.js +140 -0
- package/components/InputGroup/InputGroup.js.map +1 -0
- package/components/InputGroup/index.d.ts +2 -0
- package/components/InputGroup.d.ts +6 -0
- package/components/Modal/Modal.cjs +348 -0
- package/components/Modal/Modal.cjs.map +1 -0
- package/components/Modal/Modal.d.ts +80 -0
- package/components/Modal/Modal.js +348 -0
- package/components/Modal/Modal.js.map +1 -0
- package/components/Modal/ModalBody.d.ts +11 -0
- package/components/Modal/ModalFooter.d.ts +27 -0
- package/components/Modal/ModalHeader.d.ts +11 -0
- package/components/Modal/index.d.ts +8 -0
- package/components/Modal.d.ts +6 -0
- package/components/RadioGroup/RadioGroup.cjs +204 -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 +204 -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 +313 -0
- package/components/Select/Select.cjs.map +1 -0
- package/components/Select/Select.d.ts +95 -0
- package/components/Select/Select.helpers.d.ts +15 -0
- package/components/Select/Select.js +313 -0
- package/components/Select/Select.js.map +1 -0
- package/components/Select/Select.sx.d.ts +7 -0
- package/components/Select/_parts/SelectMenuItem.d.ts +20 -0
- package/components/Select/index.d.ts +2 -0
- package/components/Select.d.ts +6 -0
- package/{dist/components → components}/Stat/Stat.cjs +2 -2
- package/{dist/components → components}/Stat/Stat.cjs.map +1 -1
- package/{dist/components → components}/Stat/Stat.js +2 -2
- package/{dist/components → components}/Stat/Stat.js.map +1 -1
- package/components/Stat/index.d.ts +2 -0
- package/components/Stat.d.ts +6 -0
- package/components/StatusMessage/StatusMessage.cjs +90 -0
- package/components/StatusMessage/StatusMessage.cjs.map +1 -0
- package/components/StatusMessage/StatusMessage.d.ts +28 -0
- package/components/StatusMessage/StatusMessage.js +90 -0
- package/components/StatusMessage/StatusMessage.js.map +1 -0
- package/components/StatusMessage/index.d.ts +2 -0
- package/components/StatusMessage.d.ts +6 -0
- package/components/Stepper/Stepper.cjs +302 -0
- package/components/Stepper/Stepper.cjs.map +1 -0
- package/components/Stepper/Stepper.d.ts +17 -0
- package/components/Stepper/Stepper.js +302 -0
- package/components/Stepper/Stepper.js.map +1 -0
- package/components/Stepper/StepperContext.d.ts +73 -0
- 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 -0
- package/components/Stepper.d.ts +6 -0
- package/components/Switch/Switch.cjs +184 -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 +184 -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/Tabs/Tabs.cjs +112 -0
- package/components/Tabs/Tabs.cjs.map +1 -0
- package/components/Tabs/Tabs.d.ts +24 -0
- package/components/Tabs/Tabs.js +112 -0
- package/components/Tabs/Tabs.js.map +1 -0
- package/components/Tabs/index.d.ts +4 -0
- package/components/Tabs.d.ts +6 -0
- package/{dist/components → components}/Timeline/Timeline.cjs +3 -2
- package/components/Timeline/Timeline.cjs.map +1 -0
- package/components/Timeline/Timeline.d.ts +9 -0
- package/{dist/components → components}/Timeline/Timeline.js +3 -2
- package/components/Timeline/Timeline.js.map +1 -0
- package/components/Timeline/index.d.ts +4 -0
- package/components/Timeline.d.ts +6 -0
- package/components/_shared/formField.sx.d.ts +33 -0
- package/components/_shared/mergeSx.d.ts +7 -0
- package/components/_shared/resolvePreset.d.ts +18 -0
- package/formField.sx-8_QRnKxv.js +68 -0
- package/formField.sx-8_QRnKxv.js.map +1 -0
- package/formField.sx-BAX7KwMR.cjs +67 -0
- package/formField.sx-BAX7KwMR.cjs.map +1 -0
- package/index.cjs +145 -0
- package/index.cjs.map +1 -0
- package/index.d.ts +4 -0
- package/index.js +49 -0
- package/index.js.map +1 -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 +7 -0
- package/package.json +164 -43
- package/resolvePreset-B-IB0ehH.js +15 -0
- package/resolvePreset-B-IB0ehH.js.map +1 -0
- package/resolvePreset-CT3kU-K2.cjs +14 -0
- package/resolvePreset-CT3kU-K2.cjs.map +1 -0
- package/theme/componentStyles.d.ts +32 -0
- package/theme/tokens.d.ts +28 -0
- 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/utils/scrollToTop.d.ts +28 -0
- package/.dockerignore +0 -8
- package/.github/workflows/publish.yml +0 -107
- package/.prettierrc +0 -3
- package/.storybook/main.ts +0 -19
- package/.storybook/preview.ts +0 -14
- package/.storybook/vitest.setup.ts +0 -9
- package/Dockerfile +0 -37
- package/build.js +0 -102
- package/chromatic.config.json +0 -5
- package/cleanDirectories.js +0 -40
- package/dist/Button-C17mExpd.cjs.map +0 -1
- package/dist/Button-UkkP-bNw.js.map +0 -1
- package/dist/DatePicker-BSNboVhN.js +0 -201
- package/dist/DatePicker-BSNboVhN.js.map +0 -1
- package/dist/DatePicker-BoqxWAhj.cjs +0 -200
- package/dist/DatePicker-BoqxWAhj.cjs.map +0 -1
- package/dist/Input-DFHs7cJ_.js +0 -171
- package/dist/Input-DFHs7cJ_.js.map +0 -1
- package/dist/Input-c8MwNNPg.cjs +0 -170
- package/dist/Input-c8MwNNPg.cjs.map +0 -1
- package/dist/Select-BO2N56sm.cjs +0 -411
- package/dist/Select-BO2N56sm.cjs.map +0 -1
- package/dist/Select-BcLkyHSE.js +0 -412
- package/dist/Select-BcLkyHSE.js.map +0 -1
- package/dist/components/Autocomplete/Autocomplete.cjs +0 -109
- package/dist/components/Autocomplete/Autocomplete.cjs.map +0 -1
- package/dist/components/Autocomplete/Autocomplete.d.ts +0 -28
- package/dist/components/Autocomplete/Autocomplete.definitions.d.ts +0 -9
- package/dist/components/Autocomplete/Autocomplete.js +0 -109
- package/dist/components/Autocomplete/Autocomplete.js.map +0 -1
- package/dist/components/Autocomplete/index.d.ts +0 -1
- package/dist/components/Autocomplete.d.ts +0 -2
- package/dist/components/Avatar/Avatar.cjs +0 -126
- package/dist/components/Avatar/Avatar.cjs.map +0 -1
- package/dist/components/Avatar/Avatar.d.ts +0 -19
- package/dist/components/Avatar/Avatar.js +0 -126
- package/dist/components/Avatar/Avatar.js.map +0 -1
- package/dist/components/Avatar/index.d.ts +0 -1
- package/dist/components/Card/Card.cjs +0 -28
- package/dist/components/Card/Card.cjs.map +0 -1
- package/dist/components/Card/Card.d.ts +0 -13
- package/dist/components/Card/Card.js +0 -28
- package/dist/components/Card/Card.js.map +0 -1
- package/dist/components/Card/index.d.ts +0 -1
- package/dist/components/Card.d.ts +0 -2
- package/dist/components/Chip/Chip.cjs.map +0 -1
- package/dist/components/Chip/Chip.js.map +0 -1
- package/dist/components/Chip/index.d.ts +0 -1
- package/dist/components/Chip.d.ts +0 -2
- package/dist/components/DatePicker/DatePicker.cjs +0 -5
- package/dist/components/DatePicker/DatePicker.cjs.map +0 -1
- package/dist/components/DatePicker/DatePicker.d.ts +0 -18
- package/dist/components/DatePicker/DatePicker.js +0 -5
- package/dist/components/DatePicker/DatePicker.js.map +0 -1
- package/dist/components/DatePicker/index.d.ts +0 -1
- package/dist/components/DatePicker.d.ts +0 -2
- package/dist/components/DateTimePicker/DateTimePicker.cjs +0 -208
- package/dist/components/DateTimePicker/DateTimePicker.cjs.map +0 -1
- package/dist/components/DateTimePicker/DateTimePicker.d.ts +0 -28
- package/dist/components/DateTimePicker/DateTimePicker.js +0 -208
- package/dist/components/DateTimePicker/DateTimePicker.js.map +0 -1
- package/dist/components/DateTimePicker/index.d.ts +0 -1
- package/dist/components/DateTimePicker.d.ts +0 -2
- package/dist/components/Gallery/Gallery.cjs.map +0 -1
- package/dist/components/Gallery/Gallery.d.ts +0 -12
- package/dist/components/Gallery/Gallery.js.map +0 -1
- package/dist/components/Gallery/GalleryLightbox.d.ts +0 -20
- package/dist/components/Gallery/GalleryThumbnails.d.ts +0 -17
- package/dist/components/Gallery/index.d.ts +0 -1
- package/dist/components/Gallery.d.ts +0 -2
- package/dist/components/Icon/Icon.cjs.map +0 -1
- package/dist/components/Icon/Icon.d.ts +0 -21
- package/dist/components/Icon/Icon.js.map +0 -1
- package/dist/components/Icon/index.d.ts +0 -1
- package/dist/components/Icon.d.ts +0 -2
- package/dist/components/Input/Input.cjs +0 -5
- package/dist/components/Input/Input.cjs.map +0 -1
- package/dist/components/Input/Input.d.ts +0 -32
- package/dist/components/Input/Input.js +0 -5
- package/dist/components/Input/Input.js.map +0 -1
- package/dist/components/Input/index.d.ts +0 -1
- package/dist/components/Input.d.ts +0 -2
- package/dist/components/InputGroup/InputGroup.cjs +0 -126
- package/dist/components/InputGroup/InputGroup.cjs.map +0 -1
- package/dist/components/InputGroup/InputGroup.d.ts +0 -6
- package/dist/components/InputGroup/InputGroup.js +0 -126
- package/dist/components/InputGroup/InputGroup.js.map +0 -1
- package/dist/components/InputGroup/index.d.ts +0 -1
- package/dist/components/InputGroup.d.ts +0 -2
- package/dist/components/Modal/Modal.cjs +0 -209
- package/dist/components/Modal/Modal.cjs.map +0 -1
- package/dist/components/Modal/Modal.d.ts +0 -29
- package/dist/components/Modal/Modal.js +0 -209
- package/dist/components/Modal/Modal.js.map +0 -1
- package/dist/components/Modal/ModalBody.d.ts +0 -6
- package/dist/components/Modal/ModalFooter.d.ts +0 -19
- package/dist/components/Modal/ModalHeader.d.ts +0 -6
- package/dist/components/Modal/index.d.ts +0 -1
- package/dist/components/Modal.d.ts +0 -2
- package/dist/components/Select/Select.cjs +0 -6
- package/dist/components/Select/Select.cjs.map +0 -1
- package/dist/components/Select/Select.d.ts +0 -60
- package/dist/components/Select/Select.definitions.d.ts +0 -14
- package/dist/components/Select/Select.js +0 -6
- package/dist/components/Select/Select.js.map +0 -1
- package/dist/components/Select/index.d.ts +0 -1
- package/dist/components/Select.d.ts +0 -2
- package/dist/components/Stat/index.d.ts +0 -1
- package/dist/components/Stat.d.ts +0 -2
- package/dist/components/StatusMessage/StatusMessage.cjs +0 -79
- package/dist/components/StatusMessage/StatusMessage.cjs.map +0 -1
- package/dist/components/StatusMessage/StatusMessage.d.ts +0 -44
- package/dist/components/StatusMessage/StatusMessage.js +0 -79
- package/dist/components/StatusMessage/StatusMessage.js.map +0 -1
- package/dist/components/StatusMessage/index.d.ts +0 -1
- package/dist/components/StatusMessage.d.ts +0 -2
- package/dist/components/Stepper/Stepper.cjs +0 -46
- package/dist/components/Stepper/Stepper.cjs.map +0 -1
- package/dist/components/Stepper/Stepper.d.ts +0 -11
- package/dist/components/Stepper/Stepper.js +0 -46
- package/dist/components/Stepper/Stepper.js.map +0 -1
- package/dist/components/Stepper/index.d.ts +0 -2
- package/dist/components/Stepper.d.ts +0 -2
- package/dist/components/Tabs/Tabs.cjs +0 -96
- package/dist/components/Tabs/Tabs.cjs.map +0 -1
- package/dist/components/Tabs/Tabs.d.ts +0 -19
- package/dist/components/Tabs/Tabs.js +0 -96
- package/dist/components/Tabs/Tabs.js.map +0 -1
- package/dist/components/Tabs/index.d.ts +0 -2
- package/dist/components/Tabs.d.ts +0 -2
- package/dist/components/Timeline/Timeline.cjs.map +0 -1
- package/dist/components/Timeline/Timeline.d.ts +0 -13
- package/dist/components/Timeline/Timeline.js.map +0 -1
- package/dist/components/Timeline/index.d.ts +0 -2
- package/dist/components/Timeline.d.ts +0 -2
- package/dist/index.cjs +0 -2
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts +0 -0
- package/dist/index.js +0 -2
- package/dist/index.js.map +0 -1
- package/dist/styles.css +0 -112
- package/rollup.config.cjs +0 -87
- package/src/components/Autocomplete/Autocomplete.definitions.ts +0 -254
- package/src/components/Autocomplete/Autocomplete.stories.tsx +0 -387
- package/src/components/Autocomplete/Autocomplete.tsx +0 -139
- package/src/components/Autocomplete/index.ts +0 -1
- package/src/components/Avatar/Avatar.stories.tsx +0 -54
- package/src/components/Avatar/Avatar.tsx +0 -143
- package/src/components/Avatar/index.ts +0 -1
- package/src/components/Button/Button.definition.ts +0 -97
- package/src/components/Button/Button.stories.tsx +0 -285
- package/src/components/Button/Button.tsx +0 -67
- package/src/components/Button/index.ts +0 -1
- package/src/components/Card/Card.definition.ts +0 -5
- package/src/components/Card/Card.stories.tsx +0 -32
- package/src/components/Card/Card.tsx +0 -44
- package/src/components/Card/index.ts +0 -1
- package/src/components/Chip/Chip.definitions.ts +0 -167
- package/src/components/Chip/Chip.stories.tsx +0 -265
- package/src/components/Chip/Chip.tsx +0 -61
- package/src/components/Chip/index.ts +0 -1
- package/src/components/Column/Column.tsx +0 -29
- package/src/components/Column/index.ts +0 -1
- package/src/components/DatePicker/DatePicker.definitions.ts +0 -205
- package/src/components/DatePicker/DatePicker.stories.tsx +0 -282
- package/src/components/DatePicker/DatePicker.tsx +0 -165
- package/src/components/DatePicker/index.ts +0 -1
- package/src/components/DateRangePicker/DateRangePicker.definitions.ts +0 -191
- package/src/components/DateRangePicker/DateRangePicker.stories.tsx +0 -252
- package/src/components/DateRangePicker/DateRangePicker.tsx +0 -56
- package/src/components/DateRangePicker/index.ts +0 -1
- package/src/components/DateTimePicker/DateTimePicker.definitions.ts +0 -232
- package/src/components/DateTimePicker/DateTimePicker.stories.tsx +0 -390
- package/src/components/DateTimePicker/DateTimePicker.tsx +0 -191
- package/src/components/DateTimePicker/index.ts +0 -1
- package/src/components/Flyout/Flyout.stories.tsx +0 -274
- package/src/components/Flyout/Flyout.tsx +0 -122
- package/src/components/Flyout/index.ts +0 -1
- package/src/components/Gallery/Gallery.definition.tsx +0 -37
- package/src/components/Gallery/Gallery.stories.tsx +0 -82
- package/src/components/Gallery/Gallery.tsx +0 -118
- package/src/components/Gallery/GalleryLightbox.tsx +0 -170
- package/src/components/Gallery/GalleryMain.tsx +0 -84
- package/src/components/Gallery/GalleryThumbnails.tsx +0 -106
- package/src/components/Gallery/index.ts +0 -1
- package/src/components/Icon/Icon.stories.tsx +0 -54
- package/src/components/Icon/Icon.tsx +0 -94
- package/src/components/Icon/index.ts +0 -2
- package/src/components/Input/Input.definitions.ts +0 -252
- package/src/components/Input/Input.stories.tsx +0 -387
- package/src/components/Input/Input.tsx +0 -186
- package/src/components/Input/index.ts +0 -1
- package/src/components/InputGroup/InputGroup.stories.tsx +0 -136
- package/src/components/InputGroup/InputGroup.tsx +0 -136
- package/src/components/InputGroup/index.ts +0 -1
- package/src/components/MenuButton/MenuButton.stories.tsx +0 -197
- package/src/components/MenuButton/MenuButton.tsx +0 -100
- package/src/components/MenuButton/index.ts +0 -1
- package/src/components/Modal/Modal.stories.tsx +0 -293
- package/src/components/Modal/Modal.tsx +0 -173
- package/src/components/Modal/ModalBody.tsx +0 -16
- package/src/components/Modal/ModalFooter.tsx +0 -61
- package/src/components/Modal/ModalHeader.tsx +0 -18
- package/src/components/Modal/index.ts +0 -1
- package/src/components/Select/Select.definitions.ts +0 -488
- package/src/components/Select/Select.stories.tsx +0 -569
- package/src/components/Select/Select.tsx +0 -468
- package/src/components/Select/index.ts +0 -1
- package/src/components/Stat/Stat.stories.tsx +0 -85
- package/src/components/Stat/Stat.tsx +0 -117
- package/src/components/Stat/index.ts +0 -2
- package/src/components/StatusMessage/StatusMessage.stories.tsx +0 -130
- package/src/components/StatusMessage/StatusMessage.tsx +0 -162
- package/src/components/StatusMessage/index.ts +0 -2
- package/src/components/Stepper/Step.tsx +0 -21
- package/src/components/Stepper/Stepper.definition.ts +0 -75
- package/src/components/Stepper/Stepper.stories.tsx +0 -122
- package/src/components/Stepper/Stepper.tsx +0 -59
- package/src/components/Stepper/index.ts +0 -2
- package/src/components/Table/EmptyTable.png +0 -0
- package/src/components/Table/Table.definition.ts +0 -580
- package/src/components/Table/Table.stories.tsx +0 -853
- package/src/components/Table/Table.tsx +0 -495
- package/src/components/Table/data.ts +0 -134
- package/src/components/Table/exportsUtils.ts +0 -195
- package/src/components/Table/index.ts +0 -3
- package/src/components/Table/types.ts +0 -34
- package/src/components/Tabs/Tab.definition.ts +0 -53
- package/src/components/Tabs/Tab.tsx +0 -19
- package/src/components/Tabs/Tabs.stories.tsx +0 -118
- package/src/components/Tabs/Tabs.tsx +0 -99
- package/src/components/Tabs/_tabUtils.tsx +0 -4
- package/src/components/Tabs/index.ts +0 -2
- package/src/components/Timeline/Timeline.definition.ts +0 -43
- package/src/components/Timeline/Timeline.stories.tsx +0 -108
- package/src/components/Timeline/Timeline.tsx +0 -49
- package/src/components/Timeline/TimelineItem.tsx +0 -31
- package/src/components/Timeline/index.ts +0 -2
- package/src/components/Tooltip/Tooltip.stories.tsx +0 -117
- package/src/components/Tooltip/Tooltip.tsx +0 -58
- package/src/components/Tooltip/index.ts +0 -1
- package/src/hooks/ClipBoard/ClipBoard.stories.tsx +0 -168
- package/src/hooks/ClipBoard/ClipBoard.tsx +0 -131
- package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +0 -111
- package/src/hooks/ClipBoard/index.ts +0 -1
- package/src/index.ts +0 -1
- package/src/styles.css +0 -3
- package/tailwind.config.js +0 -10
- package/tsconfig.json +0 -48
- package/tsup.config.js +0 -41
- package/vite.config.js +0 -132
- package/vitest.config.ts +0 -35
- /package/{dist/Button-C17mExpd.cjs → Button-C17mExpd.cjs} +0 -0
- /package/{dist/Button-UkkP-bNw.js → Button-UkkP-bNw.js} +0 -0
- /package/{Readme.md → README.md} +0 -0
- /package/{dist/components → components}/Avatar.d.ts +0 -0
- /package/{dist/components → components}/Button/Button.cjs +0 -0
- /package/{dist/components → components}/Button/Button.cjs.map +0 -0
- /package/{dist/components → components}/Button/Button.definition.d.ts +0 -0
- /package/{dist/components → components}/Button/Button.js +0 -0
- /package/{dist/components → components}/Button/Button.js.map +0 -0
- /package/{dist/components → components}/Button.d.ts +0 -0
- /package/{dist/components → components}/Card/Card.definition.d.ts +0 -0
- /package/{dist/components → components}/Chip/Chip.d.ts +0 -0
- /package/{dist/components → components}/Chip/Chip.definitions.d.ts +0 -0
- /package/{dist/components → components}/Column/Column.cjs +0 -0
- /package/{dist/components → components}/Column/Column.cjs.map +0 -0
- /package/{dist/components → components}/Column/Column.d.ts +0 -0
- /package/{dist/components → components}/Column/Column.js +0 -0
- /package/{dist/components → components}/Column/Column.js.map +0 -0
- /package/{dist/components → components}/Column/index.d.ts +0 -0
- /package/{dist/components → components}/Column.d.ts +0 -0
- /package/{dist/components → components}/DateRangePicker/DateRangePicker.cjs +0 -0
- /package/{dist/components → components}/DateRangePicker/DateRangePicker.cjs.map +0 -0
- /package/{dist/components → components}/DateRangePicker/DateRangePicker.d.ts +0 -0
- /package/{dist/components → components}/DateRangePicker/DateRangePicker.definitions.d.ts +0 -0
- /package/{dist/components → components}/DateRangePicker/DateRangePicker.js +0 -0
- /package/{dist/components → components}/DateRangePicker/DateRangePicker.js.map +0 -0
- /package/{dist/components → components}/DateRangePicker/index.d.ts +0 -0
- /package/{dist/components → components}/DateRangePicker.d.ts +0 -0
- /package/{dist/components → components}/Flyout/Flyout.cjs +0 -0
- /package/{dist/components → components}/Flyout/Flyout.cjs.map +0 -0
- /package/{dist/components → components}/Flyout/Flyout.d.ts +0 -0
- /package/{dist/components → components}/Flyout/Flyout.js +0 -0
- /package/{dist/components → components}/Flyout/Flyout.js.map +0 -0
- /package/{dist/components → components}/Flyout/index.d.ts +0 -0
- /package/{dist/components → components}/Flyout.d.ts +0 -0
- /package/{dist/components → components}/Gallery/Gallery.definition.d.ts +0 -0
- /package/{dist/components → components}/MenuButton/MenuButton.cjs +0 -0
- /package/{dist/components → components}/MenuButton/MenuButton.cjs.map +0 -0
- /package/{dist/components → components}/MenuButton/MenuButton.d.ts +0 -0
- /package/{dist/components → components}/MenuButton/MenuButton.js +0 -0
- /package/{dist/components → components}/MenuButton/MenuButton.js.map +0 -0
- /package/{dist/components → components}/MenuButton/index.d.ts +0 -0
- /package/{dist/components → components}/MenuButton.d.ts +0 -0
- /package/{dist/components → components}/Stat/Stat.d.ts +0 -0
- /package/{dist/components → components}/Stepper/Step.d.ts +0 -0
- /package/{dist/components → components}/Stepper/Stepper.definition.d.ts +0 -0
- /package/{dist/components → components}/Table/Table.cjs +0 -0
- /package/{dist/components → components}/Table/Table.cjs.map +0 -0
- /package/{dist/components → components}/Table/Table.d.ts +0 -0
- /package/{dist/components → components}/Table/Table.definition.d.ts +0 -0
- /package/{dist/components → components}/Table/Table.js +0 -0
- /package/{dist/components → components}/Table/Table.js.map +0 -0
- /package/{dist/components → components}/Table/data.d.ts +0 -0
- /package/{dist/components → components}/Table/exportsUtils.d.ts +0 -0
- /package/{dist/components → components}/Table/index.d.ts +0 -0
- /package/{dist/components → components}/Table/types.d.ts +0 -0
- /package/{dist/components → components}/Table.d.ts +0 -0
- /package/{dist/components → components}/Tabs/Tab.d.ts +0 -0
- /package/{dist/components → components}/Tabs/Tab.definition.d.ts +0 -0
- /package/{dist/components → components}/Tabs/_tabUtils.d.ts +0 -0
- /package/{dist/components → components}/Timeline/Timeline.definition.d.ts +0 -0
- /package/{dist/components → components}/Timeline/TimelineItem.d.ts +0 -0
- /package/{dist/components → components}/Tooltip/Tooltip.cjs +0 -0
- /package/{dist/components → components}/Tooltip/Tooltip.cjs.map +0 -0
- /package/{dist/components → components}/Tooltip/Tooltip.d.ts +0 -0
- /package/{dist/components → components}/Tooltip/Tooltip.js +0 -0
- /package/{dist/components → components}/Tooltip/Tooltip.js.map +0 -0
- /package/{dist/components → components}/Tooltip/index.d.ts +0 -0
- /package/{dist/components → components}/Tooltip.d.ts +0 -0
- /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.cjs +0 -0
- /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.cjs.map +0 -0
- /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.d.ts +0 -0
- /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.js +0 -0
- /package/{dist/hooks → hooks}/ClipBoard/ClipBoard.js.map +0 -0
- /package/{dist/hooks → hooks}/ClipBoard/ClipboardUnifiedDemo.d.ts +0 -0
- /package/{dist/hooks → hooks}/ClipBoard/index.d.ts +0 -0
- /package/{dist/hooks → hooks}/ClipBoard.d.ts +0 -0
- /package/{dist/index.css → index.css} +0 -0
|
@@ -1,293 +0,0 @@
|
|
|
1
|
-
import React, { useState, useRef } from 'react'; // 👈 Importa useRef
|
|
2
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
3
|
-
|
|
4
|
-
import { Button, Typography, Box } from '@mui/material';
|
|
5
|
-
import { fn } from '@storybook/test';
|
|
6
|
-
import Modal, { ModalRef } from './Modal';
|
|
7
|
-
import { useClipboard } from '../../hooks/ClipBoard';
|
|
8
|
-
|
|
9
|
-
const meta: Meta<typeof Modal> = {
|
|
10
|
-
title: 'Components/Modal',
|
|
11
|
-
component: Modal,
|
|
12
|
-
tags: ['autodocs'],
|
|
13
|
-
argTypes: {
|
|
14
|
-
open: {
|
|
15
|
-
control: 'boolean',
|
|
16
|
-
description: 'Controla si el modal está abierto o cerrado (uso controlado). Opcional si se usa el control imperativo con `ref`.',
|
|
17
|
-
},
|
|
18
|
-
onClose: {
|
|
19
|
-
action: 'onClose clickeado',
|
|
20
|
-
description: 'Función a ejecutar cuando el modal solicita cerrarse (ej. clic fuera o botón de cerrar). Opcional si se usa el control imperativo con `ref`.',
|
|
21
|
-
},
|
|
22
|
-
title: {
|
|
23
|
-
control: 'text',
|
|
24
|
-
description: 'Título opcional para el encabezado del modal. Se usará si no se proporciona `Modal.Header` explícitamente.',
|
|
25
|
-
},
|
|
26
|
-
children: {
|
|
27
|
-
control: 'object',
|
|
28
|
-
description: 'Contenido del modal, típicamente `Modal.Header`, `Modal.Body` y `Modal.Footer`.',
|
|
29
|
-
},
|
|
30
|
-
showCloseButton: {
|
|
31
|
-
control: 'boolean',
|
|
32
|
-
description: 'Controla la visibilidad del botón "Cerrar" por defecto en el `Modal.Footer`.',
|
|
33
|
-
},
|
|
34
|
-
closeButtonText: {
|
|
35
|
-
control: 'text',
|
|
36
|
-
description: 'Texto personalizado para el botón "Cerrar".',
|
|
37
|
-
},
|
|
38
|
-
closeButtonDisabled: {
|
|
39
|
-
control: 'boolean',
|
|
40
|
-
description: 'Deshabilita el botón "Cerrar".',
|
|
41
|
-
},
|
|
42
|
-
actions: {
|
|
43
|
-
control: 'object',
|
|
44
|
-
description: 'Un arreglo de objetos `ModalAction` para botones de acción personalizados en el `Modal.Footer`.',
|
|
45
|
-
},
|
|
46
|
-
maxWidth: {
|
|
47
|
-
control: 'select',
|
|
48
|
-
options: ['xs', 'sm', 'md', 'lg', 'xl', false],
|
|
49
|
-
description: 'Tamaño máximo del modal (propiedad de Material-UI `Dialog`).',
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
parameters: {
|
|
53
|
-
docs: {
|
|
54
|
-
description: {
|
|
55
|
-
component: 'Un componente de modal reutilizable de Material-UI con una estructura de componente compuesto (`Modal.Header`, `Modal.Body`, `Modal.Footer`). Puede ser controlado por una prop `open` o de forma imperativa a través de `ref` (`open()` y `close()` métodos). Permite definir acciones personalizadas y controlar la visibilidad y el estado de los botones por defecto.',
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
export default meta;
|
|
62
|
-
type Story = StoryObj<typeof Modal>;
|
|
63
|
-
|
|
64
|
-
// --- Historias ---
|
|
65
|
-
|
|
66
|
-
// Historia base: Modal simple con título y contenido básico (uso controlado por estado)
|
|
67
|
-
export const Default: Story = {
|
|
68
|
-
args: {
|
|
69
|
-
open: true,
|
|
70
|
-
onClose: fn(),
|
|
71
|
-
title: 'Modal de Ejemplo (Controlado por Estado)',
|
|
72
|
-
children: (
|
|
73
|
-
<Modal.Body>
|
|
74
|
-
<Typography>Este es el contenido principal del modal.</Typography>
|
|
75
|
-
<Typography sx={{ mt: 2 }}>Puedes colocar cualquier elemento React aquí.</Typography>
|
|
76
|
-
</Modal.Body>
|
|
77
|
-
),
|
|
78
|
-
showCloseButton: true,
|
|
79
|
-
closeButtonText: 'Cerrar',
|
|
80
|
-
actions: [
|
|
81
|
-
{ text: 'Guardar', onClick: fn(() => console.log("some some")), variant: 'contained' },
|
|
82
|
-
{ text: 'Aceptar', onClick: fn(), color: 'success' },
|
|
83
|
-
],
|
|
84
|
-
},
|
|
85
|
-
parameters: {
|
|
86
|
-
docs: {
|
|
87
|
-
description: {
|
|
88
|
-
story: 'Muestra un modal básico con un título y botones de acción, controlado por una prop `open` en el componente padre.',
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
// Nueva Historia: Modal controlado de forma Imperativa (sin estado `open` en el padre)
|
|
95
|
-
export const ImperativeControl: Story = {
|
|
96
|
-
render: (args) => {
|
|
97
|
-
const modalRef = useRef<ModalRef>(null);
|
|
98
|
-
|
|
99
|
-
const handleOpen = () => {
|
|
100
|
-
modalRef.current?.open();
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
const handleConfirm = () => {
|
|
104
|
-
alert('Acción confirmada desde el modal imperativo!');
|
|
105
|
-
modalRef.current?.close();
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
return (
|
|
109
|
-
<Box>
|
|
110
|
-
<Button onClick={handleOpen} variant="contained">
|
|
111
|
-
Abrir Modal Imperativo
|
|
112
|
-
</Button>
|
|
113
|
-
|
|
114
|
-
<Modal
|
|
115
|
-
ref={modalRef} // Asigna la ref al modal
|
|
116
|
-
// No se pasa la prop `open` aquí, el modal gestiona su estado interno
|
|
117
|
-
onClose={fn(() => console.log('Modal cerrado imperativamente'))} // El padre aún puede escuchar el cierre
|
|
118
|
-
title="Modal Controlado Imperativamente"
|
|
119
|
-
showCloseButton={true}
|
|
120
|
-
closeButtonText="Cerrar"
|
|
121
|
-
actions={[{ text: 'Aceptar', onClick: handleConfirm, variant: 'contained' }]}
|
|
122
|
-
maxWidth="sm"
|
|
123
|
-
{...args} // Pasa otras props del story
|
|
124
|
-
>
|
|
125
|
-
<Modal.Body>
|
|
126
|
-
<Typography>Este modal se abre y cierra llamando a métodos de la `ref`.</Typography>
|
|
127
|
-
<Typography sx={{ mt: 2 }}>No hay un `useState` para `open` en este componente padre.</Typography>
|
|
128
|
-
</Modal.Body>
|
|
129
|
-
</Modal>
|
|
130
|
-
</Box>
|
|
131
|
-
);
|
|
132
|
-
},
|
|
133
|
-
args: {
|
|
134
|
-
// Las props 'open' y 'onClose' se omiten o se gestionan internamente en el render
|
|
135
|
-
open: undefined, // Asegúrate de que `open` no se pase para activar el control interno
|
|
136
|
-
onClose: undefined, // `onClose` se gestiona en el render
|
|
137
|
-
},
|
|
138
|
-
parameters: {
|
|
139
|
-
docs: {
|
|
140
|
-
description: {
|
|
141
|
-
story: 'Demuestra cómo controlar el modal de forma imperativa usando `useRef` y los métodos `open()` y `close()` expuestos por el modal, sin necesidad de gestionar un estado `open` en el componente padre.',
|
|
142
|
-
},
|
|
143
|
-
},
|
|
144
|
-
},
|
|
145
|
-
};
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
// Historia: Modal con estructura de componente compuesto completa
|
|
149
|
-
export const CompleteStructure: Story = {
|
|
150
|
-
args: {
|
|
151
|
-
open: true,
|
|
152
|
-
onClose: fn(),
|
|
153
|
-
maxWidth: 'md',
|
|
154
|
-
children: (
|
|
155
|
-
<>
|
|
156
|
-
<Modal.Header>
|
|
157
|
-
<Typography variant="h6">Detalles del Artículo</Typography>
|
|
158
|
-
</Modal.Header>
|
|
159
|
-
<Modal.Body>
|
|
160
|
-
<Box sx={{ p: 2, border: '1px dashed grey', borderRadius: 1 }}>
|
|
161
|
-
<Typography>Aquí va un formulario complejo o información detallada.</Typography>
|
|
162
|
-
<Typography sx={{ mt: 1 }}>El cuerpo puede crecer y tener scroll si es necesario.</Typography>
|
|
163
|
-
<Button onClick={fn()} sx={{ mt: 2 }}>Acción en el cuerpo</Button>
|
|
164
|
-
</Box>
|
|
165
|
-
</Modal.Body>
|
|
166
|
-
<Modal.Footer
|
|
167
|
-
showCloseButton={false}
|
|
168
|
-
onClose={fn()} // Added onClose property
|
|
169
|
-
actions={[
|
|
170
|
-
{ text: 'Cancelar', onClick: fn(), variant: 'outlined', color: 'error' },
|
|
171
|
-
{ text: 'Confirmar Envío', onClick: fn(), variant: 'contained', color: 'primary' },
|
|
172
|
-
]}
|
|
173
|
-
>
|
|
174
|
-
<Typography variant="caption" sx={{ mr: 2 }}>
|
|
175
|
-
Requiere confirmación.
|
|
176
|
-
</Typography>
|
|
177
|
-
</Modal.Footer>
|
|
178
|
-
</>
|
|
179
|
-
),
|
|
180
|
-
},
|
|
181
|
-
parameters: {
|
|
182
|
-
docs: {
|
|
183
|
-
description: {
|
|
184
|
-
story: 'Demuestra el uso completo de la estructura de componente compuesto (`Modal.Header`, `Modal.Body`, `Modal.Footer`) con contenido variado y control de botones.',
|
|
185
|
-
},
|
|
186
|
-
},
|
|
187
|
-
},
|
|
188
|
-
};
|
|
189
|
-
|
|
190
|
-
// Historia: Modal sin botón de cerrar por defecto
|
|
191
|
-
export const NoDefaultCloseButton: Story = {
|
|
192
|
-
args: {
|
|
193
|
-
...Default.args,
|
|
194
|
-
title: 'Modal sin botón de cerrar',
|
|
195
|
-
showCloseButton: false,
|
|
196
|
-
actions: [
|
|
197
|
-
{ text: 'Entendido', onClick: fn(), variant: 'contained' },
|
|
198
|
-
],
|
|
199
|
-
},
|
|
200
|
-
parameters: {
|
|
201
|
-
docs: {
|
|
202
|
-
description: {
|
|
203
|
-
story: 'Un modal que no muestra el botón "Cerrar" por defecto, forzando al usuario a usar las acciones personalizadas.',
|
|
204
|
-
},
|
|
205
|
-
},
|
|
206
|
-
},
|
|
207
|
-
};
|
|
208
|
-
|
|
209
|
-
// Historia: Modal con botón de cerrar deshabilitado
|
|
210
|
-
export const DisabledCloseButton: Story = {
|
|
211
|
-
args: {
|
|
212
|
-
...Default.args,
|
|
213
|
-
title: 'Modal con botón de cerrar deshabilitado',
|
|
214
|
-
closeButtonDisabled: true,
|
|
215
|
-
actions: [
|
|
216
|
-
{ text: 'Habilitar', onClick: fn(), variant: 'contained' },
|
|
217
|
-
],
|
|
218
|
-
},
|
|
219
|
-
parameters: {
|
|
220
|
-
docs: {
|
|
221
|
-
description: {
|
|
222
|
-
story: 'Muestra un modal donde el botón "Cerrar" por defecto está deshabilitado.',
|
|
223
|
-
},
|
|
224
|
-
},
|
|
225
|
-
},
|
|
226
|
-
};
|
|
227
|
-
|
|
228
|
-
// Historia: Modal con diferentes tamaños (maxWidth)
|
|
229
|
-
export const Sizing: Story = {
|
|
230
|
-
render: (args: any) => {
|
|
231
|
-
const [openXs, setOpenXs] = useState(false);
|
|
232
|
-
const [openLg, setOpenLg] = useState(false);
|
|
233
|
-
const { ref, SnackbarComponent } = useClipboard();
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
return (
|
|
238
|
-
<Box sx={{ display: 'flex', gap: 2 }}>
|
|
239
|
-
<Button onClick={() => setOpenXs(true)} variant="outlined">Abrir XS</Button>
|
|
240
|
-
<Button onClick={() => setOpenLg(true)} variant="outlined">Abrir LG</Button>
|
|
241
|
-
|
|
242
|
-
<Modal {...args} open={openXs} onClose={() => setOpenXs(false)} title="Modal XS" maxWidth="xs">
|
|
243
|
-
<Modal.Body><Typography>Este es un modal de tamaño extra pequeño.</Typography></Modal.Body>
|
|
244
|
-
</Modal>
|
|
245
|
-
|
|
246
|
-
<Modal {...args} open={openLg} onClose={() => setOpenLg(false)} title="Modal LG" maxWidth="lg">
|
|
247
|
-
<Modal.Body>
|
|
248
|
-
<Typography ref={ref}>Este es un modal de tamaño grande.</Typography>
|
|
249
|
-
<SnackbarComponent />
|
|
250
|
-
</Modal.Body>
|
|
251
|
-
</Modal>
|
|
252
|
-
</Box>
|
|
253
|
-
);
|
|
254
|
-
},
|
|
255
|
-
args: {
|
|
256
|
-
open: false,
|
|
257
|
-
onClose: fn(),
|
|
258
|
-
},
|
|
259
|
-
parameters: {
|
|
260
|
-
docs: {
|
|
261
|
-
description: {
|
|
262
|
-
story: 'Demuestra cómo el modal se ajusta a diferentes tamaños (`maxWidth`) definidos por las propiedades de Material-UI.',
|
|
263
|
-
},
|
|
264
|
-
},
|
|
265
|
-
},
|
|
266
|
-
};
|
|
267
|
-
|
|
268
|
-
// Historia: Modal con texto largo en el cuerpo (para probar el scroll)
|
|
269
|
-
export const LongContent: Story = {
|
|
270
|
-
args: {
|
|
271
|
-
open: true,
|
|
272
|
-
onClose: fn(),
|
|
273
|
-
title: 'Modal con Contenido Largo',
|
|
274
|
-
maxWidth: 'sm',
|
|
275
|
-
children: (
|
|
276
|
-
<Modal.Body>
|
|
277
|
-
{Array.from({ length: 30 }, (_, i) => (
|
|
278
|
-
<Typography key={i} sx={{ mb: 1 }}>
|
|
279
|
-
Este es un párrafo de contenido largo para probar el scroll del modal. Línea {i + 1}.
|
|
280
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|
|
281
|
-
</Typography>
|
|
282
|
-
))}
|
|
283
|
-
</Modal.Body>
|
|
284
|
-
),
|
|
285
|
-
},
|
|
286
|
-
parameters: {
|
|
287
|
-
docs: {
|
|
288
|
-
description: {
|
|
289
|
-
story: 'Muestra un modal con un cuerpo que contiene mucho texto, demostrando la funcionalidad de scroll automático.',
|
|
290
|
-
},
|
|
291
|
-
},
|
|
292
|
-
},
|
|
293
|
-
};
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import React, { useState, useImperativeHandle, forwardRef } from 'react'; // 👈 Importa useImperativeHandle y forwardRef
|
|
2
|
-
import { Modal as MuiModal, Box, Paper, useTheme, useMediaQuery } from '@mui/material';
|
|
3
|
-
|
|
4
|
-
import { DialogProps } from '@mui/material/Dialog';
|
|
5
|
-
import { ModalAction, ModalFooter, ModalFooterProps } from './ModalFooter';
|
|
6
|
-
import { ModalHeader } from './ModalHeader';
|
|
7
|
-
import { ModalBody } from './ModalBody';
|
|
8
|
-
|
|
9
|
-
// Define la interfaz para los métodos que el padre puede llamar a través de la ref
|
|
10
|
-
export interface ModalRef {
|
|
11
|
-
open: () => void;
|
|
12
|
-
close: () => void;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
interface ModalProps {
|
|
16
|
-
// La prop 'open' ahora es opcional si se usa con ref, pero aún puede ser controlada externamente
|
|
17
|
-
open?: boolean;
|
|
18
|
-
onClose?: () => void; // 'onClose' ahora es opcional ya que el modal puede cerrarse internamente
|
|
19
|
-
title?: string;
|
|
20
|
-
children: React.ReactNode;
|
|
21
|
-
showCloseButton?: boolean;
|
|
22
|
-
closeButtonText?: string;
|
|
23
|
-
closeButtonDisabled?: boolean;
|
|
24
|
-
actions?: ModalAction[];
|
|
25
|
-
maxWidth?: DialogProps['maxWidth'];
|
|
26
|
-
hiddenFooter?: boolean
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const modalStyle = {
|
|
30
|
-
position: 'absolute' as 'absolute',
|
|
31
|
-
top: '50%',
|
|
32
|
-
left: '50%',
|
|
33
|
-
transform: 'translate(-50%, -50%)',
|
|
34
|
-
width: '90%',
|
|
35
|
-
maxHeight: '90vh',
|
|
36
|
-
display: 'flex',
|
|
37
|
-
flexDirection: 'column',
|
|
38
|
-
outline: 'none',
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
// Envuelve el componente en forwardRef
|
|
42
|
-
export const Modal = forwardRef<ModalRef, ModalProps>(({
|
|
43
|
-
open: controlledOpen, // Renombra la prop 'open' si se pasa externamente
|
|
44
|
-
onClose: controlledOnClose, // Renombra la prop 'onClose' si se pasa externamente
|
|
45
|
-
title,
|
|
46
|
-
children,
|
|
47
|
-
showCloseButton = true,
|
|
48
|
-
closeButtonText = "Cerrar",
|
|
49
|
-
closeButtonDisabled = false,
|
|
50
|
-
actions = [],
|
|
51
|
-
maxWidth = 'sm',
|
|
52
|
-
hiddenFooter = false,
|
|
53
|
-
}, ref) => { // Recibe la ref
|
|
54
|
-
// Estado interno para gestionar la visibilidad si no es controlado externamente
|
|
55
|
-
const [internalOpen, setInternalOpen] = useState(false);
|
|
56
|
-
|
|
57
|
-
// Determina si el modal está abierto, priorizando la prop externa
|
|
58
|
-
const isOpen = controlledOpen !== undefined ? controlledOpen : internalOpen;
|
|
59
|
-
|
|
60
|
-
// Expone métodos 'open' y 'close' a través de la ref
|
|
61
|
-
useImperativeHandle(ref, () => ({
|
|
62
|
-
open: () => setInternalOpen(true),
|
|
63
|
-
close: () => {
|
|
64
|
-
setInternalOpen(false);
|
|
65
|
-
controlledOnClose?.(); // Llama al onClose externo si existe
|
|
66
|
-
},
|
|
67
|
-
}));
|
|
68
|
-
|
|
69
|
-
const handleCloseInternal = () => {
|
|
70
|
-
setInternalOpen(false);
|
|
71
|
-
controlledOnClose?.(); // Llama al onClose externo si existe
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
const theme = useTheme();
|
|
75
|
-
const isMobile = useMediaQuery(theme.breakpoints.down('sm'));
|
|
76
|
-
|
|
77
|
-
const getWidth = () => {
|
|
78
|
-
if (isMobile) return '95%';
|
|
79
|
-
switch (maxWidth) {
|
|
80
|
-
case 'xs': return 300;
|
|
81
|
-
case 'sm': return 500;
|
|
82
|
-
case 'md': return 700;
|
|
83
|
-
case 'lg': return 900;
|
|
84
|
-
case 'xl': return 1100;
|
|
85
|
-
case false: return 'auto';
|
|
86
|
-
default: return 500;
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
const renderChildren = () => {
|
|
91
|
-
let header: React.ReactNode | null = null;
|
|
92
|
-
let body: React.ReactNode | null = null;
|
|
93
|
-
let footer: React.ReactNode | null = null;
|
|
94
|
-
|
|
95
|
-
React.Children.forEach(children, (child) => {
|
|
96
|
-
if (React.isValidElement(child)) {
|
|
97
|
-
if (child.type === ModalHeader) {
|
|
98
|
-
header = child;
|
|
99
|
-
} else if (child.type === ModalBody) {
|
|
100
|
-
body = child;
|
|
101
|
-
} else if (child.type === ModalFooter) {
|
|
102
|
-
const footerChild = child as React.ReactElement<ModalFooterProps>;
|
|
103
|
-
const {
|
|
104
|
-
showCloseButton: childShowCloseButton,
|
|
105
|
-
closeButtonText: childCloseButtonText,
|
|
106
|
-
closeButtonDisabled: childCloseButtonDisabled,
|
|
107
|
-
onClose: childOnClose,
|
|
108
|
-
actions: childActions,
|
|
109
|
-
...restOfFooterProps
|
|
110
|
-
} = footerChild.props;
|
|
111
|
-
|
|
112
|
-
footer = React.cloneElement(footerChild, {
|
|
113
|
-
showCloseButton,
|
|
114
|
-
closeButtonText,
|
|
115
|
-
closeButtonDisabled,
|
|
116
|
-
onClose: handleCloseInternal, // Usa la función de cierre interna
|
|
117
|
-
actions,
|
|
118
|
-
...restOfFooterProps,
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
if (!footer && !hiddenFooter) {
|
|
125
|
-
footer = (
|
|
126
|
-
<ModalFooter
|
|
127
|
-
showCloseButton={showCloseButton}
|
|
128
|
-
closeButtonText={closeButtonText}
|
|
129
|
-
closeButtonDisabled={closeButtonDisabled}
|
|
130
|
-
onClose={handleCloseInternal} // Usa la función de cierre interna
|
|
131
|
-
actions={actions}
|
|
132
|
-
/>
|
|
133
|
-
);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
return (
|
|
137
|
-
<>
|
|
138
|
-
{header || (title && <ModalHeader>{title}</ModalHeader>)}
|
|
139
|
-
{body}
|
|
140
|
-
{footer}
|
|
141
|
-
</>
|
|
142
|
-
);
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
return (
|
|
146
|
-
<MuiModal
|
|
147
|
-
open={isOpen} // Usa el estado de visibilidad determinado
|
|
148
|
-
onClose={handleCloseInternal} // Usa la función de cierre interna
|
|
149
|
-
aria-labelledby="modal-title"
|
|
150
|
-
aria-describedby="modal-description"
|
|
151
|
-
closeAfterTransition
|
|
152
|
-
>
|
|
153
|
-
<Paper sx={{ ...modalStyle, width: getWidth() }}>
|
|
154
|
-
{renderChildren()}
|
|
155
|
-
</Paper>
|
|
156
|
-
</MuiModal>
|
|
157
|
-
);
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
// Define los sub-componentes como propiedades estáticas con tipos explícitos
|
|
161
|
-
type ModalComponent = React.ForwardRefExoticComponent<ModalProps & React.RefAttributes<ModalRef>> & {
|
|
162
|
-
Header: typeof ModalHeader;
|
|
163
|
-
Body: typeof ModalBody;
|
|
164
|
-
Footer: typeof ModalFooter;
|
|
165
|
-
};
|
|
166
|
-
|
|
167
|
-
const ModalWithStatics = Modal as ModalComponent;
|
|
168
|
-
|
|
169
|
-
ModalWithStatics.Header = ModalHeader;
|
|
170
|
-
ModalWithStatics.Body = ModalBody;
|
|
171
|
-
ModalWithStatics.Footer = ModalFooter;
|
|
172
|
-
|
|
173
|
-
export default ModalWithStatics;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Box } from '@mui/material';
|
|
3
|
-
|
|
4
|
-
interface ModalBodyProps { // Renombrado
|
|
5
|
-
children: React.ReactNode;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export const ModalBody: React.FC<ModalBodyProps> = ({ children }) => { // Renombrado
|
|
9
|
-
return (
|
|
10
|
-
<Box sx={{ padding: 2, overflowY: 'auto', flexGrow: 1 }}>
|
|
11
|
-
{children}
|
|
12
|
-
</Box>
|
|
13
|
-
);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export default ModalBody;
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Box, Button, Stack } from '@mui/material';
|
|
3
|
-
import { ButtonProps } from '@mui/material/Button';
|
|
4
|
-
|
|
5
|
-
// Interfaz para acciones personalizadas (se mantiene aquí)
|
|
6
|
-
export interface ModalAction {
|
|
7
|
-
text: string;
|
|
8
|
-
onClick: () => void;
|
|
9
|
-
disabled?: boolean;
|
|
10
|
-
variant?: ButtonProps['variant'];
|
|
11
|
-
color?: ButtonProps['color'];
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface ModalFooterProps { // Renombrado
|
|
15
|
-
children?: React.ReactNode;
|
|
16
|
-
showCloseButton?: boolean;
|
|
17
|
-
closeButtonText?: string;
|
|
18
|
-
closeButtonDisabled?: boolean;
|
|
19
|
-
onClose: () => void;
|
|
20
|
-
actions?: ModalAction[];
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export const ModalFooter: React.FC<ModalFooterProps> = ({ // Renombrado
|
|
24
|
-
children,
|
|
25
|
-
showCloseButton = true,
|
|
26
|
-
closeButtonText = "Cerrar",
|
|
27
|
-
closeButtonDisabled = false,
|
|
28
|
-
onClose,
|
|
29
|
-
actions = [],
|
|
30
|
-
}) => {
|
|
31
|
-
return (
|
|
32
|
-
<Box sx={{ padding: 2, borderTop: '1px solid #e0e0e0', display: 'flex', justifyContent: 'flex-end', gap: 1 }}>
|
|
33
|
-
{children}
|
|
34
|
-
<Stack direction="row" spacing={1}>
|
|
35
|
-
{showCloseButton && (
|
|
36
|
-
<Button
|
|
37
|
-
onClick={onClose}
|
|
38
|
-
disabled={closeButtonDisabled}
|
|
39
|
-
variant="outlined"
|
|
40
|
-
color="secondary"
|
|
41
|
-
>
|
|
42
|
-
{closeButtonText}
|
|
43
|
-
</Button>
|
|
44
|
-
)}
|
|
45
|
-
{actions.map((action, index) => (
|
|
46
|
-
<Button
|
|
47
|
-
key={index}
|
|
48
|
-
onClick={action.onClick}
|
|
49
|
-
disabled={action.disabled}
|
|
50
|
-
variant={action.variant || 'contained'}
|
|
51
|
-
color={action.color || 'primary'}
|
|
52
|
-
>
|
|
53
|
-
{action.text}
|
|
54
|
-
</Button>
|
|
55
|
-
))}
|
|
56
|
-
</Stack>
|
|
57
|
-
</Box>
|
|
58
|
-
);
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
export default ModalFooter;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Box, Typography } from '@mui/material';
|
|
3
|
-
|
|
4
|
-
interface ModalHeaderProps { // Renombrado
|
|
5
|
-
children: React.ReactNode;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export const ModalHeader: React.FC<ModalHeaderProps> = ({ children }) => { // Renombrado
|
|
9
|
-
return (
|
|
10
|
-
<Box sx={{ padding: 2, borderBottom: '1px solid #e0e0e0', display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
|
|
11
|
-
<Typography variant="h6" component="h2">
|
|
12
|
-
{children}
|
|
13
|
-
</Typography>
|
|
14
|
-
</Box>
|
|
15
|
-
);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export default ModalHeader;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {default as Modal } from './Modal';
|