@gravity-ui/navigation 1.9.0 → 2.0.0-beta.0

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 (169) hide show
  1. package/README.md +12 -9
  2. package/build/cjs/{ActionBar-96a59723.js → ActionBar-38c4e24f.js} +2 -2
  3. package/build/cjs/ActionBar-38c4e24f.js.map +1 -0
  4. package/build/cjs/AsideFallback.js +4 -4
  5. package/build/cjs/AsideFallback.js.map +1 -1
  6. package/build/cjs/AsideHeader.js +6 -5
  7. package/build/cjs/AsideHeader.js.map +1 -1
  8. package/build/cjs/AsideHeaderContext.js.map +1 -1
  9. package/build/cjs/Drawer.js +3 -3
  10. package/build/cjs/Drawer.js.map +1 -1
  11. package/build/cjs/{FooterItem-eafaeac3.js → FooterItem-0b0d76e4.js} +56 -56
  12. package/build/cjs/FooterItem-0b0d76e4.js.map +1 -0
  13. package/build/cjs/FooterItem.js +5 -5
  14. package/build/cjs/FooterItem.js.map +1 -1
  15. package/build/cjs/{HotkeysPanel-2e240e4d.js → HotkeysPanel-4ad41893.js} +15 -15
  16. package/build/cjs/HotkeysPanel-4ad41893.js.map +1 -0
  17. package/build/cjs/{Item-b5ef87be.js → Item-d836a378.js} +50 -50
  18. package/build/cjs/Item-d836a378.js.map +1 -0
  19. package/build/cjs/PageLayout.js +5 -5
  20. package/build/cjs/PageLayout.js.map +1 -1
  21. package/build/cjs/PageLayoutAside.js +231 -230
  22. package/build/cjs/PageLayoutAside.js.map +1 -1
  23. package/build/cjs/{Settings-11b021e4.js → Settings-a0deac97.js} +47 -47
  24. package/build/cjs/Settings-a0deac97.js.map +1 -0
  25. package/build/cjs/{Title-c539667f.js → Title-54580605.js} +5 -5
  26. package/build/cjs/Title-54580605.js.map +1 -0
  27. package/build/cjs/{TopPanel-b531a2be.js → TopPanel-1b062791.js} +3 -3
  28. package/build/cjs/TopPanel-1b062791.js.map +1 -0
  29. package/build/cjs/{cn-1964a72a.js → cn-9933321a.js} +2 -1
  30. package/build/cjs/{cn-1964a72a.js.map → cn-9933321a.js.map} +1 -1
  31. package/build/cjs/components/AllPagesPanel/i18n/index.d.ts +1 -1
  32. package/build/cjs/components/AsideHeader/i18n/index.d.ts +1 -1
  33. package/build/cjs/components/AsideHeader/types.d.ts +1 -1
  34. package/build/cjs/components/CompositeBar/utils.d.ts +2 -2
  35. package/build/cjs/components/HotkeysPanel/HotkeysPanel.d.ts +1 -1
  36. package/build/cjs/components/MobileHeader/MobileHeader.d.ts +3 -3
  37. package/build/cjs/components/MobileHeader/i18n/index.d.ts +1 -1
  38. package/build/cjs/components/Settings/Settings.d.ts +1 -1
  39. package/build/cjs/components/Settings/i18n/index.d.ts +1 -1
  40. package/build/cjs/components/Title/i18n/index.d.ts +1 -1
  41. package/build/cjs/components/index.d.ts +0 -1
  42. package/build/cjs/components/types.d.ts +1 -1
  43. package/build/cjs/index.js +11 -16
  44. package/build/cjs/index.js.map +1 -1
  45. package/build/cjs/index2.js +2 -2
  46. package/build/cjs/index3.js +4 -4
  47. package/build/cjs/index4.js +2 -2
  48. package/build/cjs/index5.js +6 -6
  49. package/build/cjs/index6.js +6 -6
  50. package/build/cjs/utils-db3e03c2.js +8 -0
  51. package/build/cjs/{utils-a93dd754.js.map → utils-db3e03c2.js.map} +1 -1
  52. package/build/esm/{ActionBar-68f814a3.js → ActionBar-affc1f80.js} +2 -2
  53. package/build/esm/ActionBar-affc1f80.js.map +1 -0
  54. package/build/esm/AsideFallback.js +4 -4
  55. package/build/esm/AsideFallback.js.map +1 -1
  56. package/build/esm/AsideHeader.js +6 -5
  57. package/build/esm/AsideHeader.js.map +1 -1
  58. package/build/esm/AsideHeaderContext.js.map +1 -1
  59. package/build/esm/Drawer.js +3 -3
  60. package/build/esm/Drawer.js.map +1 -1
  61. package/build/esm/{FooterItem-39ac7c22.js → FooterItem-76774de7.js} +57 -57
  62. package/build/esm/FooterItem-76774de7.js.map +1 -0
  63. package/build/esm/FooterItem.js +5 -5
  64. package/build/esm/FooterItem.js.map +1 -1
  65. package/build/esm/{HotkeysPanel-bd0e997d.js → HotkeysPanel-9138824c.js} +15 -15
  66. package/build/esm/HotkeysPanel-9138824c.js.map +1 -0
  67. package/build/esm/{Item-c8057002.js → Item-9eb6b3be.js} +50 -50
  68. package/build/esm/Item-9eb6b3be.js.map +1 -0
  69. package/build/esm/PageLayout.js +5 -5
  70. package/build/esm/PageLayout.js.map +1 -1
  71. package/build/esm/PageLayoutAside.js +219 -218
  72. package/build/esm/PageLayoutAside.js.map +1 -1
  73. package/build/esm/{Settings-31634d93.js → Settings-0a78c1a7.js} +48 -48
  74. package/build/esm/Settings-0a78c1a7.js.map +1 -0
  75. package/build/esm/{Title-b2f2c4e9.js → Title-03b4255a.js} +5 -5
  76. package/build/esm/Title-03b4255a.js.map +1 -0
  77. package/build/esm/{TopPanel-36ffc4c7.js → TopPanel-2760cf72.js} +3 -3
  78. package/build/esm/TopPanel-2760cf72.js.map +1 -0
  79. package/build/esm/{cn-589cd9e2.js → cn-ffe5e9f5.js} +2 -2
  80. package/build/esm/{cn-589cd9e2.js.map → cn-ffe5e9f5.js.map} +1 -1
  81. package/build/esm/components/AllPagesPanel/i18n/index.d.ts +1 -1
  82. package/build/esm/components/AsideHeader/i18n/index.d.ts +1 -1
  83. package/build/esm/components/AsideHeader/types.d.ts +1 -1
  84. package/build/esm/components/CompositeBar/utils.d.ts +2 -2
  85. package/build/esm/components/HotkeysPanel/HotkeysPanel.d.ts +1 -1
  86. package/build/esm/components/MobileHeader/MobileHeader.d.ts +3 -3
  87. package/build/esm/components/MobileHeader/i18n/index.d.ts +1 -1
  88. package/build/esm/components/Settings/Settings.d.ts +1 -1
  89. package/build/esm/components/Settings/i18n/index.d.ts +1 -1
  90. package/build/esm/components/Title/i18n/index.d.ts +1 -1
  91. package/build/esm/components/index.d.ts +0 -1
  92. package/build/esm/components/types.d.ts +1 -1
  93. package/build/esm/index.js +11 -11
  94. package/build/esm/index2.js +2 -2
  95. package/build/esm/index3.js +4 -4
  96. package/build/esm/index4.js +2 -2
  97. package/build/esm/index5.js +6 -6
  98. package/build/esm/index6.js +6 -6
  99. package/build/esm/utils-117463a5.js +6 -0
  100. package/build/esm/{utils-6d5146c7.js.map → utils-117463a5.js.map} +1 -1
  101. package/package.json +30 -30
  102. package/build/cjs/ActionBar-96a59723.js.map +0 -1
  103. package/build/cjs/FooterItem-eafaeac3.js.map +0 -1
  104. package/build/cjs/HotkeysPanel-2e240e4d.js.map +0 -1
  105. package/build/cjs/Item-b5ef87be.js.map +0 -1
  106. package/build/cjs/Settings-11b021e4.js.map +0 -1
  107. package/build/cjs/Title-c539667f.js.map +0 -1
  108. package/build/cjs/TopPanel-b531a2be.js.map +0 -1
  109. package/build/cjs/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -20
  110. package/build/cjs/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
  111. package/build/cjs/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
  112. package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -13
  113. package/build/cjs/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -13
  114. package/build/cjs/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
  115. package/build/cjs/components/AsideHeader/__stories__/moc.d.ts +0 -5
  116. package/build/cjs/components/Drawer/__stories__/Drawer.stories.d.ts +0 -3
  117. package/build/cjs/components/Drawer/__stories__/DrawerShowcase.d.ts +0 -3
  118. package/build/cjs/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -5
  119. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -3
  120. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -3
  121. package/build/cjs/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
  122. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -5
  123. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
  124. package/build/cjs/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -3
  125. package/build/cjs/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
  126. package/build/cjs/components/MobileHeader/__stories__/moc.d.ts +0 -1
  127. package/build/cjs/components/Settings/__stories__/Settings.stories.d.ts +0 -4
  128. package/build/cjs/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
  129. package/build/cjs/components/Settings/__stories__/SettingsMobileDemo.d.ts +0 -8
  130. package/build/cjs/components/utils/configure.d.ts +0 -12
  131. package/build/cjs/components/utils/registerKeyset.d.ts +0 -5
  132. package/build/cjs/i18n.d.ts +0 -2
  133. package/build/cjs/registerKeyset-f4ce9ee7.js +0 -215
  134. package/build/cjs/registerKeyset-f4ce9ee7.js.map +0 -1
  135. package/build/cjs/utils-a93dd754.js +0 -8
  136. package/build/esm/ActionBar-68f814a3.js.map +0 -1
  137. package/build/esm/FooterItem-39ac7c22.js.map +0 -1
  138. package/build/esm/HotkeysPanel-bd0e997d.js.map +0 -1
  139. package/build/esm/Item-c8057002.js.map +0 -1
  140. package/build/esm/Settings-31634d93.js.map +0 -1
  141. package/build/esm/Title-b2f2c4e9.js.map +0 -1
  142. package/build/esm/TopPanel-36ffc4c7.js.map +0 -1
  143. package/build/esm/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -20
  144. package/build/esm/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
  145. package/build/esm/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
  146. package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -13
  147. package/build/esm/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -13
  148. package/build/esm/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
  149. package/build/esm/components/AsideHeader/__stories__/moc.d.ts +0 -5
  150. package/build/esm/components/Drawer/__stories__/Drawer.stories.d.ts +0 -3
  151. package/build/esm/components/Drawer/__stories__/DrawerShowcase.d.ts +0 -3
  152. package/build/esm/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -5
  153. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -3
  154. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -3
  155. package/build/esm/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
  156. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -5
  157. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
  158. package/build/esm/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -3
  159. package/build/esm/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
  160. package/build/esm/components/MobileHeader/__stories__/moc.d.ts +0 -1
  161. package/build/esm/components/Settings/__stories__/Settings.stories.d.ts +0 -4
  162. package/build/esm/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
  163. package/build/esm/components/Settings/__stories__/SettingsMobileDemo.d.ts +0 -8
  164. package/build/esm/components/utils/configure.d.ts +0 -12
  165. package/build/esm/components/utils/registerKeyset.d.ts +0 -5
  166. package/build/esm/i18n.d.ts +0 -2
  167. package/build/esm/registerKeyset-35f1ea08.js +0 -212
  168. package/build/esm/registerKeyset-35f1ea08.js.map +0 -1
  169. package/build/esm/utils-6d5146c7.js +0 -6
