venice-ui 1.0.38 → 1.0.40

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 (43) hide show
  1. package/dist/cjs/Theme/Theme.js +31 -3
  2. package/dist/cjs/components/Button/Button.js +8 -2
  3. package/dist/cjs/components/Button/Button.styles.js +39 -20
  4. package/dist/cjs/components/Dropdown/DropdownElements.js +3 -3
  5. package/dist/cjs/components/DropdownMenu/DropdownMenu.js +2 -2
  6. package/dist/cjs/components/DropdownMenu/DropdownMenu.styles.js +1 -0
  7. package/dist/cjs/components/ElementHeader/ElementHeader.js +2 -2
  8. package/dist/cjs/components/Icons/Icon.js +2 -2
  9. package/dist/cjs/components/Icons/Icon.styles.js +6 -2
  10. package/dist/cjs/components/Icons/IconsPath.js +2 -1
  11. package/dist/cjs/components/Input/Input.js +40 -9
  12. package/dist/cjs/components/Input/Input.styles.js +29 -7
  13. package/dist/cjs/components/Modal/Modal.js +10 -8
  14. package/dist/cjs/components/Modal/Modal.styles.js +1 -1
  15. package/dist/cjs/components/common/inputStyles.js +38 -6
  16. package/dist/esm/Theme/Theme.js +30 -2
  17. package/dist/esm/components/Button/Button.js +8 -2
  18. package/dist/esm/components/Button/Button.styles.js +40 -21
  19. package/dist/esm/components/Dropdown/DropdownElements.js +4 -4
  20. package/dist/esm/components/DropdownMenu/DropdownMenu.js +2 -2
  21. package/dist/esm/components/DropdownMenu/DropdownMenu.styles.js +1 -0
  22. package/dist/esm/components/ElementHeader/ElementHeader.js +2 -2
  23. package/dist/esm/components/Icons/Icon.js +2 -2
  24. package/dist/esm/components/Icons/Icon.styles.js +6 -2
  25. package/dist/esm/components/Icons/IconsPath.js +2 -1
  26. package/dist/esm/components/Input/Input.js +19 -8
  27. package/dist/esm/components/Input/Input.styles.js +29 -7
  28. package/dist/esm/components/Modal/Modal.js +11 -9
  29. package/dist/esm/components/Modal/Modal.styles.js +1 -1
  30. package/dist/esm/components/common/inputStyles.js +35 -5
  31. package/dist/types/Theme/Theme.d.ts +23 -0
  32. package/dist/types/components/Button/Button.d.ts +2 -0
  33. package/dist/types/components/Button/Button.styles.d.ts +1 -0
  34. package/dist/types/components/DropdownMenu/DropdownMenu.d.ts +2 -0
  35. package/dist/types/components/Icons/Icon.d.ts +3 -0
  36. package/dist/types/components/Icons/Icon.styles.d.ts +3 -0
  37. package/dist/types/components/Icons/IconsPath.d.ts +1 -0
  38. package/dist/types/components/Input/Input.d.ts +1 -0
  39. package/dist/types/components/Input/Input.styles.d.ts +7 -1
  40. package/dist/types/components/Modal/Modal.d.ts +2 -0
  41. package/dist/types/components/Modal/Modal.styles.d.ts +1 -0
  42. package/dist/types/components/common/inputStyles.d.ts +18 -1
  43. package/package.json +1 -1
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Theme = void 0;
3
+ exports.mainTheme = exports.Theme = void 0;
4
+ const polished_1 = require("polished");
4
5
  exports.Theme = {
5
6
  colors: {
6
7
  primary: "#4c95c5",
7
8
  text: '#333333',
8
- disableText: "#cccccc",
9
- disableBackground: '#dddddd',
9
+ disableText: "#979797",
10
+ disableBackground: '#e7e7e7',
10
11
  white: "#ffffff",
11
12
  black: "#333333",
12
13
  gray_1: "#b7b7b7",
@@ -50,3 +51,30 @@ exports.Theme = {
50
51
  m: '0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);'
51
52
  }
52
53
  };
54
+ exports.mainTheme = {
55
+ //buton
56
+ action: exports.Theme.colors.primary,
57
+ buttonText: exports.Theme.colors.white,
58
+ buttonPrimaryHover: (0, polished_1.lighten)(0.1, exports.Theme.colors.primary),
59
+ buttonSecondaryHover: (0, polished_1.lighten)(0.4, exports.Theme.colors.primary),
60
+ buttonInverseHover: (0, polished_1.lighten)(0.3, exports.Theme.colors.primary),
61
+ disabledBackground: exports.Theme.colors.disableBackground,
62
+ disabledText: exports.Theme.colors.disableText,
63
+ //text
64
+ textColor: exports.Theme.colors.text,
65
+ // input
66
+ inputDefaultBackground: exports.Theme.colors.white,
67
+ inputDefaultBorder: exports.Theme.colors.gray_1,
68
+ inputDefaultTextColor: exports.Theme.colors.text,
69
+ inputFocusBackground: (0, polished_1.lighten)(0.4, exports.Theme.colors.primary),
70
+ inputFocusBorder: exports.Theme.colors.primary,
71
+ inputFocusTextColor: exports.Theme.colors.text,
72
+ inputDisabledBackground: exports.Theme.colors.disableBackground,
73
+ inputDisabledBorder: exports.Theme.colors.disableText,
74
+ inputDisabledTextColor: exports.Theme.colors.disableText,
75
+ inputErrorBackground: (0, polished_1.lighten)(0.5, exports.Theme.colors.red),
76
+ inputErrorBorder: exports.Theme.colors.red,
77
+ inputErrorTextColor: exports.Theme.colors.red,
78
+ // global
79
+ contentBackground: exports.Theme.colors.white
80
+ };
@@ -5,8 +5,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Button = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
+ const styled_components_1 = require("styled-components");
9
+ const Theme_1 = require("../../Theme");
8
10
  const Button_styles_1 = require("./Button.styles");
9
- const Button = ({ text, mode = 'primary', size = 'medium', right = false, left = false, onClick, }) => {
10
- return (react_1.default.createElement(Button_styles_1.ButtonElement, { mode: mode, size: size, right: right, left: left, onClick: onClick }, text));
11
+ const Button = ({ text, mode = 'primary', size = 'medium', right = false, left = false, theme = Theme_1.mainTheme, disabled = false, onClick, }) => {
12
+ const handleClick = () => {
13
+ !disabled && onClick();
14
+ };
15
+ return (react_1.default.createElement(styled_components_1.ThemeProvider, { theme: theme },
16
+ react_1.default.createElement(Button_styles_1.ButtonElement, { mode: mode, size: size, right: right, left: left, disabled: disabled, onClick: handleClick }, text)));
11
17
  };
12
18
  exports.Button = Button;
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ButtonElement = void 0;
7
7
  const common_1 = require("../common");
8
- const polished_1 = require("polished");
9
8
  const styled_components_1 = __importDefault(require("styled-components"));
10
9
  const Theme_1 = require("../../Theme/Theme");
11
10
  exports.ButtonElement = styled_components_1.default.button `
@@ -24,34 +23,54 @@ exports.ButtonElement = styled_components_1.default.button `
24
23
  flex-shrink: 1;
25
24
 
26
25
  ${(p) => p.mode === 'primary' &&
27
- `background-color: ${Theme_1.Theme.colors.primary};
28
- color: ${Theme_1.Theme.colors.white};
29
- border: 1px solid rgba(0,0,0,0.15);`}
26
+ `background-color: ${p.theme.action};
27
+ color: ${p.theme.buttonText};
28
+ border: 1px solid rgba(0,0,0,0.15);
29
+ &:disabled{
30
+ color: ${p.theme.disabledText};
31
+ background-color: ${p.theme.disabledBackground};
32
+ }
33
+ `}
30
34
  ${(p) => p.mode === 'secondary' &&
31
- `background-color: ${Theme_1.Theme.colors.white};
32
- color: ${Theme_1.Theme.colors.primary};
33
- border: 1px solid ${Theme_1.Theme.colors.primary};
35
+ `background-color: transparent;
36
+ color: ${p.theme.action};
37
+ border: 1px solid ${p.theme.action};
38
+ &:disabled{
39
+ color: ${p.theme.disabledText};
40
+ border: 1px solid ${p.theme.disabledText};
41
+ }
34
42
  `}
35
43
  ${(p) => p.mode === 'inverse' &&
36
44
  `background-color:transparent;
37
- color: ${Theme_1.Theme.colors.primary};
38
- border:none;`}
39
- ${(p) => (0, common_1.setSize)(p.size)}
45
+ color: ${p.theme.action};
46
+ border:none;
47
+ &:disabled{
48
+ color: ${p.theme.disabledText};
49
+ }
50
+ `}
51
+ ${(p) => (0, common_1.setButtonSize)(p.size)}
40
52
  &:hover {
41
53
  transition: 300ms;
42
54
  ${(p) => p.mode === 'primary' &&
43
- `background-color: ${(0, polished_1.lighten)(0.1, Theme_1.Theme.colors.primary)};`}
55
+ `background-color: ${p.theme.buttonPrimaryHover};
56
+ &:disabled {
57
+ background-color: ${p.theme.disabledBackground};
58
+ }`}
59
+
44
60
  ${(p) => p.mode === 'secondary' &&
45
- `background-color: ${(0, polished_1.lighten)(0.4, Theme_1.Theme.colors.primary)}`};
46
- ${(p) => p.mode === 'inverse' && `background-color: ${(0, polished_1.lighten)(0.3, Theme_1.Theme.colors.primary)};`}
61
+ `background-color: ${p.theme.buttonSecondaryHover};
62
+ &:disabled {
63
+ background-color: transparent;
64
+ }`};
65
+
66
+ ${(p) => p.mode === 'inverse' &&
67
+ `background-color: ${p.theme.buttonInverseHover};
68
+ &:disabled{
69
+ background-color: transparent;
70
+ }`}
47
71
  }
48
72
 
