@kaizen/components 2.2.4 → 2.3.1

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 (37) hide show
  1. package/dist/cjs/src/MenuV1/index.cjs +4 -3
  2. package/dist/cjs/src/TitleBlock/TitleBlock.cjs +26 -36
  3. package/dist/cjs/src/TitleBlock/TitleBlock.module.scss.cjs +3 -0
  4. package/dist/cjs/src/TitleBlock/subcomponents/MainActions.cjs +90 -45
  5. package/dist/cjs/src/TitleBlock/subcomponents/MainActions.module.scss.cjs +3 -1
  6. package/dist/cjs/src/TitleBlock/subcomponents/SecondaryActions.cjs +51 -14
  7. package/dist/esm/src/MenuV1/index.mjs +5 -3
  8. package/dist/esm/src/TitleBlock/TitleBlock.mjs +27 -37
  9. package/dist/esm/src/TitleBlock/TitleBlock.module.scss.mjs +3 -0
  10. package/dist/esm/src/TitleBlock/subcomponents/MainActions.mjs +92 -47
  11. package/dist/esm/src/TitleBlock/subcomponents/MainActions.module.scss.mjs +3 -1
  12. package/dist/esm/src/TitleBlock/subcomponents/SecondaryActions.mjs +51 -14
  13. package/dist/styles.css +78 -207
  14. package/dist/types/TitleBlock/TitleBlock.d.ts +1 -1
  15. package/dist/types/TitleBlock/subcomponents/MainActions.d.ts +4 -3
  16. package/package.json +1 -1
  17. package/src/TitleBlock/TitleBlock.module.scss +51 -14
  18. package/src/TitleBlock/TitleBlock.spec.tsx +33 -461
  19. package/src/TitleBlock/TitleBlock.tsx +4 -24
  20. package/src/TitleBlock/_docs/TitleBlock.stories.tsx +78 -100
  21. package/src/TitleBlock/_mixins.scss +6 -0
  22. package/src/TitleBlock/subcomponents/MainActions.module.scss +27 -2
  23. package/src/TitleBlock/subcomponents/MainActions.tsx +127 -70
  24. package/src/TitleBlock/subcomponents/SecondaryActions.tsx +105 -45
  25. package/src/TitleBlock/subcomponents/Toolbar.tsx +1 -0
  26. package/dist/cjs/src/MenuV1/subcomponents/MenuHeading/MenuHeading.cjs +0 -27
  27. package/dist/cjs/src/MenuV1/subcomponents/MenuHeading/MenuHeading.module.scss.cjs +0 -6
  28. package/dist/cjs/src/TitleBlock/subcomponents/MobileActions.cjs +0 -306
  29. package/dist/cjs/src/TitleBlock/subcomponents/MobileActions.module.scss.cjs +0 -16
  30. package/dist/esm/src/MenuV1/subcomponents/MenuHeading/MenuHeading.mjs +0 -21
  31. package/dist/esm/src/MenuV1/subcomponents/MenuHeading/MenuHeading.module.scss.mjs +0 -4
  32. package/dist/esm/src/TitleBlock/subcomponents/MobileActions.mjs +0 -300
  33. package/dist/esm/src/TitleBlock/subcomponents/MobileActions.module.scss.mjs +0 -14
  34. package/dist/types/TitleBlock/subcomponents/MobileActions.d.ts +0 -14
  35. package/src/TitleBlock/subcomponents/MobileActions.module.scss +0 -208
  36. package/src/TitleBlock/subcomponents/MobileActions.spec.tsx +0 -210
  37. package/src/TitleBlock/subcomponents/MobileActions.tsx +0 -472
@@ -1,17 +1,18 @@
1
1
  'use strict';
2
2
 
3
3
  var Menu$1 = require('./Menu.cjs');
4
- var MenuHeading$1 = require('./subcomponents/MenuHeading/MenuHeading.cjs');
4
+ require('tslib');
5
+ require('react');
6
+ require('classnames');
7
+ require('../Heading/Heading.cjs');
5
8
  var MenuItem$1 = require('./subcomponents/MenuItem/MenuItem.cjs');
6
9
  var MenuList$1 = require('./subcomponents/MenuList/MenuList.cjs');
7
10
  require('./subcomponents/StatelessMenu/StatelessMenu.cjs');
8
11
 
9
12
  // Since we can't add a deprecation flag on a * export
10
13
  var Menu = Menu$1.Menu;
11
- var MenuHeading = MenuHeading$1.MenuHeading;
12
14
  var MenuItem = MenuItem$1.MenuItem;
13
15
  var MenuList = MenuList$1.MenuList;
14
16
  exports.Menu = Menu;
15
- exports.MenuHeading = MenuHeading;
16
17
  exports.MenuItem = MenuItem;
17
18
  exports.MenuList = MenuList;
@@ -12,7 +12,6 @@ var Select = require('../Select/Select.cjs');
12
12
  var Tag = require('../Tag/Tag.cjs');
13
13
  var useMediaQueries = require('../utils/useMediaQueries.cjs');
14
14
  var MainActions = require('./subcomponents/MainActions.cjs');
15
- var MobileActions = require('./subcomponents/MobileActions.cjs');
16
15
  var SecondaryActions = require('./subcomponents/SecondaryActions.cjs');
17
16
  var utils = require('./utils.cjs');
