@geotab/zenith 1.22.2-beta.0 → 1.22.2

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 (111) hide show
  1. package/README.md +7 -0
  2. package/dist/card/card.d.ts +1 -8
  3. package/dist/card/card.js +29 -53
  4. package/dist/card/components/cardButton/cardButton.d.ts +0 -1
  5. package/dist/card/components/title.d.ts +1 -5
  6. package/dist/card/components/title.js +5 -9
  7. package/dist/commonStyles/common.less +1 -0
  8. package/dist/dateInput/dateInput.js +1 -1
  9. package/dist/dropdown/dropdown.js +2 -1
  10. package/dist/groupsFilter/groupsFilter.js +1 -0
  11. package/dist/groupsFilter/stateReducer/stateReducer.js +1 -1
  12. package/dist/index.css +762 -178
  13. package/dist/index.d.ts +7 -2
  14. package/dist/index.js +24 -16
  15. package/dist/list/hooks/useContainerScroll.d.ts +4 -0
  16. package/dist/list/hooks/useContainerScroll.js +38 -0
  17. package/dist/list/hooks/useDragAndDrop.d.ts +4 -0
  18. package/dist/list/hooks/useDragAndDrop.js +134 -0
  19. package/dist/list/hooks/useLazyLoading.d.ts +1 -0
  20. package/dist/list/hooks/useLazyLoading.js +52 -0
  21. package/dist/list/hooks/useVirtualScroll.d.ts +4 -0
  22. package/dist/list/hooks/useVirtualScroll.js +104 -0
  23. package/dist/list/interfaces.d.ts +16 -0
  24. package/dist/list/interfaces.js +5 -0
  25. package/dist/list/itemCompact/itemCompact.d.ts +18 -0
  26. package/dist/list/itemCompact/itemCompact.js +24 -0
  27. package/dist/list/itemCompact/itemCompactWaiting.d.ts +6 -0
  28. package/dist/list/itemCompact/itemCompactWaiting.js +14 -0
  29. package/dist/list/itemData/itemData.d.ts +30 -0
  30. package/dist/list/itemData/itemData.js +25 -0
  31. package/dist/list/itemData/itemDataInternal.d.ts +29 -0
  32. package/dist/list/itemData/itemDataInternal.js +66 -0
  33. package/dist/list/itemData/itemDataWaiting.d.ts +5 -0
  34. package/dist/list/itemData/itemDataWaiting.js +8 -0
  35. package/dist/list/list.d.ts +13 -0
  36. package/dist/list/list.js +54 -0
  37. package/dist/list/listItem/listItem.d.ts +16 -0
  38. package/dist/list/listItem/listItem.js +72 -0
  39. package/dist/list/listItem/listItemWaiting.d.ts +8 -0
  40. package/dist/list/listItem/listItemWaiting.js +14 -0
  41. package/dist/list/utils/changeOrder.d.ts +1 -0
  42. package/dist/list/utils/changeOrder.js +10 -0
  43. package/dist/list/utils/findItemPosition.d.ts +1 -0
  44. package/dist/list/utils/findItemPosition.js +19 -0
  45. package/dist/list/utils/findListElement.d.ts +1 -0
  46. package/dist/list/utils/findListElement.js +13 -0
  47. package/dist/list/utils/findVisibleListItems.d.ts +1 -0
  48. package/dist/list/utils/findVisibleListItems.js +60 -0
  49. package/dist/list/utils/getLoadingItems.d.ts +2 -0
  50. package/dist/list/utils/getLoadingItems.js +18 -0
  51. package/dist/list/utils/isActiveElement.d.ts +1 -0
  52. package/dist/list/utils/isActiveElement.js +14 -0
  53. package/dist/list/utils/isDataListitem.d.ts +3 -0
  54. package/dist/list/utils/isDataListitem.js +11 -0
  55. package/dist/list/viewportProvider/viewportContext.d.ts +6 -0
  56. package/dist/list/viewportProvider/viewportContext.js +5 -0
  57. package/dist/list/viewportProvider/viewportProvider.d.ts +6 -0
  58. package/dist/list/viewportProvider/viewportProvider.js +7 -0
  59. package/dist/selectList/selectList.js +3 -3
  60. package/dist/selectList/selectListItem.js +1 -1
  61. package/dist/selectRaw/selectRaw.js +1 -1
  62. package/dist/utils/localization/translations/cs-json.d.ts +1 -0
  63. package/dist/utils/localization/translations/cs-json.js +2 -1
  64. package/dist/utils/localization/translations/de-json.d.ts +1 -0
  65. package/dist/utils/localization/translations/de-json.js +2 -1
  66. package/dist/utils/localization/translations/en-json.d.ts +1 -1
  67. package/dist/utils/localization/translations/en-json.js +1 -1
  68. package/dist/utils/localization/translations/es-json.d.ts +1 -0
  69. package/dist/utils/localization/translations/es-json.js +2 -1
  70. package/dist/utils/localization/translations/fr-FR-json.d.ts +1 -0
  71. package/dist/utils/localization/translations/fr-FR-json.js +2 -1
  72. package/dist/utils/localization/translations/fr-json.d.ts +1 -0
  73. package/dist/utils/localization/translations/fr-json.js +2 -1
  74. package/dist/utils/localization/translations/id-json.d.ts +1 -0
  75. package/dist/utils/localization/translations/id-json.js +2 -1
  76. package/dist/utils/localization/translations/it-json.d.ts +1 -0
  77. package/dist/utils/localization/translations/it-json.js +2 -1
  78. package/dist/utils/localization/translations/ja-json.d.ts +1 -0
  79. package/dist/utils/localization/translations/ja-json.js +2 -1
  80. package/dist/utils/localization/translations/ko-KR-json.d.ts +1 -0
  81. package/dist/utils/localization/translations/ko-KR-json.js +2 -1
  82. package/dist/utils/localization/translations/ms-json.d.ts +1 -0
  83. package/dist/utils/localization/translations/ms-json.js +2 -1
  84. package/dist/utils/localization/translations/nl-json.d.ts +1 -0
  85. package/dist/utils/localization/translations/nl-json.js +2 -1
  86. package/dist/utils/localization/translations/pl-json.d.ts +1 -0
  87. package/dist/utils/localization/translations/pl-json.js +2 -1
  88. package/dist/utils/localization/translations/pt-BR-json.d.ts +1 -0
  89. package/dist/utils/localization/translations/pt-BR-json.js +2 -1
  90. package/dist/utils/localization/translations/sv-json.d.ts +1 -0
  91. package/dist/utils/localization/translations/sv-json.js +2 -1
  92. package/dist/utils/localization/translations/th-json.d.ts +1 -0
  93. package/dist/utils/localization/translations/th-json.js +2 -1
  94. package/dist/utils/localization/translations/tr-json.d.ts +1 -0
  95. package/dist/utils/localization/translations/tr-json.js +2 -1
  96. package/dist/utils/localization/translations/zh-Hans-json.d.ts +1 -0
  97. package/dist/utils/localization/translations/zh-Hans-json.js +2 -1
  98. package/dist/utils/theme/useIconSize.d.ts +2 -0
  99. package/dist/utils/theme/useIconSize.js +9 -0
  100. package/package.json +4 -4
  101. package/dist/card/card.js.map +0 -1
  102. package/dist/card/components/cardButton/cardButton.js.map +0 -1
  103. package/dist/card/components/cardFavorite.d.ts +0 -0
  104. package/dist/card/components/cardFavorite.js +0 -1
  105. package/dist/card/components/title.js.map +0 -1
  106. package/dist/favoriteButton/favoriteButton.d.ts +0 -7
  107. package/dist/favoriteButton/favoriteButton.js +0 -16
  108. package/dist/favoriteButton/favoriteButton.js.map +0 -1
  109. package/dist/icons/iconStarFilled.js.map +0 -1
  110. package/dist/index.js.map +0 -1
  111. package/dist/utils/localization/translations/en-json.js.map +0 -1