@@ -1,20 +1,175 @@
1
1
  import * as React from 'react';
2
- import React__default, { Component, createElement, useRef, useContext, useCallback, useMemo, useState, useEffect } from 'react';
3
- import { Popup, List, Icon, Button, Flex, Text, setRef } from '@gravity-ui/uikit';
4
- import { b as block } from './cn-589cd9e2.js';
5
- import { C as COLLAPSE_ITEM_ID, g as getItemsMinHeight, a as getAutosizeListItems, b as getSelectedItemIndex, c as getItemHeight, d as getItemsHeight, i as isMenuItem, I as Item, e as getMoreButtonItem } from './Item-c8057002.js';
2
+ import React__default, { useCallback, useMemo, useRef, useState, useEffect, Component, createElement, useContext } from 'react';
3
+ import { Icon, Button, Flex, Text, List, Popup, setRef } from '@gravity-ui/uikit';
4
+ import { Pin, PinFill, Ellipsis, Gear } from '@gravity-ui/icons';
5
+ import { useAsideHeaderInnerContext, useAsideHeaderContext, AsideHeaderInnerContextProvider } from './AsideHeaderContext.js';
6
+ import { b as block, N as NAMESPACE } from './cn-ffe5e9f5.js';
6
7
  import { s as styleInject } from './style-inject.es-1f59c1d0.js';
