venice-ui 1.0.25 → 1.0.26

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 (80) hide show
  1. package/dist/cjs/components/Aligment/Aligment.styles.js +2 -1
  2. package/dist/cjs/components/Button/Button.js +1 -1
  3. package/dist/cjs/components/Button/Button.styles.js +8 -17
  4. package/dist/cjs/components/Dropdown/Dropdown.js +6 -5
  5. package/dist/cjs/components/Dropdown/Dropdown.styles.js +1 -25
  6. package/dist/cjs/components/Dropdown/DropdownElements.js +2 -0
  7. package/dist/cjs/components/ElementHeader/ElementHeader.js +1 -1
  8. package/dist/cjs/components/File/File.js +50 -0
  9. package/dist/cjs/components/File/File.styles.js +10 -0
  10. package/dist/cjs/components/File/index.js +17 -0
  11. package/dist/cjs/components/Icons/Icon.js +2 -2
  12. package/dist/cjs/components/Icons/Icon.styles.js +3 -0
  13. package/dist/cjs/components/Input/Input.js +20 -0
  14. package/dist/cjs/components/{InputText/InputText.styles.js → Input/Input.styles.js} +0 -0
  15. package/dist/cjs/components/Input/index.js +18 -0
  16. package/dist/cjs/components/Loader/Loader.js +19 -0
  17. package/dist/cjs/components/Loader/Loader.styles.js +81 -0
  18. package/dist/cjs/components/Loader/index.js +17 -0
  19. package/dist/cjs/components/Modal/Modal.js +1 -1
  20. package/dist/cjs/components/More/More.js +4 -3
  21. package/dist/cjs/components/More/More.styles.js +1 -24
  22. package/dist/cjs/components/Selector/Selector.js +6 -6
  23. package/dist/cjs/components/Selector/Selector.styles.js +4 -5
  24. package/dist/cjs/components/common/commonComponents.js +28 -1
  25. package/dist/cjs/components/common/inputStyles.js +74 -12
  26. package/dist/cjs/example/ExampleComponent.js +18 -1
  27. package/dist/cjs/index.js +3 -1
  28. package/dist/esm/components/Aligment/Aligment.styles.js +2 -1
  29. package/dist/esm/components/Button/Button.js +1 -1
  30. package/dist/esm/components/Button/Button.styles.js +8 -17
  31. package/dist/esm/components/Dropdown/Dropdown.js +5 -4
  32. package/dist/esm/components/Dropdown/Dropdown.styles.js +0 -24
  33. package/dist/esm/components/Dropdown/DropdownElements.js +2 -0
  34. package/dist/esm/components/ElementHeader/ElementHeader.js +1 -1
  35. package/dist/esm/components/File/File.js +23 -0
  36. package/dist/esm/components/File/File.styles.js +4 -0
  37. package/dist/esm/components/File/index.js +1 -0
  38. package/dist/esm/components/Icons/Icon.js +2 -2
  39. package/dist/esm/components/Icons/Icon.styles.js +3 -0
  40. package/dist/esm/components/{InputText/InputText.js → Input/Input.js} +3 -3
  41. package/dist/esm/components/{InputText/InputText.styles.js → Input/Input.styles.js} +0 -0
  42. package/dist/esm/components/Input/index.js +2 -0
  43. package/dist/esm/components/Loader/Loader.js +12 -0
  44. package/dist/esm/components/Loader/Loader.styles.js +54 -0
  45. package/dist/esm/components/Loader/index.js +1 -0
  46. package/dist/esm/components/Modal/Modal.js +1 -1
  47. package/dist/esm/components/More/More.js +5 -4
  48. package/dist/esm/components/More/More.styles.js +0 -23
  49. package/dist/esm/components/Selector/Selector.js +4 -4
  50. package/dist/esm/components/Selector/Selector.styles.js +4 -5
  51. package/dist/esm/components/common/commonComponents.js +27 -0
  52. package/dist/esm/components/common/inputStyles.js +69 -11
  53. package/dist/esm/example/ExampleComponent.js +17 -0
  54. package/dist/esm/index.js +3 -1
  55. package/dist/types/components/Aligment/Aligment.styles.d.ts +1 -0
  56. package/dist/types/components/Button/Button.d.ts +3 -2
  57. package/dist/types/components/Button/Button.styles.d.ts +2 -1
  58. package/dist/types/components/Dropdown/Dropdown.styles.d.ts +0 -9
  59. package/dist/types/components/File/File.d.ts +10 -0
  60. package/dist/types/components/File/File.styles.d.ts +1 -0
  61. package/dist/types/components/File/index.d.ts +1 -0
  62. package/dist/types/components/Icons/Icon.d.ts +1 -0
  63. package/dist/types/components/Icons/Icon.styles.d.ts +1 -0
  64. package/dist/types/components/{InputText/InputText.d.ts → Input/Input.d.ts} +5 -2
  65. package/dist/types/components/{InputText/InputText.styles.d.ts → Input/Input.styles.d.ts} +0 -0
  66. package/dist/types/components/Input/index.d.ts +2 -0
  67. package/dist/types/components/Loader/Loader.d.ts +7 -0
  68. package/dist/types/components/Loader/Loader.styles.d.ts +14 -0
  69. package/dist/types/components/Loader/index.d.ts +1 -0
  70. package/dist/types/components/More/More.styles.d.ts +0 -5
  71. package/dist/types/components/common/commonComponents.d.ts +14 -0
  72. package/dist/types/components/common/inputStyles.d.ts +62 -3
  73. package/dist/types/example/ExampleComponent.d.ts +3 -0
  74. package/dist/types/index.d.ts +3 -1
  75. package/dist/types/types/types.d.ts +3 -2
  76. package/package.json +1 -1
  77. package/dist/cjs/components/InputText/InputText.js +0 -20
  78. package/dist/cjs/components/InputText/index.js +0 -9
  79. package/dist/esm/components/InputText/index.js +0 -2
  80. package/dist/types/components/InputText/index.d.ts +0 -2
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setLabelFontSize = exports.lableFontSize = exports.colorMode = exports.setSize = exports.sizes = exports.defaultStyles = void 0;
3
+ exports.setAnimationParams = exports.animationParams = 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;
4
4
  const polished_1 = require("polished");