49
- &.disable,
50
- button[disabled] {
51
- color: ${Theme_1.Theme.colors.disableText};
52
- cursor: default;
53
- &:hover {
54
- color: ${Theme_1.Theme.colors.disableBackground};
55
- }
73
+ &:disabled {
74
+ cursor: not-allowed;
56
75
  }
57
76
  `;
@@ -18,15 +18,15 @@ exports.Field = styled_components_1.default.div `
18
18
  height: ${(p) => (0, common_1.setFieldHeight)(p.inputSize)};
19
19
  ${(p) => p.error &&
20
20
  `
21
- ${common_1.colorMode.error}
21
+ ${common_1.inputColorSchema.error}
22
22
  `}
23
23
  ${(p) => p.active &&
24
24
  `
25
- ${common_1.colorMode.default}
25
+ ${common_1.inputColorSchema.default}
26
26
  `}
27
27
  ${(p) => p.disabled &&
28
28
  `
29
- ${common_1.colorMode.disabled}
29
+ ${common_1.inputColorSchema.disabled}
30
30
  cursor: not-allowed;
31
31
  `}
32
32
  `;
@@ -31,7 +31,7 @@ const Icons_1 = require("../Icons");
31
31
  const DropdownMenu_styles_1 = require("./DropdownMenu.styles");
32
32
  const Aligment_1 = require("../Aligment");
33
33
  const Typography_1 = require("../Typography");
34
- const DropdownMenu = ({ size = 'medium', iconName = 'more_vert', color = Theme_1.Theme.colors.primary, iconBackgroundColor = false, header = false, headerTitle, headerSubtitle, footer = false, footerText, footerAction, options, }) => {
34
+ const DropdownMenu = ({ size = 'medium', iconName = 'more_vert', color = Theme_1.Theme.colors.primary, iconBackgroundColor = false, header = false, headerTitle, headerSubtitle, footer = false, footerText, footerAction, options, right = false, left = false, }) => {
35
35
  const [open, toogleOpen] = (0, react_1.useState)(false);
36
36
  const ref = (0, react_1.useRef)(null);
37
37
  const close = () => {
@@ -57,7 +57,7 @@ const DropdownMenu = ({ size = 'medium', iconName = 'more_vert', color = Theme_1
57
57
  };
58
58
  }, [open]);
59
59
  return (react_1.default.createElement(DropdownMenu_styles_1.DropdownMenuElement, null,
60
- react_1.default.createElement(Icons_1.Icon, { name: iconName, onClick: () => toogleOpen(!open), color: color, bgColor: iconBackgroundColor, size: (0, common_1.setIconSize)(size), active: open }),
60
+ react_1.default.createElement(Icons_1.Icon, { name: iconName, onClick: () => toogleOpen(!open), color: color, bgColor: iconBackgroundColor, size: (0, common_1.setIconSize)(size), active: open, right: right, left: left }),
61
61
  open && (react_1.default.createElement(common_1.Panel, { ref: ref, size: size, position: "right" },
62
62
  react_1.default.createElement(Aligment_1.Aligment, { hPadding: Theme_1.Theme.padding.m, direction: "column" },
63
63
  header && (react_1.default.createElement(DropdownMenu_styles_1.DropdownMenuHeader, null,
@@ -12,6 +12,7 @@ exports.DropdownMenuElement = styled_components_1.default.div `
12
12
  width:auto;
13
13
  display: flex;
14
14
  box-sizing: border-box;
15
+ min-width:40px;
15
16
  `;
16
17
  exports.DropdownMenuHeader = styled_components_1.default.div `
17
18
  border-bottom: 1px solid ${Theme_1.Theme.colors.gray_2};
@@ -28,8 +28,8 @@ const ElementHeader = ({ title, showTitle = true, moreIcon = false, backIcon = f
28
28
  }
29
29
  else if (!closeIcon && actionButton && handleClick) {
30
30
  return (react_1.default.createElement(Aligment_1.Aligment, { align: "flex-end", width: "auto" },
31
- react_1.default.createElement(Button_1.Button, { mode: "inverse", text: actionLabel, onClick: () => handleClick() }),
32
- moreIcon && options && react_1.default.createElement(DropdownMenu_1.DropdownMenu, { options: options })));
31
+ react_1.default.createElement(Button_1.Button, { mode: "secondary", text: actionLabel, onClick: () => handleClick() }),
32
+ moreIcon && options && react_1.default.createElement(DropdownMenu_1.DropdownMenu, { options: options, right: true })));
33
33
  }
34
34
  };
