@soyfri/shared-library 2.0.0-beta8 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Button-C17mExpd.cjs.map +1 -1
- package/Button-UkkP-bNw.js.map +1 -1
- package/README.md +182 -150
- package/components/ActionMenu/ActionMenu.cjs +52 -52
- package/components/ActionMenu/ActionMenu.cjs.map +1 -1
- package/components/ActionMenu/ActionMenu.d.ts +20 -36
- package/components/ActionMenu/ActionMenu.js +55 -55
- package/components/ActionMenu/ActionMenu.js.map +1 -1
- package/components/ActionMenu/index.d.ts +2 -2
- package/components/AppBar/AppBar.cjs +3 -220
- package/components/AppBar/AppBar.cjs.map +1 -1
- package/components/AppBar/AppBar.d.ts +6 -6
- package/components/AppBar/AppBar.js +6 -223
- package/components/AppBar/AppBar.js.map +1 -1
- package/components/AppBar/index.d.ts +0 -6
- package/components/Autocomplete/Autocomplete.cjs +310 -4
- package/components/Autocomplete/Autocomplete.cjs.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +29 -26
- package/components/Autocomplete/Autocomplete.definitions.d.ts +2 -1
- package/components/Autocomplete/Autocomplete.helpers.d.ts +12 -8
- package/components/Autocomplete/Autocomplete.js +310 -4
- package/components/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/_parts/AutocompleteChips.d.ts +7 -6
- package/components/Autocomplete/_parts/AutocompleteOption.d.ts +10 -13
- package/components/Autocomplete/index.d.ts +1 -1
- package/components/Avatar/Avatar.cjs +159 -2
- package/components/Avatar/Avatar.cjs.map +1 -1
- package/components/Avatar/Avatar.js +159 -2
- package/components/Avatar/Avatar.js.map +1 -1
- package/components/Avatar/index.d.ts +1 -0
- package/components/Button/Button.d.ts +5 -5
- package/components/Button/index.d.ts +1 -0
- package/components/Card/Card.cjs +95 -7
- package/components/Card/Card.cjs.map +1 -1
- package/components/Card/Card.d.ts +3 -50
- package/components/Card/Card.js +95 -7
- package/components/Card/Card.js.map +1 -1
- package/components/Card/Card.sx.d.ts +3 -6
- package/components/Card/index.d.ts +1 -1
- package/{Switch-BIeobv6i.cjs → components/Checkbox/Checkbox.cjs} +30 -20
- package/components/Checkbox/Checkbox.cjs.map +1 -0
- package/components/Checkbox/Checkbox.d.ts +55 -0
- package/{Switch-DQEOxM2R.js → components/Checkbox/Checkbox.js} +29 -20
- package/components/Checkbox/Checkbox.js.map +1 -0
- package/components/Checkbox/Checkbox.sx.d.ts +13 -0
- package/components/Checkbox/index.d.ts +2 -0
- package/components/Checkbox.d.ts +6 -0
- package/components/Chip/Chip.cjs +73 -3
- package/components/Chip/Chip.cjs.map +1 -1
- package/components/Chip/Chip.js +72 -2
- package/components/Chip/Chip.js.map +1 -1
- package/components/Chip/index.d.ts +2 -1
- package/components/Chip.d.ts +4 -0
- package/components/Column/Column.cjs +1 -1
- package/components/Column/Column.cjs.map +1 -1
- package/components/Column/Column.d.ts +1 -1
- package/components/Column/Column.js +1 -1
- package/components/Column/Column.js.map +1 -1
- package/components/Column/index.d.ts +0 -1
- package/components/DatePicker/DatePicker.cjs +177 -3
- package/components/DatePicker/DatePicker.cjs.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +1 -13
- package/components/DatePicker/DatePicker.js +177 -3
- package/components/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/index.d.ts +1 -1
- package/components/DateRangePicker/DateRangePicker.cjs +73 -2
- package/components/DateRangePicker/DateRangePicker.cjs.map +1 -1
- package/components/DateRangePicker/DateRangePicker.js +73 -2
- package/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateTimePicker/DateTimePicker.cjs +195 -3
- package/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
- package/components/DateTimePicker/DateTimePicker.d.ts +9 -17
- package/components/DateTimePicker/DateTimePicker.definitions.d.ts +2 -0
- package/components/DateTimePicker/DateTimePicker.helpers.d.ts +4 -2
- package/components/DateTimePicker/DateTimePicker.js +195 -3
- package/components/DateTimePicker/DateTimePicker.js.map +1 -1
- package/components/DateTimePicker/index.d.ts +1 -1
- package/components/Drawer/Drawer.cjs +13 -7
- package/components/Drawer/Drawer.cjs.map +1 -1
- package/components/Drawer/Drawer.d.ts +3 -1
- package/components/Drawer/Drawer.js +14 -8
- package/components/Drawer/Drawer.js.map +1 -1
- package/components/Drawer/DrawerItem.d.ts +6 -1
- package/components/Gallery/Gallery.cjs +154 -79
- package/components/Gallery/Gallery.cjs.map +1 -1
- package/components/Gallery/Gallery.d.ts +25 -9
- package/components/Gallery/Gallery.js +154 -79
- package/components/Gallery/Gallery.js.map +1 -1
- package/components/Gallery/GalleryLightbox.d.ts +6 -10
- package/components/Gallery/GalleryMain.d.ts +3 -7
- package/components/Gallery/GalleryThumbnails.d.ts +7 -11
- package/components/Gallery/index.d.ts +2 -1
- package/components/Gallery.d.ts +4 -0
- package/components/Icon/Icon.cjs +6 -8
- package/components/Icon/Icon.cjs.map +1 -1
- package/components/Icon/Icon.d.ts +11 -17
- package/components/Icon/Icon.js +6 -8
- package/components/Icon/Icon.js.map +1 -1
- package/components/Icon/index.d.ts +2 -1
- package/components/Icon.d.ts +4 -0
- package/components/Input/Input.cjs +185 -3
- package/components/Input/Input.cjs.map +1 -1
- package/components/Input/Input.d.ts +9 -2
- package/components/Input/Input.helpers.d.ts +3 -3
- package/components/Input/Input.js +185 -3
- package/components/Input/Input.js.map +1 -1
- package/components/Input/index.d.ts +1 -1
- package/components/InputGroup/InputGroup.cjs +23 -22
- package/components/InputGroup/InputGroup.cjs.map +1 -1
- package/components/InputGroup/InputGroup.d.ts +4 -4
- package/components/InputGroup/InputGroup.js +22 -21
- package/components/InputGroup/InputGroup.js.map +1 -1
- package/components/InputGroup/index.d.ts +2 -1
- package/components/InputGroup.d.ts +4 -0
- package/components/Modal/Modal.cjs +345 -6
- package/components/Modal/Modal.cjs.map +1 -1
- package/components/Modal/Modal.d.ts +20 -5
- package/components/Modal/Modal.js +345 -6
- package/components/Modal/Modal.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +6 -1
- package/components/Modal/ModalFooter.d.ts +4 -4
- package/components/Modal/ModalHeader.d.ts +6 -1
- package/components/Modal/index.d.ts +4 -3
- package/components/RadioGroup/RadioGroup.cjs +201 -3
- package/components/RadioGroup/RadioGroup.cjs.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +9 -3
- package/components/RadioGroup/RadioGroup.js +201 -3
- package/components/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/index.d.ts +1 -1
- package/components/Select/Select.cjs +310 -4
- package/components/Select/Select.cjs.map +1 -1
- package/components/Select/Select.d.ts +35 -20
- package/components/Select/Select.helpers.d.ts +6 -19
- package/components/Select/Select.js +310 -4
- package/components/Select/Select.js.map +1 -1
- package/components/Select/index.d.ts +1 -1
- package/components/Stat/Stat.cjs +83 -4
- package/components/Stat/Stat.cjs.map +1 -1
- package/components/Stat/Stat.js +82 -3
- package/components/Stat/Stat.js.map +1 -1
- package/components/Stat/index.d.ts +2 -1
- package/components/Stat.d.ts +4 -0
- package/components/StatusMessage/StatusMessage.cjs +105 -3
- package/components/StatusMessage/StatusMessage.cjs.map +1 -1
- package/components/StatusMessage/StatusMessage.d.ts +20 -36
- package/components/StatusMessage/StatusMessage.js +105 -3
- package/components/StatusMessage/StatusMessage.js.map +1 -1
- package/components/StatusMessage/StatusMessageContext.d.ts +16 -0
- package/components/StatusMessage/index.d.ts +2 -0
- package/components/Stepper/Stepper.cjs +324 -4
- package/components/Stepper/Stepper.cjs.map +1 -1
- package/components/Stepper/Stepper.d.ts +9 -8
- package/components/Stepper/Stepper.js +323 -3
- package/components/Stepper/Stepper.js.map +1 -1
- package/{hooks/Wizard/WizardContext.d.ts → components/Stepper/StepperContext.d.ts} +28 -22
- package/components/Stepper/_hooks/useHorizontalScroll.d.ts +19 -0
- package/components/Stepper/_parts/StepperScrollArrow.d.ts +19 -0
- package/components/Stepper/index.d.ts +6 -2
- package/components/Stepper.d.ts +4 -0
- package/components/Switch/Switch.cjs +181 -3
- package/components/Switch/Switch.cjs.map +1 -1
- package/components/Switch/Switch.d.ts +7 -2
- package/components/Switch/Switch.js +181 -3
- package/components/Switch/Switch.js.map +1 -1
- package/components/Table/Table.cjs +528 -2
- package/components/Table/Table.cjs.map +1 -1
- package/components/Table/Table.d.ts +1 -1
- package/components/Table/Table.js +528 -2
- package/components/Table/Table.js.map +1 -1
- package/components/Tabs/Tabs.cjs +110 -4
- package/components/Tabs/Tabs.cjs.map +1 -1
- package/components/Tabs/Tabs.d.ts +21 -16
- package/components/Tabs/Tabs.js +109 -3
- package/components/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/index.d.ts +4 -2
- package/components/Tabs.d.ts +4 -0
- package/components/Timeline/Timeline.cjs +3 -2
- package/components/Timeline/Timeline.cjs.map +1 -1
- package/components/Timeline/Timeline.d.ts +4 -8
- package/components/Timeline/Timeline.js +3 -2
- package/components/Timeline/Timeline.js.map +1 -1
- package/components/Timeline/index.d.ts +4 -2
- package/components/Timeline.d.ts +4 -0
- package/components/_shared/mergeSx.d.ts +7 -0
- package/{formField.sx-DfVbMe0V.js → formField.sx-8_QRnKxv.js} +2 -11
- package/formField.sx-8_QRnKxv.js.map +1 -0
- package/{formField.sx-CQ1mbk9M.cjs → formField.sx-BAX7KwMR.cjs} +10 -19
- package/formField.sx-BAX7KwMR.cjs.map +1 -0
- package/index.cjs +63 -47
- package/index.cjs.map +1 -1
- package/index.d.ts +1 -30
- package/index.js +25 -48
- package/index.js.map +1 -1
- package/mergeSx-BXoNZjB_.js +10 -0
- package/mergeSx-BXoNZjB_.js.map +1 -0
- package/mergeSx-Dbccoo_H.cjs +9 -0
- package/mergeSx-Dbccoo_H.cjs.map +1 -0
- package/mui.d.ts +4 -2
- package/package.json +8 -20
- package/{resolvePreset-K6_BfWHD.js → resolvePreset-B-IB0ehH.js} +3 -3
- package/{resolvePreset-K6_BfWHD.js.map → resolvePreset-B-IB0ehH.js.map} +1 -1
- package/{resolvePreset-CxTI6_Ln.cjs → resolvePreset-CT3kU-K2.cjs} +3 -3
- package/{resolvePreset-CxTI6_Ln.cjs.map → resolvePreset-CT3kU-K2.cjs.map} +1 -1
- package/theme/componentStyles.d.ts +1 -1
- package/tokens-BRrcP_p_.js +21 -0
- package/tokens-BRrcP_p_.js.map +1 -0
- package/tokens-jaWWNk39.cjs +20 -0
- package/tokens-jaWWNk39.cjs.map +1 -0
- package/utils/index.d.ts +2 -0
- package/{components/ScrollTopButton → utils}/scrollToTop.d.ts +6 -7
- package/Autocomplete-BA-cGASd.js +0 -316
- package/Autocomplete-BA-cGASd.js.map +0 -1
- package/Autocomplete-C2x-lBvZ.cjs +0 -315
- package/Autocomplete-C2x-lBvZ.cjs.map +0 -1
- package/Avatar-9L7YMxya.cjs +0 -162
- package/Avatar-9L7YMxya.cjs.map +0 -1
- package/Avatar-BJTr-PBd.js +0 -163
- package/Avatar-BJTr-PBd.js.map +0 -1
- package/Card-DG_crfkK.cjs +0 -185
- package/Card-DG_crfkK.cjs.map +0 -1
- package/Card-Ug-ttVSh.js +0 -186
- package/Card-Ug-ttVSh.js.map +0 -1
- package/Chip-OPYQ1uQ_.js +0 -74
- package/Chip-OPYQ1uQ_.js.map +0 -1
- package/Chip-qoJLDiva.cjs +0 -73
- package/Chip-qoJLDiva.cjs.map +0 -1
- package/DatePicker-8f_9bwhS.js +0 -202
- package/DatePicker-8f_9bwhS.js.map +0 -1
- package/DatePicker-DLSfkgGA.cjs +0 -201
- package/DatePicker-DLSfkgGA.cjs.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-CWNW09-O.cjs +0 -220
- package/DateTimePicker-CWNW09-O.cjs.map +0 -1
- package/DateTimePicker-D4L9GAod.js +0 -221
- package/DateTimePicker-D4L9GAod.js.map +0 -1
- package/Input-Cp911l23.js +0 -174
- package/Input-Cp911l23.js.map +0 -1
- package/Input-DI0jfq5X.cjs +0 -173
- package/Input-DI0jfq5X.cjs.map +0 -1
- package/Modal-Bm_HH9cv.cjs +0 -319
- package/Modal-Bm_HH9cv.cjs.map +0 -1
- package/Modal-Bnz6d9m9.js +0 -320
- package/Modal-Bnz6d9m9.js.map +0 -1
- package/RadioGroup-CxqDHap1.cjs +0 -200
- package/RadioGroup-CxqDHap1.cjs.map +0 -1
- package/RadioGroup-DMi9FvMP.js +0 -201
- package/RadioGroup-DMi9FvMP.js.map +0 -1
- package/Select-3CBOfM2H.js +0 -447
- package/Select-3CBOfM2H.js.map +0 -1
- package/Select-Bku4f4f8.cjs +0 -446
- package/Select-Bku4f4f8.cjs.map +0 -1
- package/Stat-BUcFCGrz.cjs +0 -83
- package/Stat-BUcFCGrz.cjs.map +0 -1
- package/Stat-C06A_izS.js +0 -84
- package/Stat-C06A_izS.js.map +0 -1
- package/StatusMessage-C5B6oGZ_.cjs +0 -78
- package/StatusMessage-C5B6oGZ_.cjs.map +0 -1
- package/StatusMessage-D1GlfQdz.js +0 -79
- package/StatusMessage-D1GlfQdz.js.map +0 -1
- package/Step-Dq0N72YB.js +0 -49
- package/Step-Dq0N72YB.js.map +0 -1
- package/Step-a8U8O-91.cjs +0 -48
- package/Step-a8U8O-91.cjs.map +0 -1
- package/Switch-BIeobv6i.cjs.map +0 -1
- package/Switch-DQEOxM2R.js.map +0 -1
- package/Tab-Co31KY2k.cjs +0 -95
- package/Tab-Co31KY2k.cjs.map +0 -1
- package/Tab-DiK62gRz.js +0 -96
- package/Tab-DiK62gRz.js.map +0 -1
- package/Table-C2LbW0B1.js +0 -531
- package/Table-C2LbW0B1.js.map +0 -1
- package/Table-C4OM6rrC.cjs +0 -530
- package/Table-C4OM6rrC.cjs.map +0 -1
- package/components/AppBar/AppBarBrand.d.ts +0 -31
- package/components/AppBar/AppBarUserMenu.d.ts +0 -65
- package/components/Autocomplete/Autocomplete.types.d.ts +0 -1
- package/components/DatePicker/DatePicker.types.d.ts +0 -1
- package/components/DateTimePicker/DateTimePicker.types.d.ts +0 -1
- package/components/Input/Input.types.d.ts +0 -1
- package/components/PageLoader/PageLoader.cjs +0 -61
- package/components/PageLoader/PageLoader.cjs.map +0 -1
- package/components/PageLoader/PageLoader.d.ts +0 -38
- package/components/PageLoader/PageLoader.js +0 -61
- package/components/PageLoader/PageLoader.js.map +0 -1
- package/components/PageLoader/index.d.ts +0 -2
- package/components/PageLoader.d.ts +0 -6
- package/components/RadioGroup/RadioGroup.types.d.ts +0 -1
- package/components/ScrollTopButton/ScrollTopButton.cjs +0 -79
- package/components/ScrollTopButton/ScrollTopButton.cjs.map +0 -1
- package/components/ScrollTopButton/ScrollTopButton.d.ts +0 -48
- package/components/ScrollTopButton/ScrollTopButton.js +0 -79
- package/components/ScrollTopButton/ScrollTopButton.js.map +0 -1
- package/components/ScrollTopButton/index.d.ts +0 -4
- package/components/ScrollTopButton.d.ts +0 -6
- package/components/Select/Select.definitions.d.ts +0 -17
- package/components/Select/Select.types.d.ts +0 -1
- package/components/Select/_parts/SelectSearchHeader.d.ts +0 -15
- package/components/Select/_parts/SelectValue.d.ts +0 -22
- package/formField.sx-CQ1mbk9M.cjs.map +0 -1
- package/formField.sx-DfVbMe0V.js.map +0 -1
- package/hooks/Wizard/Wizard.cjs +0 -7
- package/hooks/Wizard/Wizard.cjs.map +0 -1
- package/hooks/Wizard/Wizard.js +0 -7
- package/hooks/Wizard/Wizard.js.map +0 -1
- package/hooks/Wizard/index.d.ts +0 -3
- package/hooks/Wizard/useWizard.d.ts +0 -9
- package/hooks/Wizard.d.ts +0 -2
- package/useWizard-CWdIxZzX.cjs +0 -94
- package/useWizard-CWdIxZzX.cjs.map +0 -1
- package/useWizard-CWq--C3o.js +0 -95
- package/useWizard-CWq--C3o.js.map +0 -1
- /package/{styles.css → index.css} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionMenu.cjs","sources":["../../../src/components/ActionMenu/ActionMenu.tsx"],"sourcesContent":["import React, {
|
|
1
|
+
{"version":3,"file":"ActionMenu.cjs","sources":["../../../src/components/ActionMenu/ActionMenu.tsx"],"sourcesContent":["import React, {\n createContext,\n forwardRef,\n useContext,\n useState,\n type ReactElement,\n type ReactNode,\n type MouseEvent,\n} from 'react';\nimport {\n IconButton,\n Menu,\n MenuItem,\n ListItemIcon,\n ListItemText,\n Tooltip,\n type MenuItemProps as MuiMenuItemProps,\n} from '@mui/material';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\nexport interface ActionMenuProps {\n /** Items del menú. Normalmente `<ActionMenuItem>` o `<Divider />`. */\n children: ReactNode;\n /**\n * Elemento disparador — cualquier componente clickeable (Button, Chip, IconButton…).\n * El ActionMenu le inyecta `onClick` automáticamente. Si se omite, se usa un\n * IconButton de tres puntos por defecto.\n */\n trigger?: ReactElement;\n /** Texto de tooltip sobre el trigger default. Default: \"Acciones\". */\n triggerTooltip?: string;\n /** Anchor origin del menu. Default: { vertical: 'bottom', horizontal: 'right' }. */\n anchorOrigin?: {\n vertical: 'top' | 'center' | 'bottom';\n horizontal: 'left' | 'center' | 'right';\n };\n /** Transform origin del menu. Default: { vertical: 'top', horizontal: 'right' }. */\n transformOrigin?: {\n vertical: 'top' | 'center' | 'bottom';\n horizontal: 'left' | 'center' | 'right';\n };\n /** sx del Menu (Paper interno). */\n menuSx?: SxProps<Theme>;\n /** Deshabilita el trigger entero. */\n disabled?: boolean;\n}\n\ninterface ActionMenuContextValue {\n close: () => void;\n}\n\nconst ActionMenuContext = createContext<ActionMenuContextValue | null>(null);\n\nexport const ActionMenu: React.FC<ActionMenuProps> = ({\n children,\n trigger,\n triggerTooltip,\n anchorOrigin = { vertical: 'bottom', horizontal: 'right' },\n transformOrigin = { vertical: 'top', horizontal: 'right' },\n menuSx,\n disabled = false,\n}) => {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const open = Boolean(anchorEl);\n\n const handleClose = () => setAnchorEl(null);\n\n // Abre el menú anclándolo al elemento que recibió el click.\n const openMenu = (event: MouseEvent<HTMLElement>) => {\n if (disabled) return;\n event.stopPropagation();\n setAnchorEl(event.currentTarget);\n };\n\n // Si el consumer pasó un trigger (ej. <Button>), le inyectamos onClick.\n // Si no, usamos el IconButton de tres puntos por defecto.\n const triggerElement = trigger ? (\n React.cloneElement(trigger as ReactElement<any>, {\n onClick: openMenu,\n disabled,\n })\n ) : (\n <Tooltip title={triggerTooltip} arrow>\n <IconButton\n size=\"small\"\n onClick={openMenu}\n disabled={disabled}\n aria-label={triggerTooltip}\n >\n <MoreVertIcon fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n );\n\n const paperSx = [\n { minWidth: 180 },\n ...(Array.isArray(menuSx) ? menuSx : menuSx ? [menuSx] : []),\n ] as SxProps<Theme>;\n\n return (\n <>\n {triggerElement}\n <Menu\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n slotProps={{ paper: { sx: paperSx } }}\n >\n <ActionMenuContext.Provider value={{ close: handleClose }}>\n {children}\n </ActionMenuContext.Provider>\n </Menu>\n </>\n );\n};\n\nexport interface ActionMenuItemProps\n extends Omit<MuiMenuItemProps, 'children' | 'onClick'> {\n /** Icono opcional a la izquierda. */\n icon?: ReactNode;\n /** Texto (o nodo) del item. */\n children: ReactNode;\n /** Handler de click. El menú se cierra automáticamente después. */\n onClick?: (event: MouseEvent<HTMLLIElement>) => void;\n}\n\n/**\n * Item del `ActionMenu`. Se cierra automáticamente al hacer click.\n * Acepta todos los props de `MenuItem` de MUI (disabled, selected, sx, …).\n */\nexport const ActionMenuItem = forwardRef<HTMLLIElement, ActionMenuItemProps>(\n function ActionMenuItem({ icon, children, onClick, ...rest }, ref) {\n const ctx = useContext(ActionMenuContext);\n\n const handleClick = (event: MouseEvent<HTMLLIElement>) => {\n event.stopPropagation();\n onClick?.(event);\n ctx?.close();\n };\n\n return (\n <MenuItem ref={ref} onClick={handleClick} {...rest}>\n {icon && <ListItemIcon sx={{ minWidth: 32 }}>{icon}</ListItemIcon>}\n <ListItemText primary={children} />\n </MenuItem>\n );\n },\n);\n\nexport default ActionMenu;\n"],"names":["createContext","useState","jsx","Tooltip","IconButton","jsxs","Fragment","Menu","forwardRef","ActionMenuItem","useContext","MenuItem","ListItemIcon","ListItemText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,MAAM,oBAAoBA,MAAAA,cAA6C,IAAI;AAEpE,MAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe,EAAE,UAAU,UAAU,YAAY,QAAA;AAAA,EACjD,kBAAkB,EAAE,UAAU,OAAO,YAAY,QAAA;AAAA,EACjD;AAAA,EACA,WAAW;AACb,MAAM;AACJ,QAAM,CAAC,UAAU,WAAW,IAAIC,MAAAA,SAA6B,IAAI;AACjE,QAAM,OAAO,QAAQ,QAAQ;AAE7B,QAAM,cAAc,MAAM,YAAY,IAAI;AAG1C,QAAM,WAAW,CAAC,UAAmC;AACnD,QAAI,SAAU;AACd,UAAM,gBAAA;AACN,gBAAY,MAAM,aAAa;AAAA,EACjC;AAIA,QAAM,iBAAiB,UACrB,MAAM,aAAa,SAA8B;AAAA,IAC/C,SAAS;AAAA,IACT;AAAA,EAAA,CACD,IAEDC,2BAAAA,IAACC,SAAAA,WAAQ,OAAO,gBAAgB,OAAK,MACnC,UAAAD,2BAAAA;AAAAA,IAACE,SAAAA;AAAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAS;AAAA,MACT;AAAA,MACA,cAAY;AAAA,MAEZ,UAAAF,2BAAAA,IAAC,cAAA,EAAa,UAAS,QAAA,CAAQ;AAAA,IAAA;AAAA,EAAA,GAEnC;AAGF,QAAM,UAAU;AAAA,IACd,EAAE,UAAU,IAAA;AAAA,IACZ,GAAI,MAAM,QAAQ,MAAM,IAAI,SAAS,SAAS,CAAC,MAAM,IAAI,CAAA;AAAA,EAAC;AAG5D,SACEG,2BAAAA,KAAAC,qBAAA,EACG,UAAA;AAAA,IAAA;AAAA,IACDJ,2BAAAA;AAAAA,MAACK,SAAAA;AAAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA,WAAW,EAAE,OAAO,EAAE,IAAI,UAAQ;AAAA,QAElC,UAAAL,2BAAAA,IAAC,kBAAkB,UAAlB,EAA2B,OAAO,EAAE,OAAO,YAAA,GACzC,SAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;AAgBO,MAAM,iBAAiBM,MAAAA;AAAAA,EAC5B,SAASC,gBAAe,IAAsC,KAAK;AAA3C,iBAAE,QAAM,UAAU,YAAlB,IAA8B,iBAA9B,IAA8B,CAA5B,QAAM,YAAU;AACxC,UAAM,MAAMC,MAAAA,WAAW,iBAAiB;AAExC,UAAM,cAAc,CAAC,UAAqC;AACxD,YAAM,gBAAA;AACN,yCAAU;AACV,iCAAK;AAAA,IACP;AAEA,2CACGC,SAAAA,UAAA,+BAAS,KAAU,SAAS,eAAiB,OAA7C,EACE,UAAA;AAAA,MAAA,uCAASC,SAAAA,cAAA,EAAa,IAAI,EAAE,UAAU,GAAA,GAAO,UAAA,MAAK;AAAA,MACnDV,2BAAAA,IAACW,SAAAA,cAAA,EAAa,SAAS,SAAA,CAAU;AAAA,IAAA,IACnC;AAAA,EAEJ;AACF;;;;"}
|
|
@@ -1,29 +1,15 @@
|
|
|
1
|
-
import { ReactNode, MouseEvent } from 'react';
|
|
1
|
+
import { default as React, ReactElement, ReactNode, MouseEvent } from 'react';
|
|
2
|
+
import { MenuItemProps as MuiMenuItemProps } from '@mui/material';
|
|
2
3
|
import { SxProps, Theme } from '@mui/material/styles';
|
|
3
|
-
export interface ActionMenuItem {
|
|
4
|
-
/** Key única para React. Si no se provee, se usa el label. */
|
|
5
|
-
key?: string;
|
|
6
|
-
/** Texto del item. */
|
|
7
|
-
label: ReactNode;
|
|
8
|
-
/** Icono opcional a la izquierda. */
|
|
9
|
-
icon?: ReactNode;
|
|
10
|
-
/** Handler de click. Recibe el evento del MenuItem. */
|
|
11
|
-
onClick?: (event: MouseEvent<HTMLLIElement>) => void;
|
|
12
|
-
/** Deshabilita el item. */
|
|
13
|
-
disabled?: boolean;
|
|
14
|
-
/** Marca el item como destructivo (pinta color error). */
|
|
15
|
-
danger?: boolean;
|
|
16
|
-
/** Inserta un `<Divider />` ANTES de este item. */
|
|
17
|
-
dividerBefore?: boolean;
|
|
18
|
-
}
|
|
19
4
|
export interface ActionMenuProps {
|
|
20
|
-
/**
|
|
21
|
-
|
|
5
|
+
/** Items del menú. Normalmente `<ActionMenuItem>` o `<Divider />`. */
|
|
6
|
+
children: ReactNode;
|
|
22
7
|
/**
|
|
23
|
-
* Elemento
|
|
24
|
-
*
|
|
8
|
+
* Elemento disparador — cualquier componente clickeable (Button, Chip, IconButton…).
|
|
9
|
+
* El ActionMenu le inyecta `onClick` automáticamente. Si se omite, se usa un
|
|
10
|
+
* IconButton de tres puntos por defecto.
|
|
25
11
|
*/
|
|
26
|
-
trigger?:
|
|
12
|
+
trigger?: ReactElement;
|
|
27
13
|
/** Texto de tooltip sobre el trigger default. Default: "Acciones". */
|
|
28
14
|
triggerTooltip?: string;
|
|
29
15
|
/** Anchor origin del menu. Default: { vertical: 'bottom', horizontal: 'right' }. */
|
|
@@ -40,21 +26,19 @@ export interface ActionMenuProps {
|
|
|
40
26
|
menuSx?: SxProps<Theme>;
|
|
41
27
|
/** Deshabilita el trigger entero. */
|
|
42
28
|
disabled?: boolean;
|
|
43
|
-
|
|
29
|
+
}
|
|
30
|
+
export declare const ActionMenu: React.FC<ActionMenuProps>;
|
|
31
|
+
export interface ActionMenuItemProps extends Omit<MuiMenuItemProps, 'children' | 'onClick'> {
|
|
32
|
+
/** Icono opcional a la izquierda. */
|
|
33
|
+
icon?: ReactNode;
|
|
34
|
+
/** Texto (o nodo) del item. */
|
|
35
|
+
children: ReactNode;
|
|
36
|
+
/** Handler de click. El menú se cierra automáticamente después. */
|
|
37
|
+
onClick?: (event: MouseEvent<HTMLLIElement>) => void;
|
|
44
38
|
}
|
|
45
39
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
* ```tsx
|
|
50
|
-
* <ActionMenu
|
|
51
|
-
* items={[
|
|
52
|
-
* { label: 'Editar', icon: <EditIcon />, onClick: handleEdit },
|
|
53
|
-
* { label: 'Duplicar', icon: <CopyIcon />, onClick: handleDup },
|
|
54
|
-
* { label: 'Eliminar', icon: <TrashIcon />, onClick: handleDel, danger: true, dividerBefore: true },
|
|
55
|
-
* ]}
|
|
56
|
-
* />
|
|
57
|
-
* ```
|
|
40
|
+
* Item del `ActionMenu`. Se cierra automáticamente al hacer click.
|
|
41
|
+
* Acepta todos los props de `MenuItem` de MUI (disabled, selected, sx, …).
|
|
58
42
|
*/
|
|
59
|
-
export declare
|
|
43
|
+
export declare const ActionMenuItem: React.ForwardRefExoticComponent<Omit<ActionMenuItemProps, "ref"> & React.RefAttributes<HTMLLIElement>>;
|
|
60
44
|
export default ActionMenu;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
2
4
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
6
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
@@ -14,48 +16,59 @@ var __spreadValues = (a, b) => {
|
|
|
14
16
|
}
|
|
15
17
|
return a;
|
|
16
18
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
var __objRest = (source, exclude) => {
|
|
21
|
+
var target = {};
|
|
22
|
+
for (var prop in source)
|
|
23
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
24
|
+
target[prop] = source[prop];
|
|
25
|
+
if (source != null && __getOwnPropSymbols)
|
|
26
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
27
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
28
|
+
target[prop] = source[prop];
|
|
29
|
+
}
|
|
30
|
+
return target;
|
|
31
|
+
};
|
|
32
|
+
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
33
|
+
import React__default, { createContext, forwardRef, useContext, useState } from "react";
|
|
34
|
+
import { MenuItem, ListItemIcon, ListItemText, Tooltip, IconButton, Menu } from "@mui/material";
|
|
20
35
|
import MoreVertIcon from "@mui/icons-material/MoreVert";
|
|
21
|
-
|
|
22
|
-
|
|
36
|
+
const ActionMenuContext = createContext(null);
|
|
37
|
+
const ActionMenu = ({
|
|
38
|
+
children,
|
|
23
39
|
trigger,
|
|
24
|
-
triggerTooltip
|
|
40
|
+
triggerTooltip,
|
|
25
41
|
anchorOrigin = { vertical: "bottom", horizontal: "right" },
|
|
26
42
|
transformOrigin = { vertical: "top", horizontal: "right" },
|
|
27
43
|
menuSx,
|
|
28
|
-
disabled = false
|
|
29
|
-
|
|
30
|
-
}) {
|
|
44
|
+
disabled = false
|
|
45
|
+
}) => {
|
|
31
46
|
const [anchorEl, setAnchorEl] = useState(null);
|
|
32
47
|
const open = Boolean(anchorEl);
|
|
33
|
-
const
|
|
48
|
+
const handleClose = () => setAnchorEl(null);
|
|
49
|
+
const openMenu = (event) => {
|
|
34
50
|
if (disabled) return;
|
|
35
51
|
event.stopPropagation();
|
|
36
52
|
setAnchorEl(event.currentTarget);
|
|
37
53
|
};
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
var _a;
|
|
41
|
-
event.stopPropagation();
|
|
42
|
-
(_a = item.onClick) == null ? void 0 : _a.call(item, event);
|
|
43
|
-
handleClose();
|
|
44
|
-
};
|
|
45
|
-
const triggerElement = trigger ? React__default.isValidElement(trigger) ? React__default.cloneElement(trigger, {
|
|
46
|
-
onClick: handleOpen,
|
|
54
|
+
const triggerElement = trigger ? React__default.cloneElement(trigger, {
|
|
55
|
+
onClick: openMenu,
|
|
47
56
|
disabled
|
|
48
|
-
}) : /* @__PURE__ */ jsx(
|
|
57
|
+
}) : /* @__PURE__ */ jsx(Tooltip, { title: triggerTooltip, arrow: true, children: /* @__PURE__ */ jsx(
|
|
49
58
|
IconButton,
|
|
50
59
|
{
|
|
51
60
|
size: "small",
|
|
52
|
-
onClick:
|
|
61
|
+
onClick: openMenu,
|
|
53
62
|
disabled,
|
|
54
63
|
"aria-label": triggerTooltip,
|
|
55
64
|
children: /* @__PURE__ */ jsx(MoreVertIcon, { fontSize: "small" })
|
|
56
65
|
}
|
|
57
|
-
) })
|
|
58
|
-
|
|
66
|
+
) });
|
|
67
|
+
const paperSx = [
|
|
68
|
+
{ minWidth: 180 },
|
|
69
|
+
...Array.isArray(menuSx) ? menuSx : menuSx ? [menuSx] : []
|
|
70
|
+
];
|
|
71
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
59
72
|
triggerElement,
|
|
60
73
|
/* @__PURE__ */ jsx(
|
|
61
74
|
Menu,
|
|
@@ -65,43 +78,30 @@ function ActionMenu({
|
|
|
65
78
|
onClose: handleClose,
|
|
66
79
|
anchorOrigin,
|
|
67
80
|
transformOrigin,
|
|
68
|
-
slotProps: { paper: { sx:
|
|
69
|
-
children:
|
|
70
|
-
var _a;
|
|
71
|
-
const key = (_a = item.key) != null ? _a : `${String(item.label)}-${idx}`;
|
|
72
|
-
const node = /* @__PURE__ */ jsxs(
|
|
73
|
-
MenuItem,
|
|
74
|
-
{
|
|
75
|
-
disabled: item.disabled,
|
|
76
|
-
onClick: (event) => handleItemClick(event, item),
|
|
77
|
-
sx: (theme) => ({
|
|
78
|
-
color: item.danger ? theme.palette.error.main : "inherit",
|
|
79
|
-
"& .MuiListItemIcon-root": {
|
|
80
|
-
color: item.danger ? theme.palette.error.main : "inherit",
|
|
81
|
-
minWidth: 32
|
|
82
|
-
}
|
|
83
|
-
}),
|
|
84
|
-
children: [
|
|
85
|
-
item.icon && /* @__PURE__ */ jsx(ListItemIcon, { children: item.icon }),
|
|
86
|
-
/* @__PURE__ */ jsx(ListItemText, { primary: item.label })
|
|
87
|
-
]
|
|
88
|
-
},
|
|
89
|
-
key
|
|
90
|
-
);
|
|
91
|
-
if (item.dividerBefore && idx > 0) {
|
|
92
|
-
return /* @__PURE__ */ jsxs(React__default.Fragment, { children: [
|
|
93
|
-
/* @__PURE__ */ jsx(Divider, {}),
|
|
94
|
-
node
|
|
95
|
-
] }, `${key}-frag`);
|
|
96
|
-
}
|
|
97
|
-
return node;
|
|
98
|
-
})
|
|
81
|
+
slotProps: { paper: { sx: paperSx } },
|
|
82
|
+
children: /* @__PURE__ */ jsx(ActionMenuContext.Provider, { value: { close: handleClose }, children })
|
|
99
83
|
}
|
|
100
84
|
)
|
|
101
85
|
] });
|
|
102
|
-
}
|
|
86
|
+
};
|
|
87
|
+
const ActionMenuItem = forwardRef(
|
|
88
|
+
function ActionMenuItem2(_a, ref) {
|
|
89
|
+
var _b = _a, { icon, children, onClick } = _b, rest = __objRest(_b, ["icon", "children", "onClick"]);
|
|
90
|
+
const ctx = useContext(ActionMenuContext);
|
|
91
|
+
const handleClick = (event) => {
|
|
92
|
+
event.stopPropagation();
|
|
93
|
+
onClick == null ? void 0 : onClick(event);
|
|
94
|
+
ctx == null ? void 0 : ctx.close();
|
|
95
|
+
};
|
|
96
|
+
return /* @__PURE__ */ jsxs(MenuItem, __spreadProps(__spreadValues({ ref, onClick: handleClick }, rest), { children: [
|
|
97
|
+
icon && /* @__PURE__ */ jsx(ListItemIcon, { sx: { minWidth: 32 }, children: icon }),
|
|
98
|
+
/* @__PURE__ */ jsx(ListItemText, { primary: children })
|
|
99
|
+
] }));
|
|
100
|
+
}
|
|
101
|
+
);
|
|
103
102
|
export {
|
|
104
103
|
ActionMenu,
|
|
104
|
+
ActionMenuItem,
|
|
105
105
|
ActionMenu as default
|
|
106
106
|
};
|
|
107
107
|
//# sourceMappingURL=ActionMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionMenu.js","sources":["../../../src/components/ActionMenu/ActionMenu.tsx"],"sourcesContent":["import React, {
|
|
1
|
+
{"version":3,"file":"ActionMenu.js","sources":["../../../src/components/ActionMenu/ActionMenu.tsx"],"sourcesContent":["import React, {\n createContext,\n forwardRef,\n useContext,\n useState,\n type ReactElement,\n type ReactNode,\n type MouseEvent,\n} from 'react';\nimport {\n IconButton,\n Menu,\n MenuItem,\n ListItemIcon,\n ListItemText,\n Tooltip,\n type MenuItemProps as MuiMenuItemProps,\n} from '@mui/material';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\nexport interface ActionMenuProps {\n /** Items del menú. Normalmente `<ActionMenuItem>` o `<Divider />`. */\n children: ReactNode;\n /**\n * Elemento disparador — cualquier componente clickeable (Button, Chip, IconButton…).\n * El ActionMenu le inyecta `onClick` automáticamente. Si se omite, se usa un\n * IconButton de tres puntos por defecto.\n */\n trigger?: ReactElement;\n /** Texto de tooltip sobre el trigger default. Default: \"Acciones\". */\n triggerTooltip?: string;\n /** Anchor origin del menu. Default: { vertical: 'bottom', horizontal: 'right' }. */\n anchorOrigin?: {\n vertical: 'top' | 'center' | 'bottom';\n horizontal: 'left' | 'center' | 'right';\n };\n /** Transform origin del menu. Default: { vertical: 'top', horizontal: 'right' }. */\n transformOrigin?: {\n vertical: 'top' | 'center' | 'bottom';\n horizontal: 'left' | 'center' | 'right';\n };\n /** sx del Menu (Paper interno). */\n menuSx?: SxProps<Theme>;\n /** Deshabilita el trigger entero. */\n disabled?: boolean;\n}\n\ninterface ActionMenuContextValue {\n close: () => void;\n}\n\nconst ActionMenuContext = createContext<ActionMenuContextValue | null>(null);\n\nexport const ActionMenu: React.FC<ActionMenuProps> = ({\n children,\n trigger,\n triggerTooltip,\n anchorOrigin = { vertical: 'bottom', horizontal: 'right' },\n transformOrigin = { vertical: 'top', horizontal: 'right' },\n menuSx,\n disabled = false,\n}) => {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const open = Boolean(anchorEl);\n\n const handleClose = () => setAnchorEl(null);\n\n // Abre el menú anclándolo al elemento que recibió el click.\n const openMenu = (event: MouseEvent<HTMLElement>) => {\n if (disabled) return;\n event.stopPropagation();\n setAnchorEl(event.currentTarget);\n };\n\n // Si el consumer pasó un trigger (ej. <Button>), le inyectamos onClick.\n // Si no, usamos el IconButton de tres puntos por defecto.\n const triggerElement = trigger ? (\n React.cloneElement(trigger as ReactElement<any>, {\n onClick: openMenu,\n disabled,\n })\n ) : (\n <Tooltip title={triggerTooltip} arrow>\n <IconButton\n size=\"small\"\n onClick={openMenu}\n disabled={disabled}\n aria-label={triggerTooltip}\n >\n <MoreVertIcon fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n );\n\n const paperSx = [\n { minWidth: 180 },\n ...(Array.isArray(menuSx) ? menuSx : menuSx ? [menuSx] : []),\n ] as SxProps<Theme>;\n\n return (\n <>\n {triggerElement}\n <Menu\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n slotProps={{ paper: { sx: paperSx } }}\n >\n <ActionMenuContext.Provider value={{ close: handleClose }}>\n {children}\n </ActionMenuContext.Provider>\n </Menu>\n </>\n );\n};\n\nexport interface ActionMenuItemProps\n extends Omit<MuiMenuItemProps, 'children' | 'onClick'> {\n /** Icono opcional a la izquierda. */\n icon?: ReactNode;\n /** Texto (o nodo) del item. */\n children: ReactNode;\n /** Handler de click. El menú se cierra automáticamente después. */\n onClick?: (event: MouseEvent<HTMLLIElement>) => void;\n}\n\n/**\n * Item del `ActionMenu`. Se cierra automáticamente al hacer click.\n * Acepta todos los props de `MenuItem` de MUI (disabled, selected, sx, …).\n */\nexport const ActionMenuItem = forwardRef<HTMLLIElement, ActionMenuItemProps>(\n function ActionMenuItem({ icon, children, onClick, ...rest }, ref) {\n const ctx = useContext(ActionMenuContext);\n\n const handleClick = (event: MouseEvent<HTMLLIElement>) => {\n event.stopPropagation();\n onClick?.(event);\n ctx?.close();\n };\n\n return (\n <MenuItem ref={ref} onClick={handleClick} {...rest}>\n {icon && <ListItemIcon sx={{ minWidth: 32 }}>{icon}</ListItemIcon>}\n <ListItemText primary={children} />\n </MenuItem>\n );\n },\n);\n\nexport default ActionMenu;\n"],"names":["React","ActionMenuItem"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,MAAM,oBAAoB,cAA6C,IAAI;AAEpE,MAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe,EAAE,UAAU,UAAU,YAAY,QAAA;AAAA,EACjD,kBAAkB,EAAE,UAAU,OAAO,YAAY,QAAA;AAAA,EACjD;AAAA,EACA,WAAW;AACb,MAAM;AACJ,QAAM,CAAC,UAAU,WAAW,IAAI,SAA6B,IAAI;AACjE,QAAM,OAAO,QAAQ,QAAQ;AAE7B,QAAM,cAAc,MAAM,YAAY,IAAI;AAG1C,QAAM,WAAW,CAAC,UAAmC;AACnD,QAAI,SAAU;AACd,UAAM,gBAAA;AACN,gBAAY,MAAM,aAAa;AAAA,EACjC;AAIA,QAAM,iBAAiB,UACrBA,eAAM,aAAa,SAA8B;AAAA,IAC/C,SAAS;AAAA,IACT;AAAA,EAAA,CACD,IAED,oBAAC,WAAQ,OAAO,gBAAgB,OAAK,MACnC,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAS;AAAA,MACT;AAAA,MACA,cAAY;AAAA,MAEZ,UAAA,oBAAC,cAAA,EAAa,UAAS,QAAA,CAAQ;AAAA,IAAA;AAAA,EAAA,GAEnC;AAGF,QAAM,UAAU;AAAA,IACd,EAAE,UAAU,IAAA;AAAA,IACZ,GAAI,MAAM,QAAQ,MAAM,IAAI,SAAS,SAAS,CAAC,MAAM,IAAI,CAAA;AAAA,EAAC;AAG5D,SACE,qBAAA,UAAA,EACG,UAAA;AAAA,IAAA;AAAA,IACD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA,WAAW,EAAE,OAAO,EAAE,IAAI,UAAQ;AAAA,QAElC,UAAA,oBAAC,kBAAkB,UAAlB,EAA2B,OAAO,EAAE,OAAO,YAAA,GACzC,SAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;AAgBO,MAAM,iBAAiB;AAAA,EAC5B,SAASC,gBAAe,IAAsC,KAAK;AAA3C,iBAAE,QAAM,UAAU,YAAlB,IAA8B,iBAA9B,IAA8B,CAA5B,QAAM,YAAU;AACxC,UAAM,MAAM,WAAW,iBAAiB;AAExC,UAAM,cAAc,CAAC,UAAqC;AACxD,YAAM,gBAAA;AACN,yCAAU;AACV,iCAAK;AAAA,IACP;AAEA,gCACG,UAAA,+BAAS,KAAU,SAAS,eAAiB,OAA7C,EACE,UAAA;AAAA,MAAA,4BAAS,cAAA,EAAa,IAAI,EAAE,UAAU,GAAA,GAAO,UAAA,MAAK;AAAA,MACnD,oBAAC,cAAA,EAAa,SAAS,SAAA,CAAU;AAAA,IAAA,IACnC;AAAA,EAEJ;AACF;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ActionMenu, default } from './ActionMenu';
|
|
2
|
-
export type { ActionMenuProps,
|
|
1
|
+
export { ActionMenu, ActionMenuItem, default } from './ActionMenu';
|
|
2
|
+
export type { ActionMenuProps, ActionMenuItemProps } from './ActionMenu';
|
|
@@ -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-CT3kU-K2.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
|