5
5
  const Theme_1 = require("../../Theme");
6
6
  exports.defaultStyles = `
@@ -11,22 +11,26 @@ exports.defaultStyles = `
11
11
  width: 100%;
12
12
  font-family: "Lato", sans-serif;
13
13
  outline: 0;
14
+ white-space: nowrap;
15
+ overflow: hidden;
16
+ text-overflow: ellipsis;
17
+
14
18
  `;
15
19
  exports.sizes = {
16
- xsmall: `
17
- padding: ${Theme_1.Theme.padding.s};
18
- font-size: ${Theme_1.Theme.fontSize.s};
19
- `,
20
20
  small: `
21
21
  padding: ${Theme_1.Theme.padding.s};
22
- font-size: ${Theme_1.Theme.fontSize.m};
22
+ font-size: ${Theme_1.Theme.fontSize.s};
23
+ line-height: ${Theme_1.Theme.lineHeight.s};
23
24
  `,
24
25
  medium: `
25
26
  padding: ${Theme_1.Theme.padding.m};
26
- font-size: ${Theme_1.Theme.fontSize.m};`,
27
+ font-size: ${Theme_1.Theme.fontSize.m};
28
+ line-height: ${Theme_1.Theme.lineHeight.m};
29
+ `,
27
30
  large: `
28
31
  padding: ${Theme_1.Theme.padding.m};
29
32
  font-size: ${Theme_1.Theme.fontSize.l};
33
+ line-height: ${Theme_1.Theme.lineHeight.l};
30
34
  `
31
35
  };
