norma-library 0.5.3 → 0.5.50

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 (72) hide show
  1. package/dist/esm/components/Accordion.js +7 -11
  2. package/dist/esm/components/Accordion.js.map +1 -1
  3. package/dist/esm/components/Avatar.js +3 -7
  4. package/dist/esm/components/Avatar.js.map +1 -1
  5. package/dist/esm/components/Badge.js +3 -7
  6. package/dist/esm/components/Badge.js.map +1 -1
  7. package/dist/esm/components/Button.js +5 -9
  8. package/dist/esm/components/Button.js.map +1 -1
  9. package/dist/esm/components/Card.js +4 -7
  10. package/dist/esm/components/Card.js.map +1 -1
  11. package/dist/esm/components/CheckBox.js +3 -6
  12. package/dist/esm/components/CheckBox.js.map +1 -1
  13. package/dist/esm/components/DataGrid/index.js +29 -33
  14. package/dist/esm/components/DataGrid/index.js.map +1 -1
  15. package/dist/esm/components/DatePicker.js +6 -11
  16. package/dist/esm/components/DatePicker.js.map +1 -1
  17. package/dist/esm/components/DropDown.js +5 -10
  18. package/dist/esm/components/DropDown.js.map +1 -1
  19. package/dist/esm/components/IconButton.js +4 -7
  20. package/dist/esm/components/IconButton.js.map +1 -1
  21. package/dist/esm/components/Modal.js +11 -15
  22. package/dist/esm/components/Modal.js.map +1 -1
  23. package/dist/esm/components/Paper.js +3 -7
  24. package/dist/esm/components/Paper.js.map +1 -1
  25. package/dist/esm/components/ProgressBar.js +11 -15
  26. package/dist/esm/components/ProgressBar.js.map +1 -1
  27. package/dist/esm/components/RadioGroup.js +6 -10
  28. package/dist/esm/components/RadioGroup.js.map +1 -1
  29. package/dist/esm/components/RangerSlider.js +4 -7
  30. package/dist/esm/components/RangerSlider.js.map +1 -1
  31. package/dist/esm/components/Select.js +10 -14
  32. package/dist/esm/components/Select.js.map +1 -1
  33. package/dist/esm/components/Tabs.js +8 -11
  34. package/dist/esm/components/Tabs.js.map +1 -1
  35. package/dist/esm/components/Tag.js +8 -11
  36. package/dist/esm/components/Tag.js.map +1 -1
  37. package/dist/esm/components/TextField.js +4 -8
  38. package/dist/esm/components/TextField.js.map +1 -1
  39. package/dist/esm/components/TimeLine.js +4 -7
  40. package/dist/esm/components/TimeLine.js.map +1 -1
  41. package/dist/esm/components/TimePicker.js +6 -11
  42. package/dist/esm/components/TimePicker.js.map +1 -1
  43. package/dist/esm/index.d.ts +2 -1
  44. package/dist/esm/index.js +2 -1
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/esm/providers/NormaProvider.d.ts +3 -0
  47. package/dist/esm/providers/NormaProvider.js +7 -0
  48. package/dist/esm/providers/NormaProvider.js.map +1 -0
  49. package/package.json +1 -1
  50. package/src/components/Accordion.tsx +17 -25
  51. package/src/components/Avatar.tsx +3 -8
  52. package/src/components/Badge.tsx +3 -8
  53. package/src/components/Button.tsx +11 -16
  54. package/src/components/Card.tsx +7 -12
  55. package/src/components/CheckBox.tsx +5 -8
  56. package/src/components/DataGrid/index.tsx +87 -94
  57. package/src/components/DatePicker.tsx +9 -15
  58. package/src/components/DropDown.tsx +15 -22
  59. package/src/components/IconButton.tsx +7 -11
  60. package/src/components/Modal.tsx +40 -45
  61. package/src/components/Paper.tsx +3 -10
  62. package/src/components/ProgressBar.tsx +12 -19
  63. package/src/components/RadioGroup.tsx +21 -28
  64. package/src/components/RangerSlider.tsx +4 -9
  65. package/src/components/Select.tsx +34 -42
  66. package/src/components/Tabs.tsx +15 -20
  67. package/src/components/Tag.tsx +13 -17
  68. package/src/components/TextField.tsx +5 -10
  69. package/src/components/TimeLine.tsx +5 -9
  70. package/src/components/TimePicker.tsx +8 -14
  71. package/src/index.ts +2 -0
  72. package/src/providers/NormaProvider.tsx +13 -0
