@m4l/components 9.2.64 → 9.2.65-JT18072025.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 (130) hide show
  1. package/components/AppBar/AppBar.js +12 -10
  2. package/components/AppBar/constants.d.ts +1 -1
  3. package/components/AppBar/constants.js +1 -1
  4. package/components/AppBar/slots/AppBarEnum.d.ts +1 -5
  5. package/components/AppBar/slots/AppBarEnum.js +0 -4
  6. package/components/AppBar/slots/AppBarSlots.d.ts +4 -18
  7. package/components/AppBar/slots/AppBarSlots.js +3 -27
  8. package/components/AppBar/styles.js +0 -42
  9. package/components/AppBar/types.d.ts +8 -0
  10. package/components/Chip/ChipStyles.js +1 -1
  11. package/components/DataGrid/Datagrid.styles.js +112 -9
  12. package/components/DataGrid/formatters/ColumnBooleanFormatter/formatter.d.ts +2 -1
  13. package/components/DataGrid/formatters/ColumnBooleanFormatter/formatter.js +2 -3
  14. package/components/DataGrid/formatters/ColumnBooleanFormatter/useColumnBoolean.d.ts +1 -1
  15. package/components/DataGrid/formatters/ColumnChipStatusFormatter/formatter.d.ts +2 -1
  16. package/components/DataGrid/formatters/ColumnChipStatusFormatter/formatter.js +5 -4
  17. package/components/DataGrid/formatters/ColumnChipStatusFormatter/useColumnChipStatus.d.ts +1 -1
  18. package/components/DataGrid/formatters/ColumnConcatenatedValuesFormatter/formatter.d.ts +2 -1
  19. package/components/DataGrid/formatters/ColumnConcatenatedValuesFormatter/formatter.js +11 -4
  20. package/components/DataGrid/formatters/ColumnConcatenatedValuesFormatter/useColumnConcatenatedValues.d.ts +1 -1
  21. package/components/DataGrid/formatters/ColumnDateFormatter/formatter.d.ts +2 -1
  22. package/components/DataGrid/formatters/ColumnDateFormatter/formatter.js +13 -4
  23. package/components/DataGrid/formatters/ColumnDateFormatter/useColumnDate.d.ts +1 -1
  24. package/components/DataGrid/formatters/ColumnIconFormatter/formatter.d.ts +2 -1
  25. package/components/DataGrid/formatters/ColumnIconFormatter/formatter.js +2 -2
  26. package/components/DataGrid/formatters/ColumnIconFormatter/useColumnIcon.d.ts +1 -1
  27. package/components/DataGrid/formatters/ColumnInteractiveCheckFormatter/types.d.ts +2 -2
  28. package/components/DataGrid/formatters/ColumnNestedValueFormatter/formatter.d.ts +2 -1
  29. package/components/DataGrid/formatters/ColumnNestedValueFormatter/formatter.js +4 -3
  30. package/components/DataGrid/formatters/ColumnNestedValueFormatter/useColumnNestedValue.d.ts +1 -1
  31. package/components/DataGrid/formatters/ColumnPointsFormatter/formatter.d.ts +2 -1
  32. package/components/DataGrid/formatters/ColumnPointsFormatter/formatter.js +13 -5
  33. package/components/DataGrid/formatters/ColumnPointsFormatter/useColumnPoints.d.ts +1 -1
  34. package/components/DataGrid/formatters/ColumnPriceFormatter/formatter.d.ts +2 -1
  35. package/components/DataGrid/formatters/ColumnPriceFormatter/formatter.js +11 -4
  36. package/components/DataGrid/formatters/ColumnPriceFormatter/useColumnPrice.d.ts +1 -1
  37. package/components/DataGrid/formatters/ColumnSetCheckFormatter/formatter.d.ts +2 -2
  38. package/components/DataGrid/formatters/ColumnSetCheckFormatter/formatter.js +1 -1
  39. package/components/DataGrid/formatters/ColumnSetCheckFormatter/useColumnSetCheck.d.ts +1 -1
  40. package/components/DataGrid/formatters/ColumnUncertaintyFormatter/formatter.d.ts +2 -1
  41. package/components/DataGrid/formatters/ColumnUncertaintyFormatter/formatter.js +15 -6
  42. package/components/DataGrid/formatters/ColumnUncertaintyFormatter/useColumnUncertainty.d.ts +1 -1
  43. package/components/DataGrid/index.d.ts +1 -1
  44. package/components/DataGrid/subcomponents/HeaderActions/subcomponents/Settings/subcomponents/ColumnsConfig/index.js +4 -5
  45. package/components/DataGrid/subcomponents/Table/hooks/getDragHeaderRenderer.d.ts +2 -2
  46. package/components/DataGrid/subcomponents/Table/hooks/useHeaderMenuActions.d.ts +2 -2
  47. package/components/DataGrid/subcomponents/Table/hooks/useHeaderMenuActions.js +15 -6
  48. package/components/DataGrid/subcomponents/Table/hooks/useSortColumnsRows.js +13 -7
  49. package/components/DataGrid/subcomponents/Table/index.d.ts +3 -1
  50. package/components/DataGrid/subcomponents/Table/index.js +38 -9
  51. package/components/DataGrid/subcomponents/Table/subcomponents/ActionsColumn.js +1 -1
  52. package/components/DataGrid/subcomponents/Table/subcomponents/CheckboxFormatter.d.ts +2 -2
  53. package/components/DataGrid/subcomponents/Table/subcomponents/DraggableHeaderRenderer.d.ts +2 -2
  54. package/components/DataGrid/subcomponents/Table/subcomponents/DraggableHeaderRenderer.js +10 -8
  55. package/components/DataGrid/subcomponents/Table/subcomponents/HeaderRenderClick/HeaderRenderClick.js +1 -1
  56. package/components/DataGrid/subcomponents/Table/subcomponents/SelectColumn.js +7 -7
  57. package/components/DataGrid/subcomponents/editors/TextEditor/index.d.ts +15 -5
  58. package/components/DataGrid/types.d.ts +9 -4
  59. package/components/LoadingError/slots/LoadingErrorSlots.js +1 -1
  60. package/components/NumberInput/hooks/useNumberInput/useNumberInput.js +0 -2
  61. package/components/SideBar/SideBar.js +6 -2
  62. package/components/SideBar/constants.d.ts +8 -6
  63. package/components/SideBar/constants.js +8 -8
  64. package/components/SideBar/context/sideBarContext/index.js +9 -10
  65. package/components/SideBar/context/sideBarContext/types.d.ts +2 -10
  66. package/components/SideBar/slots/SideBarEnum.d.ts +8 -7
  67. package/components/SideBar/slots/SideBarEnum.js +6 -5
  68. package/components/SideBar/slots/SideBarSlots.d.ts +12 -9
  69. package/components/SideBar/slots/SideBarSlots.js +36 -28
  70. package/components/SideBar/styles.js +3 -3
  71. package/components/SideBar/subcomponents/ContentComponent/index.js +12 -68
  72. package/components/SideBar/subcomponents/ContentComponent/style.js +134 -107
  73. package/components/SideBar/subcomponents/{Promotion → FooterComponent}/index.d.ts +1 -1
  74. package/components/SideBar/subcomponents/{Promotion → FooterComponent}/index.js +4 -4
  75. package/components/SideBar/subcomponents/{Promotion → FooterComponent}/styles.js +8 -2
  76. package/components/SideBar/subcomponents/HeaderComponent/HeaderComponent.d.ts +5 -0
  77. package/components/SideBar/subcomponents/HeaderComponent/HeaderComponent.js +37 -0
  78. package/components/SideBar/subcomponents/HeaderComponent/index.d.ts +1 -0
  79. package/components/SideBar/subcomponents/HeaderComponent/index.js +1 -0
  80. package/components/SideBar/subcomponents/HeaderComponent/styles.d.ts +2 -0
  81. package/components/SideBar/subcomponents/HeaderComponent/styles.js +40 -0
  82. package/components/SideBar/subcomponents/SideBarDesktop/index.js +4 -3
  83. package/components/SideBar/subcomponents/SideBarDesktop/styles.js +4 -32
  84. package/components/SideBar/subcomponents/SideBarMobile/index.js +1 -1
  85. package/components/SideBar/subcomponents/TreeGroupItems/index.js +4 -3
  86. package/components/SideBar/subcomponents/TreeGroupItems/styles.js +112 -2
  87. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/AdormentIcon/AdormentIcon.d.ts +7 -0
  88. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/AdormentIcon/AdormentIcon.js +12 -0
  89. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/AdormentIcon/types.d.ts +4 -0
  90. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/NodeMenuItem/index.js +9 -7
  91. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/NodeMenuItem/types.d.ts +1 -0
  92. package/components/SideBar/subcomponents/TreeGroupItems/subcomponents/NodeMenuItemMain/NodeMenuItemMain.js +11 -6
  93. package/components/SideBar/types.d.ts +12 -7
  94. package/components/areas/contexts/AreasContext/store.js +2 -2
  95. package/components/commercial/HamburgerMenu/HamburgerMenu.js +1 -2
  96. package/components/formatters/BooleanFormatter/BooleanFormatter.styles.js +1 -1
  97. package/components/hook-form/RHFAutocompleteAsync/reducer/RHFAutocompleteReducer.js +0 -5
  98. package/components/hook-form/RHFPeriod/subcomponents/Period/Period.js +4 -4
  99. package/components/hook-form/RHFPeriod/subcomponents/Period/dictionary.d.ts +1 -1
  100. package/components/hook-form/RHFPeriod/subcomponents/Period/dictionary.js +7 -6
  101. package/components/mui_extended/MenuItem/MenuItem.js +3 -2
  102. package/components/mui_extended/MenuItem/types.d.ts +4 -0
  103. package/components/mui_extended/TabContent/TabContent.js +2 -2
  104. package/components/mui_extended/TabContent/TabContent.styles.js +1 -1
  105. package/components/mui_extended/TabContent/types.d.ts +13 -1
  106. package/package.json +2 -2
  107. package/storybook/components/DataGrid/DataGrid.stories.d.ts +4 -0
  108. package/storybook/components/DataGrid/helpers/types.d.ts +3 -2
  109. package/storybook/components/SideBar/SideBar.stories.d.ts +5 -11
  110. package/storybook/components/SideBar/subcomponents/FooterComponentHost/FooterComponentHost.d.ts +4 -0
  111. package/storybook/components/SideBar/subcomponents/FooterComponentHost/index.d.ts +1 -0
  112. package/storybook/components/SideBar/subcomponents/FooterComponentMicrofrontend/FooterComponentMicrofrontend.d.ts +4 -0
  113. package/storybook/components/SideBar/subcomponents/FooterComponentMicrofrontend/FooterComponentMicrofrontend.stories.d.ts +14 -0
  114. package/storybook/components/SideBar/subcomponents/FooterComponentMicrofrontend/constants.d.ts +1 -0
  115. package/storybook/components/SideBar/subcomponents/FooterComponentMicrofrontend/index.d.ts +1 -0
  116. package/storybook/components/SideBar/subcomponents/HeaderComponentHost/HeaderComponentHost.d.ts +5 -0
  117. package/storybook/components/SideBar/subcomponents/HeaderComponentHost/constants.d.ts +1 -0
  118. package/storybook/components/SideBar/subcomponents/HeaderComponentMicrofrontend/HeaderComponentMicrofrontend.d.ts +5 -0
  119. package/storybook/components/SideBar/subcomponents/HeaderComponentMicrofrontend/constants.d.ts +1 -0
  120. package/utils/getSizeStyles/getSizeStyles.d.ts +1 -1
  121. package/components/SideBar/subcomponents/HeaderSidebar/index.d.ts +0 -6
  122. package/components/SideBar/subcomponents/HeaderSidebar/styles.d.ts +0 -2
  123. package/components/SideBar/subcomponents/HeaderSidebar/styles.js +0 -24
  124. package/components/SideBar/subcomponents/HeaderSidebar/types.d.ts +0 -5
  125. package/helpers/getFieldValueWithRow.js +0 -10
  126. package/storybook/components/SideBar/subcomponents/FooterPromotion/FooterPromotion.d.ts +0 -4
  127. package/storybook/components/SideBar/subcomponents/FooterPromotion/index.d.ts +0 -1
  128. /package/components/SideBar/subcomponents/{Promotion → FooterComponent}/styles.d.ts +0 -0
  129. /package/components/SideBar/subcomponents/{Promotion → FooterComponent}/types.d.ts +0 -0
  130. /package/storybook/components/SideBar/subcomponents/{FooterPromotion → FooterComponentHost}/constants.d.ts +0 -0
