@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
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
var __objRest = (source, exclude) => {
|
|
21
|
+
var target = {};
|
|
22
|
+
for (var prop in source)
|
|
23
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
24
|
+
target[prop] = source[prop];
|
|
25
|
+
if (source != null && __getOwnPropSymbols)
|
|
26
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
27
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
28
|
+
target[prop] = source[prop];
|
|
29
|
+
}
|
|
30
|
+
return target;
|
|
31
|
+
};
|
|
32
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
33
|
+
import { useMemo, Children, isValidElement, useState } from "react";
|
|
34
|
+
import { MenuItem, ListItemIcon, FormControl, InputLabel, Select as Select$1, FormHelperText, ListSubheader, OutlinedInput, Typography, Box, Chip, Avatar } from "@mui/material";
|
|
35
|
+
import { useTheme } from "@mui/material/styles";
|
|
36
|
+
import { Controller } from "react-hook-form";
|
|
37
|
+
import { b as buildFormFieldSx } from "../../formField.sx-8_QRnKxv.js";
|
|
38
|
+
import { r as resolvePreset } from "../../resolvePreset-B-IB0ehH.js";
|
|
39
|
+
import CheckIcon from "@mui/icons-material/Check";
|
|
40
|
+
const buildSelectSx = (borderRadius, labelPosition) => buildFormFieldSx({ borderRadius, labelPosition });
|
|
41
|
+
const groupOptions = (options) => {
|
|
42
|
+
const groups = {};
|
|
43
|
+
options.forEach((opt) => {
|
|
44
|
+
const group = opt.group || "__default";
|
|
45
|
+
if (!groups[group]) groups[group] = [];
|
|
46
|
+
groups[group].push(opt);
|
|
47
|
+
});
|
|
48
|
+
return groups;
|
|
49
|
+
};
|
|
50
|
+
const normalizeSelectValue = (value) => value != null ? value : "";
|
|
51
|
+
const isSelectValueEmpty = (normalizedValue) => {
|
|
52
|
+
if (Array.isArray(normalizedValue)) return normalizedValue.length === 0;
|
|
53
|
+
return normalizedValue === "" || normalizedValue === null || normalizedValue === void 0;
|
|
54
|
+
};
|
|
55
|
+
const renderSelectMenuItem = ({
|
|
56
|
+
option,
|
|
57
|
+
selected,
|
|
58
|
+
customRender
|
|
59
|
+
}) => /* @__PURE__ */ jsxs(
|
|
60
|
+
MenuItem,
|
|
61
|
+
{
|
|
62
|
+
value: option.value,
|
|
63
|
+
disabled: option.disabled,
|
|
64
|
+
selected,
|
|
65
|
+
children: [
|
|
66
|
+
/* @__PURE__ */ jsx(ListItemIcon, { sx: { minWidth: 32 }, children: selected && /* @__PURE__ */ jsx(CheckIcon, { color: "success", fontSize: "small" }) }),
|
|
67
|
+
customRender ? customRender(option) : option.label
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
String(option.value)
|
|
71
|
+
);
|
|
72
|
+
function Option(_props) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
Option.displayName = "Option";
|
|
76
|
+
function Select(props) {
|
|
77
|
+
const _a = props, {
|
|
78
|
+
label,
|
|
79
|
+
options = [],
|
|
80
|
+
defaultValue,
|
|
81
|
+
size = "small",
|
|
82
|
+
placeholder,
|
|
83
|
+
children,
|
|
84
|
+
maxHeight = 300,
|
|
85
|
+
maxWidth,
|
|
86
|
+
disabled = false,
|
|
87
|
+
error = false,
|
|
88
|
+
helperText,
|
|
89
|
+
borderRadius = 10,
|
|
90
|
+
labelPosition = "outside",
|
|
91
|
+
preset,
|
|
92
|
+
sx,
|
|
93
|
+
className,
|
|
94
|
+
multiple = false,
|
|
95
|
+
maxChipsToShow = 3,
|
|
96
|
+
renderChipLabel,
|
|
97
|
+
chipVariant = "outlined",
|
|
98
|
+
name: _nameIgnored,
|
|
99
|
+
control: _controlIgnored,
|
|
100
|
+
validation: _validationIgnored,
|
|
101
|
+
value: _valueIgnored,
|
|
102
|
+
onChange: _onChangeIgnored,
|
|
103
|
+
onValueChange: _onValueChangeIgnored
|
|
104
|
+
} = _a, rest = __objRest(_a, [
|
|
105
|
+
"label",
|
|
106
|
+
"options",
|
|
107
|
+
"defaultValue",
|
|
108
|
+
"size",
|
|
109
|
+
"placeholder",
|
|
110
|
+
"children",
|
|
111
|
+
"maxHeight",
|
|
112
|
+
"maxWidth",
|
|
113
|
+
"disabled",
|
|
114
|
+
"error",
|
|
115
|
+
"helperText",
|
|
116
|
+
"borderRadius",
|
|
117
|
+
"labelPosition",
|
|
118
|
+
"preset",
|
|
119
|
+
"sx",
|
|
120
|
+
"className",
|
|
121
|
+
"multiple",
|
|
122
|
+
"maxChipsToShow",
|
|
123
|
+
"renderChipLabel",
|
|
124
|
+
"chipVariant",
|
|
125
|
+
// Separamos estos aunque no se usen directamente acá — evita que lleguen
|
|
126
|
+
// al DOM del MuiSelect via `{...rest}` y generen warnings de React.
|
|
127
|
+
"name",
|
|
128
|
+
"control",
|
|
129
|
+
"validation",
|
|
130
|
+
"value",
|
|
131
|
+
"onChange",
|
|
132
|
+
"onValueChange"
|
|
133
|
+
]);
|
|
134
|
+
const theme = useTheme();
|
|
135
|
+
const presetSx = resolvePreset("Select", preset, theme);
|
|
136
|
+
const isRHFMode = "control" in props && props.control !== void 0;
|
|
137
|
+
const customRender = useMemo(() => {
|
|
138
|
+
var _a2;
|
|
139
|
+
if (Children.count(children) === 1) {
|
|
140
|
+
const child = Children.only(children);
|
|
141
|
+
if (isValidElement(child) && ((_a2 = child.type) == null ? void 0 : _a2.displayName) === "Option") {
|
|
142
|
+
return child.props.children;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return null;
|
|
146
|
+
}, [children]);
|
|
147
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
148
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
149
|
+
const groupedOptions = useMemo(() => groupOptions(options), [options]);
|
|
150
|
+
const isSelected = (currentValue, val) => {
|
|
151
|
+
if (Array.isArray(currentValue)) return currentValue.includes(val);
|
|
152
|
+
return currentValue === val;
|
|
153
|
+
};
|
|
154
|
+
const buildMenuItems = (currentValue) => {
|
|
155
|
+
const items = [];
|
|
156
|
+
Object.entries(groupedOptions).forEach(([group, opts]) => {
|
|
157
|
+
if (group !== "__default") {
|
|
158
|
+
items.push(
|
|
159
|
+
/* @__PURE__ */ jsx(ListSubheader, { disableSticky: true, children: group }, group)
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
opts.forEach((opt) => {
|
|
163
|
+
items.push(
|
|
164
|
+
renderSelectMenuItem({
|
|
165
|
+
option: opt,
|
|
166
|
+
selected: isSelected(currentValue, opt.value),
|
|
167
|
+
customRender
|
|
168
|
+
})
|
|
169
|
+
);
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
return items;
|
|
173
|
+
};
|
|
174
|
+
const mergedSx = [
|
|
175
|
+
buildSelectSx(borderRadius, labelPosition),
|
|
176
|
+
...presetSx ? [presetSx] : [],
|
|
177
|
+
...Array.isArray(sx) ? sx : sx ? [sx] : []
|
|
178
|
+
];
|
|
179
|
+
const renderSelect = (selectValue, commitValue, onBlur, inputRef, rhfError, rhfHelperText) => {
|
|
180
|
+
const finalError = !!rhfError || !!error;
|
|
181
|
+
const finalHelperText = rhfHelperText != null ? rhfHelperText : helperText;
|
|
182
|
+
const inputElement = labelPosition === "floating" ? /* @__PURE__ */ jsx(OutlinedInput, { label }) : /* @__PURE__ */ jsx(OutlinedInput, {});
|
|
183
|
+
const normalizedValue = multiple ? selectValue != null ? selectValue : [] : normalizeSelectValue(selectValue);
|
|
184
|
+
const isEmpty = isSelectValueEmpty(normalizedValue);
|
|
185
|
+
const shouldShrink = !isEmpty || isFocused || isOpen;
|
|
186
|
+
const shouldDisplayPlaceholder = isEmpty && (isFocused || isOpen) && !!placeholder;
|
|
187
|
+
const renderValueFn = (selected) => {
|
|
188
|
+
var _a2;
|
|
189
|
+
if (multiple) {
|
|
190
|
+
const arr = selected != null ? selected : [];
|
|
191
|
+
if (arr.length === 0) {
|
|
192
|
+
return /* @__PURE__ */ jsx(Typography, { sx: { color: "text.disabled" }, children: placeholder != null ? placeholder : "" });
|
|
193
|
+
}
|
|
194
|
+
const visible = arr.slice(0, maxChipsToShow);
|
|
195
|
+
const hidden = arr.length - visible.length;
|
|
196
|
+
return /* @__PURE__ */ jsxs(Box, { sx: { display: "flex", flexWrap: "wrap", gap: 0.5 }, children: [
|
|
197
|
+
visible.map((val) => {
|
|
198
|
+
const item2 = options.find((o) => o.value === val);
|
|
199
|
+
if (!item2) return null;
|
|
200
|
+
return /* @__PURE__ */ jsx(
|
|
201
|
+
Chip,
|
|
202
|
+
{
|
|
203
|
+
variant: chipVariant,
|
|
204
|
+
color: "primary",
|
|
205
|
+
size,
|
|
206
|
+
label: renderChipLabel ? renderChipLabel(item2) : item2.label,
|
|
207
|
+
avatar: item2.img ? /* @__PURE__ */ jsx(Avatar, { src: item2.img }) : void 0,
|
|
208
|
+
onMouseDown: (e) => e.stopPropagation(),
|
|
209
|
+
onDelete: () => {
|
|
210
|
+
commitValue(arr.filter((v) => v !== val));
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
String(val)
|
|
214
|
+
);
|
|
215
|
+
}),
|
|
216
|
+
hidden > 0 && /* @__PURE__ */ jsx(
|
|
217
|
+
Chip,
|
|
218
|
+
{
|
|
219
|
+
variant: chipVariant,
|
|
220
|
+
size,
|
|
221
|
+
label: `+${hidden} más`,
|
|
222
|
+
onMouseDown: (e) => e.stopPropagation()
|
|
223
|
+
}
|
|
224
|
+
)
|
|
225
|
+
] });
|
|
226
|
+
}
|
|
227
|
+
if (isSelectValueEmpty(selected)) {
|
|
228
|
+
return /* @__PURE__ */ jsx(Typography, { sx: { color: "text.disabled" }, children: placeholder != null ? placeholder : "" });
|
|
229
|
+
}
|
|
230
|
+
const item = options.find((opt) => opt.value === selected);
|
|
231
|
+
return (_a2 = item == null ? void 0 : item.label) != null ? _a2 : String(selected);
|
|
232
|
+
};
|
|
233
|
+
return /* @__PURE__ */ jsxs(
|
|
234
|
+
FormControl,
|
|
235
|
+
{
|
|
236
|
+
fullWidth: true,
|
|
237
|
+
size,
|
|
238
|
+
error: finalError,
|
|
239
|
+
disabled,
|
|
240
|
+
className,
|
|
241
|
+
sx: mergedSx,
|
|
242
|
+
children: [
|
|
243
|
+
label && /* @__PURE__ */ jsx(InputLabel, { shrink: shouldShrink, children: label }),
|
|
244
|
+
/* @__PURE__ */ jsx(
|
|
245
|
+
Select$1,
|
|
246
|
+
__spreadProps(__spreadValues({
|
|
247
|
+
multiple,
|
|
248
|
+
value: normalizedValue,
|
|
249
|
+
onChange: (e) => commitValue(e.target.value),
|
|
250
|
+
onBlur: (e) => {
|
|
251
|
+
setIsFocused(false);
|
|
252
|
+
onBlur == null ? void 0 : onBlur(e);
|
|
253
|
+
},
|
|
254
|
+
onFocus: () => setIsFocused(true),
|
|
255
|
+
onOpen: () => setIsOpen(true),
|
|
256
|
+
onClose: () => setIsOpen(false),
|
|
257
|
+
renderValue: renderValueFn,
|
|
258
|
+
displayEmpty: shouldDisplayPlaceholder,
|
|
259
|
+
input: inputElement,
|
|
260
|
+
disabled,
|
|
261
|
+
MenuProps: {
|
|
262
|
+
PaperProps: {
|
|
263
|
+
style: { maxHeight, maxWidth }
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
inputRef
|
|
267
|
+
}, rest), {
|
|
268
|
+
children: buildMenuItems(normalizedValue)
|
|
269
|
+
})
|
|
270
|
+
),
|
|
271
|
+
finalHelperText && /* @__PURE__ */ jsx(FormHelperText, { children: finalHelperText })
|
|
272
|
+
]
|
|
273
|
+
}
|
|
274
|
+
);
|
|
275
|
+
};
|
|
276
|
+
if (isRHFMode) {
|
|
277
|
+
const { name, control, validation, onValueChange } = props;
|
|
278
|
+
return /* @__PURE__ */ jsx(
|
|
279
|
+
Controller,
|
|
280
|
+
{
|
|
281
|
+
name,
|
|
282
|
+
control,
|
|
283
|
+
rules: validation,
|
|
284
|
+
defaultValue,
|
|
285
|
+
render: ({ field, fieldState: { error: fieldError } }) => {
|
|
286
|
+
var _a2;
|
|
287
|
+
return renderSelect(
|
|
288
|
+
(_a2 = field.value) != null ? _a2 : multiple ? [] : null,
|
|
289
|
+
(next) => {
|
|
290
|
+
field.onChange(next);
|
|
291
|
+
onValueChange == null ? void 0 : onValueChange(next);
|
|
292
|
+
},
|
|
293
|
+
field.onBlur,
|
|
294
|
+
field.ref,
|
|
295
|
+
!!fieldError,
|
|
296
|
+
fieldError == null ? void 0 : fieldError.message
|
|
297
|
+
);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
);
|
|
301
|
+
}
|
|
302
|
+
const standardProps = props;
|
|
303
|
+
return renderSelect(
|
|
304
|
+
standardProps.value,
|
|
305
|
+
(next) => standardProps.onChange(next)
|
|
306
|
+
);
|
|
307
|
+
}
|
|
308
|
+
export {
|
|
309
|
+
Option,
|
|
310
|
+
Select,
|
|
311
|
+
Select as default
|
|
312
|
+
};
|
|
313
|
+
//# sourceMappingURL=Select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.sx.ts","../../../src/components/Select/Select.helpers.ts","../../../src/components/Select/_parts/SelectMenuItem.tsx","../../../src/components/Select/Select.tsx"],"sourcesContent":["import type { SelectProps as MuiSelectProps } from '@mui/material';\n\nimport { buildFormFieldSx } from '../_shared/formField.sx';\nimport type { LabelPosition } from './Select';\n\n/**\n * Builder de sx para el Select. Usa el builder compartido\n * `buildFormFieldSx`. El Select no necesita overrides específicos.\n */\nexport const buildSelectSx = (\n borderRadius: number | string,\n labelPosition: LabelPosition,\n): MuiSelectProps['sx'] =>\n buildFormFieldSx({ borderRadius, labelPosition }) as MuiSelectProps['sx'];\n","import type { SelectOption } from './Select';\n\n/**\n * Agrupa opciones por la propiedad `group`. Las opciones sin group caen\n * bajo la key especial `__default`. Devuelve un Record para iterar en orden\n * de inserción con Object.entries.\n */\nexport const groupOptions = (\n options: SelectOption[],\n): Record<string, SelectOption[]> => {\n const groups: Record<string, SelectOption[]> = {};\n options.forEach((opt) => {\n const group = opt.group || '__default';\n if (!groups[group]) groups[group] = [];\n groups[group].push(opt);\n });\n return groups;\n};\n\n/**\n * Normaliza el valor single al shape que espera MUI Select: string vacío si\n * el valor es `null`/`undefined`.\n */\nexport const normalizeSelectValue = <T>(value: T | null | undefined): T | '' =>\n (value ?? '') as T | '';\n\n/** `true` si el valor está vacío (para shrink del label + placeholder). En\n * multi se considera vacío cuando el array no tiene elementos. */\nexport const isSelectValueEmpty = (normalizedValue: unknown): boolean => {\n if (Array.isArray(normalizedValue)) return normalizedValue.length === 0;\n return (\n normalizedValue === '' ||\n normalizedValue === null ||\n normalizedValue === undefined\n );\n};\n","import React from 'react';\nimport { ListItemIcon, MenuItem } from '@mui/material';\nimport CheckIcon from '@mui/icons-material/Check';\n\nimport type { SelectOption, RenderOptionItem } from '../Select';\n\ninterface RenderSelectMenuItemArgs {\n option: SelectOption;\n selected: boolean;\n customRender?: RenderOptionItem | null;\n}\n\n/**\n * Render helper (no componente) que devuelve un <MenuItem> listo para\n * colocarse como hijo directo del <MuiSelect>. Se implementa como función\n * y no como componente porque MUI Select inspecciona `props.value` de sus\n * children para resolver la selección, y envolverlo en un componente extra\n * rompe esa detección.\n *\n * Incluye el icono de check a la izquierda cuando `selected` es true. Si el\n * consumer pasó un `<Option>{(opt) => ...}</Option>`, usa ese render para el\n * contenido principal; de lo contrario muestra `option.label`.\n */\nexport const renderSelectMenuItem = ({\n option,\n selected,\n customRender,\n}: RenderSelectMenuItemArgs): React.ReactElement => (\n <MenuItem\n key={String(option.value)}\n value={option.value}\n disabled={option.disabled}\n selected={selected}\n >\n <ListItemIcon sx={{ minWidth: 32 }}>\n {selected && <CheckIcon color=\"success\" fontSize=\"small\" />}\n </ListItemIcon>\n {customRender ? customRender(option) : option.label}\n </MenuItem>\n);\n","import {\n Children,\n isValidElement,\n useMemo,\n useState,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport {\n Avatar,\n Box,\n Chip,\n FormControl,\n FormHelperText,\n InputLabel,\n ListSubheader,\n OutlinedInput,\n Select as MuiSelect,\n Typography,\n type SelectChangeEvent,\n type SelectProps as MuiSelectProps,\n} from '@mui/material';\nimport { useTheme } from '@mui/material/styles';\nimport { Controller, type Control, type RegisterOptions } from 'react-hook-form';\n\nimport { buildSelectSx } from './Select.sx';\nimport { resolvePreset } from '../_shared/resolvePreset';\nimport {\n groupOptions,\n isSelectValueEmpty,\n normalizeSelectValue,\n} from './Select.helpers';\nimport { renderSelectMenuItem } from './_parts/SelectMenuItem';\n\n// ── Tipos de dominio ─────────────────────────────────────────────────────\nexport interface SelectOption {\n value: string | number;\n label: string;\n img?: string;\n disabled?: boolean;\n group?: string;\n [key: string]: any;\n}\n\nexport type LabelPosition = 'outside' | 'floating';\nexport type SelectSize = 'small' | 'medium';\n\n// ── Render slots ─────────────────────────────────────────────────────────\nexport type RenderOptionItem = (item: SelectOption) => ReactNode;\nexport type RenderChipLabel = (item: SelectOption) => ReactNode;\n\n// ── Sub-componente declarativo <Option> ──────────────────────────────────\nexport interface OptionProps {\n children: RenderOptionItem;\n}\n\n// ── Props base ───────────────────────────────────────────────────────────\nexport interface BaseSelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> {\n label?: string;\n options?: SelectOption[];\n defaultValue?: TValue | TValue[];\n size?: SelectSize;\n placeholder?: string;\n children?: ReactElement<{ children: RenderOptionItem }>;\n maxHeight?: number | string;\n maxWidth?: number | string;\n disabled?: boolean;\n error?: boolean;\n helperText?: string;\n /** Border radius del input (px o string CSS). Default: 10 */\n borderRadius?: number | string;\n /**\n * Posición del label.\n * - \"outside\" (default): label arriba del input, sin animación.\n * - \"floating\": label clásico de MUI (flota dentro del notched outline).\n */\n labelPosition?: LabelPosition;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.Select`.\n * - `\"default\"` (o ausente) = estilo built-in del paquete.\n * - Cualquier otro string = mergea el preset encima del estilo built-in.\n */\n preset?: string;\n sx?: MuiSelectProps['sx'];\n className?: string;\n // ── Props que solo aplican en modo `multiple` ──────────────────────────\n /** Cantidad máxima de chips visibles antes de colapsar al \"+N más\". Default: 3. */\n maxChipsToShow?: number;\n /** Custom render del label de cada chip. Si no se pasa, usa `option.label`. */\n renderChipLabel?: RenderChipLabel;\n /** Variant de los chips. Default: 'outlined'. */\n chipVariant?: 'outlined' | 'filled';\n}\n\n// ── Variantes discriminadas (single / multi / RHF) ──────────────────────\nexport interface SingleStandardSelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> extends BaseSelectProps<TValue> {\n multiple?: false;\n name?: string;\n control?: never;\n validation?: never;\n value: TValue;\n onChange: (val: TValue) => void;\n}\n\nexport interface MultipleStandardSelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> extends BaseSelectProps<TValue> {\n multiple: true;\n name?: string;\n control?: never;\n validation?: never;\n value: TValue[];\n onChange: (val: TValue[]) => void;\n}\n\nexport type StandardSelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> =\n | SingleStandardSelectProps<TValue>\n | MultipleStandardSelectProps<TValue>;\n\nexport interface RHFSelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> extends BaseSelectProps<TValue> {\n /** En RHF se acepta como boolean dinámico — `field.value` se trata según\n * esto: array si `multiple`, valor único si no. */\n multiple?: boolean;\n name: string;\n // `any` plano (no `Control<any>`): RHF tipa `Control<T>` con generics en\n // posiciones tanto contravariantes como covariantes (ej. `_subjects.state`).\n // Cuando el componente tiene generics propios (como `TValue` acá), TS se\n // confunde narroweando el discriminated union y `Control<any>` no logra\n // absorber `Control<MyForm>` en la comparación estructural profunda.\n // El `any` plano elimina ese ruido. RHF adentro sigue teniendo sus tipos\n // fuertes — solo degradamos la superficie del prop del Select.\n control: any;\n validation?: RegisterOptions;\n /**\n * Side-effect que corre después de que RHF actualiza el form state.\n * Útil para cascadas entre campos (ej. reset de municipio al cambiar\n * departamento). NO reemplaza al handler de RHF.\n */\n onValueChange?: (value: TValue | TValue[]) => void;\n value?: never;\n onChange?: never;\n}\n\n// ── API pública final ────────────────────────────────────────────────────\nexport type SelectProps<\n TValue extends SelectOption['value'] = SelectOption['value'],\n> = RHFSelectProps<TValue> | StandardSelectProps<TValue>;\n\n// ── Sub-componente declarativo <Option> ──────────────────────────────────\nexport function Option(_props: OptionProps) {\n return null;\n}\nOption.displayName = 'Option';\n\n// ── Componente ───────────────────────────────────────────────────────────\nexport function Select<\n TValue extends SelectOption['value'] = SelectOption['value'],\n>(props: SelectProps<TValue>) {\n const {\n label,\n options = [],\n defaultValue,\n size = 'small',\n placeholder,\n children,\n maxHeight = 300,\n maxWidth,\n disabled = false,\n error = false,\n helperText,\n borderRadius = 10,\n labelPosition = 'outside',\n preset,\n sx,\n className,\n multiple = false,\n maxChipsToShow = 3,\n renderChipLabel,\n chipVariant = 'outlined',\n // Separamos estos aunque no se usen directamente acá — evita que lleguen\n // al DOM del MuiSelect via `{...rest}` y generen warnings de React.\n name: _nameIgnored,\n control: _controlIgnored,\n validation: _validationIgnored,\n value: _valueIgnored,\n onChange: _onChangeIgnored,\n onValueChange: _onValueChangeIgnored,\n ...rest\n } = props as MultipleStandardSelectProps<TValue> & {\n name?: string;\n control?: Control<any>;\n validation?: RegisterOptions;\n onValueChange?: (val: TValue | TValue[]) => void;\n };\n\n const theme = useTheme();\n const presetSx = resolvePreset('Select', preset, theme);\n\n const isRHFMode =\n 'control' in props &&\n (props as RHFSelectProps<TValue>).control !== undefined;\n\n // Custom render opcional vía <Option>{item => ...}</Option>\n const customRender: RenderOptionItem | null = useMemo(() => {\n if (Children.count(children) === 1) {\n const child = Children.only(children);\n if (isValidElement(child) && (child.type as any)?.displayName === 'Option') {\n return (child.props as OptionProps).children;\n }\n }\n return null;\n }, [children]);\n\n // Focus/open tracking para el comportamiento del label \"outside\".\n const [isOpen, setIsOpen] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n\n const groupedOptions = useMemo(() => groupOptions(options), [options]);\n\n // Igualdad por valor, soportando single y multi de forma uniforme.\n const isSelected = (\n currentValue: TValue | TValue[] | '',\n val: TValue,\n ): boolean => {\n if (Array.isArray(currentValue)) return currentValue.includes(val);\n return currentValue === val;\n };\n\n const buildMenuItems = (currentValue: TValue | TValue[] | '') => {\n const items: ReactNode[] = [];\n Object.entries(groupedOptions).forEach(([group, opts]) => {\n if (group !== '__default') {\n items.push(\n <ListSubheader key={group} disableSticky>\n {group}\n </ListSubheader>,\n );\n }\n opts.forEach((opt) => {\n items.push(\n renderSelectMenuItem({\n option: opt,\n selected: isSelected(currentValue, opt.value as TValue),\n customRender,\n }),\n );\n });\n });\n return items;\n };\n\n const mergedSx = [\n buildSelectSx(borderRadius, labelPosition),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n // Render base (común a RHF y controlled). `commitValue` recibe el valor\n // ya resuelto (sin event) — lo usamos también para el delete de chips.\n const renderSelect = (\n selectValue: TValue | TValue[] | null | undefined,\n commitValue: (next: TValue | TValue[]) => void,\n onBlur?: (event: React.FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => void,\n inputRef?: React.Ref<HTMLInputElement>,\n rhfError?: boolean,\n rhfHelperText?: string,\n ) => {\n const finalError = !!rhfError || !!error;\n const finalHelperText = rhfHelperText ?? helperText;\n\n const inputElement =\n labelPosition === 'floating' ? (\n <OutlinedInput label={label} />\n ) : (\n <OutlinedInput />\n );\n\n // Normalizamos según modo: array vacío para multi, '' para single.\n const normalizedValue: TValue | TValue[] | '' = multiple\n ? ((selectValue as TValue[] | null | undefined) ?? [])\n : normalizeSelectValue(selectValue as TValue | null | undefined);\n\n const isEmpty = isSelectValueEmpty(normalizedValue);\n\n // Shrink cuando hay valor, foco, o dropdown abierto.\n const shouldShrink = !isEmpty || isFocused || isOpen;\n // Placeholder solo cuando el label ya subió.\n const shouldDisplayPlaceholder =\n isEmpty && (isFocused || isOpen) && !!placeholder;\n\n const renderValueFn = (selected: any): ReactNode => {\n // ── Multi: render de chips con delete ────────────────────────────\n if (multiple) {\n const arr = (selected ?? []) as TValue[];\n if (arr.length === 0) {\n return (\n <Typography sx={{ color: 'text.disabled' }}>\n {placeholder ?? ''}\n </Typography>\n );\n }\n const visible = arr.slice(0, maxChipsToShow);\n const hidden = arr.length - visible.length;\n return (\n <Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 0.5 }}>\n {visible.map((val) => {\n const item = options.find((o) => o.value === val);\n if (!item) return null;\n return (\n <Chip\n key={String(val)}\n variant={chipVariant}\n color=\"primary\"\n size={size}\n label={\n renderChipLabel ? renderChipLabel(item) : item.label\n }\n avatar={item.img ? <Avatar src={item.img} /> : undefined}\n // Evita que el click sobre el chip dispare el open del menú.\n onMouseDown={(e) => e.stopPropagation()}\n onDelete={() => {\n commitValue(arr.filter((v) => v !== val));\n }}\n />\n );\n })}\n {hidden > 0 && (\n <Chip\n variant={chipVariant}\n size={size}\n label={`+${hidden} más`}\n onMouseDown={(e) => e.stopPropagation()}\n />\n )}\n </Box>\n );\n }\n // ── Single: igual que el flujo previo ────────────────────────────\n if (isSelectValueEmpty(selected)) {\n return (\n <Typography sx={{ color: 'text.disabled' }}>\n {placeholder ?? ''}\n </Typography>\n );\n }\n const item = options.find((opt) => opt.value === selected);\n return item?.label ?? String(selected);\n };\n\n return (\n <FormControl\n fullWidth\n size={size}\n error={finalError}\n disabled={disabled}\n className={className}\n sx={mergedSx}\n >\n {label && <InputLabel shrink={shouldShrink}>{label}</InputLabel>}\n <MuiSelect\n multiple={multiple}\n value={normalizedValue as any}\n onChange={(e: SelectChangeEvent<TValue | TValue[]>) =>\n commitValue(e.target.value as TValue | TValue[])\n }\n onBlur={(e) => {\n setIsFocused(false);\n onBlur?.(e);\n }}\n onFocus={() => setIsFocused(true)}\n onOpen={() => setIsOpen(true)}\n onClose={() => setIsOpen(false)}\n renderValue={renderValueFn}\n displayEmpty={shouldDisplayPlaceholder}\n input={inputElement}\n disabled={disabled}\n MenuProps={{\n PaperProps: {\n style: { maxHeight, maxWidth },\n },\n }}\n inputRef={inputRef}\n {...(rest as any)}\n >\n {buildMenuItems(normalizedValue)}\n </MuiSelect>\n {finalHelperText && <FormHelperText>{finalHelperText}</FormHelperText>}\n </FormControl>\n );\n };\n\n // ── RHF mode ──────────────────────────────────────────────────────────\n if (isRHFMode) {\n const { name, control, validation, onValueChange } = props as RHFSelectProps<TValue>;\n return (\n <Controller\n name={name}\n control={control}\n rules={validation}\n defaultValue={defaultValue}\n render={({ field, fieldState: { error: fieldError } }) =>\n renderSelect(\n field.value ?? (multiple ? [] : null),\n (next) => {\n field.onChange(next);\n onValueChange?.(next);\n },\n field.onBlur,\n field.ref,\n !!fieldError,\n fieldError?.message,\n )\n }\n />\n );\n }\n\n // ── Controlled mode ───────────────────────────────────────────────────\n const standardProps = props as StandardSelectProps<TValue>;\n return renderSelect(\n standardProps.value as TValue | TValue[] | null | undefined,\n (next) =>\n (standardProps.onChange as (v: TValue | TValue[]) => void)(next),\n );\n}\n\nexport default Select;\n"],"names":["_a","item","MuiSelect"],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SelectProps as MuiSelectProps } from '@mui/material';
|
|
2
|
+
import { LabelPosition } from './Select';
|
|
3
|
+
/**
|
|
4
|
+
* Builder de sx para el Select. Usa el builder compartido
|
|
5
|
+
* `buildFormFieldSx`. El Select no necesita overrides específicos.
|
|
6
|
+
*/
|
|
7
|
+
export declare const buildSelectSx: (borderRadius: number | string, labelPosition: LabelPosition) => MuiSelectProps["sx"];
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { SelectOption, RenderOptionItem } from '../Select';
|
|
3
|
+
interface RenderSelectMenuItemArgs {
|
|
4
|
+
option: SelectOption;
|
|
5
|
+
selected: boolean;
|
|
6
|
+
customRender?: RenderOptionItem | null;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Render helper (no componente) que devuelve un <MenuItem> listo para
|
|
10
|
+
* colocarse como hijo directo del <MuiSelect>. Se implementa como función
|
|
11
|
+
* y no como componente porque MUI Select inspecciona `props.value` de sus
|
|
12
|
+
* children para resolver la selección, y envolverlo en un componente extra
|
|
13
|
+
* rompe esa detección.
|
|
14
|
+
*
|
|
15
|
+
* Incluye el icono de check a la izquierda cuando `selected` es true. Si el
|
|
16
|
+
* consumer pasó un `<Option>{(opt) => ...}</Option>`, usa ese render para el
|
|
17
|
+
* contenido principal; de lo contrario muestra `option.label`.
|
|
18
|
+
*/
|
|
19
|
+
export declare const renderSelectMenuItem: ({ option, selected, customRender, }: RenderSelectMenuItemArgs) => React.ReactElement;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { Select, Option, default } from './Select';
|
|
2
|
+
export type { SelectProps, SelectOption, OptionProps, BaseSelectProps, RHFSelectProps, StandardSelectProps, SingleStandardSelectProps, MultipleStandardSelectProps, RenderOptionItem, RenderChipLabel, LabelPosition, SelectSize, } from './Select';
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
require("../../index.cjs");
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
4
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
5
4
|
const React = require("react");
|
|
6
5
|
const material = require("@mui/material");
|
|
@@ -82,4 +81,5 @@ const Stat = ({
|
|
|
82
81
|
] });
|
|
83
82
|
};
|
|
84
83
|
exports.Stat = Stat;
|
|
84
|
+
exports.default = Stat;
|
|
85
85
|
//# sourceMappingURL=Stat.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stat.cjs","sources":["../../../src/components/Stat/Stat.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Chip, Stack, Typography, Box } from '@mui/material';\n\nexport interface StatChip {\n stat: any;\n chipColor: string;\n}\n\nexport interface StatProps {\n stat: any; // Replace 'any' with the actual type of 'stat'\n stat2?: any; // Replace 'any' with the actual type of'stat2'\n label: string; // Replace 'any' with the actual type of'label'\n color?: string;\n chipColor?: string;\n chips?: StatChip[]; // Replace 'any' with the actual type of'chips'\n simple?: boolean;\n chip?: boolean;\n chipList?: boolean;\n children?: React.ReactNode;\n statDisplay?: (stat: any) => React.ReactNode;\n}\n\nexport const Stat: React.FC<StatProps> = ({\n stat,\n stat2,\n label,\n color = '#1469B8',\n chipColor = '#1469B8',\n chips = [],\n simple = false,\n chip = false,\n chipList = false,\n children,\n statDisplay,\n}) => {\n const selectedTemplate = useMemo(() => {\n if (simple) return 'simple';\n if (chip) return 'chip';\n if (chipList) return 'chipList';\n return 'default';\n }, [simple, chip, chipList]);\n\n const renderStatDisplay = () => {\n return statDisplay ? statDisplay(stat) : <Typography variant=\"h6\">{stat}</Typography>;\n };\n\n return (\n <>\n {selectedTemplate === 'default' && (\n <Box className=\"stat\">\n <Typography variant=\"h4\" data-testid=\"selection-template-option-outlet\">\n {renderStatDisplay()}\n </Typography>\n <Box className=\"stat__label\" display=\"flex\" alignItems=\"center\" gap={1}>\n <Typography variant=\"body1\">{label}</Typography>\n <Box\n width={40}\n height={4}\n bgcolor={color}\n data-testid=\"stat-border\"\n borderRadius={2}\n />\n </Box>\n </Box>\n )}\n\n {selectedTemplate === 'simple' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Typography data-testid=\"selection-template-option-outlet\">\n {renderStatDisplay()}\n </Typography>\n {stat2 && <Typography>{stat2}</Typography>}\n </Stack>\n )}\n\n {selectedTemplate === 'chip' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Chip\n data-testid=\"chip-template-option-outlet\"\n label={renderStatDisplay()}\n sx={{\n backgroundColor: chipColor,\n color: '#fff',\n fontWeight: 'bold',\n }}\n />\n </Stack>\n )}\n\n {selectedTemplate === 'chipList' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Stack direction=\"row\" spacing={1}>\n {chips.map((chip, i) => (\n <Chip\n key={i}\n label={chip.stat}\n sx={{\n backgroundColor: chip.chipColor,\n color: '#fff',\n fontWeight: 'bold',\n }}\n />\n ))}\n </Stack>\n </Stack>\n )}\n\n {/* Content projection (similar to ng-content) */}\n {children}\n </>\n );\n};\n\nexport default Stat;"],"names":["useMemo","Typography","jsxs","Fragment","Box","jsx","Stack","Chip","chip"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Stat.cjs","sources":["../../../src/components/Stat/Stat.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Chip, Stack, Typography, Box } from '@mui/material';\n\nexport interface StatChip {\n stat: any;\n chipColor: string;\n}\n\nexport interface StatProps {\n stat: any; // Replace 'any' with the actual type of 'stat'\n stat2?: any; // Replace 'any' with the actual type of'stat2'\n label: string; // Replace 'any' with the actual type of'label'\n color?: string;\n chipColor?: string;\n chips?: StatChip[]; // Replace 'any' with the actual type of'chips'\n simple?: boolean;\n chip?: boolean;\n chipList?: boolean;\n children?: React.ReactNode;\n statDisplay?: (stat: any) => React.ReactNode;\n}\n\nexport const Stat: React.FC<StatProps> = ({\n stat,\n stat2,\n label,\n color = '#1469B8',\n chipColor = '#1469B8',\n chips = [],\n simple = false,\n chip = false,\n chipList = false,\n children,\n statDisplay,\n}) => {\n const selectedTemplate = useMemo(() => {\n if (simple) return 'simple';\n if (chip) return 'chip';\n if (chipList) return 'chipList';\n return 'default';\n }, [simple, chip, chipList]);\n\n const renderStatDisplay = () => {\n return statDisplay ? statDisplay(stat) : <Typography variant=\"h6\">{stat}</Typography>;\n };\n\n return (\n <>\n {selectedTemplate === 'default' && (\n <Box className=\"stat\">\n <Typography variant=\"h4\" data-testid=\"selection-template-option-outlet\">\n {renderStatDisplay()}\n </Typography>\n <Box className=\"stat__label\" display=\"flex\" alignItems=\"center\" gap={1}>\n <Typography variant=\"body1\">{label}</Typography>\n <Box\n width={40}\n height={4}\n bgcolor={color}\n data-testid=\"stat-border\"\n borderRadius={2}\n />\n </Box>\n </Box>\n )}\n\n {selectedTemplate === 'simple' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Typography data-testid=\"selection-template-option-outlet\">\n {renderStatDisplay()}\n </Typography>\n {stat2 && <Typography>{stat2}</Typography>}\n </Stack>\n )}\n\n {selectedTemplate === 'chip' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Chip\n data-testid=\"chip-template-option-outlet\"\n label={renderStatDisplay()}\n sx={{\n backgroundColor: chipColor,\n color: '#fff',\n fontWeight: 'bold',\n }}\n />\n </Stack>\n )}\n\n {selectedTemplate === 'chipList' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Stack direction=\"row\" spacing={1}>\n {chips.map((chip, i) => (\n <Chip\n key={i}\n label={chip.stat}\n sx={{\n backgroundColor: chip.chipColor,\n color: '#fff',\n fontWeight: 'bold',\n }}\n />\n ))}\n </Stack>\n </Stack>\n )}\n\n {/* Content projection (similar to ng-content) */}\n {children}\n </>\n );\n};\n\nexport default Stat;"],"names":["useMemo","Typography","jsxs","Fragment","Box","jsx","Stack","Chip","chip"],"mappings":";;;;;AAsBO,MAAM,OAA4B,CAAC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,QAAQ,CAAA;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX;AAAA,EACA;AACF,MAAM;AACJ,QAAM,mBAAmBA,MAAAA,QAAQ,MAAM;AACrC,QAAI,OAAQ,QAAO;AACnB,QAAI,KAAM,QAAO;AACjB,QAAI,SAAU,QAAO;AACrB,WAAO;AAAA,EACT,GAAG,CAAC,QAAQ,MAAM,QAAQ,CAAC;AAE3B,QAAM,oBAAoB,MAAM;AAC9B,WAAO,cAAc,YAAY,IAAI,mCAAKC,qBAAA,EAAW,SAAQ,MAAM,UAAA,KAAA,CAAK;AAAA,EAC1E;AAEA,SACEC,2BAAAA,KAAAC,qBAAA,EACG,UAAA;AAAA,IAAA,qBAAqB,aACpBD,gCAACE,SAAAA,KAAA,EAAI,WAAU,QACb,UAAA;AAAA,MAAAC,+BAACJ,SAAAA,cAAW,SAAQ,MAAK,eAAY,oCAClC,+BACH;AAAA,MACAC,2BAAAA,KAACE,SAAAA,OAAI,WAAU,eAAc,SAAQ,QAAO,YAAW,UAAS,KAAK,GACnE,UAAA;AAAA,QAAAC,2BAAAA,IAACJ,SAAAA,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,QACnCI,2BAAAA;AAAAA,UAACD,SAAAA;AAAAA,UAAA;AAAA,YACC,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,eAAY;AAAA,YACZ,cAAc;AAAA,UAAA;AAAA,QAAA;AAAA,MAChB,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IAGD,qBAAqB,YACpBF,gCAACI,SAAAA,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAAD,2BAAAA,IAACJ,SAAAA,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnCI,2BAAAA,IAACJ,SAAAA,YAAA,EAAW,eAAY,oCACrB,+BACH;AAAA,MACC,SAASI,2BAAAA,IAACJ,SAAAA,YAAA,EAAY,UAAA,MAAA,CAAM;AAAA,IAAA,GAC/B;AAAA,IAGD,qBAAqB,UACpBC,gCAACI,SAAAA,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAAD,2BAAAA,IAACJ,SAAAA,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnCI,2BAAAA;AAAAA,QAACE,SAAAA;AAAAA,QAAA;AAAA,UACC,eAAY;AAAA,UACZ,OAAO,kBAAA;AAAA,UACP,IAAI;AAAA,YACF,iBAAiB;AAAA,YACjB,OAAO;AAAA,YACP,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,MAAA;AAAA,IACF,GACF;AAAA,IAGD,qBAAqB,cACpBL,gCAACI,SAAAA,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAAD,2BAAAA,IAACJ,SAAAA,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnCI,2BAAAA,IAACC,SAAAA,OAAA,EAAM,WAAU,OAAM,SAAS,GAC7B,UAAA,MAAM,IAAI,CAACE,OAAM,MAChBH,2BAAAA;AAAAA,QAACE,SAAAA;AAAAA,QAAA;AAAA,UAEC,OAAOC,MAAK;AAAA,UACZ,IAAI;AAAA,YACF,iBAAiBA,MAAK;AAAA,YACtB,OAAO;AAAA,YACP,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,QANK;AAAA,MAAA,CAQR,EAAA,CACH;AAAA,IAAA,GACF;AAAA,IAID;AAAA,EAAA,GACH;AAEJ;;;"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import "../../index.js";
|
|
2
1
|
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
3
2
|
import { useMemo } from "react";
|
|
4
3
|
import { Box, Typography, Stack, Chip } from "@mui/material";
|
|
@@ -80,6 +79,7 @@ const Stat = ({
|
|
|
80
79
|
] });
|
|
81
80
|
};
|
|
82
81
|
export {
|
|
83
|
-
Stat
|
|
82
|
+
Stat,
|
|
83
|
+
Stat as default
|
|
84
84
|
};
|
|
85
85
|
//# sourceMappingURL=Stat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stat.js","sources":["../../../src/components/Stat/Stat.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Chip, Stack, Typography, Box } from '@mui/material';\n\nexport interface StatChip {\n stat: any;\n chipColor: string;\n}\n\nexport interface StatProps {\n stat: any; // Replace 'any' with the actual type of 'stat'\n stat2?: any; // Replace 'any' with the actual type of'stat2'\n label: string; // Replace 'any' with the actual type of'label'\n color?: string;\n chipColor?: string;\n chips?: StatChip[]; // Replace 'any' with the actual type of'chips'\n simple?: boolean;\n chip?: boolean;\n chipList?: boolean;\n children?: React.ReactNode;\n statDisplay?: (stat: any) => React.ReactNode;\n}\n\nexport const Stat: React.FC<StatProps> = ({\n stat,\n stat2,\n label,\n color = '#1469B8',\n chipColor = '#1469B8',\n chips = [],\n simple = false,\n chip = false,\n chipList = false,\n children,\n statDisplay,\n}) => {\n const selectedTemplate = useMemo(() => {\n if (simple) return 'simple';\n if (chip) return 'chip';\n if (chipList) return 'chipList';\n return 'default';\n }, [simple, chip, chipList]);\n\n const renderStatDisplay = () => {\n return statDisplay ? statDisplay(stat) : <Typography variant=\"h6\">{stat}</Typography>;\n };\n\n return (\n <>\n {selectedTemplate === 'default' && (\n <Box className=\"stat\">\n <Typography variant=\"h4\" data-testid=\"selection-template-option-outlet\">\n {renderStatDisplay()}\n </Typography>\n <Box className=\"stat__label\" display=\"flex\" alignItems=\"center\" gap={1}>\n <Typography variant=\"body1\">{label}</Typography>\n <Box\n width={40}\n height={4}\n bgcolor={color}\n data-testid=\"stat-border\"\n borderRadius={2}\n />\n </Box>\n </Box>\n )}\n\n {selectedTemplate === 'simple' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Typography data-testid=\"selection-template-option-outlet\">\n {renderStatDisplay()}\n </Typography>\n {stat2 && <Typography>{stat2}</Typography>}\n </Stack>\n )}\n\n {selectedTemplate === 'chip' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Chip\n data-testid=\"chip-template-option-outlet\"\n label={renderStatDisplay()}\n sx={{\n backgroundColor: chipColor,\n color: '#fff',\n fontWeight: 'bold',\n }}\n />\n </Stack>\n )}\n\n {selectedTemplate === 'chipList' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Stack direction=\"row\" spacing={1}>\n {chips.map((chip, i) => (\n <Chip\n key={i}\n label={chip.stat}\n sx={{\n backgroundColor: chip.chipColor,\n color: '#fff',\n fontWeight: 'bold',\n }}\n />\n ))}\n </Stack>\n </Stack>\n )}\n\n {/* Content projection (similar to ng-content) */}\n {children}\n </>\n );\n};\n\nexport default Stat;"],"names":["chip"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Stat.js","sources":["../../../src/components/Stat/Stat.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Chip, Stack, Typography, Box } from '@mui/material';\n\nexport interface StatChip {\n stat: any;\n chipColor: string;\n}\n\nexport interface StatProps {\n stat: any; // Replace 'any' with the actual type of 'stat'\n stat2?: any; // Replace 'any' with the actual type of'stat2'\n label: string; // Replace 'any' with the actual type of'label'\n color?: string;\n chipColor?: string;\n chips?: StatChip[]; // Replace 'any' with the actual type of'chips'\n simple?: boolean;\n chip?: boolean;\n chipList?: boolean;\n children?: React.ReactNode;\n statDisplay?: (stat: any) => React.ReactNode;\n}\n\nexport const Stat: React.FC<StatProps> = ({\n stat,\n stat2,\n label,\n color = '#1469B8',\n chipColor = '#1469B8',\n chips = [],\n simple = false,\n chip = false,\n chipList = false,\n children,\n statDisplay,\n}) => {\n const selectedTemplate = useMemo(() => {\n if (simple) return 'simple';\n if (chip) return 'chip';\n if (chipList) return 'chipList';\n return 'default';\n }, [simple, chip, chipList]);\n\n const renderStatDisplay = () => {\n return statDisplay ? statDisplay(stat) : <Typography variant=\"h6\">{stat}</Typography>;\n };\n\n return (\n <>\n {selectedTemplate === 'default' && (\n <Box className=\"stat\">\n <Typography variant=\"h4\" data-testid=\"selection-template-option-outlet\">\n {renderStatDisplay()}\n </Typography>\n <Box className=\"stat__label\" display=\"flex\" alignItems=\"center\" gap={1}>\n <Typography variant=\"body1\">{label}</Typography>\n <Box\n width={40}\n height={4}\n bgcolor={color}\n data-testid=\"stat-border\"\n borderRadius={2}\n />\n </Box>\n </Box>\n )}\n\n {selectedTemplate === 'simple' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Typography data-testid=\"selection-template-option-outlet\">\n {renderStatDisplay()}\n </Typography>\n {stat2 && <Typography>{stat2}</Typography>}\n </Stack>\n )}\n\n {selectedTemplate === 'chip' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Chip\n data-testid=\"chip-template-option-outlet\"\n label={renderStatDisplay()}\n sx={{\n backgroundColor: chipColor,\n color: '#fff',\n fontWeight: 'bold',\n }}\n />\n </Stack>\n )}\n\n {selectedTemplate === 'chipList' && (\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Typography variant=\"body1\">{label}</Typography>\n <Stack direction=\"row\" spacing={1}>\n {chips.map((chip, i) => (\n <Chip\n key={i}\n label={chip.stat}\n sx={{\n backgroundColor: chip.chipColor,\n color: '#fff',\n fontWeight: 'bold',\n }}\n />\n ))}\n </Stack>\n </Stack>\n )}\n\n {/* Content projection (similar to ng-content) */}\n {children}\n </>\n );\n};\n\nexport default Stat;"],"names":["chip"],"mappings":";;;AAsBO,MAAM,OAA4B,CAAC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,QAAQ,CAAA;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX;AAAA,EACA;AACF,MAAM;AACJ,QAAM,mBAAmB,QAAQ,MAAM;AACrC,QAAI,OAAQ,QAAO;AACnB,QAAI,KAAM,QAAO;AACjB,QAAI,SAAU,QAAO;AACrB,WAAO;AAAA,EACT,GAAG,CAAC,QAAQ,MAAM,QAAQ,CAAC;AAE3B,QAAM,oBAAoB,MAAM;AAC9B,WAAO,cAAc,YAAY,IAAI,wBAAK,YAAA,EAAW,SAAQ,MAAM,UAAA,KAAA,CAAK;AAAA,EAC1E;AAEA,SACE,qBAAA,UAAA,EACG,UAAA;AAAA,IAAA,qBAAqB,aACpB,qBAAC,KAAA,EAAI,WAAU,QACb,UAAA;AAAA,MAAA,oBAAC,cAAW,SAAQ,MAAK,eAAY,oCAClC,+BACH;AAAA,MACA,qBAAC,OAAI,WAAU,eAAc,SAAQ,QAAO,YAAW,UAAS,KAAK,GACnE,UAAA;AAAA,QAAA,oBAAC,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,QACnC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,eAAY;AAAA,YACZ,cAAc;AAAA,UAAA;AAAA,QAAA;AAAA,MAChB,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IAGD,qBAAqB,YACpB,qBAAC,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAA,oBAAC,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnC,oBAAC,YAAA,EAAW,eAAY,oCACrB,+BACH;AAAA,MACC,SAAS,oBAAC,YAAA,EAAY,UAAA,MAAA,CAAM;AAAA,IAAA,GAC/B;AAAA,IAGD,qBAAqB,UACpB,qBAAC,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAA,oBAAC,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAY;AAAA,UACZ,OAAO,kBAAA;AAAA,UACP,IAAI;AAAA,YACF,iBAAiB;AAAA,YACjB,OAAO;AAAA,YACP,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,MAAA;AAAA,IACF,GACF;AAAA,IAGD,qBAAqB,cACpB,qBAAC,OAAA,EAAM,WAAU,OAAM,SAAS,GAAG,YAAW,UAC5C,UAAA;AAAA,MAAA,oBAAC,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,MACnC,oBAAC,OAAA,EAAM,WAAU,OAAM,SAAS,GAC7B,UAAA,MAAM,IAAI,CAACA,OAAM,MAChB;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,OAAOA,MAAK;AAAA,UACZ,IAAI;AAAA,YACF,iBAAiBA,MAAK;AAAA,YACtB,OAAO;AAAA,YACP,YAAY;AAAA,UAAA;AAAA,QACd;AAAA,QANK;AAAA,MAAA,CAQR,EAAA,CACH;AAAA,IAAA,GACF;AAAA,IAID;AAAA,EAAA,GACH;AAEJ;"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const React = require("react");
|
|
5
|
+
const material = require("@mui/material");
|
|
6
|
+
const iconsMaterial = require("@mui/icons-material");
|
|
7
|
+
const StatusMessage = ({
|
|
8
|
+
title,
|
|
9
|
+
description,
|
|
10
|
+
messageType = "success",
|
|
11
|
+
displayType = "alert",
|
|
12
|
+
close,
|
|
13
|
+
open: controlledOpen
|
|
14
|
+
}) => {
|
|
15
|
+
const [internalOpen, setInternalOpen] = React.useState(true);
|
|
16
|
+
const titleId = React.useId();
|
|
17
|
+
const descId = React.useId();
|
|
18
|
+
const isControlled = controlledOpen !== void 0;
|
|
19
|
+
const isOpen = isControlled ? controlledOpen : internalOpen;
|
|
20
|
+
const handleClose = () => {
|
|
21
|
+
if (!isControlled) setInternalOpen(false);
|
|
22
|
+
close == null ? void 0 : close();
|
|
23
|
+
};
|
|
24
|
+
const alertVariant = messageType === "danger" ? "error" : messageType;
|
|
25
|
+
const icon = messageType === "success" ? /* @__PURE__ */ jsxRuntime.jsx(iconsMaterial.CheckCircleOutline, { sx: { fontSize: 64, color: "success.main" } }) : messageType === "danger" ? /* @__PURE__ */ jsxRuntime.jsx(iconsMaterial.ErrorOutline, { sx: { fontSize: 64, color: "error.main" } }) : /* @__PURE__ */ jsxRuntime.jsx(iconsMaterial.WarningAmber, { sx: { fontSize: 64, color: "warning.main" } });
|
|
26
|
+
if (!description) return null;
|
|
27
|
+
if (!isOpen) return null;
|
|
28
|
+
if (displayType === "modal") {
|
|
29
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
30
|
+
material.Dialog,
|
|
31
|
+
{
|
|
32
|
+
open: isOpen,
|
|
33
|
+
onClose: handleClose,
|
|
34
|
+
"aria-labelledby": title ? titleId : void 0,
|
|
35
|
+
"aria-describedby": descId,
|
|
36
|
+
maxWidth: "md",
|
|
37
|
+
slotProps: {
|
|
38
|
+
paper: {
|
|
39
|
+
sx: { borderRadius: "16px", p: 2 }
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
children: [
|
|
43
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
44
|
+
material.DialogContent,
|
|
45
|
+
{
|
|
46
|
+
sx: {
|
|
47
|
+
display: "flex",
|
|
48
|
+
flexDirection: "column",
|
|
49
|
+
alignItems: "center",
|
|
50
|
+
textAlign: "center",
|
|
51
|
+
p: 4,
|
|
52
|
+
gap: 2
|
|
53
|
+
},
|
|
54
|
+
children: [
|
|
55
|
+
/* @__PURE__ */ jsxRuntime.jsx(material.Box, { sx: { mb: 2 }, children: icon }),
|
|
56
|
+
title && /* @__PURE__ */ jsxRuntime.jsx(
|
|
57
|
+
material.Typography,
|
|
58
|
+
{
|
|
59
|
+
id: titleId,
|
|
60
|
+
variant: "h4",
|
|
61
|
+
component: "h2",
|
|
62
|
+
sx: { fontWeight: "bold" },
|
|
63
|
+
children: title
|
|
64
|
+
}
|
|
65
|
+
),
|
|
66
|
+
/* @__PURE__ */ jsxRuntime.jsx(material.Typography, { id: descId, variant: "body1", color: "text.secondary", children: description })
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
),
|
|
70
|
+
/* @__PURE__ */ jsxRuntime.jsx(material.DialogActions, { sx: { justifyContent: "center", p: 2 }, children: /* @__PURE__ */ jsxRuntime.jsx(material.Button, { onClick: handleClose, variant: "contained", color: alertVariant, children: "Aceptar" }) })
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
76
|
+
material.Alert,
|
|
77
|
+
{
|
|
78
|
+
severity: alertVariant,
|
|
79
|
+
sx: { mb: 2, mt: 2 },
|
|
80
|
+
onClose: close !== void 0 ? handleClose : void 0,
|
|
81
|
+
children: [
|
|
82
|
+
title && /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "h6", sx: { fontWeight: "bold" }, children: title }),
|
|
83
|
+
/* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "body2", sx: { mt: 1 }, children: description })
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
};
|
|
88
|
+
exports.StatusMessage = StatusMessage;
|
|
89
|
+
exports.default = StatusMessage;
|
|
90
|
+
//# sourceMappingURL=StatusMessage.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusMessage.cjs","sources":["../../../src/components/StatusMessage/StatusMessage.tsx"],"sourcesContent":["import { useId, useState, type FC } from 'react';\nimport {\n Alert,\n Box,\n Typography,\n Dialog,\n DialogContent,\n DialogActions,\n Button,\n} from '@mui/material';\nimport {\n ErrorOutline as ErrorOutlineIcon,\n CheckCircleOutline as CheckCircleOutlineIcon,\n WarningAmber as WarningAmberIcon,\n} from '@mui/icons-material';\n\nexport interface StatusMessageProps {\n /** Título del mensaje. */\n title?: string;\n /** Descripción/contenido detallado. Requerido para que el componente renderice. */\n description?: string;\n /** Tipo de mensaje (controla color + icono). `danger` mapea a `error` de MUI. */\n messageType?: 'success' | 'danger' | 'warning';\n /** Forma de presentación: alerta inline o modal. Default: `'alert'`. */\n displayType?: 'alert' | 'modal';\n /** Callback al cerrar. Si se omite, no se muestra botón de cerrar. */\n close?: () => void;\n /**\n * Controla visibilidad. Si se omite, el componente maneja su propio\n * state (se oculta solo al llamar `close`). Si se pasa, queda controlled\n * y el consumer es responsable de actualizarlo.\n */\n open?: boolean;\n}\n\n/**\n * Mensaje de éxito / error / advertencia en forma de alerta inline o modal.\n *\n * - **Uncontrolled**: sin pasar `open`, el componente maneja su propia\n * visibilidad. Al llamar `close`, se oculta automáticamente.\n * - **Controlled**: pasando `open`, el consumer decide cuándo mostrar/ocultar.\n */\nexport const StatusMessage: FC<StatusMessageProps> = ({\n title,\n description,\n messageType = 'success',\n displayType = 'alert',\n close,\n open: controlledOpen,\n}) => {\n const [internalOpen, setInternalOpen] = useState(true);\n const titleId = useId();\n const descId = useId();\n\n const isControlled = controlledOpen !== undefined;\n const isOpen = isControlled ? controlledOpen : internalOpen;\n\n const handleClose = () => {\n if (!isControlled) setInternalOpen(false);\n close?.();\n };\n\n const alertVariant = messageType === 'danger' ? 'error' : messageType;\n\n const icon =\n messageType === 'success' ? (\n <CheckCircleOutlineIcon sx={{ fontSize: 64, color: 'success.main' }} />\n ) : messageType === 'danger' ? (\n <ErrorOutlineIcon sx={{ fontSize: 64, color: 'error.main' }} />\n ) : (\n <WarningAmberIcon sx={{ fontSize: 64, color: 'warning.main' }} />\n );\n\n if (!description) return null;\n if (!isOpen) return null;\n\n if (displayType === 'modal') {\n return (\n <Dialog\n open={isOpen}\n onClose={handleClose}\n aria-labelledby={title ? titleId : undefined}\n aria-describedby={descId}\n maxWidth=\"md\"\n slotProps={{\n paper: {\n sx: { borderRadius: '16px', p: 2 },\n },\n }}\n >\n <DialogContent\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n textAlign: 'center',\n p: 4,\n gap: 2,\n }}\n >\n <Box sx={{ mb: 2 }}>{icon}</Box>\n {title && (\n <Typography\n id={titleId}\n variant=\"h4\"\n component=\"h2\"\n sx={{ fontWeight: 'bold' }}\n >\n {title}\n </Typography>\n )}\n <Typography id={descId} variant=\"body1\" color=\"text.secondary\">\n {description}\n </Typography>\n </DialogContent>\n <DialogActions sx={{ justifyContent: 'center', p: 2 }}>\n <Button onClick={handleClose} variant=\"contained\" color={alertVariant}>\n Aceptar\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n\n return (\n <Alert\n severity={alertVariant}\n sx={{ mb: 2, mt: 2 }}\n onClose={close !== undefined ? handleClose : undefined}\n >\n {title && (\n <Typography variant=\"h6\" sx={{ fontWeight: 'bold' }}>\n {title}\n </Typography>\n )}\n <Typography variant=\"body2\" sx={{ mt: 1 }}>\n {description}\n </Typography>\n </Alert>\n );\n};\n\nexport default StatusMessage;\n"],"names":["useState","useId","jsx","CheckCircleOutlineIcon","ErrorOutlineIcon","WarningAmberIcon","jsxs","Dialog","DialogContent","Box","Typography","DialogActions","Button","Alert"],"mappings":"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"}
|