norma-library 0.5.145 → 0.5.147

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 (170) 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/StatusModal/StatusModal.d.ts +1 -0
  9. package/dist/esm/components/StatusModal/StatusModal.js +2 -2
  10. package/dist/esm/components/StatusModal/StatusModal.js.map +1 -1
  11. package/dist/esm/components/StatusModal/StatusModal.style.d.ts +3 -1
  12. package/dist/esm/components/StatusModal/StatusModal.style.js +1 -1
  13. package/dist/esm/components/StatusModal/StatusModal.style.js.map +1 -1
  14. package/dist/esm/helpers/colors.d.ts +4 -0
  15. package/dist/esm/helpers/colors.js +30 -0
  16. package/dist/esm/helpers/colors.js.map +1 -1
  17. package/docs/index.md +118 -118
  18. package/package.json +136 -136
  19. package/src/components/Accordion.tsx +39 -39
  20. package/src/components/Avatar.tsx +17 -17
  21. package/src/components/Badge.tsx +14 -14
  22. package/src/components/Box/index.tsx +12 -12
  23. package/src/components/Box/interfaces.ts +3 -3
  24. package/src/components/Box/styles.tsx +22 -22
  25. package/src/components/Breadcrumb/index.tsx +27 -27
  26. package/src/components/Breadcrumb/interface.ts +8 -8
  27. package/src/components/Breadcrumb/styles.tsx +32 -32
  28. package/src/components/Button.tsx +26 -26
  29. package/src/components/Card.tsx +37 -37
  30. package/src/components/ChatMessage.tsx +87 -87
  31. package/src/components/ChatMessageBalloon/ChatMessageBalloon.style.ts +56 -56
  32. package/src/components/ChatMessageBalloon/ChatMessageBalloon.tsx +55 -55
  33. package/src/components/CheckBox.tsx +21 -21
  34. package/src/components/DateInput/index.tsx +34 -34
  35. package/src/components/DateInput/interface.ts +13 -13
  36. package/src/components/DateInput/styles.tsx +27 -27
  37. package/src/components/DatePicker.tsx +67 -67
  38. package/src/components/DropDown.tsx +24 -24
  39. package/src/components/IconButton.tsx +37 -37
  40. package/src/components/Icons.tsx +82 -82
  41. package/src/components/Modal.tsx +103 -103
  42. package/src/components/MultiSelectInput/components/MultiValue/index.tsx +44 -44
  43. package/src/components/MultiSelectInput/components/Option/index.tsx +62 -62
  44. package/src/components/MultiSelectInput/components/Option/styles.tsx +8 -8
  45. package/src/components/MultiSelectInput/index.tsx +60 -60
  46. package/src/components/MultiSelectInput/interfaces.ts +15 -15
  47. package/src/components/MultiSelectInput/styles.tsx +43 -43
  48. package/src/components/Paper.tsx +12 -12
  49. package/src/components/ProgressBar.tsx +71 -71
  50. package/src/components/RadioGroup.tsx +43 -43
  51. package/src/components/RangerSlider.tsx +65 -65
  52. package/src/components/Select.tsx +74 -74
  53. package/src/components/SelectInput/components/Option/index.tsx +61 -61
  54. package/src/components/SelectInput/components/Option/styles.tsx +8 -8
  55. package/src/components/SelectInput/index.tsx +45 -45
  56. package/src/components/SelectInput/interfaces.ts +15 -15
  57. package/src/components/SelectInput/styles.tsx +31 -31
  58. package/src/components/StatusModal/StatusModal.style.tsx +75 -75
  59. package/src/components/StatusModal/StatusModal.tsx +58 -57
  60. package/src/components/Svgs.tsx +506 -506
  61. package/src/components/Table/components/header/index.tsx +86 -86
  62. package/src/components/Table/components/header/styles.tsx +59 -59
  63. package/src/components/Table/components/index.tsx +8 -8
  64. package/src/components/Table/components/pagination/index.tsx +39 -39
  65. package/src/components/Table/components/pagination/styles.tsx +28 -28
  66. package/src/components/Table/components/tbody/index.tsx +30 -30
  67. package/src/components/Table/components/tbody/styles.tsx +4 -4
  68. package/src/components/Table/index.tsx +317 -317
  69. package/src/components/Table/interface.ts +23 -23
  70. package/src/components/Table/styles.tsx +117 -117
  71. package/src/components/Tabs.tsx +105 -105
  72. package/src/components/Tag.tsx +33 -33
  73. package/src/components/TextField.tsx +19 -19
  74. package/src/components/TextInput/index.tsx +37 -37
  75. package/src/components/TextInput/interface.ts +9 -9
  76. package/src/components/TextInput/styles.tsx +23 -23
  77. package/src/components/TimeLine.tsx +89 -89
  78. package/src/components/TimePicker.tsx +78 -78
  79. package/src/components/Typography/Text/index.tsx +20 -20
  80. package/src/components/Typography/Text/interfaces.ts +5 -5
  81. package/src/components/Typography/Text/styles.tsx +40 -40
  82. package/src/components/Typography/Title/index.tsx +22 -22
  83. package/src/components/Typography/Title/interfaces.ts +6 -6
  84. package/src/components/Typography/Title/styles.tsx +40 -40
  85. package/src/components/Typography/index.tsx +6 -6
  86. package/src/components/UncontrolledTable/components/header/index.tsx +63 -63
  87. package/src/components/UncontrolledTable/components/header/styles.tsx +60 -60
  88. package/src/components/UncontrolledTable/components/index.tsx +8 -8
  89. package/src/components/UncontrolledTable/components/pagination/index.tsx +43 -43
  90. package/src/components/UncontrolledTable/components/pagination/styles.tsx +28 -28
  91. package/src/components/UncontrolledTable/components/tbody/index.tsx +33 -33
  92. package/src/components/UncontrolledTable/components/tbody/styles.tsx +25 -25
  93. package/src/components/UncontrolledTable/index.tsx +221 -221
  94. package/src/components/UncontrolledTable/interface.ts +43 -43
  95. package/src/components/UncontrolledTable/styles.tsx +116 -116
  96. package/src/components/UncontrolledTabs/UncontrolledTabs.style.tsx +56 -56
  97. package/src/components/UncontrolledTabs/UncontrolledTabs.tsx +68 -68
  98. package/src/components/index.ts +24 -24
  99. package/src/helpers/alignments.ts +14 -14
  100. package/src/helpers/borders.ts +18 -18
  101. package/src/helpers/colors.ts +241 -206
  102. package/src/helpers/index.ts +5 -5
  103. package/src/helpers/radios.ts +24 -24
  104. package/src/helpers/sizes.ts +72 -72
  105. package/src/hooks/useClickOutside.tsx +18 -18
  106. package/src/index.ts +66 -66
  107. package/src/interfaces/Accordion.ts +12 -12
  108. package/src/interfaces/Avatar.tsx +15 -15
  109. package/src/interfaces/Badge.ts +19 -19
  110. package/src/interfaces/Button.ts +22 -22
  111. package/src/interfaces/Card.ts +11 -11
  112. package/src/interfaces/ChatMessage.ts +12 -12
  113. package/src/interfaces/ChatMessageBalloon.ts +17 -17
  114. package/src/interfaces/CheckBox.ts +27 -27
  115. package/src/interfaces/DatePicker.ts +13 -13
  116. package/src/interfaces/DropDown.ts +14 -14
  117. package/src/interfaces/IconButton.ts +22 -22
  118. package/src/interfaces/Icons.ts +17 -17
  119. package/src/interfaces/Modal.ts +18 -18
  120. package/src/interfaces/Paper.ts +12 -12
  121. package/src/interfaces/ProgressBar.ts +29 -29
  122. package/src/interfaces/RadioGroup.ts +23 -23
  123. package/src/interfaces/RangerSlider.ts +21 -21
  124. package/src/interfaces/Select.ts +17 -17
  125. package/src/interfaces/Tabs.ts +19 -19
  126. package/src/interfaces/Tag.ts +17 -17
  127. package/src/interfaces/TextField.ts +44 -44
  128. package/src/interfaces/TimeLine.ts +11 -11
  129. package/src/interfaces/TimePicker.ts +13 -13
  130. package/src/interfaces/index.ts +23 -23
  131. package/src/providers/NormaProvider.tsx +13 -13
  132. package/src/sample-data-2.json +178 -178
  133. package/src/sample-data.json +177 -177
  134. package/src/stories/Accordion.stories.tsx +65 -65
  135. package/src/stories/Avatar.stories.tsx +123 -123
  136. package/src/stories/Badge.stories.tsx +39 -39
  137. package/src/stories/Box.stories.tsx +35 -35
  138. package/src/stories/Breadcrumb.stories.tsx +44 -44
  139. package/src/stories/Button.stories.tsx +93 -93
  140. package/src/stories/Card.stories.tsx +39 -39
  141. package/src/stories/ChatMessage.stories.tsx +84 -84
  142. package/src/stories/ChatMessageBalloon.stories.tsx +108 -108
  143. package/src/stories/CheckBox.stories.tsx +88 -88
  144. package/src/stories/DateInput.stories.tsx +51 -51
  145. package/src/stories/DatePicker.stories.tsx +50 -50
  146. package/src/stories/DropDown.stories.tsx +57 -57
  147. package/src/stories/IconButton.stories.tsx +78 -78
  148. package/src/stories/Modal.stories.tsx +246 -246
  149. package/src/stories/ModalStatus.stories.tsx +46 -46
  150. package/src/stories/MultiSelectInput.stories.tsx +90 -90
  151. package/src/stories/Paper.stories.tsx +53 -53
  152. package/src/stories/ProgressBar.stories.tsx +116 -116
  153. package/src/stories/RadioGroup.stories.tsx +87 -87
  154. package/src/stories/RangerSlider.stories.tsx +149 -149
  155. package/src/stories/Select.stories.tsx +100 -100
  156. package/src/stories/SelectInput.stories.tsx +78 -78
  157. package/src/stories/Table.stories.tsx +372 -372
  158. package/src/stories/Tabs.stories.tsx +61 -61
  159. package/src/stories/Tag.stories.tsx +56 -56
  160. package/src/stories/Text.stories.tsx +37 -37
  161. package/src/stories/TextField.stories.tsx +310 -310
  162. package/src/stories/TextInput.stories.tsx +52 -52
  163. package/src/stories/TimeLine.stories.tsx +35 -35
  164. package/src/stories/TimePicker.stories.tsx +87 -87
  165. package/src/stories/Title.stories.tsx +43 -43
  166. package/src/stories/UncontrolledTable.stories.tsx +305 -305
  167. package/src/stories/UncontrolledTabs.stories.tsx +63 -63
  168. package/src/styles/globals.scss +17 -17
  169. package/src/types/index.ts +204 -204
  170. package/vite.config.ts +15 -15