32
36
  const setSize = (size) => {
@@ -49,13 +53,9 @@ exports.colorMode = {
49
53
  `,
50
54
  };
51
55
  exports.lableFontSize = {
52
- xsmall: `
56
+ small: `
53
57
  line-height: ${Theme_1.Theme.lineHeight.s};
54
58
  font-size: ${Theme_1.Theme.fontSize.s};
55
- `,
56
- small: `
57
- line-height: ${Theme_1.Theme.lineHeight.m};
58
- font-size: ${Theme_1.Theme.fontSize.m};
59
59
  `,
60
60
  medium: `
61
61
  line-height: ${Theme_1.Theme.lineHeight.m};
@@ -69,3 +69,65 @@ const setLabelFontSize = (size) => {
69
69
  return exports.lableFontSize[size];
70
70
  };
71
71
  exports.setLabelFontSize = setLabelFontSize;
72
+ exports.iconSize = {
73
+ small: 18,
74
+ medium: 28,
75
+ large: 34,
76
+ };
77
+ const setIconSize = (size) => {
78
+ return exports.iconSize[size];
79
+ };
80
+ exports.setIconSize = setIconSize;
81
+ exports.panelTop = {
82
+ small: '26px',
83
+ medium: '36px',
84
+ large: '42px',
85
+ };
86
+ const setPanelTop = (size) => {
87
+ return exports.panelTop[size];
88
+ };
89
+ exports.setPanelTop = setPanelTop;
90
+ exports.panelPosition = {
91
+ left: `left:0px`,
92
+ right: 'right:0px'
93
+ };
94
+ const setPanelPosition = (position) => {
95
+ return exports.panelPosition[position];
96
+ };
97
+ exports.setPanelPosition = setPanelPosition;
98
+ exports.animationParams = {
99
+ small: {
100
+ width: '40px',
101
+ itemSize: '7px',
102
+ itemOne: '4px',
103
+ itemTwo: '4px',
104
+ itemThree: '16px',
105
+ itemFour: '28px',
106
+ move: '12px',
107
+ duration: '0.6s',
108
+ },
109
+ medium: {
110
+ width: '80px',
111
+ itemSize: '13px',
112
+ itemOne: '8px',
113
+ itemTwo: '8px',
114
+ itemThree: '32px',
115
+ itemFour: '56px',
116
+ move: '24px',
117
+ duration: '0.6s',
118
+ },
119
+ large: {
120
+ width: '160px',
121
+ itemSize: '26px',
122
+ itemOne: '16px',
123
+ itemTwo: '16px',
124
+ itemThree: '64px',
125
+ itemFour: '112px',
126
+ move: '48px',
127
+ duration: '0.6s',
128
+ }
129
+ };
130
+ const setAnimationParams = (size) => {
131
+ return exports.animationParams[size];
132
+ };
133
+ exports.setAnimationParams = setAnimationParams;
@@ -3,7 +3,7 @@ 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.ExampleTableHeader = exports.ExampleTableCell = exports.ExampleTableRow = exports.ExampleTable = exports.ExmpleBlockWrapper = exports.ExmpleBlock = exports.StoryWrapper = void 0;
6
+ exports.ExampleItem = exports.ExampleArea = exports.ExampleAreaTitle = exports.ExampleTableHeader = exports.ExampleTableCell = exports.ExampleTableRow = exports.ExampleTable = exports.ExmpleBlockWrapper = exports.ExmpleBlock = exports.StoryWrapper = void 0;
7
7
  const styled_components_1 = __importDefault(require("styled-components"));
8
8
  const Theme_1 = require("../Theme/Theme");
9
9
  exports.StoryWrapper = styled_components_1.default.div `
@@ -36,3 +36,20 @@ exports.ExampleTableHeader = styled_components_1.default.th `
36
36
  background-color:#dddddd;
37
37
  text-align: left;
38
38
  `;
39
+ exports.ExampleAreaTitle = styled_components_1.default.div `
40
+ display: flex;
41
+ font-size:20px;
42
+ margin-bottom:10px;
43
+ `;
44
+ exports.ExampleArea = styled_components_1.default.div `
45
+ display: flex;
46
+ margin-bottom:20px;
47
+ padding-bottom:20px;
48
+ border-bottom: 1px solid #cbcbcb;
49
+ align-items: flex-end;
50
+ gap:10px;
51
+ `;
52
+ exports.ExampleItem = styled_components_1.default.div `
53
+ display:flex;
54
+ max-width:300px;
55
+ `;
package/dist/cjs/index.js CHANGED
@@ -19,8 +19,10 @@ __exportStar(require("./components/Button"), exports);
19
19
  __exportStar(require("./components/Card"), exports);
20
20
  __exportStar(require("./components/Dropdown"), exports);
21
21
  __exportStar(require("./components/ElementHeader"), exports);
22
+ __exportStar(require("./components/File"), exports);
22
23
  __exportStar(require("./components/Icons"), exports);
23
- __exportStar(require("./components/InputText"), exports);
24
+ __exportStar(require("./components/Input"), exports);
25
+ __exportStar(require("./components/Loader"), exports);
24
26
  __exportStar(require("./components/Modal"), exports);
25
27
  __exportStar(require("./components/Section"), exports);
26
28
  __exportStar(require("./components/Sidepanel"), exports);
@@ -8,5 +8,6 @@ export const Aligment = styled.div `
8
8
  align-items: ${p => p.align ? p.align : 'center'};
9
9
  flex-wrap: ${p => p.wrap ? p.wrap : 'wrap'};
10
10
  padding: ${p => p.vPadding ? p.vPadding : '0'} ${p => p.hPadding ? p.hPadding : '0'};
11
- background-color: ${p => p.backgroundColor ? p.backgroundColor : 'transparent'}
11
+ background-color: ${p => p.backgroundColor ? p.backgroundColor : 'transparent'};
12
+ gap: ${p => p.gap ? p.gap + 'px' : '0px'};
12
13
  `;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
  import { ButtonElement } from './Button.styles';
3
- export const Button = ({ text, mode = 'primary', size = 'regular', right = false, left = false, onClick, }) => {
3
+ export const Button = ({ text, mode = 'primary', size = 'medium', right = false, left = false, onClick, }) => {
4
4
  return (React.createElement(ButtonElement, { mode: mode, size: size, right: right, left: left, onClick: onClick }, text));
5
5
  };
@@ -1,3 +1,4 @@
1
+ import { setSize } from '../common';
1
2
  import { lighten } from 'polished';
2
3
  import styled from 'styled-components';
3
4
  import { Theme } from '../../Theme/Theme';
@@ -13,40 +14,30 @@ export const ButtonElement = styled.button `
13
14
  align-items: center;
14
15
  justify-content: center;
15
16
  display: flex;
16
-
17
+ white-space: nowrap;
18
+ flex-shrink: 1;
17
19
 
18
20
  ${(p) => p.mode === 'primary' &&
19
21
  `background-color: ${Theme.colors.primary};
20
22
  color: ${Theme.colors.white};
21
23
  border: 1px solid rgba(0,0,0,0.15);`}
22
- ${(p) => p.mode === 'inverse' &&
24
+ ${(p) => p.mode === 'secondary' &&
23
25
  `background-color: ${Theme.colors.white};
24
26
  color: ${Theme.colors.primary};
25
27
  border: 1px solid ${Theme.colors.primary};
26
28
  `}
27
- ${(p) => p.mode === 'ghost' &&
29
+ ${(p) => p.mode === 'inverse' &&
28
30
  `background-color:transparent;
29
31
  color: ${Theme.colors.primary};
30
32
  border:none;`}
31
- ${(p) => p.size === 'regular' &&
32
- `font-size: ${Theme.fontSize.m};
33
- line-height: ${Theme.lineHeight.m};
34
- padding: ${Theme.padding.m} ${Theme.padding.l};`}
35
- ${(p) => p.size === 'small' &&
36
- `font-size: ${Theme.fontSize.s};
37
- line-height: ${Theme.lineHeight.s};
38
- padding: ${Theme.padding.s} ${Theme.padding.m};`}
39
- ${(p) => p.size === 'flat' &&
40
- `font-size: ${Theme.fontSize.m};
41
- line-height: ${Theme.lineHeight.m};
42
- padding: ${Theme.padding.s} ${Theme.padding.s};`}
33
+ ${(p) => setSize(p.size)}
43
34
  &:hover {
44
35
  transition: 300ms;
45
36
  ${(p) => p.mode === 'primary' &&
46
37
  `background-color: ${lighten(0.1, Theme.colors.primary)};`}
47
- ${(p) => p.mode === 'inverse' &&
38
+ ${(p) => p.mode === 'secondary' &&
48
39
  `background-color: ${lighten(0.4, Theme.colors.primary)}`};
49
- ${(p) => p.mode === 'ghost' && `background-color: ${lighten(0.3, Theme.colors.primary)};`}
40
+ ${(p) => p.mode === 'inverse' && `background-color: ${lighten(0.3, Theme.colors.primary)};`}
50
41
  }
51
42
 
52
43
  &.disable,
@@ -1,8 +1,9 @@
1
1
  import React, { useState, useEffect, useRef } from 'react';
2
2
  import { Aligment } from '../Aligment';
3
- import { DropdownElement, DropdownOption, DropdownOptions, } from './Dropdown.styles';
3
+ import { DropdownElement } from './Dropdown.styles';
4
4
  import { Field } from './DropdownElements';
5
- import { InputErrorMsg, InputLabelElement } from '../InputText';
5
+ import { InputErrorMsg, InputLabelElement } from '../Input';
6
+ import { Panel, PanelOption } from '../common';
6
7
  export const Dropdown = ({ size = 'medium', label, labelPosition = 'top', disabled = false, error, width, options, value, placeholder = 'Please select', name, handleSelect, }) => {
7
8
  const [open, toogleOpen] = useState(false);
8
9
  const ref = useRef(null);
@@ -34,7 +35,7 @@ export const Dropdown = ({ size = 'medium', label, labelPosition = 'top', disabl
34
35
  label && (React.createElement(InputLabelElement, { size: size, labelPosition: labelPosition }, label)),
35
36
  React.createElement(DropdownElement, { onClick: () => handleOpen() },
36
37
  React.createElement(Field, { inputSize: size, disabled: disabled, width: width, active: open, error: error }, value ? getLabelForValue(value) : placeholder),
37
- open && (React.createElement(DropdownOptions, { ref: ref }, options &&
38
- options.map((option) => (React.createElement(DropdownOption, { key: option.value, active: option.value === value, onClick: (e) => selectOption(e, option.value) }, option.label))))),
38
+ open && (React.createElement(Panel, { ref: ref, size: size, position: "left", fullWidth: true }, options &&
39
+ options.map((option) => (React.createElement(PanelOption, { key: option.value, active: option.value === value, onClick: (e) => selectOption(e, option.value) }, option.label))))),
39
40
  error && React.createElement(InputErrorMsg, null, error))));
40
41
  };
@@ -1,6 +1,4 @@
1
1
  import styled from "styled-components";
2
- import { Theme } from "../../Theme";
3
- import { lighten } from "polished";
4
2
  export const DropdownElement = styled.div `
5
3
  position: relative;
6
4
  cursor: pointer;
@@ -8,25 +6,3 @@ export const DropdownElement = styled.div `
8
6
  box-sizing:border-box;
9
7
  width:100%;
10
8
  `;
11
- export const DropdownOptions = styled.div `
12
- box-sizing:border-box;
13
- background-color:${Theme.colors.white};
14
- box-shadow:${Theme.shadow.m};
15
- padding: ${Theme.padding.m} 0 ;
16
- border-radius: ${Theme.borderRadius.m};
17
- height:${p => p.height ? p.height : 'auto'};
18
- width:100%;
19
- position:absolute;
20
- z-index:${Theme.zIndex.dropdown};
21
- top:36px;
22
- left:0px;
23
- `;
24
- export const DropdownOption = styled.div `
25
- padding: ${Theme.padding.s} ${Theme.padding.m};
26
- cursor: pointer;
27
- color: ${p => p.active ? Theme.colors.primary : Theme.colors.text};
28
- :hover{
29
- background-color: ${lighten(0.4, Theme.colors.primary)};
30
- }
31
-
32
- `;
@@ -3,6 +3,8 @@ import { defaultStyles, setSize, colorMode } from "../common";
3
3
  import { Theme } from "../../Theme";
4
4
  export const Field = styled.div `
5
5
  position: relative;
6
+ display:flex;
7
+ flex-shrink: 2;
6
8
  ${defaultStyles}
7
9
  ${(p) => setSize(p.inputSize)}
8
10
  color: ${Theme.colors.text};
@@ -22,7 +22,7 @@ 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: "ghost", text: actionLabel, onClick: () => handleClick() }),
25
+ React.createElement(Button, { mode: "inverse", text: actionLabel, onClick: () => handleClick() }),
26
26
  moreIcon && options && React.createElement(More, { options: options })));
27
27
  }
28
28
  };
@@ -0,0 +1,23 @@
1
+ import { Aligment } from '../Aligment';
2
+ import { InputLabelElement, InputWrapper, InputErrorMsg } from '../Input';
3
+ import React, { useRef } from 'react';
4
+ import { Button } from '../Button';
5
+ import { HiddenField } from './File.styles';
6
+ import { Field } from '../Dropdown';
7
+ export const File = ({ label, labelPosition = 'top', name, disabled = false, multiple = false, size = 'medium', handleChange, accept = 'application/pdf', width, error, placeholder, fileValue, }) => {
8
+ const fileRef = useRef(null);
9
+ const handleSelect = (e) => {
10
+ console.log(e);
11
+ };
12
+ const openFileSelector = () => {
13
+ fileRef.current.click();
14
+ };
15
+ return (React.createElement(Aligment, { align: labelPosition === 'top' ? 'flex-start' : 'center', direction: labelPosition === 'top' ? 'column' : 'row', wrap: 'nowrap' },
16
+ label && (React.createElement(InputLabelElement, { size: size, labelPosition: labelPosition }, label)),
17
+ React.createElement(InputWrapper, { width: width },
18
+ React.createElement(Aligment, { gap: 10, wrap: "nowrap" },
19
+ React.createElement(Field, { inputSize: size, disabled: disabled, width: width, active: false, error: error, onClick: openFileSelector }, fileValue ? fileValue.name : placeholder),
20
+ React.createElement(Button, { size: size, mode: "inverse", onClick: openFileSelector, text: "Wybierz plik" })),
21
+ React.createElement(HiddenField, { type: "file", name: name, onChange: (e) => handleSelect(e), ref: fileRef, accept: accept, multiple: multiple }),
22
+ error && React.createElement(InputErrorMsg, null, error))));
23
+ };
@@ -0,0 +1,4 @@
1
+ import styled from "styled-components";
2
+ export const HiddenField = styled.input `
3
+ display:none;
4
+ `;
@@ -0,0 +1 @@
1
+ export * from './File';
@@ -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, }) => {
6
- return (React.createElement(IconElement, { onClick: onClick, bgColor: bgColor },
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 },
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
  };
@@ -19,4 +19,7 @@ export const IconElement = styled.div `
19
19
  cursor:pointer;
20
20
  }
21
21
  `}
22
+ ${p => p.active && `
23
+ background-color: ${p.bgColor ? `rgba(255,255,255,0.2)` : lighten(0.3, Theme.colors.primary)};
24
+ `}
22
25
  `;
@@ -1,13 +1,13 @@
1
1
  import { Aligment } from '../Aligment';
2
2
  import React from 'react';
3
- import { InputTextElement, InputLabelElement, InputErrorMsg, InputWrapper, } from './InputText.styles';
4
- export const InputText = ({ label, labelPosition = 'top', value, type = 'text', name, disabled = false, size = 'medium', handleChange, width, error, placeholder, }) => {
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 }) => {
5
5
  const onChange = (e) => {
6
6
  handleChange(name, e.target.value);
7
7
  };
8
8
  return (React.createElement(Aligment, { align: labelPosition === 'top' ? 'flex-start' : 'center', direction: labelPosition === 'top' ? 'column' : 'row', wrap: 'nowrap' },
9
9
  label && (React.createElement(InputLabelElement, { size: size, labelPosition: labelPosition }, label)),
10
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 }),
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
12
  error && React.createElement(InputErrorMsg, null, error))));