35
35
  return (react_1.default.createElement(Aligment_1.Aligment, { justify: !showTitle && !children ? 'flex-end' : 'space-between', vPadding: Theme_1.Theme.padding.m, hPadding: Theme_1.Theme.padding.l, backgroundColor: bgColor },
@@ -8,8 +8,8 @@ const react_1 = __importDefault(require("react"));
8
8
  const Theme_1 = require("../../Theme/Theme");
9
9
  const Icon_styles_1 = require("./Icon.styles");
10
10
  const IconsPath_1 = require("./IconsPath");
11
- const Icon = ({ size = 24, name, color = Theme_1.Theme.colors.text, bgColor, onClick, active = false }) => {
12
- return (react_1.default.createElement(Icon_styles_1.IconElement, { onClick: onClick, bgColor: bgColor, active: active },
11
+ const Icon = ({ size = 24, name, right = false, left = false, color = Theme_1.Theme.colors.text, bgColor, onClick, active = false, noHover = false }) => {
12
+ return (react_1.default.createElement(Icon_styles_1.IconElement, { onClick: onClick, bgColor: bgColor, active: active, right: right, left: left, noHover: noHover },
13
13
  react_1.default.createElement("svg", { width: size, height: size, viewBox: '0 0 24 24', preserveAspectRatio: "xMidYMid meet", x: "0", y: "0", name: name },
14
14
  react_1.default.createElement("path", { d: IconsPath_1.iconsPath[name], fill: color }))));
15
15
  };
@@ -13,14 +13,18 @@ exports.IconElement = styled_components_1.default.div `
13
13
  width:auto;
14
14
  display:inline-flex;
15
15
  border-radius: 50%;
16
+ margin-left: ${(p) => (p.right ? Theme_1.Theme.padding.m : '0')};
17
+ margin-right: ${(p) => (p.left ? Theme_1.Theme.padding.m : '0')};
16
18
  ${p => p.onClick !== undefined &&
17
19
  `
18
20
  padding: ${Theme_1.Theme.padding.s};
19
21
  cursor:pointer;
20
- &:hover{
22
+ ${!p.noHover &&
23
+ `&:hover{
21
24
  background-color: ${p.bgColor ? `rgba(255,255,255,0.2)` : (0, polished_1.lighten)(0.3, Theme_1.Theme.colors.primary)};
22
25
  transition: 300ms;
23
- }
26
+ }`}
27
+
24
28
  svg{
25
29
  cursor:pointer;
26
30
  }
@@ -11,6 +11,7 @@ exports.iconsPath = {
11
11
  add_circle: "M11 17h2v-4h4v-2h-4V7h-2v4H7v2h4Zm1 5q-2.075 0-3.9-.788-1.825-.787-3.175-2.137-1.35-1.35-2.137-3.175Q2 14.075 2 12t.788-3.9q.787-1.825 2.137-3.175 1.35-1.35 3.175-2.138Q9.925 2 12 2t3.9.787q1.825.788 3.175 2.138 1.35 1.35 2.137 3.175Q22 9.925 22 12t-.788 3.9q-.787 1.825-2.137 3.175-1.35 1.35-3.175 2.137Q14.075 22 12 22Zm0-2q3.35 0 5.675-2.325Q20 15.35 20 12q0-3.35-2.325-5.675Q15.35 4 12 4 8.65 4 6.325 6.325 4 8.65 4 12q0 3.35 2.325 5.675Q8.65 20 12 20Zm0-8Z",
12
12
  account: "M5.85 17.1q1.275-.975 2.85-1.538Q10.275 15 12 15q1.725 0 3.3.562 1.575.563 2.85 1.538.875-1.025 1.363-2.325Q20 13.475 20 12q0-3.325-2.337-5.663Q15.325 4 12 4T6.338 6.337Q4 8.675 4 12q0 1.475.488 2.775.487 1.3 1.362 2.325ZM12 13q-1.475 0-2.488-1.012Q8.5 10.975 8.5 9.5t1.012-2.488Q10.525 6 12 6t2.488 1.012Q15.5 8.025 15.5 9.5t-1.012 2.488Q13.475 13 12 13Zm0 9q-2.075 0-3.9-.788-1.825-.787-3.175-2.137-1.35-1.35-2.137-3.175Q2 14.075 2 12t.788-3.9q.787-1.825 2.137-3.175 1.35-1.35 3.175-2.138Q9.925 2 12 2t3.9.787q1.825.788 3.175 2.138 1.35 1.35 2.137 3.175Q22 9.925 22 12t-.788 3.9q-.787 1.825-2.137 3.175-1.35 1.35-3.175 2.137Q14.075 22 12 22Zm0-2q1.325 0 2.5-.387 1.175-.388 2.15-1.113-.975-.725-2.15-1.113Q13.325 17 12 17t-2.5.387q-1.175.388-2.15 1.113.975.725 2.15 1.113Q10.675 20 12 20Zm0-9q.65 0 1.075-.425.425-.425.425-1.075 0-.65-.425-1.075Q12.65 8 12 8q-.65 0-1.075.425Q10.5 8.85 10.5 9.5q0 .65.425 1.075Q11.35 11 12 11Zm0-1.5Zm0 9Z",
13
13
  visibility: "M12 16q1.875 0 3.188-1.312Q16.5 13.375 16.5 11.5q0-1.875-1.312-3.188Q13.875 7 12 7q-1.875 0-3.188 1.312Q7.5 9.625 7.5 11.5q0 1.875 1.312 3.188Q10.125 16 12 16Zm0-1.8q-1.125 0-1.912-.788Q9.3 12.625 9.3 11.5t.788-1.913Q10.875 8.8 12 8.8t1.913.787q.787.788.787 1.913t-.787 1.912q-.788.788-1.913.788Zm0 4.8q-3.65 0-6.65-2.038-3-2.037-4.35-5.462 1.35-3.425 4.35-5.463Q8.35 4 12 4q3.65 0 6.65 2.037 3 2.038 4.35 5.463-1.35 3.425-4.35 5.462Q15.65 19 12 19Zm0-7.5Zm0 5.5q2.825 0 5.188-1.488Q19.55 14.025 20.8 11.5q-1.25-2.525-3.612-4.013Q14.825 6 12 6 9.175 6 6.812 7.487 4.45 8.975 3.2 11.5q1.25 2.525 3.612 4.012Q9.175 17 12 17Z",
14
+ visability_off: "M16.1 13.3L14.65 11.85C14.8 11.0667 14.575 10.3333 13.975 9.65C13.375 8.96667 12.6 8.7 11.65 8.85L10.2 7.4C10.4833 7.26667 10.7708 7.16667 11.0625 7.1C11.3542 7.03333 11.6667 7 12 7C13.25 7 14.3125 7.4375 15.1875 8.3125C16.0625 9.1875 16.5 10.25 16.5 11.5C16.5 11.8333 16.4667 12.1458 16.4 12.4375C16.3333 12.7292 16.2333 13.0167 16.1 13.3ZM19.3 16.45L17.85 15.05C18.4833 14.5667 19.0458 14.0375 19.5375 13.4625C20.0292 12.8875 20.45 12.2333 20.8 11.5C19.9667 9.81667 18.7708 8.47917 17.2125 7.4875C15.6542 6.49583 13.9167 6 12 6C11.5167 6 11.0417 6.03333 10.575 6.1C10.1083 6.16667 9.65 6.26667 9.2 6.4L7.65 4.85C8.33333 4.56667 9.03333 4.35417 9.75 4.2125C10.4667 4.07083 11.2167 4 12 4C14.5167 4 16.7583 4.69583 18.725 6.0875C20.6917 7.47917 22.1167 9.28333 23 11.5C22.6167 12.4833 22.1125 13.3958 21.4875 14.2375C20.8625 15.0792 20.1333 15.8167 19.3 16.45ZM19.8 22.6L15.6 18.45C15.0167 18.6333 14.4292 18.7708 13.8375 18.8625C13.2458 18.9542 12.6333 19 12 19C9.48333 19 7.24167 18.3042 5.275 16.9125C3.30833 15.5208 1.88333 13.7167 1 11.5C1.35 10.6167 1.79167 9.79583 2.325 9.0375C2.85833 8.27917 3.46667 7.6 4.15 7L1.4 4.2L2.8 2.8L21.2 21.2L19.8 22.6ZM5.55 8.4C5.06667 8.83333 4.625 9.30833 4.225 9.825C3.825 10.3417 3.48333 10.9 3.2 11.5C4.03333 13.1833 5.22917 14.5208 6.7875 15.5125C8.34583 16.5042 10.0833 17 12 17C12.3333 17 12.6583 16.9792 12.975 16.9375C13.2917 16.8958 13.6167 16.85 13.95 16.8L13.05 15.85C12.8667 15.9 12.6917 15.9375 12.525 15.9625C12.3583 15.9875 12.1833 16 12 16C10.75 16 9.6875 15.5625 8.8125 14.6875C7.9375 13.8125 7.5 12.75 7.5 11.5C7.5 11.3167 7.5125 11.1417 7.5375 10.975C7.5625 10.8083 7.6 10.6333 7.65 10.45L5.55 8.4Z",
14
15
  search: "m19.6 21-6.3-6.3q-.75.6-1.725.95Q10.6 16 9.5 16q-2.725 0-4.612-1.887Q3 12.225 3 9.5q0-2.725 1.888-4.613Q6.775 3 9.5 3t4.613 1.887Q16 6.775 16 9.5q0 1.1-.35 2.075-.35.975-.95 1.725l6.3 6.3ZM9.5 14q1.875 0 3.188-1.312Q14 11.375 14 9.5q0-1.875-1.312-3.188Q11.375 5 9.5 5 7.625 5 6.312 6.312 5 7.625 5 9.5q0 1.875 1.312 3.188Q7.625 14 9.5 14Z",
15
16
  more_vert: "M12 20q-.825 0-1.412-.587Q10 18.825 10 18q0-.825.588-1.413Q11.175 16 12 16t1.413.587Q14 17.175 14 18q0 .825-.587 1.413Q12.825 20 12 20Zm0-6q-.825 0-1.412-.588Q10 12.825 10 12t.588-1.413Q11.175 10 12 10t1.413.587Q14 11.175 14 12q0 .825-.587 1.412Q12.825 14 12 14Zm0-6q-.825 0-1.412-.588Q10 6.825 10 6t.588-1.412Q11.175 4 12 4t1.413.588Q14 5.175 14 6t-.587 1.412Q12.825 8 12 8Z",
16
17
  menu: "M3 18v-2h18v2Zm0-5v-2h18v2Zm0-5V6h18v2Z",
@@ -25,5 +26,5 @@ exports.iconsPath = {
25
26
  person: "M12 12q-1.65 0-2.825-1.175Q8 9.65 8 8q0-1.65 1.175-2.825Q10.35 4 12 4q1.65 0 2.825 1.175Q16 6.35 16 8q0 1.65-1.175 2.825Q13.65 12 12 12Zm-8 8v-2.8q0-.85.438-1.563.437-.712 1.162-1.087 1.55-.775 3.15-1.163Q10.35 13 12 13t3.25.387q1.6.388 3.15 1.163.725.375 1.162 1.087Q20 16.35 20 17.2V20Zm2-2h12v-.8q0-.275-.137-.5-.138-.225-.363-.35-1.35-.675-2.725-1.013Q13.4 15 12 15t-2.775.337Q7.85 15.675 6.5 16.35q-.225.125-.362.35-.138.225-.138.5Zm6-8q.825 0 1.413-.588Q14 8.825 14 8t-.587-1.412Q12.825 6 12 6q-.825 0-1.412.588Q10 7.175 10 8t.588 1.412Q11.175 10 12 10Zm0-2Zm0 10Z",
26
27
  check_circle: "m10.6 16.6 7.05-7.05-1.4-1.4-5.65 5.65-2.85-2.85-1.4 1.4ZM12 22q-2.075 0-3.9-.788-1.825-.787-3.175-2.137-1.35-1.35-2.137-3.175Q2 14.075 2 12t.788-3.9q.787-1.825 2.137-3.175 1.35-1.35 3.175-2.138Q9.925 2 12 2t3.9.787q1.825.788 3.175 2.138 1.35 1.35 2.137 3.175Q22 9.925 22 12t-.788 3.9q-.787 1.825-2.137 3.175-1.35 1.35-3.175 2.137Q14.075 22 12 22Zm0-2q3.35 0 5.675-2.325Q20 15.35 20 12q0-3.35-2.325-5.675Q15.35 4 12 4 8.65 4 6.325 6.325 4 8.65 4 12q0 3.35 2.325 5.675Q8.65 20 12 20Zm0-8Z",
27
28
  check_box: "m10.6 16.2 7.05-7.05-1.4-1.4-5.65 5.65-2.85-2.85-1.4 1.4ZM5 21q-.825 0-1.413-.587Q3 19.825 3 19V5q0-.825.587-1.413Q4.175 3 5 3h14q.825 0 1.413.587Q21 4.175 21 5v14q0 .825-.587 1.413Q19.825 21 19 21Zm0-2h14V5H5v14ZM5 5v14V5Z",
28
- check: "m9.55 18-5.7-5.7 1.425-1.425L9.55 15.15l9.175-9.175L20.15 7.4Z"
29
+ check: "m9.55 18-5.7-5.7 1.425-1.425L9.55 15.15l9.175-9.175L20.15 7.4Z",
29
30
  };
@@ -1,20 +1,51 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
4
24
  };
5
25
  Object.defineProperty(exports, "__esModule", { value: true });
6
26
  exports.Input = void 0;
27
+ const react_1 = __importStar(require("react"));
28
+ const styled_components_1 = require("styled-components");
7
29
  const Aligment_1 = require("../Aligment");
8
- const react_1 = __importDefault(require("react"));
9
30
  const Input_styles_1 = require("./Input.styles");
10
- const Input = ({ label, labelPosition = 'top', value, type = 'text', name, disabled = false, size = 'medium', handleChange, width, error, placeholder, min, max, step }) => {
31
+ const Icons_1 = require("../Icons");
32
+ const Theme_1 = require("../../Theme");
33
+ const Input = ({ label, labelPosition = 'top', value, type = 'text', name, disabled = false, size = 'medium', handleChange, width, error, placeholder, min, max, step, theme = Theme_1.mainTheme, }) => {
11
34
  const onChange = (e) => {
12
35
  handleChange(name, e.target.value);
13
36
  };
14
- return (react_1.default.createElement(Aligment_1.Aligment, { align: labelPosition === 'top' ? 'flex-start' : 'center', direction: labelPosition === 'top' ? 'column' : 'row', wrap: 'nowrap' },
15
- label && (react_1.default.createElement(Input_styles_1.InputLabelElement, { size: size, labelPosition: labelPosition }, label)),
16
- react_1.default.createElement(Input_styles_1.InputWrapper, { width: width },
17
- react_1.default.createElement(Input_styles_1.InputTextElement, { inputSize: size, type: type, disabled: disabled, name: name, value: value, onChange: onChange, error: error, placeholder: placeholder, min: min, max: max, step: step }),
18
- error && react_1.default.createElement(Input_styles_1.InputErrorMsg, null, error))));
37
+ const [inputType] = (0, react_1.useState)(type);
38
+ const [showPassword, setShowPassword] = (0, react_1.useState)(false);
39
+ const tooglePassword = () => {
40
+ setShowPassword(!showPassword);
41
+ };
42
+ return (react_1.default.createElement(styled_components_1.ThemeProvider, { theme: theme },
43
+ react_1.default.createElement(Aligment_1.Aligment, { align: labelPosition === 'top' ? 'flex-start' : 'center', direction: labelPosition === 'top' ? 'column' : 'row', wrap: 'nowrap' },
44
+ label && (react_1.default.createElement(Input_styles_1.InputLabelElement, { size: size, labelPosition: labelPosition }, label)),
45
+ react_1.default.createElement(Input_styles_1.InputWrapper, { width: width },
46
+ react_1.default.createElement(Input_styles_1.InputTextElement, { inputSize: size, type: showPassword ? 'text' : inputType, disabled: disabled, name: name, value: value, onChange: onChange, error: error, placeholder: placeholder, min: min, max: max, step: step }),
47
+ inputType === 'password' && (react_1.default.createElement(Input_styles_1.EyeIconWrapper, { size: size },
48
+ react_1.default.createElement(Icons_1.Icon, { name: showPassword ? 'visability_off' : 'visibility', size: 24, onClick: tooglePassword, color: theme.inputDefaultTextColor, noHover: true }))),
49
+ error && react_1.default.createElement(Input_styles_1.InputErrorMsg, null, error)))));
19
50
  };
20
51
  exports.Input = Input;
@@ -3,26 +3,43 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.InputErrorMsg = exports.InputWrapper = exports.InputLabelElement = exports.InputTextElement = void 0;
6
+ exports.EyeIconWrapper = exports.InputErrorMsg = exports.InputWrapper = exports.InputLabelElement = exports.InputTextElement = void 0;
7
7
  const common_1 = require("../common");
8
8
  const styled_components_1 = __importDefault(require("styled-components"));
9
9
  const Theme_1 = require("../../Theme");
10
10
  const Typography_1 = require("../Typography");
11
11
  exports.InputTextElement = styled_components_1.default.input `
12
12
  position:relative;
13
- ${common_1.defaultStyles}
13
+ box-sizing: border-box;
14
+ background-color: ${p => p.theme.inputDefaultBackground};
15
+ border: 1px solid ${p => p.theme.inputDefaultBorder};
16
+ border-radius: ${Theme_1.Theme.borderRadius.m};
17
+ width: 100%;
18
+ font-family: "Lato", sans-serif;
19
+ outline: 0;
20
+ white-space: nowrap;
21
+ overflow: hidden;
22
+ text-overflow: ellipsis;
23
+
14
24
  ${(p) => (0, common_1.setSize)(p.inputSize)}
15
- color: ${Theme_1.Theme.colors.text};
25
+ color: ${p => p.theme.inputDefaultTextColor};
16
26
  width: ${p => p.width ? p.width : '100%'};
27
+ ${p => p.type === 'password' && `padding-right:32px;`}
17
28
  :focus {
18
- ${common_1.colorMode.default}
29
+ border-color: ${p => p.theme.inputFocusBorder};
30
+ background-color: ${p => p.theme.inputFocusBackground};
31
+ color:${p => p.theme.inputFocusTextColor};
19
32
  }
20
33
  :disabled{
21
- ${common_1.colorMode.disabled}
34
+ background-color: ${p => p.theme.inputDisabledBackground};
35
+ border-color: ${p => p.theme.inputDisabledBorder};
36
+ color:${p => p.theme.inputDisabledTextColor};
22
37
  cursor: not-allowed;
23
38
  }
24
39
  ${p => p.error && `
25
- ${common_1.colorMode.error}
40
+ background-color: ${p.theme.inputErrorBackground};
41
+ border-color: ${p.theme.inputErrorBorder};
42
+ color:${p.theme.inputErrorTextColor};
26
43
  `}
27
44
  `;
28
45
  exports.InputLabelElement = (0, styled_components_1.default)(Typography_1.TextLabel) `
@@ -35,8 +52,13 @@ exports.InputWrapper = styled_components_1.default.div `
35
52
  width: ${p => p.width ? p.width : '100%'};
36
53
  `;
37
54
  exports.InputErrorMsg = styled_components_1.default.div `
38
- color: ${Theme_1.Theme.colors.red};
55
+ color: ${p => p.theme.inputErrorTextColor};
39
56
  font-size: ${Theme_1.Theme.fontSize.s};
40
57
  position: absolute;
41
58
  bottom: -20px;
42
59
  `;
60
+ exports.EyeIconWrapper = styled_components_1.default.div `
61
+ position: absolute;
62
+ right: 2px;
63
+ ${(p) => (0, common_1.setEyeTopPosition)(p.size)}
64
+ `;
@@ -11,16 +11,18 @@ const Aligment_1 = require("../Aligment");
11
11
  const Button_1 = require("../Button");
12
12
  const common_1 = require("../common");
13
13
  const Modal_styles_1 = require("./Modal.styles");
14
- const Modal = ({ children, title, handleConfirm, handleClose, labelConfirm, labelClose, size = 'small', }) => {
14
+ const styled_components_1 = require("styled-components");
15
+ const Modal = ({ theme = Theme_1.mainTheme, children, title, handleConfirm, handleClose, labelConfirm, labelClose, submitDisabled, size = 'small', }) => {
15
16
  const isMultiButtons = () => {
16
17
  return handleConfirm !== undefined && labelConfirm !== undefined;
17
18
  };
18
- return (react_1.default.createElement(Modal_styles_1.ModalOverlayer, null,
19
- react_1.default.createElement(Modal_styles_1.ModalElement, { size: size },
20
- react_1.default.createElement(ElementHeader_1.ElementHeader, { title: title, handleClose: handleClose }),
21
- react_1.default.createElement(common_1.ScrollCotainer, null, children),
22
- react_1.default.createElement(Aligment_1.Aligment, { justify: 'flex-end', vPadding: Theme_1.Theme.padding.l, hPadding: Theme_1.Theme.padding.l },
23
- react_1.default.createElement(Button_1.Button, { mode: isMultiButtons() ? 'secondary' : 'primary', onClick: () => handleClose(), text: labelClose, left: isMultiButtons() }),
24
- handleConfirm && labelConfirm && (react_1.default.createElement(Button_1.Button, { onClick: handleConfirm, text: labelConfirm }))))));
19
+ return (react_1.default.createElement(styled_components_1.ThemeProvider, { theme: theme },
20
+ react_1.default.createElement(Modal_styles_1.ModalOverlayer, null,
21
+ react_1.default.createElement(Modal_styles_1.ModalElement, { size: size },
22
+ react_1.default.createElement(ElementHeader_1.ElementHeader, { title: title, handleClose: handleClose }),
23
+ react_1.default.createElement(common_1.ScrollCotainer, null, children),
24
+ react_1.default.createElement(Aligment_1.Aligment, { justify: 'flex-end', vPadding: Theme_1.Theme.padding.l, hPadding: Theme_1.Theme.padding.l },
25
+ react_1.default.createElement(Button_1.Button, { mode: isMultiButtons() ? 'secondary' : 'primary', onClick: () => handleClose(), text: labelClose, left: isMultiButtons() }),
26
+ handleConfirm && labelConfirm && (react_1.default.createElement(Button_1.Button, { onClick: handleConfirm, text: labelConfirm, disabled: submitDisabled })))))));
25
27
  };
26
28
  exports.Modal = Modal;
@@ -24,7 +24,7 @@ exports.ModalElement = styled_components_1.default.div `
24
24
  box-sizing: border-box;
25
25
  display: flex;
26
26
  width: 100%;
27
- background-color: ${Theme_1.Theme.colors.white};
27
+ background-color: ${p => p.theme.contentBackground};
28
28
  border-radius: ${Theme_1.Theme.borderRadius.m};
29
29
  max-height: 100%;
30
30
  overflow: hidden;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setAnimationParams = exports.animationParams = exports.setFieldHeight = exports.fieldHeight = exports.setPanelPosition = exports.panelPosition = exports.setPanelTop = exports.panelTop = exports.setIconSize = exports.iconSize = exports.setLabelFontSize = exports.lableFontSize = exports.colorMode = exports.setSize = exports.sizes = exports.defaultStyles = void 0;
3
+ exports.setAnimationParams = exports.animationParams = exports.setFieldHeight = exports.fieldHeight = exports.setPanelPosition = exports.panelPosition = exports.setPanelTop = exports.panelTop = exports.setIconSize = exports.iconSize = exports.setLabelFontSize = exports.lableFontSize = exports.inputColorSchema = exports.setEyeTopPosition = exports.setButtonSize = exports.setSize = exports.eyeTopPosition = exports.buttonPadding = exports.inputPadding = exports.sizes = exports.defaultStyles = void 0;
4
4
  const polished_1 = require("polished");
5
5
  const Theme_1 = require("../../Theme");
6
6
  exports.defaultStyles = `
@@ -18,26 +18,58 @@ exports.defaultStyles = `
18
18
  `;
19
19
  exports.sizes = {
20
20
  small: `
21
- padding: ${Theme_1.Theme.padding.s};
22
21
  font-size: ${Theme_1.Theme.fontSize.s};
23
22
  line-height: ${Theme_1.Theme.lineHeight.s};
24
23
  `,
25
24
  medium: `
26
- padding: ${Theme_1.Theme.padding.m};
27
25
  font-size: ${Theme_1.Theme.fontSize.m};
28
26
  line-height: ${Theme_1.Theme.lineHeight.m};
29
27
  `,
30
28
  large: `
31
- padding: ${Theme_1.Theme.padding.m};
32
29
  font-size: ${Theme_1.Theme.fontSize.l};
33
30
  line-height: ${Theme_1.Theme.lineHeight.l};
34
31
  `
35
32
  };
33
+ exports.inputPadding = {
34
+ small: `
35
+ padding: ${Theme_1.Theme.padding.s};
36
+ `,
37
+ medium: `
38
+ padding: ${Theme_1.Theme.padding.m};
39
+ `,
40
+ large: `
41
+ padding: ${Theme_1.Theme.padding.m};
42
+ `
43
+ };
44
+ exports.buttonPadding = {
45
+ small: `
46
+ padding: ${Theme_1.Theme.padding.s} ${Theme_1.Theme.padding.m};
47
+ `,
48
+ medium: `
49
+ padding: ${Theme_1.Theme.padding.m} ${Theme_1.Theme.padding.l};
50
+ `,
51
+ large: `
52
+ padding: ${Theme_1.Theme.padding.m} ${Theme_1.Theme.padding.l};
53
+ `
54
+ };
55
+ exports.eyeTopPosition = {
56
+ small: `top:-2px;`,
57
+ medium: `top: 3px;`,
58
+ large: `top: 7px;`
59
+ };
36
60
  const setSize = (size) => {
37
- return exports.sizes[size];
61
+ return exports.sizes[size] + exports.inputPadding[size];
38
62
  };
39
63
  exports.setSize = setSize;
40
- exports.colorMode = {
64
+ const setButtonSize = (size) => {
65
+ return exports.sizes[size] + exports.buttonPadding[size];
66
+ };
67
+ exports.setButtonSize = setButtonSize;
68
+ const setEyeTopPosition = (size) => {
69
+ return exports.eyeTopPosition[size];
70
+ };
71
+ exports.setEyeTopPosition = setEyeTopPosition;
72
+ exports.inputColorSchema = {
41
73
  default: `
42
74
  border-color: ${Theme_1.Theme.colors.primary};
43
75
  background-color: ${(0, polished_1.lighten)(0.4, Theme_1.Theme.colors.primary)};
@@ -1,9 +1,10 @@
1
+ import { lighten } from "polished";
1
2
  export const Theme = {
2
3
  colors: {
3
4
  primary: "#4c95c5",
4
5
  text: '#333333',
5
- disableText: "#cccccc",
6
- disableBackground: '#dddddd',
6
+ disableText: "#979797",
7
+ disableBackground: '#e7e7e7',
7
8
  white: "#ffffff",
8
9
  black: "#333333",
9
10
  gray_1: "#b7b7b7",
@@ -47,3 +48,30 @@ export const Theme = {
47
48
  m: '0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);'
48
49
  }
49
50
  };
51
+ export const mainTheme = {
52
+ //buton
53
+ action: Theme.colors.primary,
54
+ buttonText: Theme.colors.white,
55
+ buttonPrimaryHover: lighten(0.1, Theme.colors.primary),
56
+ buttonSecondaryHover: lighten(0.4, Theme.colors.primary),
57
+ buttonInverseHover: lighten(0.3, Theme.colors.primary),
58
+ disabledBackground: Theme.colors.disableBackground,
59
+ disabledText: Theme.colors.disableText,
60
+ //text
61
+ textColor: Theme.colors.text,
62
+ // input
63
+ inputDefaultBackground: Theme.colors.white,
64
+ inputDefaultBorder: Theme.colors.gray_1,
65
+ inputDefaultTextColor: Theme.colors.text,
66
+ inputFocusBackground: lighten(0.4, Theme.colors.primary),
67
+ inputFocusBorder: Theme.colors.primary,
68
+ inputFocusTextColor: Theme.colors.text,
69
+ inputDisabledBackground: Theme.colors.disableBackground,
70
+ inputDisabledBorder: Theme.colors.disableText,
71
+ inputDisabledTextColor: Theme.colors.disableText,
72
+ inputErrorBackground: lighten(0.5, Theme.colors.red),
73
+ inputErrorBorder: Theme.colors.red,
74
+ inputErrorTextColor: Theme.colors.red,
75
+ // global
76
+ contentBackground: Theme.colors.white
77
+ };
@@ -1,5 +1,11 @@
1
1
  import React from 'react';
2
+ import { ThemeProvider } from 'styled-components';
3
+ import { mainTheme } from '../../Theme';
2
4
  import { ButtonElement } from './Button.styles';
3
- export const Button = ({ text, mode = 'primary', size = 'medium', right = false, left = false, onClick, }) => {
4
- return (React.createElement(ButtonElement, { mode: mode, size: size, right: right, left: left, onClick: onClick }, text));
5
+ export const Button = ({ text, mode = 'primary', size = 'medium', right = false, left = false, theme = mainTheme, disabled = false, onClick, }) => {
6
+ const handleClick = () => {
7
+ !disabled && onClick();
8
+ };
9
+ return (React.createElement(ThemeProvider, { theme: theme },
10
+ React.createElement(ButtonElement, { mode: mode, size: size, right: right, left: left, disabled: disabled, onClick: handleClick }, text)));
5
11
  };
@@ -1,5 +1,4 @@
1
- import { setSize } from '../common';
2
- import { lighten } from 'polished';
1
+ import { setButtonSize } from '../common';
3
2
  import styled from 'styled-components';
4
3
  import { Theme } from '../../Theme/Theme';
5
4
  export const ButtonElement = styled.button `
@@ -18,34 +17,54 @@ export const ButtonElement = styled.button `
18
17
  flex-shrink: 1;
19
18
 
20
19
  ${(p) => p.mode === 'primary' &&
21
- `background-color: ${Theme.colors.primary};
22
- color: ${Theme.colors.white};
23
- border: 1px solid rgba(0,0,0,0.15);`}
20
+ `background-color: ${p.theme.action};
21
+ color: ${p.theme.buttonText};
22
+ border: 1px solid rgba(0,0,0,0.15);
23
+ &:disabled{
24
+ color: ${p.theme.disabledText};
25
+ background-color: ${p.theme.disabledBackground};
26
+ }
27
+ `}
24
28
  ${(p) => p.mode === 'secondary' &&
25
- `background-color: ${Theme.colors.white};
26
- color: ${Theme.colors.primary};
27
- border: 1px solid ${Theme.colors.primary};
29
+ `background-color: transparent;
30
+ color: ${p.theme.action};
31
+ border: 1px solid ${p.theme.action};
32
+ &:disabled{
33
+ color: ${p.theme.disabledText};
34
+ border: 1px solid ${p.theme.disabledText};
35
+ }
28
36
  `}
29
37
  ${(p) => p.mode === 'inverse' &&
30
38
  `background-color:transparent;
31
- color: ${Theme.colors.primary};
32
- border:none;`}
33
- ${(p) => setSize(p.size)}
39
+ color: ${p.theme.action};
40
+ border:none;
41
+ &:disabled{
42
+ color: ${p.theme.disabledText};
43
+ }
44
+ `}
45
+ ${(p) => setButtonSize(p.size)}
34
46
  &:hover {
35
47
  transition: 300ms;
36
48
  ${(p) => p.mode === 'primary' &&
37
- `background-color: ${lighten(0.1, Theme.colors.primary)};`}
49
+ `background-color: ${p.theme.buttonPrimaryHover};
50
+ &:disabled {
51
+ background-color: ${p.theme.disabledBackground};
52
+ }`}
53
+
38
54
  ${(p) => p.mode === 'secondary' &&
39
- `background-color: ${lighten(0.4, Theme.colors.primary)}`};
40
- ${(p) => p.mode === 'inverse' && `background-color: ${lighten(0.3, Theme.colors.primary)};`}
55
+ `background-color: ${p.theme.buttonSecondaryHover};
56
+ &:disabled {
57
+ background-color: transparent;
58
+ }`};
59
+
60
+ ${(p) => p.mode === 'inverse' &&
61
+ `background-color: ${p.theme.buttonInverseHover};
62
+ &:disabled{
63
+ background-color: transparent;
64
+ }`}
41
65
  }
42
66
 
43
- &.disable,
44
- button[disabled] {
45
- color: ${Theme.colors.disableText};
46
- cursor: default;
47
- &:hover {
48
- color: ${Theme.colors.disableBackground};
49
- }
67
+ &:disabled {
68
+ cursor: not-allowed;
50
69
  }
51
70
  `;
@@ -1,5 +1,5 @@
1
1
  import styled from 'styled-components';
2
- import { defaultStyles, setSize, colorMode, setFieldHeight } from "../common";
2
+ import { defaultStyles, setSize, inputColorSchema, setFieldHeight } from "../common";
3
3
  import { Theme } from "../../Theme";
4
4
  export const Field = styled.div `
5
5
  position: relative;
@@ -12,15 +12,15 @@ export const Field = styled.div `
12
12
  height: ${(p) => setFieldHeight(p.inputSize)};
13
13
  ${(p) => p.error &&
14
14
  `
15
- ${colorMode.error}
15
+ ${inputColorSchema.error}
16
16
  `}
17
17
  ${(p) => p.active &&
18
18
  `
19
- ${colorMode.default}
19
+ ${inputColorSchema.default}
20
20
  `}
21
21
  ${(p) => p.disabled &&
22
22
  `
23
- ${colorMode.disabled}
23
+ ${inputColorSchema.disabled}
24
24
  cursor: not-allowed;
25
25
  `}
26
26
  `;
@@ -5,7 +5,7 @@ import { Icon } from '../Icons';
5
5
  import { DropdownMenuOption, DropdownMenuElement, DropdownMenuContent, DropdownMenuFooter, DropdownMenuHeader, } from './DropdownMenu.styles';
6
6
  import { Aligment } from '../Aligment';
7
7
  import { TextAccent, TextLabel, Text } from '../Typography';
8
- export const DropdownMenu = ({ size = 'medium', iconName = 'more_vert', color = Theme.colors.primary, iconBackgroundColor = false, header = false, headerTitle, headerSubtitle, footer = false, footerText, footerAction, options, }) => {
8
+ export const DropdownMenu = ({ size = 'medium', iconName = 'more_vert', color = Theme.colors.primary, iconBackgroundColor = false, header = false, headerTitle, headerSubtitle, footer = false, footerText, footerAction, options, right = false, left = false, }) => {
9
9
  const [open, toogleOpen] = useState(false);
10
10
  const ref = useRef(null);
11
11
  const close = () => {
@@ -31,7 +31,7 @@ export const DropdownMenu = ({ size = 'medium', iconName = 'more_vert', color =
31
31
  };
32
32
  }, [open]);
33
33
  return (React.createElement(DropdownMenuElement, null,
34
- React.createElement(Icon, { name: iconName, onClick: () => toogleOpen(!open), color: color, bgColor: iconBackgroundColor, size: setIconSize(size), active: open }),
34
+ React.createElement(Icon, { name: iconName, onClick: () => toogleOpen(!open), color: color, bgColor: iconBackgroundColor, size: setIconSize(size), active: open, right: right, left: left }),
35
35
  open && (React.createElement(Panel, { ref: ref, size: size, position: "right" },
36
36
  React.createElement(Aligment, { hPadding: Theme.padding.m, direction: "column" },
37
37
  header && (React.createElement(DropdownMenuHeader, null,
@@ -6,6 +6,7 @@ export const DropdownMenuElement = styled.div `
6
6
  width:auto;
7
7
  display: flex;
8
8
  box-sizing: border-box;
9
+ min-width:40px;
9
10
  `;
10
11
  export const DropdownMenuHeader = styled.div `
11
12
  border-bottom: 1px solid ${Theme.colors.gray_2};
@@ -22,8 +22,8 @@ export const ElementHeader = ({ title, showTitle = true, moreIcon = false, backI
22
22
  }
23
23
  else if (!closeIcon && actionButton && handleClick) {
24
24
  return (React.createElement(Aligment, { align: "flex-end", width: "auto" },
25
- React.createElement(Button, { mode: "inverse", text: actionLabel, onClick: () => handleClick() }),
26
- moreIcon && options && React.createElement(DropdownMenu, { options: options })));
25
+ React.createElement(Button, { mode: "secondary", text: actionLabel, onClick: () => handleClick() }),
26
+ moreIcon && options && React.createElement(DropdownMenu, { options: options, right: true })));
27
27
  }
28
28
  };
29
29
  return (React.createElement(Aligment, { justify: !showTitle && !children ? 'flex-end' : 'space-between', vPadding: Theme.padding.m, hPadding: Theme.padding.l, backgroundColor: bgColor },
@@ -2,8 +2,8 @@ import React from 'react';
2
2
  import { Theme } from '../../Theme/Theme';
3
3
  import { IconElement } from './Icon.styles';
4
4
  import { iconsPath } from './IconsPath';
5
- export const Icon = ({ size = 24, name, color = Theme.colors.text, bgColor, onClick, active = false }) => {
6
- return (React.createElement(IconElement, { onClick: onClick, bgColor: bgColor, active: active },
5
+ export const Icon = ({ size = 24, name, right = false, left = false, color = Theme.colors.text, bgColor, onClick, active = false, noHover = false }) => {
6
+ return (React.createElement(IconElement, { onClick: onClick, bgColor: bgColor, active: active, right: right, left: left, noHover: noHover },
7
7
  React.createElement("svg", { width: size, height: size, viewBox: '0 0 24 24', preserveAspectRatio: "xMidYMid meet", x: "0", y: "0", name: name },
8
8
  React.createElement("path", { d: iconsPath[name], fill: color }))));
9
9
  };
@@ -7,14 +7,18 @@ export const IconElement = styled.div `
7
7
  width:auto;
8
8
  display:inline-flex;
9
9
  border-radius: 50%;
10
+ margin-left: ${(p) => (p.right ? Theme.padding.m : '0')};
11
+ margin-right: ${(p) => (p.left ? Theme.padding.m : '0')};
10
12
  ${p => p.onClick !== undefined &&
11
13
  `
12
14
  padding: ${Theme.padding.s};
13
15
  cursor:pointer;
14
- &:hover{
16
+ ${!p.noHover &&
17
+ `&:hover{
15
18
  background-color: ${p.bgColor ? `rgba(255,255,255,0.2)` : lighten(0.3, Theme.colors.primary)};
16
19
  transition: 300ms;
17
- }
20
+ }`}
21
+
18
22
  svg{
19
23
  cursor:pointer;
20
24
  }
@@ -8,6 +8,7 @@ export const iconsPath = {
8
8
  add_circle: "M11 17h2v-4h4v-2h-4V7h-2v4H7v2h4Zm1 5q-2.075 0-3.9-.788-1.825-.787-3.175-2.137-1.35-1.35-2.137-3.175Q2 14.075 2 12t.788-3.9q.787-1.825 2.137-3.175 1.35-1.35 3.175-2.138Q9.925 2 12 2t3.9.787q1.825.788 3.175 2.138 1.35 1.35 2.137 3.175Q22 9.925 22 12t-.788 3.9q-.787 1.825-2.137 3.175-1.35 1.35-3.175 2.137Q14.075 22 12 22Zm0-2q3.35 0 5.675-2.325Q20 15.35 20 12q0-3.35-2.325-5.675Q15.35 4 12 4 8.65 4 6.325 6.325 4 8.65 4 12q0 3.35 2.325 5.675Q8.65 20 12 20Zm0-8Z",
9
9
  account: "M5.85 17.1q1.275-.975 2.85-1.538Q10.275 15 12 15q1.725 0 3.3.562 1.575.563 2.85 1.538.875-1.025 1.363-2.325Q20 13.475 20 12q0-3.325-2.337-5.663Q15.325 4 12 4T6.338 6.337Q4 8.675 4 12q0 1.475.488 2.775.487 1.3 1.362 2.325ZM12 13q-1.475 0-2.488-1.012Q8.5 10.975 8.5 9.5t1.012-2.488Q10.525 6 12 6t2.488 1.012Q15.5 8.025 15.5 9.5t-1.012 2.488Q13.475 13 12 13Zm0 9q-2.075 0-3.9-.788-1.825-.787-3.175-2.137-1.35-1.35-2.137-3.175Q2 14.075 2 12t.788-3.9q.787-1.825 2.137-3.175 1.35-1.35 3.175-2.138Q9.925 2 12 2t3.9.787q1.825.788 3.175 2.138 1.35 1.35 2.137 3.175Q22 9.925 22 12t-.788 3.9q-.787 1.825-2.137 3.175-1.35 1.35-3.175 2.137Q14.075 22 12 22Zm0-2q1.325 0 2.5-.387 1.175-.388 2.15-1.113-.975-.725-2.15-1.113Q13.325 17 12 17t-2.5.387q-1.175.388-2.15 1.113.975.725 2.15 1.113Q10.675 20 12 20Zm0-9q.65 0 1.075-.425.425-.425.425-1.075 0-.65-.425-1.075Q12.65 8 12 8q-.65 0-1.075.425Q10.5 8.85 10.5 9.5q0 .65.425 1.075Q11.35 11 12 11Zm0-1.5Zm0 9Z",
10
10
  visibility: "M12 16q1.875 0 3.188-1.312Q16.5 13.375 16.5 11.5q0-1.875-1.312-3.188Q13.875 7 12 7q-1.875 0-3.188 1.312Q7.5 9.625 7.5 11.5q0 1.875 1.312 3.188Q10.125 16 12 16Zm0-1.8q-1.125 0-1.912-.788Q9.3 12.625 9.3 11.5t.788-1.913Q10.875 8.8 12 8.8t1.913.787q.787.788.787 1.913t-.787 1.912q-.788.788-1.913.788Zm0 4.8q-3.65 0-6.65-2.038-3-2.037-4.35-5.462 1.35-3.425 4.35-5.463Q8.35 4 12 4q3.65 0 6.65 2.037 3 2.038 4.35 5.463-1.35 3.425-4.35 5.462Q15.65 19 12 19Zm0-7.5Zm0 5.5q2.825 0 5.188-1.488Q19.55 14.025 20.8 11.5q-1.25-2.525-3.612-4.013Q14.825 6 12 6 9.175 6 6.812 7.487 4.45 8.975 3.2 11.5q1.25 2.525 3.612 4.012Q9.175 17 12 17Z",
11
+ visability_off: "M16.1 13.3L14.65 11.85C14.8 11.0667 14.575 10.3333 13.975 9.65C13.375 8.96667 12.6 8.7 11.65 8.85L10.2 7.4C10.4833 7.26667 10.7708 7.16667 11.0625 7.1C11.3542 7.03333 11.6667 7 12 7C13.25 7 14.3125 7.4375 15.1875 8.3125C16.0625 9.1875 16.5 10.25 16.5 11.5C16.5 11.8333 16.4667 12.1458 16.4 12.4375C16.3333 12.7292 16.2333 13.0167 16.1 13.3ZM19.3 16.45L17.85 15.05C18.4833 14.5667 19.0458 14.0375 19.5375 13.4625C20.0292 12.8875 20.45 12.2333 20.8 11.5C19.9667 9.81667 18.7708 8.47917 17.2125 7.4875C15.6542 6.49583 13.9167 6 12 6C11.5167 6 11.0417 6.03333 10.575 6.1C10.1083 6.16667 9.65 6.26667 9.2 6.4L7.65 4.85C8.33333 4.56667 9.03333 4.35417 9.75 4.2125C10.4667 4.07083 11.2167 4 12 4C14.5167 4 16.7583 4.69583 18.725 6.0875C20.6917 7.47917 22.1167 9.28333 23 11.5C22.6167 12.4833 22.1125 13.3958 21.4875 14.2375C20.8625 15.0792 20.1333 15.8167 19.3 16.45ZM19.8 22.6L15.6 18.45C15.0167 18.6333 14.4292 18.7708 13.8375 18.8625C13.2458 18.9542 12.6333 19 12 19C9.48333 19 7.24167 18.3042 5.275 16.9125C3.30833 15.5208 1.88333 13.7167 1 11.5C1.35 10.6167 1.79167 9.79583 2.325 9.0375C2.85833 8.27917 3.46667 7.6 4.15 7L1.4 4.2L2.8 2.8L21.2 21.2L19.8 22.6ZM5.55 8.4C5.06667 8.83333 4.625 9.30833 4.225 9.825C3.825 10.3417 3.48333 10.9 3.2 11.5C4.03333 13.1833 5.22917 14.5208 6.7875 15.5125C8.34583 16.5042 10.0833 17 12 17C12.3333 17 12.6583 16.9792 12.975 16.9375C13.2917 16.8958 13.6167 16.85 13.95 16.8L13.05 15.85C12.8667 15.9 12.6917 15.9375 12.525 15.9625C12.3583 15.9875 12.1833 16 12 16C10.75 16 9.6875 15.5625 8.8125 14.6875C7.9375 13.8125 7.5 12.75 7.5 11.5C7.5 11.3167 7.5125 11.1417 7.5375 10.975C7.5625 10.8083 7.6 10.6333 7.65 10.45L5.55 8.4Z",
11
12
  search: "m19.6 21-6.3-6.3q-.75.6-1.725.95Q10.6 16 9.5 16q-2.725 0-4.612-1.887Q3 12.225 3 9.5q0-2.725 1.888-4.613Q6.775 3 9.5 3t4.613 1.887Q16 6.775 16 9.5q0 1.1-.35 2.075-.35.975-.95 1.725l6.3 6.3ZM9.5 14q1.875 0 3.188-1.312Q14 11.375 14 9.5q0-1.875-1.312-3.188Q11.375 5 9.5 5 7.625 5 6.312 6.312 5 7.625 5 9.5q0 1.875 1.312 3.188Q7.625 14 9.5 14Z",
12
13
  more_vert: "M12 20q-.825 0-1.412-.587Q10 18.825 10 18q0-.825.588-1.413Q11.175 16 12 16t1.413.587Q14 17.175 14 18q0 .825-.587 1.413Q12.825 20 12 20Zm0-6q-.825 0-1.412-.588Q10 12.825 10 12t.588-1.413Q11.175 10 12 10t1.413.587Q14 11.175 14 12q0 .825-.587 1.412Q12.825 14 12 14Zm0-6q-.825 0-1.412-.588Q10 6.825 10 6t.588-1.412Q11.175 4 12 4t1.413.588Q14 5.175 14 6t-.587 1.412Q12.825 8 12 8Z",
13
14
  menu: "M3 18v-2h18v2Zm0-5v-2h18v2Zm0-5V6h18v2Z",
@@ -22,5 +23,5 @@ export const iconsPath = {
22
23
  person: "M12 12q-1.65 0-2.825-1.175Q8 9.65 8 8q0-1.65 1.175-2.825Q10.35 4 12 4q1.65 0 2.825 1.175Q16 6.35 16 8q0 1.65-1.175 2.825Q13.65 12 12 12Zm-8 8v-2.8q0-.85.438-1.563.437-.712 1.162-1.087 1.55-.775 3.15-1.163Q10.35 13 12 13t3.25.387q1.6.388 3.15 1.163.725.375 1.162 1.087Q20 16.35 20 17.2V20Zm2-2h12v-.8q0-.275-.137-.5-.138-.225-.363-.35-1.35-.675-2.725-1.013Q13.4 15 12 15t-2.775.337Q7.85 15.675 6.5 16.35q-.225.125-.362.35-.138.225-.138.5Zm6-8q.825 0 1.413-.588Q14 8.825 14 8t-.587-1.412Q12.825 6 12 6q-.825 0-1.412.588Q10 7.175 10 8t.588 1.412Q11.175 10 12 10Zm0-2Zm0 10Z",
23
24
  check_circle: "m10.6 16.6 7.05-7.05-1.4-1.4-5.65 5.65-2.85-2.85-1.4 1.4ZM12 22q-2.075 0-3.9-.788-1.825-.787-3.175-2.137-1.35-1.35-2.137-3.175Q2 14.075 2 12t.788-3.9q.787-1.825 2.137-3.175 1.35-1.35 3.175-2.138Q9.925 2 12 2t3.9.787q1.825.788 3.175 2.138 1.35 1.35 2.137 3.175Q22 9.925 22 12t-.788 3.9q-.787 1.825-2.137 3.175-1.35 1.35-3.175 2.137Q14.075 22 12 22Zm0-2q3.35 0 5.675-2.325Q20 15.35 20 12q0-3.35-2.325-5.675Q15.35 4 12 4 8.65 4 6.325 6.325 4 8.65 4 12q0 3.35 2.325 5.675Q8.65 20 12 20Zm0-8Z",
24
25
  check_box: "m10.6 16.2 7.05-7.05-1.4-1.4-5.65 5.65-2.85-2.85-1.4 1.4ZM5 21q-.825 0-1.413-.587Q3 19.825 3 19V5q0-.825.587-1.413Q4.175 3 5 3h14q.825 0 1.413.587Q21 4.175 21 5v14q0 .825-.587 1.413Q19.825 21 19 21Zm0-2h14V5H5v14ZM5 5v14V5Z",
25
- check: "m9.55 18-5.7-5.7 1.425-1.425L9.55 15.15l9.175-9.175L20.15 7.4Z"
26
+ check: "m9.55 18-5.7-5.7 1.425-1.425L9.55 15.15l9.175-9.175L20.15 7.4Z",
26
27
  };
@@ -1,13 +1,24 @@
1
+ import React, { useState } from 'react';
2
+ import { ThemeProvider } from 'styled-components';
1
3
  import { Aligment } from '../Aligment';
2
- import React from 'react';
3
- import { InputTextElement, InputLabelElement, InputErrorMsg, InputWrapper, } from './Input.styles';
4
- export const Input = ({ label, labelPosition = 'top', value, type = 'text', name, disabled = false, size = 'medium', handleChange, width, error, placeholder, min, max, step }) => {
4
+ import { InputTextElement, InputLabelElement, InputErrorMsg, InputWrapper, EyeIconWrapper, } from './Input.styles';
5
+ import { Icon } from '../Icons';
6
+ import { mainTheme } from '../../Theme';
7
+ export const Input = ({ label, labelPosition = 'top', value, type = 'text', name, disabled = false, size = 'medium', handleChange, width, error, placeholder, min, max, step, theme = mainTheme, }) => {
5
8
  const onChange = (e) => {
6
9
  handleChange(name, e.target.value);
7
10
  };
8
- return (React.createElement(Aligment, { align: labelPosition === 'top' ? 'flex-start' : 'center', direction: labelPosition === 'top' ? 'column' : 'row', wrap: 'nowrap' },
9
- label && (React.createElement(InputLabelElement, { size: size, labelPosition: labelPosition }, label)),
10
- React.createElement(InputWrapper, { width: width },
11
- React.createElement(InputTextElement, { inputSize: size, type: type, disabled: disabled, name: name, value: value, onChange: onChange, error: error, placeholder: placeholder, min: min, max: max, step: step }),
12
- error && React.createElement(InputErrorMsg, null, error))));
11
+ const [inputType] = useState(type);
12
+ const [showPassword, setShowPassword] = useState(false);
13
+ const tooglePassword = () => {
14
+ setShowPassword(!showPassword);
15
+ };
16
+ return (React.createElement(ThemeProvider, { theme: theme },
17
+ React.createElement(Aligment, { align: labelPosition === 'top' ? 'flex-start' : 'center', direction: labelPosition === 'top' ? 'column' : 'row', wrap: 'nowrap' },
18
+ label && (React.createElement(InputLabelElement, { size: size, labelPosition: labelPosition }, label)),
19
+ React.createElement(InputWrapper, { width: width },
20
+ React.createElement(InputTextElement, { inputSize: size, type: showPassword ? 'text' : inputType, disabled: disabled, name: name, value: value, onChange: onChange, error: error, placeholder: placeholder, min: min, max: max, step: step }),
21
+ inputType === 'password' && (React.createElement(EyeIconWrapper, { size: size },
22
+ React.createElement(Icon, { name: showPassword ? 'visability_off' : 'visibility', size: 24, onClick: tooglePassword, color: theme.inputDefaultTextColor, noHover: true }))),
23
+ error && React.createElement(InputErrorMsg, null, error)))));
13
24
  };
@@ -1,22 +1,39 @@
1
- import { defaultStyles, setSize, colorMode } from "../common";
1
+ import { setSize, setEyeTopPosition } from "../common";
2
2
  import styled from "styled-components";
3
3
  import { Theme } from "../../Theme";
4
4
  import { TextLabel } from "../Typography";
5
5
  export const InputTextElement = styled.input `
6
6
  position:relative;
7
- ${defaultStyles}
7
+ box-sizing: border-box;
8
+ background-color: ${p => p.theme.inputDefaultBackground};
9
+ border: 1px solid ${p => p.theme.inputDefaultBorder};
10
+ border-radius: ${Theme.borderRadius.m};
11
+ width: 100%;
12
+ font-family: "Lato", sans-serif;
13
+ outline: 0;
14
+ white-space: nowrap;
15
+ overflow: hidden;
16
+ text-overflow: ellipsis;
17
+
8
18
  ${(p) => setSize(p.inputSize)}
9
- color: ${Theme.colors.text};
19
+ color: ${p => p.theme.inputDefaultTextColor};
10
20
  width: ${p => p.width ? p.width : '100%'};
21
+ ${p => p.type === 'password' && `padding-right:32px;`}
11
22
  :focus {
12
- ${colorMode.default}
23
+ border-color: ${p => p.theme.inputFocusBorder};
24
+ background-color: ${p => p.theme.inputFocusBackground};
25
+ color:${p => p.theme.inputFocusTextColor};
13
26
  }
14
27
  :disabled{
15
- ${colorMode.disabled}
28
+ background-color: ${p => p.theme.inputDisabledBackground};
29
+ border-color: ${p => p.theme.inputDisabledBorder};
30
+ color:${p => p.theme.inputDisabledTextColor};
16
31
  cursor: not-allowed;
17
32
  }
18
33
  ${p => p.error && `
19
- ${colorMode.error}
34
+ background-color: ${p.theme.inputErrorBackground};
35
+ border-color: ${p.theme.inputErrorBorder};
36
+ color:${p.theme.inputErrorTextColor};
20
37
  `}
21
38
  `;
22
39
  export const InputLabelElement = styled(TextLabel) `
@@ -29,8 +46,13 @@ export const InputWrapper = styled.div `
29
46
  width: ${p => p.width ? p.width : '100%'};
30
47
  `;
31
48
  export const InputErrorMsg = styled.div `
32
- color: ${Theme.colors.red};
49
+ color: ${p => p.theme.inputErrorTextColor};
33
50
  font-size: ${Theme.fontSize.s};
34
51
  position: absolute;
35
52
  bottom: -20px;
36
53
  `;
54
+ export const EyeIconWrapper = styled.div `
55
+ position: absolute;
56
+ right: 2px;
57
+ ${(p) => setEyeTopPosition(p.size)}
58
+ `;
@@ -1,19 +1,21 @@
1
1
  import { ElementHeader } from '../ElementHeader';
2
2
  import React from 'react';
3
- import { Theme } from '../../Theme/Theme';
3
+ import { Theme, mainTheme } from '../../Theme/Theme';
4
4
  import { Aligment } from '../Aligment';
5
5
  import { Button } from '../Button';
6
6
  import { ScrollCotainer } from '../common';
7
7
  import { ModalElement, ModalOverlayer } from './Modal.styles';
8
- export const Modal = ({ children, title, handleConfirm, handleClose, labelConfirm, labelClose, size = 'small', }) => {
8
+ import { ThemeProvider } from 'styled-components';
9
+ export const Modal = ({ theme = mainTheme, children, title, handleConfirm, handleClose, labelConfirm, labelClose, submitDisabled, size = 'small', }) => {
9
10
  const isMultiButtons = () => {
10
11
  return handleConfirm !== undefined && labelConfirm !== undefined;
11
12
  };
12
- return (React.createElement(ModalOverlayer, null,
13
- React.createElement(ModalElement, { size: size },
14
- React.createElement(ElementHeader, { title: title, handleClose: handleClose }),
15
- React.createElement(ScrollCotainer, null, children),
16
- React.createElement(Aligment, { justify: 'flex-end', vPadding: Theme.padding.l, hPadding: Theme.padding.l },
17
- React.createElement(Button, { mode: isMultiButtons() ? 'secondary' : 'primary', onClick: () => handleClose(), text: labelClose, left: isMultiButtons() }),
18
- handleConfirm && labelConfirm && (React.createElement(Button, { onClick: handleConfirm, text: labelConfirm }))))));
13
+ return (React.createElement(ThemeProvider, { theme: theme },
14
+ React.createElement(ModalOverlayer, null,
15
+ React.createElement(ModalElement, { size: size },
16
+ React.createElement(ElementHeader, { title: title, handleClose: handleClose }),
17
+ React.createElement(ScrollCotainer, null, children),
18
+ React.createElement(Aligment, { justify: 'flex-end', vPadding: Theme.padding.l, hPadding: Theme.padding.l },
19
+ React.createElement(Button, { mode: isMultiButtons() ? 'secondary' : 'primary', onClick: () => handleClose(), text: labelClose, left: isMultiButtons() }),
20
+ handleConfirm && labelConfirm && (React.createElement(Button, { onClick: handleConfirm, text: labelConfirm, disabled: submitDisabled })))))));
19
21
  };
@@ -18,7 +18,7 @@ export const ModalElement = styled.div `
18
18
  box-sizing: border-box;
19
19
  display: flex;
20
20
  width: 100%;
21
- background-color: ${Theme.colors.white};
21
+ background-color: ${p => p.theme.contentBackground};
22
22
  border-radius: ${Theme.borderRadius.m};
23
23
  max-height: 100%;
24
24
  overflow: hidden;
@@ -15,25 +15,55 @@ export const defaultStyles = `
15
15
  `;
16
16
  export const sizes = {
17
17
  small: `
18
- padding: ${Theme.padding.s};
19
18
  font-size: ${Theme.fontSize.s};
20
19
  line-height: ${Theme.lineHeight.s};
21
20
  `,
22
21
  medium: `
23
- padding: ${Theme.padding.m};
24
22
  font-size: ${Theme.fontSize.m};
25
23
  line-height: ${Theme.lineHeight.m};
26
24
  `,
27
25
  large: `
28
- padding: ${Theme.padding.m};
29
26
  font-size: ${Theme.fontSize.l};
30
27
  line-height: ${Theme.lineHeight.l};
31
28
  `
32
29
  };
30
+ export const inputPadding = {
31
+ small: `
32
+ padding: ${Theme.padding.s};
33
+ `,
34
+ medium: `
35
+ padding: ${Theme.padding.m};
36
+ `,
37
+ large: `
38
+ padding: ${Theme.padding.m};
39
+ `
40
+ };
41
+ export const buttonPadding = {
42
+ small: `
43
+ padding: ${Theme.padding.s} ${Theme.padding.m};
44
+ `,
45
+ medium: `
46
+ padding: ${Theme.padding.m} ${Theme.padding.l};
47
+ `,
48
+ large: `
49
+ padding: ${Theme.padding.m} ${Theme.padding.l};
50
+ `
51
+ };
52
+ export const eyeTopPosition = {
53
+ small: `top:-2px;`,
54
+ medium: `top: 3px;`,
55
+ large: `top: 7px;`
56
+ };
33
57
  export const setSize = (size) => {
34
- return sizes[size];
58
+ return sizes[size] + inputPadding[size];
59
+ };
60
+ export const setButtonSize = (size) => {
61
+ return sizes[size] + buttonPadding[size];
62
+ };
63
+ export const setEyeTopPosition = (size) => {
64
+ return eyeTopPosition[size];
35
65
  };
36
- export const colorMode = {
66
+ export const inputColorSchema = {
37
67
  default: `
38
68
  border-color: ${Theme.colors.primary};
39
69
  background-color: ${lighten(0.4, Theme.colors.primary)};
@@ -47,3 +47,26 @@ export declare const Theme: {
47
47
  m: string;
48
48
  };
49
49
  };
50
+ export declare const mainTheme: {
51
+ action: string;
52
+ buttonText: string;
53
+ buttonPrimaryHover: string;
54
+ buttonSecondaryHover: string;
55
+ buttonInverseHover: string;
56
+ disabledBackground: string;
57
+ disabledText: string;
58
+ textColor: string;
59
+ inputDefaultBackground: string;
60
+ inputDefaultBorder: string;
61
+ inputDefaultTextColor: string;
62
+ inputFocusBackground: string;
63
+ inputFocusBorder: string;
64
+ inputFocusTextColor: string;
65
+ inputDisabledBackground: string;
66
+ inputDisabledBorder: string;
67
+ inputDisabledTextColor: string;
68
+ inputErrorBackground: string;
69
+ inputErrorBorder: string;
70
+ inputErrorTextColor: string;
71
+ contentBackground: string;
72
+ };
@@ -6,6 +6,8 @@ export interface IButtonProps {
6
6
  size?: InputSize;
7
7
  right?: boolean;
8
8
  left?: boolean;
9
+ theme?: any;
10
+ disabled?: boolean;
9
11
  onClick: () => void;
10
12
  }
11
13
  export declare const Button: FC<IButtonProps>;
@@ -4,6 +4,7 @@ interface IButtonElement {
4
4
  size: InputSize;
5
5
  right: boolean;
6
6
  left: boolean;
7
+ disabled: boolean;
7
8
  }
8
9
  export declare const ButtonElement: import("styled-components").StyledComponent<"button", any, IButtonElement, never>;
9
10
  export {};
@@ -12,6 +12,8 @@ interface IDropdownMenuProps {
12
12
  footerText?: string;
13
13
  footerAction?: () => void;
14
14
  options: IAction[];
15
+ right?: boolean;
16
+ left?: boolean;
15
17
  }
16
18
  export declare const DropdownMenu: FC<IDropdownMenuProps>;
17
19
  export {};
@@ -3,8 +3,11 @@ export interface IIconActionProps {
3
3
  name: string;
4
4
  size?: number;
5
5
  color?: string;
6
+ right?: boolean;
7
+ left?: boolean;
6
8
  bgColor?: boolean;
7
9
  onClick?: () => void;
8
10
  active?: boolean;
11
+ noHover?: boolean;
9
12
  }
10
13
  export declare const Icon: FC<IIconActionProps>;
@@ -2,6 +2,9 @@ interface IIconElementProps {
2
2
  bgColor?: boolean;
3
3
  onClick?: () => void;
4
4
  active: boolean;
5
+ right: boolean;
6
+ left: boolean;
7
+ noHover: boolean;
5
8
  }
6
9
  export declare const IconElement: import("styled-components").StyledComponent<"div", any, IIconElementProps, never>;
7
10
  export {};
@@ -8,6 +8,7 @@ export declare const iconsPath: {
8
8
  add_circle: string;
9
9
  account: string;
10
10
  visibility: string;
11
+ visability_off: string;
11
12
  search: string;
12
13
  more_vert: string;
13
14
  menu: string;
@@ -7,5 +7,6 @@ export interface IInputProps extends IFormElement {
7
7
  min?: number;
8
8
  max?: number;
9
9
  step?: number;
10
+ theme?: any;
10
11
  }
11
12
  export declare const Input: FC<IInputProps>;
@@ -1,10 +1,12 @@
1
1
  import { InputHTMLAttributes } from "react";
2
- import { InputSize } from "../../types";
2
+ import { InputSize, InputType } from "../../types";
3
3
  interface IInputTextElementProps extends InputHTMLAttributes<HTMLInputElement> {
4
4
  inputSize: InputSize;
5
5
  disabled: boolean;
6
6
  error?: string;
7
7
  width?: string;
8
+ type: InputType;
9
+ theme: any;
8
10
  }
9
11
  export declare const InputTextElement: import("styled-components").StyledComponent<"input", any, IInputTextElementProps, never>;
10
12
  export declare const InputLabelElement: import("styled-components").StyledComponent<"div", any, import("../Typography").ITextLabelProps, never>;
@@ -13,4 +15,8 @@ interface IInputWrapperProps {
13
15
  }
14
16
  export declare const InputWrapper: import("styled-components").StyledComponent<"div", any, IInputWrapperProps, never>;
15
17
  export declare const InputErrorMsg: import("styled-components").StyledComponent<"div", any, {}, never>;
18
+ interface IEyeIconWrapperProps {
19
+ size: InputSize;
20
+ }
21
+ export declare const EyeIconWrapper: import("styled-components").StyledComponent<"div", any, IEyeIconWrapperProps, never>;
16
22
  export {};
@@ -1,5 +1,6 @@
1
1
  import React, { FC } from 'react';
2
2
  export interface IModalProps {
3
+ theme?: any;
3
4
  children: React.ReactNode;
4
5
  title?: string;
5
6
  handleConfirm?: () => void;
@@ -7,5 +8,6 @@ export interface IModalProps {
7
8
  labelConfirm?: string;
8
9
  labelClose: string;
9
10
  size?: string;
11
+ submitDisabled?: boolean;
10
12
  }
11
13
  export declare const Modal: FC<IModalProps>;
@@ -1,6 +1,7 @@
1
1
  export declare const ModalOverlayer: import("styled-components").StyledComponent<"div", any, {}, never>;
2
2
  interface IModalElementProp {
3
3
  size: string;
4
+ theme: any;
4
5
  }
5
6
  export declare const ModalElement: import("styled-components").StyledComponent<"div", any, IModalElementProp, never>;
6
7
  export {};
@@ -5,8 +5,25 @@ export declare const sizes: {
5
5
  medium: string;
6
6
  large: string;
7
7
  };
8
+ export declare const inputPadding: {
9
+ small: string;
10
+ medium: string;
11
+ large: string;
12
+ };
13
+ export declare const buttonPadding: {
14
+ small: string;
15
+ medium: string;
16
+ large: string;
17
+ };
18
+ export declare const eyeTopPosition: {
19
+ small: string;
20
+ medium: string;
21
+ large: string;
22
+ };
8
23
  export declare const setSize: (size: InputSize) => string;
9
- export declare const colorMode: {
24
+ export declare const setButtonSize: (size: InputSize) => string;
25
+ export declare const setEyeTopPosition: (size: InputSize) => string;
26
+ export declare const inputColorSchema: {
10
27
  default: string;
11
28
  disabled: string;
12
29
  error: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "venice-ui",
3
- "version": "1.0.38",
3
+ "version": "1.0.40",
4
4
  "description": "Component library",
5
5
  "main": "index.js",
6
6
  "module": "./dist/esm/index.js",