@m4l/components 9.2.63 → 9.2.65

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 (117) hide show
  1. package/@types/types.d.ts +8 -0
  2. package/components/AppBar/AppBar.js +12 -10
  3. package/components/AppBar/constants.d.ts +1 -1
  4. package/components/AppBar/constants.js +1 -1
  5. package/components/AppBar/slots/AppBarEnum.d.ts +1 -5
  6. package/components/AppBar/slots/AppBarEnum.js +0 -4
  7. package/components/AppBar/slots/AppBarSlots.d.ts +4 -18
  8. package/components/AppBar/slots/AppBarSlots.js +3 -27
  9. package/components/AppBar/styles.js +0 -42
  10. package/components/AppBar/types.d.ts +8 -0
  11. package/components/Chip/ChipStyles.js +1 -1
  12. package/components/ContainerFlow/ContainerFlow.d.ts +7 -0
  13. package/components/ContainerFlow/ContainerFlow.js +25 -0
  14. package/components/ContainerFlow/ContainerFlow.styles.d.ts +2 -0
  15. package/components/ContainerFlow/ContainerFlow.styles.js +46 -0
  16. package/components/ContainerFlow/constants.d.ts +9 -0
  17. package/components/ContainerFlow/constants.js +21 -0
  18. package/components/ContainerFlow/helpers/getSpacingValue/getSpacingValue.d.ts +7 -0
  19. package/components/ContainerFlow/helpers/getSpacingValue/getSpacingValue.js +10 -0
  20. package/components/ContainerFlow/helpers/getSpacingValue/getSpacingValue.test.d.ts +1 -0
  21. package/components/ContainerFlow/index.d.ts +2 -0
  22. package/components/ContainerFlow/index.js +1 -0
  23. package/components/ContainerFlow/slots/ContainerFlowEnum.d.ts +4 -0
  24. package/components/ContainerFlow/slots/ContainerFlowEnum.js +8 -0
  25. package/components/ContainerFlow/slots/ContainerFlowSlots.d.ts +6 -0
  26. package/components/ContainerFlow/slots/ContainerFlowSlots.js +16 -0
  27. package/components/ContainerFlow/slots/index.d.ts +0 -0
  28. package/components/ContainerFlow/tests/ContainerFlow.test.d.ts +1 -0
  29. package/components/ContainerFlow/types.d.ts +41 -0
  30. package/components/DataGrid/subcomponents/Table/hooks/useSortColumnsRows.js +2 -0
  31. package/components/Image/Image.js +4 -2
  32. package/components/Image/image.styles.js +6 -3
  33. package/components/Image/types.d.ts +5 -0
  34. package/components/LoadingError/slots/LoadingErrorSlots.js +1 -1
  35. package/components/NumberInput/hooks/useNumberInput/useNumberInput.js +2 -0
  36. package/components/PropertyValue/PropertyValue.styles.js +1 -1
  37. package/components/SideBar/SideBar.js +6 -2
  38. package/components/SideBar/constants.d.ts +8 -6
  39. package/components/SideBar/constants.js +8 -8
  40. package/components/SideBar/context/sideBarContext/index.js +9 -10
  41. package/components/SideBar/context/sideBarContext/types.d.ts +2 -10
  42. package/components/SideBar/slots/SideBarEnum.d.ts +8 -7
  43. package/components/SideBar/slots/SideBarEnum.js +6 -5
  44. package/components/SideBar/slots/SideBarSlots.d.ts +12 -9
  45. package/components/SideBar/slots/SideBarSlots.js +36 -28
  46. package/components/SideBar/styles.js +3 -3
  47. package/components/SideBar/subcomponents/ContentComponent/index.js +12 -68
  48. package/components/SideBar/subcomponents/ContentComponent/style.js +134 -107
  49. package/components/SideBar/subcomponents/{Promotion → FooterComponent}/index.d.ts +1 -1
  50. package/components/SideBar/subcomponents/{Promotion → FooterComponent}/index.js +4 -4
  51. package/components/SideBar/subcomponents/{Promotion → FooterComponent}/styles.js +8 -2
  52. package/components/SideBar/subcomponents/HeaderComponent/HeaderComponent.d.ts +5 -0
  53. package/components/SideBar/subcomponents/HeaderComponent/HeaderComponent.js +37 -0
  54. package/components/SideBar/subcomponents/HeaderComponent/index.d.ts +1 -0
  55. package/components/SideBar/subcomponents/HeaderComponent/index.js +1 -0
  56. package/components/SideBar/subcomponents/HeaderComponent/styles.d.ts +2 -0
  57. package/components/SideBar/subcomponents/HeaderComponent/styles.js +40 -0
  58. package/components/SideBar/subcomponents/SideBarDesktop/index.js +4 -3
  59. package/components/SideBar/subcomponents/SideBarDesktop/styles.js +4 -32
  60. package/components/SideBar/subcomponents/SideBarMobile/index.js +1 -1
  61. package/components/SideBar/subcomponents/TreeGroupItems/index.js +4 -3
  62. package/components/SideBar/subcomponents/TreeGroupItems/styles.js +112 -2
  63. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/AdormentIcon/AdormentIcon.d.ts +7 -0
  64. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/AdormentIcon/AdormentIcon.js +12 -0
  65. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/AdormentIcon/types.d.ts +4 -0
  66. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/NodeMenuItem/index.js +9 -7
  67. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/NodeMenuItem/types.d.ts +1 -0
  68. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/NodeMenuItemMain/NodeMenuItemMain.js +11 -6
  69. package/components/SideBar/types.d.ts +12 -7
  70. package/components/areas/contexts/AreasContext/store.js +2 -2
  71. package/components/commercial/HamburgerMenu/HamburgerMenu.js +1 -2
  72. package/components/hook-form/RHFAutocompleteAsync/reducer/RHFAutocompleteReducer.js +5 -0
  73. package/components/hook-form/RHFPeriod/subcomponents/Period/Period.js +4 -4
  74. package/components/hook-form/RHFPeriod/subcomponents/Period/dictionary.d.ts +1 -1
  75. package/components/hook-form/RHFPeriod/subcomponents/Period/dictionary.js +7 -6
  76. package/components/index.d.ts +1 -0
  77. package/components/mui_extended/Accordion/styles.js +3 -5
  78. package/components/mui_extended/MenuItem/MenuItem.js +1 -1
  79. package/components/mui_extended/TabContent/TabContent.js +2 -2
  80. package/components/mui_extended/TabContent/TabContent.styles.js +4 -1
  81. package/components/mui_extended/TabContent/constants.d.ts +1 -0
  82. package/components/mui_extended/TabContent/constants.js +2 -0
  83. package/components/mui_extended/TabContent/types.d.ts +13 -1
  84. package/components/mui_extended/Typography/Typography.js +3 -1
  85. package/components/mui_extended/Typography/types.d.ts +5 -0
  86. package/components/mui_extended/Typography/typography.styles.js +7 -1
  87. package/index.js +32 -30
  88. package/package.json +1 -1
  89. package/storybook/components/ContainerFlow/ContainerFlow.stories.d.ts +32 -0
  90. package/storybook/components/ContainerFlow/subcomponents/RenderFlexColumn/index.d.ts +5 -0
  91. package/storybook/components/ContainerFlow/subcomponents/RenderFlexColumn1Wrappers/index.d.ts +5 -0
  92. package/storybook/components/ContainerFlow/subcomponents/RenderFlexColumn2Wrappers/index.d.ts +5 -0
  93. package/storybook/components/ContainerFlow/subcomponents/RenderFlexColumn3Wrappers/index.d.ts +5 -0
  94. package/storybook/components/ContainerFlow/subcomponents/RenderFlexWrap/index.d.ts +5 -0
  95. package/storybook/components/ContainerFlow/subcomponents/RenderGridLayout/index.d.ts +5 -0
  96. package/storybook/components/ContainerFlow/wrapperItems/index.d.ts +10 -0
  97. package/storybook/components/SideBar/SideBar.stories.d.ts +5 -11
  98. package/storybook/components/SideBar/subcomponents/FooterComponentHost/FooterComponentHost.d.ts +4 -0
  99. package/storybook/components/SideBar/subcomponents/FooterComponentHost/index.d.ts +1 -0
  100. package/storybook/components/SideBar/subcomponents/FooterComponentMicrofrontend/FooterComponentMicrofrontend.d.ts +4 -0
  101. package/storybook/components/SideBar/subcomponents/FooterComponentMicrofrontend/FooterComponentMicrofrontend.stories.d.ts +14 -0
  102. package/storybook/components/SideBar/subcomponents/FooterComponentMicrofrontend/constants.d.ts +1 -0
  103. package/storybook/components/SideBar/subcomponents/FooterComponentMicrofrontend/index.d.ts +1 -0
  104. package/storybook/components/SideBar/subcomponents/HeaderComponentHost/HeaderComponentHost.d.ts +5 -0
  105. package/storybook/components/SideBar/subcomponents/HeaderComponentHost/constants.d.ts +1 -0
  106. package/storybook/components/SideBar/subcomponents/HeaderComponentMicrofrontend/HeaderComponentMicrofrontend.d.ts +5 -0
  107. package/storybook/components/SideBar/subcomponents/HeaderComponentMicrofrontend/constants.d.ts +1 -0
  108. package/utils/getSizeStyles/getSizeStyles.d.ts +1 -1
  109. package/components/SideBar/subcomponents/HeaderSidebar/index.d.ts +0 -6
  110. package/components/SideBar/subcomponents/HeaderSidebar/styles.d.ts +0 -2
  111. package/components/SideBar/subcomponents/HeaderSidebar/styles.js +0 -24
  112. package/components/SideBar/subcomponents/HeaderSidebar/types.d.ts +0 -5
  113. package/storybook/components/SideBar/subcomponents/FooterPromotion/FooterPromotion.d.ts +0 -4
  114. package/storybook/components/SideBar/subcomponents/FooterPromotion/index.d.ts +0 -1
  115. /package/components/SideBar/subcomponents/{Promotion → FooterComponent}/styles.d.ts +0 -0
  116. /package/components/SideBar/subcomponents/{Promotion → FooterComponent}/types.d.ts +0 -0
  117. /package/storybook/components/SideBar/subcomponents/{FooterPromotion → FooterComponentHost}/constants.d.ts +0 -0