13
13
  };
@@ -0,0 +1,2 @@
1
+ export * from "./Input";
2
+ export * from './Input.styles';
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { Theme } from '../../Theme';
3
+ import { Aligment } from '../Aligment';
4
+ import { LoaderElement, LoaderItem } from './Loader.styles';
5
+ export const Loader = ({ color = Theme.colors.primary, size = 'medium', }) => {
6
+ return (React.createElement(Aligment, { justify: 'center', align: 'center' },
7
+ React.createElement(LoaderElement, { size: size },
8
+ React.createElement(LoaderItem, { color: color, size: size }),
9
+ React.createElement(LoaderItem, { color: color, size: size }),
10
+ React.createElement(LoaderItem, { color: color, size: size }),
11
+ React.createElement(LoaderItem, { color: color, size: size }))));
12
+ };
@@ -0,0 +1,54 @@
1
+ import { setAnimationParams } from '../common';
2
+ import styled, { keyframes } from 'styled-components';
3
+ export const Action1 = keyframes `
4
+ 0% {transform: scale(0);}
5
+ 100% {transform: scale(1);}
6
+ `;
7
+ export const Action2 = (move) => keyframes `
8
+ 0% {transform: translate(0, 0);}
9
+ 100% {transform: translate(${move}, 0);}
10
+ `;
11
+ export const Action3 = keyframes `
12
+ 0% {transform: scale(1);}
13
+ 100% {transform: scale(0);}
14
+ `;
15
+ export const LoaderElement = styled.div `
16
+ display: inline-block;
17
+ position: relative;
18
+ width: ${p => setAnimationParams(p.size).width};
19
+ height: ${p => setAnimationParams(p.size).itemSize};
20
+
21
+ `;
22
+ export const LoaderItem = styled.div `
23
+ position: absolute;
24
+ top: 0px;
25
+ width: ${p => setAnimationParams(p.size).itemSize};
26
+ height: ${p => setAnimationParams(p.size).itemSize};
27
+ border-radius: 50%;
28
+ background-color: ${(p) => p.color};
29
+ animation-timing-function: ease-in-out;
30
+ :nth-child(1) {
31
+ left: ${p => setAnimationParams(p.size).itemOne};
32
+ animation-name: ${Action1};
33
+ animation-duration: ${p => setAnimationParams(p.size).duration};
34
+ animation-iteration-count: infinite;
35
+ }
36
+ :nth-child(2) {
37
+ left: ${p => setAnimationParams(p.size).itemTwo};
38
+ animation-name: ${p => Action2(setAnimationParams(p.size).move)};
39
+ animation-duration: ${p => setAnimationParams(p.size).duration};
40
+ animation-iteration-count: infinite;
41
+ }
42
+ :nth-child(3) {
43
+ left: ${p => setAnimationParams(p.size).itemThree};
44
+ animation-name: ${p => Action2(setAnimationParams(p.size).move)};
45
+ animation-duration: ${p => setAnimationParams(p.size).duration};
46
+ animation-iteration-count: infinite;
47
+ }
48
+ :nth-child(4) {
49
+ left: ${p => setAnimationParams(p.size).itemFour};
50
+ animation-name: ${Action3};
51
+ animation-duration: ${p => setAnimationParams(p.size).duration};
52
+ animation-iteration-count: infinite;
53
+ }
54
+ `;
@@ -0,0 +1 @@
1
+ export * from './Loader';
@@ -14,6 +14,6 @@ export const Modal = ({ children, title, handleConfirm, handleClose, labelConfir
14
14
  React.createElement(ElementHeader, { title: title, handleClose: handleClose }),
15
15
  React.createElement(ScrollCotainer, null, children),
16
16
  React.createElement(Aligment, { justify: 'flex-end', vPadding: Theme.padding.l, hPadding: Theme.padding.l },
17
- React.createElement(Button, { mode: isMultiButtons() ? 'inverse' : 'primary', onClick: () => handleClose(), text: labelClose, left: isMultiButtons() }),
17
+ React.createElement(Button, { mode: isMultiButtons() ? 'secondary' : 'primary', onClick: () => handleClose(), text: labelClose, left: isMultiButtons() }),
18
18
  handleConfirm && labelConfirm && (React.createElement(Button, { onClick: handleConfirm, text: labelConfirm }))))));