18
17
  var TitleBlock_module = require('./TitleBlock.module.scss.cjs');
@@ -172,7 +171,7 @@ var renderNavigationTabs = function (navigationTabs, collapse, ariaLabel) {
172
171
  * {@link https://cultureamp.design/?path=/docs/components-titleblock-api-specification--docs Storybook}
173
172
  */
174
173
  var TitleBlock = function (_a) {
175
- var _b, _c, _d, _e;
174
+ var _b, _c, _d;
176
175
  var title = _a.title,
177
176
  variant = _a.variant,
178
177
  breadcrumb = _a.breadcrumb,
@@ -188,32 +187,30 @@ var TitleBlock = function (_a) {
188
187
  secondaryActions = _a.secondaryActions,
189
188
  secondaryOverflowMenuItems = _a.secondaryOverflowMenuItems,
190
189
  navigationTabs = _a.navigationTabs,
191
- _f = _a.collapseNavigationAreaWhenPossible,
192
- collapseNavigationAreaWhenPossible = _f === void 0 ? false : _f,
190
+ _e = _a.collapseNavigationAreaWhenPossible,
191
+ collapseNavigationAreaWhenPossible = _e === void 0 ? false : _e,
193
192
  textDirection = _a.textDirection,
194
193
  surveyStatus = _a.surveyStatus,
195
194
  id = _a.id,
196
- _g = _a.titleAutomationId,
197
- titleAutomationId = _g === void 0 ? 'TitleBlock__Title' : _g,
198
- _h = _a.avatarAutomationId,
199
- avatarAutomationId = _h === void 0 ? 'TitleBlock__Avatar' : _h,
200
- _j = _a.subtitleAutomationId,
201
- subtitleAutomationId = _j === void 0 ? 'TitleBlock__Subtitle' : _j,
202
- _k = _a.sectionTitleAutomationId,
203
- sectionTitleAutomationId = _k === void 0 ? 'TitleBlock__SectionTitle' : _k,
204
- _l = _a.sectionTitleDescriptionAutomationId,
205
- sectionTitleDescriptionAutomationId = _l === void 0 ? 'TitleBlock__SectionTitleDescription' : _l,
206
- _m = _a.breadcrumbAutomationId,
207
- breadcrumbAutomationId = _m === void 0 ? 'TitleBlock__Breadcrumb' : _m,
208
- _o = _a.breadcrumbTextAutomationId,
209
- breadcrumbTextAutomationId = _o === void 0 ? 'TitleBlock__BreadcrumbText' : _o,
210
- _p = _a.autoHideMobileActionsMenu,
211
- autoHideMobileActionsMenu = _p === void 0 ? false : _p;
195
+ _f = _a.titleAutomationId,
196
+ titleAutomationId = _f === void 0 ? 'TitleBlock__Title' : _f,
197
+ _g = _a.avatarAutomationId,
198
+ avatarAutomationId = _g === void 0 ? 'TitleBlock__Avatar' : _g,
199
+ _h = _a.subtitleAutomationId,
200
+ subtitleAutomationId = _h === void 0 ? 'TitleBlock__Subtitle' : _h,
201
+ _j = _a.sectionTitleAutomationId,
202
+ sectionTitleAutomationId = _j === void 0 ? 'TitleBlock__SectionTitle' : _j,
203
+ _k = _a.sectionTitleDescriptionAutomationId,
204
+ sectionTitleDescriptionAutomationId = _k === void 0 ? 'TitleBlock__SectionTitleDescription' : _k,
205
+ _l = _a.breadcrumbAutomationId,
206
+ breadcrumbAutomationId = _l === void 0 ? 'TitleBlock__Breadcrumb' : _l,
207
+ _m = _a.breadcrumbTextAutomationId,
208
+ breadcrumbTextAutomationId = _m === void 0 ? 'TitleBlock__BreadcrumbText' : _m;
212
209
  var hasNavigationTabs = navigationTabs && navigationTabs.length > 0;
213
210
  var collapseNavigationArea = collapseNavigationAreaWhenPossible && !hasNavigationTabs && secondaryActions === undefined;
214
- var _q = useMediaQueries.useMediaQueries().queries,
215
- isSmall = _q.isSmall,
216
- isMedium = _q.isMedium;
211
+ var _o = useMediaQueries.useMediaQueries().queries,
212
+ isSmall = _o.isSmall,
213
+ isMedium = _o.isMedium;
217
214
  var isSmallOrMediumViewport = isMedium || isSmall;
218
215
  return React__default.default.createElement(React__default.default.Fragment, null, React__default.default.createElement("div", {
219
216
  id: id,
@@ -266,19 +263,19 @@ var TitleBlock = function (_a) {
266
263
  variant: "secondary",
267
264
  reversed: true,
268
265
  fullWidth: true
269
- })))))), ((_d = (_c = primaryAction !== null && primaryAction !== void 0 ? primaryAction : defaultAction) !== null && _c !== void 0 ? _c : secondaryActions) !== null && _d !== void 0 ? _d : secondaryOverflowMenuItems) && React__default.default.createElement(MainActions.MainActions, {
266
+ })))))), ((_c = primaryAction !== null && primaryAction !== void 0 ? primaryAction : defaultAction) !== null && _c !== void 0 ? _c : secondaryActions) && React__default.default.createElement(MainActions.MainActions, {
270
267
  primaryAction: primaryAction,
271
268
  defaultAction: defaultAction,
272
- reversed: utils.isReversed(variant),
273
- overflowMenuItems: utils.createTabletOverflowMenuItems(secondaryActions, secondaryOverflowMenuItems),
274
- showOverflowMenu: isSmallOrMediumViewport
269
+ secondaryActions: secondaryActions,
270
+ secondaryOverflowMenuItems: secondaryOverflowMenuItems,
271
+ reversed: utils.isReversed(variant)
275
272
  })))), React__default.default.createElement("div", {
276
273
  className: TitleBlock_module.rowBelowSeparator
277
274
  }, React__default.default.createElement("div", {
278
275
  className: TitleBlock_module.rowBelowSeparatorInner
279
276
  }, React__default.default.createElement("div", {
280
277
  className: TitleBlock_module.rowBelowSeparatorInnerContent
281
- }, ((_e = sectionTitle !== null && sectionTitle !== void 0 ? sectionTitle : sectionTitleDescription) !== null && _e !== void 0 ? _e : renderSectionTitle) && React__default.default.createElement("div", {
278
+ }, ((_d = sectionTitle !== null && sectionTitle !== void 0 ? sectionTitle : sectionTitleDescription) !== null && _d !== void 0 ? _d : renderSectionTitle) && React__default.default.createElement("div", {
282
279
  className: TitleBlock_module.sectionTitleContainer
283
280
  }, React__default.default.createElement("div", {
284
281
  className: TitleBlock_module.sectionTitleInner
@@ -291,14 +288,7 @@ var TitleBlock = function (_a) {
291
288
  secondaryActions: secondaryActions,
292
289
  secondaryOverflowMenuItems: secondaryOverflowMenuItems,
293
290
  reversed: utils.isReversed(variant)
294
- })))), React__default.default.createElement(MobileActions.MobileActions, {
295
- primaryAction: primaryAction,
296
- defaultAction: defaultAction,
297
- secondaryActions: secondaryActions,
298
- secondaryOverflowMenuItems: secondaryOverflowMenuItems,
299
- drawerHandleLabelIconPosition: primaryAction && 'iconPosition' in primaryAction ? primaryAction.iconPosition : undefined,
300
- autoHide: autoHideMobileActionsMenu
301
- })));
291
+ }))))));
302
292
  };
