norma-library 0.6.65 → 0.6.67

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 (202) hide show
  1. package/.babelrc.json +18 -18
  2. package/.prettierignore +10 -10
  3. package/.prettierrc.json +20 -20
  4. package/.storybook/main.ts +20 -20
  5. package/.storybook/preview.ts +15 -15
  6. package/README.md +43 -43
  7. package/commitlint.config.js +1 -1
  8. package/dist/esm/components/Box/interfaces.d.ts +0 -1
  9. package/dist/esm/components/Box/styles.d.ts +0 -1
  10. package/dist/esm/components/Breadcrumb/styles.d.ts +0 -1
  11. package/dist/esm/components/Card.js +7 -11
  12. package/dist/esm/components/Card.js.map +1 -1
  13. package/dist/esm/components/DateInput/styles.d.ts +0 -1
  14. package/dist/esm/components/Icons.d.ts +2 -2
  15. package/dist/esm/components/MultiSelectInput/components/Option/styles.d.ts +0 -1
  16. package/dist/esm/components/MultiSelectInput/styles.d.ts +0 -1
  17. package/dist/esm/components/SelectInput/components/Option/styles.d.ts +0 -1
  18. package/dist/esm/components/SelectInput/styles.d.ts +0 -1
  19. package/dist/esm/components/StatusModal/StatusModal.style.d.ts +1 -2
  20. package/dist/esm/components/Table/components/header/styles.d.ts +0 -1
  21. package/dist/esm/components/Table/components/pagination/styles.d.ts +0 -1
  22. package/dist/esm/components/Table/styles.d.ts +0 -1
  23. package/dist/esm/components/TextInput/styles.d.ts +0 -1
  24. package/dist/esm/components/Typography/Text/interfaces.d.ts +0 -1
  25. package/dist/esm/components/Typography/Text/styles.d.ts +0 -1
  26. package/dist/esm/components/Typography/Title/interfaces.d.ts +0 -1
  27. package/dist/esm/components/Typography/Title/styles.d.ts +0 -1
  28. package/dist/esm/components/UncontrolledTable/components/header/styles.d.ts +0 -1
  29. package/dist/esm/components/UncontrolledTable/components/pagination/styles.d.ts +0 -1
  30. package/dist/esm/components/UncontrolledTable/components/tbody/styles.d.ts +0 -1
  31. package/dist/esm/components/UncontrolledTable/interface.d.ts +0 -1
  32. package/dist/esm/components/UncontrolledTable/styles.d.ts +2 -3
  33. package/dist/esm/components/UncontrolledTabs/UncontrolledTabsInfo.style.d.ts +0 -1
  34. package/dist/esm/interfaces/Accordion.d.ts +0 -1
  35. package/dist/esm/interfaces/Card.d.ts +0 -1
  36. package/dist/esm/interfaces/ChatMessage.d.ts +0 -1
  37. package/dist/esm/interfaces/DatePicker.d.ts +0 -1
  38. package/dist/esm/interfaces/Modal.d.ts +0 -1
  39. package/dist/esm/interfaces/Paper.d.ts +0 -1
  40. package/dist/esm/interfaces/ProgressBar.d.ts +0 -1
  41. package/dist/esm/interfaces/Select.d.ts +0 -1
  42. package/dist/esm/interfaces/Tabs.d.ts +0 -1
  43. package/dist/esm/interfaces/Tag.d.ts +0 -1
  44. package/dist/esm/interfaces/TimeLine.d.ts +0 -1
  45. package/dist/esm/interfaces/TimePicker.d.ts +0 -1
  46. package/dist/esm/types/index.d.ts +0 -1
  47. package/docs/index.md +118 -118
  48. package/package.json +136 -136
  49. package/src/components/Accordion.tsx +39 -39
  50. package/src/components/Avatar.tsx +17 -17
  51. package/src/components/Badge.tsx +14 -14
  52. package/src/components/Box/index.tsx +12 -12
  53. package/src/components/Box/interfaces.ts +3 -3
  54. package/src/components/Box/styles.tsx +22 -22
  55. package/src/components/Breadcrumb/index.tsx +27 -27
  56. package/src/components/Breadcrumb/interface.ts +8 -8
  57. package/src/components/Breadcrumb/styles.tsx +32 -32
  58. package/src/components/Button.tsx +26 -26
  59. package/src/components/Card.tsx +36 -38
  60. package/src/components/ChatMessage.tsx +87 -87
  61. package/src/components/ChatMessageBalloon/ChatMessageBalloon.style.ts +56 -56
  62. package/src/components/ChatMessageBalloon/ChatMessageBalloon.tsx +55 -55
  63. package/src/components/CheckBox.tsx +21 -21
  64. package/src/components/DateInput/index.tsx +34 -34
  65. package/src/components/DateInput/interface.ts +13 -13
  66. package/src/components/DateInput/styles.tsx +27 -27
  67. package/src/components/DatePicker.tsx +67 -67
  68. package/src/components/DropDown.tsx +24 -24
  69. package/src/components/IconButton.tsx +37 -37
  70. package/src/components/Icons.tsx +82 -82
  71. package/src/components/Modal.tsx +103 -103
  72. package/src/components/MultiSelectInput/components/MultiValue/index.tsx +44 -44
  73. package/src/components/MultiSelectInput/components/Option/index.tsx +62 -62
  74. package/src/components/MultiSelectInput/components/Option/styles.tsx +8 -8
  75. package/src/components/MultiSelectInput/index.tsx +60 -60
  76. package/src/components/MultiSelectInput/interfaces.ts +15 -15
  77. package/src/components/MultiSelectInput/styles.tsx +43 -43
  78. package/src/components/Paper.tsx +12 -12
  79. package/src/components/ProgressBar.tsx +71 -71
  80. package/src/components/RadioGroup.tsx +43 -43
  81. package/src/components/RangerSlider.tsx +65 -65
  82. package/src/components/Select.tsx +74 -74
  83. package/src/components/SelectInput/components/Option/index.tsx +61 -61
  84. package/src/components/SelectInput/components/Option/styles.tsx +8 -8
  85. package/src/components/SelectInput/index.tsx +45 -45
  86. package/src/components/SelectInput/interfaces.ts +15 -15
  87. package/src/components/SelectInput/styles.tsx +31 -31
  88. package/src/components/StatusModal/StatusModal.style.tsx +75 -75
  89. package/src/components/StatusModal/StatusModal.tsx +58 -58
  90. package/src/components/Svgs.tsx +506 -506
  91. package/src/components/Table/components/header/index.tsx +86 -86
  92. package/src/components/Table/components/header/styles.tsx +59 -59
  93. package/src/components/Table/components/index.tsx +8 -8
  94. package/src/components/Table/components/pagination/index.tsx +39 -39
  95. package/src/components/Table/components/pagination/styles.tsx +28 -28
  96. package/src/components/Table/components/tbody/index.tsx +30 -30
  97. package/src/components/Table/components/tbody/styles.tsx +4 -4
  98. package/src/components/Table/index.tsx +317 -317
  99. package/src/components/Table/interface.ts +23 -23
  100. package/src/components/Table/styles.tsx +117 -117
  101. package/src/components/Tabs.tsx +105 -105
  102. package/src/components/Tag.tsx +33 -33
  103. package/src/components/TextField.tsx +19 -19
  104. package/src/components/TextInput/index.tsx +37 -37
  105. package/src/components/TextInput/interface.ts +9 -9
  106. package/src/components/TextInput/styles.tsx +23 -23
  107. package/src/components/TimeLine.tsx +89 -89
  108. package/src/components/TimePicker.tsx +78 -78
  109. package/src/components/Typography/Text/index.tsx +20 -20
  110. package/src/components/Typography/Text/interfaces.ts +5 -5
  111. package/src/components/Typography/Text/styles.tsx +40 -40
  112. package/src/components/Typography/Title/index.tsx +22 -22
  113. package/src/components/Typography/Title/interfaces.ts +6 -6
  114. package/src/components/Typography/Title/styles.tsx +40 -40
  115. package/src/components/Typography/index.tsx +6 -6
  116. package/src/components/UncontrolledTable/components/header/index.tsx +72 -72
  117. package/src/components/UncontrolledTable/components/header/styles.tsx +66 -66
  118. package/src/components/UncontrolledTable/components/index.tsx +8 -8
  119. package/src/components/UncontrolledTable/components/pagination/index.tsx +43 -43
  120. package/src/components/UncontrolledTable/components/pagination/styles.tsx +28 -28
  121. package/src/components/UncontrolledTable/components/tbody/index.tsx +33 -33
  122. package/src/components/UncontrolledTable/components/tbody/styles.tsx +32 -32
  123. package/src/components/UncontrolledTable/index.tsx +223 -223
  124. package/src/components/UncontrolledTable/interface.ts +46 -46
  125. package/src/components/UncontrolledTable/styles.tsx +123 -123
  126. package/src/components/UncontrolledTabs/UncontrolledTabs.style.tsx +58 -58
  127. package/src/components/UncontrolledTabs/UncontrolledTabs.tsx +71 -71
  128. package/src/components/UncontrolledTabs/UncontrolledTabsInfo.style.ts +8 -8
  129. package/src/components/index.ts +24 -24
  130. package/src/helpers/alignments.ts +14 -14
  131. package/src/helpers/borders.ts +18 -18
  132. package/src/helpers/colors.ts +264 -264
  133. package/src/helpers/index.ts +5 -5
  134. package/src/helpers/radios.ts +24 -24
  135. package/src/helpers/sizes.ts +72 -72
  136. package/src/hooks/useClickOutside.tsx +18 -18
  137. package/src/index.ts +70 -70
  138. package/src/interfaces/Accordion.ts +12 -12
  139. package/src/interfaces/Avatar.tsx +15 -15
  140. package/src/interfaces/Badge.ts +19 -19
  141. package/src/interfaces/Button.ts +19 -19
  142. package/src/interfaces/Card.ts +11 -11
  143. package/src/interfaces/ChatMessage.ts +12 -12
  144. package/src/interfaces/ChatMessageBalloon.ts +17 -17
  145. package/src/interfaces/CheckBox.ts +27 -27
  146. package/src/interfaces/DatePicker.ts +13 -13
  147. package/src/interfaces/DropDown.ts +14 -14
  148. package/src/interfaces/IconButton.ts +22 -22
  149. package/src/interfaces/Icons.ts +17 -17
  150. package/src/interfaces/Modal.ts +18 -18
  151. package/src/interfaces/Paper.ts +12 -12
  152. package/src/interfaces/ProgressBar.ts +29 -29
  153. package/src/interfaces/RadioGroup.ts +23 -23
  154. package/src/interfaces/RangerSlider.ts +21 -21
  155. package/src/interfaces/Select.ts +17 -17
  156. package/src/interfaces/Tabs.ts +19 -19
  157. package/src/interfaces/Tag.ts +17 -17
  158. package/src/interfaces/TextField.ts +44 -44
  159. package/src/interfaces/TimeLine.ts +11 -11
  160. package/src/interfaces/TimePicker.ts +13 -13
  161. package/src/interfaces/index.ts +23 -23
  162. package/src/providers/NormaProvider.tsx +13 -13
  163. package/src/sample-data-2.json +178 -178
  164. package/src/sample-data.json +177 -177
  165. package/src/stories/Accordion.stories.tsx +65 -65
  166. package/src/stories/Avatar.stories.tsx +123 -123
  167. package/src/stories/Badge.stories.tsx +39 -39
  168. package/src/stories/Box.stories.tsx +35 -35
  169. package/src/stories/Breadcrumb.stories.tsx +44 -44
  170. package/src/stories/Button.stories.tsx +93 -93
  171. package/src/stories/Card.stories.tsx +39 -39
  172. package/src/stories/ChatMessage.stories.tsx +84 -84
  173. package/src/stories/ChatMessageBalloon.stories.tsx +108 -108
  174. package/src/stories/CheckBox.stories.tsx +88 -88
  175. package/src/stories/DateInput.stories.tsx +51 -51
  176. package/src/stories/DatePicker.stories.tsx +50 -50
  177. package/src/stories/DropDown.stories.tsx +57 -57
  178. package/src/stories/IconButton.stories.tsx +78 -78
  179. package/src/stories/Modal.stories.tsx +246 -246
  180. package/src/stories/ModalStatus.stories.tsx +46 -46
  181. package/src/stories/MultiSelectInput.stories.tsx +90 -90
  182. package/src/stories/Paper.stories.tsx +53 -53
  183. package/src/stories/ProgressBar.stories.tsx +116 -116
  184. package/src/stories/RadioGroup.stories.tsx +87 -87
  185. package/src/stories/RangerSlider.stories.tsx +149 -149
  186. package/src/stories/Select.stories.tsx +100 -100
  187. package/src/stories/SelectInput.stories.tsx +78 -78
  188. package/src/stories/Table.stories.tsx +372 -372
  189. package/src/stories/Tabs.stories.tsx +61 -61
  190. package/src/stories/Tag.stories.tsx +56 -56
  191. package/src/stories/Text.stories.tsx +37 -37
  192. package/src/stories/TextField.stories.tsx +310 -310
  193. package/src/stories/TextInput.stories.tsx +52 -52
  194. package/src/stories/TimeLine.stories.tsx +35 -35
  195. package/src/stories/TimePicker.stories.tsx +87 -87
  196. package/src/stories/Title.stories.tsx +43 -43
  197. package/src/stories/UncontrolledTable.stories.tsx +315 -315
  198. package/src/stories/UncontrolledTabs.stories.tsx +74 -74
  199. package/src/styles/globals.scss +17 -17
  200. package/src/types/index.ts +207 -207
  201. package/src/utils/styledBreakpoints.ts +25 -25
  202. package/vite.config.ts +15 -15