19
19
  };
@@ -1,7 +1,8 @@
1
+ import { Panel, PanelOption, setIconSize } from '../common';
1
2
  import React, { useState, useRef, useEffect } from 'react';
2
3
  import { Theme } from '../../Theme';
3
4
  import { Icon } from '../Icons';
4
- import { MoreElement, MoreOptions, MoreOption } from './More.styles';
5
+ import { MoreElement } from './More.styles';
5
6
  export const More = ({ options, size = 'medium', iconName = 'more_vert', }) => {
6
7
  const [open, toogleOpen] = useState(false);
7
8
  const ref = useRef(null);
@@ -17,7 +18,7 @@ export const More = ({ options, size = 'medium', iconName = 'more_vert', }) => {
17
18
  };
18
19
  }, [open]);
19
20
  return (React.createElement(MoreElement, null,
20
- React.createElement(Icon, { name: iconName, onClick: () => toogleOpen(!open), color: Theme.colors.primary }),
21
- open && (React.createElement(MoreOptions, { ref: ref }, options &&
22
- options.map((option) => (React.createElement(MoreOption, { key: option.label, onClick: option.action }, option.label)))))));
21
+ React.createElement(Icon, { name: iconName, onClick: () => toogleOpen(!open), color: Theme.colors.primary, size: setIconSize(size), active: open }),
22
+ open && (React.createElement(Panel, { ref: ref, size: size, position: "right" }, options &&
23
+ options.map((option) => (React.createElement(PanelOption, { key: option.label, onClick: option.action, active: true }, option.label)))))));
23
24
  };
