@m4l/components 9.2.59 → 9.2.60-13062025.beta.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.
Files changed (131) hide show
  1. package/.storybook/decorators/WithAppearanceContext/WithAppearanceContext.d.ts +1 -1
  2. package/.storybook/decorators/WithWindowsToolsAndParmsMFContexts/WithWindowsToolsAndParmsMFContexts.d.ts +5 -0
  3. package/components/DataGrid/Datagrid.styles.js +4 -12
  4. package/components/DataGrid/contexts/DataGridContext/types.d.ts +4 -0
  5. package/components/DataGrid/subcomponents/Table/hooks/useSortColumnsRows.js +2 -0
  6. package/components/DynamicFilter/DynamicFilter.styles.js +87 -91
  7. package/components/DynamicFilter/slots/SlotsEnum.d.ts +0 -3
  8. package/components/DynamicFilter/slots/SlotsEnum.js +0 -3
  9. package/components/DynamicFilter/slots/dynamicFilterSlots.d.ts +0 -9
  10. package/components/DynamicFilter/slots/dynamicFilterSlots.js +3 -19
  11. package/components/DynamicFilter/store/DynamicFilterContext.js +5 -6
  12. package/components/DynamicFilter/subcomponents/FilterActions/FilterActions.js +1 -1
  13. package/components/DynamicFilter/subcomponents/FilterActions/useFilterActions.d.ts +1 -0
  14. package/components/DynamicFilter/subcomponents/FilterActions/useFilterActions.js +2 -1
  15. package/components/DynamicFilter/subcomponents/InputFilter/InputFilter.js +2 -0
  16. package/components/DynamicFilter/subcomponents/PopoverFilter/PopoverFilter.js +23 -18
  17. package/components/DynamicFilter/subcomponents/PopoverMenuFields/PopoverMenuFields.js +4 -1
  18. package/components/DynamicSort/DynamicSort.styles.js +86 -87
  19. package/components/DynamicSort/slots/DynamicSortSlots.d.ts +0 -9
  20. package/components/DynamicSort/slots/DynamicSortSlots.js +5 -21
  21. package/components/DynamicSort/slots/SlotsEnum.d.ts +1 -4
  22. package/components/DynamicSort/slots/SlotsEnum.js +1 -4
  23. package/components/DynamicSort/subcomponents/InputSort/InputSort.js +2 -0
  24. package/components/DynamicSort/subcomponents/PopoverSort/PopoverSort.js +21 -17
  25. package/components/DynamicSort/subcomponents/SortActions/SortActions.js +2 -2
  26. package/components/DynamicSort/subcomponents/SortActions/useSortActions.d.ts +2 -0
  27. package/components/DynamicSort/subcomponents/SortActions/useSortActions.js +2 -1
  28. package/components/NumberInput/hooks/useNumberInput/useNumberInput.js +2 -0
  29. package/components/PaperForm/styles.js +2 -1
  30. package/components/PropertyValue/PropertyValue.styles.js +2 -1
  31. package/components/SideBar/SideBar.js +4 -2
  32. package/components/SideBar/constants.d.ts +26 -2
  33. package/components/SideBar/constants.js +19 -7
  34. package/components/SideBar/context/sideBarContext/index.js +19 -5
  35. package/components/SideBar/context/sideBarContext/types.d.ts +22 -1
  36. package/components/SideBar/helpers/getMenuDataWithState/index.js +22 -8
  37. package/components/SideBar/hooks/useCollapse/index.d.ts +1 -0
  38. package/components/SideBar/hooks/useCollapse/useCollapse.d.ts +11 -0
  39. package/components/SideBar/hooks/useCollapse/useCollapse.js +23 -0
  40. package/components/SideBar/slots/SideBarEnum.d.ts +5 -5
  41. package/components/SideBar/slots/SideBarEnum.js +9 -11
  42. package/components/SideBar/slots/SideBarSlots.d.ts +9 -3
  43. package/components/SideBar/slots/SideBarSlots.js +36 -28
  44. package/components/SideBar/styles.js +2 -4
  45. package/components/SideBar/subcomponents/ContentComponent/index.js +39 -19
  46. package/components/SideBar/subcomponents/ContentComponent/style.js +166 -22
  47. package/components/SideBar/subcomponents/{FooterSidebar → Promotion}/index.d.ts +2 -2
  48. package/components/SideBar/subcomponents/{FooterSidebar → Promotion}/index.js +8 -15
  49. package/components/SideBar/subcomponents/{FooterSidebar → Promotion}/styles.js +2 -2
  50. package/components/SideBar/subcomponents/Promotion/types.d.ts +5 -0
  51. package/components/SideBar/subcomponents/SideBarDesktop/index.js +1 -1
  52. package/components/SideBar/subcomponents/SideBarDesktop/styles.js +10 -14
  53. package/components/SideBar/subcomponents/SideBarMobile/index.js +1 -1
  54. package/components/SideBar/subcomponents/TreeGroupItems/index.d.ts +5 -0
  55. package/components/SideBar/subcomponents/{ContentGroups → TreeGroupItems}/index.js +16 -18
  56. package/components/SideBar/subcomponents/{ContentGroups → TreeGroupItems}/styles.js +5 -7
  57. package/components/SideBar/subcomponents/{ContentGroups/subcomponents/ContainerMenuItemsMain → TreeGroupItems}/subcomponents/ArrowIcon/index.js +10 -7
  58. package/components/SideBar/subcomponents/{ContentGroups/subcomponents/ContainerMenuItemsMain → TreeGroupItems/subcomponents/NodeMenuItem}/index.d.ts +3 -3
  59. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/NodeMenuItem/index.js +53 -0
  60. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/NodeMenuItem/types.d.ts +8 -0
  61. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/NodeMenuItemMain/NodeMenuItemMain.d.ts +5 -0
  62. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/NodeMenuItemMain/NodeMenuItemMain.js +55 -0
  63. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/NodeMenuItemMain/index.d.ts +1 -0
  64. package/components/SideBar/subcomponents/TreeGroupItems/types.d.ts +4 -0
  65. package/components/SideBar/types.d.ts +7 -3
  66. package/components/WindowBase/WindowBase.js +4 -1
  67. package/components/WindowBase/WindowBase.styles.js +48 -13
  68. package/components/WindowBase/contexts/WindowToolsMFContext/types.d.ts +10 -0
  69. package/components/WindowBase/hooks/useDynamicMFParameters/index.js +2 -2
  70. package/components/WindowBase/slots/WindowBaseEnum.d.ts +2 -1
  71. package/components/WindowBase/slots/WindowBaseEnum.js +1 -0
  72. package/components/WindowBase/slots/WindowBaseSlots.d.ts +3 -0
  73. package/components/WindowBase/slots/WindowBaseSlots.js +6 -1
  74. package/components/WindowBase/subcomponents/Header/HeaderWindowBase.js +5 -3
  75. package/components/WindowBase/subcomponents/Header/useButtonActions.js +4 -2
  76. package/components/WindowBase/subcomponents/MemoizedIconButton/MemoizedIconButton.d.ts +1 -1
  77. package/components/WindowBase/subcomponents/MemoizedIconButton/MemoizedIconButton.js +1 -1
  78. package/components/WindowBase/subcomponents/MemoizedIconButton/types.d.ts +5 -0
  79. package/components/WindowBase/types.d.ts +11 -0
  80. package/components/areas/components/AreasViewer/subcomponents/Area/subcomponents/Window/Window.js +17 -0
  81. package/components/areas/components/AreasViewer/subcomponents/Area/subcomponents/Window/hooks/useRightActions.js +1 -0
  82. package/components/areas/components/AreasViewer/subcomponents/Area/subcomponents/Window/hooks/useWindow.d.ts +2 -0
  83. package/components/areas/components/AreasViewer/subcomponents/Area/subcomponents/Window/hooks/useWindow.js +8 -5
  84. package/components/areas/contexts/AreasContext/store.js +18 -2
  85. package/components/areas/contexts/AreasContext/types.d.ts +2 -0
  86. package/components/areas/hooks/index.d.ts +0 -1
  87. package/components/areas/types.d.ts +4 -0
  88. package/components/extended/React-resizable-panels/SplitLayout.js +6 -3
  89. package/components/extended/React-resizable-panels/SplitLayout.styles.js +78 -36
  90. package/components/extended/React-resizable-panels/constants.d.ts +6 -0
  91. package/components/extended/React-resizable-panels/constants.js +5 -1
  92. package/components/extended/React-resizable-panels/slots/SplitLayoutEnum.d.ts +2 -1
  93. package/components/extended/React-resizable-panels/slots/SplitLayoutEnum.js +1 -0
  94. package/components/extended/React-resizable-panels/slots/SplitLayoutSlots.d.ts +3 -0
  95. package/components/extended/React-resizable-panels/slots/SplitLayoutSlots.js +7 -1
  96. package/components/hook-form/RHFAutocompleteAsync/reducer/RHFAutocompleteReducer.js +5 -0
  97. package/components/mui_extended/Accordion/styles.js +1 -0
  98. package/components/mui_extended/Divider/index.d.ts +1 -0
  99. package/components/mui_extended/Divider/index.js +1 -0
  100. package/components/mui_extended/TabContent/TabContent.styles.js +2 -2
  101. package/components/mui_extended/Typography/slots/typographySlots.d.ts +1 -1
  102. package/components/mui_extended/index.d.ts +1 -0
  103. package/components/popups/components/PopupsProvider/hooks/usePopups.js +2 -1
  104. package/hooks/useDynamicFilterAndSort/styles.js +1 -1
  105. package/index.js +67 -67
  106. package/package.json +19 -18
  107. package/storybook/components/DynamicFilter/DynamicFilter.stories.d.ts +27 -11
  108. package/storybook/components/DynamicSort/DynamicSort.stories.d.ts +26 -10
  109. package/storybook/components/SideBar/subcomponents/FooterPromotion/FooterPromotion.d.ts +4 -0
  110. package/storybook/components/SideBar/subcomponents/FooterPromotion/constants.d.ts +3 -0
  111. package/storybook/components/SideBar/subcomponents/FooterPromotion/index.d.ts +1 -0
  112. package/storybook/components/extended/mui/IconButton/IconButton.stories.d.ts +1 -0
  113. package/.storybook/decorators/WithWindowsToolsContext/WithContextWindowTools.d.ts +0 -5
  114. package/components/SideBar/subcomponents/ContentGroups/index.d.ts +0 -5
  115. package/components/SideBar/subcomponents/ContentGroups/subcomponents/ContainerMenuItemsMain/index.js +0 -63
  116. package/components/SideBar/subcomponents/ContentGroups/subcomponents/ContainerMenuItemsMain/styles.d.ts +0 -2
  117. package/components/SideBar/subcomponents/ContentGroups/subcomponents/ContainerMenuItemsMain/styles.js +0 -47
  118. package/components/SideBar/subcomponents/ContentGroups/subcomponents/ContainerMenuItemsMain/types.d.ts +0 -7
  119. package/components/SideBar/subcomponents/ContentGroups/types.d.ts +0 -4
  120. package/components/SideBar/subcomponents/FooterSidebar/types.d.ts +0 -5
  121. package/components/SideBar/subcomponents/HeaderSidebar/index.js +0 -25
  122. package/components/areas/hooks/useSetWindowsTitle/index.d.ts +0 -1
  123. package/components/areas/hooks/useSetWindowsTitle/useSetWindowsTitle.d.ts +0 -6
  124. package/components/areas/hooks/useSetWindowsTitle/useSetWindowsTitle.js +0 -31
  125. package/storybook/components/WindowBase/subcomponents/WithContextWindowToolsProvider.d.ts +0 -5
  126. package/storybook/components/commonActions/components/ActionFormCancel/WindowToolsMFProvider.d.ts +0 -5
  127. /package/components/{areas/hooks/useSetWindowsTitle → SideBar/hooks/useCollapse}/index.js +0 -0
  128. /package/components/SideBar/subcomponents/{FooterSidebar → Promotion}/styles.d.ts +0 -0
  129. /package/components/SideBar/subcomponents/{ContentGroups → TreeGroupItems}/styles.d.ts +0 -0
  130. /package/components/SideBar/subcomponents/{ContentGroups/subcomponents/ContainerMenuItemsMain → TreeGroupItems}/subcomponents/ArrowIcon/index.d.ts +0 -0
  131. /package/components/SideBar/subcomponents/{ContentGroups/subcomponents/ContainerMenuItemsMain → TreeGroupItems}/subcomponents/ArrowIcon/types.d.ts +0 -0