8
+ import { addComponentKeysets } from '@gravity-ui/uikit/i18n';
7
9
  import { a as ASIDE_HEADER_COMPACT_WIDTH, H as HEADER_DIVIDER_HEIGHT } from './constants-b1604ff5.js';
8
- import { useAsideHeaderContext, useAsideHeaderInnerContext, AsideHeaderInnerContextProvider } from './AsideHeaderContext.js';
9
- import { b as b$5 } from './utils-6d5146c7.js';
10
- import { Ellipsis, Pin, PinFill, Gear } from '@gravity-ui/icons';
11
- import { r as registerKeyset } from './registerKeyset-35f1ea08.js';
10
+ import { C as COLLAPSE_ITEM_ID, g as getItemsMinHeight, a as getAutosizeListItems, b as getSelectedItemIndex, c as getItemHeight, d as getItemsHeight, i as isMenuItem, I as Item, e as getMoreButtonItem } from './Item-9eb6b3be.js';
11
+ import { b as b$5 } from './utils-117463a5.js';
12
12
  import { h as headerDividerCollapsedIcon } from './divider-collapsed-6468fa36.js';
13
13
  import { Drawer, DrawerItem } from './Drawer.js';
14
14
  import './debounce-64cd2b4c.js';
15
15
  import '@bem-react/classname';
16
16
  import 'react-dom';
17
17
 
