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,24 +1,24 @@
1
- import { ColumnDef } from '@tanstack/react-table'
2
-
3
- export interface TablePropos {
4
- data: any
5
- columns: ColumnDef<ColumnsTable>[]
6
- onClick: any
7
- onMouseOver: any
8
- onMouseOut: any
9
- showTotalResults: boolean
10
- showSettings: boolean
11
- minHeight: string
12
- rowCount: number
13
- onChangePage?: (page:number) => void
14
- pagination?: {pageIndex:number, pageSize:number, totalPages:number}
15
- customTotalResult?: string
16
- }
17
-
18
- export interface ColumnsTable {
19
- header: string,
20
- accessorKey: string,
21
- type: string,
22
- enableColumnFilter: boolean,
23
- filterFn: string
1
+ import { ColumnDef } from '@tanstack/react-table'
2
+
3
+ export interface TablePropos {
4
+ data: any
5
+ columns: ColumnDef<ColumnsTable>[]
6
+ onClick: any
7
+ onMouseOver: any
8
+ onMouseOut: any
9
+ showTotalResults: boolean
10
+ showSettings: boolean
11
+ minHeight: string
12
+ rowCount: number
13
+ onChangePage?: (page:number) => void
14
+ pagination?: {pageIndex:number, pageSize:number, totalPages:number}
15
+ customTotalResult?: string
16
+ }
17
+
18
+ export interface ColumnsTable {
19
+ header: string,
20
+ accessorKey: string,
21
+ type: string,
22
+ enableColumnFilter: boolean,
23
+ filterFn: string
24
24
  }
@@ -1,118 +1,118 @@
1
- import styled from "styled-components";
2
-
3
- export const Container = styled.div`
4
- width: 100%;
5
- background: #fff;
6
- box-shadow: 0px 2px 6px #0000000A;
7
- padding: 24px 0;
8
- `
9
-
10
- export const Content = styled.div<any>`
11
- min-height: ${props => props.minHeight ? props.minHeight : 'auto'};
12
- `
13
-
14
- export const Table = styled.table`
15
- border-collapse: collapse;
16
- width: 100%;
17
- thead {
18
- tr {
19
- border-bottom: 1px solid #E0E0E0;
20
- th {
21
- padding: 12px 24px;
22
- }
23
- }
24
- }
25
- tbody {
26
- tr {
27
- td {
28
- padding: 16px 24px;
29
- color: #666666;
30
- font-size: 14px;
31
- }
32
- }
33
- tr:nth-child(even) {
34
- background: #FAFAFA;
35
- border-bottom: 1px solid #f1f1f1;
36
- border-top: 1px solid #f1f1f1;
37
- }
38
- }
39
- `
40
-
41
- export const TextColumn = styled.span`
42
- color: #666666;
43
- font-size: 14px;
44
- `
45
-
46
- export const ColumnContent = styled.div`
47
- gap: 2px;
48
- align-items: center;
49
- display: flex;
50
- `
51
-
52
- export const IconFilterDialog = styled.div`
53
- width: 20px;
54
- height: 20px;
55
- cursor: pointer;
56
- `
57
-
58
- export const backgroundDialog = styled.div`
59
- width: 100%;
60
- position: absolute;
61
- height: 100vh;
62
- background: transparent;
63
- top: 0;
64
- left: 0;
65
- `
66
-
67
- export const FilterDialog = styled.div`
68
- padding: 8px;
69
- margin: 6px 0px 0 0;
70
- position: absolute;
71
- width: 302px;
72
- background: #fff;
73
- box-shadow: 0px 3px 6px #00000029;
74
- border: 1px solid #E0E0E0;
75
- `
76
-
77
- export const ListFilterDialog = styled.div`
78
- display: flex;
79
- flex-direction: column;
80
- .label {
81
- margin: 0 0 8px 0;
82
- color: #666666;
83
- font-size: 14px;
84
- font-weight: 400;
85
- text-align: left;
86
- }
87
- .select {
88
- border: 1px solid #E0E0E0;
89
- padding: 8px 12px;
90
- }
91
- `
92
-
93
- export const OptionFilterDialog = styled.div`
94
- display: flex;
95
- gap: 16px;
96
- align-items: center;
97
- padding: 6px 8px;
98
- cursor: pointer;
99
- &:hover {
100
- background: rgba(0, 0, 0, 0.04);
101
- }
102
- .icon {
103
- color: #666;
104
- }
105
- .rotate {
106
- rotate: 180deg;
107
- }
108
- div {
109
- width: 20px;
110
- height: 20px;
111
- }
112
- p {
113
- margin: 0;
114
- color: #666666;
115
- font-size: 16px;
116
- font-weight: 400;
117
- }
1
+ import styled from "styled-components";
2
+
3
+ export const Container = styled.div`
4
+ width: 100%;
5
+ background: #fff;
6
+ box-shadow: 0px 2px 6px #0000000A;
7
+ padding: 24px 0;
8
+ `
9
+
10
+ export const Content = styled.div<any>`
11
+ min-height: ${props => props.minHeight ? props.minHeight : 'auto'};
12
+ `
13
+
14
+ export const Table = styled.table`
15
+ border-collapse: collapse;
16
+ width: 100%;
17
+ thead {
18
+ tr {
19
+ border-bottom: 1px solid #E0E0E0;
20
+ th {
21
+ padding: 12px 24px;
22
+ }
23
+ }
24
+ }
25
+ tbody {
26
+ tr {
27
+ td {
28
+ padding: 16px 24px;
29
+ color: #666666;
30
+ font-size: 14px;
31
+ }
32
+ }
33
+ tr:nth-child(even) {
34
+ background: #FAFAFA;
35
+ border-bottom: 1px solid #f1f1f1;
36
+ border-top: 1px solid #f1f1f1;
37
+ }
38
+ }
39
+ `
40
+
41
+ export const TextColumn = styled.span`
42
+ color: #666666;
43
+ font-size: 14px;
44
+ `
45
+
46
+ export const ColumnContent = styled.div`
47
+ gap: 2px;
48
+ align-items: center;
49
+ display: flex;
50
+ `
51
+
52
+ export const IconFilterDialog = styled.div`
53
+ width: 20px;
54
+ height: 20px;
55
+ cursor: pointer;
56
+ `
57
+
58
+ export const backgroundDialog = styled.div`
59
+ width: 100%;
60
+ position: absolute;
61
+ height: 100vh;
62
+ background: transparent;
63
+ top: 0;
64
+ left: 0;
65
+ `
66
+
67
+ export const FilterDialog = styled.div`
68
+ padding: 8px;
69
+ margin: 6px 0px 0 0;
70
+ position: absolute;
71
+ width: 302px;
72
+ background: #fff;
73
+ box-shadow: 0px 3px 6px #00000029;
74
+ border: 1px solid #E0E0E0;
75
+ `
76
+
77
+ export const ListFilterDialog = styled.div`
78
+ display: flex;
79
+ flex-direction: column;
80
+ .label {
81
+ margin: 0 0 8px 0;
82
+ color: #666666;
83
+ font-size: 14px;
84
+ font-weight: 400;
85
+ text-align: left;
86
+ }
87
+ .select {
88
+ border: 1px solid #E0E0E0;
89
+ padding: 8px 12px;
90
+ }
91
+ `
92
+
93
+ export const OptionFilterDialog = styled.div`
94
+ display: flex;
95
+ gap: 16px;
96
+ align-items: center;
97
+ padding: 6px 8px;
98
+ cursor: pointer;
99
+ &:hover {
100
+ background: rgba(0, 0, 0, 0.04);
101
+ }
102
+ .icon {
103
+ color: #666;
104
+ }
105
+ .rotate {
106
+ rotate: 180deg;
107
+ }
108
+ div {
109
+ width: 20px;
110
+ height: 20px;
111
+ }
112
+ p {
113
+ margin: 0;
114
+ color: #666666;
115
+ font-size: 16px;
116
+ font-weight: 400;
117
+ }
118
118
  `
@@ -1,105 +1,105 @@
1
- import React from 'react';
2
- import { Box, Tabs as MuiTabs, Tab } from '@mui/material';
3
- import { TabPanelProps, TabsBaseProps } from '../interfaces';
4
- import { palette } from '../helpers';
5
- import { styled } from '@mui/material/styles';
6
- import { ColorVariant } from '@/types';
7
-
8
- const colorMap: Record<ColorVariant, string> = {
9
- inherit: palette.inherit,
10
- primary: palette.primary,
11
- secondary: palette.secondary,
12
- error: palette.error,
13
- warning: palette.warning,
14
- info: palette.info,
15
- success: palette.success,
16
- };
17
-
18
- const TabsStyled = styled(MuiTabs)<{
19
- color: ColorVariant;
20
- }>(({ color }) => ({
21
- borderBottom: '1px solid #e8e8e8',
22
- '& .Mui-selected': {
23
- color: colorMap[color],
24
- },
25
- '& .MuiTabs-indicator': {
26
- backgroundColor: colorMap[color],
27
- },
28
- '& .MuiButtonBase-root': {
29
- textTransform: 'none',
30
- },
31
- }));
32
-
33
- interface StyledTabProps {
34
- label: string;
35
- color: ColorVariant;
36
- }
37
-
38
- const TabStyled = styled((props: StyledTabProps) => <Tab disableRipple {...props} />)(({ theme, color }) => ({
39
- textTransform: 'none',
40
- fontWeight: theme.typography.fontWeightRegular,
41
- fontSize: theme.typography.pxToRem(15),
42
- marginRight: theme.spacing(1),
43
- color: '#666666',
44
- padding: '5px 15px',
45
- top: '5px',
46
- minWidth: '60px',
47
- '&.Mui-selected': {
48
- color: colorMap[color],
49
- },
50
- '&.Mui-focusVisible': {
51
- backgroundColor: 'rgba(100, 95, 228, 0.32)',
52
- },
53
- }));
54
-
55
- function CustomTabPanel(props: TabPanelProps) {
56
- const { children, value, index, ...other } = props;
57
-
58
- return (
59
- <div
60
- role="tabpanel"
61
- hidden={value !== index}
62
- id={`simple-tabpanel-${index}`}
63
- aria-labelledby={`simple-tab-${index}`}
64
- {...other}
65
- >
66
- {value === index && (
67
- <Box sx={{ p: 3 }}>
68
- {children}
69
- </Box>
70
- )}
71
- </div>
72
- );
73
- }
74
-
75
- function a11yProps(index: number) {
76
- return {
77
- id: `simple-tab-${index}`,
78
- 'aria-controls': `simple-tabpanel-${index}`,
79
- };
80
- }
81
-
82
- export const Tabs = ({ data = [], color = 'primary', onChange, ...props }: TabsBaseProps) => {
83
- const [value, setValue] = React.useState(0);
84
-
85
- const handleChange = (event: React.SyntheticEvent, newValue: number) => {
86
- setValue(newValue);
87
- if(!!onChange) onChange(event, newValue)
88
- };
89
-
90
- return (
91
- <Box sx={{ width: '100%' }}>
92
- <Box>
93
- <TabsStyled value={value} color={color} onChange={handleChange} aria-label="basic tabs example" {...props}>
94
- {data && data.map((item, key) => <TabStyled label={item.label} color={color} {...a11yProps(key)} />)}
95
- </TabsStyled>
96
- </Box>
97
- {data &&
98
- data.map((item, key) => (
99
- <CustomTabPanel value={value} index={key}>
100
- {item.children}
101
- </CustomTabPanel>
102
- ))}
103
- </Box>
104
- );
105
- };
1
+ import React from 'react';
2
+ import { Box, Tabs as MuiTabs, Tab } from '@mui/material';
3
+ import { TabPanelProps, TabsBaseProps } from '../interfaces';
4
+ import { palette } from '../helpers';
5
+ import { styled } from '@mui/material/styles';
6
+ import { ColorVariant } from '@/types';
7
+
8
+ const colorMap: Record<ColorVariant, string> = {
9
+ inherit: palette.inherit,
10
+ primary: palette.primary,
11
+ secondary: palette.secondary,
12
+ error: palette.error,
13
+ warning: palette.warning,
14
+ info: palette.info,
15
+ success: palette.success,
16
+ };
17
+
18
+ const TabsStyled = styled(MuiTabs)<{
19
+ color: ColorVariant;
20
+ }>(({ color }) => ({
21
+ borderBottom: '1px solid #e8e8e8',
22
+ '& .Mui-selected': {
23
+ color: colorMap[color],
24
+ },
25
+ '& .MuiTabs-indicator': {
26
+ backgroundColor: colorMap[color],
27
+ },
28
+ '& .MuiButtonBase-root': {
29
+ textTransform: 'none',
30
+ },
31
+ }));
32
+
33
+ interface StyledTabProps {
34
+ label: string;
35
+ color: ColorVariant;
36
+ }
37
+
38
+ const TabStyled = styled((props: StyledTabProps) => <Tab disableRipple {...props} />)(({ theme, color }) => ({
39
+ textTransform: 'none',
40
+ fontWeight: theme.typography.fontWeightRegular,
41
+ fontSize: theme.typography.pxToRem(15),
42
+ marginRight: theme.spacing(1),
43
+ color: '#666666',
44
+ padding: '5px 15px',
45
+ top: '5px',
46
+ minWidth: '60px',
47
+ '&.Mui-selected': {
48
+ color: colorMap[color],
49
+ },
50
+ '&.Mui-focusVisible': {
51
+ backgroundColor: 'rgba(100, 95, 228, 0.32)',
52
+ },
53
+ }));
54
+
55
+ function CustomTabPanel(props: TabPanelProps) {
56
+ const { children, value, index, ...other } = props;
57
+
58
+ return (
59
+ <div
60
+ role="tabpanel"
61
+ hidden={value !== index}
62
+ id={`simple-tabpanel-${index}`}
63
+ aria-labelledby={`simple-tab-${index}`}
64
+ {...other}
65
+ >
66
+ {value === index && (
67
+ <Box sx={{ p: 3 }}>
68
+ {children}
69
+ </Box>
70
+ )}
71
+ </div>
72
+ );
73
+ }
74
+
75
+ function a11yProps(index: number) {
76
+ return {
77
+ id: `simple-tab-${index}`,
78
+ 'aria-controls': `simple-tabpanel-${index}`,
79
+ };
80
+ }
81
+
82
+ export const Tabs = ({ data = [], color = 'primary', onChange, ...props }: TabsBaseProps) => {
83
+ const [value, setValue] = React.useState(0);
84
+
85
+ const handleChange = (event: React.SyntheticEvent, newValue: number) => {
86
+ setValue(newValue);
87
+ if(!!onChange) onChange(event, newValue)
88
+ };
89
+
90
+ return (
91
+ <Box sx={{ width: '100%' }}>
92
+ <Box>
93
+ <TabsStyled value={value} color={color} onChange={handleChange} aria-label="basic tabs example" {...props}>
94
+ {data && data.map((item, key) => <TabStyled label={item.label} color={color} {...a11yProps(key)} />)}
95
+ </TabsStyled>
96
+ </Box>
97
+ {data &&
98
+ data.map((item, key) => (
99
+ <CustomTabPanel value={value} index={key}>
100
+ {item.children}
101
+ </CustomTabPanel>
102
+ ))}
103
+ </Box>
104
+ );
105
+ };
@@ -1,33 +1,33 @@
1
- import React from 'react';
2
- import { Chip as MuiTag } from '@mui/material';
3
- import { TagBaseProps } from '../interfaces';
4
- import { palette } from '../helpers';
5
- import { styled } from '@mui/material/styles';
6
- import { ColorVariant } from '@/types';
7
-
8
- const colorMap: Record<ColorVariant, string> = {
9
- inherit: palette.inherit,
10
- primary: palette.primary,
11
- secondary: palette.secondary,
12
- error: palette.error,
13
- warning: palette.warning,
14
- info: palette.info,
15
- success: palette.success,
16
- };
17
-
18
- const TagStyled = styled(MuiTag)({});
19
-
20
- export const Tag = ({ label, color = 'primary', outlined = false, ...props }: TagBaseProps) => {
21
-
22
- return (
23
- <TagStyled
24
- label={label}
25
- sx={{
26
- color: outlined !== true ? '#FFFF' : colorMap[color],
27
- backgroundColor: outlined !== true ? colorMap[color] : 'inherit',
28
- border: `1px solid ${colorMap[color]}`,
29
- }}
30
- {...props}
31
- />
32
- );
33
- };
1
+ import React from 'react';
2
+ import { Chip as MuiTag } from '@mui/material';
3
+ import { TagBaseProps } from '../interfaces';
4
+ import { palette } from '../helpers';
5
+ import { styled } from '@mui/material/styles';
6
+ import { ColorVariant } from '@/types';
7
+
8
+ const colorMap: Record<ColorVariant, string> = {
9
+ inherit: palette.inherit,
10
+ primary: palette.primary,
11
+ secondary: palette.secondary,
12
+ error: palette.error,
13
+ warning: palette.warning,
14
+ info: palette.info,
15
+ success: palette.success,
16
+ };
17
+
18
+ const TagStyled = styled(MuiTag)({});
19
+
20
+ export const Tag = ({ label, color = 'primary', outlined = false, ...props }: TagBaseProps) => {
21
+
22
+ return (
23
+ <TagStyled
24
+ label={label}
25
+ sx={{
26
+ color: outlined !== true ? '#FFFF' : colorMap[color],
27
+ backgroundColor: outlined !== true ? colorMap[color] : 'inherit',
28
+ border: `1px solid ${colorMap[color]}`,
29
+ }}
30
+ {...props}
31
+ />
32
+ );
33
+ };
@@ -1,19 +1,19 @@
1
- import React from 'react';
2
-
3
- import { FormControl, TextField as MuiTextField } from '@mui/material';
4
-
5
- import { TextFieldBaseProps } from '../interfaces';
6
- import { styled } from '@mui/material/styles';
7
-
8
- const TextFieldStyled = styled(MuiTextField)({
9
- textTransform: 'none',
10
- color: 'currentcolor',
11
- });
12
-
13
- export const TextField: React.FC<TextFieldBaseProps> = ({ label, ...props }) => {
14
- return (
15
- <FormControl sx={{ width: '100%' }}>
16
- <TextFieldStyled {...props} label={label} />
17
- </FormControl>
18
- );
19
- };
1
+ import React from 'react';
2
+
3
+ import { FormControl, TextField as MuiTextField } from '@mui/material';
4
+
5
+ import { TextFieldBaseProps } from '../interfaces';
6
+ import { styled } from '@mui/material/styles';
7
+
8
+ const TextFieldStyled = styled(MuiTextField)({
9
+ textTransform: 'none',
10
+ color: 'currentcolor',
11
+ });
12
+
13
+ export const TextField: React.FC<TextFieldBaseProps> = ({ label, ...props }) => {
14
+ return (
15
+ <FormControl sx={{ width: '100%' }}>
16
+ <TextFieldStyled {...props} label={label} />
17
+ </FormControl>
18
+ );
19
+ };
@@ -1,38 +1,38 @@
1
- import React, { useState } from "react"
2
- import * as S from "./styles"
3
- import { TextInputProps } from "./interface"
4
-
5
- const TextInput:React.FC<TextInputProps> = ({
6
- label,
7
- className,
8
- onChange,
9
- disabled,
10
- placeholder,
11
- name,
12
- type,
13
- value
14
- }) => {
15
- const [valueSelected, setValueSelected] = useState(value)
16
-
17
- const changeValue = (event: any) => {
18
- const { value } = event.target
19
- setValueSelected(value)
20
- onChange(event)
21
- }
22
-
23
- return (
24
- <S.Container className={className}>
25
- <S.Label>{label}</S.Label>
26
- <S.Input
27
- type={type}
28
- name={name}
29
- value={valueSelected}
30
- placeholder={placeholder}
31
- disabled={disabled}
32
- onChange={(event) => changeValue(event)}
33
- />
34
- </S.Container>
35
- )
36
- }
37
-
1
+ import React, { useState } from "react"
2
+ import * as S from "./styles"
3
+ import { TextInputProps } from "./interface"
4
+
5
+ const TextInput:React.FC<TextInputProps> = ({
6
+ label,
7
+ className,
8
+ onChange,
9
+ disabled,
10
+ placeholder,
11
+ name,
12
+ type,
13
+ value
14
+ }) => {
15
+ const [valueSelected, setValueSelected] = useState(value)
16
+
17
+ const changeValue = (event: any) => {
18
+ const { value } = event.target
19
+ setValueSelected(value)
20
+ onChange(event)
21
+ }
22
+
23
+ return (
24
+ <S.Container className={className}>
25
+ <S.Label>{label}</S.Label>
26
+ <S.Input
27
+ type={type}
28
+ name={name}
29
+ value={valueSelected}
30
+ placeholder={placeholder}
31
+ disabled={disabled}
32
+ onChange={(event) => changeValue(event)}
33
+ />
34
+ </S.Container>
35
+ )
36
+ }
37
+
38
38
  export default TextInput