@@ -1,14 +1,14 @@
1
1
  import { s as sideBarDesktopStyles } from "./subcomponents/SideBarDesktop/styles.js";
2
2
  import { c as contentGroupStyles } from "./subcomponents/TreeGroupItems/styles.js";
3
- import { h as headerSidebarStyles } from "./subcomponents/HeaderSidebar/styles.js";
4
- import { f as footerSideBarStyles } from "./subcomponents/Promotion/styles.js";
3
+ import { h as headerComponentStyles } from "./subcomponents/HeaderComponent/styles.js";
4
+ import { f as footerSideBarStyles } from "./subcomponents/FooterComponent/styles.js";
5
5
  import { c as contentComponentStyles } from "./subcomponents/ContentComponent/style.js";
6
6
  import { s as sideBarMobileStyles } from "./subcomponents/SideBarMobile/styles.js";
7
7
  const sideBarStyles = {
8
8
  ...sideBarDesktopStyles,
9
9
  ...sideBarMobileStyles,
10
10
  ...contentGroupStyles,
11
- ...headerSidebarStyles,
11
+ ...headerComponentStyles,
12
12
  ...footerSideBarStyles,
13
13
  ...contentComponentStyles
14
14
  };
@@ -1,79 +1,23 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { useIsMobile } from "@m4l/graphics";
3
- import { useEnvironment } from "@m4l/core";
1
+ import { jsx, jsxs } from "react/jsx-runtime";
4
2
  import { u as useSideBar } from "../../hooks/useSideBar/index.js";