18
+ var css_248z$4 = ".gn-all-pages-list-item{align-items:center;column-gap:var(--g-spacing-4);display:flex;height:40px;padding:0 var(--g-spacing-6);width:100%}.gn-all-pages-list-item__text{flex:1}.gn-all-pages-list-item__icon{color:var(--g-color-text-misc)}";
19
+ styleInject(css_248z$4);
20
+
21
+ const b$4 = block('all-pages-list-item');
22
+ const AllPagesListItem = (props) => {
23
+ const { item, editMode, onToggle } = props;
24
+ const onPinButtonClick = useCallback((e) => {
25
+ e.stopPropagation();
26
+ e.preventDefault();
27
+ onToggle();
28
+ }, [onToggle]);
29
+ const onItemClick = (e) => {
30
+ if (editMode) {
31
+ e.stopPropagation();
32
+ e.preventDefault();
33
+ }
34
+ };
35
+ return (React__default.createElement("div", { className: b$4(), onClick: onItemClick },
36
+ item.icon ? (React__default.createElement(Icon, { className: b$4('icon'), data: item.icon, size: item.iconSize })) : null,
37
+ React__default.createElement("span", { className: b$4('text') }, item.title),
38
+ editMode && (React__default.createElement(Button, { onClick: onPinButtonClick, view: item.hidden ? 'flat-secondary' : 'flat-action' },
39
+ React__default.createElement(Button.Icon, null, item.hidden ? React__default.createElement(Pin, null) : React__default.createElement(PinFill, null))))));
40
+ };
41
+
42
+ var en$1 = {
43
+ "menu-item.all-pages.title": "All pages",
44
+ "all-panel.menu.category.allOther": "All other",
45
+ "all-panel.resetToDefault": "Reset to default",
46
+ "all-panel.title.editing": "Editing",
47
+ "all-panel.title.main": "All pages"
48
+ };
49
+
50
+ var ru$1 = {
51
+ "menu-item.all-pages.title": "Все страницы",
52
+ "all-panel.menu.category.allOther": "Остальное",
53
+ "all-panel.resetToDefault": "Сбросить по умолчанию",
54
+ "all-panel.title.editing": "Редактирование",
55
+ "all-panel.title.main": "Все страницы"
56
+ };
57
+
58
+ const COMPONENT$1 = 'AllPagesPanel';
59
+ var i18n$1 = addComponentKeysets({ en: en$1, ru: ru$1 }, `${NAMESPACE}${COMPONENT$1}`);
60
+
61
+ const ALL_PAGES_ID = 'all-pages';
62
+ function getAllPagesMenuItem() {
63
+ return {
64
+ id: ALL_PAGES_ID,
65
+ title: i18n$1('menu-item.all-pages.title'),
66
+ tooltipText: i18n$1('menu-item.all-pages.title'),
67
+ icon: Ellipsis,
68
+ };
69
+ }
70
+
71
+ const useGroupedMenuItems = (items) => {
72
+ const allPagesMenuItems = useMemo(() => {
73
+ const filteredItems = items.filter((item) => item.type !== 'divider' && item.id !== ALL_PAGES_ID);
74
+ filteredItems.sort((a, b) => {
75
+ if (a.type === 'action') {
76
+ return 1;
77
+ }
78
+ if (b.type === 'action') {
79
+ return -1;
80
+ }
81
+ return 0;
82
+ });
83
+ const groupedItems = filteredItems.reduce((acc, item) => {
84
+ const category = item.category || i18n$1('all-panel.menu.category.allOther');
85
+ if (!acc[category]) {
86
+ acc[category] = [];
87
+ }
88
+ acc[category].push(item);
89
+ return acc;
90
+ }, {});
91
+ return groupedItems;
92
+ }, [items]);
93
+ return allPagesMenuItems;
94
+ };
95
+
96
+ var css_248z$3 = ".gn-all-pages-panel{box-sizing:border-box;height:100%;min-width:300px;padding:var(--g-spacing-4) var(--g-spacing-6)}.gn-all-pages-panel__content{flex:1;margin:0 calc(var(--g-spacing-6)*-1);overflow:auto}.gn-all-pages-panel__category{padding:0 var(--g-spacing-6)}.gn-all-pages-panel__discoverable-feature-wrapper{display:flex}";
97
+ styleInject(css_248z$3);
98
+
99
+ const b$3 = block('all-pages-panel');
100
+ const AllPagesPanel = (props) => {
101
+ const { startEditIcon, onEditModeChanged, className } = props;
102
+ const { menuItems, onMenuItemsChanged } = useAsideHeaderInnerContext();
103
+ const menuItemsRef = useRef(menuItems);
104
+ menuItemsRef.current = menuItems;
105
+ const [isEditMode, setIsEditMode] = useState(false);
106
+ const toggleEditMode = useCallback(() => {
107
+ setIsEditMode((prev) => !prev);
108
+ }, []);
109
+ const groupedItems = useGroupedMenuItems(menuItems);
110
+ useEffect(() => {
111
+ onEditModeChanged === null || onEditModeChanged === void 0 ? void 0 : onEditModeChanged(isEditMode);
112
+ }, [isEditMode, onEditModeChanged]);
113
+ const onItemClick = useCallback((item) => {
114
+ var _a;
115
+ //@ts-ignore TODO fix when @gravity-ui/uikit/List will provide event arg on item click
116
+ (_a = item.onItemClick) === null || _a === void 0 ? void 0 : _a.call(item, item, false);
117
+ }, []);
118
+ const togglePageVisibility = useCallback((item) => {
119
+ if (!onMenuItemsChanged) {
120
+ return;
121
+ }
122
+ const changedItem = Object.assign(Object.assign({}, item), { hidden: !item.hidden });
123
+ const originItems = menuItemsRef.current.filter((menuItem) => menuItem.id !== ALL_PAGES_ID);
124
+ onMenuItemsChanged(originItems.map((menuItem) => {
125
+ if (menuItem.id !== changedItem.id) {
126
+ return menuItem;
127
+ }
128
+ return changedItem;
129
+ }));
130
+ }, [onMenuItemsChanged]);
131
+ const itemRender = useCallback((item, _isActive, _itemIndex) => (React__default.createElement(AllPagesListItem, { item: item, editMode: isEditMode, onToggle: () => togglePageVisibility(item) })), [isEditMode, togglePageVisibility]);
132
+ const onResetToDefaultClick = useCallback(() => {
133
+ if (!onMenuItemsChanged) {
134
+ return;
135
+ }
136
+ const originItems = menuItemsRef.current.filter((item) => item.id !== ALL_PAGES_ID);
137
+ onMenuItemsChanged(originItems.map((item) => (Object.assign(Object.assign({}, item), { hidden: false }))));
138
+ }, [onMenuItemsChanged]);
139
+ return (React__default.createElement(Flex, { className: b$3(null, className), gap: "5", direction: "column" },
140
+ React__default.createElement(Flex, { gap: "4", alignItems: "center", justifyContent: "space-between" },
141
+ React__default.createElement(Text, { variant: "subheader-2" }, isEditMode ? i18n$1('all-panel.title.editing') : i18n$1('all-panel.title.main')),
142
+ React__default.createElement(Button, { selected: isEditMode, view: "normal", onClick: toggleEditMode }, startEditIcon ? startEditIcon : React__default.createElement(Icon, { data: Gear }))),
143
+ React__default.createElement(Flex, { className: b$3('content'), gap: "5", direction: "column" }, Object.keys(groupedItems).map((category) => {
144
+ return (React__default.createElement(Flex, { key: category, direction: "column", gap: "3" },
145
+ React__default.createElement(Text, { className: b$3('category'), variant: "body-1", color: "secondary" }, category),
146
+ React__default.createElement(List, { virtualized: false, filterable: false, items: groupedItems[category], onItemClick: onItemClick, renderItem: itemRender })));
147
+ })),
148
+ isEditMode && (React__default.createElement(Button, { onClick: onResetToDefaultClick }, i18n$1('all-panel.resetToDefault')))));
149
+ };
150
+
151
+ const useVisibleMenuItems = () => {
152
+ const { menuItems, allPagesIsAvailable } = useAsideHeaderInnerContext();
153
+ return useMemo(() => {
154
+ if (!allPagesIsAvailable) {
155
+ return menuItems;
156
+ }
157
+ let lastVisibleIndex = 0;
158
+ return menuItems.filter((item, index, items) => {
159
+ if (item.hidden) {
160
+ return false;
161
+ }
162
+ if (index > 0 &&
163
+ item.type === 'divider' &&
164
+ (items[lastVisibleIndex].type === 'divider' || items[lastVisibleIndex].hidden)) {
165
+ return false;
166
+ }
167
+ lastVisibleIndex = index;
168
+ return true;
169
+ });
170
+ }, [allPagesIsAvailable, menuItems]);
171
+ };
172
+
18
173
  /**
19
174
  * Detect Element Resize.
20
175
  * https://github.com/sdecima/javascript-detect-element-resize
@@ -252,16 +407,15 @@ class AutoSizer extends Component {
252
407
  onResize
253
408
  } = this.props;
254
409
  if (this._parentNode) {
255
- var _style$paddingLeft, _style$paddingRight, _style$paddingTop, _style$paddingBottom;
256
410
  // Guard against AutoSizer component being removed from the DOM immediately after being added.
257
411
  // This can result in invalid style values which can result in NaN values if we don't handle them.
258
412
  // See issue #150 for more context.
259
413
 
260
414
  const style = window.getComputedStyle(this._parentNode) || {};
261
- const paddingLeft = parseFloat((_style$paddingLeft = style.paddingLeft) !== null && _style$paddingLeft !== void 0 ? _style$paddingLeft : "0");
262
- const paddingRight = parseFloat((_style$paddingRight = style.paddingRight) !== null && _style$paddingRight !== void 0 ? _style$paddingRight : "0");
263
- const paddingTop = parseFloat((_style$paddingTop = style.paddingTop) !== null && _style$paddingTop !== void 0 ? _style$paddingTop : "0");
264
- const paddingBottom = parseFloat((_style$paddingBottom = style.paddingBottom) !== null && _style$paddingBottom !== void 0 ? _style$paddingBottom : "0");
415
+ const paddingLeft = parseFloat(style.paddingLeft || "0");
416
+ const paddingRight = parseFloat(style.paddingRight || "0");
417
+ const paddingTop = parseFloat(style.paddingTop || "0");
418
+ const paddingBottom = parseFloat(style.paddingBottom || "0");
265
419
  const rect = this._parentNode.getBoundingClientRect();
266
420
  const scaledHeight = rect.height - paddingTop - paddingBottom;
267
421
  const scaledWidth = rect.width - paddingLeft - paddingRight;
@@ -412,10 +566,10 @@ class MultipleTooltipProvider extends React__default.PureComponent {
412
566
  }
413
567
  }
414
568
 
415
- var css_248z$4 = ".g-root_theme_dark .gn-multiple-tooltip,.g-root_theme_dark-hc .gn-multiple-tooltip{--multiple-tooltip-item-bg-color:var(--g-color-private-white-100-solid);--multiple-tooltip-item-active-bg-color:var(--g-color-base-float-heavy);--multiple-tooltip-backdrop-background:linear-gradient(90deg,var(--g-color-base-background) 50%,transparent);--multiple-tooltip-backdrop-filter:blur(16px)}.g-root_theme_dark-hc .gn-multiple-tooltip{--multiple-tooltip-item-bg-color:var(--g-color-private-white-150-solid)}.g-root_theme_light .gn-multiple-tooltip,.g-root_theme_light-hc .gn-multiple-tooltip{--multiple-tooltip-item-bg-color:var(--g-color-private-black-550-solid);--multiple-tooltip-item-active-bg-color:var(--g-color-base-float-heavy);--multiple-tooltip-backdrop-background:linear-gradient(90deg,var(--g-color-base-background) 50%,transparent);--multiple-tooltip-backdrop-filter:blur(12px)}.gn-multiple-tooltip.gn-multiple-tooltip{background-color:transparent;box-shadow:none}.gn-multiple-tooltip:before{background:var(--multiple-tooltip-backdrop-background);box-shadow:none;content:\"\";filter:var(--multiple-tooltip-backdrop-filter);height:100%;opacity:.7;position:absolute;width:100%;z-index:-1}.gn-multiple-tooltip__items-container{align-items:flex-start;display:flex;flex-direction:column;padding:32px 40px 32px 12px}.gn-multiple-tooltip__item{align-items:center;background-color:var(--multiple-tooltip-item-bg-color);border-radius:5px;box-sizing:border-box;color:var(--g-color-text-light-primary);display:flex;height:30px;margin-bottom:5px;padding:8px 12px;position:relative;transition:transform .1s ease-in-out}.gn-multiple-tooltip__item:first-child,.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider)+.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider){margin-top:5px}.gn-multiple-tooltip__item_divider+.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider){margin-top:4px}.gn-multiple-tooltip__item_active{background-color:var(--multiple-tooltip-item-active-bg-color);transform:translateX(-12px)}.gn-multiple-tooltip__item_divider{height:15px;margin:0;visibility:hidden}";
416
- styleInject(css_248z$4);
569
+ var css_248z$2 = ".g-root_theme_dark .gn-multiple-tooltip,.g-root_theme_dark-hc .gn-multiple-tooltip{--multiple-tooltip-item-bg-color:var(--g-color-private-white-100-solid);--multiple-tooltip-item-active-bg-color:var(--g-color-base-float-heavy);--multiple-tooltip-backdrop-background:linear-gradient(90deg,var(--g-color-base-background) 50%,transparent);--multiple-tooltip-backdrop-filter:blur(16px)}.g-root_theme_dark-hc .gn-multiple-tooltip{--multiple-tooltip-item-bg-color:var(--g-color-private-white-150-solid)}.g-root_theme_light .gn-multiple-tooltip,.g-root_theme_light-hc .gn-multiple-tooltip{--multiple-tooltip-item-bg-color:var(--g-color-private-black-550-solid);--multiple-tooltip-item-active-bg-color:var(--g-color-base-float-heavy);--multiple-tooltip-backdrop-background:linear-gradient(90deg,var(--g-color-base-background) 50%,transparent);--multiple-tooltip-backdrop-filter:blur(12px)}.gn-multiple-tooltip.gn-multiple-tooltip{background-color:transparent;box-shadow:none}.gn-multiple-tooltip:before{background:var(--multiple-tooltip-backdrop-background);box-shadow:none;content:\"\";filter:var(--multiple-tooltip-backdrop-filter);height:100%;opacity:.7;position:absolute;width:100%;z-index:-1}.gn-multiple-tooltip__items-container{align-items:flex-start;display:flex;flex-direction:column;padding:32px 40px 32px 12px}.gn-multiple-tooltip__item{align-items:center;background-color:var(--multiple-tooltip-item-bg-color);border-radius:5px;box-sizing:border-box;color:var(--g-color-text-light-primary);display:flex;height:30px;margin-bottom:5px;padding:8px 12px;position:relative;transition:transform .1s ease-in-out}.gn-multiple-tooltip__item:first-child,.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider)+.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider){margin-top:5px}.gn-multiple-tooltip__item_divider+.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider){margin-top:4px}.gn-multiple-tooltip__item_active{background-color:var(--multiple-tooltip-item-active-bg-color);transform:translateX(-12px)}.gn-multiple-tooltip__item_divider{height:15px;margin:0;visibility:hidden}";
570
+ styleInject(css_248z$2);
417
571
 
418
- const b$4 = block('multiple-tooltip');
572
+ const b$2 = block('multiple-tooltip');
419
573
  const POPUP_OFFSET = [-32, 4];
420
574
  const POPUP_MODIFIERS = [
421
575
  {
@@ -426,26 +580,26 @@ const POPUP_MODIFIERS = [
426
580
  const MultipleTooltip = ({ items, open, anchorRef, placement, }) => {
427
581
  const { activeIndex, hideCollapseItemTooltip } = React__default.useContext(MultipleTooltipContext);
428
582
  const activeItem = activeIndex === undefined ? null : items[activeIndex];
429
- return (React__default.createElement(Popup, { open: open, anchorRef: anchorRef, placement: placement, offset: POPUP_OFFSET, contentClassName: b$4(null), modifiers: POPUP_MODIFIERS, disableLayer: true },
430
- React__default.createElement("div", { className: b$4('items-container') }, items
583
+ return (React__default.createElement(Popup, { open: open, anchorRef: anchorRef, placement: placement, offset: POPUP_OFFSET, contentClassName: b$2(null), modifiers: POPUP_MODIFIERS, disableLayer: true },
584
+ React__default.createElement("div", { className: b$2('items-container') }, items
431
585
  .filter(({ type = 'regular', id }) => !hideCollapseItemTooltip ||
432
586
  (id !== COLLAPSE_ITEM_ID && type !== 'action'))
433
587
  .map((item, idx) => {
434
588
  switch (item.type) {
435
589
  case 'divider':
436
- return (React__default.createElement("div", { className: b$4('item', { divider: true }), key: idx }, item.title));
590
+ return (React__default.createElement("div", { className: b$2('item', { divider: true }), key: idx }, item.title));
437
591
  default:
438
- return (React__default.createElement("div", { className: b$4('item', {
592
+ return (React__default.createElement("div", { className: b$2('item', {
439
593
  active: item === activeItem,
440
594
  }), key: idx }, item.title));
441
595
  }
442
596
  }))));
443
597
  };
444
598
 
445
- var css_248z$3 = ".gn-composite-bar{flex:1 0 auto;min-height:40px;width:100%}.gn-composite-bar .gn-composite-bar__root-menu-item[class]{background-color:transparent}";
446
- styleInject(css_248z$3);
599
+ var css_248z$1 = ".gn-composite-bar{flex:1 0 auto;min-height:40px;width:100%}.gn-composite-bar .gn-composite-bar__root-menu-item[class]{background-color:transparent}";
600
+ styleInject(css_248z$1);
447
601
 
448
- const b$3 = block('composite-bar');
602
+ const b$1 = block('composite-bar');
449
603
  const CompositeBarView = ({ type, items, onItemClick, collapseItems, multipleTooltip = false, }) => {
450
604
  const ref = useRef(null);
451
605
  const tooltipRef = useRef(null);
@@ -550,7 +704,7 @@ const CompositeBarView = ({ type, items, onItemClick, collapseItems, multipleToo
550
704
  ]);
551
705
  return (React__default.createElement(React__default.Fragment, null,
552
706
  React__default.createElement("div", { ref: tooltipRef, onMouseEnter: onTooltipMouseEnter, onMouseLeave: onTooltipMouseLeave },
553
- React__default.createElement(List, { ref: ref, items: items, selectedItemIndex: type === 'menu' ? getSelectedItemIndex(items) : undefined, itemHeight: getItemHeight, itemsHeight: getItemsHeight, itemClassName: b$3('root-menu-item'), virtualized: false, filterable: false, sortable: false, renderItem: (item, _isItemActive, itemIndex) => {
707
+ React__default.createElement(List, { ref: ref, items: items, selectedItemIndex: type === 'menu' ? getSelectedItemIndex(items) : undefined, itemHeight: getItemHeight, itemsHeight: getItemsHeight, itemClassName: b$1('root-menu-item'), virtualized: false, filterable: false, sortable: false, renderItem: (item, _isItemActive, itemIndex) => {
554
708
  const itemExtraProps = isMenuItem(item) ? { item } : item;
555
709
  const enableTooltip = isMenuItem(item)
556
710
  ? !multipleTooltip
@@ -567,7 +721,7 @@ const CompositeBar = ({ type, items, menuMoreTitle, onItemClick, multipleTooltip
567
721
  if (type === 'menu') {
568
722
  const minHeight = getItemsMinHeight(items);
569
723
  const collapseItem = getMoreButtonItem(menuMoreTitle);
570
- node = (React__default.createElement("div", { className: b$3({ autosizer: true }), style: { minHeight } }, items.length !== 0 && (React__default.createElement(AutoSizer, null, (size) => {
724
+ node = (React__default.createElement("div", { className: b$1({ autosizer: true }), style: { minHeight } }, items.length !== 0 && (React__default.createElement(AutoSizer, null, (size) => {
571
725
  const width = Number.isNaN(size.width) ? 0 : size.width;
572
726
  const height = Number.isNaN(size.height) ? 0 : size.height;
573
727
  const { listItems, collapseItems } = getAutosizeListItems(items, height, collapseItem);
@@ -576,167 +730,12 @@ const CompositeBar = ({ type, items, menuMoreTitle, onItemClick, multipleTooltip
576
730
  }))));
577
731
  }
578
732
  else {
579
- node = (React__default.createElement("div", { className: b$3({ subheader: true }) },
733
+ node = (React__default.createElement("div", { className: b$1({ subheader: true }) },
580
734
  React__default.createElement(CompositeBarView, { type: "subheader", items: items, onItemClick: onItemClick })));
581
735
  }
582
736
  return React__default.createElement(MultipleTooltipProvider, null, node);
583
737
  };
584
738
 
585
- var en$1 = {
586
- "menu-item.all-pages.title": "All pages",
587
- "all-panel.menu.category.allOther": "All other",
588
- "all-panel.resetToDefault": "Reset to default",
589
- "all-panel.title.editing": "Editing",
590
- "all-panel.title.main": "All pages"
591
- };
592
-
593
- var ru$1 = {
594
- "menu-item.all-pages.title": "Все страницы",
595
- "all-panel.menu.category.allOther": "Остальное",
596
- "all-panel.resetToDefault": "Сбросить по умолчанию",
597
- "all-panel.title.editing": "Редактирование",
598
- "all-panel.title.main": "Все страницы"
599
- };
600
-
601
- const COMPONENT$1 = 'AllPagesPanel';
602
- var i18n$1 = registerKeyset({ en: en$1, ru: ru$1 }, COMPONENT$1);
603
-
604
- const ALL_PAGES_ID = 'all-pages';
605
- function getAllPagesMenuItem() {
606
- return {
607
- id: ALL_PAGES_ID,
608
- title: i18n$1('menu-item.all-pages.title'),
609
- tooltipText: i18n$1('menu-item.all-pages.title'),
610
- icon: Ellipsis,
611
- };
612
- }
613
-
614
- const useGroupedMenuItems = (items) => {
615
- const allPagesMenuItems = useMemo(() => {
616
- const filteredItems = items.filter((item) => item.type !== 'divider' && item.id !== ALL_PAGES_ID);
617
- filteredItems.sort((a, b) => {
618
- if (a.type === 'action') {
619
- return 1;
620
- }
621
- if (b.type === 'action') {
622
- return -1;
623
- }
624
- return 0;
625
- });
626
- const groupedItems = filteredItems.reduce((acc, item) => {
627
- const category = item.category || i18n$1('all-panel.menu.category.allOther');
628
- if (!acc[category]) {
629
- acc[category] = [];
630
- }
631
- acc[category].push(item);
632
- return acc;
633
- }, {});
634
- return groupedItems;
635
- }, [items]);
636
- return allPagesMenuItems;
637
- };
638
-
639
- var css_248z$2 = ".gn-all-pages-list-item{align-items:center;column-gap:var(--g-spacing-4);display:flex;height:40px;padding:0 var(--g-spacing-6);width:100%}.gn-all-pages-list-item__text{flex:1}.gn-all-pages-list-item__icon{color:var(--g-color-text-misc)}";
640
- styleInject(css_248z$2);
641
-
642
- const b$2 = block('all-pages-list-item');
643
- const AllPagesListItem = (props) => {
644
- const { item, editMode, onToggle } = props;
645
- const onPinButtonClick = useCallback((e) => {
646
- e.stopPropagation();
647
- e.preventDefault();
648
- onToggle();
649
- }, [onToggle]);
650
- const onItemClick = (e) => {
651
- if (editMode) {
652
- e.stopPropagation();
653
- e.preventDefault();
654
- }
655
- };
656
- return (React__default.createElement("div", { className: b$2(), onClick: onItemClick },
657
- item.icon ? (React__default.createElement(Icon, { className: b$2('icon'), data: item.icon, size: item.iconSize })) : null,
658
- React__default.createElement("span", { className: b$2('text') }, item.title),
659
- editMode && (React__default.createElement(Button, { onClick: onPinButtonClick, view: item.hidden ? 'flat-secondary' : 'flat-action' },
660
- React__default.createElement(Button.Icon, null, item.hidden ? React__default.createElement(Pin, null) : React__default.createElement(PinFill, null))))));
661
- };
662
-
663
- var css_248z$1 = ".gn-all-pages-panel{box-sizing:border-box;height:100%;min-width:300px;padding:var(--g-spacing-4) var(--g-spacing-6)}.gn-all-pages-panel__content{flex:1;margin:0 calc(var(--g-spacing-6)*-1);overflow:auto}.gn-all-pages-panel__category{padding:0 var(--g-spacing-6)}.gn-all-pages-panel__discoverable-feature-wrapper{display:flex}";
664
- styleInject(css_248z$1);
665
-
666
- const b$1 = block('all-pages-panel');
667
- const AllPagesPanel = (props) => {
668
- const { startEditIcon, onEditModeChanged, className } = props;
669
- const { menuItems, onMenuItemsChanged } = useAsideHeaderInnerContext();
670
- const menuItemsRef = useRef(menuItems);
671
- menuItemsRef.current = menuItems;
672
- const [isEditMode, setIsEditMode] = useState(false);
673
- const toggleEditMode = useCallback(() => {
674
- setIsEditMode((prev) => !prev);
675
- }, []);
676
- const groupedItems = useGroupedMenuItems(menuItems);
677
- useEffect(() => {
678
- onEditModeChanged === null || onEditModeChanged === void 0 ? void 0 : onEditModeChanged(isEditMode);
679
- }, [isEditMode, onEditModeChanged]);
680
- const onItemClick = useCallback((item) => {
681
- var _a;
682
- //@ts-ignore TODO fix when @gravity-ui/uikit/List will provide event arg on item click
683
- (_a = item.onItemClick) === null || _a === void 0 ? void 0 : _a.call(item, item, false);
684
- }, []);
685
- const togglePageVisibility = useCallback((item) => {
686
- if (!onMenuItemsChanged) {
687
- return;
688
- }
689
- const changedItem = Object.assign(Object.assign({}, item), { hidden: !item.hidden });
690
- const originItems = menuItemsRef.current.filter((menuItem) => menuItem.id !== ALL_PAGES_ID);
691
- onMenuItemsChanged(originItems.map((menuItem) => {
692
- if (menuItem.id !== changedItem.id) {
693
- return menuItem;
694
- }
695
- return changedItem;
696
- }));
697
- }, [onMenuItemsChanged]);
698
- const itemRender = useCallback((item, _isActive, _itemIndex) => (React__default.createElement(AllPagesListItem, { item: item, editMode: isEditMode, onToggle: () => togglePageVisibility(item) })), [isEditMode, togglePageVisibility]);
699
- const onResetToDefaultClick = useCallback(() => {
700
- if (!onMenuItemsChanged) {
701
- return;
702
- }
703
- const originItems = menuItemsRef.current.filter((item) => item.id !== ALL_PAGES_ID);
704
- onMenuItemsChanged(originItems.map((item) => (Object.assign(Object.assign({}, item), { hidden: false }))));
705
- }, [onMenuItemsChanged]);
706
- return (React__default.createElement(Flex, { className: b$1(null, className), gap: "5", direction: "column" },
707
- React__default.createElement(Flex, { gap: "4", alignItems: "center", justifyContent: "space-between" },
708
- React__default.createElement(Text, { variant: "subheader-2" }, isEditMode ? i18n$1('all-panel.title.editing') : i18n$1('all-panel.title.main')),
709
- React__default.createElement(Button, { selected: isEditMode, view: "normal", onClick: toggleEditMode }, startEditIcon ? startEditIcon : React__default.createElement(Icon, { data: Gear }))),
710
- React__default.createElement(Flex, { className: b$1('content'), gap: "5", direction: "column" }, Object.keys(groupedItems).map((category) => {
711
- return (React__default.createElement(Flex, { key: category, direction: "column", gap: "3" },
712
- React__default.createElement(Text, { className: b$1('category'), variant: "body-1", color: "secondary" }, category),
713
- React__default.createElement(List, { virtualized: false, filterable: false, items: groupedItems[category], onItemClick: onItemClick, renderItem: itemRender })));
714
- })),
715
- isEditMode && (React__default.createElement(Button, { onClick: onResetToDefaultClick }, i18n$1('all-panel.resetToDefault')))));
716
- };
717
-
718
- const useVisibleMenuItems = () => {
719
- const { menuItems, allPagesIsAvailable } = useAsideHeaderInnerContext();
720
- return useMemo(() => {
721
- if (!allPagesIsAvailable) {
722
- return menuItems;
723
- }
724
- let lastVisibleIndex = 0;
725
- return menuItems.filter((item, index, items) => {
726
- if (item.hidden) {
727
- return false;
728
- }
729
- if (index > 0 &&
730
- item.type === 'divider' &&
731
- (items[lastVisibleIndex].type === 'divider' || items[lastVisibleIndex].hidden)) {
732
- return false;
733
- }
734
- lastVisibleIndex = index;
735
- return true;
736
- });
737
- }, [allPagesIsAvailable, menuItems]);
738
- };
739
-
740
739
  var button_collapse$1 = "Collapse";
741
740
  var button_expand$1 = "Expand";
742
741
  var label_more$1 = "More";
@@ -756,9 +755,44 @@ var ru = {
756
755
  };
757
756
 
758
757
  const COMPONENT = 'AsideHeader';
759
- var i18n = registerKeyset({ en, ru }, COMPONENT);
758
+ var i18n = addComponentKeysets({ en, ru }, `${NAMESPACE}${COMPONENT}`);
759
+
760
+ function fakeDisplayName(newDisplayName, Component) {
761
+ const Fake = (props) => React__default.createElement(Component, Object.assign({}, props));
762
+ Fake.displayName = newDisplayName;
763
+ return Fake;
764
+ }
765
+
766
+ var _path;
767
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
768
+ var SvgControlMenuButton = function SvgControlMenuButton(props) {
769
+ return /*#__PURE__*/React.createElement("svg", _extends({
770
+ width: 8,
771
+ height: 8,
772
+ viewBox: "0 0 8 8",
773
+ fill: "currentColor",
774
+ xmlns: "http://www.w3.org/2000/svg"
775
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
776
+ d: "m.72 7.64 6.39-3.2a.5.5 0 0 0 0-.89L.72.36A.5.5 0 0 0 0 .81v6.38c0 .37.4.61.72.45Z"
777
+ })));
778
+ };
779
+ var controlMenuButtonIcon = SvgControlMenuButton;
780
+
781
+ // TODO: remove temporary fix for expand button
782
+ const NotIcon = fakeDisplayName('NotIcon', Icon);
783
+ const CollapseButton = () => {
784
+ const { onChangeCompact, compact, expandTitle, collapseTitle } = useAsideHeaderInnerContext();
785
+ const onCollapseButtonClick = useCallback(() => {
786
+ onChangeCompact === null || onChangeCompact === void 0 ? void 0 : onChangeCompact(!compact);
787
+ }, [compact, onChangeCompact]);
788
+ const buttonTitle = compact
789
+ ? expandTitle || i18n('button_expand')
790
+ : collapseTitle || i18n('button_collapse');
791
+ return (React__default.createElement(Button, { className: b$5('collapse-button', { compact }), view: "flat", onClick: onCollapseButtonClick, title: buttonTitle },
792
+ React__default.createElement(NotIcon, { data: controlMenuButtonIcon, className: b$5('collapse-icon'), width: "16", height: "10" })));
793
+ };
760
794
 