@@ -1,4 +1,4 @@
1
- import React, { useMemo } from 'react';
1
+ import React from 'react';
2
2
  import {
3
3
  FormControl,
4
4
  InputLabel,
@@ -6,11 +6,8 @@ import {
6
6
  MenuItem,
7
7
  Select as MuiSelect,
8
8
  OutlinedInput,
9
- ThemeProvider,
10
- useMediaQuery,
11
9
  } from '@mui/material';
12
10
  import { SelectBaseProps } from '../interfaces';
13
- import { themes } from '../helpers';
14
11
  import { styled } from '@mui/material/styles';
15
12
  import { CheckBox } from './CheckBox';
16
13
 
@@ -38,45 +35,40 @@ const SelectStyled = styled(MuiSelect)(({ multiple, variant }) => ({
38
35
  }));
39
36
 
40
37
  export const Select = ({ label, onChange, data = [], value = '', multiple = false, ...props }: SelectBaseProps) => {
41
- const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
42
- const theme = useMemo(() => (prefersDarkMode ? themes.light : themes.dark), [prefersDarkMode]);
43
-
44
38
  return (
45
- <ThemeProvider theme={theme}>
46
- <FormControl fullWidth>
47
- <InputLabel id={props.id}>{label}</InputLabel>
39
+ <FormControl fullWidth>
40
+ <InputLabel id={props.id}>{label}</InputLabel>
48
41
 
49
- {multiple ? (
50
- <SelectStyled
51
- labelId={props.id}
52
- id="demo-simple-select"
53
- value={value}
54
- MenuProps={MenuProps}
55
- input={<OutlinedInput label="Tag" />}
56
- renderValue={(selected: any) => selected.join(', ')}
57
- onChange={onChange}
58
- multiple
59
- {...props}
60
- >
61
- {data &&
62
- data.map((item, key) => (
63
- <MenuItem value={item.value} key={key}>
64
- <CheckBox checked={value.includes(String(item.value))} />
65
- <ListItemText primary={String(item.label)} />
66
- </MenuItem>
67
- ))}
68
- </SelectStyled>
69
- ) : (
70
- <SelectStyled labelId={props.id} id="demo-simple-select" value={value} onChange={onChange} {...props}>
71
- {data &&
72
- data.map((item, key) => (
73
- <MenuItem value={item.value} key={key}>
74
- <ListItemText primary={String(item.label)} />
75
- </MenuItem>
76
- ))}
77
- </SelectStyled>
78
- )}
79
- </FormControl>
80
- </ThemeProvider>
42
+ {multiple ? (
43
+ <SelectStyled
44
+ labelId={props.id}
45
+ id="demo-simple-select"
46
+ value={value}
47
+ MenuProps={MenuProps}
48
+ input={<OutlinedInput label="Tag" />}
49
+ renderValue={(selected: any) => selected.join(', ')}
50
+ onChange={onChange}
51
+ multiple
52
+ {...props}
53
+ >
54
+ {data &&
55
+ data.map((item, key) => (
56
+ <MenuItem value={item.value} key={key}>
57
+ <CheckBox checked={value.includes(String(item.value))} />
58
+ <ListItemText primary={String(item.label)} />
59
+ </MenuItem>
60
+ ))}
61
+ </SelectStyled>
62
+ ) : (
63
+ <SelectStyled labelId={props.id} id="demo-simple-select" value={value} onChange={onChange} {...props}>
64
+ {data &&
65
+ data.map((item, key) => (
66
+ <MenuItem value={item.value} key={key}>
67
+ <ListItemText primary={String(item.label)} />
68
+ </MenuItem>
69
+ ))}
70
+ </SelectStyled>
71
+ )}
72
+ </FormControl>
81
73
  );
82
74
  };
@@ -1,7 +1,7 @@
1
- import React, { useMemo } from 'react';
2
- import { Box, Tabs as MuiTabs, Tab, ThemeProvider, Typography, useMediaQuery } from '@mui/material';
1
+ import React from 'react';
2
+ import { Box, Tabs as MuiTabs, Tab, Typography } from '@mui/material';
3
3
  import { TabPanelProps, TabsBaseProps } from '../interfaces';
4
- import { palette, themes } from '../helpers';
4
+ import { palette } from '../helpers';
5
5
  import { styled } from '@mui/material/styles';
6
6
  import { ColorVariant } from '@/types';
7
7
 
@@ -88,24 +88,19 @@ export const Tabs = ({ data = [], color = 'primary', ...props }: TabsBaseProps)
88
88
  console.log(event);
89
89
  };
90
90
 