5
- import { C as ContentComponentRootStyled, a as ContainerBtnAnchoredStyled, b as ContentComponentHideStyled, c as ContainerTreeItemsAndPromotionStyled } from "../../slots/SideBarSlots.js";
3
+ import { C as ContentComponentRootStyled, a as ContainerTreeItemsHeaderFooterStyled } from "../../slots/SideBarSlots.js";
6
4
  import { T as TreeGroupItems } from "../TreeGroupItems/index.js";
7
- import { P as Promotion } from "../Promotion/index.js";
8
- import { a as getComponentSlotRoot } from "../../../../utils/getComponentSlotRoot.js";
9
- import { a as PATH_ARROW_RIGHT_ICON, C as CONTAINER_BTN_ANCHORED } from "../../constants.js";
10
- import { useRef } from "react";
5
+ import { F as FooterComponent } from "../FooterComponent/index.js";
11
6
  import { u as useComponentSize } from "../../../../hooks/useComponentSize/useComponentSize.js";
12
- import { I as IconButton } from "../../../mui_extended/IconButton/IconButton.js";
7
+ import { H as HeaderComponent } from "../HeaderComponent/HeaderComponent.js";
13
8
  const ContentComponent = () => {
14
- const { anchored, onToggleAnchored, expandedWidth, size, classes, isHover, setIsHover } = useSideBar();
9
+ const { anchored, onToggleAnchored, expandedWidth, size, variant } = useSideBar();
15
10
  const ownerState = {
16
11
  expandedWidth,
17
- anchored
12
+ anchored,
13
+ variant
18
14
  };
19
- const btnAnchoredRef = useRef(null);
20
- const contentRef = useRef(null);
21
- const { host_static_assets, environment_assets } = useEnvironment();
22
- const isDesktop = !useIsMobile();
23
15
  const { currentSize } = useComponentSize(size);
24
- const classRootBtnAnchored = getComponentSlotRoot(CONTAINER_BTN_ANCHORED);
25
- const handlerAnchoredButton = () => {
26
- onToggleAnchored(!anchored);
27
- };
28
- return /* @__PURE__ */ jsxs(ContentComponentRootStyled, { ownerState, children: [
29
- isDesktop && /* @__PURE__ */ jsx(
30
- ContainerBtnAnchoredStyled,
31
- {
32
- ref: btnAnchoredRef,
33
- className: classRootBtnAnchored,
34
- ownerState,
35
- onMouseLeave: (event) => {
36
- if (!anchored && contentRef.current && !contentRef.current.contains(event.relatedTarget)) {
37
- setIsHover(false);
38
- }
39
- },
40
- children: /* @__PURE__ */ jsx(
41
- IconButton,
42
- {
43
- role: "anchored-button",
44
- variant: anchored ? "contained" : "outline",
45
- rotationAngle: !anchored ? 0 : 180,
46
- onClick: handlerAnchoredButton,
47
- src: `${host_static_assets}/${environment_assets}/${PATH_ARROW_RIGHT_ICON}`,
48
- color: anchored ? "primary" : "default"
49
- }
50
- )
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
- }
75
- )
76
- ] });
16
+ return /* @__PURE__ */ jsx(ContentComponentRootStyled, { ownerState, children: /* @__PURE__ */ jsxs(ContainerTreeItemsHeaderFooterStyled, { ownerState, children: [
17
+ /* @__PURE__ */ jsx(HeaderComponent, {}),
18
+ /* @__PURE__ */ jsx(TreeGroupItems, { size: currentSize }),
19
+ /* @__PURE__ */ jsx(FooterComponent, { onToggleAnchored, anchored })
20
+ ] }) });
77
21
  };
78
22
  export {
79
23
  ContentComponent as C
@@ -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 {