@soyfri/shared-library 2.0.0-beta.16 → 2.0.0-beta.18
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/.dockerignore +8 -0
- package/.github/workflows/publish.yml +107 -0
- package/.prettierrc +3 -0
- package/.storybook/main.ts +19 -0
- package/.storybook/preview.ts +14 -0
- package/.storybook/vitest.setup.ts +9 -0
- package/Dockerfile +37 -0
- package/build.js +117 -0
- package/chromatic.config.json +5 -0
- package/cleanDirectories.js +40 -0
- package/{Autocomplete-4i0dNDKr.cjs → dist/Autocomplete-DBWWcKQO.cjs} +5 -4
- package/dist/Autocomplete-DBWWcKQO.cjs.map +1 -0
- package/{Autocomplete-i3-V38n1.js → dist/Autocomplete-QTPCObBL.js} +5 -4
- package/dist/Autocomplete-QTPCObBL.js.map +1 -0
- package/{DatePicker-CtCFqXDw.cjs → dist/DatePicker-CUHUAzW4.cjs} +5 -4
- package/dist/DatePicker-CUHUAzW4.cjs.map +1 -0
- package/{DatePicker-D0Bz9Ryg.js → dist/DatePicker-kWjQEXIQ.js} +5 -4
- package/dist/DatePicker-kWjQEXIQ.js.map +1 -0
- package/{DateTimePicker-CTnRQCZo.cjs → dist/DateTimePicker-AVmtL4vS.cjs} +5 -4
- package/dist/DateTimePicker-AVmtL4vS.cjs.map +1 -0
- package/{DateTimePicker-77w-9TP5.js → dist/DateTimePicker-BO76eZ0P.js} +5 -4
- package/dist/DateTimePicker-BO76eZ0P.js.map +1 -0
- package/{Input-jYapjJYM.cjs → dist/Input-5VGBxiO2.cjs} +5 -4
- package/dist/Input-5VGBxiO2.cjs.map +1 -0
- package/{Input-rVVhI_wk.js → dist/Input-BVaetLBc.js} +5 -4
- package/dist/Input-BVaetLBc.js.map +1 -0
- package/dist/README.md +243 -0
- package/{Select-bSVQokFX.js → dist/Select-8fFMOx-I.js} +4 -4
- package/dist/Select-8fFMOx-I.js.map +1 -0
- package/{Select-B6jE3WH_.cjs → dist/Select-DyWV0aL9.cjs} +4 -4
- package/dist/Select-DyWV0aL9.cjs.map +1 -0
- package/{components → dist/components}/Autocomplete/Autocomplete.cjs +1 -1
- package/{components → dist/components}/Autocomplete/Autocomplete.js +1 -1
- package/{components → dist/components}/Autocomplete/Autocomplete.sx.d.ts +1 -1
- package/{components → dist/components}/DatePicker/DatePicker.cjs +1 -1
- package/{components → dist/components}/DatePicker/DatePicker.js +1 -1
- package/{components → dist/components}/DatePicker/DatePicker.sx.d.ts +1 -1
- package/{components → dist/components}/DateTimePicker/DateTimePicker.cjs +1 -1
- package/{components → dist/components}/DateTimePicker/DateTimePicker.js +1 -1
- package/{components → dist/components}/DateTimePicker/DateTimePicker.sx.d.ts +1 -1
- package/{components → dist/components}/Input/Input.cjs +1 -1
- package/{components → dist/components}/Input/Input.js +1 -1
- package/{components → dist/components}/Input/Input.sx.d.ts +1 -1
- package/{components → dist/components}/Select/Select.cjs +1 -1
- package/{components → dist/components}/Select/Select.js +1 -1
- package/{components → dist/components}/Select/Select.sx.d.ts +1 -1
- package/{components → dist/components}/_shared/formField.sx.d.ts +11 -1
- package/{formField.sx-8_QRnKxv.js → dist/formField.sx-Cmhj9iGb.js} +15 -15
- package/dist/formField.sx-Cmhj9iGb.js.map +1 -0
- package/{formField.sx-BAX7KwMR.cjs → dist/formField.sx-V9PLO0wv.cjs} +15 -15
- package/dist/formField.sx-V9PLO0wv.cjs.map +1 -0
- package/{index.cjs → dist/index.cjs} +5 -7
- package/{index.cjs.map → dist/index.cjs.map} +1 -1
- package/{index.d.ts → dist/index.d.ts} +0 -1
- package/{index.js → dist/index.js} +6 -8
- package/{index.js.map → dist/index.js.map} +1 -1
- package/dist/package.json +190 -0
- package/package.json +57 -171
- package/rollup.config.cjs +87 -0
- package/scripts/gen-dist-pkg.mjs +15 -0
- package/shared-library-comercios-MUI.code-workspace +10 -0
- package/src/components/ActionMenu/ActionMenu.stories.tsx +427 -0
- package/src/components/ActionMenu/ActionMenu.tsx +153 -0
- package/src/components/ActionMenu/index.ts +2 -0
- package/src/components/AppBar/AppBar.stories.tsx +316 -0
- package/src/components/AppBar/AppBar.sx.ts +32 -0
- package/src/components/AppBar/AppBar.tsx +119 -0
- package/src/components/AppBar/AppBarContext.ts +25 -0
- package/src/components/AppBar/AppBarMenuToggle.tsx +90 -0
- package/src/components/AppBar/index.ts +12 -0
- package/src/components/Autocomplete/Autocomplete.definitions.ts +477 -0
- package/src/components/Autocomplete/Autocomplete.helpers.ts +80 -0
- package/src/components/Autocomplete/Autocomplete.stories.tsx +784 -0
- package/src/components/Autocomplete/Autocomplete.sx.ts +32 -0
- package/src/components/Autocomplete/Autocomplete.tsx +394 -0
- package/src/components/Autocomplete/_parts/AutocompleteChips.tsx +55 -0
- package/src/components/Autocomplete/_parts/AutocompleteLoader.tsx +17 -0
- package/src/components/Autocomplete/_parts/AutocompleteOption.tsx +29 -0
- package/src/components/Autocomplete/index.ts +12 -0
- package/src/components/Avatar/Avatar.definitions.ts +162 -0
- package/src/components/Avatar/Avatar.stories.tsx +258 -0
- package/src/components/Avatar/Avatar.tsx +206 -0
- package/src/components/Avatar/index.ts +2 -0
- package/src/components/Button/Button.definition.ts +97 -0
- package/src/components/Button/Button.stories.tsx +285 -0
- package/src/components/Button/Button.tsx +66 -0
- package/src/components/Button/index.ts +2 -0
- package/src/components/Card/Card.definition.ts +5 -0
- package/src/components/Card/Card.stories.tsx +102 -0
- package/src/components/Card/Card.sx.ts +58 -0
- package/src/components/Card/Card.tsx +85 -0
- package/src/components/Card/index.ts +4 -0
- package/src/components/Checkbox/Checkbox.stories.tsx +212 -0
- package/src/components/Checkbox/Checkbox.sx.ts +67 -0
- package/src/components/Checkbox/Checkbox.tsx +208 -0
- package/src/components/Checkbox/index.ts +10 -0
- package/src/components/Chip/Chip.definitions.ts +167 -0
- package/src/components/Chip/Chip.stories.tsx +265 -0
- package/src/components/Chip/Chip.tsx +61 -0
- package/src/components/Chip/index.ts +2 -0
- package/src/components/Column/Column.tsx +29 -0
- package/src/components/Column/index.ts +2 -0
- package/src/components/DatePicker/DatePicker.definitions.ts +228 -0
- package/src/components/DatePicker/DatePicker.helpers.ts +24 -0
- package/src/components/DatePicker/DatePicker.stories.tsx +309 -0
- package/src/components/DatePicker/DatePicker.sx.ts +35 -0
- package/src/components/DatePicker/DatePicker.tsx +134 -0
- package/src/components/DatePicker/index.ts +7 -0
- package/src/components/DateTimePicker/DateTimePicker.definitions.ts +317 -0
- package/src/components/DateTimePicker/DateTimePicker.helpers.ts +45 -0
- package/src/components/DateTimePicker/DateTimePicker.stories.tsx +415 -0
- package/src/components/DateTimePicker/DateTimePicker.sx.ts +32 -0
- package/src/components/DateTimePicker/DateTimePicker.tsx +241 -0
- package/src/components/DateTimePicker/index.ts +9 -0
- package/src/components/Drawer/Drawer.stories.tsx +438 -0
- package/src/components/Drawer/Drawer.sx.ts +106 -0
- package/src/components/Drawer/Drawer.tsx +224 -0
- package/src/components/Drawer/DrawerContext.ts +26 -0
- package/src/components/Drawer/DrawerItem.tsx +120 -0
- package/src/components/Drawer/index.ts +10 -0
- package/src/components/Flyout/Flyout.stories.tsx +282 -0
- package/src/components/Flyout/Flyout.tsx +122 -0
- package/src/components/Flyout/index.ts +1 -0
- package/src/components/Gallery/Gallery.definition.tsx +37 -0
- package/src/components/Gallery/Gallery.stories.tsx +82 -0
- package/src/components/Gallery/Gallery.tsx +158 -0
- package/src/components/Gallery/GalleryLightbox.tsx +186 -0
- package/src/components/Gallery/GalleryMain.tsx +87 -0
- package/src/components/Gallery/GalleryThumbnails.tsx +122 -0
- package/src/components/Gallery/index.ts +2 -0
- package/src/components/Icon/Icon.stories.tsx +121 -0
- package/src/components/Icon/Icon.tsx +163 -0
- package/src/components/Icon/index.ts +2 -0
- package/src/components/Input/Input.definitions.ts +348 -0
- package/src/components/Input/Input.helpers.ts +50 -0
- package/src/components/Input/Input.stories.tsx +528 -0
- package/src/components/Input/Input.sx.ts +44 -0
- package/src/components/Input/Input.tsx +163 -0
- package/src/components/Input/index.ts +10 -0
- package/src/components/InputGroup/InputGroup.definitions.ts +158 -0
- package/src/components/InputGroup/InputGroup.stories.tsx +267 -0
- package/src/components/InputGroup/InputGroup.tsx +180 -0
- package/src/components/InputGroup/index.ts +2 -0
- package/src/components/MenuButton/MenuButton.stories.tsx +197 -0
- package/src/components/MenuButton/MenuButton.tsx +100 -0
- package/src/components/MenuButton/index.ts +1 -0
- package/src/components/Modal/Modal.stories.tsx +721 -0
- package/src/components/Modal/Modal.tsx +407 -0
- package/src/components/Modal/ModalBody.tsx +23 -0
- package/src/components/Modal/ModalFooter.tsx +83 -0
- package/src/components/Modal/ModalHeader.tsx +33 -0
- package/src/components/Modal/index.ts +11 -0
- package/src/components/RadioGroup/RadioGroup.definitions.ts +177 -0
- package/src/components/RadioGroup/RadioGroup.stories.tsx +231 -0
- package/src/components/RadioGroup/RadioGroup.sx.ts +75 -0
- package/src/components/RadioGroup/RadioGroup.tsx +207 -0
- package/src/components/RadioGroup/index.ts +10 -0
- package/src/components/Select/Select.helpers.ts +31 -0
- package/src/components/Select/Select.stories.tsx +393 -0
- package/src/components/Select/Select.sx.ts +15 -0
- package/src/components/Select/Select.tsx +328 -0
- package/src/components/Select/_parts/SelectMenuItem.tsx +40 -0
- package/src/components/Select/_parts/SelectValue.tsx +95 -0
- package/src/components/Select/index.ts +12 -0
- package/src/components/Stat/Stat.stories.tsx +85 -0
- package/src/components/Stat/Stat.tsx +117 -0
- package/src/components/Stat/index.ts +2 -0
- package/src/components/StatusMessage/StatusMessage.stories.tsx +159 -0
- package/src/components/StatusMessage/StatusMessage.tsx +143 -0
- package/src/components/StatusMessage/index.ts +3 -0
- package/src/components/Stepper/Step.tsx +21 -0
- package/src/components/Stepper/Stepper.definition.ts +75 -0
- package/src/components/Stepper/Stepper.stories.tsx +194 -0
- package/src/components/Stepper/Stepper.tsx +194 -0
- package/src/components/Stepper/StepperContext.tsx +176 -0
- package/src/components/Stepper/StepperProvider.stories.tsx +286 -0
- package/src/components/Stepper/_hooks/useHorizontalScroll.ts +56 -0
- package/src/components/Stepper/_parts/StepperScrollArrow.tsx +50 -0
- package/src/components/Stepper/index.ts +15 -0
- package/src/components/Switch/Switch.definitions.ts +134 -0
- package/src/components/Switch/Switch.stories.tsx +213 -0
- package/src/components/Switch/Switch.sx.ts +81 -0
- package/src/components/Switch/Switch.tsx +188 -0
- package/src/components/Switch/Switch.types.ts +10 -0
- package/src/components/Switch/index.ts +9 -0
- package/src/components/Table/EmptyTable.png +0 -0
- package/src/components/Table/Table.definition.ts +580 -0
- package/src/components/Table/Table.stories.tsx +853 -0
- package/src/components/Table/Table.tsx +494 -0
- package/src/components/Table/data.ts +134 -0
- package/src/components/Table/exportsUtils.ts +195 -0
- package/src/components/Table/index.ts +3 -0
- package/src/components/Table/types.ts +34 -0
- package/src/components/Tabs/Tab.definition.ts +53 -0
- package/src/components/Tabs/Tab.tsx +19 -0
- package/src/components/Tabs/Tabs.stories.tsx +118 -0
- package/src/components/Tabs/Tabs.tsx +163 -0
- package/src/components/Tabs/_tabUtils.tsx +4 -0
- package/src/components/Tabs/index.ts +5 -0
- package/src/components/Timeline/Timeline.definition.ts +43 -0
- package/src/components/Timeline/Timeline.stories.tsx +108 -0
- package/src/components/Timeline/Timeline.tsx +44 -0
- package/src/components/Timeline/TimelineItem.tsx +31 -0
- package/src/components/Timeline/index.ts +5 -0
- package/src/components/Tooltip/Tooltip.stories.tsx +129 -0
- package/src/components/Tooltip/Tooltip.tsx +58 -0
- package/src/components/Tooltip/index.ts +1 -0
- package/src/components/_shared/formField.sx.ts +134 -0
- package/src/components/_shared/mergeSx.ts +16 -0
- package/src/components/_shared/resolvePreset.ts +38 -0
- package/src/hooks/ClipBoard/ClipBoard.stories.tsx +168 -0
- package/src/hooks/ClipBoard/ClipBoard.tsx +131 -0
- package/src/hooks/ClipBoard/ClipboardUnifiedDemo.tsx +111 -0
- package/src/hooks/ClipBoard/index.ts +1 -0
- package/src/index.ts +51 -0
- package/src/mui.ts +57 -0
- package/src/styles.css +3 -0
- package/src/theme/componentStyles.ts +50 -0
- package/src/theme/tokens.ts +43 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/scrollToTop.ts +36 -0
- package/storybook-static/addon-visual-tests-assets/visual-test-illustration.mp4 +0 -0
- package/storybook-static/assets/AccountCircle-BDZFsbTw.js +1 -0
- package/storybook-static/assets/ActionMenu-EynP8yU1.js +19 -0
- package/storybook-static/assets/ActionMenu.stories-DqSqRGix.js +185 -0
- package/storybook-static/assets/Alert-3zvTPc0p.js +1 -0
- package/storybook-static/assets/AppBar.stories-DcX3M5th.js +172 -0
- package/storybook-static/assets/Autocomplete.stories-CXJm8FOT.js +788 -0
- package/storybook-static/assets/Avatar-NbFfkZws.js +1 -0
- package/storybook-static/assets/Avatar.stories-CwOYCzqU.js +390 -0
- package/storybook-static/assets/Box-BnhEcfFm.js +1 -0
- package/storybook-static/assets/Button-D9h7OggD.js +1 -0
- package/storybook-static/assets/Button-DBpqmVB_.js +1 -0
- package/storybook-static/assets/Button.stories-F20dmnjq.js +320 -0
- package/storybook-static/assets/ButtonBase-qyaMEhe4.js +74 -0
- package/storybook-static/assets/Card.stories-B3NpAhO0.js +154 -0
- package/storybook-static/assets/CheckCircleOutline-CEj5mDsl.js +1 -0
- package/storybook-static/assets/Chip-C3vKPpzR.js +1 -0
- package/storybook-static/assets/Chip.stories-sxcfHVo9.js +333 -0
- package/storybook-static/assets/CircularProgress-DC7ZNWwl.js +28 -0
- package/storybook-static/assets/Clear-4kYcKvT3.js +1 -0
- package/storybook-static/assets/ClipBoard-DvLBdNHe.js +1 -0
- package/storybook-static/assets/ClipBoard.stories-BGUo47r6.js +108 -0
- package/storybook-static/assets/Close-CgHeRgmh.js +1 -0
- package/storybook-static/assets/Close-Cy8nELYU.js +1 -0
- package/storybook-static/assets/Color-AVL7NMMY-BJKvwERm.js +1 -0
- package/storybook-static/assets/ContentCopy-BfLTDb10.js +1 -0
- package/storybook-static/assets/DatePicker-Clkpr-Ku.js +1 -0
- package/storybook-static/assets/DatePicker.stories-EaUCMkh3.js +444 -0
- package/storybook-static/assets/DateRangePicker.stories-BMlkj-8K.js +390 -0
- package/storybook-static/assets/DateTimePicker.stories-B6gdzKq5.js +555 -0
- package/storybook-static/assets/DefaultPropsProvider-BGoQxtDa.js +16 -0
- package/storybook-static/assets/Delete-D2SMMmIA.js +1 -0
- package/storybook-static/assets/DialogContent-BeCDKgax.js +1 -0
- package/storybook-static/assets/Divider-BbCj9wT4.js +1 -0
- package/storybook-static/assets/DocsRenderer-PQXLIZUC-BebLK5Y_.js +1243 -0
- package/storybook-static/assets/Drawer-DcFwy73r.js +1 -0
- package/storybook-static/assets/Drawer.stories-C5AZkJBk.js +173 -0
- package/storybook-static/assets/EmptyTable-B-RKtgVs.png +0 -0
- package/storybook-static/assets/ErrorOutline-D9gM7ART.js +1 -0
- package/storybook-static/assets/Fade-Ll96CvH8.js +1 -0
- package/storybook-static/assets/Flyout.stories-Cf7z6MNw.js +163 -0
- package/storybook-static/assets/Gallery.stories-DdpWVTF6.js +127 -0
- package/storybook-static/assets/Grow-8y4FglGK.js +1 -0
- package/storybook-static/assets/Home-BRvJEp2L.js +1 -0
- package/storybook-static/assets/Icon.stories-D0mUiW_t.js +78 -0
- package/storybook-static/assets/IconButton-9OYSTH58.js +1 -0
- package/storybook-static/assets/Input-CjX0t4h-.js +1 -0
- package/storybook-static/assets/Input.stories-BRxekliy.js +650 -0
- package/storybook-static/assets/InputGroup.stories-DH6gUfmn.js +306 -0
- package/storybook-static/assets/KeyboardArrowRight-WO_attK2.js +1 -0
- package/storybook-static/assets/KeyboardArrowUp-DsyVef-i.js +1 -0
- package/storybook-static/assets/ListItem-D3O0103N.js +1 -0
- package/storybook-static/assets/ListItemIcon-hca6xN79.js +1 -0
- package/storybook-static/assets/ListItemText-BFLAwLdl.js +1 -0
- package/storybook-static/assets/Logout-gj-P3AfU.js +1 -0
- package/storybook-static/assets/Menu-ClzfjLc3.js +1 -0
- package/storybook-static/assets/MenuButton.stories-B-W_QVDt.js +162 -0
- package/storybook-static/assets/MenuItem-iU6tAqJI.js +1 -0
- package/storybook-static/assets/Modal-3okp9H2i.js +1 -0
- package/storybook-static/assets/Modal.stories-DIWzm4qR.js +468 -0
- package/storybook-static/assets/MoreVert-BoIVG4gh.js +1 -0
- package/storybook-static/assets/Notifications-DY_A-Sho.js +1 -0
- package/storybook-static/assets/PageLoader.stories-DmtO1mlm.js +158 -0
- package/storybook-static/assets/Paper-SwQBhqI7.js +1 -0
- package/storybook-static/assets/Person-CkQl-mpq.js +1 -0
- package/storybook-static/assets/PickersModalDialog-Tjnr_cu5.js +10 -0
- package/storybook-static/assets/PickersToolbarButton-Tt185-si.js +1 -0
- package/storybook-static/assets/Popper-CnCTYXxy.js +1 -0
- package/storybook-static/assets/Portal-Cj8XF9Lf.js +1 -0
- package/storybook-static/assets/ScrollTopButton.stories-BflQCwNP.js +90 -0
- package/storybook-static/assets/Select-CjcuMAY0.js +4 -0
- package/storybook-static/assets/Select-DJh2biEb.js +3 -0
- package/storybook-static/assets/Select.stories-DU1Gb3I2.js +1103 -0
- package/storybook-static/assets/Settings-BLKc1CnO.js +1 -0
- package/storybook-static/assets/Snackbar-BtVeKTw6.js +1 -0
- package/storybook-static/assets/Stack-D01OUIXi.js +1 -0
- package/storybook-static/assets/Stat.stories-Bn9-iuPT.js +60 -0
- package/storybook-static/assets/StatusMessage.stories-hnfX8FeU.js +73 -0
- package/storybook-static/assets/Stepper-BtKB5ykn.js +2 -0
- package/storybook-static/assets/Stepper.stories-CTEZbgPc.js +165 -0
- package/storybook-static/assets/Table.stories-CTn2Ktmn.js +1260 -0
- package/storybook-static/assets/TableContainer-CzLNaEU-.js +1 -0
- package/storybook-static/assets/TableRow-CS88-1HF.js +2 -0
- package/storybook-static/assets/Tabs-DLpDOu_n.js +1 -0
- package/storybook-static/assets/Tabs.stories-BFVuFy_5.js +159 -0
- package/storybook-static/assets/TextField-22T-xHBm.js +1 -0
- package/storybook-static/assets/Timeline.stories-DJU_U2Hv.js +97 -0
- package/storybook-static/assets/Tooltip-DbnHUxNj.js +1 -0
- package/storybook-static/assets/Tooltip.stories-B7tA3dnV.js +66 -0
- package/storybook-static/assets/Typography-BgntX2Ep.js +1 -0
- package/storybook-static/assets/Wizard.stories-CVrJLK_D.js +23 -0
- package/storybook-static/assets/createSimplePaletteValueFilter-bm0fmN_7.js +1 -0
- package/storybook-static/assets/createSvgIcon-D_Gca4vA.js +1 -0
- package/storybook-static/assets/debounce-Be36O1Ab.js +1 -0
- package/storybook-static/assets/emotion-react.browser.esm--g-C9cX9.js +8 -0
- package/storybook-static/assets/extendSxProp-CEpa30hT.js +1 -0
- package/storybook-static/assets/formField.sx-DMCmZIAa.js +1 -0
- package/storybook-static/assets/getReactElementRef-BQ3ANZdy.js +1 -0
- package/storybook-static/assets/iframe-BAJnc_4n.js +1079 -0
- package/storybook-static/assets/index-B1tlhOpe.js +240 -0
- package/storybook-static/assets/index-BF3FAXTk.js +9 -0
- package/storybook-static/assets/index-CIeucmOB.js +2 -0
- package/storybook-static/assets/index-CY7j4a7o.js +1 -0
- package/storybook-static/assets/index-CxkKctw5.js +1 -0
- package/storybook-static/assets/isFocusVisible-B8k4qzLc.js +1 -0
- package/storybook-static/assets/isMuiElement-CTZSFcY5.js +1 -0
- package/storybook-static/assets/jsx-runtime-D_zvdyIk.js +9 -0
- package/storybook-static/assets/listItemTextClasses-CC_rwJam.js +1 -0
- package/storybook-static/assets/mergeSlotProps-B0UBKBMe.js +1 -0
- package/storybook-static/assets/ownerDocument-DW-IO8s5.js +1 -0
- package/storybook-static/assets/ownerWindow-HkKU3E4x.js +1 -0
- package/storybook-static/assets/preload-helper-PPVm8Dsz.js +1 -0
- package/storybook-static/assets/react-18-BUJ64QCV.js +25 -0
- package/storybook-static/assets/resolvePreset-CN2aOJJr.js +1 -0
- package/storybook-static/assets/useControlled-DsVh1a5j.js +1 -0
- package/storybook-static/assets/useForkRef-0ANIrxcF.js +1 -0
- package/storybook-static/assets/useId-b4fZxjOL.js +1 -0
- package/storybook-static/assets/useMobilePicker-DK-c8xbD.js +1 -0
- package/storybook-static/assets/usePreviousProps-WR0rG4aR.js +1 -0
- package/storybook-static/assets/useSlot-b6pXgp5_.js +1 -0
- package/storybook-static/assets/useSlotProps-C0uMfuBt.js +1 -0
- package/storybook-static/assets/useTheme-BmOJK7ra.js +1 -0
- package/storybook-static/assets/useThemeProps-DYtxXiUU.js +1 -0
- package/storybook-static/assets/useThemeProps-U4yXiZ_5.js +1 -0
- package/storybook-static/assets/useTimeout-DNjRaOWc.js +1 -0
- package/storybook-static/assets/visuallyHidden-Dan1xhjv.js +1 -0
- package/storybook-static/favicon-wrapper.svg +46 -0
- package/storybook-static/favicon.svg +1 -0
- package/storybook-static/iframe.html +686 -0
- package/storybook-static/index.html +160 -0
- package/storybook-static/index.json +1 -0
- package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
- package/storybook-static/nunito-sans-bold.woff2 +0 -0
- package/storybook-static/nunito-sans-italic.woff2 +0 -0
- package/storybook-static/nunito-sans-regular.woff2 +0 -0
- package/storybook-static/project.json +1 -0
- package/storybook-static/sb-addons/chromatic-com-storybook-2/manager-bundle.js +356 -0
- package/storybook-static/sb-addons/chromatic-com-storybook-2/manager-bundle.js.LEGAL.txt +40 -0
- package/storybook-static/sb-addons/docs-4/manager-bundle.js +151 -0
- package/storybook-static/sb-addons/onboarding-1/manager-bundle.js +127 -0
- package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +971 -0
- package/storybook-static/sb-addons/vitest-3/manager-bundle.js +3 -0
- package/storybook-static/sb-common-assets/favicon-wrapper.svg +46 -0
- package/storybook-static/sb-common-assets/favicon.svg +1 -0
- package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
- package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
- package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
- package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
- package/storybook-static/sb-manager/globals-module-info.js +797 -0
- package/storybook-static/sb-manager/globals-runtime.js +69679 -0
- package/storybook-static/sb-manager/globals.js +34 -0
- package/storybook-static/sb-manager/runtime.js +13195 -0
- package/storybook-static/vite-inject-mocker-entry.js +18 -0
- package/tailwind.config.js +10 -0
- package/tsconfig.json +48 -0
- package/tsup.config.js +41 -0
- package/vite.config.js +132 -0
- package/vitest.config.ts +35 -0
- package/Autocomplete-4i0dNDKr.cjs.map +0 -1
- package/Autocomplete-i3-V38n1.js.map +0 -1
- package/DatePicker-CtCFqXDw.cjs.map +0 -1
- package/DatePicker-D0Bz9Ryg.js.map +0 -1
- package/DateRangePicker-BVpeJCHI.js +0 -76
- package/DateRangePicker-BVpeJCHI.js.map +0 -1
- package/DateRangePicker-B_hKQhbj.cjs +0 -75
- package/DateRangePicker-B_hKQhbj.cjs.map +0 -1
- package/DateTimePicker-77w-9TP5.js.map +0 -1
- package/DateTimePicker-CTnRQCZo.cjs.map +0 -1
- package/Input-jYapjJYM.cjs.map +0 -1
- package/Input-rVVhI_wk.js.map +0 -1
- package/Select-B6jE3WH_.cjs.map +0 -1
- package/Select-bSVQokFX.js.map +0 -1
- package/components/DateRangePicker/DateRangePicker.cjs +0 -5
- package/components/DateRangePicker/DateRangePicker.cjs.map +0 -1
- package/components/DateRangePicker/DateRangePicker.d.ts +0 -15
- package/components/DateRangePicker/DateRangePicker.definitions.d.ts +0 -6
- package/components/DateRangePicker/DateRangePicker.js +0 -5
- package/components/DateRangePicker/DateRangePicker.js.map +0 -1
- package/components/DateRangePicker/index.d.ts +0 -1
- package/components/DateRangePicker.d.ts +0 -2
- package/formField.sx-8_QRnKxv.js.map +0 -1
- package/formField.sx-BAX7KwMR.cjs.map +0 -1
- /package/{README.md → Readme.md} +0 -0
- /package/{Avatar-CgT7955R.js → dist/Avatar-CgT7955R.js} +0 -0
- /package/{Avatar-CgT7955R.js.map → dist/Avatar-CgT7955R.js.map} +0 -0
- /package/{Avatar-CuSrK8Wn.cjs → dist/Avatar-CuSrK8Wn.cjs} +0 -0
- /package/{Avatar-CuSrK8Wn.cjs.map → dist/Avatar-CuSrK8Wn.cjs.map} +0 -0
- /package/{Button-C17mExpd.cjs → dist/Button-C17mExpd.cjs} +0 -0
- /package/{Button-C17mExpd.cjs.map → dist/Button-C17mExpd.cjs.map} +0 -0
- /package/{Button-UkkP-bNw.js → dist/Button-UkkP-bNw.js} +0 -0
- /package/{Button-UkkP-bNw.js.map → dist/Button-UkkP-bNw.js.map} +0 -0
- /package/{Card-B1wtavyl.js → dist/Card-B1wtavyl.js} +0 -0
- /package/{Card-B1wtavyl.js.map → dist/Card-B1wtavyl.js.map} +0 -0
- /package/{Card-DfdU610V.cjs → dist/Card-DfdU610V.cjs} +0 -0
- /package/{Card-DfdU610V.cjs.map → dist/Card-DfdU610V.cjs.map} +0 -0
- /package/{Checkbox-BCqMFWt4.cjs → dist/Checkbox-BCqMFWt4.cjs} +0 -0
- /package/{Checkbox-BCqMFWt4.cjs.map → dist/Checkbox-BCqMFWt4.cjs.map} +0 -0
- /package/{Checkbox-gB5YKkVo.js → dist/Checkbox-gB5YKkVo.js} +0 -0
- /package/{Checkbox-gB5YKkVo.js.map → dist/Checkbox-gB5YKkVo.js.map} +0 -0
- /package/{Chip-OPYQ1uQ_.js → dist/Chip-OPYQ1uQ_.js} +0 -0
- /package/{Chip-OPYQ1uQ_.js.map → dist/Chip-OPYQ1uQ_.js.map} +0 -0
- /package/{Chip-qoJLDiva.cjs → dist/Chip-qoJLDiva.cjs} +0 -0
- /package/{Chip-qoJLDiva.cjs.map → dist/Chip-qoJLDiva.cjs.map} +0 -0
- /package/{Modal-BN5s-Tfk.cjs → dist/Modal-BN5s-Tfk.cjs} +0 -0
- /package/{Modal-BN5s-Tfk.cjs.map → dist/Modal-BN5s-Tfk.cjs.map} +0 -0
- /package/{Modal-BRZMPwDj.js → dist/Modal-BRZMPwDj.js} +0 -0
- /package/{Modal-BRZMPwDj.js.map → dist/Modal-BRZMPwDj.js.map} +0 -0
- /package/{RadioGroup-Dd0rHXSX.cjs → dist/RadioGroup-Dd0rHXSX.cjs} +0 -0
- /package/{RadioGroup-Dd0rHXSX.cjs.map → dist/RadioGroup-Dd0rHXSX.cjs.map} +0 -0
- /package/{RadioGroup-bO-ahP9T.js → dist/RadioGroup-bO-ahP9T.js} +0 -0
- /package/{RadioGroup-bO-ahP9T.js.map → dist/RadioGroup-bO-ahP9T.js.map} +0 -0
- /package/{Stat-BUcFCGrz.cjs → dist/Stat-BUcFCGrz.cjs} +0 -0
- /package/{Stat-BUcFCGrz.cjs.map → dist/Stat-BUcFCGrz.cjs.map} +0 -0
- /package/{Stat-C06A_izS.js → dist/Stat-C06A_izS.js} +0 -0
- /package/{Stat-C06A_izS.js.map → dist/Stat-C06A_izS.js.map} +0 -0
- /package/{StatusMessage-B3nXpuRl.cjs → dist/StatusMessage-B3nXpuRl.cjs} +0 -0
- /package/{StatusMessage-B3nXpuRl.cjs.map → dist/StatusMessage-B3nXpuRl.cjs.map} +0 -0
- /package/{StatusMessage-D0WgSBx7.js → dist/StatusMessage-D0WgSBx7.js} +0 -0
- /package/{StatusMessage-D0WgSBx7.js.map → dist/StatusMessage-D0WgSBx7.js.map} +0 -0
- /package/{Step-BArsou1V.js → dist/Step-BArsou1V.js} +0 -0
- /package/{Step-BArsou1V.js.map → dist/Step-BArsou1V.js.map} +0 -0
- /package/{Step-Nd7SJbRZ.cjs → dist/Step-Nd7SJbRZ.cjs} +0 -0
- /package/{Step-Nd7SJbRZ.cjs.map → dist/Step-Nd7SJbRZ.cjs.map} +0 -0
- /package/{Switch-CQFOopYy.cjs → dist/Switch-CQFOopYy.cjs} +0 -0
- /package/{Switch-CQFOopYy.cjs.map → dist/Switch-CQFOopYy.cjs.map} +0 -0
- /package/{Switch-D72dpkH2.js → dist/Switch-D72dpkH2.js} +0 -0
- /package/{Switch-D72dpkH2.js.map → dist/Switch-D72dpkH2.js.map} +0 -0
- /package/{Tab-BbP8jBcK.cjs → dist/Tab-BbP8jBcK.cjs} +0 -0
- /package/{Tab-BbP8jBcK.cjs.map → dist/Tab-BbP8jBcK.cjs.map} +0 -0
- /package/{Tab-BxSxKJsP.js → dist/Tab-BxSxKJsP.js} +0 -0
- /package/{Tab-BxSxKJsP.js.map → dist/Tab-BxSxKJsP.js.map} +0 -0
- /package/{Table-C2LbW0B1.js → dist/Table-C2LbW0B1.js} +0 -0
- /package/{Table-C2LbW0B1.js.map → dist/Table-C2LbW0B1.js.map} +0 -0
- /package/{Table-C4OM6rrC.cjs → dist/Table-C4OM6rrC.cjs} +0 -0
- /package/{Table-C4OM6rrC.cjs.map → dist/Table-C4OM6rrC.cjs.map} +0 -0
- /package/{components → dist/components}/ActionMenu/ActionMenu.cjs +0 -0
- /package/{components → dist/components}/ActionMenu/ActionMenu.cjs.map +0 -0
- /package/{components → dist/components}/ActionMenu/ActionMenu.d.ts +0 -0
- /package/{components → dist/components}/ActionMenu/ActionMenu.js +0 -0
- /package/{components → dist/components}/ActionMenu/ActionMenu.js.map +0 -0
- /package/{components → dist/components}/ActionMenu/index.d.ts +0 -0
- /package/{components → dist/components}/ActionMenu.d.ts +0 -0
- /package/{components → dist/components}/AppBar/AppBar.cjs +0 -0
- /package/{components → dist/components}/AppBar/AppBar.cjs.map +0 -0
- /package/{components → dist/components}/AppBar/AppBar.d.ts +0 -0
- /package/{components → dist/components}/AppBar/AppBar.js +0 -0
- /package/{components → dist/components}/AppBar/AppBar.js.map +0 -0
- /package/{components → dist/components}/AppBar/AppBar.sx.d.ts +0 -0
- /package/{components → dist/components}/AppBar/AppBarContext.d.ts +0 -0
- /package/{components → dist/components}/AppBar/AppBarMenuToggle.d.ts +0 -0
- /package/{components → dist/components}/AppBar/index.d.ts +0 -0
- /package/{components → dist/components}/AppBar.d.ts +0 -0
- /package/{components → dist/components}/Autocomplete/Autocomplete.cjs.map +0 -0
- /package/{components → dist/components}/Autocomplete/Autocomplete.d.ts +0 -0
- /package/{components → dist/components}/Autocomplete/Autocomplete.definitions.d.ts +0 -0
- /package/{components → dist/components}/Autocomplete/Autocomplete.helpers.d.ts +0 -0
- /package/{components → dist/components}/Autocomplete/Autocomplete.js.map +0 -0
- /package/{components → dist/components}/Autocomplete/_parts/AutocompleteChips.d.ts +0 -0
- /package/{components → dist/components}/Autocomplete/_parts/AutocompleteLoader.d.ts +0 -0
- /package/{components → dist/components}/Autocomplete/_parts/AutocompleteOption.d.ts +0 -0
- /package/{components → dist/components}/Autocomplete/index.d.ts +0 -0
- /package/{components → dist/components}/Autocomplete.d.ts +0 -0
- /package/{components → dist/components}/Avatar/Avatar.cjs +0 -0
- /package/{components → dist/components}/Avatar/Avatar.cjs.map +0 -0
- /package/{components → dist/components}/Avatar/Avatar.d.ts +0 -0
- /package/{components → dist/components}/Avatar/Avatar.definitions.d.ts +0 -0
- /package/{components → dist/components}/Avatar/Avatar.js +0 -0
- /package/{components → dist/components}/Avatar/Avatar.js.map +0 -0
- /package/{components → dist/components}/Avatar/index.d.ts +0 -0
- /package/{components → dist/components}/Avatar.d.ts +0 -0
- /package/{components → dist/components}/Button/Button.cjs +0 -0
- /package/{components → dist/components}/Button/Button.cjs.map +0 -0
- /package/{components → dist/components}/Button/Button.d.ts +0 -0
- /package/{components → dist/components}/Button/Button.definition.d.ts +0 -0
- /package/{components → dist/components}/Button/Button.js +0 -0
- /package/{components → dist/components}/Button/Button.js.map +0 -0
- /package/{components → dist/components}/Button/index.d.ts +0 -0
- /package/{components → dist/components}/Button.d.ts +0 -0
- /package/{components → dist/components}/Card/Card.cjs +0 -0
- /package/{components → dist/components}/Card/Card.cjs.map +0 -0
- /package/{components → dist/components}/Card/Card.d.ts +0 -0
- /package/{components → dist/components}/Card/Card.definition.d.ts +0 -0
- /package/{components → dist/components}/Card/Card.js +0 -0
- /package/{components → dist/components}/Card/Card.js.map +0 -0
- /package/{components → dist/components}/Card/Card.sx.d.ts +0 -0
- /package/{components → dist/components}/Card/index.d.ts +0 -0
- /package/{components → dist/components}/Card.d.ts +0 -0
- /package/{components → dist/components}/Checkbox/Checkbox.cjs +0 -0
- /package/{components → dist/components}/Checkbox/Checkbox.cjs.map +0 -0
- /package/{components → dist/components}/Checkbox/Checkbox.d.ts +0 -0
- /package/{components → dist/components}/Checkbox/Checkbox.js +0 -0
- /package/{components → dist/components}/Checkbox/Checkbox.js.map +0 -0
- /package/{components → dist/components}/Checkbox/Checkbox.sx.d.ts +0 -0
- /package/{components → dist/components}/Checkbox/index.d.ts +0 -0
- /package/{components → dist/components}/Checkbox.d.ts +0 -0
- /package/{components → dist/components}/Chip/Chip.cjs +0 -0
- /package/{components → dist/components}/Chip/Chip.cjs.map +0 -0
- /package/{components → dist/components}/Chip/Chip.d.ts +0 -0
- /package/{components → dist/components}/Chip/Chip.definitions.d.ts +0 -0
- /package/{components → dist/components}/Chip/Chip.js +0 -0
- /package/{components → dist/components}/Chip/Chip.js.map +0 -0
- /package/{components → dist/components}/Chip/index.d.ts +0 -0
- /package/{components → dist/components}/Chip.d.ts +0 -0
- /package/{components → dist/components}/Column/Column.cjs +0 -0
- /package/{components → dist/components}/Column/Column.cjs.map +0 -0
- /package/{components → dist/components}/Column/Column.d.ts +0 -0
- /package/{components → dist/components}/Column/Column.js +0 -0
- /package/{components → dist/components}/Column/Column.js.map +0 -0
- /package/{components → dist/components}/Column/index.d.ts +0 -0
- /package/{components → dist/components}/Column.d.ts +0 -0
- /package/{components → dist/components}/DatePicker/DatePicker.cjs.map +0 -0
- /package/{components → dist/components}/DatePicker/DatePicker.d.ts +0 -0
- /package/{components → dist/components}/DatePicker/DatePicker.definitions.d.ts +0 -0
- /package/{components → dist/components}/DatePicker/DatePicker.helpers.d.ts +0 -0
- /package/{components → dist/components}/DatePicker/DatePicker.js.map +0 -0
- /package/{components → dist/components}/DatePicker/index.d.ts +0 -0
- /package/{components → dist/components}/DatePicker.d.ts +0 -0
- /package/{components → dist/components}/DateTimePicker/DateTimePicker.cjs.map +0 -0
- /package/{components → dist/components}/DateTimePicker/DateTimePicker.d.ts +0 -0
- /package/{components → dist/components}/DateTimePicker/DateTimePicker.definitions.d.ts +0 -0
- /package/{components → dist/components}/DateTimePicker/DateTimePicker.helpers.d.ts +0 -0
- /package/{components → dist/components}/DateTimePicker/DateTimePicker.js.map +0 -0
- /package/{components → dist/components}/DateTimePicker/index.d.ts +0 -0
- /package/{components → dist/components}/DateTimePicker.d.ts +0 -0
- /package/{components → dist/components}/Drawer/Drawer.cjs +0 -0
- /package/{components → dist/components}/Drawer/Drawer.cjs.map +0 -0
- /package/{components → dist/components}/Drawer/Drawer.d.ts +0 -0
- /package/{components → dist/components}/Drawer/Drawer.js +0 -0
- /package/{components → dist/components}/Drawer/Drawer.js.map +0 -0
- /package/{components → dist/components}/Drawer/Drawer.sx.d.ts +0 -0
- /package/{components → dist/components}/Drawer/DrawerContext.d.ts +0 -0
- /package/{components → dist/components}/Drawer/DrawerItem.d.ts +0 -0
- /package/{components → dist/components}/Drawer/index.d.ts +0 -0
- /package/{components → dist/components}/Drawer.d.ts +0 -0
- /package/{components → dist/components}/Flyout/Flyout.cjs +0 -0
- /package/{components → dist/components}/Flyout/Flyout.cjs.map +0 -0
- /package/{components → dist/components}/Flyout/Flyout.d.ts +0 -0
- /package/{components → dist/components}/Flyout/Flyout.js +0 -0
- /package/{components → dist/components}/Flyout/Flyout.js.map +0 -0
- /package/{components → dist/components}/Flyout/index.d.ts +0 -0
- /package/{components → dist/components}/Flyout.d.ts +0 -0
- /package/{components → dist/components}/Gallery/Gallery.cjs +0 -0
- /package/{components → dist/components}/Gallery/Gallery.cjs.map +0 -0
- /package/{components → dist/components}/Gallery/Gallery.d.ts +0 -0
- /package/{components → dist/components}/Gallery/Gallery.definition.d.ts +0 -0
- /package/{components → dist/components}/Gallery/Gallery.js +0 -0
- /package/{components → dist/components}/Gallery/Gallery.js.map +0 -0
- /package/{components → dist/components}/Gallery/GalleryLightbox.d.ts +0 -0
- /package/{components → dist/components}/Gallery/GalleryMain.d.ts +0 -0
- /package/{components → dist/components}/Gallery/GalleryThumbnails.d.ts +0 -0
- /package/{components → dist/components}/Gallery/index.d.ts +0 -0
- /package/{components → dist/components}/Gallery.d.ts +0 -0
- /package/{components → dist/components}/Icon/Icon.cjs +0 -0
- /package/{components → dist/components}/Icon/Icon.cjs.map +0 -0
- /package/{components → dist/components}/Icon/Icon.d.ts +0 -0
- /package/{components → dist/components}/Icon/Icon.js +0 -0
- /package/{components → dist/components}/Icon/Icon.js.map +0 -0
- /package/{components → dist/components}/Icon/index.d.ts +0 -0
- /package/{components → dist/components}/Icon.d.ts +0 -0
- /package/{components → dist/components}/Input/Input.cjs.map +0 -0
- /package/{components → dist/components}/Input/Input.d.ts +0 -0
- /package/{components → dist/components}/Input/Input.definitions.d.ts +0 -0
- /package/{components → dist/components}/Input/Input.helpers.d.ts +0 -0
- /package/{components → dist/components}/Input/Input.js.map +0 -0
- /package/{components → dist/components}/Input/index.d.ts +0 -0
- /package/{components → dist/components}/Input.d.ts +0 -0
- /package/{components → dist/components}/InputGroup/InputGroup.cjs +0 -0
- /package/{components → dist/components}/InputGroup/InputGroup.cjs.map +0 -0
- /package/{components → dist/components}/InputGroup/InputGroup.d.ts +0 -0
- /package/{components → dist/components}/InputGroup/InputGroup.definitions.d.ts +0 -0
- /package/{components → dist/components}/InputGroup/InputGroup.js +0 -0
- /package/{components → dist/components}/InputGroup/InputGroup.js.map +0 -0
- /package/{components → dist/components}/InputGroup/index.d.ts +0 -0
- /package/{components → dist/components}/InputGroup.d.ts +0 -0
- /package/{components → dist/components}/MenuButton/MenuButton.cjs +0 -0
- /package/{components → dist/components}/MenuButton/MenuButton.cjs.map +0 -0
- /package/{components → dist/components}/MenuButton/MenuButton.d.ts +0 -0
- /package/{components → dist/components}/MenuButton/MenuButton.js +0 -0
- /package/{components → dist/components}/MenuButton/MenuButton.js.map +0 -0
- /package/{components → dist/components}/MenuButton/index.d.ts +0 -0
- /package/{components → dist/components}/MenuButton.d.ts +0 -0
- /package/{components → dist/components}/Modal/Modal.cjs +0 -0
- /package/{components → dist/components}/Modal/Modal.cjs.map +0 -0
- /package/{components → dist/components}/Modal/Modal.d.ts +0 -0
- /package/{components → dist/components}/Modal/Modal.js +0 -0
- /package/{components → dist/components}/Modal/Modal.js.map +0 -0
- /package/{components → dist/components}/Modal/ModalBody.d.ts +0 -0
- /package/{components → dist/components}/Modal/ModalFooter.d.ts +0 -0
- /package/{components → dist/components}/Modal/ModalHeader.d.ts +0 -0
- /package/{components → dist/components}/Modal/index.d.ts +0 -0
- /package/{components → dist/components}/Modal.d.ts +0 -0
- /package/{components → dist/components}/RadioGroup/RadioGroup.cjs +0 -0
- /package/{components → dist/components}/RadioGroup/RadioGroup.cjs.map +0 -0
- /package/{components → dist/components}/RadioGroup/RadioGroup.d.ts +0 -0
- /package/{components → dist/components}/RadioGroup/RadioGroup.definitions.d.ts +0 -0
- /package/{components → dist/components}/RadioGroup/RadioGroup.js +0 -0
- /package/{components → dist/components}/RadioGroup/RadioGroup.js.map +0 -0
- /package/{components → dist/components}/RadioGroup/RadioGroup.sx.d.ts +0 -0
- /package/{components → dist/components}/RadioGroup/index.d.ts +0 -0
- /package/{components → dist/components}/RadioGroup.d.ts +0 -0
- /package/{components → dist/components}/Select/Select.cjs.map +0 -0
- /package/{components → dist/components}/Select/Select.d.ts +0 -0
- /package/{components → dist/components}/Select/Select.helpers.d.ts +0 -0
- /package/{components → dist/components}/Select/Select.js.map +0 -0
- /package/{components → dist/components}/Select/_parts/SelectMenuItem.d.ts +0 -0
- /package/{components → dist/components}/Select/_parts/SelectValue.d.ts +0 -0
- /package/{components → dist/components}/Select/index.d.ts +0 -0
- /package/{components → dist/components}/Select.d.ts +0 -0
- /package/{components → dist/components}/Stat/Stat.cjs +0 -0
- /package/{components → dist/components}/Stat/Stat.cjs.map +0 -0
- /package/{components → dist/components}/Stat/Stat.d.ts +0 -0
- /package/{components → dist/components}/Stat/Stat.js +0 -0
- /package/{components → dist/components}/Stat/Stat.js.map +0 -0
- /package/{components → dist/components}/Stat/index.d.ts +0 -0
- /package/{components → dist/components}/Stat.d.ts +0 -0
- /package/{components → dist/components}/StatusMessage/StatusMessage.cjs +0 -0
- /package/{components → dist/components}/StatusMessage/StatusMessage.cjs.map +0 -0
- /package/{components → dist/components}/StatusMessage/StatusMessage.d.ts +0 -0
- /package/{components → dist/components}/StatusMessage/StatusMessage.js +0 -0
- /package/{components → dist/components}/StatusMessage/StatusMessage.js.map +0 -0
- /package/{components → dist/components}/StatusMessage/index.d.ts +0 -0
- /package/{components → dist/components}/StatusMessage.d.ts +0 -0
- /package/{components → dist/components}/Stepper/Step.d.ts +0 -0
- /package/{components → dist/components}/Stepper/Stepper.cjs +0 -0
- /package/{components → dist/components}/Stepper/Stepper.cjs.map +0 -0
- /package/{components → dist/components}/Stepper/Stepper.d.ts +0 -0
- /package/{components → dist/components}/Stepper/Stepper.definition.d.ts +0 -0
- /package/{components → dist/components}/Stepper/Stepper.js +0 -0
- /package/{components → dist/components}/Stepper/Stepper.js.map +0 -0
- /package/{components → dist/components}/Stepper/StepperContext.d.ts +0 -0
- /package/{components → dist/components}/Stepper/_hooks/useHorizontalScroll.d.ts +0 -0
- /package/{components → dist/components}/Stepper/_parts/StepperScrollArrow.d.ts +0 -0
- /package/{components → dist/components}/Stepper/index.d.ts +0 -0
- /package/{components → dist/components}/Stepper.d.ts +0 -0
- /package/{components → dist/components}/Switch/Switch.cjs +0 -0
- /package/{components → dist/components}/Switch/Switch.cjs.map +0 -0
- /package/{components → dist/components}/Switch/Switch.d.ts +0 -0
- /package/{components → dist/components}/Switch/Switch.definitions.d.ts +0 -0
- /package/{components → dist/components}/Switch/Switch.js +0 -0
- /package/{components → dist/components}/Switch/Switch.js.map +0 -0
- /package/{components → dist/components}/Switch/Switch.sx.d.ts +0 -0
- /package/{components → dist/components}/Switch/Switch.types.d.ts +0 -0
- /package/{components → dist/components}/Switch/index.d.ts +0 -0
- /package/{components → dist/components}/Switch.d.ts +0 -0
- /package/{components → dist/components}/Table/Table.cjs +0 -0
- /package/{components → dist/components}/Table/Table.cjs.map +0 -0
- /package/{components → dist/components}/Table/Table.d.ts +0 -0
- /package/{components → dist/components}/Table/Table.definition.d.ts +0 -0
- /package/{components → dist/components}/Table/Table.js +0 -0
- /package/{components → dist/components}/Table/Table.js.map +0 -0
- /package/{components → dist/components}/Table/data.d.ts +0 -0
- /package/{components → dist/components}/Table/exportsUtils.d.ts +0 -0
- /package/{components → dist/components}/Table/index.d.ts +0 -0
- /package/{components → dist/components}/Table/types.d.ts +0 -0
- /package/{components → dist/components}/Table.d.ts +0 -0
- /package/{components → dist/components}/Tabs/Tab.d.ts +0 -0
- /package/{components → dist/components}/Tabs/Tab.definition.d.ts +0 -0
- /package/{components → dist/components}/Tabs/Tabs.cjs +0 -0
- /package/{components → dist/components}/Tabs/Tabs.cjs.map +0 -0
- /package/{components → dist/components}/Tabs/Tabs.d.ts +0 -0
- /package/{components → dist/components}/Tabs/Tabs.js +0 -0
- /package/{components → dist/components}/Tabs/Tabs.js.map +0 -0
- /package/{components → dist/components}/Tabs/_tabUtils.d.ts +0 -0
- /package/{components → dist/components}/Tabs/index.d.ts +0 -0
- /package/{components → dist/components}/Tabs.d.ts +0 -0
- /package/{components → dist/components}/Timeline/Timeline.cjs +0 -0
- /package/{components → dist/components}/Timeline/Timeline.cjs.map +0 -0
- /package/{components → dist/components}/Timeline/Timeline.d.ts +0 -0
- /package/{components → dist/components}/Timeline/Timeline.definition.d.ts +0 -0
- /package/{components → dist/components}/Timeline/Timeline.js +0 -0
- /package/{components → dist/components}/Timeline/Timeline.js.map +0 -0
- /package/{components → dist/components}/Timeline/TimelineItem.d.ts +0 -0
- /package/{components → dist/components}/Timeline/index.d.ts +0 -0
- /package/{components → dist/components}/Timeline.d.ts +0 -0
- /package/{components → dist/components}/Tooltip/Tooltip.cjs +0 -0
- /package/{components → dist/components}/Tooltip/Tooltip.cjs.map +0 -0
- /package/{components → dist/components}/Tooltip/Tooltip.d.ts +0 -0
- /package/{components → dist/components}/Tooltip/Tooltip.js +0 -0
- /package/{components → dist/components}/Tooltip/Tooltip.js.map +0 -0
- /package/{components → dist/components}/Tooltip/index.d.ts +0 -0
- /package/{components → dist/components}/Tooltip.d.ts +0 -0
- /package/{components → dist/components}/_shared/mergeSx.d.ts +0 -0
- /package/{components → dist/components}/_shared/resolvePreset.d.ts +0 -0
- /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.cjs +0 -0
- /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.cjs.map +0 -0
- /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.d.ts +0 -0
- /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.js +0 -0
- /package/{hooks → dist/hooks}/ClipBoard/ClipBoard.js.map +0 -0
- /package/{hooks → dist/hooks}/ClipBoard/ClipboardUnifiedDemo.d.ts +0 -0
- /package/{hooks → dist/hooks}/ClipBoard/index.d.ts +0 -0
- /package/{hooks → dist/hooks}/ClipBoard.d.ts +0 -0
- /package/{index.css → dist/index.css} +0 -0
- /package/{mergeSx-BXoNZjB_.js → dist/mergeSx-BXoNZjB_.js} +0 -0
- /package/{mergeSx-BXoNZjB_.js.map → dist/mergeSx-BXoNZjB_.js.map} +0 -0
- /package/{mergeSx-Dbccoo_H.cjs → dist/mergeSx-Dbccoo_H.cjs} +0 -0
- /package/{mergeSx-Dbccoo_H.cjs.map → dist/mergeSx-Dbccoo_H.cjs.map} +0 -0
- /package/{mui.d.ts → dist/mui.d.ts} +0 -0
- /package/{resolvePreset-CxTI6_Ln.cjs → dist/resolvePreset-CxTI6_Ln.cjs} +0 -0
- /package/{resolvePreset-CxTI6_Ln.cjs.map → dist/resolvePreset-CxTI6_Ln.cjs.map} +0 -0
- /package/{resolvePreset-K6_BfWHD.js → dist/resolvePreset-K6_BfWHD.js} +0 -0
- /package/{resolvePreset-K6_BfWHD.js.map → dist/resolvePreset-K6_BfWHD.js.map} +0 -0
- /package/{theme → dist/theme}/componentStyles.d.ts +0 -0
- /package/{theme → dist/theme}/tokens.d.ts +0 -0
- /package/{tokens-BRrcP_p_.js → dist/tokens-BRrcP_p_.js} +0 -0
- /package/{tokens-BRrcP_p_.js.map → dist/tokens-BRrcP_p_.js.map} +0 -0
- /package/{tokens-jaWWNk39.cjs → dist/tokens-jaWWNk39.cjs} +0 -0
- /package/{tokens-jaWWNk39.cjs.map → dist/tokens-jaWWNk39.cjs.map} +0 -0
- /package/{utils → dist/utils}/index.d.ts +0 -0
- /package/{utils → dist/utils}/scrollToTop.d.ts +0 -0
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
import{j as e}from"./jsx-runtime-D_zvdyIk.js";import{r as s,R as U}from"./iframe-BAJnc_4n.js";import{u as oe}from"./formField.sx-DMCmZIAa.js";import{f as p}from"./index-B1tlhOpe.js";import{c as ue}from"./createSvgIcon-D_Gca4vA.js";import{E as pe,W as fe}from"./ErrorOutline-D9gM7ART.js";import{C as ye}from"./CheckCircleOutline-CEj5mDsl.js";import{B as d}from"./Box-BnhEcfFm.js";import{S as q}from"./Stack-D01OUIXi.js";import{B as m}from"./Button-DBpqmVB_.js";import{T as i}from"./Typography-BgntX2Ep.js";import{u as be}from"./useTheme-BmOJK7ra.js";import{u as xe}from"./index-CIeucmOB.js";import{M as K}from"./Modal-3okp9H2i.js";import{P as Z}from"./Paper-SwQBhqI7.js";import{I as z}from"./Input-CjX0t4h-.js";import{u as ge}from"./ClipBoard-DvLBdNHe.js";import"./preload-helper-PPVm8Dsz.js";import"./DefaultPropsProvider-BGoQxtDa.js";import"./extendSxProp-CEpa30hT.js";import"./useThemeProps-DYtxXiUU.js";import"./createSimplePaletteValueFilter-bm0fmN_7.js";import"./useId-b4fZxjOL.js";import"./ButtonBase-qyaMEhe4.js";import"./useTimeout-DNjRaOWc.js";import"./emotion-react.browser.esm--g-C9cX9.js";import"./useForkRef-0ANIrxcF.js";import"./isFocusVisible-B8k4qzLc.js";import"./CircularProgress-DC7ZNWwl.js";import"./ownerWindow-HkKU3E4x.js";import"./ownerDocument-DW-IO8s5.js";import"./useSlot-b6pXgp5_.js";import"./Portal-Cj8XF9Lf.js";import"./index-CY7j4a7o.js";import"./index-BF3FAXTk.js";import"./getReactElementRef-BQ3ANZdy.js";import"./Fade-Ll96CvH8.js";import"./resolvePreset-CN2aOJJr.js";import"./TextField-22T-xHBm.js";import"./Select-DJh2biEb.js";import"./Menu-ClzfjLc3.js";import"./useSlotProps-C0uMfuBt.js";import"./debounce-Be36O1Ab.js";import"./Grow-8y4FglGK.js";import"./mergeSlotProps-B0UBKBMe.js";import"./useControlled-DsVh1a5j.js";import"./isMuiElement-CTZSFcY5.js";import"./Snackbar-BtVeKTw6.js";import"./Alert-3zvTPc0p.js";import"./Close-Cy8nELYU.js";import"./IconButton-9OYSTH58.js";const he=ue(e.jsx("path",{d:"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8"})),T=({children:n,showCloseButton:o=!0,closeButtonText:a="Cerrar",closeButtonDisabled:l=!1,onClose:c,actions:u=[]})=>e.jsxs(d,{sx:{padding:2,borderTop:"1px solid #e0e0e0",display:"flex",justifyContent:"flex-end",gap:1},children:[n,e.jsxs(q,{direction:"row",spacing:1,children:[o&&e.jsx(m,{onClick:c,disabled:l,variant:"outlined",color:"secondary",children:a}),u.map((t,f)=>{const{buttonProps:y}=t;return e.jsx(m,{onClick:t.onClick,disabled:t.disabled,variant:t.variant||"contained",color:t.color||"primary",...y,children:t.text},f)})]})]});T.__docgenInfo={description:"",methods:[],displayName:"ModalFooter",props:{children:{required:!1,tsType:{name:"ReactReactNode",raw:"React.ReactNode"},description:""},showCloseButton:{required:!1,tsType:{name:"boolean"},description:"",defaultValue:{value:"true",computed:!1}},closeButtonText:{required:!1,tsType:{name:"string"},description:"",defaultValue:{value:'"Cerrar"',computed:!1}},closeButtonDisabled:{required:!1,tsType:{name:"boolean"},description:"",defaultValue:{value:"false",computed:!1}},onClose:{required:!0,tsType:{name:"signature",type:"function",raw:"() => void",signature:{arguments:[],return:{name:"void"}}},description:""},actions:{required:!1,tsType:{name:"Array",elements:[{name:"ModalAction"}],raw:"ModalAction[]"},description:"",defaultValue:{value:"[]",computed:!1}}}};const H=({children:n})=>e.jsx(d,{sx:{padding:2,borderBottom:"1px solid #e0e0e0",display:"flex",alignItems:"center",justifyContent:"space-between"},children:e.jsx(i,{variant:"h6",component:"h2",children:n})});H.__docgenInfo={description:"",methods:[],displayName:"ModalHeader",props:{children:{required:!0,tsType:{name:"ReactReactNode",raw:"React.ReactNode"},description:""}}};const _=({children:n})=>e.jsx(d,{sx:{padding:2,overflowY:"auto",flexGrow:1},children:n});_.__docgenInfo={description:"",methods:[],displayName:"ModalBody",props:{children:{required:!0,tsType:{name:"ReactReactNode",raw:"React.ReactNode"},description:""}}};const ee={position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:"90%",maxHeight:"90vh",display:"flex",flexDirection:"column",outline:"none"},Ce={info:{color:"primary",icon:e.jsx(he,{sx:{fontSize:48}}),bg:"primary.light"},warning:{color:"warning",icon:e.jsx(fe,{sx:{fontSize:48}}),bg:"warning.light"},error:{color:"error",icon:e.jsx(pe,{sx:{fontSize:48}}),bg:"error.light"},success:{color:"success",icon:e.jsx(ye,{sx:{fontSize:48}}),bg:"success.light"}},ne=s.forwardRef(({mode:n="default",open:o,onClose:a,title:l,children:c,showCloseButton:u=!0,closeButtonText:t="Cerrar",closeButtonDisabled:f=!1,actions:y=[],maxWidth:C="sm",hiddenFooter:S=!1,onConfirm:v,confirmText:N="Confirmar",confirmDisabled:re=!1,severity:B="info",confirmMessage:ae},te)=>{const[se,G]=s.useState(!1),[X,$]=s.useState(!1),J=o!==void 0?o:se;s.useImperativeHandle(te,()=>({open:()=>G(!0),close:()=>{G(!1),a?.()}}));const g=()=>{G(!1),a?.()},ie=async()=>{if(!v){g();return}try{const b=v();b instanceof Promise&&($(!0),await b)}finally{$(!1),g()}},le=be(),de=xe(le.breakpoints.down("sm")),Q=()=>{if(de)return"95%";switch(C){case"xs":return 300;case"sm":return 500;case"md":return 700;case"lg":return 900;case"xl":return 1100;case!1:return"auto";default:return 500}};if(n==="confirm"){const b=Ce[B],j=ae??c;return e.jsx(K,{open:J,onClose:g,"aria-labelledby":"modal-title",closeAfterTransition:!0,children:e.jsxs(Z,{sx:{...ee,width:Q()},children:[e.jsxs(q,{spacing:2.5,sx:{p:3,alignItems:"center",textAlign:"center"},children:[e.jsx(d,{sx:{width:72,height:72,borderRadius:"50%",backgroundColor:x=>x.palette[B==="info"?"primary":B].light,color:x=>x.palette[B==="info"?"primary":B].dark,display:"flex",alignItems:"center",justifyContent:"center",opacity:.9},children:b.icon}),l&&e.jsx(i,{variant:"h6",component:"h2",sx:{fontWeight:700},children:l}),j&&e.jsx(i,{variant:"body2",color:"text.secondary",children:j})]}),e.jsx(T,{showCloseButton:u,closeButtonText:t,closeButtonDisabled:f||X,onClose:g,actions:[{text:N,onClick:ie,disabled:re||X,variant:"contained",color:b.color}]})]})})}const ce=()=>{let b=null,j=null,x=null;return U.Children.forEach(c,h=>{if(U.isValidElement(h)){if(h.type===H)b=h;else if(h.type===_)j=h;else if(h.type===T){const Y=h,{showCloseButton:ve,closeButtonText:Me,closeButtonDisabled:Se,onClose:Be,actions:je,...me}=Y.props;x=U.cloneElement(Y,{showCloseButton:u,closeButtonText:t,closeButtonDisabled:f,onClose:g,actions:y,...me})}}}),!x&&!S&&(x=e.jsx(T,{showCloseButton:u,closeButtonText:t,closeButtonDisabled:f,onClose:g,actions:y})),e.jsxs(e.Fragment,{children:[b||l&&e.jsx(H,{children:l}),j,x]})};return e.jsx(K,{open:J,onClose:g,"aria-labelledby":"modal-title","aria-describedby":"modal-description",closeAfterTransition:!0,children:e.jsx(Z,{sx:{...ee,width:Q()},children:ce()})})}),r=ne;r.Header=H;r.Body=_;r.Footer=T;ne.__docgenInfo={description:"",methods:[{name:"open",docblock:null,modifiers:[],params:[],returns:null},{name:"close",docblock:null,modifiers:[],params:[],returns:null}],displayName:"Modal",props:{mode:{required:!1,tsType:{name:"union",raw:"'default' | 'confirm'",elements:[{name:"literal",value:"'default'"},{name:"literal",value:"'confirm'"}]},description:'Modo del modal.\n- `default` (default): modal genérico con slots `Header`/`Body`/`Footer` y\n `actions` custom.\n- `confirm`: reemplaza al `ConfirmModal` legacy. Renderiza un layout\n focalizado con icono por severidad, mensaje y botones "Cancelar" /\n "Confirmar".',defaultValue:{value:"'default'",computed:!1}},open:{required:!1,tsType:{name:"boolean"},description:"Controlado externamente. Omitir si se usa vía ref."},onClose:{required:!1,tsType:{name:"signature",type:"function",raw:"() => void",signature:{arguments:[],return:{name:"void"}}},description:"Callback al cerrar. También se dispara al confirmar/cancelar."},title:{required:!1,tsType:{name:"string"},description:""},children:{required:!1,tsType:{name:"ReactNode"},description:""},showCloseButton:{required:!1,tsType:{name:"boolean"},description:"",defaultValue:{value:"true",computed:!1}},closeButtonText:{required:!1,tsType:{name:"string"},description:"",defaultValue:{value:"'Cerrar'",computed:!1}},closeButtonDisabled:{required:!1,tsType:{name:"boolean"},description:"",defaultValue:{value:"false",computed:!1}},actions:{required:!1,tsType:{name:"Array",elements:[{name:"ModalAction"}],raw:"ModalAction[]"},description:"",defaultValue:{value:"[]",computed:!1}},maxWidth:{required:!1,tsType:{name:"DialogProps['maxWidth']",raw:"DialogProps['maxWidth']"},description:"",defaultValue:{value:"'sm'",computed:!1}},hiddenFooter:{required:!1,tsType:{name:"boolean"},description:"",defaultValue:{value:"false",computed:!1}},onConfirm:{required:!1,tsType:{name:"signature",type:"function",raw:"() => void | Promise<void>",signature:{arguments:[],return:{name:"union",raw:"void | Promise<void>",elements:[{name:"void"},{name:"Promise",elements:[{name:"void"}],raw:"Promise<void>"}]}}},description:"Callback de confirmación. Soporta promesa — si devuelve `Promise`, el\nbotón muestra estado `disabled` mientras resuelve."},confirmText:{required:!1,tsType:{name:"string"},description:'Texto del botón primario en modo `confirm`. Default: "Confirmar".',defaultValue:{value:"'Confirmar'",computed:!1}},confirmDisabled:{required:!1,tsType:{name:"boolean"},description:"Deshabilita el botón de confirmar.",defaultValue:{value:"false",computed:!1}},severity:{required:!1,tsType:{name:"union",raw:"'info' | 'warning' | 'error' | 'success'",elements:[{name:"literal",value:"'info'"},{name:"literal",value:"'warning'"},{name:"literal",value:"'error'"},{name:"literal",value:"'success'"}]},description:'Severidad visual en modo `confirm`. Controla el icono y el color del\nbotón de confirmación.\n- `info` (default): primary\n- `warning`: warning (amarillo)\n- `error`: error (rojo) — típico para "Eliminar"\n- `success`: success (verde) — típico para "Aprobar"',defaultValue:{value:"'info'",computed:!1}},confirmMessage:{required:!1,tsType:{name:"ReactNode"},description:"Mensaje del confirm. Puede ser string o cualquier ReactNode. Si se omite,\nse usa `children`."}}};const Bo={title:"Components/Modal",component:r,tags:["autodocs"],argTypes:{open:{control:"boolean",description:"Controla si el modal está abierto o cerrado (uso controlado). Opcional si se usa el control imperativo con `ref`."},onClose:{action:"onClose clickeado",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`."},title:{control:"text",description:"Título opcional para el encabezado del modal. Se usará si no se proporciona `Modal.Header` explícitamente."},children:{control:"object",description:"Contenido del modal, típicamente `Modal.Header`, `Modal.Body` y `Modal.Footer`."},showCloseButton:{control:"boolean",description:'Controla la visibilidad del botón "Cerrar" por defecto en el `Modal.Footer`.'},closeButtonText:{control:"text",description:'Texto personalizado para el botón "Cerrar".'},closeButtonDisabled:{control:"boolean",description:'Deshabilita el botón "Cerrar".'},actions:{control:"object",description:"Un arreglo de objetos `ModalAction` para botones de acción personalizados en el `Modal.Footer`."},maxWidth:{control:"select",options:["xs","sm","md","lg","xl",!1],description:"Tamaño máximo del modal (propiedad de Material-UI `Dialog`)."}},parameters:{docs:{description:{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."}}}},M={args:{open:!0,onClose:p(),title:"Modal de Ejemplo (Controlado por Estado)",children:e.jsxs(r.Body,{children:[e.jsx(i,{children:"Este es el contenido principal del modal."}),e.jsx(i,{sx:{mt:2},children:"Puedes colocar cualquier elemento React aquí."})]}),showCloseButton:!0,closeButtonText:"Cerrar",actions:[{text:"Guardar",onClick:p(()=>console.log("some some")),variant:"contained"},{text:"Aceptar",onClick:p(),color:"success"}]},parameters:{docs:{description:{story:"Muestra un modal básico con un título y botones de acción, controlado por una prop `open` en el componente padre."}}}},E={render:n=>{const o=s.useRef(null),a=()=>{o.current?.open()},l=()=>{alert("Acción confirmada desde el modal imperativo!"),o.current?.close()};return e.jsxs(d,{children:[e.jsx(m,{onClick:a,variant:"contained",children:"Abrir Modal Imperativo"}),e.jsx(r,{ref:o,onClose:p(()=>console.log("Modal cerrado imperativamente")),title:"Modal Controlado Imperativamente",showCloseButton:!0,closeButtonText:"Cerrar",actions:[{text:"Aceptar",onClick:l,variant:"contained"}],maxWidth:"sm",...n,children:e.jsxs(r.Body,{children:[e.jsx(i,{children:"Este modal se abre y cierra llamando a métodos de la `ref`."}),e.jsx(i,{sx:{mt:2},children:"No hay un `useState` para `open` en este componente padre."})]})})]})},args:{open:void 0,onClose:void 0},parameters:{docs:{description:{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."}}}},k={args:{open:!0,onClose:p(),maxWidth:"md",children:e.jsxs(e.Fragment,{children:[e.jsx(r.Header,{children:e.jsx(i,{variant:"h6",children:"Detalles del Artículo"})}),e.jsx(r.Body,{children:e.jsxs(d,{sx:{p:2,border:"1px dashed grey",borderRadius:1},children:[e.jsx(i,{children:"Aquí va un formulario complejo o información detallada."}),e.jsx(i,{sx:{mt:1},children:"El cuerpo puede crecer y tener scroll si es necesario."}),e.jsx(m,{onClick:p(),sx:{mt:2},children:"Acción en el cuerpo"})]})}),e.jsx(r.Footer,{showCloseButton:!1,onClose:p(),actions:[{text:"Cancelar",onClick:p(),variant:"outlined",color:"error"},{text:"Confirmar Envío",onClick:p(),variant:"contained",color:"primary"}],children:e.jsx(i,{variant:"caption",sx:{mr:2},children:"Requiere confirmación."})})]})},parameters:{docs:{description:{story:"Demuestra el uso completo de la estructura de componente compuesto (`Modal.Header`, `Modal.Body`, `Modal.Footer`) con contenido variado y control de botones."}}}},O={args:{...M.args,title:"Modal sin botón de cerrar",showCloseButton:!1,actions:[{text:"Entendido",onClick:p(),variant:"contained"}]},parameters:{docs:{description:{story:'Un modal que no muestra el botón "Cerrar" por defecto, forzando al usuario a usar las acciones personalizadas.'}}}},w={args:{...M.args,title:"Modal con botón de cerrar deshabilitado",closeButtonDisabled:!0,actions:[{text:"Habilitar",onClick:p(),variant:"contained"}]},parameters:{docs:{description:{story:'Muestra un modal donde el botón "Cerrar" por defecto está deshabilitado.'}}}},A={render:n=>{const[o,a]=s.useState(!1),[l,c]=s.useState(!1),{ref:u,CopyMessage:t}=ge();return e.jsxs(d,{sx:{display:"flex",gap:2},children:[e.jsx(m,{onClick:()=>a(!0),variant:"outlined",children:"Abrir XS"}),e.jsx(m,{onClick:()=>c(!0),variant:"outlined",children:"Abrir LG"}),e.jsx(r,{...n,open:o,onClose:()=>a(!1),title:"Modal XS",maxWidth:"xs",children:e.jsx(r.Body,{children:e.jsx(i,{children:"Este es un modal de tamaño extra pequeño."})})}),e.jsx(r,{...n,open:l,onClose:()=>c(!1),title:"Modal LG",maxWidth:"lg",children:e.jsxs(r.Body,{children:[e.jsx(i,{ref:u,children:"Este es un modal de tamaño grande."}),e.jsx(t,{})]})})]})},args:{open:!1,onClose:p()},parameters:{docs:{description:{story:"Demuestra cómo el modal se ajusta a diferentes tamaños (`maxWidth`) definidos por las propiedades de Material-UI."}}}},R={args:{open:!0,onClose:p(),title:"Modal con Contenido Largo",maxWidth:"sm",children:e.jsx(r.Body,{children:Array.from({length:30},(n,o)=>e.jsxs(i,{sx:{mb:1},children:["Este es un párrafo de contenido largo para probar el scroll del modal. Línea ",o+1,". Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."]},o))})},parameters:{docs:{description:{story:"Muestra un modal con un cuerpo que contiene mucho texto, demostrando la funcionalidad de scroll automático."}}}},F={render:()=>{const[n,o]=s.useState(!1),[a,l]=s.useState(null),{control:c,handleSubmit:u,reset:t,formState:{isSubmitting:f}}=oe({defaultValues:{name:"",email:""}}),y=async S=>{await new Promise(v=>setTimeout(v,500)),l(S),o(!1),t()},C=()=>{o(!1),t()};return e.jsxs(d,{children:[e.jsx(m,{variant:"contained",onClick:()=>o(!0),children:"Abrir form en Modal"}),a&&e.jsxs(i,{sx:{mt:2},color:"success.main",children:["Enviado: ",JSON.stringify(a)]}),e.jsx(r,{open:n,onClose:C,title:"Crear usuario",maxWidth:"sm",hiddenFooter:!0,children:e.jsx(r.Body,{children:e.jsx(d,{component:"form",onSubmit:u(y),noValidate:!0,paddingTop:2,children:e.jsxs(q,{spacing:3,children:[e.jsx(z,{name:"name",control:c,label:"Nombre",validation:{required:"El nombre es requerido",minLength:{value:2,message:"Mínimo 2 caracteres"}}}),e.jsx(z,{name:"email",control:c,label:"Email",type:"email",validation:{required:"El email es requerido",pattern:{value:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,message:"Email inválido"}}}),e.jsxs(q,{direction:"row",spacing:1,justifyContent:"flex-end",sx:{pt:1},children:[e.jsx(m,{type:"button",variant:"text",onClick:C,disabled:f,children:"Cancelar"}),e.jsx(m,{type:"submit",variant:"contained",disabled:f,children:f?"Guardando...":"Guardar"})]})]})})})})]})},parameters:{docs:{description:{story:["**Modal + React Hook Form con botones a nivel del Body (recomendado).**","","Cuando usás RHF dentro de un modal, los botones de submit/cancel deben","vivir dentro del mismo `<form>` que los inputs. Si ponés los botones","en `Modal.Footer`, quedan en un subárbol hermano al Body y el submit","no dispara porque el `<form>` no los envuelve.","","La solución es:","1. Usar `hiddenFooter` en el Modal para ocultar el footer por defecto.","2. Meter el `<form>`, los inputs y los botones todos dentro de `Modal.Body`.",'3. El botón de submit usa `type="submit"`, que dispara el `onSubmit` del form.'].join(`
|
|
2
|
+
`)}}}},I={render:()=>{const[n,o]=s.useState(!1);return e.jsxs(d,{children:[e.jsx(m,{variant:"contained",onClick:()=>o(!0),children:"Abrir confirm (info)"}),e.jsx(r,{mode:"confirm",open:n,onClose:()=>o(!1),title:"¿Deseas continuar?",confirmMessage:"Esta acción guardará los cambios realizados en el formulario.",confirmText:"Sí, continuar",closeButtonText:"Cancelar",onConfirm:()=>console.log("confirmed")})]})},parameters:{docs:{description:{story:"Confirm de severidad `info` (default). Layout centrado con icono circular, título, mensaje y botones Cancelar / Confirmar."}}}},D={render:()=>{const[n,o]=s.useState(!1);return e.jsxs(d,{children:[e.jsx(m,{variant:"outlined",color:"error",onClick:()=>o(!0),children:"Eliminar afiliación"}),e.jsx(r,{mode:"confirm",severity:"error",open:n,onClose:()=>o(!1),title:"Eliminar afiliación",confirmMessage:"Esta acción no se puede deshacer. ¿Confirmas que deseas eliminar la afiliación #12458?",confirmText:"Sí, eliminar",closeButtonText:"Cancelar",onConfirm:()=>console.log("deleted")})]})},parameters:{docs:{description:{story:"Confirm de severidad `error` — icono rojo y botón primario rojo. Patrón típico para operaciones destructivas."}}}},P={render:()=>{const[n,o]=s.useState(!1);return e.jsxs(d,{children:[e.jsx(m,{variant:"contained",color:"warning",onClick:()=>o(!0),children:"Salir sin guardar"}),e.jsx(r,{mode:"confirm",severity:"warning",open:n,onClose:()=>o(!1),title:"Tienes cambios sin guardar",confirmMessage:"Si sales ahora perderás los cambios realizados. ¿Deseas salir igualmente?",confirmText:"Salir sin guardar",closeButtonText:"Seguir editando",onConfirm:()=>console.log("discarded")})]})}},L={render:()=>{const[n,o]=s.useState(!1);return e.jsxs(d,{children:[e.jsx(m,{variant:"contained",color:"success",onClick:()=>o(!0),children:"Aprobar solicitud"}),e.jsx(r,{mode:"confirm",severity:"success",open:n,onClose:()=>o(!1),title:"Aprobar solicitud",confirmMessage:"Al aprobar, el cliente recibirá una notificación y se activará su afiliación.",confirmText:"Aprobar",closeButtonText:"Cancelar",onConfirm:()=>console.log("approved")})]})}},V={render:()=>{const[n,o]=s.useState(!1),[a,l]=s.useState(null),c=()=>new Promise(u=>{setTimeout(()=>{l("Ejecutado después de 1.5s"),u()},1500)});return e.jsxs(d,{children:[e.jsx(m,{variant:"contained",onClick:()=>o(!0),children:"Confirmar con request async"}),a&&e.jsx(i,{sx:{mt:2},color:"success.main",children:a}),e.jsx(r,{mode:"confirm",open:n,onClose:()=>o(!1),title:"Procesar afiliación",confirmMessage:"Esto enviará la solicitud al backend y puede tardar unos segundos.",confirmText:"Procesar",onConfirm:c})]})},parameters:{docs:{description:{story:"El `onConfirm` puede devolver una `Promise`. Mientras resuelve, los botones quedan deshabilitados para evitar clicks dobles. Al resolver, el modal cierra automáticamente."}}}},W={render:()=>{const[n,o]=s.useState(!1),[a,l]=s.useState(null),{control:c,handleSubmit:u,reset:t,formState:{isSubmitting:f}}=oe({defaultValues:{name:"",email:""}}),y="user-form-footer",C=async v=>{await new Promise(N=>setTimeout(N,500)),l(v),o(!1),t()},S=()=>{o(!1),t()};return e.jsxs(d,{children:[e.jsx(m,{variant:"contained",onClick:()=>o(!0),children:"Abrir form (footer con formId)"}),a&&e.jsxs(i,{sx:{mt:2},color:"success.main",children:["Enviado: ",JSON.stringify(a)]}),e.jsx(r,{open:n,onClose:S,title:"Crear usuario (footer)",maxWidth:"sm",actions:[{text:f?"Guardando...":"Guardar",buttonProps:{type:"submit",form:y,variant:"contained",disabled:f}}],closeButtonText:"Cancelar",children:e.jsx(r.Body,{children:e.jsx(d,{component:"form",id:y,onSubmit:u(C),noValidate:!0,paddingTop:2,children:e.jsxs(q,{spacing:3,children:[e.jsx(z,{name:"name",control:c,label:"Nombre",validation:{required:"El nombre es requerido"}}),e.jsx(z,{name:"email",control:c,label:"Email",type:"email",validation:{required:"El email es requerido",pattern:{value:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,message:"Email inválido"}}})]})})})})]})},parameters:{docs:{description:{story:['**Alternativa avanzada: botones en el footer usando `form="formId"`.**',"","Si necesitás mantener el layout clásico (Header / Body / Footer) con los","botones en el footer, la forma correcta es asignarle un `id` al `<form>`",'y al botón de submit le pasás `form="mismoId"`. HTML5 nativo conecta',"el botón con el form aunque no sean hermanos en el DOM.","","```tsx",'<form id="user-form" onSubmit={handleSubmit(onSubmit)}>...</form>','<button type="submit" form="user-form">Guardar</button>',"```","","Es la alternativa cuando querés reutilizar `Modal.Footer` con sus `actions`","en lugar de construir los botones a mano dentro del body."].join(`
|
|
3
|
+
`)}}}};M.parameters={...M.parameters,docs:{...M.parameters?.docs,source:{originalSource:`{
|
|
4
|
+
args: {
|
|
5
|
+
open: true,
|
|
6
|
+
onClose: fn(),
|
|
7
|
+
title: 'Modal de Ejemplo (Controlado por Estado)',
|
|
8
|
+
children: <Modal.Body>
|
|
9
|
+
<Typography>Este es el contenido principal del modal.</Typography>
|
|
10
|
+
<Typography sx={{
|
|
11
|
+
mt: 2
|
|
12
|
+
}}>Puedes colocar cualquier elemento React aquí.</Typography>
|
|
13
|
+
</Modal.Body>,
|
|
14
|
+
showCloseButton: true,
|
|
15
|
+
closeButtonText: 'Cerrar',
|
|
16
|
+
actions: [{
|
|
17
|
+
text: 'Guardar',
|
|
18
|
+
onClick: fn(() => console.log("some some")),
|
|
19
|
+
variant: 'contained'
|
|
20
|
+
}, {
|
|
21
|
+
text: 'Aceptar',
|
|
22
|
+
onClick: fn(),
|
|
23
|
+
color: 'success'
|
|
24
|
+
}]
|
|
25
|
+
},
|
|
26
|
+
parameters: {
|
|
27
|
+
docs: {
|
|
28
|
+
description: {
|
|
29
|
+
story: 'Muestra un modal básico con un título y botones de acción, controlado por una prop \`open\` en el componente padre.'
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}`,...M.parameters?.docs?.source}}};E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
|
|
34
|
+
render: args => {
|
|
35
|
+
const modalRef = useRef<ModalRef>(null);
|
|
36
|
+
const handleOpen = () => {
|
|
37
|
+
modalRef.current?.open();
|
|
38
|
+
};
|
|
39
|
+
const handleConfirm = () => {
|
|
40
|
+
alert('Acción confirmada desde el modal imperativo!');
|
|
41
|
+
modalRef.current?.close();
|
|
42
|
+
};
|
|
43
|
+
return <Box>
|
|
44
|
+
<Button onClick={handleOpen} variant="contained">
|
|
45
|
+
Abrir Modal Imperativo
|
|
46
|
+
</Button>
|
|
47
|
+
|
|
48
|
+
<Modal ref={modalRef} // Asigna la ref al modal
|
|
49
|
+
// No se pasa la prop \`open\` aquí, el modal gestiona su estado interno
|
|
50
|
+
onClose={fn(() => console.log('Modal cerrado imperativamente'))} // El padre aún puede escuchar el cierre
|
|
51
|
+
title="Modal Controlado Imperativamente" showCloseButton={true} closeButtonText="Cerrar" actions={[{
|
|
52
|
+
text: 'Aceptar',
|
|
53
|
+
onClick: handleConfirm,
|
|
54
|
+
variant: 'contained'
|
|
55
|
+
}]} maxWidth="sm" {...args} // Pasa otras props del story
|
|
56
|
+
>
|
|
57
|
+
<Modal.Body>
|
|
58
|
+
<Typography>Este modal se abre y cierra llamando a métodos de la \`ref\`.</Typography>
|
|
59
|
+
<Typography sx={{
|
|
60
|
+
mt: 2
|
|
61
|
+
}}>No hay un \`useState\` para \`open\` en este componente padre.</Typography>
|
|
62
|
+
</Modal.Body>
|
|
63
|
+
</Modal>
|
|
64
|
+
</Box>;
|
|
65
|
+
},
|
|
66
|
+
args: {
|
|
67
|
+
// Las props 'open' y 'onClose' se omiten o se gestionan internamente en el render
|
|
68
|
+
open: undefined,
|
|
69
|
+
// Asegúrate de que \`open\` no se pase para activar el control interno
|
|
70
|
+
onClose: undefined // \`onClose\` se gestiona en el render
|
|
71
|
+
},
|
|
72
|
+
parameters: {
|
|
73
|
+
docs: {
|
|
74
|
+
description: {
|
|
75
|
+
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.'
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}`,...E.parameters?.docs?.source}}};k.parameters={...k.parameters,docs:{...k.parameters?.docs,source:{originalSource:`{
|
|
80
|
+
args: {
|
|
81
|
+
open: true,
|
|
82
|
+
onClose: fn(),
|
|
83
|
+
maxWidth: 'md',
|
|
84
|
+
children: <>
|
|
85
|
+
<Modal.Header>
|
|
86
|
+
<Typography variant="h6">Detalles del Artículo</Typography>
|
|
87
|
+
</Modal.Header>
|
|
88
|
+
<Modal.Body>
|
|
89
|
+
<Box sx={{
|
|
90
|
+
p: 2,
|
|
91
|
+
border: '1px dashed grey',
|
|
92
|
+
borderRadius: 1
|
|
93
|
+
}}>
|
|
94
|
+
<Typography>Aquí va un formulario complejo o información detallada.</Typography>
|
|
95
|
+
<Typography sx={{
|
|
96
|
+
mt: 1
|
|
97
|
+
}}>El cuerpo puede crecer y tener scroll si es necesario.</Typography>
|
|
98
|
+
<Button onClick={fn()} sx={{
|
|
99
|
+
mt: 2
|
|
100
|
+
}}>Acción en el cuerpo</Button>
|
|
101
|
+
</Box>
|
|
102
|
+
</Modal.Body>
|
|
103
|
+
<Modal.Footer showCloseButton={false} onClose={fn()} // Added onClose property
|
|
104
|
+
actions={[{
|
|
105
|
+
text: 'Cancelar',
|
|
106
|
+
onClick: fn(),
|
|
107
|
+
variant: 'outlined',
|
|
108
|
+
color: 'error'
|
|
109
|
+
}, {
|
|
110
|
+
text: 'Confirmar Envío',
|
|
111
|
+
onClick: fn(),
|
|
112
|
+
variant: 'contained',
|
|
113
|
+
color: 'primary'
|
|
114
|
+
}]}>
|
|
115
|
+
<Typography variant="caption" sx={{
|
|
116
|
+
mr: 2
|
|
117
|
+
}}>
|
|
118
|
+
Requiere confirmación.
|
|
119
|
+
</Typography>
|
|
120
|
+
</Modal.Footer>
|
|
121
|
+
</>
|
|
122
|
+
},
|
|
123
|
+
parameters: {
|
|
124
|
+
docs: {
|
|
125
|
+
description: {
|
|
126
|
+
story: 'Demuestra el uso completo de la estructura de componente compuesto (\`Modal.Header\`, \`Modal.Body\`, \`Modal.Footer\`) con contenido variado y control de botones.'
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}`,...k.parameters?.docs?.source}}};O.parameters={...O.parameters,docs:{...O.parameters?.docs,source:{originalSource:`{
|
|
131
|
+
args: {
|
|
132
|
+
...Default.args,
|
|
133
|
+
title: 'Modal sin botón de cerrar',
|
|
134
|
+
showCloseButton: false,
|
|
135
|
+
actions: [{
|
|
136
|
+
text: 'Entendido',
|
|
137
|
+
onClick: fn(),
|
|
138
|
+
variant: 'contained'
|
|
139
|
+
}]
|
|
140
|
+
},
|
|
141
|
+
parameters: {
|
|
142
|
+
docs: {
|
|
143
|
+
description: {
|
|
144
|
+
story: 'Un modal que no muestra el botón "Cerrar" por defecto, forzando al usuario a usar las acciones personalizadas.'
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}`,...O.parameters?.docs?.source}}};w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
|
|
149
|
+
args: {
|
|
150
|
+
...Default.args,
|
|
151
|
+
title: 'Modal con botón de cerrar deshabilitado',
|
|
152
|
+
closeButtonDisabled: true,
|
|
153
|
+
actions: [{
|
|
154
|
+
text: 'Habilitar',
|
|
155
|
+
onClick: fn(),
|
|
156
|
+
variant: 'contained'
|
|
157
|
+
}]
|
|
158
|
+
},
|
|
159
|
+
parameters: {
|
|
160
|
+
docs: {
|
|
161
|
+
description: {
|
|
162
|
+
story: 'Muestra un modal donde el botón "Cerrar" por defecto está deshabilitado.'
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}`,...w.parameters?.docs?.source}}};A.parameters={...A.parameters,docs:{...A.parameters?.docs,source:{originalSource:`{
|
|
167
|
+
render: (args: any) => {
|
|
168
|
+
const [openXs, setOpenXs] = useState(false);
|
|
169
|
+
const [openLg, setOpenLg] = useState(false);
|
|
170
|
+
const {
|
|
171
|
+
ref,
|
|
172
|
+
CopyMessage
|
|
173
|
+
} = useClipboard();
|
|
174
|
+
return <Box sx={{
|
|
175
|
+
display: 'flex',
|
|
176
|
+
gap: 2
|
|
177
|
+
}}>
|
|
178
|
+
<Button onClick={() => setOpenXs(true)} variant="outlined">Abrir XS</Button>
|
|
179
|
+
<Button onClick={() => setOpenLg(true)} variant="outlined">Abrir LG</Button>
|
|
180
|
+
|
|
181
|
+
<Modal {...args} open={openXs} onClose={() => setOpenXs(false)} title="Modal XS" maxWidth="xs">
|
|
182
|
+
<Modal.Body><Typography>Este es un modal de tamaño extra pequeño.</Typography></Modal.Body>
|
|
183
|
+
</Modal>
|
|
184
|
+
|
|
185
|
+
<Modal {...args} open={openLg} onClose={() => setOpenLg(false)} title="Modal LG" maxWidth="lg">
|
|
186
|
+
<Modal.Body>
|
|
187
|
+
<Typography ref={ref}>Este es un modal de tamaño grande.</Typography>
|
|
188
|
+
<CopyMessage />
|
|
189
|
+
</Modal.Body>
|
|
190
|
+
</Modal>
|
|
191
|
+
</Box>;
|
|
192
|
+
},
|
|
193
|
+
args: {
|
|
194
|
+
open: false,
|
|
195
|
+
onClose: fn()
|
|
196
|
+
},
|
|
197
|
+
parameters: {
|
|
198
|
+
docs: {
|
|
199
|
+
description: {
|
|
200
|
+
story: 'Demuestra cómo el modal se ajusta a diferentes tamaños (\`maxWidth\`) definidos por las propiedades de Material-UI.'
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}`,...A.parameters?.docs?.source}}};R.parameters={...R.parameters,docs:{...R.parameters?.docs,source:{originalSource:`{
|
|
205
|
+
args: {
|
|
206
|
+
open: true,
|
|
207
|
+
onClose: fn(),
|
|
208
|
+
title: 'Modal con Contenido Largo',
|
|
209
|
+
maxWidth: 'sm',
|
|
210
|
+
children: <Modal.Body>
|
|
211
|
+
{Array.from({
|
|
212
|
+
length: 30
|
|
213
|
+
}, (_, i) => <Typography key={i} sx={{
|
|
214
|
+
mb: 1
|
|
215
|
+
}}>
|
|
216
|
+
Este es un párrafo de contenido largo para probar el scroll del modal. Línea {i + 1}.
|
|
217
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|
|
218
|
+
</Typography>)}
|
|
219
|
+
</Modal.Body>
|
|
220
|
+
},
|
|
221
|
+
parameters: {
|
|
222
|
+
docs: {
|
|
223
|
+
description: {
|
|
224
|
+
story: 'Muestra un modal con un cuerpo que contiene mucho texto, demostrando la funcionalidad de scroll automático.'
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}`,...R.parameters?.docs?.source}}};F.parameters={...F.parameters,docs:{...F.parameters?.docs,source:{originalSource:`{
|
|
229
|
+
render: () => {
|
|
230
|
+
const [open, setOpen] = useState(false);
|
|
231
|
+
const [submitted, setSubmitted] = useState<UserFormValues | null>(null);
|
|
232
|
+
const {
|
|
233
|
+
control,
|
|
234
|
+
handleSubmit,
|
|
235
|
+
reset,
|
|
236
|
+
formState: {
|
|
237
|
+
isSubmitting
|
|
238
|
+
}
|
|
239
|
+
} = useForm<UserFormValues>({
|
|
240
|
+
defaultValues: {
|
|
241
|
+
name: '',
|
|
242
|
+
email: ''
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
const onSubmit = async (data: UserFormValues) => {
|
|
246
|
+
await new Promise(r => setTimeout(r, 500));
|
|
247
|
+
setSubmitted(data);
|
|
248
|
+
setOpen(false);
|
|
249
|
+
reset();
|
|
250
|
+
};
|
|
251
|
+
const handleClose = () => {
|
|
252
|
+
setOpen(false);
|
|
253
|
+
reset();
|
|
254
|
+
};
|
|
255
|
+
return <Box>
|
|
256
|
+
<Button variant="contained" onClick={() => setOpen(true)}>
|
|
257
|
+
Abrir form en Modal
|
|
258
|
+
</Button>
|
|
259
|
+
{submitted && <Typography sx={{
|
|
260
|
+
mt: 2
|
|
261
|
+
}} color="success.main">
|
|
262
|
+
Enviado: {JSON.stringify(submitted)}
|
|
263
|
+
</Typography>}
|
|
264
|
+
|
|
265
|
+
<Modal open={open} onClose={handleClose} title="Crear usuario" maxWidth="sm" hiddenFooter // 👈 ocultamos el footer por defecto
|
|
266
|
+
>
|
|
267
|
+
<Modal.Body>
|
|
268
|
+
{/* El form envuelve TODO: inputs + botones.
|
|
269
|
+
Los botones están dentro del body, NO en un footer. */}
|
|
270
|
+
<Box component="form" onSubmit={handleSubmit(onSubmit)} noValidate paddingTop={2}>
|
|
271
|
+
<Stack spacing={3}>
|
|
272
|
+
<Input name="name" control={control} label="Nombre" validation={{
|
|
273
|
+
required: 'El nombre es requerido',
|
|
274
|
+
minLength: {
|
|
275
|
+
value: 2,
|
|
276
|
+
message: 'Mínimo 2 caracteres'
|
|
277
|
+
}
|
|
278
|
+
}} />
|
|
279
|
+
<Input name="email" control={control} label="Email" type="email" validation={{
|
|
280
|
+
required: 'El email es requerido',
|
|
281
|
+
pattern: {
|
|
282
|
+
value: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/,
|
|
283
|
+
message: 'Email inválido'
|
|
284
|
+
}
|
|
285
|
+
}} />
|
|
286
|
+
|
|
287
|
+
{/* Botones DENTRO del form, a nivel del body. */}
|
|
288
|
+
<Stack direction="row" spacing={1} justifyContent="flex-end" sx={{
|
|
289
|
+
pt: 1
|
|
290
|
+
}}>
|
|
291
|
+
<Button type="button" variant="text" onClick={handleClose} disabled={isSubmitting}>
|
|
292
|
+
Cancelar
|
|
293
|
+
</Button>
|
|
294
|
+
<Button type="submit" variant="contained" disabled={isSubmitting}>
|
|
295
|
+
{isSubmitting ? 'Guardando...' : 'Guardar'}
|
|
296
|
+
</Button>
|
|
297
|
+
</Stack>
|
|
298
|
+
</Stack>
|
|
299
|
+
</Box>
|
|
300
|
+
</Modal.Body>
|
|
301
|
+
</Modal>
|
|
302
|
+
</Box>;
|
|
303
|
+
},
|
|
304
|
+
parameters: {
|
|
305
|
+
docs: {
|
|
306
|
+
description: {
|
|
307
|
+
story: ['**Modal + React Hook Form con botones a nivel del Body (recomendado).**', '', 'Cuando usás RHF dentro de un modal, los botones de submit/cancel deben', 'vivir dentro del mismo \`<form>\` que los inputs. Si ponés los botones', 'en \`Modal.Footer\`, quedan en un subárbol hermano al Body y el submit', 'no dispara porque el \`<form>\` no los envuelve.', '', 'La solución es:', '1. Usar \`hiddenFooter\` en el Modal para ocultar el footer por defecto.', '2. Meter el \`<form>\`, los inputs y los botones todos dentro de \`Modal.Body\`.', '3. El botón de submit usa \`type="submit"\`, que dispara el \`onSubmit\` del form.'].join('\\n')
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
}`,...F.parameters?.docs?.source}}};I.parameters={...I.parameters,docs:{...I.parameters?.docs,source:{originalSource:`{
|
|
312
|
+
render: () => {
|
|
313
|
+
const [open, setOpen] = useState(false);
|
|
314
|
+
return <Box>
|
|
315
|
+
<Button variant="contained" onClick={() => setOpen(true)}>
|
|
316
|
+
Abrir confirm (info)
|
|
317
|
+
</Button>
|
|
318
|
+
<Modal mode="confirm" open={open} onClose={() => setOpen(false)} title="¿Deseas continuar?" confirmMessage="Esta acción guardará los cambios realizados en el formulario." confirmText="Sí, continuar" closeButtonText="Cancelar" onConfirm={() => console.log('confirmed')} />
|
|
319
|
+
</Box>;
|
|
320
|
+
},
|
|
321
|
+
parameters: {
|
|
322
|
+
docs: {
|
|
323
|
+
description: {
|
|
324
|
+
story: 'Confirm de severidad \`info\` (default). Layout centrado con icono circular, título, mensaje y botones Cancelar / Confirmar.'
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}`,...I.parameters?.docs?.source}}};D.parameters={...D.parameters,docs:{...D.parameters?.docs,source:{originalSource:`{
|
|
329
|
+
render: () => {
|
|
330
|
+
const [open, setOpen] = useState(false);
|
|
331
|
+
return <Box>
|
|
332
|
+
<Button variant="outlined" color="error" onClick={() => setOpen(true)}>
|
|
333
|
+
Eliminar afiliación
|
|
334
|
+
</Button>
|
|
335
|
+
<Modal mode="confirm" severity="error" open={open} onClose={() => setOpen(false)} title="Eliminar afiliación" confirmMessage="Esta acción no se puede deshacer. ¿Confirmas que deseas eliminar la afiliación #12458?" confirmText="Sí, eliminar" closeButtonText="Cancelar" onConfirm={() => console.log('deleted')} />
|
|
336
|
+
</Box>;
|
|
337
|
+
},
|
|
338
|
+
parameters: {
|
|
339
|
+
docs: {
|
|
340
|
+
description: {
|
|
341
|
+
story: 'Confirm de severidad \`error\` — icono rojo y botón primario rojo. Patrón típico para operaciones destructivas.'
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}`,...D.parameters?.docs?.source}}};P.parameters={...P.parameters,docs:{...P.parameters?.docs,source:{originalSource:`{
|
|
346
|
+
render: () => {
|
|
347
|
+
const [open, setOpen] = useState(false);
|
|
348
|
+
return <Box>
|
|
349
|
+
<Button variant="contained" color="warning" onClick={() => setOpen(true)}>
|
|
350
|
+
Salir sin guardar
|
|
351
|
+
</Button>
|
|
352
|
+
<Modal mode="confirm" severity="warning" open={open} onClose={() => setOpen(false)} title="Tienes cambios sin guardar" confirmMessage="Si sales ahora perderás los cambios realizados. ¿Deseas salir igualmente?" confirmText="Salir sin guardar" closeButtonText="Seguir editando" onConfirm={() => console.log('discarded')} />
|
|
353
|
+
</Box>;
|
|
354
|
+
}
|
|
355
|
+
}`,...P.parameters?.docs?.source}}};L.parameters={...L.parameters,docs:{...L.parameters?.docs,source:{originalSource:`{
|
|
356
|
+
render: () => {
|
|
357
|
+
const [open, setOpen] = useState(false);
|
|
358
|
+
return <Box>
|
|
359
|
+
<Button variant="contained" color="success" onClick={() => setOpen(true)}>
|
|
360
|
+
Aprobar solicitud
|
|
361
|
+
</Button>
|
|
362
|
+
<Modal mode="confirm" severity="success" open={open} onClose={() => setOpen(false)} title="Aprobar solicitud" confirmMessage="Al aprobar, el cliente recibirá una notificación y se activará su afiliación." confirmText="Aprobar" closeButtonText="Cancelar" onConfirm={() => console.log('approved')} />
|
|
363
|
+
</Box>;
|
|
364
|
+
}
|
|
365
|
+
}`,...L.parameters?.docs?.source}}};V.parameters={...V.parameters,docs:{...V.parameters?.docs,source:{originalSource:`{
|
|
366
|
+
render: () => {
|
|
367
|
+
const [open, setOpen] = useState(false);
|
|
368
|
+
const [result, setResult] = useState<string | null>(null);
|
|
369
|
+
const simulateRequest = () => new Promise<void>(resolve => {
|
|
370
|
+
setTimeout(() => {
|
|
371
|
+
setResult('Ejecutado después de 1.5s');
|
|
372
|
+
resolve();
|
|
373
|
+
}, 1500);
|
|
374
|
+
});
|
|
375
|
+
return <Box>
|
|
376
|
+
<Button variant="contained" onClick={() => setOpen(true)}>
|
|
377
|
+
Confirmar con request async
|
|
378
|
+
</Button>
|
|
379
|
+
{result && <Typography sx={{
|
|
380
|
+
mt: 2
|
|
381
|
+
}} color="success.main">
|
|
382
|
+
{result}
|
|
383
|
+
</Typography>}
|
|
384
|
+
<Modal mode="confirm" open={open} onClose={() => setOpen(false)} title="Procesar afiliación" confirmMessage="Esto enviará la solicitud al backend y puede tardar unos segundos." confirmText="Procesar" onConfirm={simulateRequest} />
|
|
385
|
+
</Box>;
|
|
386
|
+
},
|
|
387
|
+
parameters: {
|
|
388
|
+
docs: {
|
|
389
|
+
description: {
|
|
390
|
+
story: 'El \`onConfirm\` puede devolver una \`Promise\`. Mientras resuelve, los botones quedan deshabilitados para evitar clicks dobles. Al resolver, el modal cierra automáticamente.'
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}`,...V.parameters?.docs?.source}}};W.parameters={...W.parameters,docs:{...W.parameters?.docs,source:{originalSource:`{
|
|
395
|
+
render: () => {
|
|
396
|
+
const [open, setOpen] = useState(false);
|
|
397
|
+
const [submitted, setSubmitted] = useState<UserFormValues | null>(null);
|
|
398
|
+
const {
|
|
399
|
+
control,
|
|
400
|
+
handleSubmit,
|
|
401
|
+
reset,
|
|
402
|
+
formState: {
|
|
403
|
+
isSubmitting
|
|
404
|
+
}
|
|
405
|
+
} = useForm<UserFormValues>({
|
|
406
|
+
defaultValues: {
|
|
407
|
+
name: '',
|
|
408
|
+
email: ''
|
|
409
|
+
}
|
|
410
|
+
});
|
|
411
|
+
const FORM_ID = 'user-form-footer';
|
|
412
|
+
const onSubmit = async (data: UserFormValues) => {
|
|
413
|
+
await new Promise(r => setTimeout(r, 500));
|
|
414
|
+
setSubmitted(data);
|
|
415
|
+
setOpen(false);
|
|
416
|
+
reset();
|
|
417
|
+
};
|
|
418
|
+
const handleClose = () => {
|
|
419
|
+
setOpen(false);
|
|
420
|
+
reset();
|
|
421
|
+
};
|
|
422
|
+
return <Box>
|
|
423
|
+
<Button variant="contained" onClick={() => setOpen(true)}>
|
|
424
|
+
Abrir form (footer con formId)
|
|
425
|
+
</Button>
|
|
426
|
+
{submitted && <Typography sx={{
|
|
427
|
+
mt: 2
|
|
428
|
+
}} color="success.main">
|
|
429
|
+
Enviado: {JSON.stringify(submitted)}
|
|
430
|
+
</Typography>}
|
|
431
|
+
|
|
432
|
+
<Modal open={open} onClose={handleClose} title="Crear usuario (footer)" maxWidth="sm" actions={[{
|
|
433
|
+
text: isSubmitting ? 'Guardando...' : 'Guardar',
|
|
434
|
+
// 👇 clave: el botón referencia al form por id.
|
|
435
|
+
buttonProps: {
|
|
436
|
+
type: 'submit',
|
|
437
|
+
form: FORM_ID,
|
|
438
|
+
variant: 'contained',
|
|
439
|
+
disabled: isSubmitting
|
|
440
|
+
}
|
|
441
|
+
}]} closeButtonText="Cancelar">
|
|
442
|
+
<Modal.Body>
|
|
443
|
+
<Box component="form" id={FORM_ID} onSubmit={handleSubmit(onSubmit)} noValidate paddingTop={2}>
|
|
444
|
+
<Stack spacing={3}>
|
|
445
|
+
<Input name="name" control={control} label="Nombre" validation={{
|
|
446
|
+
required: 'El nombre es requerido'
|
|
447
|
+
}} />
|
|
448
|
+
<Input name="email" control={control} label="Email" type="email" validation={{
|
|
449
|
+
required: 'El email es requerido',
|
|
450
|
+
pattern: {
|
|
451
|
+
value: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/,
|
|
452
|
+
message: 'Email inválido'
|
|
453
|
+
}
|
|
454
|
+
}} />
|
|
455
|
+
</Stack>
|
|
456
|
+
</Box>
|
|
457
|
+
</Modal.Body>
|
|
458
|
+
</Modal>
|
|
459
|
+
</Box>;
|
|
460
|
+
},
|
|
461
|
+
parameters: {
|
|
462
|
+
docs: {
|
|
463
|
+
description: {
|
|
464
|
+
story: ['**Alternativa avanzada: botones en el footer usando \`form="formId"\`.**', '', 'Si necesitás mantener el layout clásico (Header / Body / Footer) con los', 'botones en el footer, la forma correcta es asignarle un \`id\` al \`<form>\`', 'y al botón de submit le pasás \`form="mismoId"\`. HTML5 nativo conecta', 'el botón con el form aunque no sean hermanos en el DOM.', '', '\`\`\`tsx', '<form id="user-form" onSubmit={handleSubmit(onSubmit)}>...</form>', '<button type="submit" form="user-form">Guardar</button>', '\`\`\`', '', 'Es la alternativa cuando querés reutilizar \`Modal.Footer\` con sus \`actions\`', 'en lugar de construir los botones a mano dentro del body.'].join('\\n')
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
}`,...W.parameters?.docs?.source}}};const jo=["Default","ImperativeControl","CompleteStructure","NoDefaultCloseButton","DisabledCloseButton","Sizing","LongContent","RHFInsideBody","ConfirmInfo","ConfirmDelete","ConfirmWarning","ConfirmSuccess","ConfirmAsync","RHFWithFooterFormId"];export{k as CompleteStructure,V as ConfirmAsync,D as ConfirmDelete,I as ConfirmInfo,L as ConfirmSuccess,P as ConfirmWarning,M as Default,w as DisabledCloseButton,E as ImperativeControl,R as LongContent,O as NoDefaultCloseButton,F as RHFInsideBody,W as RHFWithFooterFormId,A as Sizing,jo as __namedExportsOrder,Bo as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as o}from"./jsx-runtime-D_zvdyIk.js";import{c as s}from"./createSvgIcon-D_Gca4vA.js";const c=s(o.jsx("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"}));export{c as M};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as o}from"./jsx-runtime-D_zvdyIk.js";import{c}from"./createSvgIcon-D_Gca4vA.js";const r=c(o.jsx("path",{d:"M12 22c1.1 0 2-.9 2-2h-4c0 1.1.89 2 2 2m6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1z"}));export{r as N};
|