@@ -1,61 +1,61 @@
1
- import React, { useState } from "react"
2
- import Select from "react-select"
3
- import { MultiSelectProps } from "./interfaces"
4
- import * as S from "./styles"
5
- import Option from "./components/Option"
6
- import MultiValue from "./components/MultiValue"
7
-
8
- const MultiSelectInput:React.FC<MultiSelectProps> = ({
9
- className,
10
- label,
11
- onChange,
12
- placeholder,
13
- disabled,
14
- options,
15
- value,
16
- isSearchable,
17
- isClearable,
18
- }) => {
19
- const [valueSelected, setValueSelected] = useState(value)
20
-
21
- const components = {
22
- MultiValueContainer: ({ selectProps, data }: any) => {
23
- const values = selectProps.value;
24
- if (values) {
25
- const separator = values.length > 1 ? ', ' : ''
26
- return values[values.length - 1]?.label === data?.label
27
- ? data?.label
28
- : data?.label + `${separator}`;
29
- }
30
- return
31
- },
32
- Option,
33
- MultiValue
34
- };
35
-
36
- return (
37
- <S.Container className={className}>
38
- { label ? <S.Label>{label}</S.Label> : null }
39
- <Select
40
- placeholder={placeholder}
41
- className="react-select-container"
42
- classNamePrefix="react-select"
43
- defaultValue={valueSelected || []}
44
- options={options}
45
- isMulti
46
- closeMenuOnSelect={false}
47
- hideSelectedOptions={false}
48
- isDisabled={disabled}
49
- isSearchable={isSearchable}
50
- isClearable={isClearable}
51
- components={components}
52
- onChange={(values: any) => {
53
- setValueSelected(values)
54
- onChange(values)
55
- }}
56
- />
57
- </S.Container>
58
- )
59
- }
60
-
1
+ import React, { useState } from "react"
2
+ import Select from "react-select"
3
+ import { MultiSelectProps } from "./interfaces"
4
+ import * as S from "./styles"
5
+ import Option from "./components/Option"
6
+ import MultiValue from "./components/MultiValue"
7
+
8
+ const MultiSelectInput:React.FC<MultiSelectProps> = ({
9
+ className,
10
+ label,
11
+ onChange,
12
+ placeholder,
13
+ disabled,
14
+ options,
15
+ value,
16
+ isSearchable,
17
+ isClearable,
18
+ }) => {
19
+ const [valueSelected, setValueSelected] = useState(value)
20
+
21
+ const components = {
22
+ MultiValueContainer: ({ selectProps, data }: any) => {
23
+ const values = selectProps.value;
24
+ if (values) {
25
+ const separator = values.length > 1 ? ', ' : ''
26
+ return values[values.length - 1]?.label === data?.label
27
+ ? data?.label
28
+ : data?.label + `${separator}`;
29
+ }
30
+ return
31
+ },
32
+ Option,
33
+ MultiValue
34
+ };
35
+
36
+ return (
37
+ <S.Container className={className}>
38
+ { label ? <S.Label>{label}</S.Label> : null }
39
+ <Select
40
+ placeholder={placeholder}
41
+ className="react-select-container"
42
+ classNamePrefix="react-select"
43
+ defaultValue={valueSelected || []}
44
+ options={options}
45
+ isMulti
46
+ closeMenuOnSelect={false}
47
+ hideSelectedOptions={false}
48
+ isDisabled={disabled}
49
+ isSearchable={isSearchable}
50
+ isClearable={isClearable}
51
+ components={components}
52
+ onChange={(values: any) => {
53
+ setValueSelected(values)
54
+ onChange(values)
55
+ }}
56
+ />
57
+ </S.Container>
58
+ )
59
+ }
60
+
61
61
  export default MultiSelectInput