761
- var css_248z = ".gn-logo{height:40px}.gn-logo,.gn-logo__logo-btn-place{align-items:center;display:flex;flex-shrink:0}.gn-logo__logo-btn-place{cursor:pointer;justify-content:center;width:var(--gn-aside-header-min-width)}.gn-logo__logo-btn-place .yc-button:before{background-color:transparent}.gn-logo__btn-logo.yc-button_view_flat.yc-button_size_l{--yc-button-height:var(--gn-aside-header-item-icon-background-size)}.gn-logo__logo{cursor:pointer;font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height);vertical-align:middle}.gn-logo__logo-link,.gn-logo__logo-link:active,.gn-logo__logo-link:focus,.gn-logo__logo-link:hover,.gn-logo__logo-link:visited{color:inherit;outline:none;text-decoration:none}.g-root .gn-logo__btn-logo.button2_theme_flat.button2_hovered_yes:before{background-color:transparent}";
795
+ var css_248z = ".gn-logo{height:40px}.gn-logo,.gn-logo__logo-btn-place{align-items:center;display:flex;flex-shrink:0}.gn-logo__logo-btn-place{cursor:pointer;justify-content:center;width:var(--gn-aside-header-min-width)}.gn-logo__logo-btn-place .g-button:before{background-color:transparent}.gn-logo__btn-logo.g-button_view_flat.g-button_size_l{--g-button-height:var(\n --gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size)\n )}.gn-logo__logo{cursor:pointer;font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height);vertical-align:middle}.gn-logo__logo-link,.gn-logo__logo-link:active,.gn-logo__logo-link:focus,.gn-logo__logo-link:hover,.gn-logo__logo-link:visited{color:inherit;outline:none;text-decoration:none}.g-root .gn-logo__btn-logo.button2_theme_flat.button2_hovered_yes:before{background-color:transparent}";
762
796
  styleInject(css_248z);