package/README.md CHANGED
@@ -40,6 +40,13 @@ Zenith library provides components defined in Zenith Design System. It includes
40
40
 
41
41
  ## Change log
42
42
 
43
+ ### 1.22.2
44
+
45
+ * Add component `List`
46
+ * Reset 'site-wide` in `GroupsFilter` on reset
47
+ * `DateInput` associates id with html element
48
+ * Fix the `Dropdown` width constraint
49
+
43
50
  ### 1.22.1
44
51
 
45
52
  * Add Korean translation
@@ -1,7 +1,6 @@
1
- import { FC, FunctionComponent, ReactNode } from "react";
1
+ import { FC, ReactNode } from "react";
2
2
  import { IAbsoluteSize, TContainerSize } from "../cardContainer/cardContainer";
3
3
  import { TCardStatus } from "./components/status";
4
- import { TIconType } from "./components/title";
5
4
  import { IActions } from "./components/actions";
6
5
  import { IContent } from "./components/content";
7
6
  import "./card.less";
@@ -9,21 +8,15 @@ import { TAlignment } from "../absolute/absolute";
9
8
  import { TooltipSize } from "../tooltip/tooltip";
10
9
  import { IZenComponentProps, IZenGridItem } from "../commonHelpers/zenComponent";
11
10
  import { ICardButton } from "./components/cardButton/cardButton";