@@ -1,16 +1,16 @@
1
- export interface Option {
2
- value: string | number,
3
- label: string
4
- }
5
-
6
- export interface MultiSelectProps {
7
- className?: string
8
- label?: string
9
- onChange: Function
10
- placeholder?: string
11
- disabled?: boolean
12
- options: Option[]
13
- value: Option
14
- isSearchable?: boolean
15
- isClearable?: boolean
1
+ export interface Option {
2
+ value: string | number,
3
+ label: string
4
+ }
5
+
6
+ export interface MultiSelectProps {
7
+ className?: string
8
+ label?: string
9
+ onChange: Function
10
+ placeholder?: string
11
+ disabled?: boolean
12
+ options: Option[]
13
+ value: Option
14
+ isSearchable?: boolean
15
+ isClearable?: boolean
16
16
  }
@@ -1,44 +1,44 @@
1
- import styled from "styled-components";
2
-
3
- export const Container = styled.div`
4
- width: 100%;
5
- display: flex;
6
- flex-direction: column;
7
- .react-select {
8
- &__control {
9
- border-radius: 0;
10
- border: none;
11
- border-bottom: 1px solid #00000033;
12
- }
13
- &__control--is-focused {
14
- border-bottom: 1px solid #00000033;
15
- box-shadow: none;
16
- }
17
- &__control:hover {
18
- border: none;
19
- border-bottom: 1px solid #00000033 !important;
20
- box-shadow: 0 0 0 #fff;
21
- }
22
- &__indicator-separator {
23
- background: #fff;
24
- }
25
- &__multi-value {
26
- background: transparent;
27
- border-radius: 4px;
28
- &__label {
29
- color: #4D4F5C;
30
- font-size: 18px;
31
- padding: 0;
32
- }
33
- &__remove {
34
- display: none;
35
- }
36
- }
37
- }
38
- `
39
-
40
- export const Label = styled.label`
41
- font-size: 14px;
42
- margin: 0 0 4px 0;
43
- color: #4D4F5C;
1
+ import styled from "styled-components";
2
+
3
+ export const Container = styled.div`
4
+ width: 100%;
5
+ display: flex;
6
+ flex-direction: column;
7
+ .react-select {
8
+ &__control {
9
+ border-radius: 0;
10
+ border: none;
11
+ border-bottom: 1px solid #00000033;
12
+ }
13
+ &__control--is-focused {
14
+ border-bottom: 1px solid #00000033;
15
+ box-shadow: none;
16
+ }
17
+ &__control:hover {
18
+ border: none;
19
+ border-bottom: 1px solid #00000033 !important;
20
+ box-shadow: 0 0 0 #fff;
21
+ }
22
+ &__indicator-separator {
23
+ background: #fff;
24
+ }
25
+ &__multi-value {
26
+ background: transparent;
27
+ border-radius: 4px;
28
+ &__label {
29
+ color: #4D4F5C;
30
+ font-size: 18px;
31
+ padding: 0;
32
+ }
33
+ &__remove {
34
+ display: none;
35
+ }
36
+ }
37
+ }
38
+ `
39
+
40
+ export const Label = styled.label`
41
+ font-size: 14px;
42
+ margin: 0 0 4px 0;
43
+ color: #4D4F5C;
44
44
  `
@@ -1,12 +1,12 @@
1
- import React from 'react';
2
- import { Paper as MuiPaper } from '@mui/material';
3
- import { PaperBaseProps } from '../interfaces';
4
- import { styled } from '@mui/material/styles';
5
-
6
- const PaperStyled = styled(MuiPaper)({});
7
-
8
- export const Paper = ({ children, ...props }: PaperBaseProps & {}) => {
9
- return (
10
- <PaperStyled {...props}>{children}</PaperStyled>
11
- );
12
- };
1
+ import React from 'react';
2
+ import { Paper as MuiPaper } from '@mui/material';
3
+ import { PaperBaseProps } from '../interfaces';
4
+ import { styled } from '@mui/material/styles';
5
+
6
+ const PaperStyled = styled(MuiPaper)({});
7
+
8
+ export const Paper = ({ children, ...props }: PaperBaseProps & {}) => {
9
+ return (
10
+ <PaperStyled {...props}>{children}</PaperStyled>
11
+ );
12
+ };
@@ -1,71 +1,71 @@
1
- import React from 'react';
2
- import { LinearProgress as MuiProgressBar, linearProgressClasses, Typography } from '@mui/material';
3
- import { styled } from '@mui/material/styles';
4
- import { ProgressBarBaseProps, CustomColor } from '../interfaces';
5
-
6
- const ProgressBarStyled = styled(MuiProgressBar)<{ colorCustom?: CustomColor; $h?: number }>(({ colorCustom, $h }) => ({
7
- width: '100%',
8
- height: $h ? `${$h}px` : '10px',
9
- borderRadius: '10px',
10
- position: 'relative',
11
- backgroundColor: colorCustom ? colorCustom.root : undefined,
12
- [`&.${linearProgressClasses.determinate}`]: {
13
- backgroundColor: colorCustom ? colorCustom.root : undefined,
14
- },
15
- [`& .${linearProgressClasses.bar}`]: {
16
- backgroundColor: colorCustom ? colorCustom.bar : undefined,
17
- },
18
- }));
19
-
20
- const ProgressBarLabelStyled = styled(Typography)<{ $fSize?: string }>`
21
- display: flex;
22
- justify-content: space-between;
23
- align-items: center;
24
- margin-bottom: 8px;
25
- position: relative;
26
- text-align: left;
27
- font-size: ${({ $fSize }) => $fSize || '1rem'};
28
- `;
29
-
30
- export const ProgressBar = ({
31
- value = 0,
32
- label,
33
- variant = 'determinate',
34
- total,
35
- className,
36
- localeString,
37
- colorCustom,
38
- color = 'primary',
39
- htmlLabel,
40
- ...props
41
- }: ProgressBarBaseProps) => {
42
- const percentage = value && total ? (value / total) * 100 : 0;
43
-
44
- return (
45
- <div className={className} style={{ minWidth: '100px' }}>
46
- {label ? (
47
- <ProgressBarLabelStyled $fSize={props.fSize} className="ProgressBarLabel">
48
- <>
49
- {label}
50
- {!props.hideValue && (
51
- <span style={{ right: 0 }}>
52
- {localeString ? value.toLocaleString() : value} ({percentage.toFixed(2)}%)
53
- </span>
54
- )}
55
- </>
56
- </ProgressBarLabelStyled>
57
- ) : (
58
- htmlLabel
59
- )}
60
-
61
- <ProgressBarStyled
62
- value={percentage}
63
- variant={variant}
64
- colorCustom={colorCustom}
65
- $h={props.h}
66
- color={colorCustom ? undefined : color}
67
- {...props}
68
- />
69
- </div>
70
- );
71
- };
1
+ import React from 'react';
2
+ import { LinearProgress as MuiProgressBar, linearProgressClasses, Typography } from '@mui/material';
3
+ import { styled } from '@mui/material/styles';
4
+ import { ProgressBarBaseProps, CustomColor } from '../interfaces';
5
+
6
+ const ProgressBarStyled = styled(MuiProgressBar)<{ colorCustom?: CustomColor; $h?: number }>(({ colorCustom, $h }) => ({
7
+ width: '100%',
8
+ height: $h ? `${$h}px` : '10px',
9
+ borderRadius: '10px',
10
+ position: 'relative',
11
+ backgroundColor: colorCustom ? colorCustom.root : undefined,
12
+ [`&.${linearProgressClasses.determinate}`]: {
13
+ backgroundColor: colorCustom ? colorCustom.root : undefined,
14
+ },
15
+ [`& .${linearProgressClasses.bar}`]: {
16
+ backgroundColor: colorCustom ? colorCustom.bar : undefined,
17
+ },
18
+ }));
19
+
20
+ const ProgressBarLabelStyled = styled(Typography)<{ $fSize?: string }>`
21
+ display: flex;
22
+ justify-content: space-between;
23
+ align-items: center;
24
+ margin-bottom: 8px;
25
+ position: relative;
26
+ text-align: left;
27
+ font-size: ${({ $fSize }) => $fSize || '1rem'};
28
+ `;
29
+
30
+ export const ProgressBar = ({
31
+ value = 0,
32
+ label,
33
+ variant = 'determinate',
34
+ total,
35
+ className,
36
+ localeString,
37
+ colorCustom,
38
+ color = 'primary',
39
+ htmlLabel,
40
+ ...props
41
+ }: ProgressBarBaseProps) => {
42
+ const percentage = value && total ? (value / total) * 100 : 0;
43
+
44
+ return (
45
+ <div className={className} style={{ minWidth: '100px' }}>
46
+ {label ? (
47
+ <ProgressBarLabelStyled $fSize={props.fSize} className="ProgressBarLabel">
48
+ <>
49
+ {label}
50
+ {!props.hideValue && (
51
+ <span style={{ right: 0 }}>
52
+ {localeString ? value.toLocaleString() : value} ({percentage.toFixed(2)}%)
53
+ </span>
54
+ )}
55
+ </>
56
+ </ProgressBarLabelStyled>
57
+ ) : (
58
+ htmlLabel
59
+ )}
60
+
61
+ <ProgressBarStyled
62
+ value={percentage}
63
+ variant={variant}
64
+ colorCustom={colorCustom}
65
+ $h={props.h}
66
+ color={colorCustom ? undefined : color}
67
+ {...props}
68
+ />
69
+ </div>
70
+ );
71
+ };
@@ -1,43 +1,43 @@
1
- import React from 'react';
2
- import {
3
- FormControl,
4
- FormControlLabel,
5
- FormLabel,
6
- Radio as MuiRadio,
7
- RadioGroup as MuiRadioGroup,
8
- } from '@mui/material';
9
-
10
- import { styled } from '@mui/material/styles';
11
- import { RadioBaseProps } from '../interfaces/RadioGroup';
12
- import { TextFieldSizeVariant } from '../types';
13
-
14
- const RadioStyled = styled(MuiRadio)({});
15
- const sizes: TextFieldSizeVariant[] = ['small', 'medium'];
16
-
17
- export const RadioGroup = ({ ...props }: RadioBaseProps) => {
18
- const { onChange } = props;
19
-
20
- return (
21
- <FormControl disabled={props.disabled}>
22
- <FormLabel id={props.id}>{props.label}</FormLabel>
23
- <MuiRadioGroup
24
- aria-labelledby={props.id}
25
- defaultValue={props.checked}
26
- name="radio-buttons-group"
27
- row={props.direction === 'horizontal' ? true : false}
28
- onChange={!!onChange ? (event, value) => onChange(event, value) : undefined}
29
- >
30
- {props.options &&
31
- props.options.map((item, key) => (
32
- <FormControlLabel
33
- value={item.value}
34
- control={<RadioStyled color={props.color} size={item.size ? item.size : sizes[1]} />}
35
- label={item.label}
36
- key={key}
37
- sx={{alignItems: "start"}}
38
- />
39
- ))}
40
- </MuiRadioGroup>
41
- </FormControl>
42
- );
43
- };
1
+ import React from 'react';
2
+ import {
3
+ FormControl,
4
+ FormControlLabel,
5
+ FormLabel,
6
+ Radio as MuiRadio,
7
+ RadioGroup as MuiRadioGroup,
8
+ } from '@mui/material';
9
+
10
+ import { styled } from '@mui/material/styles';
11
+ import { RadioBaseProps } from '../interfaces/RadioGroup';
12
+ import { TextFieldSizeVariant } from '../types';
13
+
14
+ const RadioStyled = styled(MuiRadio)({});
15
+ const sizes: TextFieldSizeVariant[] = ['small', 'medium'];
16
+
17
+ export const RadioGroup = ({ ...props }: RadioBaseProps) => {
18
+ const { onChange } = props;
19
+
20
+ return (
21
+ <FormControl disabled={props.disabled}>
22
+ <FormLabel id={props.id}>{props.label}</FormLabel>
23
+ <MuiRadioGroup
24
+ aria-labelledby={props.id}
25
+ defaultValue={props.checked}
26
+ name="radio-buttons-group"
27
+ row={props.direction === 'horizontal' ? true : false}
28
+ onChange={!!onChange ? (event, value) => onChange(event, value) : undefined}
29
+ >
30
+ {props.options &&
31
+ props.options.map((item, key) => (
32
+ <FormControlLabel
33
+ value={item.value}
34
+ control={<RadioStyled color={props.color} size={item.size ? item.size : sizes[1]} />}
35
+ label={item.label}
36
+ key={key}
37
+ sx={{alignItems: "start"}}
38
+ />
39
+ ))}
40
+ </MuiRadioGroup>
41
+ </FormControl>
42
+ );
43
+ };
@@ -1,65 +1,65 @@
1
- import React from 'react';
2
- import { Slider as MuiSlider } from '@mui/material';
3
- import { palette } from '../helpers';
4
- import { styled } from '@mui/material/styles';
5
- import { ColorVariant } from '@/types';
6
- import { RangerSliderBaseProps } from '@/interfaces/RangerSlider';
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 RangerSliderStyled = styled(MuiSlider)(() => ({
19
- height: 8,
20
- color: colorMap['primary'],
21
- '& .MuiSlider-track': {
22
- border: 'none',
23
- },
24
- '& .MuiSlider-thumb': {
25
- height: 18,
26
- width: 18,
27
- backgroundColor: '#FFF',
28
- border: `2px solid ${colorMap['primary']}`,
29
- '&:focus, &:hover, &.Mui-active, &.Mui-focusVisible': {
30
- boxShadow: 'inherit',
31
- },
32
- '&:before': {
33
- width: '8px',
34
- height: '8px',
35
- position: 'absolute',
36
- display: 'block',
37
- background: colorMap['primary'],
38
- },
39
- },
40
- '& .MuiSlider-valueLabel': {
41
- fontSize: 12,
42
- fontWeight: 'normal',
43
- top: 48,
44
- position: 'absolute',
45
- transition: 'none',
46
- color: colorMap['primary'],
47
- '&:before': {
48
- bottom: 'inherit',
49
- top: '-8px',
50
- },
51
- '& *': {
52
- background: 'transparent',
53
- color: '#FFF',
54
- },
55
- },
56
- '& .MuiSlider-rail': {
57
- color: '#F0F2F8 ',
58
- opacity: 1,
59
- height: 10,
60
- },
61
- }));
62
-
63
- export const RangerSlider = ({ defaultValue = 50, color = 'primary', ...props }: RangerSliderBaseProps) => {
64
- return <RangerSliderStyled aria-label="Default" color={color} {...props} />;
65
- };
1
+ import React from 'react';
2
+ import { Slider as MuiSlider } from '@mui/material';
3
+ import { palette } from '../helpers';
4
+ import { styled } from '@mui/material/styles';
5
+ import { ColorVariant } from '@/types';
6
+ import { RangerSliderBaseProps } from '@/interfaces/RangerSlider';
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 RangerSliderStyled = styled(MuiSlider)(() => ({
19
+ height: 8,
20
+ color: colorMap['primary'],
21
+ '& .MuiSlider-track': {
22
+ border: 'none',
23
+ },
24
+ '& .MuiSlider-thumb': {
25
+ height: 18,
26
+ width: 18,
27
+ backgroundColor: '#FFF',
28
+ border: `2px solid ${colorMap['primary']}`,
29
+ '&:focus, &:hover, &.Mui-active, &.Mui-focusVisible': {
30
+ boxShadow: 'inherit',
31
+ },
32
+ '&:before': {
33
+ width: '8px',
34
+ height: '8px',
35
+ position: 'absolute',
36
+ display: 'block',
37
+ background: colorMap['primary'],
38
+ },
39
+ },
40
+ '& .MuiSlider-valueLabel': {
41
+ fontSize: 12,
42
+ fontWeight: 'normal',
43
+ top: 48,
44
+ position: 'absolute',
45
+ transition: 'none',
46
+ color: colorMap['primary'],
47
+ '&:before': {
48
+ bottom: 'inherit',
49
+ top: '-8px',
50
+ },
51
+ '& *': {
52
+ background: 'transparent',
53
+ color: '#FFF',
54
+ },
55
+ },
56
+ '& .MuiSlider-rail': {
57
+ color: '#F0F2F8 ',
58
+ opacity: 1,
59
+ height: 10,
60
+ },
61
+ }));
62
+
63
+ export const RangerSlider = ({ defaultValue = 50, color = 'primary', ...props }: RangerSliderBaseProps) => {
64
+ return <RangerSliderStyled aria-label="Default" color={color} {...props} />;
65
+ };