91
- const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
92
- const theme = useMemo(() => (prefersDarkMode ? themes.light : themes.dark), [prefersDarkMode]);
93
-
94
91
  return (
95
- <ThemeProvider theme={theme}>
96
- <Box sx={{ width: '100%' }}>
97
- <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>
98
- <TabsStyled value={value} color={color} onChange={handleChange} aria-label="basic tabs example" {...props}>
99
- {data && data.map((item, key) => <TabStyled label={item.label} color={color} {...a11yProps(key)} />)}
100
- </TabsStyled>
101
- </Box>
102
- {data &&
103
- data.map((item, key) => (
104
- <CustomTabPanel value={value} index={key}>
105
- {item.children}
106
- </CustomTabPanel>
107
- ))}
92
+ <Box sx={{ width: '100%' }}>
93
+ <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>
94
+ <TabsStyled value={value} color={color} onChange={handleChange} aria-label="basic tabs example" {...props}>
95
+ {data && data.map((item, key) => <TabStyled label={item.label} color={color} {...a11yProps(key)} />)}
96
+ </TabsStyled>
108
97
  </Box>
109
- </ThemeProvider>
98
+ {data &&
99
+ data.map((item, key) => (
100
+ <CustomTabPanel value={value} index={key}>
101
+ {item.children}
102
+ </CustomTabPanel>
103
+ ))}
104
+ </Box>
110
105
  );
111
106
  };
@@ -1,7 +1,7 @@
1
- import React, { useMemo } from 'react';
2
- import { Chip as MuiTag, ThemeProvider, useMediaQuery } from '@mui/material';
1
+ import React from 'react';
2
+ import { Chip as MuiTag } from '@mui/material';
3
3
  import { TagBaseProps } from '../interfaces';
4
- import { palette, themes } from '../helpers';
4
+ import { palette } from '../helpers';
5
5
  import { styled } from '@mui/material/styles';
6
6
  import { ColorVariant } from '@/types';
7
7
 
