@soyfri/shared-library 2.0.0-beta.9 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/Button-C17mExpd.cjs.map +1 -1
  2. package/Button-UkkP-bNw.js.map +1 -1
  3. package/README.md +182 -150
  4. package/components/ActionMenu/ActionMenu.cjs +52 -52
  5. package/components/ActionMenu/ActionMenu.cjs.map +1 -1
  6. package/components/ActionMenu/ActionMenu.d.ts +20 -36
  7. package/components/ActionMenu/ActionMenu.js +55 -55
  8. package/components/ActionMenu/ActionMenu.js.map +1 -1
  9. package/components/ActionMenu/index.d.ts +2 -2
  10. package/components/AppBar/AppBar.cjs +2 -219
  11. package/components/AppBar/AppBar.cjs.map +1 -1
  12. package/components/AppBar/AppBar.d.ts +6 -6
  13. package/components/AppBar/AppBar.js +5 -222
  14. package/components/AppBar/AppBar.js.map +1 -1
  15. package/components/AppBar/index.d.ts +0 -6
  16. package/components/Autocomplete/Autocomplete.cjs +93 -94
  17. package/components/Autocomplete/Autocomplete.cjs.map +1 -1
  18. package/components/Autocomplete/Autocomplete.d.ts +29 -26
  19. package/components/Autocomplete/Autocomplete.definitions.d.ts +2 -1
  20. package/components/Autocomplete/Autocomplete.helpers.d.ts +12 -8
  21. package/components/Autocomplete/Autocomplete.js +94 -95
  22. package/components/Autocomplete/Autocomplete.js.map +1 -1
  23. package/components/Autocomplete/_parts/AutocompleteChips.d.ts +7 -6
  24. package/components/Autocomplete/_parts/AutocompleteOption.d.ts +10 -13
  25. package/components/Autocomplete/index.d.ts +1 -1
  26. package/components/Avatar/Avatar.cjs +17 -18
  27. package/components/Avatar/Avatar.cjs.map +1 -1
  28. package/components/Avatar/Avatar.js +17 -18
  29. package/components/Avatar/Avatar.js.map +1 -1
  30. package/components/Avatar/index.d.ts +1 -0
  31. package/components/Button/Button.d.ts +5 -5
  32. package/components/Button/index.d.ts +1 -0
  33. package/components/Card/Card.cjs +3 -92
  34. package/components/Card/Card.cjs.map +1 -1
  35. package/components/Card/Card.d.ts +3 -50
  36. package/components/Card/Card.js +5 -94
  37. package/components/Card/Card.js.map +1 -1
  38. package/components/Card/Card.sx.d.ts +3 -6
  39. package/components/Card/index.d.ts +1 -1
  40. package/components/Checkbox/Checkbox.cjs +189 -0
  41. package/components/Checkbox/Checkbox.cjs.map +1 -0
  42. package/components/Checkbox/Checkbox.d.ts +55 -0
  43. package/components/Checkbox/Checkbox.js +189 -0
  44. package/components/Checkbox/Checkbox.js.map +1 -0
  45. package/components/Checkbox/Checkbox.sx.d.ts +13 -0
  46. package/components/Checkbox/index.d.ts +2 -0
  47. package/components/Checkbox.d.ts +6 -0
  48. package/components/Chip/Chip.cjs +2 -1
  49. package/components/Chip/Chip.cjs.map +1 -1
  50. package/components/Chip/Chip.js +2 -1
  51. package/components/Chip/Chip.js.map +1 -1
  52. package/components/Chip/index.d.ts +2 -1
  53. package/components/Chip.d.ts +4 -0
  54. package/components/DatePicker/DatePicker.cjs +40 -63
  55. package/components/DatePicker/DatePicker.cjs.map +1 -1
  56. package/components/DatePicker/DatePicker.d.ts +1 -13
  57. package/components/DatePicker/DatePicker.js +36 -59
  58. package/components/DatePicker/DatePicker.js.map +1 -1
  59. package/components/DatePicker/index.d.ts +1 -1
  60. package/components/DateTimePicker/DateTimePicker.cjs +58 -82
  61. package/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
  62. package/components/DateTimePicker/DateTimePicker.d.ts +9 -17
  63. package/components/DateTimePicker/DateTimePicker.definitions.d.ts +2 -0
  64. package/components/DateTimePicker/DateTimePicker.helpers.d.ts +4 -2
  65. package/components/DateTimePicker/DateTimePicker.js +54 -78
  66. package/components/DateTimePicker/DateTimePicker.js.map +1 -1
  67. package/components/DateTimePicker/index.d.ts +1 -1
  68. package/components/Drawer/Drawer.cjs +12 -6
  69. package/components/Drawer/Drawer.cjs.map +1 -1
  70. package/components/Drawer/Drawer.d.ts +3 -1
  71. package/components/Drawer/Drawer.js +13 -7
  72. package/components/Drawer/Drawer.js.map +1 -1
  73. package/components/Drawer/DrawerItem.d.ts +6 -1
  74. package/components/Gallery/Gallery.cjs +154 -79
  75. package/components/Gallery/Gallery.cjs.map +1 -1
  76. package/components/Gallery/Gallery.d.ts +25 -9
  77. package/components/Gallery/Gallery.js +154 -79
  78. package/components/Gallery/Gallery.js.map +1 -1
  79. package/components/Gallery/GalleryLightbox.d.ts +6 -10
  80. package/components/Gallery/GalleryMain.d.ts +3 -7
  81. package/components/Gallery/GalleryThumbnails.d.ts +7 -11
  82. package/components/Gallery/index.d.ts +2 -1
  83. package/components/Gallery.d.ts +4 -0
  84. package/components/Icon/Icon.cjs +6 -8
  85. package/components/Icon/Icon.cjs.map +1 -1
  86. package/components/Icon/Icon.d.ts +11 -17
  87. package/components/Icon/Icon.js +6 -8
  88. package/components/Icon/Icon.js.map +1 -1
  89. package/components/Icon/index.d.ts +2 -1
  90. package/components/Icon.d.ts +4 -0
  91. package/components/Input/Input.cjs +26 -13
  92. package/components/Input/Input.cjs.map +1 -1
  93. package/components/Input/Input.d.ts +9 -2
  94. package/components/Input/Input.helpers.d.ts +3 -3
  95. package/components/Input/Input.js +23 -10
  96. package/components/Input/Input.js.map +1 -1
  97. package/components/Input/index.d.ts +1 -1
  98. package/components/InputGroup/InputGroup.cjs +23 -22
  99. package/components/InputGroup/InputGroup.cjs.map +1 -1
  100. package/components/InputGroup/InputGroup.d.ts +4 -4
  101. package/components/InputGroup/InputGroup.js +22 -21
  102. package/components/InputGroup/InputGroup.js.map +1 -1
  103. package/components/InputGroup/index.d.ts +2 -1
  104. package/components/InputGroup.d.ts +4 -0
  105. package/components/Modal/Modal.cjs +127 -98
  106. package/components/Modal/Modal.cjs.map +1 -1
  107. package/components/Modal/Modal.d.ts +20 -5
  108. package/components/Modal/Modal.js +130 -101
  109. package/components/Modal/Modal.js.map +1 -1
  110. package/components/Modal/ModalBody.d.ts +6 -1
  111. package/components/Modal/ModalFooter.d.ts +4 -4
  112. package/components/Modal/ModalHeader.d.ts +6 -1
  113. package/components/Modal/index.d.ts +4 -2
  114. package/components/Modal.d.ts +4 -0
  115. package/components/RadioGroup/RadioGroup.cjs +9 -7
  116. package/components/RadioGroup/RadioGroup.cjs.map +1 -1
  117. package/components/RadioGroup/RadioGroup.d.ts +9 -3
  118. package/components/RadioGroup/RadioGroup.js +9 -7
  119. package/components/RadioGroup/RadioGroup.js.map +1 -1
  120. package/components/RadioGroup/index.d.ts +1 -1
  121. package/components/Select/Select.cjs +129 -264
  122. package/components/Select/Select.cjs.map +1 -1
  123. package/components/Select/Select.d.ts +35 -20
  124. package/components/Select/Select.helpers.d.ts +6 -19
  125. package/components/Select/Select.js +134 -269
  126. package/components/Select/Select.js.map +1 -1
  127. package/components/Select/index.d.ts +1 -1
  128. package/components/Stat/Stat.cjs +2 -2
  129. package/components/Stat/Stat.cjs.map +1 -1
  130. package/components/Stat/Stat.js +2 -2
  131. package/components/Stat/Stat.js.map +1 -1
  132. package/components/Stat/index.d.ts +2 -1
  133. package/components/Stat.d.ts +4 -0
  134. package/components/StatusMessage/StatusMessage.cjs +84 -55
  135. package/components/StatusMessage/StatusMessage.cjs.map +1 -1
  136. package/components/StatusMessage/StatusMessage.d.ts +20 -36
  137. package/components/StatusMessage/StatusMessage.js +86 -57
  138. package/components/StatusMessage/StatusMessage.js.map +1 -1
  139. package/components/StatusMessage/StatusMessageContext.d.ts +16 -0
  140. package/components/StatusMessage/index.d.ts +4 -1
  141. package/components/StatusMessage.d.ts +4 -0
  142. package/components/Stepper/Stepper.cjs +289 -55
  143. package/components/Stepper/Stepper.cjs.map +1 -1
  144. package/components/Stepper/Stepper.d.ts +9 -20
  145. package/components/Stepper/Stepper.js +291 -57
  146. package/components/Stepper/Stepper.js.map +1 -1
  147. package/{hooks/Wizard/WizardContext.d.ts → components/Stepper/StepperContext.d.ts} +29 -23
  148. package/components/Stepper/_hooks/useHorizontalScroll.d.ts +19 -0
  149. package/components/Stepper/_parts/StepperScrollArrow.d.ts +19 -0
  150. package/components/Stepper/index.d.ts +6 -2
  151. package/components/Stepper.d.ts +4 -0
  152. package/components/Switch/Switch.cjs +5 -2
  153. package/components/Switch/Switch.cjs.map +1 -1
  154. package/components/Switch/Switch.d.ts +7 -2
  155. package/components/Switch/Switch.js +5 -2
  156. package/components/Switch/Switch.js.map +1 -1
  157. package/components/Tabs/Tabs.cjs +45 -29
  158. package/components/Tabs/Tabs.cjs.map +1 -1
  159. package/components/Tabs/Tabs.d.ts +21 -16
  160. package/components/Tabs/Tabs.js +46 -30
  161. package/components/Tabs/Tabs.js.map +1 -1
  162. package/components/Tabs/index.d.ts +4 -2
  163. package/components/Tabs.d.ts +4 -0
  164. package/components/Timeline/Timeline.cjs +3 -2
  165. package/components/Timeline/Timeline.cjs.map +1 -1
  166. package/components/Timeline/Timeline.d.ts +4 -8
  167. package/components/Timeline/Timeline.js +3 -2
  168. package/components/Timeline/Timeline.js.map +1 -1
  169. package/components/Timeline/index.d.ts +4 -2
  170. package/components/Timeline.d.ts +4 -0
  171. package/components/_shared/mergeSx.d.ts +7 -0
  172. package/{formField.sx-DfVbMe0V.js → formField.sx-8_QRnKxv.js} +2 -11
  173. package/formField.sx-8_QRnKxv.js.map +1 -0
  174. package/{formField.sx-CQ1mbk9M.cjs → formField.sx-BAX7KwMR.cjs} +10 -19
  175. package/formField.sx-BAX7KwMR.cjs.map +1 -0
  176. package/index.cjs +31 -2
  177. package/index.cjs.map +1 -1
  178. package/index.d.ts +1 -0
  179. package/index.js +16 -2
  180. package/index.js.map +1 -1
  181. package/mergeSx-BXoNZjB_.js +10 -0
  182. package/mergeSx-BXoNZjB_.js.map +1 -0
  183. package/mergeSx-Dbccoo_H.cjs +9 -0
  184. package/mergeSx-Dbccoo_H.cjs.map +1 -0
  185. package/mui.d.ts +3 -2
  186. package/package.json +6 -16
  187. package/theme/componentStyles.d.ts +1 -1
  188. package/tokens-BRrcP_p_.js +21 -0
  189. package/tokens-BRrcP_p_.js.map +1 -0
  190. package/tokens-jaWWNk39.cjs +20 -0
  191. package/tokens-jaWWNk39.cjs.map +1 -0
  192. package/utils/index.d.ts +2 -0
  193. package/{components/ScrollTopButton → utils}/scrollToTop.d.ts +6 -7
  194. package/components/AppBar/AppBarBrand.d.ts +0 -31
  195. package/components/AppBar/AppBarUserMenu.d.ts +0 -65
  196. package/components/Autocomplete/Autocomplete.types.d.ts +0 -1
  197. package/components/DatePicker/DatePicker.types.d.ts +0 -1
  198. package/components/DateTimePicker/DateTimePicker.types.d.ts +0 -1
  199. package/components/Input/Input.types.d.ts +0 -1
  200. package/components/PageLoader/PageLoader.cjs +0 -61
  201. package/components/PageLoader/PageLoader.cjs.map +0 -1
  202. package/components/PageLoader/PageLoader.d.ts +0 -38
  203. package/components/PageLoader/PageLoader.js +0 -61
  204. package/components/PageLoader/PageLoader.js.map +0 -1
  205. package/components/PageLoader/index.d.ts +0 -2
  206. package/components/PageLoader.d.ts +0 -6
  207. package/components/RadioGroup/RadioGroup.types.d.ts +0 -1
  208. package/components/ScrollTopButton/ScrollTopButton.cjs +0 -79
  209. package/components/ScrollTopButton/ScrollTopButton.cjs.map +0 -1
  210. package/components/ScrollTopButton/ScrollTopButton.d.ts +0 -48
  211. package/components/ScrollTopButton/ScrollTopButton.js +0 -79
  212. package/components/ScrollTopButton/ScrollTopButton.js.map +0 -1
  213. package/components/ScrollTopButton/index.d.ts +0 -4
  214. package/components/ScrollTopButton.d.ts +0 -6
  215. package/components/Select/Select.definitions.d.ts +0 -17
  216. package/components/Select/Select.types.d.ts +0 -1
  217. package/components/Select/_parts/SelectSearchHeader.d.ts +0 -15
  218. package/components/Select/_parts/SelectValue.d.ts +0 -22
  219. package/formField.sx-CQ1mbk9M.cjs.map +0 -1
  220. package/formField.sx-DfVbMe0V.js.map +0 -1
  221. package/hooks/Wizard/Wizard.cjs +0 -7
  222. package/hooks/Wizard/Wizard.cjs.map +0 -1
  223. package/hooks/Wizard/Wizard.js +0 -7
  224. package/hooks/Wizard/Wizard.js.map +0 -1
  225. package/hooks/Wizard/index.d.ts +0 -3
  226. package/hooks/Wizard/useWizard.d.ts +0 -9
  227. package/hooks/Wizard.d.ts +0 -2
  228. package/useWizard-CWdIxZzX.cjs +0 -94
  229. package/useWizard-CWdIxZzX.cjs.map +0 -1
  230. package/useWizard-CWq--C3o.js +0 -95
  231. package/useWizard-CWq--C3o.js.map +0 -1
  232. /package/{styles.css → index.css} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ActionMenu.cjs","sources":["../../../src/components/ActionMenu/ActionMenu.tsx"],"sourcesContent":["import React, { useState, type ReactNode, type MouseEvent } from 'react';\nimport {\n IconButton,\n Menu,\n MenuItem,\n ListItemIcon,\n ListItemText,\n Divider,\n Tooltip,\n} from '@mui/material';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\nexport interface ActionMenuItem {\n /** Key única para React. 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. Recibe el evento del MenuItem. */\n onClick?: (event: MouseEvent<HTMLLIElement>) => void;\n /** Deshabilita el item. */\n disabled?: boolean;\n /** Marca el item como destructivo (pinta color error). */\n danger?: boolean;\n /** Inserta un `<Divider />` ANTES de este item. */\n dividerBefore?: boolean;\n}\n\nexport interface ActionMenuProps {\n /** Lista de items del menú. */\n items: ActionMenuItem[];\n /**\n * Elemento trigger. Si no se provee, se renderiza un IconButton con icono\n * de tres puntos (MoreVertIcon) — el patrón típico de celda de tabla.\n */\n trigger?: ReactNode;\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 className?: string;\n}\n\n/**\n * Menú de acciones compacto, pensado para celdas de tabla y cabeceras.\n * Reemplaza los patrones `<Dropdown>` de react-bootstrap.\n *\n * ```tsx\n * <ActionMenu\n * items={[\n * { label: 'Editar', icon: <EditIcon />, onClick: handleEdit },\n * { label: 'Duplicar', icon: <CopyIcon />, onClick: handleDup },\n * { label: 'Eliminar', icon: <TrashIcon />, onClick: handleDel, danger: true, dividerBefore: true },\n * ]}\n * />\n * ```\n */\nexport function ActionMenu({\n items,\n trigger,\n triggerTooltip = 'Acciones',\n anchorOrigin = { vertical: 'bottom', horizontal: 'right' },\n transformOrigin = { vertical: 'top', horizontal: 'right' },\n menuSx,\n disabled = false,\n className,\n}: ActionMenuProps) {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const open = Boolean(anchorEl);\n\n const handleOpen = (event: MouseEvent<HTMLElement>) => {\n if (disabled) return;\n event.stopPropagation();\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => setAnchorEl(null);\n\n const handleItemClick = (\n event: MouseEvent<HTMLLIElement>,\n item: ActionMenuItem,\n ) => {\n event.stopPropagation();\n item.onClick?.(event);\n handleClose();\n };\n\n const triggerElement = trigger ? (\n React.isValidElement(trigger) ? (\n React.cloneElement(trigger as React.ReactElement<any>, {\n onClick: handleOpen,\n disabled,\n })\n ) : (\n <span onClick={handleOpen}>{trigger}</span>\n )\n ) : (\n <Tooltip title={triggerTooltip} arrow>\n <span>\n <IconButton\n size=\"small\"\n onClick={handleOpen}\n disabled={disabled}\n aria-label={triggerTooltip}\n >\n <MoreVertIcon fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n );\n\n return (\n <span className={className}>\n {triggerElement}\n <Menu\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n slotProps={{ paper: { sx: { minWidth: 180, ...(menuSx as any) } } }}\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 </span>\n );\n}\n\nexport default ActionMenu;\n"],"names":["useState","jsx","Tooltip","IconButton","jsxs","Menu","MenuItem","ListItemIcon","ListItemText","Divider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuEO,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB,eAAe,EAAE,UAAU,UAAU,YAAY,QAAA;AAAA,EACjD,kBAAkB,EAAE,UAAU,OAAO,YAAY,QAAA;AAAA,EACjD;AAAA,EACA,WAAW;AAAA,EACX;AACF,GAAoB;AAClB,QAAM,CAAC,UAAU,WAAW,IAAIA,MAAAA,SAA6B,IAAI;AACjE,QAAM,OAAO,QAAQ,QAAQ;AAE7B,QAAM,aAAa,CAAC,UAAmC;AACrD,QAAI,SAAU;AACd,UAAM,gBAAA;AACN,gBAAY,MAAM,aAAa;AAAA,EACjC;AAEA,QAAM,cAAc,MAAM,YAAY,IAAI;AAE1C,QAAM,kBAAkB,CACtB,OACA,SACG;;AACH,UAAM,gBAAA;AACN,eAAK,YAAL,8BAAe;AACf,gBAAA;AAAA,EACF;AAEA,QAAM,iBAAiB,UACrB,MAAM,eAAe,OAAO,IAC1B,MAAM,aAAa,SAAoC;AAAA,IACrD,SAAS;AAAA,IACT;AAAA,EAAA,CACD,IAEDC,2BAAAA,IAAC,QAAA,EAAK,SAAS,YAAa,UAAA,QAAA,CAAQ,IAGtCA,2BAAAA,IAACC,SAAAA,WAAQ,OAAO,gBAAgB,OAAK,MACnC,yCAAC,QAAA,EACC,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,EAAA,CACF;AAGF,SACEG,gCAAC,UAAK,WACH,UAAA;AAAA,IAAA;AAAA,IACDH,2BAAAA;AAAAA,MAACI,SAAAA;AAAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA,WAAW,EAAE,OAAO,EAAE,IAAI,iBAAE,UAAU,OAAS,UAAiB;AAAA,QAE/D,UAAA,MAAM,IAAI,CAAC,MAAM,QAAQ;;AACxB,gBAAM,OAAM,UAAK,QAAL,YAAY,GAAG,OAAO,KAAK,KAAK,CAAC,IAAI,GAAG;AACpD,gBAAM,OACJD,2BAAAA;AAAAA,YAACE,SAAAA;AAAAA,YAAA;AAAA,cAEC,UAAU,KAAK;AAAA,cACf,SAAS,CAAC,UAAU,gBAAgB,OAAO,IAAI;AAAA,cAC/C,IAAI,CAAC,WAAW;AAAA,gBACd,OAAO,KAAK,SAAS,MAAM,QAAQ,MAAM,OAAO;AAAA,gBAChD,2BAA2B;AAAA,kBACzB,OAAO,KAAK,SACR,MAAM,QAAQ,MAAM,OACpB;AAAA,kBACJ,UAAU;AAAA,gBAAA;AAAA,cACZ;AAAA,cAGD,UAAA;AAAA,gBAAA,KAAK,QAAQL,+BAACM,SAAAA,cAAA,EAAc,UAAA,KAAK,MAAK;AAAA,gBACvCN,2BAAAA,IAACO,SAAAA,cAAA,EAAa,SAAS,KAAK,MAAA,CAAO;AAAA,cAAA;AAAA,YAAA;AAAA,YAd9B;AAAA,UAAA;AAkBT,cAAI,KAAK,iBAAiB,MAAM,GAAG;AACjC,mBACEJ,gCAAC,MAAM,UAAN,EACC,UAAA;AAAA,cAAAH,2BAAAA,IAACQ,SAAAA,SAAA,EAAQ;AAAA,cACR;AAAA,YAAA,EAAA,GAFkB,GAAG,GAAG,OAG3B;AAAA,UAEJ;AACA,iBAAO;AAAA,QACT,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GACF;AAEJ;;;"}
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
- /** Lista de items del menú. */
21
- items: ActionMenuItem[];
5
+ /** Items del menú. Normalmente `<ActionMenuItem>` o `<Divider />`. */
6
+ children: ReactNode;
22
7
  /**
23
- * Elemento trigger. Si no se provee, se renderiza un IconButton con icono
24
- * de tres puntos (MoreVertIcon) — el patrón típico de celda de tabla.
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?: ReactNode;
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
- className?: string;
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
- * Menú de acciones compacto, pensado para celdas de tabla y cabeceras.
47
- * Reemplaza los patrones `<Dropdown>` de react-bootstrap.
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 function ActionMenu({ items, trigger, triggerTooltip, anchorOrigin, transformOrigin, menuSx, disabled, className, }: ActionMenuProps): import("react/jsx-runtime").JSX.Element;
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
- import { jsx, jsxs } from "react/jsx-runtime";
18
- import React__default, { useState } from "react";
19
- import { Tooltip, IconButton, Menu, MenuItem, ListItemIcon, ListItemText, Divider } from "@mui/material";
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
- function ActionMenu({
22
- items,
36
+ const ActionMenuContext = createContext(null);
37
+ const ActionMenu = ({
38
+ children,
23
39
  trigger,
24
- triggerTooltip = "Acciones",
40
+ triggerTooltip,
25
41
  anchorOrigin = { vertical: "bottom", horizontal: "right" },
26
42
  transformOrigin = { vertical: "top", horizontal: "right" },
27
43
  menuSx,
28
- disabled = false,
29
- className
30
- }) {
44
+ disabled = false
45
+ }) => {
31
46
  const [anchorEl, setAnchorEl] = useState(null);
32
47
  const open = Boolean(anchorEl);
33
- const handleOpen = (event) => {
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 handleClose = () => setAnchorEl(null);
39
- const handleItemClick = (event, item) => {
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("span", { onClick: handleOpen, children: trigger }) : /* @__PURE__ */ jsx(Tooltip, { title: triggerTooltip, arrow: true, children: /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(
57
+ }) : /* @__PURE__ */ jsx(Tooltip, { title: triggerTooltip, arrow: true, children: /* @__PURE__ */ jsx(
49
58
  IconButton,
50
59
  {
51
60
  size: "small",
52
- onClick: handleOpen,
61
+ onClick: openMenu,
53
62
  disabled,
54
63
  "aria-label": triggerTooltip,
55
64
  children: /* @__PURE__ */ jsx(MoreVertIcon, { fontSize: "small" })
56
65
  }
57
- ) }) });
58
- return /* @__PURE__ */ jsxs("span", { className, children: [
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: __spreadValues({ minWidth: 180 }, menuSx) } },
69
- children: items.map((item, idx) => {
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, { useState, type ReactNode, type MouseEvent } from 'react';\nimport {\n IconButton,\n Menu,\n MenuItem,\n ListItemIcon,\n ListItemText,\n Divider,\n Tooltip,\n} from '@mui/material';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\nexport interface ActionMenuItem {\n /** Key única para React. 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. Recibe el evento del MenuItem. */\n onClick?: (event: MouseEvent<HTMLLIElement>) => void;\n /** Deshabilita el item. */\n disabled?: boolean;\n /** Marca el item como destructivo (pinta color error). */\n danger?: boolean;\n /** Inserta un `<Divider />` ANTES de este item. */\n dividerBefore?: boolean;\n}\n\nexport interface ActionMenuProps {\n /** Lista de items del menú. */\n items: ActionMenuItem[];\n /**\n * Elemento trigger. Si no se provee, se renderiza un IconButton con icono\n * de tres puntos (MoreVertIcon) — el patrón típico de celda de tabla.\n */\n trigger?: ReactNode;\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 className?: string;\n}\n\n/**\n * Menú de acciones compacto, pensado para celdas de tabla y cabeceras.\n * Reemplaza los patrones `<Dropdown>` de react-bootstrap.\n *\n * ```tsx\n * <ActionMenu\n * items={[\n * { label: 'Editar', icon: <EditIcon />, onClick: handleEdit },\n * { label: 'Duplicar', icon: <CopyIcon />, onClick: handleDup },\n * { label: 'Eliminar', icon: <TrashIcon />, onClick: handleDel, danger: true, dividerBefore: true },\n * ]}\n * />\n * ```\n */\nexport function ActionMenu({\n items,\n trigger,\n triggerTooltip = 'Acciones',\n anchorOrigin = { vertical: 'bottom', horizontal: 'right' },\n transformOrigin = { vertical: 'top', horizontal: 'right' },\n menuSx,\n disabled = false,\n className,\n}: ActionMenuProps) {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const open = Boolean(anchorEl);\n\n const handleOpen = (event: MouseEvent<HTMLElement>) => {\n if (disabled) return;\n event.stopPropagation();\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => setAnchorEl(null);\n\n const handleItemClick = (\n event: MouseEvent<HTMLLIElement>,\n item: ActionMenuItem,\n ) => {\n event.stopPropagation();\n item.onClick?.(event);\n handleClose();\n };\n\n const triggerElement = trigger ? (\n React.isValidElement(trigger) ? (\n React.cloneElement(trigger as React.ReactElement<any>, {\n onClick: handleOpen,\n disabled,\n })\n ) : (\n <span onClick={handleOpen}>{trigger}</span>\n )\n ) : (\n <Tooltip title={triggerTooltip} arrow>\n <span>\n <IconButton\n size=\"small\"\n onClick={handleOpen}\n disabled={disabled}\n aria-label={triggerTooltip}\n >\n <MoreVertIcon fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n );\n\n return (\n <span className={className}>\n {triggerElement}\n <Menu\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n slotProps={{ paper: { sx: { minWidth: 180, ...(menuSx as any) } } }}\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 </span>\n );\n}\n\nexport default ActionMenu;\n"],"names":["React"],"mappings":";;;;;;;;;;;;;;;;;;;;AAuEO,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB,eAAe,EAAE,UAAU,UAAU,YAAY,QAAA;AAAA,EACjD,kBAAkB,EAAE,UAAU,OAAO,YAAY,QAAA;AAAA,EACjD;AAAA,EACA,WAAW;AAAA,EACX;AACF,GAAoB;AAClB,QAAM,CAAC,UAAU,WAAW,IAAI,SAA6B,IAAI;AACjE,QAAM,OAAO,QAAQ,QAAQ;AAE7B,QAAM,aAAa,CAAC,UAAmC;AACrD,QAAI,SAAU;AACd,UAAM,gBAAA;AACN,gBAAY,MAAM,aAAa;AAAA,EACjC;AAEA,QAAM,cAAc,MAAM,YAAY,IAAI;AAE1C,QAAM,kBAAkB,CACtB,OACA,SACG;;AACH,UAAM,gBAAA;AACN,eAAK,YAAL,8BAAe;AACf,gBAAA;AAAA,EACF;AAEA,QAAM,iBAAiB,UACrBA,eAAM,eAAe,OAAO,IAC1BA,eAAM,aAAa,SAAoC;AAAA,IACrD,SAAS;AAAA,IACT;AAAA,EAAA,CACD,IAED,oBAAC,QAAA,EAAK,SAAS,YAAa,UAAA,QAAA,CAAQ,IAGtC,oBAAC,WAAQ,OAAO,gBAAgB,OAAK,MACnC,8BAAC,QAAA,EACC,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,EAAA,CACF;AAGF,SACE,qBAAC,UAAK,WACH,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,iBAAE,UAAU,OAAS,UAAiB;AAAA,QAE/D,UAAA,MAAM,IAAI,CAAC,MAAM,QAAQ;;AACxB,gBAAM,OAAM,UAAK,QAAL,YAAY,GAAG,OAAO,KAAK,KAAK,CAAC,IAAI,GAAG;AACpD,gBAAM,OACJ;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,UAAU,KAAK;AAAA,cACf,SAAS,CAAC,UAAU,gBAAgB,OAAO,IAAI;AAAA,cAC/C,IAAI,CAAC,WAAW;AAAA,gBACd,OAAO,KAAK,SAAS,MAAM,QAAQ,MAAM,OAAO;AAAA,gBAChD,2BAA2B;AAAA,kBACzB,OAAO,KAAK,SACR,MAAM,QAAQ,MAAM,OACpB;AAAA,kBACJ,UAAU;AAAA,gBAAA;AAAA,cACZ;AAAA,cAGD,UAAA;AAAA,gBAAA,KAAK,QAAQ,oBAAC,cAAA,EAAc,UAAA,KAAK,MAAK;AAAA,gBACvC,oBAAC,cAAA,EAAa,SAAS,KAAK,MAAA,CAAO;AAAA,cAAA;AAAA,YAAA;AAAA,YAd9B;AAAA,UAAA;AAkBT,cAAI,KAAK,iBAAiB,MAAM,GAAG;AACjC,mBACE,qBAACA,eAAM,UAAN,EACC,UAAA;AAAA,cAAA,oBAAC,SAAA,EAAQ;AAAA,cACR;AAAA,YAAA,EAAA,GAFkB,GAAG,GAAG,OAG3B;AAAA,UAEJ;AACA,iBAAO;AAAA,QACT,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GACF;AAEJ;"}
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, ActionMenuItem } from './ActionMenu';
1
+ export { ActionMenu, ActionMenuItem, default } from './ActionMenu';
2
+ export type { ActionMenuProps, ActionMenuItemProps } from './ActionMenu';
@@ -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: color === "transparent" ? "transparent" : 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