@@ -1,6 +1,5 @@
1
- import { b as CLASS_NAME_IS_ROOT, c as CLASS_NAME_MENU_ACTIVE, d as CLASS_NAME_ITEM_IN_TREE_ACTIVE, e as CLASS_NAME_HAS_CHILDREN } from "../../constants.js";
1
+ import { C as CLASS_NAME_IS_ROOT, a as CLASS_NAME_MENU_ACTIVE, b as CLASS_NAME_ITEM_IN_TREE_ACTIVE, c as CLASS_NAME_HAS_CHILDREN, d as CLASS_NAME_ITEM_CLOSED } from "../../constants.js";
2
2
  import { g as getTypographyStyles } from "../../../../utils/getTypographyStyles.js";
3
- import { g as getSizeStyles } from "../../../../utils/getSizeStyles/getSizeStyles.js";
4
3
  const contentComponentStyles = {
5
4
  /**
6
5
  * Estilos del contenedor principal del sidebar
@@ -10,68 +9,45 @@ const contentComponentStyles = {
10
9
  display: "flex",
11
10
  flexDirection: "column",
12
11
  height: "100%",
13
- width: "fit-content",
12
+ width: "100%",
14
13
  backgroundColor: theme.vars.palette.background.default
15
14
  }),
16
- /**
17
- * Estilos del contenedor que oculta el contenido cuando se encuentra des anclado.
18
- */
19
- contentComponentHide: ({ theme, ownerState }) => {
20
- const width = ownerState?.anchored ? ownerState?.expandedWidth : theme.vars.size.baseSpacings.sp4;
21
- return {
22
- width: "100%",
23
- height: "100%",
24
- overflow: "hidden",
25
- flex: 1,
26
- display: "flex",
27
- flexDirection: "column",
28
- transition: "all 0.5s",
29
- ...!ownerState?.anchored && !theme.generalSettings.isMobile && {
30
- width: ownerState?.anchored && ownerState?.isDesktop ? ownerState?.expandedWidth : !ownerState?.isDesktop ? "100%" : theme.vars.size.baseSpacings.sp4,
31
- minWidth: width,
32
- maxWidth: width,
33
- ...ownerState?.isHover && !theme.generalSettings.isMobile && {
34
- transition: "all 0.5s",
35
- width: `${ownerState?.expandedWidth}!important`,
36
- maxWidth: `${ownerState?.expandedWidth}!important`,
37
- contentVisibility: "visible",
38
- '& [class*="containerFooter"]': {
39
- borderWidth: theme.vars.size.baseSpacings["sp0-5"]
40
- }
41
- }
42
- }
43
- };
44
- },
45
15
  /**
46
16
  * Contenedor que abraza el contenido del menu en primer lugar.
47
17
  */
48
- containerTreeItemsAndPromotion: ({ theme, ownerState }) => ({
18
+ containerTreeItemsHeaderFooter: ({ theme, ownerState }) => ({
49
19
  height: "100%",
50
- width: ownerState?.expandedWidth,
20
+ width: "100%",
51
21
  flex: 1,
52
22
  overflow: "hidden",
53
23
  display: "flex",
54
24
  flexDirection: "column",
55
- paddingLeft: theme.vars.size.baseSpacings.sp4,
56
- paddingRight: theme.vars.size.baseSpacings.sp4,
25
+ gap: theme.vars.size.baseSpacings.sp4,
26
+ padding: "3px",
27
+ paddingBottom: theme.vars.size.baseSpacings.sp4,
28
+ ...!ownerState?.anchored && ownerState?.variant !== "host" && {
29
+ transition: "all 0.5s",
30
+ paddingLeft: "unset",
31
+ paddingRight: "unset"
32
+ },
57
33
  '& [class*="M4LMenuItem-root"], & [class*="M4LMenuItem-skeletonMenuItem"]': {
58
- ...getSizeStyles(
59
- theme,
60
- ownerState?.size || "medium",
61
- "container",
62
- (size) => ({
63
- height: size,
64
- minHeight: size,
65
- maxHeight: size
66
- })
67
- )
34
+ height: "fit-content"
68
35
  },
69
36
  "& .M4LMenuItem-root": {
70
37
  border: "unset",
71
- paddingLeft: theme.vars.size.baseSpacings.sp2,
72
- paddingRight: theme.vars.size.baseSpacings.sp2,
38
+ padding: 0,
39
+ borderRadius: theme.vars.size.borderRadius["r1-5"],
40
+ '& [class*="M4LMenuItem-menuItemContainer"]': {
41
+ gap: theme.vars.size.baseSpacings["sp2-5"],
42
+ overflow: "visible"
43
+ },
44
+ "&.menu-active": {
45
+ "& .M4LTypography-root": {
46
+ color: `${theme.vars.palette.primary.semanticText}!important`
47
+ }
48
+ },
73
49
  "& .M4LTypography-root": {
74
- paddingLeft: `${theme.vars.size.baseSpacings.sp2} !important`,
50
+ paddingLeft: 0,
75
51
  ...getTypographyStyles(
76
52
  theme.generalSettings.isMobile,
77
53
  ownerState?.size || "medium",
@@ -83,97 +59,148 @@ const contentComponentStyles = {
83
59
  /**
84
60
  * Contenedor que contiene grupo menu item desplegable.
85
61
  */
86
- containerNodeMenuItem: ({ theme, ownerState }) => ({
87
- marginLeft: theme.vars.size.baseSpacings.sp4,
62
+ containerNodeMenuItem: ({ theme }) => ({
63
+ marginLeft: theme.vars.size.baseSpacings.sp6,
88
64
  display: "flex",
89
65
  flexDirection: "column",
90
66
  overflow: "visible",
67
+ position: "relative",
68
+ gap: theme.vars.size.baseSpacings.sp1,
91
69
  '& [class*="M4LMenuItem-root"]:not(.menu-active)': {
92
70
  "& .M4LTypography-root": {
93
71
  color: `${theme.vars.palette.text.secondary}!important`
94
- },
95
- "& .M4LIcon-icon": {
96
- backgroundColor: `${theme.vars.palette.text.secondary}!important`
97
72
  }
98
73
  },
99
- [`&.${CLASS_NAME_IS_ROOT}`]: {
100
- margin: "unset"
74
+ "& .MuiCollapse-root": {
75
+ position: "relative"
101
76
  },
102
- [`& > .M4LMenuItem-root:first-of-type:not(.${CLASS_NAME_MENU_ACTIVE}).${CLASS_NAME_ITEM_IN_TREE_ACTIVE}`]: {
103
- borderColor: theme.vars.palette.divider,
104
- // Linea de referencia vertical
105
- "&::before": {
106
- content: '""',
107
- position: "absolute",
108
- top: "-25%",
109
- bottom: "-25%",
110
- height: "150%",
111
- left: 0,
112
- width: 2,
113
- borderLeft: theme.vars.size.borderStroke.container,
114
- borderColor: theme.vars.palette.border.default,
115
- ...ownerState?.isLastSibling && !ownerState?.hasChildren && {
116
- height: "75%"
117
- }
118
- },
119
- // Linea de referencia horizontal
120
- [`&:not(.${CLASS_NAME_HAS_CHILDREN}):after`]: {
121
- content: '""',
122
- position: "absolute",
123
- margin: "0",
124
- left: 1,
125
- width: 4,
126
- height: 1,
127
- borderTop: theme.vars.size.borderStroke.container,
128
- borderColor: theme.vars.palette.border.default
77
+ [`&.${CLASS_NAME_IS_ROOT}`]: {
78
+ margin: "unset",
79
+ border: theme.vars.size.borderStroke.container,
80
+ borderColor: "transparent",
81
+ "& > .MuiCollapse-root": {
82
+ paddingRight: theme.vars.size.baseSpacings["sp0-5"]
129
83
  }
130
84
  },
131
- [`&.M4LSidebar-containerNodeMenuItem > .M4LMenuItem-root[class*="${CLASS_NAME_ITEM_IN_TREE_ACTIVE}"] .M4LIconClass-root`]: {
85
+ [`&.M4LSidebar-containerNodeMenuItem > M4LSideBar-wrapperMenuItem > .M4LMenuItem-root[class*="${CLASS_NAME_ITEM_IN_TREE_ACTIVE}"] .M4LIconClass-root`]: {
132
86
  background: theme.vars.palette.text.primary
133
87
  },
134
- [`& > .M4LMenuItem-root:not(.${CLASS_NAME_IS_ROOT}).${CLASS_NAME_MENU_ACTIVE}`]: {
88
+ [`& > .MuiCollapse-root > .MuiCollapse-wrapper .MuiCollapse-wrapperInner > .M4LSideBar-containerNodeMenuItem:last-child > .M4LSideBar-wrapperMenuItem > .M4LMenuItem-root:not(.${CLASS_NAME_IS_ROOT}).${CLASS_NAME_MENU_ACTIVE}`]: {
89
+ "& .M4LMenuItem-menuItemContainer": {
90
+ "&::before": {
91
+ content: '""',
92
+ borderLeft: "3px solid",
93
+ borderColor: theme.vars.palette.background.default,
94
+ width: "3px",
95
+ height: "90%",
96
+ bottom: "-10px",
97
+ position: "absolute",
98
+ left: "-13px",
99
+ zIndex: 1
100
+ }
101
+ }
102
+ },
103
+ [`& > .M4LSideBar-wrapperMenuItem > .M4LMenuItem-root:not(.${CLASS_NAME_IS_ROOT}).${CLASS_NAME_MENU_ACTIVE}`]: {
104
+ [`&.${CLASS_NAME_HAS_CHILDREN}:not(.${CLASS_NAME_ITEM_CLOSED})`]: {
105
+ '& [class*="M4LMenuItem-menuItemContainer"]:before': {
106
+ content: '""',
107
+ borderLeft: "3px solid",
108
+ borderColor: theme.vars.palette.background.default,
109
+ width: "3px",
110
+ height: "90%",
111
+ bottom: "-10px",
112
+ position: "absolute",
113
+ left: "-13px",
114
+ zIndex: 1
115
+ }
116
+ },
135
117
  "&::before": {
136
118
  content: '""',
137
119
  position: "absolute",
138
- height: "25%",
139
- top: "25%",
140
- bottom: 0,
141
- left: 0,
142
- width: 2,
143
- borderLeft: theme.vars.size.borderStroke.container,
144
- borderColor: theme.vars.palette.primary.enabled,
145
- ...!ownerState?.isLastSibling && !ownerState?.hasChildren && {
146
- height: "50%"
147
- }
120
+ width: "5px",
121
+ height: "5px",
122
+ top: "50%",
123
+ transform: "translateY(-50%)",
124
+ left: "-14px",
125
+ borderRadius: theme.vars.size.borderRadius["r0-5"],
126
+ backgroundColor: theme.vars.palette.primary.focus,
127
+ zIndex: 2
148
128
  },
149
- "&:after": {
129
+ "&::after": {
150
130
  content: '""',
151
131
  position: "absolute",
152
- margin: "0",
153
- left: 0,
154
- width: theme.vars.size.baseSpacings.sp1,
155
- height: 1,
156
- borderTop: theme.vars.size.borderStroke.container,
157
- borderColor: theme.vars.palette.primary.enabled
132
+ width: "1px",
133
+ top: "0px",
134
+ bottom: "0px",
135
+ left: "-12px",
136
+ backgroundImage: `linear-gradient(180deg,
137
+ transparent 0%,
138
+ ${theme.vars.palette.primary.opacityGradient1} 50%,
139
+ transparent 100%)`
158
140
  }
159
141
  },
160
- [`& > .M4LMenuItem-root.${CLASS_NAME_IS_ROOT}.${CLASS_NAME_MENU_ACTIVE}`]: {
142
+ [`&.${CLASS_NAME_IS_ROOT}.${CLASS_NAME_MENU_ACTIVE}.${CLASS_NAME_ITEM_IN_TREE_ACTIVE} > .M4LSideBar-wrapperMenuItem`]: {
161
143
  backgroundColor: theme.vars.palette.primary.opacity
162
144
  },
145
+ [`&.${CLASS_NAME_IS_ROOT} > .M4LSideBar-wrapperMenuItem`]: {
146
+ paddingRight: "7px",
147
+ paddingTop: theme.vars.size.baseSpacings.sp1,
148
+ paddingBottom: theme.vars.size.baseSpacings.sp1,
149
+ paddingLeft: theme.vars.size.baseSpacings.sp1
150
+ },
151
+ [`& > .M4LSideBar-wrapperMenuItem > .M4LMenuItem-root.${CLASS_NAME_IS_ROOT}.${CLASS_NAME_MENU_ACTIVE}`]: {
152
+ borderBottomLeftRadius: 0,
153
+ borderBottomRightRadius: 0
154
+ },
163
155
  "& .MuiCollapse-wrapperInner": {
164
156
  display: "flex",
165
157
  flexDirection: "column",
166
158
  paddingLeft: 0,
167
159
  paddingBottom: theme.vars.size.baseSpacings.sp1,
168
160
  paddingTop: 0,
169
- paddingRight: theme.vars.size.baseSpacings.sp1
161
+ "&:before": {
162
+ content: '""',
163
+ position: "absolute",
164
+ width: "1px",
165
+ top: "-4px",
166
+ bottom: "-4px",
167
+ left: "-8px",
168
+ backgroundColor: theme.vars.palette.background.default,
169
+ zIndex: 1
170
+ }
170
171
  },
171
172
  [`&.${CLASS_NAME_IS_ROOT}.${CLASS_NAME_MENU_ACTIVE}`]: {
172
- backgroundColor: theme.vars.palette.background.base,
173
- borderRadius: theme.vars.size.borderRadius["r1-5"]
173
+ backgroundColor: theme.vars.palette.background.default,
174
+ borderRadius: theme.vars.size.borderRadius.r2,
175
+ border: theme.vars.size.borderStroke.container,
176
+ borderColor: theme.vars.palette.primary.selectedOpacity,
177
+ boxShadow: theme.vars.customShadows.z1,
178
+ overflow: "hidden"
179
+ },
180
+ "& .MuiCollapse-root:first-of-type": {
181
+ position: "relative"
182
+ },
183
+ "&.menu-active .MuiCollapse-wrapper.MuiCollapse-vertical:first-of-type:before": {
184
+ content: '""',
185
+ position: "absolute",
186
+ width: "1px",
187
+ top: "5px",
188
+ bottom: "5px",
189
+ left: "16px",
190
+ borderLeft: theme.vars.size.borderStroke.container,
191
+ borderColor: theme.vars.palette.border.secondary,
192
+ zIndex: 1
193
+ }
194
+ }),
195
+ /**
196
+ * Contenedor que contiene el menu item principal.
197
+ */
198
+ containerNodeMenuItemMain: ({ theme }) => ({
199
+ gap: theme.vars.size.baseSpacings.sp1,
200
+ "& .M4LSideBar-wrapperMenuItem": {
201
+ padding: theme.vars.size.baseSpacings.sp1
174
202
  }
175
203
  }),
176
- containerNodeMenuItemMain: {},
177
204
  /**
178
205
  * Estilos del menu item principal.
179
206
  */
@@ -6,4 +6,4 @@ import { PromotionProps } from './types';
6
6
  * @param {VoidFunction} props.collapsed - Variable que guarda el estado de colapsado en desktop
7
7
  * @returns
8
8
  */
9
- export default function Promotion({ anchored }: PromotionProps): import("react/jsx-runtime").JSX.Element | null;
9
+ export default function FooterComponent({ anchored }: PromotionProps): import("react/jsx-runtime").JSX.Element | null;
@@ -2,9 +2,9 @@ import { jsx } from "react/jsx-runtime";
2
2
  import { u as useSideBar } from "../../hooks/useSideBar/index.js";
3
3
  import { T as TEST_PROP_ID } from "../../../../test/constants_no_mock.js";
4
4
  import { g as getNameDataTestId } from "../../tests/utils.js";
5
- import { d as ContainerFooterStyled } from "../../slots/SideBarSlots.js";
6
- function Promotion({ anchored }) {
7
- const { promotion } = useSideBar();
5
+ import { b as ContainerFooterStyled } from "../../slots/SideBarSlots.js";
6
+ function FooterComponent({ anchored }) {
7
+ const { footerComponent: promotion } = useSideBar();
8
8
  const ownerState = {
9
9
  anchored
10
10
  };
@@ -22,5 +22,5 @@ function Promotion({ anchored }) {
22
22
  );
23
23
  }
24
24
  export {
25
- Promotion as P
25
+ FooterComponent as F
26
26
  };
@@ -6,10 +6,16 @@ const footerSideBarStyles = {
6
6
  height: "auto",
7
7
  display: "grid",
8
8
  placeItems: "center",
9
- borderTop: `${theme.vars.size.baseSpacings["sp0-5"]} solid ${theme.vars.palette.border.secondary}`,
9
+ boxShadow: `0px -1px 0px 0px ${theme.vars.palette.border.disabled}`,
10
10
  borderWidth: ownerState?.anchored ? theme.vars.size.baseSpacings["sp0-5"] : theme.vars.size.baseSpacings.sp0,
11
11
  transition: "all 0.5s",
12
- paddingBottom: theme.vars.size.baseSpacings.sp2
12
+ paddingBottom: theme.vars.size.baseSpacings.sp2,
13
+ marginLeft: theme.vars.size.baseSpacings.sp4,
14
+ marginRight: theme.vars.size.baseSpacings.sp4,
15
+ ...!ownerState?.anchored && !theme.generalSettings.isMobile && {
16
+ transition: "all 0.5s",
17
+ visibility: "hidden"
18
+ }
13
19
  })
14
20
  };
15
21
  export {
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Componente que representa el encabezado del sidebar.
3
+ * @returns {JSX.Element}
4
+ */
5
+ export declare const HeaderComponent: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,37 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { u as useSideBar } from "../../hooks/useSideBar/index.js";
3
+ import { H as HeaderContainerComponentStyled, B as ButtonAnchoredStyled } from "../../slots/SideBarSlots.js";
4
+ import { useEnvironment } from "@m4l/core";
5
+ import { e as PATH_ARROW_RIGHT_ICON } from "../../constants.js";
6
+ import { useIsMobile } from "@m4l/graphics";
7
+ const HeaderComponent = () => {
8
+ const {
9
+ headerComponent,
10
+ onToggleAnchored,
11
+ anchored,
12
+ variant,
13
+ classes
14
+ } = useSideBar();
15
+ const { host_static_assets, environment_assets } = useEnvironment();
16
+ const isDesktop = !useIsMobile();
17
+ const handleToggleAnchored = () => {
18
+ onToggleAnchored(!anchored);
19
+ };
20
+ return /* @__PURE__ */ jsxs(HeaderContainerComponentStyled, { ownerState: { anchored, variant }, children: [
21
+ headerComponent && headerComponent,
22
+ variant === "microfrontend" && isDesktop && /* @__PURE__ */ jsx(
23
+ ButtonAnchoredStyled,
24
+ {
25
+ icon: `${host_static_assets}/${environment_assets}/${PATH_ARROW_RIGHT_ICON}`,
26
+ onClick: handleToggleAnchored,
27
+ rotationAngle: anchored ? 0 : 180,
28
+ className: classes.buttonAnchored,
29
+ variant: "contained",
30
+ role: "anchored-button"
31
+ }
32
+ )
33
+ ] });
34
+ };
35
+ export {
36
+ HeaderComponent as H
37
+ };
@@ -0,0 +1 @@
1
+ export { HeaderComponent } from './HeaderComponent';
@@ -0,0 +1,2 @@
1
+ import { HeaderComponentStyles } from '../../types';
2
+ export declare const headerComponentStyles: HeaderComponentStyles;
@@ -0,0 +1,40 @@
1
+ const headerComponentStyles = {
2
+ /**
3
+ * Wrapper para el encabezado del sidebar
4
+ */
5
+ headerContainerComponent: ({ theme, ownerState }) => ({
6
+ display: "flex",
7
+ flexDirection: "row",
8
+ justifyContent: "space-between",
9
+ alignItems: "center",
10
+ width: "100%",
11
+ gap: theme.vars.size.baseSpacings.sp3,
12
+ paddingLeft: theme.vars.size.baseSpacings.sp4,
13
+ paddingRight: theme.vars.size.baseSpacings.sp4,
14
+ paddingBottom: theme.vars.size.baseSpacings.sp3,
15
+ transition: "all 0.5s",
16
+ "& > div": {
17
+ transition: "all 0.5s"
18
+ },
19
+ ...!ownerState?.anchored && ownerState?.variant !== "host" && {
20
+ transition: "all 0.5s",
21
+ height: theme.vars.size.baseSpacings.sp14,
22
+ justifyContent: "center",
23
+ alignItems: "center",
24
+ paddingLeft: theme.vars.size.baseSpacings.sp2,
25
+ paddingRight: theme.vars.size.baseSpacings.sp2,
26
+ gap: "unset",
27
+ "& > div:not(.M4LSideBar-buttonAnchored)": {
28
+ visibility: "hidden",
29
+ transition: "all 0.5s"
30
+ }
31
+ }
32
+ }),
33
+ /**
34
+ * Styles applied to the button anchored in the header component
35
+ */
36
+ buttonAnchored: {}
37
+ };
38
+ export {
39
+ headerComponentStyles as h
40
+ };
@@ -1,13 +1,13 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { useFirstRender } from "@m4l/graphics";
3
3
  import { u as useSideBar } from "../../hooks/useSideBar/index.js";
4
- import { e as ContainerDesktopContentStyled, f as ContainerDesktopRootStyled } from "../../slots/SideBarSlots.js";
4
+ import { c as ContainerDesktopContentStyled, d as ContainerDesktopRootStyled } from "../../slots/SideBarSlots.js";
5
5
  import { S as SIDEBAR_KEY_COMPONENT } from "../../constants.js";
6
6
  import { C as ContentComponent } from "../ContentComponent/index.js";
7
7
  import { useState, useEffect } from "react";
8
8
  import { a as getComponentSlotRoot } from "../../../../utils/getComponentSlotRoot.js";
9
9
  const SideBarDesktop = () => {
10
- const { anchored, expandedWidth } = useSideBar();
10
+ const { anchored, expandedWidth, variant } = useSideBar();
11
11
  const [eventAnchored, setEventAnchored] = useState(anchored);
12
12
  const isFirstRender = useFirstRender([anchored]);
13
13
  useEffect(() => {
@@ -18,7 +18,8 @@ const SideBarDesktop = () => {
18
18
  }, [anchored]);
19
19
  const ownerState = {
20
20
  anchored: eventAnchored,
21
- expandedWidth
21
+ expandedWidth,
22
+ variant
22
23
  };
23
24
  const classRoot = getComponentSlotRoot(SIDEBAR_KEY_COMPONENT);
24
25
  return /* @__PURE__ */ jsx(
@@ -5,7 +5,7 @@ const sideBarDesktopStyles = {
5
5
  * sin que se oculte por el overflow hidden que tiene el contenido del sidebar
6
6
  */
7
7
  containerDesktopContent: ({ theme, ownerState }) => {
8
- const width = ownerState?.anchored ? ownerState?.expandedWidth : theme.vars.size.baseSpacings.sp4;
8
+ const width = ownerState?.anchored ? ownerState?.expandedWidth : ownerState?.variant === "host" ? 0 : theme.vars.size.baseSpacings.sp10;
9
9
  return {
10
10
  height: "100%",
11
11
  position: "relative",
@@ -17,42 +17,14 @@ const sideBarDesktopStyles = {
17
17
  /**
18
18
  * Styles applied to the root element of the `SideBar` component in desktop mode.
19
19
  */
20
- containerDesktopRoot: ({ ownerState, theme }) => ({
20
+ containerDesktopRoot: ({ theme }) => ({
21
21
  height: "100%",
22
- width: "fit-content",
22
+ width: "100%",
23
23
  overflow: "visible",
24
- borderRight: `1px solid ${theme.vars.palette.border.default}`,
25
- position: !ownerState?.anchored ? "absolute" : "relative",
24
+ borderRight: `1px solid ${theme.vars.palette.border.secondary}`,
26
25
  inset: 0,
27
26
  //add hover effect
28
27
  zIndex: 999
29
- }),
30
- /**
31
- * Container button to achores the sidebar.
32
- */
33
- containerBtnAnchored: ({ theme, ownerState }) => ({
34
- position: "absolute",
35
- right: "-20px",
36
- top: "20px",
37
- zIndex: 1e3,
38
- padding: `${theme.vars.size.baseSpacings.sp10} 10px`,
39
- "& .MuiButtonBase-root": {
40
- ...!ownerState?.anchored && {
41
- "&:before": {
42
- content: '""',
43
- position: "absolute",
44
- inset: 0,
45
- backgroundColor: theme.vars.palette.background.default,
46
- zIndex: -1
47
- }
48
- }
49
- },
50
- "&&& .M4LIconButton-root:hover": {
51
- backgroundColor: theme.vars.palette.primary.enabled,
52
- "& .M4LIcon-icon": {
53
- backgroundColor: `${theme.vars.palette.primary.contrastText}!important`
54
- }
55
- }
56
28
  })
57
29
  };
58
30
  export {
@@ -4,7 +4,7 @@ import { u as useSideBar } from "../../hooks/useSideBar/index.js";
4
4
  import { T as TEST_PROP_ID } from "../../../../test/constants_no_mock.js";
5
5
  import { g as getNameDataTestId } from "../../tests/utils.js";
6
6
  import { D as Drawer } from "./subcomponents/Drawer.js";
7
- import { g as ContainerSideBarMobileStyled } from "../../slots/SideBarSlots.js";
7
+ import { e as ContainerSideBarMobileStyled } from "../../slots/SideBarSlots.js";
8
8
  import { C as ContentComponent } from "../ContentComponent/index.js";
9
9
  const SideBarMobile = () => {
10
10
  const {
@@ -3,18 +3,19 @@ import { useModuleDictionary, useModuleSkeleton } from "@m4l/core";
3
3
  import { u as useSideBar } from "../../hooks/useSideBar/index.js";
4
4
  import { T as TEST_PROP_ID } from "../../../../test/constants_no_mock.js";
5
5
  import { g as getNameDataTestId } from "../../tests/utils.js";
6
- import { h as ContainerTreeGroupItemsStyled, i as ContainerContentGroupsStyled, j as ContainerContentTitleStyled } from "../../slots/SideBarSlots.js";
6
+ import { f as ContainerTreeGroupItemsStyled, g as ContainerContentGroupsStyled, h as ContainerContentTitleStyled } from "../../slots/SideBarSlots.js";
7
7
  import { N as NodeMenuItemMain } from "./subcomponents/NodeMenuItemMain/NodeMenuItemMain.js";
8
8
  import { u as useComponentSize } from "../../../../hooks/useComponentSize/useComponentSize.js";
9
9
  import { M as MenuItem } from "../../../mui_extended/MenuItem/MenuItem.js";
10
10
  const TreeGroupItems = (contentGroupsProps) => {
11
- const { menuData } = useSideBar();
11
+ const { menuData, anchored } = useSideBar();
12
12
  const { getLabel } = useModuleDictionary();
13
13
  const { size } = contentGroupsProps;
14
14
  const { currentSize } = useComponentSize(size);
15
15
  const isSkeleton = useModuleSkeleton();
16
16
  const ownerState = {
17
- noItems: menuData.length === 0
17
+ noItems: menuData.length === 0,
18
+ anchored
18
19
  };
19
20
  const renderItemsDisabled = () => {
20
21
  return /* @__PURE__ */ jsx(ContainerContentTitleStyled, { ownerState: { disabled: true }, children: /* @__PURE__ */ jsx(