12
- import { IIcon } from "../icons/icon";
13
11
  export declare const DEFAULT_CARD_SIZE: TContainerSize;
14
12
  export interface ICard extends IZenComponentProps, IZenGridItem {
15
13
  size?: TContainerSize | IAbsoluteSize;
16
14
  status?: TCardStatus;
17
15
  title: string;
18
- icon?: FunctionComponent<IIcon>;
19
- iconType?: TIconType;
20
- secondary?: string;
21
16
  tooltip?: ReactNode;
22
17
  titleIconClasses?: string;
23
18
  link?: string;
24
19
  date?: string;
25
- isFavorite?: boolean;
26
- onFavoriteChange?: (isFavorite: boolean) => void;
27
20
  cardContentClasses?: string;
28
21
  tooltipAlignment?: TAlignment;
29
22
  tooltipSize?: TooltipSize;
package/dist/card/card.js CHANGED
@@ -31,6 +31,7 @@ const react_1 = __importStar(require("react"));
31
31
  const cardContainer_1 = require("../cardContainer/cardContainer");
32
32
  const deviceType_1 = require("../commonHelpers/hooks/deviceType");
33
33
  const useDeviceType_1 = require("../commonHelpers/hooks/useDeviceType");
34
+ const titleLink_1 = require("./components/titleLink");
34
35
  const status_1 = require("./components/status");
35
36
  const title_1 = require("./components/title");
36
37
  const actions_1 = require("./components/actions");
@@ -41,6 +42,7 @@ const isAbsoluteSize_1 = require("../cardContainer/helpers/isAbsoluteSize");
41
42
  const getContainerSize_1 = require("../cardContainer/helpers/getContainerSize");
42
43
  const classNames_1 = require("../commonHelpers/classNames/classNames");
43
44
  const menu_1 = require("../menu/menu");
45
+ const textIconButton_1 = require("../textIconButton/textIconButton");
44
46
  const svgIconSize_1 = require("../svgIcon/svgIconSize");
45
47
  const useLanguage_1 = require("../utils/localization/useLanguage");
46
48
  const cardButton_1 = require("./components/cardButton/cardButton");
@@ -49,18 +51,17 @@ const useDrive_1 = require("../utils/theme/useDrive");
49
51
  const getDefaultFullWidthValue_1 = require("./helpers/getDefaultFullWidthValue");
50
52
  const useDriveClassName_1 = require("../utils/theme/useDriveClassName");
51
53
  const iconDotVertical_1 = require("../icons/iconDotVertical");
52
- const button_1 = require("../button/button");
53
- const favoriteButton_1 = require("../favoriteButton/favoriteButton");
54
54
  exports.DEFAULT_CARD_SIZE = "S";
55
55
  // eslint-disable-next-line @typescript-eslint/naming-convention, react/prop-types
56
56
  const Card = (props) => {
57
- const { size, children, title, icon, iconType, secondary, status, date, tooltip, className = "", link, cardContentClasses = "", tooltipAlignment, tooltipSize, fullWidth, scrollableContent = true, autoHeight = false, fullHeight = false } = props;
57
+ const { size, children, title, status, titleIconClasses, date, tooltip, className = "", link, cardContentClasses = "", tooltipAlignment, tooltipSize, fullWidth, scrollableContent = true, autoHeight = false, fullHeight = false } = props;
58
58
  const { translate } = (0, useLanguage_1.useLanguage)();
59
59
  const [deviceType, setDeviceType] = (0, react_1.useState)(deviceType_1.DeviceType.Mobile);
60
60
  const [cardSize, setCardSize] = (0, react_1.useState)((0, isAbsoluteSize_1.isAbsoluteSize)(size) ? (0, getContainerSize_1.getContainerSize)(size.width) : (size || exports.DEFAULT_CARD_SIZE));
61
61
  const isMobile = deviceType === deviceType_1.DeviceType.Mobile;
62
62
  const containerRef = (0, react_1.useRef)(null);
63
63
  const headerRef = (0, react_1.useRef)(null);
64
+ const footerRef = (0, react_1.useRef)(null);
64
65
  const titleId = (0, react_1.useId)();
65
66
  const isDrive = (0, useDrive_1.useDrive)();
66
67
  const dateDriveClasses = (0, useDriveClassName_1.useDriveClassName)("zen-card__date");
@@ -69,53 +70,33 @@ const Card = (props) => {
69
70
  const { isAutoHeight, isScrollable, isFullWidth, isFullHeight } = (0, useCardSizeState_1.useCardSizeState)(deviceType, scrollableContent, fullWidthValue, fullHeight, autoHeight, size || "S");
70
71
  (0, useDeviceType_1.useDeviceType)(setDeviceType);
71
72
  (0, useCardSize_1.useCardSize)(setCardSize, containerRef, (0, isAbsoluteSize_1.isAbsoluteSize)(size) ? (0, getContainerSize_1.getContainerSize)(size.width) : (size || "S"));
72
- const { actions, content } = (0, react_1.useMemo)(() => {
73
- if (!children) {
74
- return { actions: [], content: [] };
73
+ const actions = [];
74
+ const content = [];
75
+ react_1.default.Children.forEach(children, (el) => {
76
+ if (!el) {
77
+ return;
75
78
  }
76
- if (Array.isArray(children)) {
77
- const acts = [];
78
- const cnt = [];
79
- react_1.default.Children.forEach(children, (el) => {
80
- if (!el) {
81
- return;
82
- }
83
- if (el.type === exports.Card.Actions) {
84
- const actionChildren = el.props.children;
85
- if (!actionChildren) {
86
- return;
87
- }
88
- if (Array.isArray(actionChildren)) {
89
- acts.push(...actionChildren.filter((child) => (child === null || child === void 0 ? void 0 : child.type) === exports.Card.Button));
90
- return;
91
- }
92
- if (typeof actionChildren === "object" && actionChildren.type === exports.Card.Button) {
93
- acts.push(actionChildren);
94
- }
95
- }
96
- if (el.type === exports.Card.Content) {
97
- cnt.push(el);
98
- }
99
- });
100
- return { actions: acts, content: cnt };
101
- }
102
- return { actions: [], content: [children] };
103
- }, [children]);
104
- const maxNumberOfActions = (0, getMaxNumberOfActions_1.getMaxNumberOfActions)(cardSize);
105
- const { headerActions, menuActions } = (0, react_1.useMemo)(() => {
106
- const hActions = [];
107
- const mActions = [];
108
- for (let i = 0; i < actions.length; i++) {
109
- if (actions[i].props.inContextMenu || hActions.length >= maxNumberOfActions || isMobile) {
110
- mActions.push(actions[i]);
79
+ if (el.type === exports.Card.Actions) {
80
+ const actionChildren = el.props.children;
81
+ if (!actionChildren) {
82
+ return;
83
+ }
84
+ if (Array.isArray(actionChildren)) {
85
+ actions.push(...actionChildren.filter((child) => (child === null || child === void 0 ? void 0 : child.type) === exports.Card.Button));
86
+ return;
111
87
  }
112
- else {
113
- hActions.push(actions[i]);
88
+ if (typeof actionChildren === "object" && actionChildren.type === exports.Card.Button) {
89
+ actions.push(actionChildren);
114
90
  }
115
91
  }
116
- return { headerActions: hActions, menuActions: mActions };
117
- }, [actions, isMobile, maxNumberOfActions]);
118
- const menuTrigger = (0, jsx_runtime_1.jsx)(button_1.Button, { className: (0, classNames_1.classNames)(["zen-card__menu-trigger", menuTriggerDriveClasses || ""]), type: "tertiary-black", "aria-label": translate("Actions"), htmlType: "button", children: (0, jsx_runtime_1.jsx)(iconDotVertical_1.IconDotVertical, { size: isDrive ? svgIconSize_1.SvgIconSize.Huge : svgIconSize_1.SvgIconSize.Large }) });
92
+ if (el.type === exports.Card.Content) {
93
+ content.push(el);
94
+ }
95
+ });
96
+ const maxNumberOfActions = (0, getMaxNumberOfActions_1.getMaxNumberOfActions)(cardSize);
97
+ const headerActions = isMobile ? [] : actions.slice(0, maxNumberOfActions);
98
+ const menuActions = isMobile ? actions : actions.slice(maxNumberOfActions);
99
+ const menuTrigger = (0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, { className: (0, classNames_1.classNames)(["zen-card__menu-trigger", menuTriggerDriveClasses || ""]), iconPosition: textIconButton_1.ButtonIconPosition.Start, type: "tertiary-black", iconSize: isDrive ? svgIconSize_1.SvgIconSize.Huge : svgIconSize_1.SvgIconSize.Large, icon: iconDotVertical_1.IconDotVertical, "aria-label": translate("Actions"), htmlType: "button" });
119
100
  (0, react_1.useEffect)(() => {
120
101
  if (containerRef.current) {
121
102
  containerRef.current.setAttribute("role", "region");
@@ -128,13 +109,8 @@ const Card = (props) => {
128
109
  cardContentClasses
129
110
  ]), [cardContentClasses, isScrollable]);
130
111
  const dateClassName = (0, react_1.useMemo)(() => (0, classNames_1.classNames)(["zen-card__date", (isMobile && !isDrive) ? "zen-card__date--mobile" : "", dateDriveClasses !== null && dateDriveClasses !== void 0 ? dateDriveClasses : ""]), [isMobile, isDrive, dateDriveClasses]);
131
- const favoriteButton = (0, react_1.useMemo)(() => {
132
- if (props.onFavoriteChange === undefined) {
133
- return null;
134
- }
135
- return (0, jsx_runtime_1.jsx)(favoriteButton_1.FavoriteButton, { isFavorite: props.isFavorite || false, onChange: props.onFavoriteChange, className: "zen-card__favorite-button" });
136
- }, [props.isFavorite, props.onFavoriteChange]);
137
- return (0, jsx_runtime_1.jsxs)(cardContainer_1.CardContainer, { isMobile: isMobile, fullWidth: isFullWidth, fullHeight: isFullHeight, autoHeight: isAutoHeight, scrollable: isScrollable, ref: containerRef, size: size || "S", className: (0, classNames_1.classNames)(["zen-card", className]), children: [(0, jsx_runtime_1.jsxs)("div", { className: "zen-card__header", ref: headerRef, children: [(0, jsx_runtime_1.jsxs)("div", { className: "zen-card__header-primary", children: [(0, jsx_runtime_1.jsx)(title_1.Title, { id: titleId, link: link, isMobile: isMobile, title: title, icon: icon, iconType: iconType }), (0, jsx_runtime_1.jsxs)("div", { className: "zen-card__header-right", children: [!!headerActions.length && headerActions, date ? (0, jsx_runtime_1.jsx)("span", { className: dateClassName, children: date }) : null, favoriteButton, status && (0, jsx_runtime_1.jsx)(status_1.Status, { title: title, status: status, isMobile: isMobile, tooltip: tooltip, tooltipAlignment: tooltipAlignment, tooltipSize: tooltipSize }), !!menuActions.length && (0, jsx_runtime_1.jsx)(menu_1.Menu, { trigger: menuTrigger, title: title, children: menuActions.map(action => (0, react_1.createElement)(menu_1.Menu.Item, Object.assign({ key: action.props.id }, action.props))) })] })] }), secondary ? (0, jsx_runtime_1.jsx)("div", { className: "zen-card__secondary", children: secondary }) : null] }), (0, jsx_runtime_1.jsx)("div", { className: cardContentClassName, children: content })] });
112
+ return (0, jsx_runtime_1.jsxs)(cardContainer_1.CardContainer, { isMobile: isMobile, fullWidth: isFullWidth, fullHeight: isFullHeight, autoHeight: isAutoHeight, scrollable: isScrollable, ref: containerRef, size: size || "S", className: (0, classNames_1.classNames)(["zen-card", className]), children: [(0, jsx_runtime_1.jsxs)("div", { className: "zen-card__header", ref: headerRef, children: [(0, jsx_runtime_1.jsx)(title_1.Title, { id: titleId, link: link, isMobile: isMobile, title: title }), status && (0, jsx_runtime_1.jsx)(status_1.Status, { title: title, status: status, isMobile: isMobile, tooltip: tooltip, tooltipAlignment: tooltipAlignment, tooltipSize: tooltipSize }), (0, jsx_runtime_1.jsxs)("div", { className: "zen-card__header-right", children: [!!headerActions.length && headerActions, (0, jsx_runtime_1.jsx)("span", { className: dateClassName, children: date }), !!menuActions.length && (0, jsx_runtime_1.jsx)(menu_1.Menu, { trigger: menuTrigger, title: title, children: menuActions.map(action => (0, react_1.createElement)(menu_1.Menu.Item, Object.assign({ key: action.props.id }, action.props))) })] })] }), (0, jsx_runtime_1.jsx)("div", { className: cardContentClassName, children: content }), (link && isMobile) ?
113
+ (0, jsx_runtime_1.jsx)("div", { className: "zen-card__footer", ref: footerRef, children: (0, jsx_runtime_1.jsx)(titleLink_1.TitleLink, { id: titleId, link: link, titleIconClasses: titleIconClasses, ariaLabel: title }) }) : ""] });
138
114
  };
139
115
  exports.Card = Card;
140
116
  exports.TRANSLATIONS = [
@@ -8,6 +8,5 @@ export interface ICardButton extends IZenIdComponentProps {
8
8
  link?: string;
9
9
  onClick?: React.MouseEventHandler<HTMLButtonElement>;
10
10
  disabled?: boolean;
11
- inContextMenu?: boolean;
12
11
  }
13
12
  export declare const CardButton: FC<ICardButton>;
@@ -1,15 +1,11 @@
1
- import { FC, FunctionComponent } from "react";
1
+ import { FC } from "react";
2
2
  import "./title.less";
3
- import { IIcon } from "../../icons/icon";
4
- export type TIconType = "info" | "warning" | "error" | "success" | "default";
5
3
  interface ITitle {
6
4
  isMobile: boolean;
7
5
  title: string;
8
6
  id: string;
9
7
  className?: string;
10
8
  link?: string;
11
- icon?: FunctionComponent<IIcon>;
12
- iconType?: TIconType;
13
9
  }
14
10
  export declare const Title: FC<ITitle>;
15
11
  export {};
@@ -2,19 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Title = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
5
  const classNames_1 = require("../../commonHelpers/classNames/classNames");
6
+ const titleLink_1 = require("./titleLink");
7
7
  const useDriveClassName_1 = require("../../utils/theme/useDriveClassName");
8
8
  const useDrive_1 = require("../../utils/theme/useDrive");
9
- const iconChevronRightSmall_1 = require("../../icons/iconChevronRightSmall");
10
- const Title = ({ isMobile, link, title, id, icon, iconType, className = "" }) => {
9
+ const Title = ({ isMobile, link, title, id, className = "" }) => {
11
10
  const driveClassNames = (0, useDriveClassName_1.useDriveClassName)("zen-title__text");
12
11
  const isDrive = (0, useDrive_1.useDrive)();
13
- const iconClassName = iconType ? `zen-card-title__icon--${iconType}` : "";
14
- return (0, jsx_runtime_1.jsxs)("div", { className: "zen-card-title", children: [icon
15
- ? (0, jsx_runtime_1.jsx)("div", { className: (0, classNames_1.classNames)(["zen-card-title__icon", iconClassName]), children: (0, react_1.createElement)(icon, { size: "large" }) })
16
- : null, link
17
- ? (0, jsx_runtime_1.jsxs)("a", { id: id, className: (0, classNames_1.classNames)(["zen-card-title__link"]), href: link, children: [(0, jsx_runtime_1.jsx)("span", { className: (0, classNames_1.classNames)(["zen-card-title__link-text"]), children: title }), (0, jsx_runtime_1.jsx)("div", { className: "zen-card-title__link-chevron", children: (0, jsx_runtime_1.jsx)(iconChevronRightSmall_1.IconChevronRightSmall, { size: "large", className: "zen-card-title__chevron-icon" }) })] })
18
- : (0, jsx_runtime_1.jsx)("span", { id: id, className: (0, classNames_1.classNames)(["zen-card-title__text", (isMobile && !isDrive) ? "zen-card-title__text--mobile" : "", driveClassNames !== null && driveClassNames !== void 0 ? driveClassNames : "", className]), children: title })] });
12
+ return (link && !isMobile) ?
13
+ (0, jsx_runtime_1.jsx)(titleLink_1.TitleLink, { id: id, link: link, children: title }) :
14
+ (0, jsx_runtime_1.jsx)("span", { id: id, className: (0, classNames_1.classNames)(["zen-title__text", (isMobile && !isDrive) ? "zen-title__text--mobile" : "", driveClassNames !== null && driveClassNames !== void 0 ? driveClassNames : "", className]), children: title });
19
15
  };
20
16
  exports.Title = Title;
@@ -22,6 +22,7 @@
22
22
  --border-radius-default: 4px;
23
23
  --padding-top-bottom: 8px;
24
24
  --padding-left-right: 8px;
25
+ --mobile: 640px;
25
26
  }
26
27
 
27
28
  .zen-visually-hidden {
@@ -87,7 +87,7 @@ const DateInput = ({ className, classNamePopup, defaultValue, value, onChange, i
87
87
  }
88
88
  prevIsOpenRef.current = isOpen;
89
89
  }, [isOpen]);
90
- return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, { htmlType: "button", icon: iconCalendar_1.IconCalendar, iconPosition: textIconButton_1.ButtonIconPosition.Start, className: cssClass, disabled: disabled, onClick: toggleVisibility, ref: triggerRef, children: getButtonLabel() }), isMobile ? memoizedMobileView : memoizedDesktopView, (0, jsx_runtime_1.jsx)(formFieldError_1.FormFieldError, { error: error })] });
90
+ return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, { id: id || undefined, htmlType: "button", icon: iconCalendar_1.IconCalendar, iconPosition: textIconButton_1.ButtonIconPosition.Start, className: cssClass, disabled: disabled, onClick: toggleVisibility, ref: triggerRef, children: getButtonLabel() }), isMobile ? memoizedMobileView : memoizedDesktopView, (0, jsx_runtime_1.jsx)(formFieldError_1.FormFieldError, { error: error })] });
91
91
  };