303
293
  TitleBlock.displayName = 'TitleBlock';
304
294
  exports.TitleBlock = TitleBlock;
@@ -47,6 +47,9 @@ var styles = {
47
47
  "navigationTabEdgeShadowRight": "TitleBlock-module_navigationTabEdgeShadowRight__xkIWc",
48
48
  "navigationTabEdgeShadowLeft": "TitleBlock-module_navigationTabEdgeShadowLeft__9pGhR",
49
49
  "secondaryActionsContainer": "TitleBlock-module_secondaryActionsContainer__-4q0l",
50
+ "secondaryOverflowCombinedMenu": "TitleBlock-module_secondaryOverflowCombinedMenu__CTddK",
51
+ "secondaryButtonContainer": "TitleBlock-module_secondaryButtonContainer__xFL9X",
52
+ "secondaryOverflowMenu": "TitleBlock-module_secondaryOverflowMenu__gvmgW",
50
53
  "slide-fade": "TitleBlock-module_slide-fade__o5TnP",
51
54
  "reverse-slide-fade": "TitleBlock-module_reverse-slide-fade__LZZ98",
52
55
  "breadcrumbText": "TitleBlock-module_breadcrumbText__vDi0k",
@@ -6,6 +6,8 @@ var Button = require('../../ButtonV1/Button/Button.cjs');
6
6
  var IconButton = require('../../ButtonV1/IconButton/IconButton.cjs');
7
7
  var Icon = require('../../Icon/Icon.cjs');
8
8
  var index = require('../../MenuV1/index.cjs');
9
+ require('../TitleBlock.cjs');
10
+ require('./NavigationTabs.cjs');
9
11
  var constants = require('../constants.cjs');
10
12
  var utils = require('../utils.cjs');
11
13
  var TitleBlockMenuItem = require('./TitleBlockMenuItem.cjs');
@@ -17,16 +19,94 @@ function _interopDefault(e) {
17
19
  };
18
20
  }
19
21
  var React__default = /*#__PURE__*/_interopDefault(React);
