venice-ui 1.0.35 → 1.0.37

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 (38) hide show
  1. package/dist/cjs/Theme/Theme.js +1 -0
  2. package/dist/cjs/components/DropdownMenu/DropdownMenu.js +70 -0
  3. package/dist/cjs/components/DropdownMenu/DropdownMenu.styles.js +38 -0
  4. package/dist/cjs/components/{More → DropdownMenu}/index.js +1 -1
  5. package/dist/cjs/components/ElementHeader/ElementHeader.js +2 -2
  6. package/dist/cjs/components/Icons/Icon.styles.js +1 -1
  7. package/dist/cjs/components/Icons/IconsPath.js +1 -0
  8. package/dist/cjs/components/Typography/Typography.styles.js +16 -1
  9. package/dist/cjs/components/Typography/index.js +15 -6
  10. package/dist/cjs/index.js +2 -1
  11. package/dist/esm/Theme/Theme.js +1 -0
  12. package/dist/esm/components/DropdownMenu/DropdownMenu.js +43 -0
  13. package/dist/esm/components/DropdownMenu/DropdownMenu.styles.js +32 -0
  14. package/dist/esm/components/DropdownMenu/index.js +1 -0
  15. package/dist/esm/components/ElementHeader/ElementHeader.js +2 -2
  16. package/dist/esm/components/Icons/Icon.styles.js +1 -1
  17. package/dist/esm/components/Icons/IconsPath.js +1 -0
  18. package/dist/esm/components/Typography/Typography.styles.js +15 -0
  19. package/dist/esm/components/Typography/index.js +1 -1
  20. package/dist/esm/index.js +2 -1
  21. package/dist/types/Theme/Theme.d.ts +1 -0
  22. package/dist/types/components/DropdownMenu/DropdownMenu.d.ts +17 -0
  23. package/dist/types/components/DropdownMenu/DropdownMenu.styles.d.ts +9 -0
  24. package/dist/types/components/DropdownMenu/index.d.ts +1 -0
  25. package/dist/types/components/Icons/IconsPath.d.ts +1 -0
  26. package/dist/types/components/Input/Input.styles.d.ts +1 -1
  27. package/dist/types/components/Typography/Typography.styles.d.ts +10 -4
  28. package/dist/types/components/Typography/index.d.ts +1 -1
  29. package/dist/types/index.d.ts +2 -1
  30. package/package.json +1 -1
  31. package/dist/cjs/components/More/More.js +0 -51
  32. package/dist/cjs/components/More/More.styles.js +0 -13
  33. package/dist/esm/components/More/More.js +0 -24
  34. package/dist/esm/components/More/More.styles.js +0 -7
  35. package/dist/esm/components/More/index.js +0 -1
  36. package/dist/types/components/More/More.d.ts +0 -9
  37. package/dist/types/components/More/More.styles.d.ts +0 -1
  38. package/dist/types/components/More/index.d.ts +0 -1
@@ -10,6 +10,7 @@ exports.Theme = {
10
10
  white: "#ffffff",
11
11
  black: "#333333",
12
12
  gray_1: "#b7b7b7",
13
+ gray_2: "#e3e3e3",
13
14
  overlayer: 'rgba(0,0,0,0.4)',
14
15
  red: '#ad1616'
15
16
  },