@@ -18,20 +18,16 @@ const colorMap: Record<ColorVariant, string> = {
18
18
  const TagStyled = styled(MuiTag)({});
19
19
 
20
20
  export const Tag = ({ label, color = 'primary', outlined = false, ...props }: TagBaseProps) => {
21
- const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
22
- const theme = useMemo(() => (prefersDarkMode ? themes.light : themes.dark), [prefersDarkMode]);
23
-
21
+
24
22
  return (
25
- <ThemeProvider theme={theme}>
26
- <TagStyled
27
- label={label}
28
- sx={{
29
- color: outlined !== true ? '#FFFF' : colorMap[color],
30
- backgroundColor: outlined !== true ? colorMap[color] : 'inherit',
31
- border: `1px solid ${colorMap[color]}`,
32
- }}
33
- {...props}
34
- />
35
- </ThemeProvider>
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
+ />
36
32
  );
37
33
  };
@@ -1,10 +1,9 @@
1
- import React, { useMemo } from 'react';
1
+ import React from 'react';
2
2
 
3
- import { FormControl, ThemeProvider, useMediaQuery, TextField as MuiTextField } from '@mui/material';
3
+ import { FormControl, TextField as MuiTextField } from '@mui/material';
4
4
 
5
5
  import { TextFieldBaseProps } from '../interfaces';
6
6
  import { styled } from '@mui/material/styles';
7
- import { themes } from '../helpers';
8
7
 
9
8
  const TextFieldStyled = styled(MuiTextField)({
10
9
  textTransform: 'none',
@@ -12,13 +11,9 @@ const TextFieldStyled = styled(MuiTextField)({
12
11
  });
13
12
 
14
13
  export const TextField: React.FC<TextFieldBaseProps> = ({ label, ...props }) => {
15
- const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
16
- const theme = useMemo(() => (prefersDarkMode ? themes.light : themes.dark), [prefersDarkMode]);
17
14
  return (
18
- <ThemeProvider theme={theme}>
19
- <FormControl sx={{ width: '100%' }}>
20
- <TextFieldStyled {...props} label={label} />
21
- </FormControl>
22
- </ThemeProvider>
15
+ <FormControl sx={{ width: '100%' }}>
16
+ <TextFieldStyled {...props} label={label} />
17
+ </FormControl>
23
18
  );
24
19
  };
@@ -1,5 +1,5 @@
1
- import React, { useMemo } from 'react';
2
- import { ThemeProvider, useMediaQuery, Typography } from '@mui/material';
1
+ import React from 'react';
2
+ import { Typography } from '@mui/material';
3
3
 
4
4
  import {
5
5
  Timeline as MuiTimeLine,
@@ -14,7 +14,7 @@ import {
14
14
  import { TimeLineBaseProps } from '@/interfaces/TimeLine';
15
15
 
16
16
  import { styled } from '@mui/material/styles';
17
- import { palette, lightenRGB, themes } from '../helpers';
17
+ import { palette, lightenRGB } from '../helpers';
18
18
  import { ColorVariant, DataTimeLine } from '@/types';
19
19
 
20
20
  const colorMap: Record<ColorVariant, string> = {
@@ -58,9 +58,7 @@ export const TimeLine: React.FC<TimeLineBaseProps> = ({
58
58
  position = 'left',
59
59
  ...props
60
60
  }) => {
61
- const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
62
- const theme = useMemo(() => (prefersDarkMode ? themes.light : themes.light), [prefersDarkMode]);
63
-
61
+
64
62
  const renderList = data.map((item, key) => (
65
63
  <TimelineItem key={key}>
66
64
  <TimelineSeparator>
@@ -86,8 +84,6 @@ export const TimeLine: React.FC<TimeLineBaseProps> = ({
86
84
  ));
87
85
 
88
86
  return (
89
- <ThemeProvider theme={theme}>
90
- <TimeLineStyled {...props}>{renderList}</TimeLineStyled>
91
- </ThemeProvider>
87
+ <TimeLineStyled {...props}>{renderList}</TimeLineStyled>
92
88
  );
93
89
  };
@@ -1,12 +1,10 @@
1
- import React, { useMemo } from 'react';
2
- import { ThemeProvider, useMediaQuery } from '@mui/material';
1
+ import React from 'react';
3
2
  import { DemoContainer } from '@mui/x-date-pickers/internals/demo';
4
3
  import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
5
4
  import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
6
5
  import { TimePicker as MuiTimePicker } from '@mui/x-date-pickers/TimePicker';
7
6
  import { MobileTimePicker as MuiMobileTimePicker } from '@mui/x-date-pickers/MobileTimePicker';
8
7
  import { DesktopTimePicker as MuiDesktopTimePicker } from '@mui/x-date-pickers/DesktopTimePicker';
9
- import { themes } from '../helpers';
10
8
  import { styled } from '@mui/material/styles';
11
9
 
12
10
  import 'dayjs/locale/pt-br';
@@ -67,18 +65,14 @@ export const TimePicker = ({
67
65
  language = 'pt-br',
68
66
  variant = 'desktop',
69
67
  }: TimePickerBaseProps) => {
70
- const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
71
- const theme = useMemo(() => (prefersDarkMode ? themes.light : themes.dark), [prefersDarkMode]);
72
68
 
73
69
  return (
74
- <ThemeProvider theme={theme}>
75
- <LocalizationProvider dateAdapter={AdapterDayjs} adapterLocale={language}>
76
- <DemoContainer components={['TimePicker', 'MobileTimePicker', 'DesktopTimePicker']}>
77
- {variant === 'responsive' && <MuiTimePickerStyled label={label} timezone={timezone} />}
78
- {variant === 'mobile' && <MuiMobileTimePickerStyled label={label} timezone={timezone} />}
79
- {variant === 'desktop' && <MuiDesktopTimePickerStyled label={label} timezone={timezone} />}
80
- </DemoContainer>
81
- </LocalizationProvider>
82
- </ThemeProvider>
70
+ <LocalizationProvider dateAdapter={AdapterDayjs} adapterLocale={language}>
71
+ <DemoContainer components={['TimePicker', 'MobileTimePicker', 'DesktopTimePicker']}>
72
+ {variant === 'responsive' && <MuiTimePickerStyled label={label} timezone={timezone} />}
73
+ {variant === 'mobile' && <MuiMobileTimePickerStyled label={label} timezone={timezone} />}
74
+ {variant === 'desktop' && <MuiDesktopTimePickerStyled label={label} timezone={timezone} />}
75
+ </DemoContainer>
76
+ </LocalizationProvider>
83
77
  );
84
78
  };
package/src/index.ts CHANGED
@@ -14,6 +14,7 @@ import { Tabs } from './components/Tabs';
14
14
  import { Tag } from './components/Tag';
15
15
  import { TextField } from './components/TextField';
16
16
  import { DatePicker } from './components/DatePicker';
17
+ import { NormaProvider } from './providers/NormaProvider';
17
18
  import { themes, getPalette } from './helpers';
18
19
 
19
20
  export {
@@ -34,5 +35,6 @@ export {
34
35
  Tabs,
35
36
  Tag,
36
37
  TextField,
38
+ NormaProvider,
37
39
  themes,
38
40
  };
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { ThemeProvider } from '@mui/material';
3
+ import { ThemeProviderProps } from "@mui/material/styles/ThemeProvider";
4
+
5
+ export const NormaProvider = (props:ThemeProviderProps) => {
6
+ const { theme, children } = props;
7
+
8
+ return (
9
+ <ThemeProvider theme={theme}>
10
+ {children}
11
+ </ThemeProvider>
12
+ );
13
+ };