@@ -1,30 +1,7 @@
1
- import { lighten } from "polished";
2
1
  import styled from "styled-components";
3
- import { Theme } from "../../Theme";
4
2
  export const MoreElement = styled.div `
5
3
  position:relative;
6
4
  width:auto;
7
5
  display: flex;
8
6
  box-sizing: border-box;
9
7
  `;
10
- export const MoreOptions = styled.div `
11
- box-sizing:border-box;
12
- background-color:${Theme.colors.white};
13
- box-shadow:${Theme.shadow.m};
14
- padding: ${Theme.padding.m} 0;
15
- border-radius: ${Theme.borderRadius.m};
16
- width:auto;
17
- position:absolute;
18
- z-index:${Theme.zIndex.dropdown};
19
- top:32px;
20
- left:0px;
21
- `;
22
- export const MoreOption = styled.div `
23
- padding: ${Theme.padding.s} ${Theme.padding.m};
24
- cursor: pointer;
25
- color: ${Theme.colors.primary};
26
- :hover{
27
- background-color: ${lighten(0.4, Theme.colors.primary)};
28
- }
29
-
30
- `;
@@ -1,10 +1,10 @@
1
1
  import { Aligment } from '../Aligment';
2
2
  import React, { useState } from 'react';
3
- import { InputErrorMsg, InputLabelElement } from '../InputText';
3
+ import { InputErrorMsg, InputLabelElement } from '../Input';
4
4
  import { Icon } from '../Icons';
