norma-library 0.5.131 → 0.5.133

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 (184) 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/styles.d.ts +1 -1
  9. package/dist/esm/components/Breadcrumb/styles.d.ts +4 -4
  10. package/dist/esm/components/ChatMessageBalloon/ChatMessageBalloon.style.d.ts +1 -1
  11. package/dist/esm/components/DateInput/styles.d.ts +2 -2
  12. package/dist/esm/components/Icons.d.ts +1 -1
  13. package/dist/esm/components/Modal.js +4 -4
  14. package/dist/esm/components/Modal.js.map +1 -1
  15. package/dist/esm/components/MultiSelectInput/components/Option/styles.d.ts +1 -1
  16. package/dist/esm/components/MultiSelectInput/styles.d.ts +2 -2
  17. package/dist/esm/components/ProgressBar.d.ts +1 -1
  18. package/dist/esm/components/ProgressBar.js +19 -8
  19. package/dist/esm/components/ProgressBar.js.map +1 -1
  20. package/dist/esm/components/SelectInput/components/Option/styles.d.ts +1 -1
  21. package/dist/esm/components/SelectInput/styles.d.ts +2 -2
  22. package/dist/esm/components/Table/components/header/styles.d.ts +8 -8
  23. package/dist/esm/components/Table/components/pagination/styles.d.ts +1 -1
  24. package/dist/esm/components/Table/components/tbody/styles.d.ts +1 -1
  25. package/dist/esm/components/Table/styles.d.ts +10 -10
  26. package/dist/esm/components/TextInput/styles.d.ts +3 -3
  27. package/dist/esm/components/Typography/Text/styles.d.ts +1 -1
  28. package/dist/esm/components/Typography/Title/styles.d.ts +1 -1
  29. package/dist/esm/components/UncontrolledTable/components/header/styles.d.ts +8 -8
  30. package/dist/esm/components/UncontrolledTable/components/pagination/styles.d.ts +1 -1
  31. package/dist/esm/components/UncontrolledTable/components/tbody/styles.d.ts +1 -1
  32. package/dist/esm/components/UncontrolledTable/styles.d.ts +10 -10
  33. package/dist/esm/components/UncontrolledTabs/UncontrolledTabs.style.d.ts +1 -1
  34. package/dist/esm/interfaces/ProgressBar.d.ts +5 -1
  35. package/docs/index.md +118 -118
  36. package/package.json +136 -136
  37. package/src/components/Accordion.tsx +39 -39
  38. package/src/components/Avatar.tsx +17 -17
  39. package/src/components/Badge.tsx +14 -14
  40. package/src/components/Box/index.tsx +12 -12
  41. package/src/components/Box/interfaces.ts +3 -3
  42. package/src/components/Box/styles.tsx +22 -22
  43. package/src/components/Breadcrumb/index.tsx +27 -27
  44. package/src/components/Breadcrumb/interface.ts +8 -8
  45. package/src/components/Breadcrumb/styles.tsx +32 -32
  46. package/src/components/Button.tsx +26 -26
  47. package/src/components/Card.tsx +37 -37
  48. package/src/components/ChatMessage.tsx +87 -87
  49. package/src/components/ChatMessageBalloon/ChatMessageBalloon.style.ts +56 -56
  50. package/src/components/ChatMessageBalloon/ChatMessageBalloon.tsx +55 -55
  51. package/src/components/CheckBox.tsx +21 -21
  52. package/src/components/DateInput/index.tsx +34 -34
  53. package/src/components/DateInput/interface.ts +13 -13
  54. package/src/components/DateInput/styles.tsx +27 -27
  55. package/src/components/DatePicker.tsx +67 -67
  56. package/src/components/DropDown.tsx +24 -24
  57. package/src/components/IconButton.tsx +37 -37
  58. package/src/components/Icons.tsx +82 -82
  59. package/src/components/Modal.tsx +103 -113
  60. package/src/components/MultiSelectInput/components/MultiValue/index.tsx +44 -44
  61. package/src/components/MultiSelectInput/components/Option/index.tsx +62 -62
  62. package/src/components/MultiSelectInput/components/Option/styles.tsx +8 -8
  63. package/src/components/MultiSelectInput/index.tsx +60 -60
  64. package/src/components/MultiSelectInput/interfaces.ts +15 -15
  65. package/src/components/MultiSelectInput/styles.tsx +43 -43
  66. package/src/components/Paper.tsx +12 -12
  67. package/src/components/ProgressBar.tsx +63 -50
  68. package/src/components/RadioGroup.tsx +43 -43
  69. package/src/components/RangerSlider.tsx +65 -65
  70. package/src/components/Select.tsx +74 -74
  71. package/src/components/SelectInput/components/Option/index.tsx +61 -61
  72. package/src/components/SelectInput/components/Option/styles.tsx +8 -8
  73. package/src/components/SelectInput/index.tsx +45 -45
  74. package/src/components/SelectInput/interfaces.ts +15 -15
  75. package/src/components/SelectInput/styles.tsx +31 -31
  76. package/src/components/Svgs.tsx +506 -506
  77. package/src/components/Table/components/header/index.tsx +86 -86
  78. package/src/components/Table/components/header/styles.tsx +59 -59
  79. package/src/components/Table/components/index.tsx +8 -8
  80. package/src/components/Table/components/pagination/index.tsx +39 -39
  81. package/src/components/Table/components/pagination/styles.tsx +28 -28
  82. package/src/components/Table/components/tbody/index.tsx +30 -30
  83. package/src/components/Table/components/tbody/styles.tsx +4 -4
  84. package/src/components/Table/index.tsx +317 -317
  85. package/src/components/Table/interface.ts +23 -23
  86. package/src/components/Table/styles.tsx +117 -117
  87. package/src/components/Tabs.tsx +105 -105
  88. package/src/components/Tag.tsx +33 -33
  89. package/src/components/TextField.tsx +19 -19
  90. package/src/components/TextInput/index.tsx +37 -37
  91. package/src/components/TextInput/interface.ts +9 -9
  92. package/src/components/TextInput/styles.tsx +23 -23
  93. package/src/components/TimeLine.tsx +89 -89
  94. package/src/components/TimePicker.tsx +78 -78
  95. package/src/components/Typography/Text/index.tsx +20 -20
  96. package/src/components/Typography/Text/interfaces.ts +5 -5
  97. package/src/components/Typography/Text/styles.tsx +40 -40
  98. package/src/components/Typography/Title/index.tsx +22 -22
  99. package/src/components/Typography/Title/interfaces.ts +6 -6
  100. package/src/components/Typography/Title/styles.tsx +40 -40
  101. package/src/components/Typography/index.tsx +6 -6
  102. package/src/components/UncontrolledTable/components/header/index.tsx +63 -63
  103. package/src/components/UncontrolledTable/components/header/styles.tsx +59 -59
  104. package/src/components/UncontrolledTable/components/index.tsx +8 -8
  105. package/src/components/UncontrolledTable/components/pagination/index.tsx +43 -43
  106. package/src/components/UncontrolledTable/components/pagination/styles.tsx +28 -28
  107. package/src/components/UncontrolledTable/components/tbody/index.tsx +30 -30
  108. package/src/components/UncontrolledTable/components/tbody/styles.tsx +4 -4
  109. package/src/components/UncontrolledTable/index.tsx +226 -226
  110. package/src/components/UncontrolledTable/interface.ts +42 -42
  111. package/src/components/UncontrolledTable/styles.tsx +120 -120
  112. package/src/components/UncontrolledTabs/UncontrolledTabs.style.tsx +51 -51
  113. package/src/components/UncontrolledTabs/UncontrolledTabs.tsx +68 -68
  114. package/src/components/index.ts +24 -24
  115. package/src/helpers/alignments.ts +14 -14
  116. package/src/helpers/borders.ts +18 -18
  117. package/src/helpers/colors.ts +206 -206
  118. package/src/helpers/index.ts +5 -5
  119. package/src/helpers/radios.ts +24 -24
  120. package/src/helpers/sizes.ts +72 -72
  121. package/src/index.ts +66 -66
  122. package/src/interfaces/Accordion.ts +12 -12
  123. package/src/interfaces/Avatar.tsx +15 -15
  124. package/src/interfaces/Badge.ts +19 -19
  125. package/src/interfaces/Button.ts +22 -22
  126. package/src/interfaces/Card.ts +11 -11
  127. package/src/interfaces/ChatMessage.ts +12 -12
  128. package/src/interfaces/ChatMessageBalloon.ts +17 -17
  129. package/src/interfaces/CheckBox.ts +27 -27
  130. package/src/interfaces/DatePicker.ts +13 -13
  131. package/src/interfaces/DropDown.ts +14 -14
  132. package/src/interfaces/IconButton.ts +22 -22
  133. package/src/interfaces/Icons.ts +17 -17
  134. package/src/interfaces/Modal.ts +16 -16
  135. package/src/interfaces/Paper.ts +12 -12
  136. package/src/interfaces/ProgressBar.ts +25 -19
  137. package/src/interfaces/RadioGroup.ts +23 -23
  138. package/src/interfaces/RangerSlider.ts +21 -21
  139. package/src/interfaces/Select.ts +17 -17
  140. package/src/interfaces/Tabs.ts +19 -19
  141. package/src/interfaces/Tag.ts +17 -17
  142. package/src/interfaces/TextField.ts +44 -44
  143. package/src/interfaces/TimeLine.ts +11 -11
  144. package/src/interfaces/TimePicker.ts +13 -13
  145. package/src/interfaces/index.ts +23 -23
  146. package/src/providers/NormaProvider.tsx +13 -13
  147. package/src/sample-data-2.json +178 -178
  148. package/src/sample-data.json +177 -177
  149. package/src/stories/Accordion.stories.tsx +65 -65
  150. package/src/stories/Avatar.stories.tsx +123 -123
  151. package/src/stories/Badge.stories.tsx +39 -39
  152. package/src/stories/Box.stories.tsx +35 -35
  153. package/src/stories/Breadcrumb.stories.tsx +44 -44
  154. package/src/stories/Button.stories.tsx +93 -93
  155. package/src/stories/Card.stories.tsx +39 -39
  156. package/src/stories/ChatMessage.stories.tsx +84 -84
  157. package/src/stories/ChatMessageBalloon.stories.tsx +108 -108
  158. package/src/stories/CheckBox.stories.tsx +88 -88
  159. package/src/stories/DateInput.stories.tsx +51 -51
  160. package/src/stories/DatePicker.stories.tsx +50 -50
  161. package/src/stories/DropDown.stories.tsx +57 -57
  162. package/src/stories/IconButton.stories.tsx +78 -78
  163. package/src/stories/Modal.stories.tsx +195 -195
  164. package/src/stories/MultiSelectInput.stories.tsx +90 -90
  165. package/src/stories/Paper.stories.tsx +53 -53
  166. package/src/stories/ProgressBar.stories.tsx +113 -95
  167. package/src/stories/RadioGroup.stories.tsx +87 -87
  168. package/src/stories/RangerSlider.stories.tsx +158 -58
  169. package/src/stories/Select.stories.tsx +100 -100
  170. package/src/stories/SelectInput.stories.tsx +78 -78
  171. package/src/stories/Table.stories.tsx +372 -372
  172. package/src/stories/Tabs.stories.tsx +61 -61
  173. package/src/stories/Tag.stories.tsx +56 -56
  174. package/src/stories/Text.stories.tsx +37 -37
  175. package/src/stories/TextField.stories.tsx +310 -310
  176. package/src/stories/TextInput.stories.tsx +52 -52
  177. package/src/stories/TimeLine.stories.tsx +35 -35
  178. package/src/stories/TimePicker.stories.tsx +87 -87
  179. package/src/stories/Title.stories.tsx +43 -43
  180. package/src/stories/UncontrolledTable.stories.tsx +337 -337
  181. package/src/stories/UncontrolledTabs.stories.tsx +63 -63
  182. package/src/styles/globals.scss +17 -17
  183. package/src/types/index.ts +204 -204
  184. 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