@@ -1,5 +1,8 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { createContext } from "react";
1
+ import { jsx, Fragment } from "react/jsx-runtime";
2
+ import { useState, createContext } from "react";
3
+ import { g as getComponentClasses } from "../../../../utils/getComponentSlotRoot.js";
4
+ import { A as ALL_SIDEBAR_SLOTS, S as SIDEBAR_KEY_COMPONENT } from "../../constants.js";
5
+ const classes = getComponentClasses(SIDEBAR_KEY_COMPONENT, ALL_SIDEBAR_SLOTS);
3
6
  const initialState = {
4
7
  anchored: false,
5
8
  visible: true,
@@ -14,11 +17,17 @@ const initialState = {
14
17
  },
15
18
  expandedWidth: "",
16
19
  companyName: "",
17
- companySlogan: ""
20
+ companySlogan: "",
21
+ classes,
22
+ promotion: /* @__PURE__ */ jsx(Fragment, {}),
23
+ isHover: false,
24
+ setIsHover: (_isHover) => {
25
+ }
18
26
  };
19
27
  const SideBarContext = createContext(initialState);
20
28
  const SideBarProvider = (props) => {
21
29
  const { value, children } = props;
30
+ const [isHover, setIsHover] = useState(false);
22
31
  const {
23
32
  anchored,
24
33
  visible,
@@ -32,7 +41,8 @@ const SideBarProvider = (props) => {
32
41
  moduleSelectedId,
33
42
  companyName,
34
43
  companySlogan,
35
- urlIconPrefix
44
+ urlIconPrefix,
45
+ promotion
36
46
  } = value;
37
47
  return (
38
48
  // Proporcionar el contexto con las propiedades desestructuradas
@@ -52,7 +62,11 @@ const SideBarProvider = (props) => {
52
62
  expandedWidth,
53
63
  companyName,
54
64
  companySlogan,
55
- urlIconPrefix
65
+ urlIconPrefix,
66
+ classes,
67
+ promotion,
68
+ isHover,
69
+ setIsHover
56
70
  },
57
71
  children
58
72
  }
@@ -1,5 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { IMenuDataWithState, SideBarProps } from '../../types';
3
+ import { ALL_SIDEBAR_SLOTS } from '../../constants';
3
4
  /**
4
5
  * Valor proporcionado por el proveedor del contexto Sidebar.
5
6
  */
@@ -9,13 +10,33 @@ export interface SideBarProviderValue extends SideBarProps {
9
10
  */
10
11
  anchored: boolean;
11
12
  menuData: Array<IMenuDataWithState>;
13
+ /**
14
+ * Las clases asociadas al proveedor del contexto Sidebar.
15
+ */
16
+ classes: Record<keyof typeof ALL_SIDEBAR_SLOTS, string>;
17
+ /**
18
+ * Promoción del sidebar, se renderiza en el footer del sidebar
19
+ */
20
+ promotion: SideBarProps['promotion'];
21
+ /**
22
+ * Indica si el sidebar está siendo hoverado
23
+ */
24
+ isHover: boolean;
25
+ /**
26
+ * Función para establecer el estado de hover
27
+ */
28
+ setIsHover: (value: boolean) => void;
12
29
  }
13
30
  /**
14
31
  * Propiedades para el proveedor del contexto Sidebar.
15
32
  */
16
33
  export interface SideBarProviderProps {
17
34
  /** value contendrá el valor que se proporcionará en el contexto*/
18
- value: Omit<SideBarProviderValue, 'collapsed'>;
35
+ value: Omit<SideBarProviderValue, 'collapsed' | 'classes' | 'isHover' | 'setIsHover'>;
19
36
  /** children contendrá los elementos secundarios que estarán dentro del ámbito del proveedor del contexto.*/
20
37
  children: ReactNode;
38
+ /**
39
+ * Promoción del sidebar, se renderiza en el footer del sidebar
40
+ */
41
+ promotion?: SideBarProps['promotion'];
21
42
  }
@@ -1,22 +1,36 @@
1
1
  const getMenuDataWithState = ({ menuData, moduleSelectedId, initialLevel = 0 }) => {
2
2
  const newMenuDataItems = menuData.map((item) => {
3
3
  if (!item.children && item.moduleId === moduleSelectedId) {
4
- return { ...item, active: true, itemInTreeActive: true };
4
+ return { ...item, active: true, itemInTreeActive: false };
5
5
  }
6
6
  if (item.children) {
7
7
  let childrenItem = getMenuDataWithState({ menuData: item.children, moduleSelectedId, initialLevel: initialLevel + 1 });
8
8
  const indexTrue = childrenItem.findIndex((child) => child.active === true);
9
9
  if (initialLevel === 0) {
10
- return { ...item, children: childrenItem };
10
+ return { ...item, children: childrenItem, active: false, itemInTreeActive: false };
11
11
  }
12
12
  if (indexTrue !== -1) {
13
- childrenItem = childrenItem.map((child, index) => ({
14
- ...child,
15
- itemInTreeActive: index <= indexTrue ? true : false
16
- }));
13
+ childrenItem = childrenItem.map((child, index) => {
14
+ if (child.active) {
15
+ return { ...child, itemInTreeActive: false };
16
+ }
17
+ if (index <= indexTrue) {
18
+ return {
19
+ ...child,
20
+ itemInTreeActive: true,
21
+ active: false
22
+ };
23
+ }
24
+ return { ...child, itemInTreeActive: false, active: false };
25
+ });
17
26
  }
18
- const status = indexTrue >= 0 ? true : false;
19
- return { ...item, children: childrenItem, itemInTreeActive: status, active: status };
27
+ const status = indexTrue >= 0;
28
+ return {
29
+ ...item,
30
+ children: childrenItem,
31
+ itemInTreeActive: status,
32
+ active: status && !!item.children
33
+ };
20
34
  }
21
35
  return { ...item, active: false, itemInTreeActive: false };
22
36
  });
@@ -0,0 +1 @@
1
+ export { useCollapse } from './useCollapse';
@@ -0,0 +1,11 @@
1
+ import { IMenuDataWithState } from '../../types';
2
+ /**
3
+ * Hook para manejar el estado de colapso de un item del menu
4
+ * @param {IMenuDataWithState} item - Item del menu
5
+ * @returns {Object} - Objeto con el estado de colapso, el manejador de click y si el item tiene hijos
6
+ */
7
+ export declare const useCollapse: (item: IMenuDataWithState, defaultOpen?: boolean) => {
8
+ isOpen: boolean;
9
+ handlerClick: () => void;
10
+ hasChildren: boolean | undefined;
11
+ };
@@ -0,0 +1,23 @@
1
+ import { useState, useEffect } from "react";
2
+ import { u as useSideBar } from "../useSideBar/index.js";
3
+ import { useIsMobile } from "@m4l/graphics";
4
+ const useCollapse = (item, defaultOpen = false) => {
5
+ const { onMenuItemClick, onToggleVisible } = useSideBar();
6
+ const [isOpen, setIsOpen] = useState(defaultOpen);
7
+ const isMobile = useIsMobile();
8
+ const hasChildren = item.children && Array.isArray(item.children) && item.children.length > 0;
9
+ const handlerClick = () => {
10
+ onMenuItemClick(item);
11
+ setIsOpen(!isOpen);
12
+ if (isMobile && (!hasChildren || hasChildren === void 0)) {
13
+ onToggleVisible(true);
14
+ }
15
+ };
16
+ useEffect(() => {
17
+ setIsOpen(defaultOpen);
18
+ }, [defaultOpen]);
19
+ return { isOpen, handlerClick, hasChildren };
20
+ };
21
+ export {
22
+ useCollapse as u
23
+ };
@@ -7,7 +7,7 @@ export declare enum SideBarMobileSlots {
7
7
  containerSideBarMobile = "containerSideBarMobile"
8
8
  }
9
9
  export declare enum ContentGroupsSlots {
10
- containerContentGroupsRoot = "containerContentGroupsRoot",
10
+ containerTreeGroupItems = "containerTreeGroupItems",
11
11
  containerContentGroups = "containerContentGroups",
12
12
  containerContentTitle = "containerContentTitle",
13
13
  containerContentNavItems = "containerContentNavItems",
@@ -24,8 +24,8 @@ export declare enum SideBarFooterSlots {
24
24
  export declare enum ContentComponentSlots {
25
25
  contentComponentRoot = "contentComponentRoot",
26
26
  contentComponentHide = "contentComponentHide",
27
- containerComponent = "containerComponent"
28
- }
29
- export declare enum ContainerMenuItemsMainSlots {
30
- containerMenuItems = "containerMenuItems"
27
+ containerTreeItemsAndPromotion = "containerTreeItemsAndPromotion",
28
+ containerNodeMenuItem = "containerNodeMenuItem",
29
+ containerNodeMenuItemMain = "containerNodeMenuItemMain",
30
+ menuItemMain = "menuItemMain"
31
31
  }
@@ -9,7 +9,7 @@ var SideBarMobileSlots = /* @__PURE__ */ ((SideBarMobileSlots2) => {
9
9
  return SideBarMobileSlots2;
10
10
  })(SideBarMobileSlots || {});
11
11
  var ContentGroupsSlots = /* @__PURE__ */ ((ContentGroupsSlots2) => {
12
- ContentGroupsSlots2["containerContentGroupsRoot"] = "containerContentGroupsRoot";
12
+ ContentGroupsSlots2["containerTreeGroupItems"] = "containerTreeGroupItems";
13
13
  ContentGroupsSlots2["containerContentGroups"] = "containerContentGroups";
14
14
  ContentGroupsSlots2["containerContentTitle"] = "containerContentTitle";
15
15
  ContentGroupsSlots2["containerContentNavItems"] = "containerContentNavItems";
@@ -29,19 +29,17 @@ var SideBarFooterSlots = /* @__PURE__ */ ((SideBarFooterSlots2) => {
29
29
  var ContentComponentSlots = /* @__PURE__ */ ((ContentComponentSlots2) => {
30
30
  ContentComponentSlots2["contentComponentRoot"] = "contentComponentRoot";
31
31
  ContentComponentSlots2["contentComponentHide"] = "contentComponentHide";
32
- ContentComponentSlots2["containerComponent"] = "containerComponent";
32
+ ContentComponentSlots2["containerTreeItemsAndPromotion"] = "containerTreeItemsAndPromotion";
33
+ ContentComponentSlots2["containerNodeMenuItem"] = "containerNodeMenuItem";
34
+ ContentComponentSlots2["containerNodeMenuItemMain"] = "containerNodeMenuItemMain";
35
+ ContentComponentSlots2["menuItemMain"] = "menuItemMain";
33
36
  return ContentComponentSlots2;
34
37
  })(ContentComponentSlots || {});
35
- var ContainerMenuItemsMainSlots = /* @__PURE__ */ ((ContainerMenuItemsMainSlots2) => {
36
- ContainerMenuItemsMainSlots2["containerMenuItems"] = "containerMenuItems";
37
- return ContainerMenuItemsMainSlots2;
38
- })(ContainerMenuItemsMainSlots || {});
39
38
  export {
40
39
  ContentComponentSlots as C,
41
40
  HeaderSidebarSlots as H,
42
- SideBarDesktopSlots as S,
43
- SideBarMobileSlots as a,
44
- SideBarFooterSlots as b,
45
- ContentGroupsSlots as c,
46
- ContainerMenuItemsMainSlots as d
41
+ SideBarFooterSlots as S,
42
+ ContentGroupsSlots as a,
43
+ SideBarMobileSlots as b,
44
+ SideBarDesktopSlots as c
47
45
  };
@@ -7,7 +7,7 @@ export declare const ContainerDesktopContentStyled: import('@emotion/styled').St
7
7
  export declare const ContainerBtnAnchoredStyled: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme> & Record<string, unknown> & {
8
8
  ownerState?: (Partial<import('../types').SideBarOwnerState> & Record<string, unknown>) | undefined;
9
9
  }, Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('react').ClassAttributes<HTMLDivElement> | keyof import('react').HTMLAttributes<HTMLDivElement>>, {}>;
10
- export declare const ContainerContentGroupsRootStyled: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme> & Record<string, unknown> & {
10
+ export declare const ContainerTreeGroupItemsStyled: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme> & Record<string, unknown> & {
11
11
  ownerState?: (Partial<import('../types').SideBarOwnerState> & Record<string, unknown>) | undefined;
12
12
  }, Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLElement>, HTMLElement>, keyof import('react').HTMLAttributes<HTMLElement> | keyof import('react').ClassAttributes<HTMLElement>>, {}>;
13
13
  export declare const ContainerContentGroupsStyled: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme> & Record<string, unknown> & {
@@ -43,9 +43,15 @@ export declare const ContentComponentRootStyled: import('@emotion/styled').Style
43
43
  export declare const ContentComponentHideStyled: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme> & Record<string, unknown> & {
44
44
  ownerState?: (Partial<import('../types').SideBarOwnerState> & Record<string, unknown>) | undefined;
45
45
  }, Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('react').ClassAttributes<HTMLDivElement> | keyof import('react').HTMLAttributes<HTMLDivElement>>, {}>;
46
- export declare const ContainerComponentStyled: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme> & Record<string, unknown> & {
46
+ export declare const ContainerTreeItemsAndPromotionStyled: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme> & Record<string, unknown> & {
47
47
  ownerState?: (Partial<import('../types').SideBarOwnerState> & Record<string, unknown>) | undefined;
48
48
  }, Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('react').ClassAttributes<HTMLDivElement> | keyof import('react').HTMLAttributes<HTMLDivElement>>, {}>;
49
- export declare const ContainerMenuItemsStyled: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme> & Record<string, unknown> & {
49
+ export declare const ContainerNodeMenuItemStyled: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme> & Record<string, unknown> & {
50
50
  ownerState?: (Partial<import('../types').SideBarOwnerState> & Record<string, unknown>) | undefined;
51
51
  }, Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('react').ClassAttributes<HTMLDivElement> | keyof import('react').HTMLAttributes<HTMLDivElement>>, {}>;
52
+ export declare const ContainerNodeMenuItemMainStyled: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme> & Record<string, unknown> & {
53
+ ownerState?: (Partial<import('../types').SideBarOwnerState> & Record<string, unknown>) | undefined;
54
+ }, Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('react').ClassAttributes<HTMLDivElement> | keyof import('react').HTMLAttributes<HTMLDivElement>>, {}>;
55
+ export declare const MenuItemMainStyled: import('@emotion/styled').StyledComponent<Pick<import('../../mui_extended/MenuItem').MenuItemProps, keyof import('../../mui_extended/MenuItem').MenuItemProps> & import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme> & Record<string, unknown> & {
56
+ ownerState?: (Partial<import('../types').SideBarOwnerState> & Record<string, unknown>) | undefined;
57
+ }, {}, {}>;
@@ -1,7 +1,8 @@
1
1
  import { styled } from "@mui/material/styles";
2
- import { S as SideBarDesktopSlots, a as SideBarMobileSlots, C as ContentComponentSlots, b as SideBarFooterSlots, H as HeaderSidebarSlots, c as ContentGroupsSlots, d as ContainerMenuItemsMainSlots } from "./SideBarEnum.js";
2
+ import { c as SideBarDesktopSlots, b as SideBarMobileSlots, C as ContentComponentSlots, S as SideBarFooterSlots, a as ContentGroupsSlots, H as HeaderSidebarSlots } from "./SideBarEnum.js";
3
3
  import { S as SIDEBAR_KEY_COMPONENT } from "../constants.js";
4
4
  import { s as sideBarStyles } from "../styles.js";
5
+ import { M as MenuItem } from "../../mui_extended/MenuItem/MenuItem.js";
5
6
  const ContainerDesktopRootStyled = styled("section", {
6
7
  name: SIDEBAR_KEY_COMPONENT,
7
8
  slot: SideBarDesktopSlots.containerDesktopRoot
@@ -14,10 +15,10 @@ const ContainerBtnAnchoredStyled = styled("div", {
14
15
  name: SIDEBAR_KEY_COMPONENT,
15
16
  slot: SideBarDesktopSlots.containerBtnAnchored
16
17
  })(sideBarStyles?.containerBtnAnchored);
17
- const ContainerContentGroupsRootStyled = styled("section", {
18
+ const ContainerTreeGroupItemsStyled = styled("section", {
18
19
  name: SIDEBAR_KEY_COMPONENT,
19
- slot: ContentGroupsSlots.containerContentGroupsRoot
20
- })(sideBarStyles?.containerContentGroupsRoot);
20
+ slot: ContentGroupsSlots.containerTreeGroupItems
21
+ })(sideBarStyles?.containerTreeGroupItems);
21
22
  const ContainerContentGroupsStyled = styled("section", {
22
23
  name: SIDEBAR_KEY_COMPONENT,
23
24
  slot: ContentGroupsSlots.containerContentGroups
@@ -26,7 +27,7 @@ const ContainerContentTitleStyled = styled("div", {
26
27
  name: SIDEBAR_KEY_COMPONENT,
27
28
  slot: ContentGroupsSlots.containerContentTitle
28
29
  })(sideBarStyles?.containerContentTitle);
29
- const ContainerContentNavItemsStyled = styled("nav", {
30
+ styled("nav", {
30
31
  name: SIDEBAR_KEY_COMPONENT,
31
32
  slot: ContentGroupsSlots.containerContentNavItems
32
33
  })(sideBarStyles?.containerContentNavItems);
@@ -38,11 +39,11 @@ const ContainerArrowIconRootStyled = styled("div", {
38
39
  name: SIDEBAR_KEY_COMPONENT,
39
40
  slot: ContentGroupsSlots.containerArrowIconRoot
40
41
  })(sideBarStyles?.containerArrowIconRoot);
41
- const ContainerHeaderSidebarRootStyled = styled("section", {
42
+ styled("section", {
42
43
  name: SIDEBAR_KEY_COMPONENT,
43
44
  slot: HeaderSidebarSlots.containerHeaderSidebarRoot
44
45
  })(sideBarStyles?.containerHeaderSidebarRoot);
45
- const ContainerTitleSubtitleStyled = styled("div", {
46
+ styled("div", {
46
47
  name: SIDEBAR_KEY_COMPONENT,
47
48
  slot: HeaderSidebarSlots.containerTitleSubtitle
48
49
  })(sideBarStyles?.containerTitleSubtitle);
@@ -62,29 +63,36 @@ const ContentComponentHideStyled = styled("div", {
62
63
  name: SIDEBAR_KEY_COMPONENT,
63
64
  slot: ContentComponentSlots.contentComponentHide
64
65
  })(sideBarStyles?.contentComponentHide);
65
- const ContainerComponentStyled = styled("div", {
66
+ const ContainerTreeItemsAndPromotionStyled = styled("div", {
67
+ name: SIDEBAR_KEY_COMPONENT,
68
+ slot: ContentComponentSlots.containerTreeItemsAndPromotion
69
+ })(sideBarStyles?.containerTreeItemsAndPromotion);
70
+ const ContainerNodeMenuItemStyled = styled("div", {
71
+ name: SIDEBAR_KEY_COMPONENT,
72
+ slot: ContentComponentSlots.containerNodeMenuItem
73
+ })(sideBarStyles?.containerNodeMenuItem);
74
+ const ContainerNodeMenuItemMainStyled = styled("div", {
66
75
  name: SIDEBAR_KEY_COMPONENT,
67
- slot: ContentComponentSlots.containerComponent
68
- })(sideBarStyles?.containerComponent);
69
- const ContainerMenuItemsStyled = styled("div", {
76
+ slot: ContentComponentSlots.containerNodeMenuItemMain
77
+ })(sideBarStyles?.containerNodeMenuItemMain);
78
+ const MenuItemMainStyled = styled(MenuItem, {
70
79
  name: SIDEBAR_KEY_COMPONENT,
71
- slot: ContainerMenuItemsMainSlots.containerMenuItems
72
- })(sideBarStyles?.containerMenuItems);
80
+ slot: ContentComponentSlots.menuItemMain
81
+ })(sideBarStyles?.menuItemMain);
73
82
  export {
74
83
  ContentComponentRootStyled as C,
75
- ContentComponentHideStyled as a,
76
- ContainerComponentStyled as b,
77
- ContainerBtnAnchoredStyled as c,
78
- ContainerContentGroupsRootStyled as d,
79
- ContainerContentGroupsStyled as e,
80
- ContainerContentTitleStyled as f,
81
- ContainerContentNavItemsStyled as g,
82
- ContainerMenuItemsStyled as h,
83
- ContainerArrowIconRootStyled as i,
84
- ContainerFooterStyled as j,
85
- ContainerHeaderSidebarRootStyled as k,
86
- ContainerTitleSubtitleStyled as l,
87
- ContainerDesktopContentStyled as m,
88
- ContainerDesktopRootStyled as n,
89
- ContainerSideBarMobileStyled as o
84
+ MenuItemMainStyled as M,
85
+ ContainerBtnAnchoredStyled as a,
86
+ ContentComponentHideStyled as b,
87
+ ContainerTreeItemsAndPromotionStyled as c,
88
+ ContainerFooterStyled as d,
89
+ ContainerDesktopContentStyled as e,
90
+ ContainerDesktopRootStyled as f,
91
+ ContainerSideBarMobileStyled as g,
92
+ ContainerTreeGroupItemsStyled as h,
93
+ ContainerContentGroupsStyled as i,
94
+ ContainerContentTitleStyled as j,
95
+ ContainerArrowIconRootStyled as k,
96
+ ContainerNodeMenuItemStyled as l,
97
+ ContainerNodeMenuItemMainStyled as m
90
98
  };
@@ -1,12 +1,10 @@
1
1
  import { s as sideBarDesktopStyles } from "./subcomponents/SideBarDesktop/styles.js";
2
- import { c as contentGroupStyles } from "./subcomponents/ContentGroups/styles.js";
2
+ import { c as contentGroupStyles } from "./subcomponents/TreeGroupItems/styles.js";
3
3
  import { h as headerSidebarStyles } from "./subcomponents/HeaderSidebar/styles.js";
4
- import { f as footerSideBarStyles } from "./subcomponents/FooterSidebar/styles.js";
4
+ import { f as footerSideBarStyles } from "./subcomponents/Promotion/styles.js";
5
5
  import { c as contentComponentStyles } from "./subcomponents/ContentComponent/style.js";
6
- import { c as containerMenuItemsMainStyles } from "./subcomponents/ContentGroups/subcomponents/ContainerMenuItemsMain/styles.js";
7
6
  import { s as sideBarMobileStyles } from "./subcomponents/SideBarMobile/styles.js";
8
7
  const sideBarStyles = {
9
- ...containerMenuItemsMainStyles,
10
8
  ...sideBarDesktopStyles,
11
9
  ...sideBarMobileStyles,
12
10
  ...contentGroupStyles,
@@ -2,20 +2,22 @@ import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { useIsMobile } from "@m4l/graphics";
3
3
  import { useEnvironment } from "@m4l/core";
4
4
  import { u as useSideBar } from "../../hooks/useSideBar/index.js";
5
- import { C as ContentComponentRootStyled, a as ContentComponentHideStyled, b as ContainerComponentStyled, c as ContainerBtnAnchoredStyled } from "../../slots/SideBarSlots.js";
6
- import { C as ContentGroups } from "../ContentGroups/index.js";
7
- import { F as FooterSidebar } from "../FooterSidebar/index.js";
8
- import { H as HeaderSidebar } from "../HeaderSidebar/index.js";
5
+ import { C as ContentComponentRootStyled, a as ContainerBtnAnchoredStyled, b as ContentComponentHideStyled, c as ContainerTreeItemsAndPromotionStyled } from "../../slots/SideBarSlots.js";
6
+ import { T as TreeGroupItems } from "../TreeGroupItems/index.js";
7
+ import { P as Promotion } from "../Promotion/index.js";
9
8
  import { a as getComponentSlotRoot } from "../../../../utils/getComponentSlotRoot.js";
10
9
  import { a as PATH_ARROW_RIGHT_ICON, C as CONTAINER_BTN_ANCHORED } from "../../constants.js";
10
+ import { useRef } from "react";
11
11
  import { u as useComponentSize } from "../../../../hooks/useComponentSize/useComponentSize.js";
12
12
  import { I as IconButton } from "../../../mui_extended/IconButton/IconButton.js";
13
13
  const ContentComponent = () => {
14
- const { anchored, onToggleAnchored, companyName, companySlogan, companyLogoSmallUrl, expandedWidth, size } = useSideBar();
14
+ const { anchored, onToggleAnchored, expandedWidth, size, classes, isHover, setIsHover } = useSideBar();
15
15
  const ownerState = {
16
16
  expandedWidth,
17
17
  anchored
18
18
  };
19
+ const btnAnchoredRef = useRef(null);
20
+ const contentRef = useRef(null);
19
21
  const { host_static_assets, environment_assets } = useEnvironment();
20
22
  const isDesktop = !useIsMobile();
21
23
  const { currentSize } = useComponentSize(size);
@@ -24,34 +26,52 @@ const ContentComponent = () => {
24
26
  onToggleAnchored(!anchored);
25
27
  };
26
28
  return /* @__PURE__ */ jsxs(ContentComponentRootStyled, { ownerState, children: [
27
- /* @__PURE__ */ jsx(ContentComponentHideStyled, { ownerState: { ...ownerState, isDesktop }, role: "complementary", "aria-label": "hidden content", children: /* @__PURE__ */ jsxs(ContainerComponentStyled, { ownerState, children: [
28
- /* @__PURE__ */ jsx(
29
- HeaderSidebar,
30
- {
31
- title: companyName ?? "",
32
- subtitle: companySlogan ?? "",
33
- srcIcon: companyLogoSmallUrl ?? ""
34
- }
35
- ),
36
- /* @__PURE__ */ jsx(ContentGroups, { size: currentSize }),
37
- /* @__PURE__ */ jsx(FooterSidebar, { onToggleAnchored, anchored })
38
- ] }) }),
39
29
  isDesktop && /* @__PURE__ */ jsx(
40
30
  ContainerBtnAnchoredStyled,
41
31
  {
32
+ ref: btnAnchoredRef,
42
33
  className: classRootBtnAnchored,
43
34
  ownerState,
35
+ onMouseLeave: (event) => {
36
+ if (!anchored && contentRef.current && !contentRef.current.contains(event.relatedTarget)) {
37
+ setIsHover(false);
38
+ }
39
+ },
44
40
  children: /* @__PURE__ */ jsx(
45
41
  IconButton,
46
42
  {
47
43
  role: "anchored-button",
48
- variant: "outline",
44
+ variant: anchored ? "contained" : "outline",
49
45
  rotationAngle: !anchored ? 0 : 180,
50
46
  onClick: handlerAnchoredButton,
51
- src: `${host_static_assets}/${environment_assets}/${PATH_ARROW_RIGHT_ICON}`
47
+ src: `${host_static_assets}/${environment_assets}/${PATH_ARROW_RIGHT_ICON}`,
48
+ color: anchored ? "primary" : "default"
52
49
  }
53
50
  )
54
51
  }
52
+ ),
53
+ /* @__PURE__ */ jsx(
54
+ ContentComponentHideStyled,
55
+ {
56
+ ref: contentRef,
57
+ ownerState: { ...ownerState, isDesktop, isHover },
58
+ className: classes.contentComponentHide,
59
+ role: "complementary",
60
+ "aria-label": "hidden content",
61
+ onMouseEnter: () => {
62
+ !anchored && setIsHover(true);
63
+ },
64
+ onMouseLeave: (event) => {
65
+ if (!anchored && btnAnchoredRef.current && btnAnchoredRef.current.contains(event.relatedTarget)) {
66
+ return;
67
+ }
68
+ setIsHover(false);
69
+ },
70
+ children: /* @__PURE__ */ jsxs(ContainerTreeItemsAndPromotionStyled, { ownerState, children: [
71
+ /* @__PURE__ */ jsx(TreeGroupItems, { size: currentSize }),
72
+ /* @__PURE__ */ jsx(Promotion, { onToggleAnchored, anchored })
73
+ ] })
74
+ }
55
75
  )
56
76
  ] });
57
77
  };