5
5
  import { SelectorElement, SelectorValue } from './Selector.styles';
6
6
  import { Modal } from '../Modal';
7
- import { DropdownOption } from '../Dropdown/Dropdown.styles';
7
+ import { PanelOption, setIconSize } from '../common';
8
8
  export const Selector = ({ label, labelPosition = 'top', size = 'medium', width, options, value, name, error, handleSelect, handleClear, iconName = 'add_circle', }) => {
9
9
  const [open, toogleOpen] = useState(false);
10
10
  const selectOption = (selectedValue) => {
@@ -19,8 +19,8 @@ export const Selector = ({ label, labelPosition = 'top', size = 'medium', width,
19
19
  React.createElement(SelectorElement, null,
20
20
  value ? (React.createElement(React.Fragment, null,
21
21
  React.createElement(SelectorValue, { onClick: () => toogleOpen(true), size: size }, getLabelForValue(value)),
22
- React.createElement(Icon, { name: 'close', onClick: () => handleClear(), size: 20 }))) : (React.createElement(Icon, { name: iconName, onClick: () => toogleOpen(true), size: 20 })),
22
+ React.createElement(Icon, { name: 'close', onClick: () => handleClear(), size: setIconSize(size) }))) : (React.createElement(Icon, { name: iconName, onClick: () => toogleOpen(true), size: setIconSize(size) })),
23
23
  open && (React.createElement(Modal, { title: "Select", labelClose: "Close", handleClose: () => toogleOpen(false) }, options &&
24
- options.map((option) => (React.createElement(DropdownOption, { key: option.value, active: option.value === value, onClick: () => selectOption(option.value) }, option.label))))),
24
+ options.map((option) => (React.createElement(PanelOption, { key: option.value, active: option.value === value, onClick: () => selectOption(option.value) }, option.label))))),
25
25
  error && React.createElement(InputErrorMsg, null, error))));