@@ -1,82 +1,82 @@
1
- import React, { FunctionComponent } from 'react';
2
- import { iconsSVG } from './Svgs';
3
- import { IconColors, IconScale } from '../types';
4
- import { IconsProps, SvgProps } from '../interfaces/Icons';
5
- import styled from '@emotion/styled';
6
- import { palette } from '../helpers';
7
-
8
- export const Svg = styled.svg<SvgProps>(
9
- {
10
- shapeRendering: 'inherit',
11
- transform: 'translate3d(0,0,0)',
12
- },
13
- ({ inline }) => (inline ? { display: 'inline-block' } : { display: 'block' }),
14
- );
15
-
16
- const scaleSize: Record<IconScale, number> = {
17
- xsmall: 14,
18
- small: 20,
19
- medium: 24,
20
- large: 28,
21
- xlarge: 32,
22
- '2xlarge': 36,
23
- '3xlarge': 40,
24
- };
25
-
26
- // Definindo um objeto com as cores de preenchimento e traço com base no MUI
27
- const colors: Record<IconColors, string> = {
28
- inherit: palette.inherit,
29
- primary: palette.primary,
30
- secondary: palette.secondary,
31
- error: palette.error,
32
- info: palette.info,
33
- success: palette.success,
34
- warning: palette.warning,
35
- white: palette.white,
36
- black: palette.black,
37
- };
38
-
39
- export const Icons: FunctionComponent<IconsProps> = ({
40
- icon,
41
- scale,
42
- useSymbol,
43
- color = 'inherit',
44
- ...props
45
- }: IconsProps) => {
46
- let width = 24;
47
- let height = 24;
48
- if (scale) {
49
- width = scaleSize[scale];
50
- height = scaleSize[scale];
51
- }
52
-
53
- // Obtém a cor de preenchimento e traço com base no valor da prop 'color'
54
- const fill = colors[color];
55
- const stroke = colors[color];
56
-
57
- const Svg = styled.svg`
58
- display: inline-block;
59
- shape-rendering: inherit;
60
- vertical-align: middle;
61
- fill: ${fill};
62
- path {
63
- stroke: ${stroke};
64
- }
65
- circle {
66
- stroke: ${stroke};
67
- }
68
- rect {
69
- stroke: ${stroke};
70
- }
71
- `;
72
-
73
- return (
74
- <Svg viewBox="0 0 56 56" width={`${width}px`} height={`${height}px`} {...props}>
75
- {useSymbol ? (
76
- <use xlinkHref={`#icon--${icon}`} fill={fill} stroke={stroke} />
77
- ) : (
78
- React.cloneElement(iconsSVG[icon], { fill, stroke })
79
- )}
80
- </Svg>
81
- );
82
- };
1
+ import React, { FunctionComponent } from 'react';
2
+ import { iconsSVG } from './Svgs';
3
+ import { IconColors, IconScale } from '../types';
4
+ import { IconsProps, SvgProps } from '../interfaces/Icons';
5
+ import styled from '@emotion/styled';
6
+ import { palette } from '../helpers';
7
+
8
+ export const Svg = styled.svg<SvgProps>(
9
+ {
10
+ shapeRendering: 'inherit',
11
+ transform: 'translate3d(0,0,0)',
12
+ },
13
+ ({ inline }) => (inline ? { display: 'inline-block' } : { display: 'block' }),
14
+ );
15
+
16
+ const scaleSize: Record<IconScale, number> = {
17
+ xsmall: 14,
18
+ small: 20,
19
+ medium: 24,
20
+ large: 28,
21
+ xlarge: 32,
22
+ '2xlarge': 36,
23
+ '3xlarge': 40,
24
+ };
25
+
26
+ // Definindo um objeto com as cores de preenchimento e traço com base no MUI
27
+ const colors: Record<IconColors, string> = {
28
+ inherit: palette.inherit,
29
+ primary: palette.primary,
30
+ secondary: palette.secondary,
31
+ error: palette.error,
32
+ info: palette.info,
33
+ success: palette.success,
34
+ warning: palette.warning,
35
+ white: palette.white,
36
+ black: palette.black,
37
+ };
38
+
39
+ export const Icons: FunctionComponent<IconsProps> = ({
40
+ icon,
41
+ scale,
42
+ useSymbol,
43
+ color = 'inherit',
44
+ ...props
45
+ }: IconsProps) => {
46
+ let width = 24;
47
+ let height = 24;
48
+ if (scale) {
49
+ width = scaleSize[scale];
50
+ height = scaleSize[scale];
51
+ }
52
+
53
+ // Obtém a cor de preenchimento e traço com base no valor da prop 'color'
54
+ const fill = colors[color];
55
+ const stroke = colors[color];
56
+
57
+ const Svg = styled.svg`
58
+ display: inline-block;
59
+ shape-rendering: inherit;
60
+ vertical-align: middle;
61
+ fill: ${fill};
62
+ path {
63
+ stroke: ${stroke};
64
+ }
65
+ circle {
66
+ stroke: ${stroke};
67
+ }
68
+ rect {
69
+ stroke: ${stroke};
70
+ }
71
+ `;
72
+
73
+ return (
74
+ <Svg viewBox="0 0 56 56" width={`${width}px`} height={`${height}px`} {...props}>
75
+ {useSymbol ? (
76
+ <use xlinkHref={`#icon--${icon}`} fill={fill} stroke={stroke} />
77
+ ) : (
78
+ React.cloneElement(iconsSVG[icon], { fill, stroke })
79
+ )}
80
+ </Svg>
81
+ );
82
+ };
@@ -1,103 +1,103 @@
1
- import React from 'react';
2
- import { Modal as MuiModal, Paper, Box, Typography } from '@mui/material';
3
- import { ModalBaseProps } from '../interfaces';
4
- import { styled } from '@mui/material/styles';
5
- import { IconButton } from './IconButton';
6
- import { Button } from './Button';
7
-
8
- const ModalStyled = styled(MuiModal)({});
9
-
10
- const ModalContentStyled = styled(Paper)<{ $w?: string }>`
11
- border: 1px solid #00000033;
12
- border-radius: 4px;
13
- position: absolute;
14
- top: 50%;
15
- left: 50%;
16
- width: ${props => props.$w || '421px'};
17
- transform: translate(-50%, -50%);
18
- background-color: #fff;
19
- `;
20
-
21
- const ModalHeaderStyled = styled(Box)`
22
- text-align: left;
23
- box-sizing: border-box;
24
- margin: 0;
25
- position: relative;
26
- padding: 22px 26px 15px 26px;
27
- justify-content: space-between;
28
- display: flex;
29
-
30
- & h2 {
31
- font-style: normal;
32
- font-weight: 600;
33
- font-size: 18px;
34
- color: #1D1D1D;
35
- }
36
- `;
37
-
38
- const ModalFooterStyled = styled(Box)<{$spaceBetween?: boolean}>`
39
- box-sizing: border-box;
40
- position: relative;
41
- padding: 24px;
42
- display: flex;
43
- justify-content: ${props => props.$spaceBetween ? 'space-between' : 'flex-end'};
44
- gap: 24px;
45
- `;
46
-
47
- const ModalContainerChildrenStyled = styled(Box)`
48
- box-sizing: border-box;
49
- padding: 24px;
50
- `;
51
-
52
- export function Close() {
53
- return (
54
- <svg
55
- fill="#808080"
56
- viewBox="0 0 24 24"
57
- xmlns="http://www.w3.org/2000/svg"
58
- aria-hidden="true"
59
- height="24"
60
- width="24"
61
- >
62
- <path
63
- clipRule="evenodd"
64
- fillRule="evenodd"
65
- d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z"
66
- />
67
- </svg>
68
- );
69
- }
70
-
71
- export const Modal = ({ open, children, paperProps, ...props }: ModalBaseProps) => {
72
- return (
73
- <ModalStyled open {...props}>
74
- <ModalContentStyled {...paperProps} $w={props.width}>
75
- {props.title && (
76
- <ModalHeaderStyled>
77
- <Typography variant="h2">{props.title}</Typography>
78
- <IconButton
79
- onClick={props.onClose}
80
- size="small"
81
- color="inherit"
82
- variant="text"
83
- cursor="pointer"
84
- sx={{ padding: '0' }}
85
- >
86
- <Close />
87
- </IconButton>
88
- </ModalHeaderStyled>
89
- )}
90
- <ModalContainerChildrenStyled>{children}</ModalContainerChildrenStyled>
91
- {!!props.action?.length && (
92
- <ModalFooterStyled $spaceBetween={props.actionSpaceBetween}>
93
- {props.action.map(({ color, variant, action, size, label, ...rest }, key) => (
94
- <Button color={color} variant={variant} key={key} onClick={action} size={size} {...rest}>
95
- {label}
96
- </Button>
97
- ))}
98
- </ModalFooterStyled>
99
- )}
100
- </ModalContentStyled>
101
- </ModalStyled>
102
- );
103
- };
1
+ import React from 'react';
2
+ import { Modal as MuiModal, Paper, Box, Typography } from '@mui/material';
3
+ import { ModalBaseProps } from '../interfaces';
4
+ import { styled } from '@mui/material/styles';
5
+ import { IconButton } from './IconButton';
6
+ import { Button } from './Button';
7
+
8
+ const ModalStyled = styled(MuiModal)({});
9
+
10
+ const ModalContentStyled = styled(Paper)<{ $w?: string }>`
11
+ border: 1px solid #00000033;
12
+ border-radius: 4px;
13
+ position: absolute;
14
+ top: 50%;
15
+ left: 50%;
16
+ width: ${props => props.$w || '421px'};
17
+ transform: translate(-50%, -50%);
18
+ background-color: #fff;
19
+ `;
20
+
21
+ const ModalHeaderStyled = styled(Box)`
22
+ text-align: left;
23
+ box-sizing: border-box;
24
+ margin: 0;
25
+ position: relative;
26
+ padding: 22px 26px 15px 26px;
27
+ justify-content: space-between;
28
+ display: flex;
29
+
30
+ & h2 {
31
+ font-style: normal;
32
+ font-weight: 600;
33
+ font-size: 18px;
34
+ color: #1D1D1D;
35
+ }
36
+ `;
37
+
38
+ const ModalFooterStyled = styled(Box)<{$spaceBetween?: boolean}>`
39
+ box-sizing: border-box;
40
+ position: relative;
41
+ padding: 24px;
42
+ display: flex;
43
+ justify-content: ${props => props.$spaceBetween ? 'space-between' : 'flex-end'};
44
+ gap: 24px;
45
+ `;
46
+
47
+ const ModalContainerChildrenStyled = styled(Box)`
48
+ box-sizing: border-box;
49
+ padding: 24px;
50
+ `;
51
+
52
+ export function Close() {
53
+ return (
54
+ <svg
55
+ fill="#808080"
56
+ viewBox="0 0 24 24"
57
+ xmlns="http://www.w3.org/2000/svg"
58
+ aria-hidden="true"
59
+ height="24"
60
+ width="24"
61
+ >
62
+ <path
63
+ clipRule="evenodd"
64
+ fillRule="evenodd"
65
+ d="M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z"
66
+ />
67
+ </svg>
68
+ );
69
+ }
70
+
71
+ export const Modal = ({ open, children, paperProps, ...props }: ModalBaseProps) => {
72
+ return (
73
+ <ModalStyled open {...props}>
74
+ <ModalContentStyled {...paperProps} $w={props.width}>
75
+ {props.title && (
76
+ <ModalHeaderStyled>
77
+ <Typography variant="h2">{props.title}</Typography>
78
+ <IconButton
79
+ onClick={props.onClose}
80
+ size="small"
81
+ color="inherit"
82
+ variant="text"
83
+ cursor="pointer"
84
+ sx={{ padding: '0' }}
85
+ >
86
+ <Close />
87
+ </IconButton>
88
+ </ModalHeaderStyled>
89
+ )}
90
+ <ModalContainerChildrenStyled>{children}</ModalContainerChildrenStyled>
91
+ {!!props.action?.length && (
92
+ <ModalFooterStyled $spaceBetween={props.actionSpaceBetween}>
93
+ {props.action.map(({ color, variant, action, size, label, ...rest }, key) => (
94
+ <Button color={color} variant={variant} key={key} onClick={action} size={size} {...rest}>
95
+ {label}
96
+ </Button>
97
+ ))}
98
+ </ModalFooterStyled>
99
+ )}
100
+ </ModalContentStyled>
101
+ </ModalStyled>
102
+ );
103
+ };
@@ -1,44 +1,44 @@
1
- import React from 'react'
2
- import { components } from "react-select"
3
-
4
- const MoreSelectedBadge = ({ items }: any) => {
5
- const style = {
6
- marginLeft: "auto",
7
- background: "#F8F9FA",
8
- color: "#666666",
9
- borderRadius: "4px",
10
- fontFamily: "Open Sans",
11
- fontSize: "11px",
12
- padding: "3px",
13
- order: 99
14
- };
15
-
16
- const title = items.join(", ");
17
- const length = items.length;
18
- const label = `+ ${length}`;
19
-
20
- return (
21
- <div style={style} title={title}>
22
- {label}
23
- </div>
24
- );
25
- };
26
-
27
- const MultiValue:React.FC<any> = ({
28
- index,
29
- getValue,
30
- ...props
31
- }) => {
32
- const maxToShow = 3;
33
- const overflow = getValue()
34
- .slice(maxToShow)
35
- .map((x: any) => x.label);
36
-
37
- return index < maxToShow ? (
38
- <components.MultiValue {...props} />
39
- ) : index === maxToShow ? (
40
- <MoreSelectedBadge items={overflow} />
41
- ) : null;
42
- }
43
-
44
- export default MultiValue
1
+ import React from 'react'
2
+ import { components } from "react-select"
3
+
4
+ const MoreSelectedBadge = ({ items }: any) => {
5
+ const style = {
6
+ marginLeft: "auto",
7
+ background: "#F8F9FA",
8
+ color: "#666666",
9
+ borderRadius: "4px",
10
+ fontFamily: "Open Sans",
11
+ fontSize: "11px",
12
+ padding: "3px",
13
+ order: 99
14
+ };
15
+
16
+ const title = items.join(", ");
17
+ const length = items.length;
18
+ const label = `+ ${length}`;
19
+
20
+ return (
21
+ <div style={style} title={title}>
22
+ {label}
23
+ </div>
24
+ );
25
+ };
26
+
27
+ const MultiValue:React.FC<any> = ({
28
+ index,
29
+ getValue,
30
+ ...props
31
+ }) => {
32
+ const maxToShow = 3;
33
+ const overflow = getValue()
34
+ .slice(maxToShow)
35
+ .map((x: any) => x.label);
36
+
37
+ return index < maxToShow ? (
38
+ <components.MultiValue {...props} />
39
+ ) : index === maxToShow ? (
40
+ <MoreSelectedBadge items={overflow} />
41
+ ) : null;
42
+ }
43
+
44
+ export default MultiValue
@@ -1,63 +1,63 @@
1
- import React, { useState } from "react"
2
- import { components } from "react-select"
3
- import * as S from "./styles";
4
-
5
- const Option:React.FC<any> = ({
6
- isFocused,
7
- isSelected,
8
- innerProps,
9
- children,
10
- getStyles,
11
- isDisabled,
12
- ...rest
13
- }) => {
14
- const [isActive, setIsActive] = useState(false);
15
- const onMouseDown = () => setIsActive(true);
16
- const onMouseUp = () => setIsActive(false);
17
- const onMouseLeave = () => setIsActive(false);
18
-
19
- let bg = "transparent"
20
- let color = "#000"
21
-
22
- if (isFocused) {
23
- bg = "#f1f1f1"
24
- };
25
- if (isActive) {
26
- bg = "#F8F9FA"
27
- };
28
-
29
- const style = {
30
- alignItems: "center",
31
- transition: "0.3s",
32
- backgroundColor: bg,
33
- color: color,
34
- display: "flex ",
35
- gap: '8px'
36
- };
37
-
38
- const props = {
39
- ...innerProps,
40
- onMouseDown,
41
- onMouseUp,
42
- onMouseLeave,
43
- style,
44
- ...rest
45
- };
46
-
47
- return (
48
- <S.Container>
49
- <components.Option
50
- {...rest}
51
- isDisabled={isDisabled}
52
- isFocused={isFocused}
53
- isSelected={isSelected}
54
- getStyles={getStyles}
55
- innerProps={props}>
56
- <input type="checkbox" checked={isSelected} onChange={() => null}/>
57
- {children}
58
- </components.Option>
59
- </S.Container>
60
- );
61
- };
62
-
1
+ import React, { useState } from "react"
2
+ import { components } from "react-select"
3
+ import * as S from "./styles";
4
+
5
+ const Option:React.FC<any> = ({
6
+ isFocused,
7
+ isSelected,
8
+ innerProps,
9
+ children,
10
+ getStyles,
11
+ isDisabled,
12
+ ...rest
13
+ }) => {
14
+ const [isActive, setIsActive] = useState(false);
15
+ const onMouseDown = () => setIsActive(true);
16
+ const onMouseUp = () => setIsActive(false);
17
+ const onMouseLeave = () => setIsActive(false);
18
+
19
+ let bg = "transparent"
20
+ let color = "#000"
21
+
22
+ if (isFocused) {
23
+ bg = "#f1f1f1"
24
+ };
25
+ if (isActive) {
26
+ bg = "#F8F9FA"
27
+ };
28
+
29
+ const style = {
30
+ alignItems: "center",
31
+ transition: "0.3s",
32
+ backgroundColor: bg,
33
+ color: color,
34
+ display: "flex ",
35
+ gap: '8px'
36
+ };
37
+
38
+ const props = {
39
+ ...innerProps,
40
+ onMouseDown,
41
+ onMouseUp,
42
+ onMouseLeave,
43
+ style,
44
+ ...rest
45
+ };
46
+
47
+ return (
48
+ <S.Container>
49
+ <components.Option
50
+ {...rest}
51
+ isDisabled={isDisabled}
52
+ isFocused={isFocused}
53
+ isSelected={isSelected}
54
+ getStyles={getStyles}
55
+ innerProps={props}>
56
+ <input type="checkbox" checked={isSelected} onChange={() => null}/>
57
+ {children}
58
+ </components.Option>
59
+ </S.Container>
60
+ );
61
+ };
62
+
63
63
  export default Option
@@ -1,9 +1,9 @@
1
- import styled from "styled-components";
2
-
3
- export const Container = styled.div`
4
- font-size: 16px;
5
- color: #666666;
6
- &:nth-child(even) {
7
- background: #F8F9FA;
8
- }
1
+ import styled from "styled-components";
2
+
3
+ export const Container = styled.div`
4
+ font-size: 16px;
5
+ color: #666666;
6
+ &:nth-child(even) {
7
+ background: #F8F9FA;
8
+ }
9
9
  `