@@ -0,0 +1,70 @@
1
+ "use strict";
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;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.DropdownMenu = void 0;
27
+ const common_1 = require("../common");
28
+ const react_1 = __importStar(require("react"));
29
+ const Theme_1 = require("../../Theme");
30
+ const Icons_1 = require("../Icons");
31
+ const DropdownMenu_styles_1 = require("./DropdownMenu.styles");
32
+ const Aligment_1 = require("../Aligment");
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, }) => {
35
+ const [open, toogleOpen] = (0, react_1.useState)(false);
36
+ const ref = (0, react_1.useRef)(null);
37
+ const close = () => {
38
+ toogleOpen(false);
39
+ };
40
+ const handleFooterAction = () => {
41
+ footerAction && footerAction();
42
+ close();
43
+ };
44
+ const handleClick = (action) => {
45
+ action();
46
+ close();
47
+ };
48
+ (0, react_1.useEffect)(() => {
49
+ const handleClickOutside = (event) => {
50
+ if (ref.current && !ref.current.contains(event.target)) {
51
+ close();
52
+ }
53
+ };
54
+ document.addEventListener('click', handleClickOutside, true);
55
+ return () => {
56
+ document.removeEventListener('click', handleClickOutside, true);
57
+ };
58
+ }, [open]);
59
+ return (react_1.default.createElement(DropdownMenu_styles_1.SubMenuElement, 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 }),
61
+ open && (react_1.default.createElement(common_1.Panel, { ref: ref, size: size, position: "right" },
62
+ react_1.default.createElement(Aligment_1.Aligment, { hPadding: Theme_1.Theme.padding.m, direction: "column" },
63
+ header && (react_1.default.createElement(DropdownMenu_styles_1.UserMenuHeader, null,
64
+ headerTitle && react_1.default.createElement(Typography_1.TextAccent, null, headerTitle),
65
+ headerSubtitle && react_1.default.createElement(Typography_1.TextLabel, null, headerSubtitle))),
66
+ react_1.default.createElement(DropdownMenu_styles_1.UserMenuContent, null, options &&
67
+ options.map((option) => (react_1.default.createElement(DropdownMenu_styles_1.PanelOption, { key: option.label, onClick: () => handleClick(option.action) }, option.label)))),
68
+ footer && (react_1.default.createElement(DropdownMenu_styles_1.UserMenuFooter, null, footerText && (react_1.default.createElement(Typography_1.Text, { action: true, onClick: handleFooterAction }, footerText)))))))));
69
+ };
70
+ exports.DropdownMenu = DropdownMenu;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PanelOption = exports.UserMenuContent = exports.UserMenuFooter = exports.UserMenuHeader = exports.SubMenuElement = void 0;
7
+ const polished_1 = require("polished");
8
+ const styled_components_1 = __importDefault(require("styled-components"));
9
+ const Theme_1 = require("../../Theme");
10
+ exports.SubMenuElement = styled_components_1.default.div `
11
+ position:relative;
12
+ width:auto;
13
+ display: flex;
14
+ box-sizing: border-box;
15
+ `;
16
+ exports.UserMenuHeader = styled_components_1.default.div `
17
+ border-bottom: 1px solid ${Theme_1.Theme.colors.gray_2};
18
+ padding-bottom: ${Theme_1.Theme.padding.m};
19
+ width:100%;
20
+ `;
21
+ exports.UserMenuFooter = styled_components_1.default.div `
22
+ border-top: 1px solid ${Theme_1.Theme.colors.gray_2};
23
+ padding-top: ${Theme_1.Theme.padding.m};
24
+ width:100%;
25
+ `;
26
+ exports.UserMenuContent = styled_components_1.default.div `
27
+ width:100%;
28
+ `;
29
+ exports.PanelOption = styled_components_1.default.div `
30
+ padding: ${Theme_1.Theme.padding.s} 0;
31
+ cursor: pointer;
32
+ white-space: nowrap;
33
+ color: ${Theme_1.Theme.colors.text};
34
+
35
+ :hover {
36
+ background-color: ${(0, polished_1.lighten)(0.4, Theme_1.Theme.colors.primary)};
37
+ }
38
+ `;
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./More"), exports);
17
+ __exportStar(require("./DropdownMenu"), exports);
@@ -10,7 +10,7 @@ const Aligment_1 = require("../Aligment");
10
10
  const Typography_1 = require("../Typography");
11
11
  const Theme_1 = require("../../Theme");
12
12
  const Button_1 = require("../Button");