26
26
  };
@@ -1,21 +1,20 @@
1
1
  import styled from "styled-components";
2
2
  import { Theme } from "../../Theme";
3
- import { setLabelFontSize } from '../common';
4
3
  import { lighten } from "polished";
4
+ import { defaultStyles, setSize } from "../common";
5
5
  export const SelectorElement = styled.div `
6
6
  position: relative;
7
7
  cursor: pointer;
8
8
  display:flex;
9
9
  box-sizing:border-box;
10
+ align-items: center;
10
11
  `;
11
12
  export const SelectorValue = styled.div `
13
+ ${defaultStyles}
12
14
  cursor: pointer;
13
15
  display:flex;
14
- box-sizing:border-box;
15
- width:100%;
16
16
  align-items: center;
17
- padding: ${Theme.padding.s};
18
- ${(p) => setLabelFontSize(p.size)}
17
+ ${(p) => setSize(p.size)}
19
18
  color:${Theme.colors.primary};
20
19
  &:hover{
21
20
  background-color: ${lighten(0.3, Theme.colors.primary)};
@@ -1,5 +1,7 @@
1
+ import { lighten } from 'polished';
1
2
  import styled from 'styled-components';
2
3
  import { Theme } from '../../Theme/Theme';
4
+ import { setPanelPosition, setPanelTop } from './inputStyles';
3
5
  export const Container = styled.div `
4
6
  width: 100%;
5
7
  `;
@@ -9,3 +11,28 @@ export const ScrollCotainer = styled.div `
9
11
  overflow: auto;
10
12
  box-sizing: border-box;
11
13
  `;
14
+ export const Panel = styled.div `
15
+ box-sizing: border-box;
16
+ background-color: ${Theme.colors.white};
17
+ box-shadow: ${Theme.shadow.m};
18
+ padding: ${Theme.padding.m} 0;
19
+ border-radius: ${Theme.borderRadius.m};
20
+ height: ${(p) => (p.height ? p.height : 'auto')};
21
+ width: ${p => p.fullWidth ? '100%' : 'auto'};
22
+ position: absolute;
23
+ z-index: ${Theme.zIndex.dropdown};
24
+ top: ${(p) => setPanelTop(p.size)};
25
+ border: 1px solid ${Theme.colors.gray_1};
26
+ border-top: none;
27
+ ${p => setPanelPosition(p.position)}
28
+ `;
29
+ export const PanelOption = styled.div `
30
+ padding: ${Theme.padding.s} ${Theme.padding.m};
31
+ cursor: pointer;
32
+ white-space: nowrap;
33
+ color: ${(p) => (p.active ? Theme.colors.primary : Theme.colors.text)};
34
+
35
+ :hover {
36
+ background-color: ${lighten(0.4, Theme.colors.primary)};
37
+ }
38
+ `;