venice-ui 2.4.3 → 2.4.5

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.
@@ -31,7 +31,7 @@ const ElementHeader = ({ title, actionLabel = '', handleClose, handleClick, hand
31
31
  else if (!handleClose && handleClick && actionLabel) {
32
32
  return (react_1.default.createElement(Aligment_1.Aligment, { align: "center", width: "auto" },
33
33
  react_1.default.createElement(Button_1.Button, { mode: "secondary", text: actionLabel, onClick: () => handleClick(), disabled: actionDisabled }),
34
- options && (react_1.default.createElement(DropdownMenu_1.DropdownMenu, { options: options, right: true, iconColor: iconColor, position: 'right' }))));
34
+ options && (react_1.default.createElement(DropdownMenu_1.DropdownMenu, { options: options, right: true, iconColor: iconColor, position: "right" }))));
35
35
  }
36
36
  };
37
37
  return (react_1.default.createElement(ElementHeader_styles_1.ElementHeaderWrapper, { justify: !title && !children ? 'flex-end' : 'space-between', vPadding: Theme_1.Theme.padding.m, hPadding: Theme_1.Theme.padding.l, backgroundColor: backgroundColor, bottomDivader: bottomDivader },
@@ -31,7 +31,7 @@ const common_1 = require("../common");
31
31
  const Modal_styles_1 = require("./Modal.styles");
32
32
  const styled_components_1 = require("styled-components");
33
33
  const ButtonsFooter_1 = require("../ButtonsFooter");
34
- const Modal = ({ isOpen, theme = Theme_1.mainTheme, children, title, handleConfirm, handleClose, handleAdditional, labelConfirm, labelClose = 'Cancel', labelAdditional, submitDisabled, size = 'small', submitLoader = false, additionalType = 'button', additionalValue = false, headerDivader = false, additionaNormalMode = false, exitOnEsc = false, additionDisabled = false, }) => {
34
+ const Modal = ({ isOpen, theme = Theme_1.mainTheme, children, title, handleConfirm, handleClose, handleAdditional, labelConfirm, labelClose = 'Cancel', labelAdditional, submitDisabled, size = 'small', submitLoader = false, additionalType = 'button', additionalValue = false, headerDivader = false, additionaNormalMode = false, exitOnEsc = false, additionDisabled = false, decorativeEdge = false, }) => {
35
35
  (0, react_1.useEffect)(() => {
36
36
  const handleKeyDown = (e) => {
37
37
  if (e.key === 'Escape') {
@@ -47,7 +47,7 @@ const Modal = ({ isOpen, theme = Theme_1.mainTheme, children, title, handleConfi
47
47
  }, [isOpen]);
48
48
  return (react_1.default.createElement(styled_components_1.ThemeProvider, { theme: theme },
49
49
  react_1.default.createElement(Modal_styles_1.ModalOverlayer, null,
50
- react_1.default.createElement(Modal_styles_1.ModalElement, { size: size },
50
+ react_1.default.createElement(Modal_styles_1.ModalElement, { size: size, decorativeEdge: decorativeEdge },
51
51
  react_1.default.createElement(ElementHeader_1.ElementHeader, { title: title, handleClose: handleClose, bottomDivader: headerDivader }),
52
52
  react_1.default.createElement(common_1.ScrollCotainer, null, children),
53
53
  react_1.default.createElement(ButtonsFooter_1.ButtonsFooter, { handleConfirm: handleConfirm, handleClose: handleClose, handleAdditional: handleAdditional, labelConfirm: labelConfirm, labelClose: labelClose, labelAdditional: labelAdditional, submitDisabled: submitDisabled, submitLoader: submitLoader, additionalType: additionalType, additionalValue: additionalValue, additionaNormalMode: additionaNormalMode, additionDisabled: additionDisabled })))));
@@ -32,8 +32,8 @@ exports.ModalElement = styled_components_1.default.div `
32
32
  position: relative;
33
33
  max-width: 60rem;
34
34
  box-shadow: ${Theme_1.Theme.shadow.m}
35
- ${p => p.size === 'small' && `max-width:500px`}
36
- ${p => p.size === 'medium' && `max-width:750px`}
37
- ${p => p.size === 'large' && `max-width:100%`}
38
-
35
+ ${p => p.size === 'small' && `max-width:500px;`}
36
+ ${p => p.size === 'medium' && `max-width:750px;`}
37
+ ${p => p.size === 'large' && `max-width:100%;`}
38
+ ${p => p.decorativeEdge && `border-left: 4px solid ${Theme_1.Theme.colors.primary};`}
39
39
  `;
@@ -34,16 +34,21 @@ const Cell_1 = require("./Cell");
34
34
  const Pagination_1 = require("../Pagination");
35
35
  const Filters_1 = require("../Filters");
36
36
  const Typography_1 = require("../Typography");
37
- const Table = ({ theme = Theme_1.mainTheme, headers, elements, hover = true, selectable = true, sortable = true, sort = {
37
+ const Table = ({ theme = Theme_1.mainTheme, headers, elements, hover = true, selectable = true, filtrable = false, sortable = true, sort = {
38
38
  name: '',
39
39
  order: 'none',
40
40
  }, pageSize = 10, ifPagination = false, moreActions = [], onRowClick, }) => {
41
41
  const initialElementsRef = (0, react_1.useRef)(null);
42
42
  (0, react_1.useEffect)(() => {
43
- if (!initialElementsRef.current && Array.isArray(elements) && elements.length > 0) {
43
+ if (!initialElementsRef.current &&
44
+ Array.isArray(elements) &&
45
+ elements.length > 0) {
44
46
  initialElementsRef.current = elements.slice();
45
47
  }
46
- setTableProps((prev) => ({ ...prev, elements: Array.isArray(elements) ? elements : [] }));
48
+ setTableProps((prev) => ({
49
+ ...prev,
50
+ elements: Array.isArray(elements) ? elements : [],
51
+ }));
47
52
  // eslint-disable-next-line react-hooks/exhaustive-deps
48
53
  }, [elements]);
49
54
  const checkHeaders = () => {
@@ -99,21 +104,40 @@ const Table = ({ theme = Theme_1.mainTheme, headers, elements, hover = true, sel
99
104
  elements: filteredElements,
100
105
  }));
101
106
  setCurrentPage(1);
102
- setNoResultsMessage(filteredElements && filteredElements.length === 0 ? 'Nie ma żadnych wyników' : null);
107
+ setNoResultsMessage(filteredElements && filteredElements.length === 0
108
+ ? 'Nie ma żadnych wyników'
109
+ : null);
103
110
  }, [setCurrentPage, setTableProps]);
104
111
  const [filtersClearSignal, setFiltersClearSignal] = (0, react_1.useState)(0);
105
112
  const handleClearFilters = (0, react_1.useCallback)(() => {
106
113
  setFiltersClearSignal((s) => s + 1);
107
- const full = (initialElementsRef.current && initialElementsRef.current.length > 0)
114
+ const full = initialElementsRef.current && initialElementsRef.current.length > 0
108
115
  ? initialElementsRef.current
109
- : (Array.isArray(elements) ? elements : []);
110
- setTableProps((prev) => ({ ...prev, elements: Array.isArray(full) ? full.slice() : [] }));
116
+ : Array.isArray(elements)
117
+ ? elements
118
+ : [];
119
+ setTableProps((prev) => ({
120
+ ...prev,
121
+ elements: Array.isArray(full) ? full.slice() : [],
122
+ }));
111
123
  setCurrentPage(1);
112
124
  setNoResultsMessage(null);
113
125
  }, [elements, setCurrentPage, setNoResultsMessage]);
114
126
  return (react_1.default.createElement(styled_components_1.ThemeProvider, { theme: theme },
115
- react_1.default.createElement("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: 12, marginBottom: 12 } },
116
- react_1.default.createElement(Filters_1.Filters, { title: "Select filters", labelConfirm: "Apply", labelClose: "Cancel", labelClearAll: "Clear", headers: headers, elements: initialElementsRef.current && initialElementsRef.current.length > 0 ? initialElementsRef.current : elements, fullElements: initialElementsRef.current && initialElementsRef.current.length > 0 ? initialElementsRef.current : elements, handleSubmitFilters: handleApplyFilters, externalClearSignal: filtersClearSignal, onClear: handleClearFilters })),
127
+ filtrable && (react_1.default.createElement("div", { style: {
128
+ display: 'flex',
129
+ alignItems: 'center',
130
+ justifyContent: 'space-between',
131
+ gap: 12,
132
+ marginBottom: 12,
133
+ } },
134
+ react_1.default.createElement(Filters_1.Filters, { title: "Select filters", labelConfirm: "Apply", labelClose: "Cancel", labelClearAll: "Clear", headers: headers, elements: initialElementsRef.current &&
135
+ initialElementsRef.current.length > 0
136
+ ? initialElementsRef.current
137
+ : elements, fullElements: initialElementsRef.current &&
138
+ initialElementsRef.current.length > 0
139
+ ? initialElementsRef.current
140
+ : elements, handleSubmitFilters: handleApplyFilters, externalClearSignal: filtersClearSignal, onClear: handleClearFilters }))),
117
141
  react_1.default.createElement(Table_styles_1.TableWrapper, { cellPadding: "0", cellSpacing: "0" },
118
142
  react_1.default.createElement(Table_styles_1.TableHead, null,
119
143
  react_1.default.createElement(Table_styles_1.TableRow, { hover: false, selectable: false, active: false }, tableProps.headers.map((header) => (react_1.default.createElement(HeaderCell_1.HeaderCell, { key: `header_${header.name}`, header: header, sortable: sortable, handleSort: handleHeaderCellClick, sort: tableProps.sort }))))),
@@ -8,8 +8,8 @@ const ElementHeader_1 = require("../ElementHeader");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const Tile_styles_1 = require("./Tile.styles");
10
10
  const Theme_1 = require("../../Theme");
11
- const Tile = ({ size = 'small', shadow = true, title, children, theme = Theme_1.mainTheme, backgroundColor = theme.contentBackground, height = 'auto', headerDivader = false }) => {
12
- return (react_1.default.createElement(Tile_styles_1.TileElement, { size: size, shadow: shadow, backgroundColor: backgroundColor, height: height },
11
+ const Tile = ({ size = 'small', shadow = true, title, children, theme = Theme_1.mainTheme, backgroundColor = theme.contentBackground, height = 'auto', headerDivader = false, decorativeEdge = false, }) => {
12
+ return (react_1.default.createElement(Tile_styles_1.TileElement, { size: size, shadow: shadow, backgroundColor: backgroundColor, height: height, decorativeEdge: decorativeEdge },
13
13
  title && (react_1.default.createElement(ElementHeader_1.ElementHeader, { title: title, backgroundColor: backgroundColor, bottomDivader: headerDivader })),
14
14
  children));
15
15
  };
@@ -16,12 +16,13 @@ exports.TileElement = styled_components_1.default.div `
16
16
  overflow: hidden;
17
17
  flex-direction: column;
18
18
  position: relative;
19
- height:${p => p.height};
19
+ height: ${(p) => p.height};
20
20
  ${(p) => p.shadow &&
21
21
  `
22
22
  box-shadow: ${Theme_1.Theme.shadow.s}
23
23
  `}
24
- ${(p) => p.size === 'small' && `max-width:500px`}
25
- ${(p) => p.size === 'medium' && `max-width:750px`}
26
- ${(p) => p.size === 'large' && `max-width:100%`}
24
+ ${(p) => p.size === 'small' && `max-width:500px;`}
25
+ ${(p) => p.size === 'medium' && `max-width:750px;`}
26
+ ${(p) => p.size === 'large' && `max-width:100%;`}
27
+ ${(p) => p.decorativeEdge && `border-left: 4px solid ${Theme_1.Theme.colors.primary};`}
27
28
  `;
@@ -25,7 +25,7 @@ export const ElementHeader = ({ title, actionLabel = '', handleClose, handleClic
25
25
  else if (!handleClose && handleClick && actionLabel) {
26
26
  return (React.createElement(Aligment, { align: "center", width: "auto" },
27
27
  React.createElement(Button, { mode: "secondary", text: actionLabel, onClick: () => handleClick(), disabled: actionDisabled }),
28
- options && (React.createElement(DropdownMenu, { options: options, right: true, iconColor: iconColor, position: 'right' }))));
28
+ options && (React.createElement(DropdownMenu, { options: options, right: true, iconColor: iconColor, position: "right" }))));
29
29
  }
30
30
  };
31
31
  return (React.createElement(ElementHeaderWrapper, { justify: !title && !children ? 'flex-end' : 'space-between', vPadding: Theme.padding.m, hPadding: Theme.padding.l, backgroundColor: backgroundColor, bottomDivader: bottomDivader },
@@ -5,7 +5,7 @@ import { ScrollCotainer } from '../common';
5
5
  import { ModalElement, ModalOverlayer } from './Modal.styles';
6
6
  import { ThemeProvider } from 'styled-components';
7
7
  import { ButtonsFooter } from '../ButtonsFooter';
8
- export const Modal = ({ isOpen, theme = mainTheme, children, title, handleConfirm, handleClose, handleAdditional, labelConfirm, labelClose = 'Cancel', labelAdditional, submitDisabled, size = 'small', submitLoader = false, additionalType = 'button', additionalValue = false, headerDivader = false, additionaNormalMode = false, exitOnEsc = false, additionDisabled = false, }) => {
8
+ export const Modal = ({ isOpen, theme = mainTheme, children, title, handleConfirm, handleClose, handleAdditional, labelConfirm, labelClose = 'Cancel', labelAdditional, submitDisabled, size = 'small', submitLoader = false, additionalType = 'button', additionalValue = false, headerDivader = false, additionaNormalMode = false, exitOnEsc = false, additionDisabled = false, decorativeEdge = false, }) => {
9
9
  useEffect(() => {
10
10
  const handleKeyDown = (e) => {
11
11
  if (e.key === 'Escape') {
@@ -21,7 +21,7 @@ export const Modal = ({ isOpen, theme = mainTheme, children, title, handleConfir
21
21
  }, [isOpen]);
22
22
  return (React.createElement(ThemeProvider, { theme: theme },
23
23
  React.createElement(ModalOverlayer, null,
24
- React.createElement(ModalElement, { size: size },
24
+ React.createElement(ModalElement, { size: size, decorativeEdge: decorativeEdge },
25
25
  React.createElement(ElementHeader, { title: title, handleClose: handleClose, bottomDivader: headerDivader }),
26
26
  React.createElement(ScrollCotainer, null, children),
27
27
  React.createElement(ButtonsFooter, { handleConfirm: handleConfirm, handleClose: handleClose, handleAdditional: handleAdditional, labelConfirm: labelConfirm, labelClose: labelClose, labelAdditional: labelAdditional, submitDisabled: submitDisabled, submitLoader: submitLoader, additionalType: additionalType, additionalValue: additionalValue, additionaNormalMode: additionaNormalMode, additionDisabled: additionDisabled })))));
@@ -26,8 +26,8 @@ export const ModalElement = styled.div `
26
26
  position: relative;
27
27
  max-width: 60rem;
28
28
  box-shadow: ${Theme.shadow.m}
29
- ${p => p.size === 'small' && `max-width:500px`}
30
- ${p => p.size === 'medium' && `max-width:750px`}
31
- ${p => p.size === 'large' && `max-width:100%`}
32
-
29
+ ${p => p.size === 'small' && `max-width:500px;`}
30
+ ${p => p.size === 'medium' && `max-width:750px;`}
31
+ ${p => p.size === 'large' && `max-width:100%;`}
32
+ ${p => p.decorativeEdge && `border-left: 4px solid ${Theme.colors.primary};`}
33
33
  `;
@@ -8,16 +8,21 @@ import { Cell } from './Cell';
8
8
  import { Pagination } from '../Pagination';
9
9
  import { Filters } from '../Filters';
10
10
  import { TextAccent } from '../Typography';
11
- export const Table = ({ theme = mainTheme, headers, elements, hover = true, selectable = true, sortable = true, sort = {
11
+ export const Table = ({ theme = mainTheme, headers, elements, hover = true, selectable = true, filtrable = false, sortable = true, sort = {
12
12
  name: '',
13
13
  order: 'none',
14
14
  }, pageSize = 10, ifPagination = false, moreActions = [], onRowClick, }) => {
15
15
  const initialElementsRef = useRef(null);
16
16
  useEffect(() => {
17
- if (!initialElementsRef.current && Array.isArray(elements) && elements.length > 0) {
17
+ if (!initialElementsRef.current &&
18
+ Array.isArray(elements) &&
19
+ elements.length > 0) {
18
20
  initialElementsRef.current = elements.slice();
19
21
  }
20
- setTableProps((prev) => ({ ...prev, elements: Array.isArray(elements) ? elements : [] }));
22
+ setTableProps((prev) => ({
23
+ ...prev,
24
+ elements: Array.isArray(elements) ? elements : [],
25
+ }));
21
26
  // eslint-disable-next-line react-hooks/exhaustive-deps
22
27
  }, [elements]);
23
28
  const checkHeaders = () => {
@@ -73,21 +78,40 @@ export const Table = ({ theme = mainTheme, headers, elements, hover = true, sele
73
78
  elements: filteredElements,
74
79
  }));
75
80
  setCurrentPage(1);
76
- setNoResultsMessage(filteredElements && filteredElements.length === 0 ? 'Nie ma żadnych wyników' : null);
81
+ setNoResultsMessage(filteredElements && filteredElements.length === 0
82
+ ? 'Nie ma żadnych wyników'
83
+ : null);
77
84
  }, [setCurrentPage, setTableProps]);
78
85
  const [filtersClearSignal, setFiltersClearSignal] = useState(0);
79
86
  const handleClearFilters = useCallback(() => {
80
87
  setFiltersClearSignal((s) => s + 1);
81
- const full = (initialElementsRef.current && initialElementsRef.current.length > 0)
88
+ const full = initialElementsRef.current && initialElementsRef.current.length > 0
82
89
  ? initialElementsRef.current
83
- : (Array.isArray(elements) ? elements : []);
84
- setTableProps((prev) => ({ ...prev, elements: Array.isArray(full) ? full.slice() : [] }));
90
+ : Array.isArray(elements)
91
+ ? elements
92
+ : [];
93
+ setTableProps((prev) => ({
94
+ ...prev,
95
+ elements: Array.isArray(full) ? full.slice() : [],
96
+ }));
85
97
  setCurrentPage(1);
86
98
  setNoResultsMessage(null);
87
99
  }, [elements, setCurrentPage, setNoResultsMessage]);
88
100
  return (React.createElement(ThemeProvider, { theme: theme },
89
- React.createElement("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: 12, marginBottom: 12 } },
90
- React.createElement(Filters, { title: "Select filters", labelConfirm: "Apply", labelClose: "Cancel", labelClearAll: "Clear", headers: headers, elements: initialElementsRef.current && initialElementsRef.current.length > 0 ? initialElementsRef.current : elements, fullElements: initialElementsRef.current && initialElementsRef.current.length > 0 ? initialElementsRef.current : elements, handleSubmitFilters: handleApplyFilters, externalClearSignal: filtersClearSignal, onClear: handleClearFilters })),
101
+ filtrable && (React.createElement("div", { style: {
102
+ display: 'flex',
103
+ alignItems: 'center',
104
+ justifyContent: 'space-between',
105
+ gap: 12,
106
+ marginBottom: 12,
107
+ } },
108
+ React.createElement(Filters, { title: "Select filters", labelConfirm: "Apply", labelClose: "Cancel", labelClearAll: "Clear", headers: headers, elements: initialElementsRef.current &&
109
+ initialElementsRef.current.length > 0
110
+ ? initialElementsRef.current
111
+ : elements, fullElements: initialElementsRef.current &&
112
+ initialElementsRef.current.length > 0
113
+ ? initialElementsRef.current
114
+ : elements, handleSubmitFilters: handleApplyFilters, externalClearSignal: filtersClearSignal, onClear: handleClearFilters }))),
91
115
  React.createElement(TableWrapper, { cellPadding: "0", cellSpacing: "0" },
92
116
  React.createElement(TableHead, null,
93
117
  React.createElement(TableRow, { hover: false, selectable: false, active: false }, tableProps.headers.map((header) => (React.createElement(HeaderCell, { key: `header_${header.name}`, header: header, sortable: sortable, handleSort: handleHeaderCellClick, sort: tableProps.sort }))))),
@@ -2,8 +2,8 @@ import { ElementHeader } from '../ElementHeader';
2
2
  import React from 'react';
3
3
  import { TileElement } from './Tile.styles';
4
4
  import { mainTheme } from '../../Theme';
5
- export const Tile = ({ size = 'small', shadow = true, title, children, theme = mainTheme, backgroundColor = theme.contentBackground, height = 'auto', headerDivader = false }) => {
6
- return (React.createElement(TileElement, { size: size, shadow: shadow, backgroundColor: backgroundColor, height: height },
5
+ export const Tile = ({ size = 'small', shadow = true, title, children, theme = mainTheme, backgroundColor = theme.contentBackground, height = 'auto', headerDivader = false, decorativeEdge = false, }) => {
6
+ return (React.createElement(TileElement, { size: size, shadow: shadow, backgroundColor: backgroundColor, height: height, decorativeEdge: decorativeEdge },
7
7
  title && (React.createElement(ElementHeader, { title: title, backgroundColor: backgroundColor, bottomDivader: headerDivader })),
8
8
  children));
9
9
  };
@@ -10,12 +10,13 @@ export const TileElement = styled.div `
10
10
  overflow: hidden;
11
11
  flex-direction: column;
12
12
  position: relative;
13
- height:${p => p.height};
13
+ height: ${(p) => p.height};
14
14
  ${(p) => p.shadow &&
15
15
  `
16
16
  box-shadow: ${Theme.shadow.s}
17
17
  `}
18
- ${(p) => p.size === 'small' && `max-width:500px`}
19
- ${(p) => p.size === 'medium' && `max-width:750px`}
20
- ${(p) => p.size === 'large' && `max-width:100%`}
18
+ ${(p) => p.size === 'small' && `max-width:500px;`}
19
+ ${(p) => p.size === 'medium' && `max-width:750px;`}
20
+ ${(p) => p.size === 'large' && `max-width:100%;`}
21
+ ${(p) => p.decorativeEdge && `border-left: 4px solid ${Theme.colors.primary};`}
21
22
  `;
@@ -19,5 +19,6 @@ export interface IModalProps {
19
19
  additionaNormalMode?: boolean;
20
20
  exitOnEsc?: boolean;
21
21
  additionDisabled?: boolean;
22
+ decorativeEdge?: boolean;
22
23
  }
23
24
  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
+ decorativeEdge: boolean;
4
5
  theme: any;
5
6
  }
6
7
  export declare const ModalElement: import("styled-components").StyledComponent<"div", any, IModalElementProp, never>;
@@ -8,5 +8,6 @@ export interface ITileProps {
8
8
  height?: string;
9
9
  theme?: any;
10
10
  headerDivader?: boolean;
11
+ decorativeEdge?: boolean;
11
12
  }
12
13
  export declare const Tile: FC<ITileProps>;
@@ -3,6 +3,7 @@ interface ITileElementStyle {
3
3
  shadow: boolean;
4
4
  backgroundColor: string;
5
5
  height: string;
6
+ decorativeEdge: boolean;
6
7
  }
7
8
  export declare const TileElement: import("styled-components").StyledComponent<"div", any, ITileElementStyle, never>;
8
9
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "venice-ui",
3
- "version": "2.4.3",
3
+ "version": "2.4.5",
4
4
  "description": "Component library",
5
5
  "main": "index.js",
6
6
  "module": "./dist/esm/index.js",