92
92
  exports.DateInput = DateInput;
93
93
  exports.TRANSLATIONS = [
@@ -345,7 +345,8 @@ const Dropdown = ({ className, classNamePopup, getData, errorHandler, dataItems,
345
345
  // eslint-disable-next-line complexity
346
346
  const getPopupContent = (0, react_1.useMemo)(() => {
347
347
  var _a, _b, _c;
348
- let currentWidth = (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().width;
348
+ const triggerRefWidth = (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().width;
349
+ let currentWidth = triggerRefWidth ? Math.round(triggerRefWidth) : undefined;
349
350
  if (currentWidth && currentWidth > 420) {
350
351
  currentWidth = 420;
351
352
  }
@@ -55,6 +55,7 @@ const GroupsFilter = ({ fullSize, className, dataLoader, errorHandler, isWithCol
55
55
  const handleCancel = () => {
56
56
  dispatchUiState({ type: uiStateActionType_1.UiStateActionType.SetIsOpen, payload: false });
57
57
  dispatchState({ type: stateActionType_1.StateActionType.SetState, payload: state.frozenState });
58
+ dispatchState({ type: stateActionType_1.StateActionType.SideWide, payload: state.frozenSideWideState });
58
59
  handleSetStep(groupsFilterInterfaces_1.FilterMenuStep.Initial);
59
60
  };
60
61
  const handleApply = () => {
@@ -92,7 +92,7 @@ function stateReducer(state, action) {
92
92
  return Object.assign(Object.assign({}, state), { selectedIds: Array.from(currentSelectedIds) });
93
93
  }
94
94
  case stateActionType_1.StateActionType.ResetSelection:
95
- return Object.assign(Object.assign({}, state), { selectedIds: [], advancedFilterState: (0, groupsHelper_1.getDefaultFilterState)(), relation: groupsHelper_1.DEFAULT_RELATION_OPERATOR });
95
+ return Object.assign(Object.assign({}, state), { selectedIds: [], advancedFilterState: (0, groupsHelper_1.getDefaultFilterState)(), relation: groupsHelper_1.DEFAULT_RELATION_OPERATOR, sideWideState: false });
96
96
  case stateActionType_1.StateActionType.SelectAllChildren: {
97
97
  const currentEl = state.groupsMap[payload];
98
98
  const newSelected = new Set(state.selectedIds);