763
797
 
764
798
  const b = block('logo');
@@ -801,41 +835,6 @@ const Header = () => {
801
835
  React__default.createElement(Icon, { data: headerDividerCollapsedIcon, className: b$5('header-divider'), width: ASIDE_HEADER_COMPACT_WIDTH, height: HEADER_DIVIDER_HEIGHT })));
802
836
  };
803
837
 
804
- function fakeDisplayName(newDisplayName, Component) {
805
- const Fake = (props) => React__default.createElement(Component, Object.assign({}, props));
806
- Fake.displayName = newDisplayName;
807
- return Fake;
808
- }
809
-
810
- var _path;
811
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
812
- var SvgControlMenuButton = function SvgControlMenuButton(props) {
813
- return /*#__PURE__*/React.createElement("svg", _extends({
814
- width: 8,
815
- height: 8,
816
- viewBox: "0 0 8 8",
817
- fill: "currentColor",
818
- xmlns: "http://www.w3.org/2000/svg"
819
- }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
820
- d: "m.72 7.64 6.39-3.2a.5.5 0 0 0 0-.89L.72.36A.5.5 0 0 0 0 .81v6.38c0 .37.4.61.72.45Z"
821
- })));
822
- };
823
- var controlMenuButtonIcon = SvgControlMenuButton;
824
-
825
- // TODO: remove temporary fix for expand button
826
- const NotIcon = fakeDisplayName('NotIcon', Icon);
827
- const CollapseButton = () => {
828
- const { onChangeCompact, compact, expandTitle, collapseTitle } = useAsideHeaderInnerContext();
829
- const onCollapseButtonClick = useCallback(() => {
830
- onChangeCompact === null || onChangeCompact === void 0 ? void 0 : onChangeCompact(!compact);
831
- }, [compact, onChangeCompact]);
832
- const buttonTitle = compact
833
- ? expandTitle || i18n('button_expand')
834
- : collapseTitle || i18n('button_collapse');
835
- return (React__default.createElement(Button, { className: b$5('collapse-button', { compact }), view: "flat", onClick: onCollapseButtonClick, title: buttonTitle },
836
- React__default.createElement(NotIcon, { data: controlMenuButtonIcon, className: b$5('collapse-icon'), width: "16", height: "10" })));
837
- };
838
-
839
838
  const Panels = () => {
840
839
  const { panelItems, onClosePanel, size } = useAsideHeaderInnerContext();
841
840
  return panelItems ? (React__default.createElement(Drawer, { className: b$5('panels'), onVeilClick: onClosePanel, onEscape: onClosePanel, style: { left: size } }, panelItems.map((item) => (React__default.createElement(DrawerItem, Object.assign({ key: item.id }, item)))))) : null;
@@ -863,6 +862,7 @@ const FirstPanel = React__default.forwardRef((_props, ref) => {
863
862
  React__default.createElement(CollapseButton, null))),
864
863
  React__default.createElement(Panels, null)));
865
864
  });
865
+ FirstPanel.displayName = 'FirstPanel';
866
866
 
867
867
  var InnerPanels;
868
868
  (function (InnerPanels) {
@@ -926,6 +926,7 @@ const PageLayoutAside = React__default.forwardRef((props, ref) => {
926
926
  return (React__default.createElement(AsideHeaderInnerContextProvider, { value: asideHeaderInnerContextValue },
927
927
  React__default.createElement(FirstPanel, { ref: ref })));
928
928
  });
929
+ PageLayoutAside.displayName = 'PageLayoutAside';
929
930
 
930
931
  export { PageLayoutAside };
931
932
  //# sourceMappingURL=PageLayoutAside.js.map