22
+ var renderSecondaryAndOverflowMenu = function (secondaryOverflowMenuItems, reversed) {
23
+ if (!secondaryOverflowMenuItems) return undefined;
24
+ return React__default.default.createElement(index.Menu, {
25
+ align: "right",
26
+ button: React__default.default.createElement(IconButton.IconButton, {
27
+ label: 'Open secondary and overflow menu',
28
+ reversed: reversed,
29
+ icon: React__default.default.createElement(Icon.Icon, {
30
+ name: "more_horiz",
31
+ isPresentational: true
32
+ }),
33
+ id: constants.TITLE_BLOCK_ZEN_SECONDARY_MENU_HTML_ID,
34
+ classNameOverride: MainActions_module.overflowMenuButton
35
+ })
36
+ }, React__default.default.createElement(index.MenuList, null, secondaryOverflowMenuItems.map(function (menuItem, i) {
37
+ return React__default.default.createElement(TitleBlockMenuItem.TitleBlockMenuItem, tslib.__assign({
38
+ key: i
39
+ }, menuItem));
40
+ })));
41
+ };
20
42
  var MainActions = function (_a) {
21
- var _b, _c, _d, _e;
43
+ var _b, _c, _d;
22
44
  var primaryAction = _a.primaryAction,
23
45
  defaultAction = _a.defaultAction,
24
- _f = _a.reversed,
25
- reversed = _f === void 0 ? false : _f,
26
- overflowMenuItems = _a.overflowMenuItems,
27
- _g = _a.showOverflowMenu,
28
- showOverflowMenu = _g === void 0 ? false : _g;
46
+ secondaryActions = _a.secondaryActions,
47
+ secondaryOverflowMenuItems = _a.secondaryOverflowMenuItems,
48
+ _e = _a.reversed,
49
+ reversed = _e === void 0 ? false : _e;
29
50
  var items;
51
+ // Build combined secondary + overflow menu items once, to be spread into the toolbar items
52
+ var secondaryAndOverflowMenu = [];
53
+ // Convert defaultAction to menu item format and prepend to combined list
54
+ var defaultActionMenuItem;
55
+ if (defaultAction) {
56
+ if ('component' in defaultAction) {
57
+ defaultActionMenuItem = defaultAction;
58
+ } else if ('onClick' in defaultAction) {
59
+ defaultActionMenuItem = {
60
+ label: defaultAction.label,
61
+ icon: defaultAction.icon,
62
+ onClick: defaultAction.onClick,
63
+ disabled: defaultAction.disabled
64
+ };
65
+ } else if ('href' in defaultAction) {
66
+ defaultActionMenuItem = {
67
+ label: defaultAction.label,
68
+ icon: defaultAction.icon,
69
+ href: defaultAction.href,
70
+ disabled: defaultAction.disabled
71
+ };
72
+ }
73
+ }
74
+ var combinedSecondaryOverflowItems = utils.createTabletOverflowMenuItems(secondaryActions, secondaryOverflowMenuItems);
75
+ // Prepend defaultAction to the combined list if it exists
76
+ var allMenuItems = defaultActionMenuItem ? tslib.__spreadArray([defaultActionMenuItem], combinedSecondaryOverflowItems, true) : combinedSecondaryOverflowItems;
77
+ if (allMenuItems.length > 0) {
78
+ secondaryAndOverflowMenu.push({
79
+ key: 'overflowMenu',
80
+ node: renderSecondaryAndOverflowMenu(allMenuItems, reversed)
81
+ });
82
+ }
83
+ var defaultActionItem = defaultAction ? [{
84
+ key: 'defaultAction',
85
+ node: React__default.default.createElement(Button.Button, tslib.__assign({
86
+ classNameOverride: MainActions_module.defaultActionButton
87
+ }, defaultAction, {
88
+ reversed: (_b = defaultAction.reversed) !== null && _b !== void 0 ? _b : reversed,
89
+ "data-automation-id": "title-block-default-action-button",
90
+ "data-testid": "title-block-default-action-button"
91
+ }))
92
+ }] : [];
93
+ var defaultActionItemMinimized = defaultAction ? [{
94
+ key: 'defaultActionMinimized',
95
+ node: React__default.default.createElement("div", {
96
+ className: MainActions_module.defaultActionButtonMinimized
97
+ }, React__default.default.createElement(index.Menu, {
98
+ align: "right",
99
+ button: React__default.default.createElement(IconButton.IconButton, {
100
+ label: 'Open default action overflow menu',
101
+ reversed: reversed,
102
+ icon: React__default.default.createElement(Icon.Icon, {
103
+ name: "more_horiz",
104
+ isPresentational: true
105
+ }),
106
+ id: constants.TITLE_BLOCK_ZEN_SECONDARY_MENU_HTML_ID
107
+ })
108
+ }, React__default.default.createElement(index.MenuList, null, defaultActionMenuItem && React__default.default.createElement(TitleBlockMenuItem.TitleBlockMenuItem, tslib.__assign({}, defaultActionMenuItem)))))
109
+ }] : [];
30
110
  if (primaryAction && utils.isMenuGroupNotButton(primaryAction)) {
31
111
  var menuContent = primaryAction.menuItems.map(function (item, idx) {
32
112
  return React__default.default.createElement(TitleBlockMenuItem.TitleBlockMenuItem, tslib.__assign({}, item, {
@@ -35,14 +115,7 @@ var MainActions = function (_a) {
35
115
  "data-testid": "main-action-primary-menu-item-".concat(idx)
36
116
  }));
37
117
  });
38
- items = tslib.__spreadArray(tslib.__spreadArray([], defaultAction ? [{
39
- key: 'defaultAction',
40
- node: React__default.default.createElement(Button.Button, tslib.__assign({}, defaultAction, {
41
- reversed: (_b = defaultAction.reversed) !== null && _b !== void 0 ? _b : reversed,
42
- "data-automation-id": "title-block-default-action-button",
43
- "data-testid": "title-block-default-action-button"
44
- }))
45
- }] : [], true), primaryAction ? [{
118
+ items = tslib.__spreadArray(tslib.__spreadArray(tslib.__spreadArray([], defaultActionItem, true), defaultActionItemMinimized, true), primaryAction ? [{
46
119
  key: 'primaryAction',
47
120
  node: React__default.default.createElement(index.Menu, {
48
121
  align: "right",
@@ -64,18 +137,11 @@ var MainActions = function (_a) {
64
137
  }, React__default.default.createElement(index.MenuList, null, menuContent))
65
138
  }] : [], true);
66
139
  } else {
67
- items = tslib.__spreadArray(tslib.__spreadArray([], defaultAction ? [{
68
- key: 'defaultAction',
69
- node: React__default.default.createElement(Button.Button, tslib.__assign({}, defaultAction, {
70
- reversed: (_c = defaultAction.reversed) !== null && _c !== void 0 ? _c : reversed,
71
- "data-automation-id": "title-block-default-action-button",
72
- "data-testid": "title-block-default-action-button"
73
- }))
74
- }] : [], true), primaryAction ? [{
140
+ items = tslib.__spreadArray(tslib.__spreadArray(tslib.__spreadArray([], defaultActionItem, true), defaultActionItemMinimized, true), primaryAction ? [{
75
141
  key: 'primaryAction',
76
142
  node: React__default.default.createElement(Button.Button, tslib.__assign({}, primaryAction, {
77
- primary: (_d = primaryAction.primary) !== null && _d !== void 0 ? _d : true,
78
- reversed: (_e = primaryAction.reversed) !== null && _e !== void 0 ? _e : reversed,
143
+ primary: (_c = primaryAction.primary) !== null && _c !== void 0 ? _c : true,
144
+ reversed: (_d = primaryAction.reversed) !== null && _d !== void 0 ? _d : reversed,
79
145
  "data-automation-id": "title-block-primary-action-button",
80
146
  "data-testid": "title-block-primary-action-button",
81
147
  badge: primaryAction.badge ? tslib.__assign(tslib.__assign({}, primaryAction.badge), {
@@ -84,27 +150,6 @@ var MainActions = function (_a) {
84
150
  }))
85
151
  }] : [], true);
86
152
  }
87
- if (overflowMenuItems && showOverflowMenu && overflowMenuItems.length > 0) {
88
- items = tslib.__spreadArray([{
89
- key: 'overflowMenu',
90
- node: React__default.default.createElement(index.Menu, {
91
- align: "right",
92
- button: React__default.default.createElement(IconButton.IconButton, {
93
- id: constants.TITLE_BLOCK_ZEN_SECONDARY_MENU_HTML_ID,
94
- label: "Open secondary menu",
95
- reversed: reversed,
96
- icon: React__default.default.createElement(Icon.Icon, {
97
- name: "more_horiz",
98
- isPresentational: true
99
- })
100
- })
101
- }, React__default.default.createElement(index.MenuList, null, overflowMenuItems.map(function (menuItem, idx) {
102
- return React__default.default.createElement(TitleBlockMenuItem.TitleBlockMenuItem, tslib.__assign({}, menuItem, {
103
- key: "main-action-overflow-item-menu-item-".concat(idx)
104
- }));
105
- })))
106
- }], items, true);
107
- }
108
153
  return React__default.default.createElement("div", {
109
154
  className: MainActions_module.mainActionsContainer
110
155
  }, React__default.default.createElement(Toolbar.Toolbar, {
@@ -1,6 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var styles = {
4
- "mainActionsContainer": "MainActions-module_mainActionsContainer__pk-78"
4
+ "mainActionsContainer": "MainActions-module_mainActionsContainer__pk-78",
5
+ "defaultActionButtonMinimized": "MainActions-module_defaultActionButtonMinimized__XePRS",
6
+ "defaultActionButton": "MainActions-module_defaultActionButton__VbER1"
5
7
  };
6
8
  module.exports = styles;
@@ -8,6 +8,7 @@ var Icon = require('../../Icon/Icon.cjs');
8
8
  var index = require('../../MenuV1/index.cjs');
9
9
  var TitleBlock_module = require('../TitleBlock.module.scss.cjs');
10
10
  var constants = require('../constants.cjs');
11
+ var utils = require('../utils.cjs');
11
12
  var TitleBlockMenuItem = require('./TitleBlockMenuItem.cjs');
12
13
  var Toolbar = require('./Toolbar.cjs');
13
14
  function _interopDefault(e) {
@@ -17,23 +18,53 @@ function _interopDefault(e) {
17
18
  }
18
19
  var React__default = /*#__PURE__*/_interopDefault(React);
19
20
  var renderSecondaryOverflowMenu = function (secondaryOverflowMenuItems, reversed) {
20
- if (!secondaryOverflowMenuItems) return undefined;
21
- return React__default.default.createElement(index.Menu, {
21
+ if (!secondaryOverflowMenuItems || secondaryOverflowMenuItems.length === 0) return undefined;
22
+ return React__default.default.createElement("div", {
23
+ className: TitleBlock_module.secondaryOverflowMenu
24
+ }, React__default.default.createElement(index.Menu, {
25
+ align: "right",
26
+ button: React__default.default.createElement(Button.Button, {
27
+ secondary: true,
28
+ reversed: reversed,
29
+ label: "Menu",
30
+ "data-automation-id": constants.TITLE_BLOCK_ZEN_SECONDARY_MENU_HTML_ID,
31
+ "data-testid": constants.TITLE_BLOCK_ZEN_SECONDARY_MENU_HTML_ID,
32
+ icon: React__default.default.createElement(Icon.Icon, {
33
+ name: "keyboard_arrow_down",
34
+ isPresentational: true
35
+ }),
36
+ iconPosition: 'end'
37
+ })
38
+ }, React__default.default.createElement(index.MenuList, null, secondaryOverflowMenuItems.map(function (menuItem, i) {
39
+ return React__default.default.createElement(TitleBlockMenuItem.TitleBlockMenuItem, tslib.__assign({
40
+ key: i
41
+ }, menuItem));
42
+ }))));
43
+ };
44
+ // New: combined overflow menu (secondary actions converted + overflow menu items)
45
+ var renderCombinedSecondaryOverflowMenu = function (secondaryActions, secondaryOverflowMenuItems, reversed) {
46
+ var secondaryConverted = secondaryActions ? utils.convertSecondaryActionsToMenuItems(secondaryActions) : [];
47
+ var overflowItems = secondaryOverflowMenuItems !== null && secondaryOverflowMenuItems !== void 0 ? secondaryOverflowMenuItems : [];
48
+ if (secondaryConverted.length === 0 && overflowItems.length === 0) return undefined;
49
+ var combined = tslib.__spreadArray(tslib.__spreadArray([], secondaryConverted, true), overflowItems, true);
50
+ return React__default.default.createElement("div", {
51
+ className: TitleBlock_module.secondaryOverflowCombinedMenu
52
+ }, React__default.default.createElement(index.Menu, {
22
53
  align: "right",
23
54
  button: React__default.default.createElement(IconButton.IconButton, {
24
- label: "Open secondary menu",
55
+ label: "Open combined secondary + overflow menu",
25
56
  reversed: reversed,
26
57
  icon: React__default.default.createElement(Icon.Icon, {
27
58
  name: "more_horiz",
28
59
  isPresentational: true
29
60
  }),
30
- id: constants.TITLE_BLOCK_ZEN_SECONDARY_MENU_HTML_ID
61
+ id: "".concat(constants.TITLE_BLOCK_ZEN_SECONDARY_MENU_HTML_ID, "__combined")
31
62
  })
32
- }, React__default.default.createElement(index.MenuList, null, secondaryOverflowMenuItems.map(function (menuItem, i) {
63
+ }, React__default.default.createElement(index.MenuList, null, combined.map(function (menuItem, i) {
33
64
  return React__default.default.createElement(TitleBlockMenuItem.TitleBlockMenuItem, tslib.__assign({
34
65
  key: i
35
66
  }, menuItem));
36
- })));
67
+ }))));
37
68
  };
38
69
  // Unfortunately, you'll notice below, that I needed to use the array index,
39
70
  // against react best practices (https://reactjs.org/docs/lists-and-keys.html)
@@ -47,9 +78,10 @@ var SecondaryActions = function (_a) {
47
78
  var secondaryActionsAsToolbarItems = secondaryActions ? secondaryActions.map(function (action, i) {
48
79
  if ('menuItems' in action) {
49
80
  return {
50
- key: "".concat(i),
51
- // We shouldn't use an index here, see note above
52
- node: React__default.default.createElement(index.Menu, {
81
+ key: "titleblock_secondary_action_".concat(i),
82
+ node: React__default.default.createElement("div", {
83
+ className: TitleBlock_module.secondaryButtonContainer
84
+ }, React__default.default.createElement(index.Menu, {
53
85
  align: "right",
54
86
  button: React__default.default.createElement(Button.Button, {
55
87
  secondary: true,
@@ -65,7 +97,7 @@ var SecondaryActions = function (_a) {
65
97
  return React__default.default.createElement(TitleBlockMenuItem.TitleBlockMenuItem, tslib.__assign({
66
98
  key: i2
67
99
  }, menuItem));
68
- })))
100
+ }))))
69
101
  };
70
102
  } else {
71
103
  if ('onClick' in action && 'href' in action) {
@@ -74,21 +106,26 @@ var SecondaryActions = function (_a) {
74
106
  }
75
107
  return {
76
108
  key: "".concat(i),
77
- // We shouldn't use an index here, see note above
78
- node: React__default.default.createElement(Button.Button, tslib.__assign({
109
+ node: React__default.default.createElement("div", {
110
+ className: TitleBlock_module.secondaryButtonContainer
111
+ }, React__default.default.createElement(Button.Button, tslib.__assign({
79
112
  secondary: true,
80
113
  reversed: reversed
81
114
  }, action, {
82
115
  "data-automation-id": "title-block-secondary-actions-button",
83
116
  "data-testid": "title-block-secondary-actions-button"
84
- }))
117
+ })))
85
118
  };
86
119
  }
87
120
  }) : [];
88
121
  var overflowMenu = renderSecondaryOverflowMenu(secondaryOverflowMenuItems, reversed);
89
- var toolbarItems = tslib.__spreadArray(tslib.__spreadArray([], secondaryActionsAsToolbarItems, true), overflowMenu ? [{
122
+ var combinedOverflowMenu = renderCombinedSecondaryOverflowMenu(secondaryActions, secondaryOverflowMenuItems, reversed);
123
+ var toolbarItems = tslib.__spreadArray(tslib.__spreadArray(tslib.__spreadArray([], secondaryActionsAsToolbarItems, true), overflowMenu ? [{
90
124
  key: 'overflowMenu',
91
125
  node: overflowMenu
126
+ }] : [], true), combinedOverflowMenu ? [{
127
+ key: 'combinedOverflowMenu',
128
+ node: combinedOverflowMenu
92
129
  }] : [], true);
93
130
  return React__default.default.createElement("div", {
94
131
  className: TitleBlock_module.secondaryActionsContainer
@@ -1,12 +1,14 @@
1
1
  import { Menu as Menu$1 } from './Menu.mjs';
2
- import { MenuHeading as MenuHeading$1 } from './subcomponents/MenuHeading/MenuHeading.mjs';
2
+ import 'tslib';
3
+ import 'react';
4
+ import 'classnames';
5
+ import '../Heading/Heading.mjs';
3
6
  import { MenuItem as MenuItem$1 } from './subcomponents/MenuItem/MenuItem.mjs';
4
7
  import { MenuList as MenuList$1 } from './subcomponents/MenuList/MenuList.mjs';
5
8
  import './subcomponents/StatelessMenu/StatelessMenu.mjs';
6
9
 
7
10
  // Since we can't add a deprecation flag on a * export
8
11
  var Menu = Menu$1;
9
- var MenuHeading = MenuHeading$1;
10
12
  var MenuItem = MenuItem$1;
11
13
  var MenuList = MenuList$1;
12
- export { Menu, MenuHeading, MenuItem, MenuList };
14
+ export { Menu, MenuItem, MenuList };
@@ -10,9 +10,8 @@ import { Select } from '../Select/Select.mjs';
10
10
  import { Tag } from '../Tag/Tag.mjs';
11
11
  import { useMediaQueries } from '../utils/useMediaQueries.mjs';
12
12
  import { MainActions } from './subcomponents/MainActions.mjs';
13
- import { MobileActions } from './subcomponents/MobileActions.mjs';
14
13
  import { SecondaryActions } from './subcomponents/SecondaryActions.mjs';
15
- import { isReversed, createTabletOverflowMenuItems } from './utils.mjs';
14
+ import { isReversed } from './utils.mjs';
16
15
  import styles from './TitleBlock.module.scss.mjs';
17
16
  var renderTag = function (surveyStatus) {
18
17
  var tagVariant;
@@ -164,7 +163,7 @@ var renderNavigationTabs = function (navigationTabs, collapse, ariaLabel) {
164
163
  */
165
164
  const TitleBlock = /*#__PURE__*/function () {
166
165
  const TitleBlock = function (_a) {
167
- var _b, _c, _d, _e;
166
+ var _b, _c, _d;
168
167
  var title = _a.title,
169
168
  variant = _a.variant,
170
169
  breadcrumb = _a.breadcrumb,
@@ -180,32 +179,30 @@ const TitleBlock = /*#__PURE__*/function () {
180
179
  secondaryActions = _a.secondaryActions,
181
180
  secondaryOverflowMenuItems = _a.secondaryOverflowMenuItems,
182
181
  navigationTabs = _a.navigationTabs,
183
- _f = _a.collapseNavigationAreaWhenPossible,
184
- collapseNavigationAreaWhenPossible = _f === void 0 ? false : _f,
182
+ _e = _a.collapseNavigationAreaWhenPossible,
183
+ collapseNavigationAreaWhenPossible = _e === void 0 ? false : _e,
185
184
  textDirection = _a.textDirection,
186
185
  surveyStatus = _a.surveyStatus,
187
186
  id = _a.id,
188
- _g = _a.titleAutomationId,
189
- titleAutomationId = _g === void 0 ? 'TitleBlock__Title' : _g,
190
- _h = _a.avatarAutomationId,
191
- avatarAutomationId = _h === void 0 ? 'TitleBlock__Avatar' : _h,
192
- _j = _a.subtitleAutomationId,
193
- subtitleAutomationId = _j === void 0 ? 'TitleBlock__Subtitle' : _j,
194
- _k = _a.sectionTitleAutomationId,
195
- sectionTitleAutomationId = _k === void 0 ? 'TitleBlock__SectionTitle' : _k,
196
- _l = _a.sectionTitleDescriptionAutomationId,
197
- sectionTitleDescriptionAutomationId = _l === void 0 ? 'TitleBlock__SectionTitleDescription' : _l,
198
- _m = _a.breadcrumbAutomationId,
199
- breadcrumbAutomationId = _m === void 0 ? 'TitleBlock__Breadcrumb' : _m,
200
- _o = _a.breadcrumbTextAutomationId,
201
- breadcrumbTextAutomationId = _o === void 0 ? 'TitleBlock__BreadcrumbText' : _o,
202
- _p = _a.autoHideMobileActionsMenu,
203
- autoHideMobileActionsMenu = _p === void 0 ? false : _p;
187
+ _f = _a.titleAutomationId,
188
+ titleAutomationId = _f === void 0 ? 'TitleBlock__Title' : _f,
189
+ _g = _a.avatarAutomationId,
190
+ avatarAutomationId = _g === void 0 ? 'TitleBlock__Avatar' : _g,
191
+ _h = _a.subtitleAutomationId,
192
+ subtitleAutomationId = _h === void 0 ? 'TitleBlock__Subtitle' : _h,
193
+ _j = _a.sectionTitleAutomationId,
194
+ sectionTitleAutomationId = _j === void 0 ? 'TitleBlock__SectionTitle' : _j,
195
+ _k = _a.sectionTitleDescriptionAutomationId,
196
+ sectionTitleDescriptionAutomationId = _k === void 0 ? 'TitleBlock__SectionTitleDescription' : _k,
197
+ _l = _a.breadcrumbAutomationId,
198
+ breadcrumbAutomationId = _l === void 0 ? 'TitleBlock__Breadcrumb' : _l,
199
+ _m = _a.breadcrumbTextAutomationId,
200
+ breadcrumbTextAutomationId = _m === void 0 ? 'TitleBlock__BreadcrumbText' : _m;
204
201
  var hasNavigationTabs = navigationTabs && navigationTabs.length > 0;
205
202
  var collapseNavigationArea = collapseNavigationAreaWhenPossible && !hasNavigationTabs && secondaryActions === undefined;
206
- var _q = useMediaQueries().queries,
207
- isSmall = _q.isSmall,
208
- isMedium = _q.isMedium;
203
+ var _o = useMediaQueries().queries,
204
+ isSmall = _o.isSmall,
205
+ isMedium = _o.isMedium;
209
206
  var isSmallOrMediumViewport = isMedium || isSmall;
210
207
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
211
208
  id: id,
@@ -258,19 +255,19 @@ const TitleBlock = /*#__PURE__*/function () {
258
255
  variant: "secondary",
259
256
  reversed: true,
260
257
  fullWidth: true
261
- }))))))), ((_d = (_c = primaryAction !== null && primaryAction !== void 0 ? primaryAction : defaultAction) !== null && _c !== void 0 ? _c : secondaryActions) !== null && _d !== void 0 ? _d : secondaryOverflowMenuItems) && (/*#__PURE__*/React.createElement(MainActions, {
258
+ }))))))), ((_c = primaryAction !== null && primaryAction !== void 0 ? primaryAction : defaultAction) !== null && _c !== void 0 ? _c : secondaryActions) && (/*#__PURE__*/React.createElement(MainActions, {
262
259
  primaryAction: primaryAction,
263
260
  defaultAction: defaultAction,
264
- reversed: isReversed(variant),
265
- overflowMenuItems: createTabletOverflowMenuItems(secondaryActions, secondaryOverflowMenuItems),
266
- showOverflowMenu: isSmallOrMediumViewport
261
+ secondaryActions: secondaryActions,
262
+ secondaryOverflowMenuItems: secondaryOverflowMenuItems,
263
+ reversed: isReversed(variant)
267
264
  }))))), /*#__PURE__*/React.createElement("div", {
268
265
  className: styles.rowBelowSeparator
269
266
  }, /*#__PURE__*/React.createElement("div", {
270
267
  className: styles.rowBelowSeparatorInner
271
268
  }, /*#__PURE__*/React.createElement("div", {
272
269
  className: styles.rowBelowSeparatorInnerContent
273
- }, ((_e = sectionTitle !== null && sectionTitle !== void 0 ? sectionTitle : sectionTitleDescription) !== null && _e !== void 0 ? _e : renderSectionTitle) && (/*#__PURE__*/React.createElement("div", {
270
+ }, ((_d = sectionTitle !== null && sectionTitle !== void 0 ? sectionTitle : sectionTitleDescription) !== null && _d !== void 0 ? _d : renderSectionTitle) && (/*#__PURE__*/React.createElement("div", {
274
271
  className: styles.sectionTitleContainer
275
272
  }, /*#__PURE__*/React.createElement("div", {
276
273
  className: styles.sectionTitleInner
@@ -283,14 +280,7 @@ const TitleBlock = /*#__PURE__*/function () {
283
280
  secondaryActions: secondaryActions,
284
281
  secondaryOverflowMenuItems: secondaryOverflowMenuItems,
285
282
  reversed: isReversed(variant)
286
- }))))), /*#__PURE__*/React.createElement(MobileActions, {
287
- primaryAction: primaryAction,
288
- defaultAction: defaultAction,
289
- secondaryActions: secondaryActions,
290
- secondaryOverflowMenuItems: secondaryOverflowMenuItems,
291
- drawerHandleLabelIconPosition: primaryAction && 'iconPosition' in primaryAction ? primaryAction.iconPosition : undefined,
292
- autoHide: autoHideMobileActionsMenu
293
- })));
283
+ })))))));
294
284
  };
295
285
  TitleBlock.displayName = 'TitleBlock';
296
286
  return TitleBlock;
@@ -45,6 +45,9 @@ var styles = {
45
45
  "navigationTabEdgeShadowRight": "TitleBlock-module_navigationTabEdgeShadowRight__xkIWc",
46
46
  "navigationTabEdgeShadowLeft": "TitleBlock-module_navigationTabEdgeShadowLeft__9pGhR",
47
47
  "secondaryActionsContainer": "TitleBlock-module_secondaryActionsContainer__-4q0l",
48
+ "secondaryOverflowCombinedMenu": "TitleBlock-module_secondaryOverflowCombinedMenu__CTddK",
49
+ "secondaryButtonContainer": "TitleBlock-module_secondaryButtonContainer__xFL9X",
50
+ "secondaryOverflowMenu": "TitleBlock-module_secondaryOverflowMenu__gvmgW",
48
51
  "slide-fade": "TitleBlock-module_slide-fade__o5TnP",
49
52
  "reverse-slide-fade": "TitleBlock-module_reverse-slide-fade__LZZ98",
50
53
  "breadcrumbText": "TitleBlock-module_breadcrumbText__vDi0k",