13
- const More_1 = require("../More");
13
+ const DropdownMenu_1 = require("../DropdownMenu");
14
14
  const ElementHeader = ({ title, showTitle = true, moreIcon = false, backIcon = false, closeIcon = true, actionButton = false, actionLabel = '', handleClose, handleClick, handleBack, children, bgColor = Theme_1.Theme.colors.white, options, }) => {
15
15
  const leftSide = () => {
16
16
  if (showTitle) {
@@ -29,7 +29,7 @@ const ElementHeader = ({ title, showTitle = true, moreIcon = false, backIcon = f
29
29
  else if (!closeIcon && actionButton && handleClick) {
30
30
  return (react_1.default.createElement(Aligment_1.Aligment, { align: "flex-end", width: "auto" },
31
31
  react_1.default.createElement(Button_1.Button, { mode: "inverse", text: actionLabel, onClick: () => handleClick() }),
32
- moreIcon && options && react_1.default.createElement(More_1.More, { options: options })));
32
+ moreIcon && options && react_1.default.createElement(DropdownMenu_1.DropdownMenu, { options: options })));
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 },
@@ -12,7 +12,7 @@ exports.IconElement = styled_components_1.default.div `
12
12
  box-sizing: border-box;
13
13
  width:auto;
14
14
  display:inline-flex;
15
- border-radius: ${Theme_1.Theme.borderRadius.s};
15
+ border-radius: 50%;
16
16
  ${p => p.onClick !== undefined &&
17
17
  `
18
18
  padding: ${Theme_1.Theme.padding.s};
@@ -22,4 +22,5 @@ exports.iconsPath = {
22
22
  download: "M6 20q-.825 0-1.412-.587Q4 18.825 4 18v-3h2v3h12v-3h2v3q0 .825-.587 1.413Q18.825 20 18 20Zm6-4-5-5 1.4-1.45 2.6 2.6V4h2v8.15l2.6-2.6L17 11Z",
23
23
  delete: "M7 21q-.825 0-1.412-.587Q5 19.825 5 19V6H4V4h5V3h6v1h5v2h-1v13q0 .825-.587 1.413Q17.825 21 17 21ZM17 6H7v13h10ZM9 17h2V8H9Zm4 0h2V8h-2ZM7 6v13Z",
24
24
  close: "M6.4 19 5 17.6l5.6-5.6L5 6.4 6.4 5l5.6 5.6L17.6 5 19 6.4 13.4 12l5.6 5.6-1.4 1.4-5.6-5.6Z",
25
+ 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"
25
26
  };
@@ -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.TextLabel = exports.TextSubHeader = exports.TextHeader = exports.TextSmall = exports.Text = void 0;
6
+ exports.TextLabel = exports.TextAccent = exports.TextSubHeader = exports.TextHeader = exports.TextSmall = exports.Text = 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/Theme");
@@ -11,21 +11,36 @@ exports.Text = styled_components_1.default.div `
11
11
  font-size: ${Theme_1.Theme.fontSize.m};
12
12
  line-height: ${Theme_1.Theme.lineHeight.m};
13
13
  font-weight: normal;
14
+ color: ${(p) => (p.color ? p.color : Theme_1.Theme.colors.text)};
15
+ cursor: ${(p) => (p.action ? 'pointer' : 'default')};
14
16
  `;
15
17
  exports.TextSmall = styled_components_1.default.div `
16
18
  font-size: ${Theme_1.Theme.fontSize.s};
17
19
  line-height: ${Theme_1.Theme.lineHeight.s};
18
20
  font-weight: normal;
21
+ color: ${(p) => (p.color ? p.color : Theme_1.Theme.colors.text)};
22
+ cursor: ${(p) => (p.action ? 'pointer' : 'default')};
19
23
  `;
20
24
  exports.TextHeader = styled_components_1.default.div `
21
25
  font-size: ${Theme_1.Theme.fontSize.l};
22
26
  line-height: ${Theme_1.Theme.lineHeight.l};
23
27
  font-weight: 300;
28
+ color: ${(p) => (p.color ? p.color : Theme_1.Theme.colors.text)};
29
+ cursor: ${(p) => (p.action ? 'pointer' : 'default')};
24
30
  `;
25
31
  exports.TextSubHeader = styled_components_1.default.div `
26
32
  font-size: ${Theme_1.Theme.fontSize.m};
27
33
  line-height: ${Theme_1.Theme.lineHeight.m};
28
34
  font-weight: 300;
35
+ color: ${(p) => (p.color ? p.color : Theme_1.Theme.colors.text)};
36
+ cursor: ${(p) => (p.action ? 'pointer' : 'default')};
37
+ `;
38
+ exports.TextAccent = styled_components_1.default.div `
39
+ font-size: ${Theme_1.Theme.fontSize.xs};
40
+ line-height: ${Theme_1.Theme.lineHeight.xs};
41
+ text-transform:uppercase;
42
+ color: ${(p) => (p.color ? p.color : Theme_1.Theme.colors.text)};
43
+ cursor:${(p) => (p.action ? 'pointer' : 'default')};
29
44
  `;
30
45
  exports.TextLabel = styled_components_1.default.div `
31
46
  font-weight: ${(p) => (p.labelPosition === 'left' ? 'normal' : 'bold')};
@@ -1,8 +1,17 @@
1
1
  "use strict";
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TextLabel = exports.TextSubHeader = exports.TextHeader = exports.Text = void 0;
4
- var Typography_styles_1 = require("./Typography.styles");
5
- Object.defineProperty(exports, "Text", { enumerable: true, get: function () { return Typography_styles_1.Text; } });
6
- Object.defineProperty(exports, "TextHeader", { enumerable: true, get: function () { return Typography_styles_1.TextHeader; } });
7
- Object.defineProperty(exports, "TextSubHeader", { enumerable: true, get: function () { return Typography_styles_1.TextSubHeader; } });
8
- Object.defineProperty(exports, "TextLabel", { enumerable: true, get: function () { return Typography_styles_1.TextLabel; } });
17
+ __exportStar(require("./Typography.styles"), exports);
package/dist/cjs/index.js CHANGED
@@ -18,13 +18,14 @@ __exportStar(require("./components/Aligment"), exports);
18
18
  __exportStar(require("./components/Button"), exports);
19
19
  __exportStar(require("./components/Card"), exports);
20
20
  __exportStar(require("./components/Dropdown"), exports);
21
+ __exportStar(require("./components/DropdownMenu"), exports);
21
22
  __exportStar(require("./components/ElementHeader"), exports);
23
+ __exportStar(require("./components/DropdownMenu"), exports);
22
24
  __exportStar(require("./components/File"), exports);
23
25
  __exportStar(require("./components/Icons"), exports);
24
26
  __exportStar(require("./components/Input"), exports);
25
27
  __exportStar(require("./components/Loader"), exports);
26
28
  __exportStar(require("./components/Modal"), exports);
27
- __exportStar(require("./components/More"), exports);
28
29
  __exportStar(require("./components/Section"), exports);
29
30
  __exportStar(require("./components/Selector"), exports);
30
31
  __exportStar(require("./components/Sidepanel"), exports);
@@ -7,6 +7,7 @@ export const Theme = {
7
7
  white: "#ffffff",
8
8
  black: "#333333",
9
9
  gray_1: "#b7b7b7",
10
+ gray_2: "#e3e3e3",
10
11
  overlayer: 'rgba(0,0,0,0.4)',
11
12
  red: '#ad1616'
12
13
  },
@@ -0,0 +1,43 @@
1
+ import { Panel, setIconSize } from '../common';
2
+ import React, { useState, useRef, useEffect } from 'react';
3
+ import { Theme } from '../../Theme';
4
+ import { Icon } from '../Icons';
5
+ import { PanelOption, SubMenuElement, UserMenuContent, UserMenuFooter, UserMenuHeader, } from './DropdownMenu.styles';
6
+ import { Aligment } from '../Aligment';
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, }) => {
9
+ const [open, toogleOpen] = useState(false);
10
+ const ref = useRef(null);
11
+ const close = () => {
12
+ toogleOpen(false);
13
+ };
14
+ const handleFooterAction = () => {
15
+ footerAction && footerAction();
16
+ close();
17
+ };
18
+ const handleClick = (action) => {
19
+ action();
20
+ close();
21
+ };
22
+ useEffect(() => {
23
+ const handleClickOutside = (event) => {
24
+ if (ref.current && !ref.current.contains(event.target)) {
25
+ close();
26
+ }
27
+ };
28
+ document.addEventListener('click', handleClickOutside, true);
29
+ return () => {
30
+ document.removeEventListener('click', handleClickOutside, true);
31
+ };
32
+ }, [open]);
33
+ return (React.createElement(SubMenuElement, null,
34
+ React.createElement(Icon, { name: iconName, onClick: () => toogleOpen(!open), color: color, bgColor: iconBackgroundColor, size: setIconSize(size), active: open }),
35
+ open && (React.createElement(Panel, { ref: ref, size: size, position: "right" },
36
+ React.createElement(Aligment, { hPadding: Theme.padding.m, direction: "column" },
37
+ header && (React.createElement(UserMenuHeader, null,
38
+ headerTitle && React.createElement(TextAccent, null, headerTitle),
39
+ headerSubtitle && React.createElement(TextLabel, null, headerSubtitle))),
40
+ React.createElement(UserMenuContent, null, options &&
41
+ options.map((option) => (React.createElement(PanelOption, { key: option.label, onClick: () => handleClick(option.action) }, option.label)))),
42
+ footer && (React.createElement(UserMenuFooter, null, footerText && (React.createElement(Text, { action: true, onClick: handleFooterAction }, footerText)))))))));
43
+ };
@@ -0,0 +1,32 @@
1
+ import { lighten } from "polished";
2
+ import styled from "styled-components";
3
+ import { Theme } from "../../Theme";
4
+ export const SubMenuElement = styled.div `
5
+ position:relative;
6
+ width:auto;
7
+ display: flex;
8
+ box-sizing: border-box;
9
+ `;
10
+ export const UserMenuHeader = styled.div `
11
+ border-bottom: 1px solid ${Theme.colors.gray_2};
12
+ padding-bottom: ${Theme.padding.m};
13
+ width:100%;
14
+ `;
15
+ export const UserMenuFooter = styled.div `
16
+ border-top: 1px solid ${Theme.colors.gray_2};
17
+ padding-top: ${Theme.padding.m};
18
+ width:100%;
19
+ `;
20
+ export const UserMenuContent = styled.div `
21
+ width:100%;
22
+ `;
23
+ export const PanelOption = styled.div `
24
+ padding: ${Theme.padding.s} 0;
25
+ cursor: pointer;
26
+ white-space: nowrap;
27
+ color: ${Theme.colors.text};
28
+
29
+ :hover {
30
+ background-color: ${lighten(0.4, Theme.colors.primary)};
31
+ }
32
+ `;
@@ -0,0 +1 @@
1
+ export * from './DropdownMenu';
@@ -4,7 +4,7 @@ import { Aligment } from '../Aligment';
4
4
  import { TextHeader } from '../Typography';
5
5
  import { Theme } from '../../Theme';
6
6
  import { Button } from '../Button';
7
- import { More } from '../More';
7
+ import { DropdownMenu } from '../DropdownMenu';
8
8
  export const ElementHeader = ({ title, showTitle = true, moreIcon = false, backIcon = false, closeIcon = true, actionButton = false, actionLabel = '', handleClose, handleClick, handleBack, children, bgColor = Theme.colors.white, options, }) => {
9
9
  const leftSide = () => {
10
10
  if (showTitle) {
@@ -23,7 +23,7 @@ export const ElementHeader = ({ title, showTitle = true, moreIcon = false, backI
23
23
  else if (!closeIcon && actionButton && handleClick) {
24
24
  return (React.createElement(Aligment, { align: "flex-end", width: "auto" },
25
25
  React.createElement(Button, { mode: "inverse", text: actionLabel, onClick: () => handleClick() }),
26
- moreIcon && options && React.createElement(More, { options: options })));
26
+ moreIcon && options && React.createElement(DropdownMenu, { options: options })));
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 },
@@ -6,7 +6,7 @@ export const IconElement = styled.div `
6
6
  box-sizing: border-box;
7
7
  width:auto;
8
8
  display:inline-flex;
9
- border-radius: ${Theme.borderRadius.s};
9
+ border-radius: 50%;
10
10
  ${p => p.onClick !== undefined &&
11
11
  `
12
12
  padding: ${Theme.padding.s};
@@ -19,4 +19,5 @@ export const iconsPath = {
19
19
  download: "M6 20q-.825 0-1.412-.587Q4 18.825 4 18v-3h2v3h12v-3h2v3q0 .825-.587 1.413Q18.825 20 18 20Zm6-4-5-5 1.4-1.45 2.6 2.6V4h2v8.15l2.6-2.6L17 11Z",
20
20
  delete: "M7 21q-.825 0-1.412-.587Q5 19.825 5 19V6H4V4h5V3h6v1h5v2h-1v13q0 .825-.587 1.413Q17.825 21 17 21ZM17 6H7v13h10ZM9 17h2V8H9Zm4 0h2V8h-2ZM7 6v13Z",
21
21
  close: "M6.4 19 5 17.6l5.6-5.6L5 6.4 6.4 5l5.6 5.6L17.6 5 19 6.4 13.4 12l5.6 5.6-1.4 1.4-5.6-5.6Z",
22
+ 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"
22
23
  };
@@ -5,21 +5,36 @@ export const Text = styled.div `
5
5
  font-size: ${Theme.fontSize.m};
6
6
  line-height: ${Theme.lineHeight.m};
7
7
  font-weight: normal;
8
+ color: ${(p) => (p.color ? p.color : Theme.colors.text)};
9
+ cursor: ${(p) => (p.action ? 'pointer' : 'default')};
8
10
  `;
9
11
  export const TextSmall = styled.div `
10
12
  font-size: ${Theme.fontSize.s};
11
13
  line-height: ${Theme.lineHeight.s};
12
14
  font-weight: normal;
15
+ color: ${(p) => (p.color ? p.color : Theme.colors.text)};
16
+ cursor: ${(p) => (p.action ? 'pointer' : 'default')};
13
17
  `;
14
18
  export const TextHeader = styled.div `
15
19
  font-size: ${Theme.fontSize.l};
16
20
  line-height: ${Theme.lineHeight.l};
17
21
  font-weight: 300;
22
+ color: ${(p) => (p.color ? p.color : Theme.colors.text)};
23
+ cursor: ${(p) => (p.action ? 'pointer' : 'default')};
18
24
  `;
19
25
  export const TextSubHeader = styled.div `
20
26
  font-size: ${Theme.fontSize.m};
21
27
  line-height: ${Theme.lineHeight.m};
22
28
  font-weight: 300;
29
+ color: ${(p) => (p.color ? p.color : Theme.colors.text)};
30
+ cursor: ${(p) => (p.action ? 'pointer' : 'default')};
31
+ `;
32
+ export const TextAccent = styled.div `
33
+ font-size: ${Theme.fontSize.xs};
34
+ line-height: ${Theme.lineHeight.xs};
35
+ text-transform:uppercase;
36
+ color: ${(p) => (p.color ? p.color : Theme.colors.text)};
37
+ cursor:${(p) => (p.action ? 'pointer' : 'default')};
23
38
  `;
24
39
  export const TextLabel = styled.div `
25
40
  font-weight: ${(p) => (p.labelPosition === 'left' ? 'normal' : 'bold')};
@@ -1 +1 @@
1
- export { Text, TextHeader, TextSubHeader, TextLabel } from './Typography.styles';
1
+ export * from './Typography.styles';
package/dist/esm/index.js CHANGED
@@ -2,13 +2,14 @@ export * from './components/Aligment';
2
2
  export * from './components/Button';
3
3
  export * from './components/Card';
4
4
  export * from './components/Dropdown';
5
+ export * from './components/DropdownMenu';
5
6
  export * from './components/ElementHeader';
7
+ export * from './components/DropdownMenu';
6
8
  export * from './components/File';
7
9
  export * from './components/Icons';
8
10
  export * from "./components/Input";
9
11
  export * from './components/Loader';
10
12
  export * from './components/Modal';
11
- export * from './components/More';
12
13
  export * from './components/Section';
13
14
  export * from './components/Selector';
14
15
  export * from './components/Sidepanel';
@@ -7,6 +7,7 @@ export declare const Theme: {
7
7
  white: string;
8
8
  black: string;
9
9
  gray_1: string;
10
+ gray_2: string;
10
11
  overlayer: string;
11
12
  red: string;
12
13
  };
@@ -0,0 +1,17 @@
1
+ import { FC } from 'react';
2
+ import { InputSize, IAction } from '../../types';
3
+ interface IDropdownMenuProps {
4
+ size?: InputSize;
5
+ iconName?: string;
6
+ color?: string;
7
+ iconBackgroundColor?: boolean;
8
+ header?: boolean;
9
+ headerTitle?: string;
10
+ headerSubtitle?: string;
11
+ footer?: boolean;
12
+ footerText?: string;
13
+ footerAction?: () => void;
14
+ options: IAction[];
15
+ }
16
+ export declare const DropdownMenu: FC<IDropdownMenuProps>;
17
+ export {};
@@ -0,0 +1,9 @@
1
+ export declare const SubMenuElement: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export declare const UserMenuHeader: import("styled-components").StyledComponent<"div", any, {}, never>;
3
+ export declare const UserMenuFooter: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export declare const UserMenuContent: import("styled-components").StyledComponent<"div", any, {}, never>;
5
+ interface IPanelOptionStyle {
6
+ onClick?: any;
7
+ }
8
+ export declare const PanelOption: import("styled-components").StyledComponent<"div", any, IPanelOptionStyle, never>;
9
+ export {};
@@ -0,0 +1 @@
1
+ export * from './DropdownMenu';
@@ -19,4 +19,5 @@ export declare const iconsPath: {
19
19
  download: string;
20
20
  delete: string;
21
21
  close: string;
22
+ person: string;
22
23
  };
@@ -7,7 +7,7 @@ interface IInputTextElementProps extends InputHTMLAttributes<HTMLInputElement> {
7
7
  width?: string;
8
8
  }
9
9
  export declare const InputTextElement: import("styled-components").StyledComponent<"input", any, IInputTextElementProps, never>;
10
- export declare const InputLabelElement: import("styled-components").StyledComponent<"div", any, import("../Typography/Typography.styles").ITextLabelProps, never>;
10
+ export declare const InputLabelElement: import("styled-components").StyledComponent<"div", any, import("../Typography").ITextLabelProps, never>;
11
11
  interface IInputWrapperProps {
12
12
  width?: string;
13
13
  }
@@ -1,10 +1,16 @@
1
1
  import { InputSize, LabelPosition } from '../../types';
2
- export declare const Text: import("styled-components").StyledComponent<"div", any, {}, never>;
3
- export declare const TextSmall: import("styled-components").StyledComponent<"div", any, {}, never>;
4
- export declare const TextHeader: import("styled-components").StyledComponent<"div", any, {}, never>;
5
- export declare const TextSubHeader: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ interface ITextStyle {
3
+ color?: string;
4
+ action?: boolean;
5
+ }
6
+ export declare const Text: import("styled-components").StyledComponent<"div", any, ITextStyle, never>;
7
+ export declare const TextSmall: import("styled-components").StyledComponent<"div", any, ITextStyle, never>;
8
+ export declare const TextHeader: import("styled-components").StyledComponent<"div", any, ITextStyle, never>;
9
+ export declare const TextSubHeader: import("styled-components").StyledComponent<"div", any, ITextStyle, never>;
10
+ export declare const TextAccent: import("styled-components").StyledComponent<"div", any, ITextStyle, never>;
6
11
  export interface ITextLabelProps {
7
12
  size?: InputSize;
8
13
  labelPosition?: LabelPosition;
9
14
  }
10
15
  export declare const TextLabel: import("styled-components").StyledComponent<"div", any, ITextLabelProps, never>;
16
+ export {};
@@ -1 +1 @@
1
- export { Text, TextHeader, TextSubHeader, TextLabel } from './Typography.styles';
1
+ export * from './Typography.styles';
@@ -2,13 +2,14 @@ export * from './components/Aligment';
2
2
  export * from './components/Button';
3
3
  export * from './components/Card';
4
4
  export * from './components/Dropdown';
5
+ export * from './components/DropdownMenu';
5
6
  export * from './components/ElementHeader';
7
+ export * from './components/DropdownMenu';
6
8
  export * from './components/File';
7
9
  export * from './components/Icons';
8
10
  export * from "./components/Input";
9
11
  export * from './components/Loader';
10
12
  export * from './components/Modal';
11
- export * from './components/More';
12
13
  export * from './components/Section';
13
14
  export * from './components/Selector';
14
15
  export * from './components/Sidepanel';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "venice-ui",
3
- "version": "1.0.35",
3
+ "version": "1.0.37",
4
4
  "description": "Component library",
5
5
  "main": "index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -1,51 +0,0 @@
1
- "use strict";
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;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.More = void 0;
27
- const common_1 = require("../common");
28
- const react_1 = __importStar(require("react"));
29
- const Theme_1 = require("../../Theme");
30
- const Icons_1 = require("../Icons");
31
- const More_styles_1 = require("./More.styles");
32
- const More = ({ options, size = 'medium', iconName = 'more_vert', }) => {
33
- const [open, toogleOpen] = (0, react_1.useState)(false);
34
- const ref = (0, react_1.useRef)(null);
35
- (0, react_1.useEffect)(() => {
36
- const handleClickOutside = (event) => {
37
- if (ref.current && !ref.current.contains(event.target)) {
38
- toogleOpen(false);
39
- }
40
- };
41
- document.addEventListener('click', handleClickOutside, true);
42
- return () => {
43
- document.removeEventListener('click', handleClickOutside, true);
44
- };
45
- }, [open]);
46
- return (react_1.default.createElement(More_styles_1.MoreElement, null,
47
- react_1.default.createElement(Icons_1.Icon, { name: iconName, onClick: () => toogleOpen(!open), color: Theme_1.Theme.colors.primary, size: (0, common_1.setIconSize)(size), active: open }),
48
- open && (react_1.default.createElement(common_1.Panel, { ref: ref, size: size, position: "right" }, options &&
49
- options.map((option) => (react_1.default.createElement(common_1.PanelOption, { key: option.label, onClick: option.action, active: true }, option.label)))))));
50
- };
51
- exports.More = More;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MoreElement = void 0;
7
- const styled_components_1 = __importDefault(require("styled-components"));
8
- exports.MoreElement = styled_components_1.default.div `
9
- position:relative;
10
- width:auto;
11
- display: flex;
12
- box-sizing: border-box;
13
- `;
@@ -1,24 +0,0 @@
1
- import { Panel, PanelOption, setIconSize } from '../common';
2
- import React, { useState, useRef, useEffect } from 'react';
3
- import { Theme } from '../../Theme';
4
- import { Icon } from '../Icons';
5
- import { MoreElement } from './More.styles';
6
- export const More = ({ options, size = 'medium', iconName = 'more_vert', }) => {
7
- const [open, toogleOpen] = useState(false);
8
- const ref = useRef(null);
9
- useEffect(() => {
10
- const handleClickOutside = (event) => {
11
- if (ref.current && !ref.current.contains(event.target)) {
12
- toogleOpen(false);
13
- }
14
- };
15
- document.addEventListener('click', handleClickOutside, true);
16
- return () => {
17
- document.removeEventListener('click', handleClickOutside, true);
18
- };
19
- }, [open]);
20
- return (React.createElement(MoreElement, null,
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)))))));
24
- };
@@ -1,7 +0,0 @@
1
- import styled from "styled-components";
2
- export const MoreElement = styled.div `
3
- position:relative;
4
- width:auto;
5
- display: flex;
6
- box-sizing: border-box;
7
- `;
@@ -1 +0,0 @@
1
- export * from './More';
@@ -1,9 +0,0 @@
1
- import { FC } from 'react';
2
- import { IAction, InputSize } from '../../types';
3
- interface IMoreProps {
4
- options: IAction[];
5
- size?: InputSize;
6
- iconName?: string;
7
- }
8
- export declare const More: FC<IMoreProps>;
9
- export {};
@@ -1 +0,0 @@
1
- export declare const MoreElement: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -1 +0,0 @@
1
- export * from './More';