wca-designsystem 1.0.99 → 1.0.104

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.99",
2
+ "version": "1.0.104",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -1,4 +1,5 @@
1
1
  import React, { useState, memo, useMemo, useEffect } from 'react';
2
+ import { Tooltip } from '@mantine/core';
2
3
  import { Collapse } from '@mantine/core';
3
4
  import Icone from '../Icone';
4
5
  import Arrow from '../../../assets/imagens/icons/NavDireita.svg';
@@ -54,7 +55,7 @@ const LinkNavbar = ({
54
55
  }
55
56
  }, [navHoverIsOpen]);
56
57
 
57
- return (
58
+ const content = (
58
59
  <>
59
60
  <S.LinksControl
60
61
  data-active={navHoverIsOpen}
@@ -68,10 +69,11 @@ const LinkNavbar = ({
68
69
  <S.LinkSvg data-active={navHoverIsOpen}>
69
70
  <Icone fill={color} width={25} height={25} svg={icon} />
70
71
  </S.LinkSvg>
72
+
71
73
  <p>{label}</p>
72
74
  </S.LinkWrapper>
73
75
 
74
- {hasLinks && (
76
+ {hasLinks && navHoverIsOpen && (
75
77
  <Icone
76
78
  svg={Arrow}
77
79
  className="chevron"
@@ -83,9 +85,36 @@ const LinkNavbar = ({
83
85
  />
84
86
  )}
85
87
  </S.LinksControl>
88
+
86
89
  {hasLinks ? <Collapse in={opened}>{items}</Collapse> : null}
87
90
  </>
88
91
  );
92
+
93
+ return navHoverIsOpen ? (
94
+ content
95
+ ) : (
96
+ <Tooltip
97
+ label={label}
98
+ position="right"
99
+ withArrow
100
+ offset={12}
101
+ transitionProps={{ transition: 'fade', duration: 150 }}
102
+ styles={{
103
+ tooltip: {
104
+ backgroundColor: '#fff',
105
+ color: '#1a1a1a',
106
+ boxShadow: '0 4px 12px rgba(0,0,0,0.15)',
107
+ fontSize: '14px',
108
+ fontWeight: 500,
109
+ },
110
+ arrow: {
111
+ backgroundColor: '#fff',
112
+ },
113
+ }}
114
+ >
115
+ <div>{content}</div>
116
+ </Tooltip>
117
+ );
89
118
  };
90
119
 
91
120
  export default memo(LinkNavbar);
@@ -12,10 +12,7 @@ export const LinksControl = styled(Link)`
12
12
  cursor: pointer;
13
13
  border: none;
14
14
  padding: 0;
15
- box-shadow: 0px 2px 0px 0px #c2dff9;
16
-
17
-
18
-
15
+
19
16
  :hover {
20
17
  opacity: 0.7;
21
18
  }
@@ -31,6 +28,7 @@ export const LinkWrapper = styled.div`
31
28
  display: block;
32
29
  width: 100%;
33
30
 
31
+
34
32
  p {
35
33
  font-size: ${theme.sizes.small};
36
34
  font-weight: 400;
@@ -91,8 +89,6 @@ export const Links = styled(Link)`
91
89
  font-weight: 400;
92
90
  color: ${theme.colors.blackSti};
93
91
  margin-left: 20px;
94
- border-left: 2px solid #c2dff9;
95
- border-bottom: 2px solid #c2dff9;
96
92
  text-align: start;
97
93
  color: ${theme.colors.blackWca};
98
94
  background-color: ${theme.colors.white};
@@ -105,7 +101,6 @@ export const Links = styled(Link)`
105
101
  }
106
102
 
107
103
  &[data-active='true'] {
108
- background-color: ${theme.colors.blue};
109
104
  color: ${theme.colors.white};
110
105
 
111
106
  svg {
@@ -1,4 +1,4 @@
1
- import React from 'react'
1
+ import React, { useState } from 'react'
2
2
  import { Container } from '@mantine/core'
3
3
  import * as S from './styles'
4
4
  import Navbar from '../Navbar'
@@ -13,7 +13,7 @@ type ConchaAplicacaolType = {
13
13
  notificacoes: NotificationsProps
14
14
  links?: LinksProps[]
15
15
  modulo: string
16
- isNavHover: boolean
16
+ // isNavHover: boolean
17
17
  navbarRef?: React.RefObject<HTMLDivElement>
18
18
  temNotificacoes?: boolean
19
19
  temChatBot?: boolean
@@ -34,7 +34,7 @@ export function ConchaAplicacao({
34
34
  temNotificacoes,
35
35
  temChatBot,
36
36
  openChatBot,
37
- isNavHover,
37
+ // isNavHover,
38
38
  icone,
39
39
  info,
40
40
  subTitulo,
@@ -47,6 +47,8 @@ export function ConchaAplicacao({
47
47
  links,
48
48
  navbarRef,
49
49
  }: ConchaAplicacaolType) {
50
+ const [isNavHover, setisNavHover] = useState(true);
51
+
50
52
  return (
51
53
  <S.ConchaAplicacaoWrapper
52
54
  data-testid="app-shell-wrapper"
@@ -69,6 +71,7 @@ export function ConchaAplicacao({
69
71
  temChatBot={temChatBot}
70
72
  openChatBot={openChatBot}
71
73
  onTrocarModulos={onTrocarModulos!}
74
+ setisNavHover={setisNavHover}
72
75
  />
73
76
  </S.NavbarWrapper>
74
77
 
@@ -9,7 +9,7 @@ export default {
9
9
  } as Meta
10
10
 
11
11
  const props = {
12
- isHover: true,
12
+ isHover: false,
13
13
  links: LinksDinamicosMock,
14
14
  temChatBot: true,
15
15
  module: 'Exemplo',
@@ -24,6 +24,7 @@ export type NavbarType = {
24
24
  temChatBot?: boolean
25
25
  openChatBot?: () => void
26
26
  onTrocarModulos?: (() => void) | undefined
27
+ setisNavHover: (prev: boolean | any) => void;
27
28
  }
28
29
  const Navbar = ({
29
30
  isHover,
@@ -31,6 +32,7 @@ const Navbar = ({
31
32
  links,
32
33
  onTrocarModulos,
33
34
  openChatBot,
35
+ setisNavHover,
34
36
  temChatBot = false,
35
37
  modulo,
36
38
  activeLink,
@@ -46,12 +48,34 @@ const Navbar = ({
46
48
  >
47
49
  <div>
48
50
  <S.NavbarHeader className={isHover ? 'nav-hover' : ''}>
49
- <Icone
50
- svg={LogoHeader}
51
- className="logo"
52
- width={isHover ? 200 : 50}
53
- height={80}
54
- />
51
+ <Tooltip
52
+ label={isHover ? 'Fechar menu' : 'Abrir menu'}
53
+ position="right"
54
+ withArrow
55
+ offset={10}
56
+ styles={{
57
+ tooltip: {
58
+ backgroundColor: '#fff',
59
+ color: '#1a1a1a',
60
+ boxShadow: '0 4px 12px rgba(0,0,0,0.15)',
61
+ fontSize: '14px',
62
+ fontWeight: 500,
63
+ },
64
+ arrow: {
65
+ backgroundColor: '#fff',
66
+ },
67
+ }}
68
+ >
69
+ <div>
70
+ <Icone
71
+ svg={LogoHeader}
72
+ className="logo"
73
+ width={isHover ? 200 : 50}
74
+ height={80}
75
+ onClick={() => setisNavHover((prev: boolean) => !prev)}
76
+ />
77
+ </div>
78
+ </Tooltip>
55
79
 
56
80
  <IconeBotao
57
81
  tipo="round"
@@ -81,6 +105,7 @@ const Navbar = ({
81
105
  modulo={modulo}
82
106
  icon={CiclosEncerrados}
83
107
  />
108
+
84
109
  <GrupoDeLinks
85
110
  color={color}
86
111
  activeLink={activeLink}
@@ -19,11 +19,7 @@ export const NavbarWrapper = styled.div<NavbarWrapperProps>`
19
19
  flex-direction: column;
20
20
 
21
21
  .logo {
22
- margin: 30px 0;
23
-
24
- &[data-active='true'] {
25
- border-right: 5px solid ${color};
26
- }
22
+ cursor: pointer;
27
23
  }
28
24
  `}
29
25
  `
@@ -82,7 +82,7 @@ function CardDestaque({
82
82
  );
83
83
  return (
84
84
  <S.CardDestaqueWrapper>
85
- <S.CardDestaqueCabecalho cor={colorTitulo}>
85
+ <S.CardDestaqueCabecalho $cor={colorTitulo}>
86
86
  <h3 color={theme.colors.purpleSec}>{titulo}</h3>
87
87
  <div className="botoes">
88
88
  <IconeBotao
@@ -10,14 +10,14 @@ export const CardDestaqueWrapper = styled.div`
10
10
  `}
11
11
  `;
12
12
 
13
- export const CardDestaqueCabecalho = styled.div<{ cor: string | undefined }>`
14
- ${({ theme, cor }) => css`
13
+ export const CardDestaqueCabecalho = styled.div<{ $cor: string | undefined }>`
14
+ ${({ theme, $cor }) => css`
15
15
  display: flex;
16
16
  justify-content: space-between;
17
17
  align-items: center;
18
18
 
19
19
  h3 {
20
- color: ${cor || theme.colors.blue};
20
+ color: ${$cor || theme.colors.blue};
21
21
  font-weight: bold;
22
22
  }
23
23
 
@@ -36,7 +36,9 @@ const GrupoDeLinks = ({
36
36
  </S.LinkActive>
37
37
  ));
38
38
 
39
- return <S.LinkGroupWrapper color={color}>{LinkToRender}</S.LinkGroupWrapper>;
39
+ return <S.LinkGroupWrapper color={color}>
40
+ {LinkToRender}
41
+ </S.LinkGroupWrapper>;
40
42
  };
41
43
 
42
44
  export default GrupoDeLinks;
@@ -6,6 +6,9 @@ type LinkProps = {
6
6
 
7
7
  export const LinkGroupWrapper = styled.div<LinkProps>`
8
8
  ${({ theme, color }) => css`
9
+
10
+ padding: 10px;
11
+
9
12
  .link {
10
13
  p {
11
14
  color: ${theme.colors.white};
@@ -16,8 +19,19 @@ export const LinkGroupWrapper = styled.div<LinkProps>`
16
19
  }
17
20
 
18
21
  &[data-active] {
19
- background-color: ${theme.colors.white};
20
- border-right: 5px solid ${color};
22
+ color: ${theme.colors.white};
23
+ background-color: #ffffff0d;
24
+ box-shadow: rgba(0, 0, 0, 0.12) 0px 1px 3px, rgba(0, 0, 0, 0.24) 0px 1px 2px;
25
+ border-radius: 8px;
26
+
27
+ svg {
28
+ fill: white !important;
29
+ }
30
+
31
+ p {
32
+ color: white !important;
33
+
34
+ }
21
35
 
22
36
  p {
23
37
  color: ${color};
@@ -32,6 +46,8 @@ export const LinkGroupWrapper = styled.div<LinkProps>`
32
46
  .link.nav-hover {
33
47
  background-color: ${theme.colors.white};
34
48
 
49
+
50
+
35
51
  p {
36
52
  color: ${color};
37
53
  }
@@ -41,15 +57,14 @@ export const LinkGroupWrapper = styled.div<LinkProps>`
41
57
  }
42
58
 
43
59
  &[data-active] {
44
- background-color: ${color};
45
- border-right: 5px solid ${theme.colors.white};
46
-
60
+ background-color: #ffffff0d !important;
61
+
47
62
  p {
48
- color: ${theme.colors.white};
63
+ color: ${color} !important;
49
64
  }
50
65
 
51
66
  svg {
52
- fill: ${theme.colors.white};
67
+ fill: ${color} !important;
53
68
  }
54
69
  }
55
70
  }
@@ -59,7 +74,8 @@ export const LinkGroupWrapper = styled.div<LinkProps>`
59
74
  export const LinkActive = styled.div<LinkProps>`
60
75
  ${({ color }) => css`
61
76
  background-color: ${color};
62
- border-left: 5px solid ${color};
63
- padding: 3px 0;
77
+ padding: 2px 0;
78
+ margin-top: 2px;
79
+
64
80
  `}
65
81
  `;
@@ -9,60 +9,69 @@ export default {
9
9
  } as Meta
10
10
 
11
11
  const passos: PassoProps[] = [
12
- {
13
- titulo: 'Execução do Desdobramento',
14
- subTitulo: 'Duas linhas de resumo sobre este passo.',
15
- id: 0,
16
- desabilitado: false,
17
- },
18
- {
19
- titulo: 'Execução do Desdobramento',
20
- subTitulo: 'Duas linhas de resumo sobre este passo.',
21
- id: 1,
22
- desabilitado: false,
23
- },
24
- {
25
- titulo: 'Execução do Desdobramento',
26
- subTitulo: 'Duas linhas de resumo sobre este passo.',
27
- id: 2,
28
- desabilitado: false,
29
- },
30
- {
31
- titulo: 'Execução do Desdobramento',
32
- subTitulo: 'Duas linhas de resumo sobre este passo.',
33
- id: 3,
34
- desabilitado: false,
35
- },
36
- {
37
- titulo: 'Execução do Desdobramento',
38
- subTitulo: 'Duas linhas de resumo sobre este passo.',
39
- id: 4,
40
- desabilitado: false,
41
- },
42
- {
43
- titulo: 'Execução do Desdobramento',
44
- subTitulo: 'Duas linhas de resumo sobre este passo.',
45
- id: 5,
46
- desabilitado: false,
47
- },
48
- {
49
- titulo: 'Execução do Desdobramento',
50
- subTitulo: 'Duas linhas de resumo sobre este passo.',
51
- id: 6,
52
- desabilitado: false,
53
- },
54
- {
55
- titulo: 'Execução do Desdobramento',
56
- subTitulo: 'Duas linhas de resumo sobre este passo.',
57
- id: 7,
58
- desabilitado: true,
59
- },
60
- {
61
- titulo: 'Execução do Desdobramento',
62
- subTitulo: 'Duas linhas de resumo sobre este passo.',
63
- id: 8,
64
- desabilitado: true,
65
- },
12
+ {
13
+ titulo: "Configuração Cálculos",
14
+ subTitulo: "Configurações básicas para execução do cálculo de desdobramento de metas.",
15
+ id: 0,
16
+ desabilitado: false,
17
+ configurado: false
18
+ },
19
+ {
20
+ titulo: "Configuração de Histórico Referência",
21
+ subTitulo: "Configure produtos de referência para os materiais que não possuem histórico de vendas nos meses considerados na configuração do cálculo de representatividade histórica.",
22
+ id: 1,
23
+ desabilitado: false,
24
+ configurado: true
25
+ },
26
+ {
27
+ titulo: "Meta Mínima Obrigatória",
28
+ subTitulo: "Defina os materiais (ou família de produto) que precisam estar em todos os clientes, independente do histórico de vendas real ou fictício, e configure o valor mínimo obrigatório.",
29
+ id: 2,
30
+ desabilitado: false,
31
+ configurado: false
32
+ },
33
+ {
34
+ titulo: "Execução Desdobramento",
35
+ subTitulo: "Inicie o processamento dos cálculos configurados, acompanhe e confira os resultados gerados.",
36
+ id: 3,
37
+ desabilitado: false,
38
+ configurado: true
39
+ },
40
+ {
41
+ titulo: "Meta Fixa",
42
+ subTitulo: "Bloqueie materiais ou famílias que tem metas desdobradas para qualquer movimentação durante a execução crítica.",
43
+ id: 4,
44
+ desabilitado: false,
45
+ configurado: true
46
+ },
47
+ {
48
+ titulo: "Bloqueio Filial",
49
+ subTitulo: "Configure regras de bloqueio filial para restringir a movimentação de volume entre elas. Ainda que o executor de crítica seja hierarquicamente responsável pelas filiais, a movimentação vai respeitar o bloqueio configurado.",
50
+ id: 5,
51
+ desabilitado: false,
52
+ configurado: true
53
+ },
54
+ {
55
+ titulo: "Trava Movimentação",
56
+ subTitulo: "Configure limites para a retirada e alocação dos volumes pelos usuários executores de crítica.",
57
+ id: 6,
58
+ desabilitado: false,
59
+ configurado: false
60
+ },
61
+ {
62
+ titulo: "Trava Segmentação",
63
+ subTitulo: "Configure grupos de segmentação tática para restringir a movimentação entre eles durante a execução crítica.",
64
+ id: 7,
65
+ desabilitado: false,
66
+ configurado: false
67
+ },
68
+ {
69
+ titulo: "Agenda da Crítica",
70
+ subTitulo: "Defina os períodos de execução das críticas por nível hierárquico e exceções específicas pessoa, controlando a liberação e encerramento de críticas dentro de um ciclo.",
71
+ id: 8,
72
+ desabilitado: false,
73
+ configurado: false
74
+ }
66
75
  ]
67
76
 
68
77
  // Template com state funcional