@soyfri/shared-library 2.0.0-beta.2 → 2.0.0-beta.20
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/dist/Autocomplete-C_lW1VER.js +337 -0
- package/dist/Autocomplete-C_lW1VER.js.map +1 -0
- package/dist/Autocomplete-CejWztBY.cjs +336 -0
- package/dist/Autocomplete-CejWztBY.cjs.map +1 -0
- package/dist/Avatar-CgT7955R.js +162 -0
- package/dist/Avatar-CgT7955R.js.map +1 -0
- package/dist/Avatar-CuSrK8Wn.cjs +161 -0
- package/dist/Avatar-CuSrK8Wn.cjs.map +1 -0
- package/dist/Button-C17mExpd.cjs.map +1 -1
- package/dist/Button-UkkP-bNw.js.map +1 -1
- package/dist/Card-B1wtavyl.js +98 -0
- package/dist/Card-B1wtavyl.js.map +1 -0
- package/dist/Card-DfdU610V.cjs +97 -0
- package/dist/Card-DfdU610V.cjs.map +1 -0
- package/dist/Checkbox-BCqMFWt4.cjs +187 -0
- package/dist/Checkbox-BCqMFWt4.cjs.map +1 -0
- package/dist/Checkbox-gB5YKkVo.js +188 -0
- package/dist/Checkbox-gB5YKkVo.js.map +1 -0
- package/dist/{components/DateRangePicker/DateRangePicker.js → Chip-OPYQ1uQ_.js} +33 -35
- package/dist/Chip-OPYQ1uQ_.js.map +1 -0
- package/dist/{components/DateRangePicker/DateRangePicker.cjs → Chip-qoJLDiva.cjs} +33 -36
- package/dist/Chip-qoJLDiva.cjs.map +1 -0
- package/dist/DatePicker-_IGWc3I5.js +178 -0
- package/dist/DatePicker-_IGWc3I5.js.map +1 -0
- package/dist/DatePicker-t7uDTZMl.cjs +177 -0
- package/dist/DatePicker-t7uDTZMl.cjs.map +1 -0
- package/dist/DateTimePicker-BxQyjTCY.cjs +229 -0
- package/dist/DateTimePicker-BxQyjTCY.cjs.map +1 -0
- package/dist/DateTimePicker-CrmWav_j.js +230 -0
- package/dist/DateTimePicker-CrmWav_j.js.map +1 -0
- package/dist/Input-CScC87J5.cjs +185 -0
- package/dist/Input-CScC87J5.cjs.map +1 -0
- package/dist/Input-DP_fKl38.js +186 -0
- package/dist/Input-DP_fKl38.js.map +1 -0
- package/dist/Modal-BN5s-Tfk.cjs +347 -0
- package/dist/Modal-BN5s-Tfk.cjs.map +1 -0
- package/dist/Modal-BRZMPwDj.js +348 -0
- package/dist/Modal-BRZMPwDj.js.map +1 -0
- package/dist/README.md +243 -0
- package/dist/RadioGroup-Dd0rHXSX.cjs +202 -0
- package/dist/RadioGroup-Dd0rHXSX.cjs.map +1 -0
- package/dist/RadioGroup-bO-ahP9T.js +203 -0
- package/dist/RadioGroup-bO-ahP9T.js.map +1 -0
- package/dist/Select-D5OrjVj3.js +253 -0
- package/dist/Select-D5OrjVj3.js.map +1 -0
- package/dist/Select-Dyvc4bVo.cjs +252 -0
- package/dist/Select-Dyvc4bVo.cjs.map +1 -0
- package/dist/Stat-BUcFCGrz.cjs +83 -0
- package/dist/Stat-BUcFCGrz.cjs.map +1 -0
- package/dist/Stat-C06A_izS.js +84 -0
- package/dist/Stat-C06A_izS.js.map +1 -0
- package/dist/StatusMessage-B3nXpuRl.cjs +88 -0
- package/dist/StatusMessage-B3nXpuRl.cjs.map +1 -0
- package/dist/StatusMessage-D0WgSBx7.js +89 -0
- package/dist/StatusMessage-D0WgSBx7.js.map +1 -0
- package/dist/Step-BArsou1V.js +301 -0
- package/dist/Step-BArsou1V.js.map +1 -0
- package/dist/Step-Nd7SJbRZ.cjs +300 -0
- package/dist/Step-Nd7SJbRZ.cjs.map +1 -0
- package/dist/Switch-CQFOopYy.cjs +182 -0
- package/dist/Switch-CQFOopYy.cjs.map +1 -0
- package/dist/Switch-D72dpkH2.js +183 -0
- package/dist/Switch-D72dpkH2.js.map +1 -0
- package/dist/Tab-BbP8jBcK.cjs +110 -0
- package/dist/Tab-BbP8jBcK.cjs.map +1 -0
- package/dist/Tab-BxSxKJsP.js +111 -0
- package/dist/Tab-BxSxKJsP.js.map +1 -0
- package/dist/Table-C2LbW0B1.js +531 -0
- package/dist/Table-C2LbW0B1.js.map +1 -0
- package/dist/Table-C4OM6rrC.cjs +530 -0
- package/dist/Table-C4OM6rrC.cjs.map +1 -0
- package/dist/components/ActionMenu/ActionMenu.cjs +52 -52
- package/dist/components/ActionMenu/ActionMenu.cjs.map +1 -1
- package/dist/components/ActionMenu/ActionMenu.d.ts +20 -36
- package/dist/components/ActionMenu/ActionMenu.js +55 -55
- package/dist/components/ActionMenu/ActionMenu.js.map +1 -1
- package/dist/components/ActionMenu/index.d.ts +2 -2
- package/dist/components/AppBar/AppBar.cjs +3 -220
- package/dist/components/AppBar/AppBar.cjs.map +1 -1
- package/dist/components/AppBar/AppBar.d.ts +6 -6
- package/dist/components/AppBar/AppBar.js +6 -223
- package/dist/components/AppBar/AppBar.js.map +1 -1
- package/dist/components/AppBar/index.d.ts +0 -6
- package/dist/components/Autocomplete/Autocomplete.cjs +4 -311
- package/dist/components/Autocomplete/Autocomplete.cjs.map +1 -1
- package/dist/components/Autocomplete/Autocomplete.d.ts +8 -6
- package/dist/components/Autocomplete/Autocomplete.helpers.d.ts +8 -4
- package/dist/components/Autocomplete/Autocomplete.js +4 -311
- package/dist/components/Autocomplete/Autocomplete.js.map +1 -1
- package/dist/components/Autocomplete/_parts/AutocompleteOption.d.ts +5 -8
- package/dist/components/Autocomplete/index.d.ts +1 -1
- package/dist/components/Avatar/Avatar.cjs +2 -160
- package/dist/components/Avatar/Avatar.cjs.map +1 -1
- package/dist/components/Avatar/Avatar.js +2 -160
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Avatar/index.d.ts +1 -0
- package/dist/components/Button/Button.d.ts +5 -5
- package/dist/components/Button/index.d.ts +1 -0
- package/dist/components/Card/Card.cjs +4 -184
- package/dist/components/Card/Card.cjs.map +1 -1
- package/dist/components/Card/Card.d.ts +3 -50
- package/dist/components/Card/Card.js +4 -184
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/Card/Card.sx.d.ts +3 -6
- package/dist/components/Card/index.d.ts +1 -1
- package/dist/components/Checkbox/Checkbox.cjs +6 -0
- package/dist/components/Checkbox/Checkbox.cjs.map +1 -0
- package/dist/components/Checkbox/Checkbox.d.ts +55 -0
- package/dist/components/Checkbox/Checkbox.js +6 -0
- package/dist/components/Checkbox/Checkbox.js.map +1 -0
- package/dist/components/Checkbox/Checkbox.sx.d.ts +13 -0
- package/dist/components/Checkbox/index.d.ts +2 -0
- package/dist/components/Checkbox.d.ts +6 -0
- package/dist/components/Chip/Chip.cjs +4 -72
- package/dist/components/Chip/Chip.cjs.map +1 -1
- package/dist/components/Chip/Chip.js +3 -71
- package/dist/components/Chip/Chip.js.map +1 -1
- package/dist/components/Chip/index.d.ts +2 -1
- package/dist/components/Chip.d.ts +4 -0
- package/dist/components/Column/Column.cjs +1 -1
- package/dist/components/Column/Column.cjs.map +1 -1
- package/dist/components/Column/Column.d.ts +1 -1
- package/dist/components/Column/Column.js +1 -1
- package/dist/components/Column/Column.js.map +1 -1
- package/dist/components/Column/index.d.ts +1 -0
- package/dist/components/DatePicker/DatePicker.cjs +3 -200
- package/dist/components/DatePicker/DatePicker.cjs.map +1 -1
- package/dist/components/DatePicker/DatePicker.d.ts +1 -13
- package/dist/components/DatePicker/DatePicker.js +3 -200
- package/dist/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/DatePicker/index.d.ts +1 -1
- package/dist/components/DateTimePicker/DateTimePicker.cjs +3 -219
- package/dist/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
- package/dist/components/DateTimePicker/DateTimePicker.d.ts +10 -6
- package/dist/components/DateTimePicker/DateTimePicker.definitions.d.ts +2 -0
- package/dist/components/DateTimePicker/DateTimePicker.helpers.d.ts +4 -2
- package/dist/components/DateTimePicker/DateTimePicker.js +3 -219
- package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
- package/dist/components/DateTimePicker/index.d.ts +1 -1
- package/dist/components/Drawer/Drawer.cjs +25 -24
- package/dist/components/Drawer/Drawer.cjs.map +1 -1
- package/dist/components/Drawer/Drawer.d.ts +8 -1
- package/dist/components/Drawer/Drawer.js +26 -25
- package/dist/components/Drawer/Drawer.js.map +1 -1
- package/dist/components/Drawer/DrawerItem.d.ts +6 -1
- package/dist/components/Gallery/Gallery.cjs +154 -79
- package/dist/components/Gallery/Gallery.cjs.map +1 -1
- package/dist/components/Gallery/Gallery.d.ts +25 -9
- package/dist/components/Gallery/Gallery.js +154 -79
- package/dist/components/Gallery/Gallery.js.map +1 -1
- package/dist/components/Gallery/GalleryLightbox.d.ts +6 -10
- package/dist/components/Gallery/GalleryMain.d.ts +3 -7
- package/dist/components/Gallery/GalleryThumbnails.d.ts +7 -11
- package/dist/components/Gallery/index.d.ts +2 -1
- package/dist/components/Gallery.d.ts +4 -0
- package/dist/components/Icon/Icon.cjs +6 -8
- package/dist/components/Icon/Icon.cjs.map +1 -1
- package/dist/components/Icon/Icon.d.ts +11 -17
- package/dist/components/Icon/Icon.js +7 -9
- package/dist/components/Icon/Icon.js.map +1 -1
- package/dist/components/Icon/index.d.ts +2 -1
- package/dist/components/Icon.d.ts +4 -0
- package/dist/components/Input/Input.cjs +3 -172
- package/dist/components/Input/Input.cjs.map +1 -1
- package/dist/components/Input/Input.d.ts +9 -2
- package/dist/components/Input/Input.definitions.d.ts +1 -0
- package/dist/components/Input/Input.helpers.d.ts +3 -3
- package/dist/components/Input/Input.js +3 -172
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/Input/index.d.ts +1 -1
- package/dist/components/InputGroup/InputGroup.cjs +23 -22
- package/dist/components/InputGroup/InputGroup.cjs.map +1 -1
- package/dist/components/InputGroup/InputGroup.d.ts +4 -4
- package/dist/components/InputGroup/InputGroup.js +22 -21
- package/dist/components/InputGroup/InputGroup.js.map +1 -1
- package/dist/components/InputGroup/index.d.ts +2 -1
- package/dist/components/InputGroup.d.ts +4 -0
- package/dist/components/Modal/Modal.cjs +7 -317
- package/dist/components/Modal/Modal.cjs.map +1 -1
- package/dist/components/Modal/Modal.d.ts +20 -5
- package/dist/components/Modal/Modal.js +6 -316
- package/dist/components/Modal/Modal.js.map +1 -1
- package/dist/components/Modal/ModalBody.d.ts +6 -1
- package/dist/components/Modal/ModalFooter.d.ts +4 -4
- package/dist/components/Modal/ModalHeader.d.ts +6 -1
- package/dist/components/Modal/index.d.ts +4 -1
- package/dist/components/Modal.d.ts +4 -0
- package/dist/components/RadioGroup/RadioGroup.cjs +6 -0
- package/dist/components/RadioGroup/RadioGroup.cjs.map +1 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +59 -0
- package/dist/components/RadioGroup/RadioGroup.definitions.d.ts +6 -0
- package/dist/components/RadioGroup/RadioGroup.js +6 -0
- package/dist/components/RadioGroup/RadioGroup.js.map +1 -0
- package/dist/components/RadioGroup/RadioGroup.sx.d.ts +20 -0
- package/dist/components/RadioGroup/index.d.ts +2 -0
- package/dist/components/RadioGroup.d.ts +6 -0
- package/dist/components/Select/Select.cjs +4 -445
- package/dist/components/Select/Select.cjs.map +1 -1
- package/dist/components/Select/Select.d.ts +13 -18
- package/dist/components/Select/Select.helpers.d.ts +5 -19
- package/dist/components/Select/Select.js +4 -445
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/Select/index.d.ts +1 -1
- package/dist/components/Stat/Stat.cjs +4 -83
- package/dist/components/Stat/Stat.cjs.map +1 -1
- package/dist/components/Stat/Stat.js +3 -82
- package/dist/components/Stat/Stat.js.map +1 -1
- package/dist/components/Stat/index.d.ts +2 -1
- package/dist/components/Stat.d.ts +4 -0
- package/dist/components/StatusMessage/StatusMessage.cjs +4 -77
- package/dist/components/StatusMessage/StatusMessage.cjs.map +1 -1
- package/dist/components/StatusMessage/StatusMessage.d.ts +20 -36
- package/dist/components/StatusMessage/StatusMessage.js +3 -76
- package/dist/components/StatusMessage/StatusMessage.js.map +1 -1
- package/dist/components/StatusMessage/index.d.ts +2 -1
- package/dist/components/StatusMessage.d.ts +4 -0
- package/dist/components/Stepper/Stepper.cjs +8 -47
- package/dist/components/Stepper/Stepper.cjs.map +1 -1
- package/dist/components/Stepper/Stepper.d.ts +9 -8
- package/dist/components/Stepper/Stepper.js +7 -46
- package/dist/components/Stepper/Stepper.js.map +1 -1
- package/dist/{hooks/Wizard/WizardContext.d.ts → components/Stepper/StepperContext.d.ts} +29 -23
- package/dist/components/Stepper/_hooks/useHorizontalScroll.d.ts +19 -0
- package/dist/components/Stepper/_parts/StepperScrollArrow.d.ts +19 -0
- package/dist/components/Stepper/index.d.ts +6 -2
- package/dist/components/Stepper.d.ts +4 -0
- package/dist/components/Switch/Switch.cjs +6 -0
- package/dist/components/Switch/Switch.cjs.map +1 -0
- package/dist/components/Switch/Switch.d.ts +48 -0
- package/dist/components/Switch/Switch.definitions.d.ts +7 -0
- package/dist/components/Switch/Switch.js +6 -0
- package/dist/components/Switch/Switch.js.map +1 -0
- package/dist/components/Switch/Switch.sx.d.ts +22 -0
- package/dist/components/Switch/Switch.types.d.ts +1 -0
- package/dist/components/Switch/index.d.ts +2 -0
- package/dist/components/Switch.d.ts +6 -0
- package/dist/components/Table/Table.cjs +2 -528
- package/dist/components/Table/Table.cjs.map +1 -1
- package/dist/components/Table/Table.d.ts +1 -1
- package/dist/components/Table/Table.js +2 -528
- package/dist/components/Table/Table.js.map +1 -1
- package/dist/components/Tabs/Tabs.cjs +5 -94
- package/dist/components/Tabs/Tabs.cjs.map +1 -1
- package/dist/components/Tabs/Tabs.d.ts +21 -16
- package/dist/components/Tabs/Tabs.js +4 -93
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/Tabs/index.d.ts +4 -2
- package/dist/components/Tabs.d.ts +4 -0
- package/dist/components/Timeline/Timeline.cjs +3 -2
- package/dist/components/Timeline/Timeline.cjs.map +1 -1
- package/dist/components/Timeline/Timeline.d.ts +4 -8
- package/dist/components/Timeline/Timeline.js +3 -2
- package/dist/components/Timeline/Timeline.js.map +1 -1
- package/dist/components/Timeline/index.d.ts +4 -2
- package/dist/components/Timeline.d.ts +4 -0
- package/dist/components/_shared/mergeSx.d.ts +7 -0
- package/dist/{formField.sx-DfVbMe0V.js → formField.sx-8_QRnKxv.js} +2 -11
- package/dist/formField.sx-8_QRnKxv.js.map +1 -0
- package/dist/{formField.sx-CQ1mbk9M.cjs → formField.sx-BAX7KwMR.cjs} +10 -19
- package/dist/formField.sx-BAX7KwMR.cjs.map +1 -0
- package/dist/index.cjs +92 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +32 -0
- package/dist/index.js +66 -3
- package/dist/index.js.map +1 -1
- package/dist/mergeSx-BXoNZjB_.js +10 -0
- package/dist/mergeSx-BXoNZjB_.js.map +1 -0
- package/dist/mergeSx-Dbccoo_H.cjs +9 -0
- package/dist/mergeSx-Dbccoo_H.cjs.map +1 -0
- package/dist/mui.d.ts +3 -1
- package/dist/package.json +190 -0
- package/dist/{resolvePreset-CT3kU-K2.cjs → resolvePreset-CxTI6_Ln.cjs} +3 -3
- package/dist/{resolvePreset-CT3kU-K2.cjs.map → resolvePreset-CxTI6_Ln.cjs.map} +1 -1
- package/dist/{resolvePreset-B-IB0ehH.js → resolvePreset-K6_BfWHD.js} +3 -3
- package/dist/{resolvePreset-B-IB0ehH.js.map → resolvePreset-K6_BfWHD.js.map} +1 -1
- package/dist/theme/componentStyles.d.ts +1 -1
- package/dist/tokens-BRrcP_p_.js +21 -0
- package/dist/tokens-BRrcP_p_.js.map +1 -0
- package/dist/tokens-jaWWNk39.cjs +20 -0
- package/dist/tokens-jaWWNk39.cjs.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/{components/ScrollTopButton → utils}/scrollToTop.d.ts +6 -7
- package/package.json +25 -48
- 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 +30 -0
- package/src/components/Autocomplete/Autocomplete.tsx +393 -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 +33 -0
- package/src/components/DatePicker/DatePicker.tsx +133 -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 +30 -0
- package/src/components/DateTimePicker/DateTimePicker.tsx +240 -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 +42 -0
- package/src/components/Input/Input.tsx +162 -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 +14 -0
- package/src/components/Select/Select.tsx +327 -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 +118 -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/dist/components/AppBar/AppBarBrand.d.ts +0 -31
- package/dist/components/AppBar/AppBarUserMenu.d.ts +0 -65
- package/dist/components/Autocomplete/Autocomplete.types.d.ts +0 -1
- package/dist/components/DatePicker/DatePicker.types.d.ts +0 -1
- package/dist/components/DateRangePicker/DateRangePicker.cjs.map +0 -1
- package/dist/components/DateRangePicker/DateRangePicker.d.ts +0 -15
- package/dist/components/DateRangePicker/DateRangePicker.definitions.d.ts +0 -6
- package/dist/components/DateRangePicker/DateRangePicker.js.map +0 -1
- package/dist/components/DateRangePicker/index.d.ts +0 -1
- package/dist/components/DateRangePicker.d.ts +0 -2
- package/dist/components/DateTimePicker/DateTimePicker.types.d.ts +0 -1
- package/dist/components/Input/Input.types.d.ts +0 -1
- package/dist/components/PageLoader/PageLoader.cjs +0 -61
- package/dist/components/PageLoader/PageLoader.cjs.map +0 -1
- package/dist/components/PageLoader/PageLoader.d.ts +0 -38
- package/dist/components/PageLoader/PageLoader.js +0 -61
- package/dist/components/PageLoader/PageLoader.js.map +0 -1
- package/dist/components/PageLoader/index.d.ts +0 -2
- package/dist/components/PageLoader.d.ts +0 -6
- package/dist/components/ScrollTopButton/ScrollTopButton.cjs +0 -79
- package/dist/components/ScrollTopButton/ScrollTopButton.cjs.map +0 -1
- package/dist/components/ScrollTopButton/ScrollTopButton.d.ts +0 -48
- package/dist/components/ScrollTopButton/ScrollTopButton.js +0 -79
- package/dist/components/ScrollTopButton/ScrollTopButton.js.map +0 -1
- package/dist/components/ScrollTopButton/index.d.ts +0 -4
- package/dist/components/ScrollTopButton.d.ts +0 -6
- package/dist/components/Select/Select.definitions.d.ts +0 -17
- package/dist/components/Select/Select.types.d.ts +0 -1
- package/dist/components/Select/_parts/SelectSearchHeader.d.ts +0 -15
- package/dist/formField.sx-CQ1mbk9M.cjs.map +0 -1
- package/dist/formField.sx-DfVbMe0V.js.map +0 -1
- package/dist/hooks/Wizard/Wizard.cjs +0 -7
- package/dist/hooks/Wizard/Wizard.cjs.map +0 -1
- package/dist/hooks/Wizard/Wizard.js +0 -7
- package/dist/hooks/Wizard/Wizard.js.map +0 -1
- package/dist/hooks/Wizard/index.d.ts +0 -3
- package/dist/hooks/Wizard/useWizard.d.ts +0 -9
- package/dist/hooks/Wizard.d.ts +0 -2
- package/dist/useWizard-CWdIxZzX.cjs +0 -94
- package/dist/useWizard-CWdIxZzX.cjs.map +0 -1
- package/dist/useWizard-CWq--C3o.js +0 -95
- package/dist/useWizard-CWq--C3o.js.map +0 -1
- /package/dist/{styles.css → index.css} +0 -0
|
@@ -23,7 +23,7 @@ const jsxRuntime = require("react/jsx-runtime");
|
|
|
23
23
|
const React = require("react");
|
|
24
24
|
const material = require("@mui/material");
|
|
25
25
|
const styles = require("@mui/material/styles");
|
|
26
|
-
const resolvePreset = require("../../resolvePreset-
|
|
26
|
+
const resolvePreset = require("../../resolvePreset-CxTI6_Ln.cjs");
|
|
27
27
|
const MenuIcon = require("@mui/icons-material/Menu");
|
|
28
28
|
const MenuOpenIcon = require("@mui/icons-material/MenuOpen");
|
|
29
29
|
const AppBarContext = React.createContext(null);
|
|
@@ -61,14 +61,12 @@ function AppBar({
|
|
|
61
61
|
preset,
|
|
62
62
|
sx,
|
|
63
63
|
toolbarSx,
|
|
64
|
-
className,
|
|
65
64
|
appBarProps
|
|
66
65
|
}) {
|
|
67
66
|
const theme = styles.useTheme();
|
|
68
67
|
const presetSx = resolvePreset.resolvePreset("AppBar", preset, theme);
|
|
69
|
-
const transparent = color === "transparent";
|
|
70
68
|
const rootSx = [
|
|
71
|
-
buildAppBarSx({ height, transparent }),
|
|
69
|
+
buildAppBarSx({ height, transparent: color === "transparent" }),
|
|
72
70
|
...presetSx ? [presetSx] : [],
|
|
73
71
|
...Array.isArray(sx) ? sx : sx ? [sx] : []
|
|
74
72
|
];
|
|
@@ -80,101 +78,14 @@ function AppBar({
|
|
|
80
78
|
material.AppBar,
|
|
81
79
|
__spreadProps(__spreadValues({
|
|
82
80
|
position,
|
|
83
|
-
color
|
|
81
|
+
color,
|
|
84
82
|
elevation,
|
|
85
|
-
className,
|
|
86
83
|
sx: rootSx
|
|
87
84
|
}, appBarProps), {
|
|
88
85
|
children: /* @__PURE__ */ jsxRuntime.jsx(material.Toolbar, { sx: toolbarSx, children })
|
|
89
86
|
})
|
|
90
87
|
) });
|
|
91
88
|
}
|
|
92
|
-
function AppBarBrand({
|
|
93
|
-
logo,
|
|
94
|
-
title,
|
|
95
|
-
subtitle,
|
|
96
|
-
onClick,
|
|
97
|
-
hideTitleOnMobile = true,
|
|
98
|
-
sx,
|
|
99
|
-
className
|
|
100
|
-
}) {
|
|
101
|
-
const clickable = !!onClick;
|
|
102
|
-
const rootSx = [
|
|
103
|
-
{
|
|
104
|
-
display: "flex",
|
|
105
|
-
alignItems: "center",
|
|
106
|
-
gap: 1.25,
|
|
107
|
-
cursor: clickable ? "pointer" : "default",
|
|
108
|
-
userSelect: "none",
|
|
109
|
-
minWidth: 0
|
|
110
|
-
},
|
|
111
|
-
...Array.isArray(sx) ? sx : sx ? [sx] : []
|
|
112
|
-
];
|
|
113
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
114
|
-
material.Box,
|
|
115
|
-
{
|
|
116
|
-
role: clickable ? "button" : void 0,
|
|
117
|
-
tabIndex: clickable ? 0 : void 0,
|
|
118
|
-
onClick,
|
|
119
|
-
onKeyDown: (event) => {
|
|
120
|
-
if (!clickable) return;
|
|
121
|
-
if (event.key === "Enter" || event.key === " ") {
|
|
122
|
-
event.preventDefault();
|
|
123
|
-
onClick == null ? void 0 : onClick(event);
|
|
124
|
-
}
|
|
125
|
-
},
|
|
126
|
-
className,
|
|
127
|
-
sx: rootSx,
|
|
128
|
-
children: [
|
|
129
|
-
logo && /* @__PURE__ */ jsxRuntime.jsx(
|
|
130
|
-
material.Box,
|
|
131
|
-
{
|
|
132
|
-
component: "span",
|
|
133
|
-
sx: {
|
|
134
|
-
display: "flex",
|
|
135
|
-
alignItems: "center",
|
|
136
|
-
flexShrink: 0
|
|
137
|
-
},
|
|
138
|
-
children: logo
|
|
139
|
-
}
|
|
140
|
-
),
|
|
141
|
-
(title || subtitle) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
142
|
-
material.Box,
|
|
143
|
-
{
|
|
144
|
-
sx: {
|
|
145
|
-
display: hideTitleOnMobile ? { xs: "none", sm: "flex" } : "flex",
|
|
146
|
-
flexDirection: "column",
|
|
147
|
-
minWidth: 0,
|
|
148
|
-
lineHeight: 1.2
|
|
149
|
-
},
|
|
150
|
-
children: [
|
|
151
|
-
title && /* @__PURE__ */ jsxRuntime.jsx(
|
|
152
|
-
material.Typography,
|
|
153
|
-
{
|
|
154
|
-
component: "span",
|
|
155
|
-
variant: "subtitle1",
|
|
156
|
-
noWrap: true,
|
|
157
|
-
sx: { fontWeight: 700 },
|
|
158
|
-
children: title
|
|
159
|
-
}
|
|
160
|
-
),
|
|
161
|
-
subtitle && /* @__PURE__ */ jsxRuntime.jsx(
|
|
162
|
-
material.Typography,
|
|
163
|
-
{
|
|
164
|
-
component: "span",
|
|
165
|
-
variant: "caption",
|
|
166
|
-
color: "text.secondary",
|
|
167
|
-
noWrap: true,
|
|
168
|
-
children: subtitle
|
|
169
|
-
}
|
|
170
|
-
)
|
|
171
|
-
]
|
|
172
|
-
}
|
|
173
|
-
)
|
|
174
|
-
]
|
|
175
|
-
}
|
|
176
|
-
);
|
|
177
|
-
}
|
|
178
89
|
function AppBarMenuToggle({
|
|
179
90
|
onClick,
|
|
180
91
|
menuOpen,
|
|
@@ -210,137 +121,9 @@ function AppBarMenuToggle({
|
|
|
210
121
|
}
|
|
211
122
|
) }) });
|
|
212
123
|
}
|
|
213
|
-
function computeInitials(name) {
|
|
214
|
-
var _a, _b, _c, _d;
|
|
215
|
-
if (typeof name !== "string") return "?";
|
|
216
|
-
const parts = name.trim().split(/\s+/).filter(Boolean);
|
|
217
|
-
if (parts.length === 0) return "?";
|
|
218
|
-
const first = (_b = (_a = parts[0]) == null ? void 0 : _a.charAt(0)) != null ? _b : "";
|
|
219
|
-
const last = parts.length > 1 ? (_d = (_c = parts[parts.length - 1]) == null ? void 0 : _c.charAt(0)) != null ? _d : "" : "";
|
|
220
|
-
return (first + last).toUpperCase();
|
|
221
|
-
}
|
|
222
|
-
function AppBarUserMenu({
|
|
223
|
-
user,
|
|
224
|
-
items,
|
|
225
|
-
hideUserHeader = false,
|
|
226
|
-
triggerTooltip = "Cuenta",
|
|
227
|
-
avatarSize = 36,
|
|
228
|
-
menuSx,
|
|
229
|
-
triggerSx,
|
|
230
|
-
className
|
|
231
|
-
}) {
|
|
232
|
-
var _a;
|
|
233
|
-
const [anchorEl, setAnchorEl] = React.useState(null);
|
|
234
|
-
const open = Boolean(anchorEl);
|
|
235
|
-
const handleOpen = (event) => {
|
|
236
|
-
setAnchorEl(event.currentTarget);
|
|
237
|
-
};
|
|
238
|
-
const handleClose = () => setAnchorEl(null);
|
|
239
|
-
const handleItemClick = (event, item) => {
|
|
240
|
-
var _a2;
|
|
241
|
-
event.stopPropagation();
|
|
242
|
-
(_a2 = item.onClick) == null ? void 0 : _a2.call(item, event);
|
|
243
|
-
handleClose();
|
|
244
|
-
};
|
|
245
|
-
const initials = (_a = user == null ? void 0 : user.initials) != null ? _a : computeInitials(user == null ? void 0 : user.name);
|
|
246
|
-
const showUserHeader = !hideUserHeader && ((user == null ? void 0 : user.name) || (user == null ? void 0 : user.email));
|
|
247
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(material.Box, { component: "span", className, children: [
|
|
248
|
-
/* @__PURE__ */ jsxRuntime.jsx(material.Tooltip, { title: triggerTooltip, arrow: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
249
|
-
material.IconButton,
|
|
250
|
-
{
|
|
251
|
-
onClick: handleOpen,
|
|
252
|
-
size: "small",
|
|
253
|
-
"aria-label": triggerTooltip,
|
|
254
|
-
"aria-haspopup": "menu",
|
|
255
|
-
"aria-expanded": open || void 0,
|
|
256
|
-
sx: [{ p: 0.5 }, ...Array.isArray(triggerSx) ? triggerSx : triggerSx ? [triggerSx] : []],
|
|
257
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
258
|
-
material.Avatar,
|
|
259
|
-
{
|
|
260
|
-
src: user == null ? void 0 : user.avatarUrl,
|
|
261
|
-
sx: {
|
|
262
|
-
width: avatarSize,
|
|
263
|
-
height: avatarSize,
|
|
264
|
-
fontSize: avatarSize * 0.4,
|
|
265
|
-
fontWeight: 600
|
|
266
|
-
},
|
|
267
|
-
children: !(user == null ? void 0 : user.avatarUrl) && initials
|
|
268
|
-
}
|
|
269
|
-
)
|
|
270
|
-
}
|
|
271
|
-
) }),
|
|
272
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
273
|
-
material.Menu,
|
|
274
|
-
{
|
|
275
|
-
anchorEl,
|
|
276
|
-
open,
|
|
277
|
-
onClose: handleClose,
|
|
278
|
-
anchorOrigin: { vertical: "bottom", horizontal: "right" },
|
|
279
|
-
transformOrigin: { vertical: "top", horizontal: "right" },
|
|
280
|
-
slotProps: {
|
|
281
|
-
paper: {
|
|
282
|
-
sx: __spreadValues({ minWidth: 240 }, menuSx)
|
|
283
|
-
}
|
|
284
|
-
},
|
|
285
|
-
children: [
|
|
286
|
-
showUserHeader && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
287
|
-
material.Box,
|
|
288
|
-
{
|
|
289
|
-
sx: {
|
|
290
|
-
px: 2,
|
|
291
|
-
py: 1.25,
|
|
292
|
-
display: "flex",
|
|
293
|
-
flexDirection: "column",
|
|
294
|
-
gap: 0.25
|
|
295
|
-
},
|
|
296
|
-
children: [
|
|
297
|
-
(user == null ? void 0 : user.name) && /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "subtitle2", noWrap: true, sx: { fontWeight: 700 }, children: user.name }),
|
|
298
|
-
(user == null ? void 0 : user.email) && /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "caption", color: "text.secondary", noWrap: true, children: user.email })
|
|
299
|
-
]
|
|
300
|
-
}
|
|
301
|
-
),
|
|
302
|
-
showUserHeader && /* @__PURE__ */ jsxRuntime.jsx(material.Divider, {}),
|
|
303
|
-
items.map((item, idx) => {
|
|
304
|
-
var _a2;
|
|
305
|
-
const key = (_a2 = item.key) != null ? _a2 : `${String(item.label)}-${idx}`;
|
|
306
|
-
const node = /* @__PURE__ */ jsxRuntime.jsxs(
|
|
307
|
-
material.MenuItem,
|
|
308
|
-
{
|
|
309
|
-
disabled: item.disabled,
|
|
310
|
-
onClick: (event) => handleItemClick(event, item),
|
|
311
|
-
sx: (theme) => ({
|
|
312
|
-
color: item.danger ? theme.palette.error.main : "inherit",
|
|
313
|
-
"& .MuiListItemIcon-root": {
|
|
314
|
-
color: item.danger ? theme.palette.error.main : "inherit",
|
|
315
|
-
minWidth: 32
|
|
316
|
-
}
|
|
317
|
-
}),
|
|
318
|
-
children: [
|
|
319
|
-
item.icon && /* @__PURE__ */ jsxRuntime.jsx(material.ListItemIcon, { children: item.icon }),
|
|
320
|
-
/* @__PURE__ */ jsxRuntime.jsx(material.ListItemText, { primary: item.label })
|
|
321
|
-
]
|
|
322
|
-
},
|
|
323
|
-
key
|
|
324
|
-
);
|
|
325
|
-
if (item.dividerBefore && idx > 0) {
|
|
326
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
|
|
327
|
-
/* @__PURE__ */ jsxRuntime.jsx(material.Divider, {}),
|
|
328
|
-
node
|
|
329
|
-
] }, `${key}-frag`);
|
|
330
|
-
}
|
|
331
|
-
return node;
|
|
332
|
-
})
|
|
333
|
-
]
|
|
334
|
-
}
|
|
335
|
-
)
|
|
336
|
-
] });
|
|
337
|
-
}
|
|
338
124
|
exports.AppBar = AppBar;
|
|
339
|
-
exports.AppBarBrand = AppBarBrand;
|
|
340
125
|
exports.AppBarContext = AppBarContext;
|
|
341
126
|
exports.AppBarMenuToggle = AppBarMenuToggle;
|
|
342
|
-
exports.AppBarUserMenu = AppBarUserMenu;
|
|
343
|
-
exports.buildAppBarSx = buildAppBarSx;
|
|
344
127
|
exports.default = AppBar;
|
|
345
128
|
exports.useAppBarContext = useAppBarContext;
|
|
346
129
|
//# sourceMappingURL=AppBar.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppBar.cjs","sources":["../../../src/components/AppBar/AppBarContext.ts","../../../src/components/AppBar/AppBar.sx.ts","../../../src/components/AppBar/AppBar.tsx","../../../src/components/AppBar/AppBarBrand.tsx","../../../src/components/AppBar/AppBarMenuToggle.tsx","../../../src/components/AppBar/AppBarUserMenu.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\n/**\n * Context interno del AppBar. Permite que sub-componentes (MenuToggle, etc.)\n * consuman callbacks registrados en el AppBar padre sin tener que pasarlos\n * por props explícitas.\n */\nexport interface AppBarContextValue {\n /** Handler del botón hamburguesa. Si es undefined, el toggle se oculta. */\n onMenuToggle?: () => void;\n /** Estado actual del drawer asociado (usado por el icono del toggle). */\n menuOpen?: boolean;\n}\n\nexport const AppBarContext = createContext<AppBarContextValue | null>(null);\n\n/**\n * Hook para leer el contexto del AppBar. Si se llama fuera de un `<AppBar>`,\n * devuelve un objeto vacío — los sub-componentes caen en modo \"standalone\"\n * con sus defaults en lugar de romper.\n */\nexport function useAppBarContext(): AppBarContextValue {\n const ctx = useContext(AppBarContext);\n return ctx ?? {};\n}\n","import type { SxProps, Theme } from '@mui/material/styles';\n\nexport interface BuildAppBarSxArgs {\n /** Altura en px. Default: 64. */\n height?: number;\n /** Color del AppBar (se pasa al MuiAppBar). */\n transparent?: boolean;\n}\n\n/**\n * sx del root del MuiAppBar. Define altura fija y layout flex del Toolbar\n * interno. El color/elevación se dejan a las props nativas de MuiAppBar.\n */\nexport function buildAppBarSx({\n height = 64,\n transparent = false,\n}: BuildAppBarSxArgs): SxProps<Theme> {\n return (theme) => ({\n minHeight: height,\n justifyContent: 'center',\n backgroundImage: 'none',\n ...(transparent && {\n backgroundColor: 'transparent',\n boxShadow: 'none',\n borderBottom: `1px solid ${theme.palette.divider}`,\n }),\n '& .MuiToolbar-root': {\n minHeight: height,\n gap: 1.5,\n },\n });\n}\n","import React, { useMemo, type ReactNode } from 'react';\nimport {\n AppBar as MuiAppBar,\n Toolbar,\n type AppBarProps as MuiAppBarProps,\n} from '@mui/material';\nimport {\n useTheme,\n type SxProps,\n type Theme,\n} from '@mui/material/styles';\n\nimport { AppBarContext } from './AppBarContext';\nimport { buildAppBarSx } from './AppBar.sx';\nimport { resolvePreset } from '../_shared/resolvePreset';\n\nexport type AppBarPosition = 'fixed' | 'sticky' | 'static' | 'absolute' | 'relative';\nexport type AppBarColor =\n | 'default'\n | 'primary'\n | 'secondary'\n | 'transparent'\n | 'inherit';\n\nexport interface AppBarProps {\n /** Contenido del AppBar (típicamente sub-componentes + acciones custom). */\n children?: ReactNode;\n /** Posicionamiento. Default: `'sticky'`. */\n position?: AppBarPosition;\n /** Color. Default: `'default'`. */\n color?: AppBarColor;\n /** Nivel de sombra. Default: 1. */\n elevation?: number;\n /** Altura en px. Default: 64. */\n height?: number;\n /**\n * Handler del botón hamburguesa. Se expone vía AppBarContext para que el\n * sub-componente `<AppBarMenuToggle>` lo consuma sin prop drilling.\n */\n onMenuToggle?: () => void;\n /** Estado del drawer asociado (para que el icono del toggle cambie). */\n menuOpen?: boolean;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.AppBar`.\n * - `\"default\"` (o ausente) = estilo built-in del paquete.\n */\n preset?: string;\n /** sx del root (se mergea después del preset). */\n sx?: SxProps<Theme>;\n /** sx del Toolbar interno. */\n toolbarSx?: SxProps<Theme>;\n className?: string;\n /** Otras props nativas del MuiAppBar (ej. `enableColorOnDark`). */\n appBarProps?: Omit<\n MuiAppBarProps,\n 'position' | 'color' | 'elevation' | 'sx' | 'children' | 'className'\n >;\n}\n\n/**\n * AppBar (header superior) del paquete. Se diseñó como un shell compositivo\n * — el consumer arma el contenido con los sub-componentes que exporta el\n * paquete (`AppBarBrand`, `AppBarMenuToggle`, `AppBarUserMenu`) + cualquier\n * otra cosa custom.\n *\n * Patrón recomendado para navegación en dashboards:\n *\n * ```tsx\n * <AppBar onMenuToggle={toggleDrawer}>\n * <AppBarMenuToggle />\n * <AppBarBrand logo={<Logo />} title=\"Afiliaciones\" />\n * <Box sx={{ flex: 1 }} />\n * <AppBarUserMenu user={user} items={menuItems} />\n * </AppBar>\n * ```\n */\nexport function AppBar({\n children,\n position = 'sticky',\n color = 'default',\n elevation = 1,\n height = 64,\n onMenuToggle,\n menuOpen,\n preset,\n sx,\n toolbarSx,\n className,\n appBarProps,\n}: AppBarProps) {\n const theme = useTheme();\n const presetSx = resolvePreset('AppBar', preset, theme);\n\n const transparent = color === 'transparent';\n\n const rootSx: SxProps<Theme> = [\n buildAppBarSx({ height, transparent }),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n const contextValue = useMemo(\n () => ({ onMenuToggle, menuOpen }),\n [onMenuToggle, menuOpen],\n );\n\n return (\n <AppBarContext.Provider value={contextValue}>\n <MuiAppBar\n position={position}\n color={color === 'transparent' ? 'transparent' : color}\n elevation={elevation}\n className={className}\n sx={rootSx}\n {...appBarProps}\n >\n <Toolbar sx={toolbarSx}>{children}</Toolbar>\n </MuiAppBar>\n </AppBarContext.Provider>\n );\n}\n\nexport default AppBar;\n","import React, { type ReactNode, type MouseEvent } from 'react';\nimport { Box, Typography } from '@mui/material';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\nexport interface AppBarBrandProps {\n /** Logo (img, svg, componente). Se muestra a la izquierda del título. */\n logo?: ReactNode;\n /** Título del sistema. */\n title?: ReactNode;\n /** Subtítulo opcional (p.ej. nombre de módulo actual). */\n subtitle?: ReactNode;\n /** Handler de click sobre todo el brand (típicamente navega al home). */\n onClick?: (event: MouseEvent<HTMLDivElement>) => void;\n /** Oculta solo el título en viewports pequeños (mantiene el logo). Default: true. */\n hideTitleOnMobile?: boolean;\n sx?: SxProps<Theme>;\n className?: string;\n}\n\n/**\n * Brand del AppBar: combina logo + título + subtítulo opcional con un\n * click handler global (típicamente para navegar al home).\n *\n * ```tsx\n * <AppBarBrand\n * logo={<img src={logo} alt=\"\" height={32} />}\n * title=\"Afiliaciones\"\n * subtitle=\"Panel administrativo\"\n * onClick={() => navigate('/')}\n * />\n * ```\n */\nexport function AppBarBrand({\n logo,\n title,\n subtitle,\n onClick,\n hideTitleOnMobile = true,\n sx,\n className,\n}: AppBarBrandProps) {\n const clickable = !!onClick;\n\n const rootSx: SxProps<Theme> = [\n {\n display: 'flex',\n alignItems: 'center',\n gap: 1.25,\n cursor: clickable ? 'pointer' : 'default',\n userSelect: 'none',\n minWidth: 0,\n },\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n return (\n <Box\n role={clickable ? 'button' : undefined}\n tabIndex={clickable ? 0 : undefined}\n onClick={onClick}\n onKeyDown={(event) => {\n if (!clickable) return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onClick?.(event as unknown as MouseEvent<HTMLDivElement>);\n }\n }}\n className={className}\n sx={rootSx}\n >\n {logo && (\n <Box\n component=\"span\"\n sx={{\n display: 'flex',\n alignItems: 'center',\n flexShrink: 0,\n }}\n >\n {logo}\n </Box>\n )}\n {(title || subtitle) && (\n <Box\n sx={{\n display: hideTitleOnMobile\n ? { xs: 'none', sm: 'flex' }\n : 'flex',\n flexDirection: 'column',\n minWidth: 0,\n lineHeight: 1.2,\n }}\n >\n {title && (\n <Typography\n component=\"span\"\n variant=\"subtitle1\"\n noWrap\n sx={{ fontWeight: 700 }}\n >\n {title}\n </Typography>\n )}\n {subtitle && (\n <Typography\n component=\"span\"\n variant=\"caption\"\n color=\"text.secondary\"\n noWrap\n >\n {subtitle}\n </Typography>\n )}\n </Box>\n )}\n </Box>\n );\n}\n\nexport default AppBarBrand;\n","import React, { type ReactNode } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport MenuIcon from '@mui/icons-material/Menu';\nimport MenuOpenIcon from '@mui/icons-material/MenuOpen';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\nimport { useAppBarContext } from './AppBarContext';\n\nexport interface AppBarMenuToggleProps {\n /**\n * Callback explícito. Si se omite, se consume del `AppBarContext`. Útil para\n * usar el toggle fuera de un `<AppBar>` (p.ej. en un header custom).\n */\n onClick?: () => void;\n /** Estado del drawer asociado. Si se omite, se lee del `AppBarContext`. */\n menuOpen?: boolean;\n /** Icono custom cuando el drawer está cerrado. Default: `<MenuIcon />`. */\n closedIcon?: ReactNode;\n /** Icono custom cuando el drawer está abierto. Default: `<MenuOpenIcon />`. */\n openIcon?: ReactNode;\n /** Texto de tooltip. Default: \"Menú\". */\n tooltip?: string;\n /** aria-label del botón. Default: el mismo tooltip. */\n ariaLabel?: string;\n /** Tamaño del IconButton. Default: `'medium'`. */\n size?: 'small' | 'medium' | 'large';\n /** Oculta el botón cuando no hay handler disponible. Default: true. */\n hideIfNoHandler?: boolean;\n sx?: SxProps<Theme>;\n className?: string;\n}\n\n/**\n * Botón hamburguesa del AppBar. Por default consume `onMenuToggle` y\n * `menuOpen` del `AppBarContext` (pattern composicional), pero permite\n * overrides explícitos si se usa fuera de un `<AppBar>`.\n *\n * ```tsx\n * <AppBar onMenuToggle={toggleDrawer} menuOpen={open}>\n * <AppBarMenuToggle />\n * ...\n * </AppBar>\n * ```\n */\nexport function AppBarMenuToggle({\n onClick,\n menuOpen,\n closedIcon,\n openIcon,\n tooltip = 'Menú',\n ariaLabel,\n size = 'medium',\n hideIfNoHandler = true,\n sx,\n className,\n}: AppBarMenuToggleProps) {\n const ctx = useAppBarContext();\n\n const handler = onClick ?? ctx.onMenuToggle;\n const open = menuOpen ?? ctx.menuOpen ?? false;\n\n if (!handler && hideIfNoHandler) {\n return null;\n }\n\n const icon = open\n ? (openIcon ?? <MenuOpenIcon />)\n : (closedIcon ?? <MenuIcon />);\n\n return (\n <Tooltip title={tooltip} arrow>\n <span>\n <IconButton\n size={size}\n edge=\"start\"\n color=\"inherit\"\n aria-label={ariaLabel ?? tooltip}\n onClick={handler}\n disabled={!handler}\n className={className}\n sx={sx}\n >\n {icon}\n </IconButton>\n </span>\n </Tooltip>\n );\n}\n\nexport default AppBarMenuToggle;\n","import React, { useState, type ReactNode, type MouseEvent } from 'react';\nimport {\n Avatar,\n Box,\n Divider,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Tooltip,\n Typography,\n} from '@mui/material';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\nexport interface AppBarUserMenuItem {\n /** Key única. Si no se provee, se usa el label. */\n key?: string;\n /** Texto del item. */\n label: ReactNode;\n /** Icono opcional a la izquierda. */\n icon?: ReactNode;\n /** Handler de click. */\n onClick?: (event: MouseEvent<HTMLLIElement>) => void;\n /** Deshabilita el item. */\n disabled?: boolean;\n /** Pinta el item en color error (típico para \"Cerrar sesión\"). */\n danger?: boolean;\n /** Inserta un `<Divider />` ANTES de este item. */\n dividerBefore?: boolean;\n}\n\nexport interface AppBarUserMenuUser {\n /** Nombre a mostrar en el header del menú. */\n name?: ReactNode;\n /** Email / subtítulo secundario. */\n email?: ReactNode;\n /** URL del avatar. Si se omite, se muestran iniciales del `name`. */\n avatarUrl?: string;\n /** Iniciales custom. Si se omite, se calculan del `name`. */\n initials?: string;\n}\n\nexport interface AppBarUserMenuProps {\n /** Datos del usuario a mostrar. */\n user?: AppBarUserMenuUser;\n /** Items del menú. */\n items: AppBarUserMenuItem[];\n /**\n * Si `true`, oculta la fila con nombre + email en el tope del menú.\n * Default: `false`.\n */\n hideUserHeader?: boolean;\n /** Tooltip del trigger. Default: \"Cuenta\". */\n triggerTooltip?: string;\n /** Tamaño del Avatar en px. Default: 36. */\n avatarSize?: number;\n /** sx del Paper del Menu. */\n menuSx?: SxProps<Theme>;\n /** sx del trigger (IconButton). */\n triggerSx?: SxProps<Theme>;\n className?: string;\n}\n\nfunction computeInitials(name?: ReactNode): string {\n if (typeof name !== 'string') return '?';\n const parts = name.trim().split(/\\s+/).filter(Boolean);\n if (parts.length === 0) return '?';\n const first = parts[0]?.charAt(0) ?? '';\n const last = parts.length > 1 ? (parts[parts.length - 1]?.charAt(0) ?? '') : '';\n return (first + last).toUpperCase();\n}\n\n/**\n * Menú de usuario del AppBar: avatar clickable que despliega un menú con la\n * info del usuario (nombre + email) y una lista de acciones (perfil, cerrar\n * sesión, etc).\n *\n * ```tsx\n * <AppBarUserMenu\n * user={{ name: 'Andrea', email: 'a@soyfri.com' }}\n * items={[\n * { label: 'Perfil', icon: <PersonIcon />, onClick: goToProfile },\n * { label: 'Cerrar sesión', icon: <LogoutIcon />, onClick: logout, danger: true, dividerBefore: true },\n * ]}\n * />\n * ```\n */\nexport function AppBarUserMenu({\n user,\n items,\n hideUserHeader = false,\n triggerTooltip = 'Cuenta',\n avatarSize = 36,\n menuSx,\n triggerSx,\n className,\n}: AppBarUserMenuProps) {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const open = Boolean(anchorEl);\n\n const handleOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n const handleClose = () => setAnchorEl(null);\n\n const handleItemClick = (\n event: MouseEvent<HTMLLIElement>,\n item: AppBarUserMenuItem,\n ) => {\n event.stopPropagation();\n item.onClick?.(event);\n handleClose();\n };\n\n const initials = user?.initials ?? computeInitials(user?.name);\n const showUserHeader = !hideUserHeader && (user?.name || user?.email);\n\n return (\n <Box component=\"span\" className={className}>\n <Tooltip title={triggerTooltip} arrow>\n <IconButton\n onClick={handleOpen}\n size=\"small\"\n aria-label={triggerTooltip}\n aria-haspopup=\"menu\"\n aria-expanded={open || undefined}\n sx={[{ p: 0.5 }, ...(Array.isArray(triggerSx) ? triggerSx : triggerSx ? [triggerSx] : [])]}\n >\n <Avatar\n src={user?.avatarUrl}\n sx={{\n width: avatarSize,\n height: avatarSize,\n fontSize: avatarSize * 0.4,\n fontWeight: 600,\n }}\n >\n {!user?.avatarUrl && initials}\n </Avatar>\n </IconButton>\n </Tooltip>\n\n <Menu\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\n slotProps={{\n paper: {\n sx: { minWidth: 240, ...(menuSx as any) },\n },\n }}\n >\n {showUserHeader && (\n <Box\n sx={{\n px: 2,\n py: 1.25,\n display: 'flex',\n flexDirection: 'column',\n gap: 0.25,\n }}\n >\n {user?.name && (\n <Typography variant=\"subtitle2\" noWrap sx={{ fontWeight: 700 }}>\n {user.name}\n </Typography>\n )}\n {user?.email && (\n <Typography variant=\"caption\" color=\"text.secondary\" noWrap>\n {user.email}\n </Typography>\n )}\n </Box>\n )}\n {showUserHeader && <Divider />}\n\n {items.map((item, idx) => {\n const key = item.key ?? `${String(item.label)}-${idx}`;\n const node = (\n <MenuItem\n key={key}\n disabled={item.disabled}\n onClick={(event) => handleItemClick(event, item)}\n sx={(theme) => ({\n color: item.danger ? theme.palette.error.main : 'inherit',\n '& .MuiListItemIcon-root': {\n color: item.danger\n ? theme.palette.error.main\n : 'inherit',\n minWidth: 32,\n },\n })}\n >\n {item.icon && <ListItemIcon>{item.icon}</ListItemIcon>}\n <ListItemText primary={item.label} />\n </MenuItem>\n );\n\n if (item.dividerBefore && idx > 0) {\n return (\n <React.Fragment key={`${key}-frag`}>\n <Divider />\n {node}\n </React.Fragment>\n );\n }\n return node;\n })}\n </Menu>\n </Box>\n );\n}\n\nexport default AppBarUserMenu;\n"],"names":["createContext","useContext","useTheme","resolvePreset","useMemo","jsx","MuiAppBar","Toolbar","jsxs","Box","Typography","Tooltip","IconButton","useState","_a","Avatar","Menu","Divider","MenuItem","ListItemIcon","ListItemText"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AppBar.cjs","sources":["../../../src/components/AppBar/AppBarContext.ts","../../../src/components/AppBar/AppBar.sx.ts","../../../src/components/AppBar/AppBar.tsx","../../../src/components/AppBar/AppBarMenuToggle.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\n/**\n * Context interno del AppBar. Permite que sub-componentes (MenuToggle, etc.)\n * consuman callbacks registrados en el AppBar padre sin tener que pasarlos\n * por props explícitas.\n */\nexport interface AppBarContextValue {\n /** Handler del botón hamburguesa. Si es undefined, el toggle se oculta. */\n onMenuToggle?: () => void;\n /** Estado actual del drawer asociado (usado por el icono del toggle). */\n menuOpen?: boolean;\n}\n\nexport const AppBarContext = createContext<AppBarContextValue | null>(null);\n\n/**\n * Hook para leer el contexto del AppBar. Si se llama fuera de un `<AppBar>`,\n * devuelve un objeto vacío — los sub-componentes caen en modo \"standalone\"\n * con sus defaults en lugar de romper.\n */\nexport function useAppBarContext(): AppBarContextValue {\n const ctx = useContext(AppBarContext);\n return ctx ?? {};\n}\n","import type { SxProps, Theme } from '@mui/material/styles';\n\nexport interface BuildAppBarSxArgs {\n /** Altura en px. Default: 64. */\n height?: number;\n /** Color del AppBar (se pasa al MuiAppBar). */\n transparent?: boolean;\n}\n\n/**\n * sx del root del MuiAppBar. Define altura fija y layout flex del Toolbar\n * interno. El color/elevación se dejan a las props nativas de MuiAppBar.\n */\nexport function buildAppBarSx({\n height = 64,\n transparent = false,\n}: BuildAppBarSxArgs): SxProps<Theme> {\n return (theme) => ({\n minHeight: height,\n justifyContent: 'center',\n backgroundImage: 'none',\n ...(transparent && {\n backgroundColor: 'transparent',\n boxShadow: 'none',\n borderBottom: `1px solid ${theme.palette.divider}`,\n }),\n '& .MuiToolbar-root': {\n minHeight: height,\n gap: 1.5,\n },\n });\n}\n","import React, { useMemo, type ReactNode } from 'react';\nimport {\n AppBar as MuiAppBar,\n Toolbar,\n type AppBarProps as MuiAppBarProps,\n} from '@mui/material';\nimport {\n useTheme,\n type SxProps,\n type Theme,\n} from '@mui/material/styles';\n\nimport { AppBarContext } from './AppBarContext';\nimport { buildAppBarSx } from './AppBar.sx';\nimport { resolvePreset } from '../_shared/resolvePreset';\n\nexport type AppBarPosition = 'fixed' | 'sticky' | 'static' | 'absolute' | 'relative';\nexport type AppBarColor =\n | 'default'\n | 'primary'\n | 'secondary'\n | 'transparent'\n | 'inherit';\n\nexport interface AppBarProps {\n /** Contenido del AppBar (típicamente sub-componentes + acciones custom). */\n children?: ReactNode;\n /** Posicionamiento. Default: `'sticky'`. */\n position?: AppBarPosition;\n /** Color. Default: `'default'`. */\n color?: AppBarColor;\n /** Nivel de sombra. Default: 1. */\n elevation?: number;\n /** Altura en px. Default: 64. */\n height?: number;\n /**\n * Handler del botón hamburguesa. Se expone vía AppBarContext para que el\n * sub-componente `<AppBarMenuToggle>` lo consuma sin prop drilling.\n */\n onMenuToggle?: () => void;\n /** Estado del drawer asociado (para que el icono del toggle cambie). */\n menuOpen?: boolean;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.AppBar`.\n * - `\"default\"` (o ausente) = estilo built-in del paquete.\n */\n preset?: string;\n /** sx del root (se mergea después del preset). */\n sx?: SxProps<Theme>;\n /** sx del Toolbar interno. */\n toolbarSx?: SxProps<Theme>;\n className?: string;\n /** Otras props nativas del MuiAppBar (ej. `enableColorOnDark`). */\n appBarProps?: Omit<\n MuiAppBarProps,\n 'position' | 'color' | 'elevation' | 'sx' | 'children' | 'className'\n >;\n}\n\n/**\n * AppBar (header superior) del paquete. Se diseñó como un shell compositivo\n * — el consumer arma el contenido libremente (logo, título, menú de usuario,\n * etc.) y puede usar `<AppBarMenuToggle>` para el botón hamburguesa\n * integrado con el contexto.\n *\n * Patrón recomendado para navegación en dashboards:\n *\n * ```tsx\n * <AppBar onMenuToggle={toggleDrawer}>\n * <AppBarMenuToggle />\n * <MyBrand />\n * <Box sx={{ flex: 1 }} />\n * <MyUserMenu />\n * </AppBar>\n * ```\n */\nexport function AppBar({\n children,\n position = 'sticky',\n color = 'default',\n elevation = 1,\n height = 64,\n onMenuToggle,\n menuOpen,\n preset,\n sx,\n toolbarSx,\n appBarProps,\n}: AppBarProps) {\n const theme = useTheme();\n const presetSx = resolvePreset('AppBar', preset, theme);\n\n const rootSx: SxProps<Theme> = [\n buildAppBarSx({ height, transparent: color === 'transparent' }),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ];\n\n const contextValue = useMemo(\n () => ({ onMenuToggle, menuOpen }),\n [onMenuToggle, menuOpen],\n );\n\n return (\n <AppBarContext.Provider value={contextValue}>\n <MuiAppBar\n position={position}\n color={color}\n elevation={elevation}\n sx={rootSx}\n {...appBarProps}\n >\n <Toolbar sx={toolbarSx}>{children}</Toolbar>\n </MuiAppBar>\n </AppBarContext.Provider>\n );\n}\n\nexport default AppBar;\n","import { type ReactNode } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport MenuIcon from '@mui/icons-material/Menu';\nimport MenuOpenIcon from '@mui/icons-material/MenuOpen';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\nimport { useAppBarContext } from './AppBarContext';\n\nexport interface AppBarMenuToggleProps {\n /**\n * Callback explícito. Si se omite, se consume del `AppBarContext`. Útil para\n * usar el toggle fuera de un `<AppBar>` (p.ej. en un header custom).\n */\n onClick?: () => void;\n /** Estado del drawer asociado. Si se omite, se lee del `AppBarContext`. */\n menuOpen?: boolean;\n /** Icono custom cuando el drawer está cerrado. Default: `<MenuIcon />`. */\n closedIcon?: ReactNode;\n /** Icono custom cuando el drawer está abierto. Default: `<MenuOpenIcon />`. */\n openIcon?: ReactNode;\n /** Texto de tooltip. Default: \"Menú\". */\n tooltip?: string;\n /** aria-label del botón. Default: el mismo tooltip. */\n ariaLabel?: string;\n /** Tamaño del IconButton. Default: `'medium'`. */\n size?: 'small' | 'medium' | 'large';\n /** Oculta el botón cuando no hay handler disponible. Default: true. */\n hideIfNoHandler?: boolean;\n sx?: SxProps<Theme>;\n className?: string;\n}\n\n/**\n * Botón hamburguesa del AppBar. Por default consume `onMenuToggle` y\n * `menuOpen` del `AppBarContext` (pattern composicional), pero permite\n * overrides explícitos si se usa fuera de un `<AppBar>`.\n *\n * ```tsx\n * <AppBar onMenuToggle={toggleDrawer} menuOpen={open}>\n * <AppBarMenuToggle />\n * ...\n * </AppBar>\n * ```\n */\nexport function AppBarMenuToggle({\n onClick,\n menuOpen,\n closedIcon,\n openIcon,\n tooltip = 'Menú',\n ariaLabel,\n size = 'medium',\n hideIfNoHandler = true,\n sx,\n className,\n}: AppBarMenuToggleProps) {\n const ctx = useAppBarContext();\n\n const handler = onClick ?? ctx.onMenuToggle;\n const open = menuOpen ?? ctx.menuOpen ?? false;\n\n if (!handler && hideIfNoHandler) {\n return null;\n }\n\n const icon = open\n ? (openIcon ?? <MenuOpenIcon />)\n : (closedIcon ?? <MenuIcon />);\n\n return (\n <Tooltip title={tooltip} arrow>\n <span>\n <IconButton\n size={size}\n edge=\"start\"\n color=\"inherit\"\n aria-label={ariaLabel ?? tooltip}\n onClick={handler}\n disabled={!handler}\n className={className}\n sx={sx}\n >\n {icon}\n </IconButton>\n </span>\n </Tooltip>\n );\n}\n\nexport default AppBarMenuToggle;\n"],"names":["createContext","useContext","useTheme","resolvePreset","useMemo","jsx","MuiAppBar","Toolbar","Tooltip","IconButton"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcO,MAAM,gBAAgBA,MAAAA,cAAyC,IAAI;AAOnE,SAAS,mBAAuC;AACrD,QAAM,MAAMC,MAAAA,WAAW,aAAa;AACpC,SAAO,oBAAO,CAAA;AAChB;ACXO,SAAS,cAAc;AAAA,EAC5B,SAAS;AAAA,EACT,cAAc;AAChB,GAAsC;AACpC,SAAO,CAAC,UAAW;AAAA,IACjB,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,KACb,eAAe;AAAA,IACjB,iBAAiB;AAAA,IACjB,WAAW;AAAA,IACX,cAAc,aAAa,MAAM,QAAQ,OAAO;AAAA,EAAA,IAPjC;AAAA,IASjB,sBAAsB;AAAA,MACpB,WAAW;AAAA,MACX,KAAK;AAAA,IAAA;AAAA,EACP;AAEJ;AC6CO,SAAS,OAAO;AAAA,EACrB;AAAA,EACA,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAgB;AACd,QAAM,QAAQC,OAAAA,SAAA;AACd,QAAM,WAAWC,cAAAA,cAAc,UAAU,QAAQ,KAAK;AAEtD,QAAM,SAAyB;AAAA,IAC7B,cAAc,EAAE,QAAQ,aAAa,UAAU,eAAe;AAAA,IAC9D,GAAI,WAAW,CAAC,QAAQ,IAAI,CAAA;AAAA,IAC5B,GAAI,MAAM,QAAQ,EAAE,IAAI,KAAK,KAAK,CAAC,EAAE,IAAI,CAAA;AAAA,EAAC;AAG5C,QAAM,eAAeC,MAAAA;AAAAA,IACnB,OAAO,EAAE,cAAc;IACvB,CAAC,cAAc,QAAQ;AAAA,EAAA;AAGzB,SACEC,2BAAAA,IAAC,cAAc,UAAd,EAAuB,OAAO,cAC7B,UAAAA,2BAAAA;AAAAA,IAACC,SAAAA;AAAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,IAAI;AAAA,OACA,cALL;AAAA,MAOC,UAAAD,2BAAAA,IAACE,SAAAA,SAAA,EAAQ,IAAI,WAAY,SAAA,CAAS;AAAA,IAAA;AAAA,EAAA,GAEtC;AAEJ;ACxEO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA,OAAO;AAAA,EACP,kBAAkB;AAAA,EAClB;AAAA,EACA;AACF,GAA0B;;AACxB,QAAM,MAAM,iBAAA;AAEZ,QAAM,UAAU,4BAAW,IAAI;AAC/B,QAAM,QAAO,mCAAY,IAAI,aAAhB,YAA4B;AAEzC,MAAI,CAAC,WAAW,iBAAiB;AAC/B,WAAO;AAAA,EACT;AAEA,QAAM,OAAO,OACR,8BAAYF,+BAAC,gBAAa,IAC1B,iEAAe,UAAA,CAAA,CAAS;AAE7B,wCACGG,SAAAA,SAAA,EAAQ,OAAO,SAAS,OAAK,MAC5B,yCAAC,QAAA,EACC,UAAAH,2BAAAA;AAAAA,IAACI,SAAAA;AAAAA,IAAA;AAAA,MACC;AAAA,MACA,MAAK;AAAA,MACL,OAAM;AAAA,MACN,cAAY,gCAAa;AAAA,MACzB,SAAS;AAAA,MACT,UAAU,CAAC;AAAA,MACX;AAAA,MACA;AAAA,MAEC,UAAA;AAAA,IAAA;AAAA,EAAA,GAEL,EAAA,CACF;AAEJ;;;;;;"}
|
|
@@ -36,20 +36,20 @@ export interface AppBarProps {
|
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
38
|
* AppBar (header superior) del paquete. Se diseñó como un shell compositivo
|
|
39
|
-
* — el consumer arma el contenido
|
|
40
|
-
*
|
|
41
|
-
*
|
|
39
|
+
* — el consumer arma el contenido libremente (logo, título, menú de usuario,
|
|
40
|
+
* etc.) y puede usar `<AppBarMenuToggle>` para el botón hamburguesa
|
|
41
|
+
* integrado con el contexto.
|
|
42
42
|
*
|
|
43
43
|
* Patrón recomendado para navegación en dashboards:
|
|
44
44
|
*
|
|
45
45
|
* ```tsx
|
|
46
46
|
* <AppBar onMenuToggle={toggleDrawer}>
|
|
47
47
|
* <AppBarMenuToggle />
|
|
48
|
-
* <
|
|
48
|
+
* <MyBrand />
|
|
49
49
|
* <Box sx={{ flex: 1 }} />
|
|
50
|
-
* <
|
|
50
|
+
* <MyUserMenu />
|
|
51
51
|
* </AppBar>
|
|
52
52
|
* ```
|
|
53
53
|
*/
|
|
54
|
-
export declare function AppBar({ children, position, color, elevation, height, onMenuToggle, menuOpen, preset, sx, toolbarSx,
|
|
54
|
+
export declare function AppBar({ children, position, color, elevation, height, onMenuToggle, menuOpen, preset, sx, toolbarSx, appBarProps, }: AppBarProps): import("react/jsx-runtime").JSX.Element;
|
|
55
55
|
export default AppBar;
|
|
@@ -17,11 +17,11 @@ var __spreadValues = (a, b) => {
|
|
|
17
17
|
return a;
|
|
18
18
|
};
|
|
19
19
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
import { jsx
|
|
21
|
-
import
|
|
22
|
-
import { AppBar as AppBar$1, Toolbar,
|
|
20
|
+
import { jsx } from "react/jsx-runtime";
|
|
21
|
+
import { createContext, useContext, useMemo } from "react";
|
|
22
|
+
import { AppBar as AppBar$1, Toolbar, Tooltip, IconButton } from "@mui/material";
|
|
23
23
|
import { useTheme } from "@mui/material/styles";
|
|
24
|
-
import { r as resolvePreset } from "../../resolvePreset-
|
|
24
|
+
import { r as resolvePreset } from "../../resolvePreset-K6_BfWHD.js";
|
|
25
25
|
import MenuIcon from "@mui/icons-material/Menu";
|
|
26
26
|
import MenuOpenIcon from "@mui/icons-material/MenuOpen";
|
|
27
27
|
const AppBarContext = createContext(null);
|
|
@@ -59,14 +59,12 @@ function AppBar({
|
|
|
59
59
|
preset,
|
|
60
60
|
sx,
|
|
61
61
|
toolbarSx,
|
|
62
|
-
className,
|
|
63
62
|
appBarProps
|
|
64
63
|
}) {
|
|
65
64
|
const theme = useTheme();
|
|
66
65
|
const presetSx = resolvePreset("AppBar", preset, theme);
|
|
67
|
-
const transparent = color === "transparent";
|
|
68
66
|
const rootSx = [
|
|
69
|
-
buildAppBarSx({ height, transparent }),
|
|
67
|
+
buildAppBarSx({ height, transparent: color === "transparent" }),
|
|
70
68
|
...presetSx ? [presetSx] : [],
|
|
71
69
|
...Array.isArray(sx) ? sx : sx ? [sx] : []
|
|
72
70
|
];
|
|
@@ -78,101 +76,14 @@ function AppBar({
|
|
|
78
76
|
AppBar$1,
|
|
79
77
|
__spreadProps(__spreadValues({
|
|
80
78
|
position,
|
|
81
|
-
color
|
|
79
|
+
color,
|
|
82
80
|
elevation,
|
|
83
|
-
className,
|
|
84
81
|
sx: rootSx
|
|
85
82
|
}, appBarProps), {
|
|
86
83
|
children: /* @__PURE__ */ jsx(Toolbar, { sx: toolbarSx, children })
|
|
87
84
|
})
|
|
88
85
|
) });
|
|
89
86
|
}
|
|
90
|
-
function AppBarBrand({
|
|
91
|
-
logo,
|
|
92
|
-
title,
|
|
93
|
-
subtitle,
|
|
94
|
-
onClick,
|
|
95
|
-
hideTitleOnMobile = true,
|
|
96
|
-
sx,
|
|
97
|
-
className
|
|
98
|
-
}) {
|
|
99
|
-
const clickable = !!onClick;
|
|
100
|
-
const rootSx = [
|
|
101
|
-
{
|
|
102
|
-
display: "flex",
|
|
103
|
-
alignItems: "center",
|
|
104
|
-
gap: 1.25,
|
|
105
|
-
cursor: clickable ? "pointer" : "default",
|
|
106
|
-
userSelect: "none",
|
|
107
|
-
minWidth: 0
|
|
108
|
-
},
|
|
109
|
-
...Array.isArray(sx) ? sx : sx ? [sx] : []
|
|
110
|
-
];
|
|
111
|
-
return /* @__PURE__ */ jsxs(
|
|
112
|
-
Box,
|
|
113
|
-
{
|
|
114
|
-
role: clickable ? "button" : void 0,
|
|
115
|
-
tabIndex: clickable ? 0 : void 0,
|
|
116
|
-
onClick,
|
|
117
|
-
onKeyDown: (event) => {
|
|
118
|
-
if (!clickable) return;
|
|
119
|
-
if (event.key === "Enter" || event.key === " ") {
|
|
120
|
-
event.preventDefault();
|
|
121
|
-
onClick == null ? void 0 : onClick(event);
|
|
122
|
-
}
|
|
123
|
-
},
|
|
124
|
-
className,
|
|
125
|
-
sx: rootSx,
|
|
126
|
-
children: [
|
|
127
|
-
logo && /* @__PURE__ */ jsx(
|
|
128
|
-
Box,
|
|
129
|
-
{
|
|
130
|
-
component: "span",
|
|
131
|
-
sx: {
|
|
132
|
-
display: "flex",
|
|
133
|
-
alignItems: "center",
|
|
134
|
-
flexShrink: 0
|
|
135
|
-
},
|
|
136
|
-
children: logo
|
|
137
|
-
}
|
|
138
|
-
),
|
|
139
|
-
(title || subtitle) && /* @__PURE__ */ jsxs(
|
|
140
|
-
Box,
|
|
141
|
-
{
|
|
142
|
-
sx: {
|
|
143
|
-
display: hideTitleOnMobile ? { xs: "none", sm: "flex" } : "flex",
|
|
144
|
-
flexDirection: "column",
|
|
145
|
-
minWidth: 0,
|
|
146
|
-
lineHeight: 1.2
|
|
147
|
-
},
|
|
148
|
-
children: [
|
|
149
|
-
title && /* @__PURE__ */ jsx(
|
|
150
|
-
Typography,
|
|
151
|
-
{
|
|
152
|
-
component: "span",
|
|
153
|
-
variant: "subtitle1",
|
|
154
|
-
noWrap: true,
|
|
155
|
-
sx: { fontWeight: 700 },
|
|
156
|
-
children: title
|
|
157
|
-
}
|
|
158
|
-
),
|
|
159
|
-
subtitle && /* @__PURE__ */ jsx(
|
|
160
|
-
Typography,
|
|
161
|
-
{
|
|
162
|
-
component: "span",
|
|
163
|
-
variant: "caption",
|
|
164
|
-
color: "text.secondary",
|
|
165
|
-
noWrap: true,
|
|
166
|
-
children: subtitle
|
|
167
|
-
}
|
|
168
|
-
)
|
|
169
|
-
]
|
|
170
|
-
}
|
|
171
|
-
)
|
|
172
|
-
]
|
|
173
|
-
}
|
|
174
|
-
);
|
|
175
|
-
}
|
|
176
87
|
function AppBarMenuToggle({
|
|
177
88
|
onClick,
|
|
178
89
|
menuOpen,
|
|
@@ -208,138 +119,10 @@ function AppBarMenuToggle({
|
|
|
208
119
|
}
|
|
209
120
|
) }) });
|
|
210
121
|
}
|
|
211
|
-
function computeInitials(name) {
|
|
212
|
-
var _a, _b, _c, _d;
|
|
213
|
-
if (typeof name !== "string") return "?";
|
|
214
|
-
const parts = name.trim().split(/\s+/).filter(Boolean);
|
|
215
|
-
if (parts.length === 0) return "?";
|
|
216
|
-
const first = (_b = (_a = parts[0]) == null ? void 0 : _a.charAt(0)) != null ? _b : "";
|
|
217
|
-
const last = parts.length > 1 ? (_d = (_c = parts[parts.length - 1]) == null ? void 0 : _c.charAt(0)) != null ? _d : "" : "";
|
|
218
|
-
return (first + last).toUpperCase();
|
|
219
|
-
}
|
|
220
|
-
function AppBarUserMenu({
|
|
221
|
-
user,
|
|
222
|
-
items,
|
|
223
|
-
hideUserHeader = false,
|
|
224
|
-
triggerTooltip = "Cuenta",
|
|
225
|
-
avatarSize = 36,
|
|
226
|
-
menuSx,
|
|
227
|
-
triggerSx,
|
|
228
|
-
className
|
|
229
|
-
}) {
|
|
230
|
-
var _a;
|
|
231
|
-
const [anchorEl, setAnchorEl] = useState(null);
|
|
232
|
-
const open = Boolean(anchorEl);
|
|
233
|
-
const handleOpen = (event) => {
|
|
234
|
-
setAnchorEl(event.currentTarget);
|
|
235
|
-
};
|
|
236
|
-
const handleClose = () => setAnchorEl(null);
|
|
237
|
-
const handleItemClick = (event, item) => {
|
|
238
|
-
var _a2;
|
|
239
|
-
event.stopPropagation();
|
|
240
|
-
(_a2 = item.onClick) == null ? void 0 : _a2.call(item, event);
|
|
241
|
-
handleClose();
|
|
242
|
-
};
|
|
243
|
-
const initials = (_a = user == null ? void 0 : user.initials) != null ? _a : computeInitials(user == null ? void 0 : user.name);
|
|
244
|
-
const showUserHeader = !hideUserHeader && ((user == null ? void 0 : user.name) || (user == null ? void 0 : user.email));
|
|
245
|
-
return /* @__PURE__ */ jsxs(Box, { component: "span", className, children: [
|
|
246
|
-
/* @__PURE__ */ jsx(Tooltip, { title: triggerTooltip, arrow: true, children: /* @__PURE__ */ jsx(
|
|
247
|
-
IconButton,
|
|
248
|
-
{
|
|
249
|
-
onClick: handleOpen,
|
|
250
|
-
size: "small",
|
|
251
|
-
"aria-label": triggerTooltip,
|
|
252
|
-
"aria-haspopup": "menu",
|
|
253
|
-
"aria-expanded": open || void 0,
|
|
254
|
-
sx: [{ p: 0.5 }, ...Array.isArray(triggerSx) ? triggerSx : triggerSx ? [triggerSx] : []],
|
|
255
|
-
children: /* @__PURE__ */ jsx(
|
|
256
|
-
Avatar,
|
|
257
|
-
{
|
|
258
|
-
src: user == null ? void 0 : user.avatarUrl,
|
|
259
|
-
sx: {
|
|
260
|
-
width: avatarSize,
|
|
261
|
-
height: avatarSize,
|
|
262
|
-
fontSize: avatarSize * 0.4,
|
|
263
|
-
fontWeight: 600
|
|
264
|
-
},
|
|
265
|
-
children: !(user == null ? void 0 : user.avatarUrl) && initials
|
|
266
|
-
}
|
|
267
|
-
)
|
|
268
|
-
}
|
|
269
|
-
) }),
|
|
270
|
-
/* @__PURE__ */ jsxs(
|
|
271
|
-
Menu,
|
|
272
|
-
{
|
|
273
|
-
anchorEl,
|
|
274
|
-
open,
|
|
275
|
-
onClose: handleClose,
|
|
276
|
-
anchorOrigin: { vertical: "bottom", horizontal: "right" },
|
|
277
|
-
transformOrigin: { vertical: "top", horizontal: "right" },
|
|
278
|
-
slotProps: {
|
|
279
|
-
paper: {
|
|
280
|
-
sx: __spreadValues({ minWidth: 240 }, menuSx)
|
|
281
|
-
}
|
|
282
|
-
},
|
|
283
|
-
children: [
|
|
284
|
-
showUserHeader && /* @__PURE__ */ jsxs(
|
|
285
|
-
Box,
|
|
286
|
-
{
|
|
287
|
-
sx: {
|
|
288
|
-
px: 2,
|
|
289
|
-
py: 1.25,
|
|
290
|
-
display: "flex",
|
|
291
|
-
flexDirection: "column",
|
|
292
|
-
gap: 0.25
|
|
293
|
-
},
|
|
294
|
-
children: [
|
|
295
|
-
(user == null ? void 0 : user.name) && /* @__PURE__ */ jsx(Typography, { variant: "subtitle2", noWrap: true, sx: { fontWeight: 700 }, children: user.name }),
|
|
296
|
-
(user == null ? void 0 : user.email) && /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "text.secondary", noWrap: true, children: user.email })
|
|
297
|
-
]
|
|
298
|
-
}
|
|
299
|
-
),
|
|
300
|
-
showUserHeader && /* @__PURE__ */ jsx(Divider, {}),
|
|
301
|
-
items.map((item, idx) => {
|
|
302
|
-
var _a2;
|
|
303
|
-
const key = (_a2 = item.key) != null ? _a2 : `${String(item.label)}-${idx}`;
|
|
304
|
-
const node = /* @__PURE__ */ jsxs(
|
|
305
|
-
MenuItem,
|
|
306
|
-
{
|
|
307
|
-
disabled: item.disabled,
|
|
308
|
-
onClick: (event) => handleItemClick(event, item),
|
|
309
|
-
sx: (theme) => ({
|
|
310
|
-
color: item.danger ? theme.palette.error.main : "inherit",
|
|
311
|
-
"& .MuiListItemIcon-root": {
|
|
312
|
-
color: item.danger ? theme.palette.error.main : "inherit",
|
|
313
|
-
minWidth: 32
|
|
314
|
-
}
|
|
315
|
-
}),
|
|
316
|
-
children: [
|
|
317
|
-
item.icon && /* @__PURE__ */ jsx(ListItemIcon, { children: item.icon }),
|
|
318
|
-
/* @__PURE__ */ jsx(ListItemText, { primary: item.label })
|
|
319
|
-
]
|
|
320
|
-
},
|
|
321
|
-
key
|
|
322
|
-
);
|
|
323
|
-
if (item.dividerBefore && idx > 0) {
|
|
324
|
-
return /* @__PURE__ */ jsxs(React__default.Fragment, { children: [
|
|
325
|
-
/* @__PURE__ */ jsx(Divider, {}),
|
|
326
|
-
node
|
|
327
|
-
] }, `${key}-frag`);
|
|
328
|
-
}
|
|
329
|
-
return node;
|
|
330
|
-
})
|
|
331
|
-
]
|
|
332
|
-
}
|
|
333
|
-
)
|
|
334
|
-
] });
|
|
335
|
-
}
|
|
336
122
|
export {
|
|
337
123
|
AppBar,
|
|
338
|
-
AppBarBrand,
|
|
339
124
|
AppBarContext,
|
|
340
125
|
AppBarMenuToggle,
|
|
341
|
-
AppBarUserMenu,
|
|
342
|
-
buildAppBarSx,
|
|
343
126
|
AppBar as default,
|
|
344
127
|
useAppBarContext
|
|
345
128
|
};
|