@cloud-ru/ds-uikit-product-header 1.5.1-preview-d90ac2be.0 → 1.5.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 (143) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +1 -1
  3. package/dist/cjs/components/HeaderLayout/HeaderLayout.js +12 -1
  4. package/dist/cjs/components/HeaderLayout/styles.module.css +1 -1
  5. package/dist/cjs/components/Logo/Logo.js +3 -3
  6. package/dist/cjs/components/Logo/styles.module.css +1 -1
  7. package/dist/cjs/components/MainMenu/MainMenu.js +6 -9
  8. package/dist/cjs/components/MainMenu/helperComponents/Banners/styles.module.css +1 -1
  9. package/dist/cjs/components/MainMenu/helperComponents/Content/Content.js +11 -35
  10. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/styles.module.css +1 -1
  11. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.d.ts +4 -16
  12. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.js +10 -38
  13. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.d.ts +4 -4
  14. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.js +4 -9
  15. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupHeader.d.ts +1 -3
  16. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupHeader.js +4 -6
  17. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.d.ts +4 -6
  18. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.js +11 -16
  19. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategoryTitle.d.ts +3 -7
  20. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategoryTitle.js +18 -24
  21. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/styles.module.css +1 -1
  22. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/styles.module.css +13 -30
  23. package/dist/cjs/components/MainMenu/helperComponents/Content/hooks/useContentSegmentsSortable.js +2 -4
  24. package/dist/cjs/components/MainMenu/helperComponents/Content/hooks/useSegmentDnd.d.ts +4 -4
  25. package/dist/cjs/components/MainMenu/helperComponents/Content/hooks/useSegmentDnd.js +3 -3
  26. package/dist/cjs/components/MainMenu/helperComponents/Content/styles.module.css +0 -16
  27. package/dist/cjs/components/MainMenu/helperComponents/Favorites/Favorites.d.ts +4 -4
  28. package/dist/cjs/components/MainMenu/helperComponents/Favorites/Favorites.js +9 -12
  29. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/styles.module.css +2 -2
  30. package/dist/cjs/components/MainMenu/helperComponents/Favorites/styles.module.css +5 -5
  31. package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/MenuDesktop.d.ts +1 -1
  32. package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/MenuDesktop.js +7 -7
  33. package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/styles.module.css +8 -3
  34. package/dist/cjs/components/MainMenu/helperComponents/MenuHeaderBrand/styles.module.css +1 -1
  35. package/dist/cjs/components/MainMenu/helperComponents/MenuMobile/MenuMobile.d.ts +1 -1
  36. package/dist/cjs/components/MainMenu/helperComponents/MenuMobile/MenuMobile.js +11 -5
  37. package/dist/cjs/components/MainMenu/helperComponents/MenuMobile/styles.module.css +12 -1
  38. package/dist/cjs/components/MainMenu/helperComponents/MountAnimation/MountAnimation.d.ts +1 -1
  39. package/dist/cjs/components/MainMenu/helperComponents/MountAnimation/MountAnimation.js +1 -4
  40. package/dist/cjs/components/MainMenu/helperComponents/ServiceCard/ServiceCard.d.ts +6 -23
  41. package/dist/cjs/components/MainMenu/helperComponents/ServiceCard/ServiceCard.js +21 -30
  42. package/dist/cjs/components/MainMenu/helperComponents/ServiceCard/styles.module.css +2 -7
  43. package/dist/cjs/components/MainMenu/hooks/useMainMenuDnd.d.ts +4 -4
  44. package/dist/cjs/components/MainMenu/hooks/useMainMenuDnd.js +6 -4
  45. package/dist/cjs/components/MainMenu/hooks/useMenuItems.js +7 -12
  46. package/dist/cjs/components/MainMenu/utils/filterLinksGroupsFuzzy.d.ts +0 -5
  47. package/dist/cjs/components/MainMenu/utils/filterLinksGroupsFuzzy.js +7 -21
  48. package/dist/cjs/components/MainMenu/utils/flatLinksGroups.d.ts +0 -2
  49. package/dist/cjs/components/MainMenu/utils/flatLinksGroups.js +0 -5
  50. package/dist/cjs/components/MainMenu/utils/resolveInnerLinksByIds.d.ts +2 -2
  51. package/dist/cjs/components/MainMenu/utils/resolveInnerLinksByIds.js +4 -2
  52. package/dist/cjs/components/PlatformLogo/styles.module.css +2 -2
  53. package/dist/cjs/style.css +50 -72
  54. package/dist/esm/components/HeaderLayout/HeaderLayout.js +12 -1
  55. package/dist/esm/components/HeaderLayout/styles.module.css +1 -1
  56. package/dist/esm/components/Logo/Logo.js +3 -3
  57. package/dist/esm/components/Logo/styles.module.css +1 -1
  58. package/dist/esm/components/MainMenu/MainMenu.js +7 -10
  59. package/dist/esm/components/MainMenu/helperComponents/Banners/styles.module.css +1 -1
  60. package/dist/esm/components/MainMenu/helperComponents/Content/Content.js +13 -37
  61. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/styles.module.css +1 -1
  62. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.d.ts +4 -16
  63. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.js +9 -37
  64. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.d.ts +4 -4
  65. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.js +4 -9
  66. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupHeader.d.ts +1 -3
  67. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupHeader.js +3 -5
  68. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.d.ts +4 -6
  69. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.js +12 -17
  70. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategoryTitle.d.ts +3 -7
  71. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategoryTitle.js +19 -25
  72. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/styles.module.css +1 -1
  73. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/styles.module.css +13 -30
  74. package/dist/esm/components/MainMenu/helperComponents/Content/hooks/useContentSegmentsSortable.js +2 -4
  75. package/dist/esm/components/MainMenu/helperComponents/Content/hooks/useSegmentDnd.d.ts +4 -4
  76. package/dist/esm/components/MainMenu/helperComponents/Content/hooks/useSegmentDnd.js +3 -3
  77. package/dist/esm/components/MainMenu/helperComponents/Content/styles.module.css +0 -16
  78. package/dist/esm/components/MainMenu/helperComponents/Favorites/Favorites.d.ts +4 -4
  79. package/dist/esm/components/MainMenu/helperComponents/Favorites/Favorites.js +9 -12
  80. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/styles.module.css +2 -2
  81. package/dist/esm/components/MainMenu/helperComponents/Favorites/styles.module.css +5 -5
  82. package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/MenuDesktop.d.ts +1 -1
  83. package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/MenuDesktop.js +7 -7
  84. package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/styles.module.css +8 -3
  85. package/dist/esm/components/MainMenu/helperComponents/MenuHeaderBrand/styles.module.css +1 -1
  86. package/dist/esm/components/MainMenu/helperComponents/MenuMobile/MenuMobile.d.ts +1 -1
  87. package/dist/esm/components/MainMenu/helperComponents/MenuMobile/MenuMobile.js +11 -5
  88. package/dist/esm/components/MainMenu/helperComponents/MenuMobile/styles.module.css +12 -1
  89. package/dist/esm/components/MainMenu/helperComponents/MountAnimation/MountAnimation.d.ts +1 -1
  90. package/dist/esm/components/MainMenu/helperComponents/MountAnimation/MountAnimation.js +1 -4
  91. package/dist/esm/components/MainMenu/helperComponents/ServiceCard/ServiceCard.d.ts +6 -23
  92. package/dist/esm/components/MainMenu/helperComponents/ServiceCard/ServiceCard.js +20 -30
  93. package/dist/esm/components/MainMenu/helperComponents/ServiceCard/styles.module.css +2 -7
  94. package/dist/esm/components/MainMenu/hooks/useMainMenuDnd.d.ts +4 -4
  95. package/dist/esm/components/MainMenu/hooks/useMainMenuDnd.js +8 -6
  96. package/dist/esm/components/MainMenu/hooks/useMenuItems.js +8 -13
  97. package/dist/esm/components/MainMenu/utils/filterLinksGroupsFuzzy.d.ts +0 -5
  98. package/dist/esm/components/MainMenu/utils/filterLinksGroupsFuzzy.js +7 -20
  99. package/dist/esm/components/MainMenu/utils/flatLinksGroups.d.ts +0 -2
  100. package/dist/esm/components/MainMenu/utils/flatLinksGroups.js +0 -4
  101. package/dist/esm/components/MainMenu/utils/resolveInnerLinksByIds.d.ts +2 -2
  102. package/dist/esm/components/MainMenu/utils/resolveInnerLinksByIds.js +4 -2
  103. package/dist/esm/components/PlatformLogo/styles.module.css +2 -2
  104. package/dist/esm/style.css +50 -72
  105. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  106. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  107. package/package.json +28 -28
  108. package/src/components/HeaderLayout/HeaderLayout.tsx +19 -2
  109. package/src/components/Logo/Logo.tsx +4 -4
  110. package/src/components/MainMenu/MainMenu.tsx +6 -11
  111. package/src/components/MainMenu/helperComponents/Content/Content.tsx +58 -100
  112. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.tsx +47 -99
  113. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.tsx +30 -17
  114. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupHeader.tsx +6 -11
  115. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.tsx +86 -69
  116. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategoryTitle.tsx +48 -64
  117. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/styles.module.scss +0 -27
  118. package/src/components/MainMenu/helperComponents/Content/hooks/useContentSegmentsSortable.ts +2 -4
  119. package/src/components/MainMenu/helperComponents/Content/hooks/useSegmentDnd.tsx +7 -8
  120. package/src/components/MainMenu/helperComponents/Content/styles.module.scss +0 -19
  121. package/src/components/MainMenu/helperComponents/Favorites/Favorites.tsx +23 -26
  122. package/src/components/MainMenu/helperComponents/MenuDesktop/MenuDesktop.tsx +11 -17
  123. package/src/components/MainMenu/helperComponents/MenuDesktop/styles.module.scss +6 -0
  124. package/src/components/MainMenu/helperComponents/MenuMobile/MenuMobile.tsx +59 -50
  125. package/src/components/MainMenu/helperComponents/MenuMobile/styles.module.scss +13 -0
  126. package/src/components/MainMenu/helperComponents/MountAnimation/MountAnimation.tsx +1 -5
  127. package/src/components/MainMenu/helperComponents/ServiceCard/ServiceCard.tsx +41 -85
  128. package/src/components/MainMenu/helperComponents/ServiceCard/styles.module.scss +1 -7
  129. package/src/components/MainMenu/hooks/useMainMenuDnd.tsx +12 -7
  130. package/src/components/MainMenu/hooks/useMenuItems.tsx +10 -34
  131. package/src/components/MainMenu/utils/filterLinksGroupsFuzzy.ts +8 -29
  132. package/src/components/MainMenu/utils/flatLinksGroups.ts +0 -5
  133. package/src/components/MainMenu/utils/resolveInnerLinksByIds.ts +6 -3
  134. package/dist/cjs/components/MainMenu/helperComponents/Content/cardsContext.d.ts +0 -20
  135. package/dist/cjs/components/MainMenu/helperComponents/Content/cardsContext.js +0 -17
  136. package/dist/cjs/components/MainMenu/helperComponents/Content/hooks/useProgressiveCount.d.ts +0 -12
  137. package/dist/cjs/components/MainMenu/helperComponents/Content/hooks/useProgressiveCount.js +0 -39
  138. package/dist/esm/components/MainMenu/helperComponents/Content/cardsContext.d.ts +0 -20
  139. package/dist/esm/components/MainMenu/helperComponents/Content/cardsContext.js +0 -13
  140. package/dist/esm/components/MainMenu/helperComponents/Content/hooks/useProgressiveCount.d.ts +0 -12
  141. package/dist/esm/components/MainMenu/helperComponents/Content/hooks/useProgressiveCount.js +0 -35
  142. package/src/components/MainMenu/helperComponents/Content/cardsContext.ts +0 -36
  143. package/src/components/MainMenu/helperComponents/Content/hooks/useProgressiveCount.ts +0 -46
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SubCategoryTitle = void 0;
6
+ exports.SubCategoryTitle = SubCategoryTitle;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const typography_1 = require("@cloud-ru/ds-typography");
9
9
  const uikit_product_card_predefined_1 = require("@cloud-ru/ds-uikit-product-card-predefined");
@@ -12,59 +12,53 @@ const utils_1 = require("@cloud-ru/ds-utils");
12
12
  const react_1 = require("react");
13
13
  const utils_2 = require("../../../../../../utils");
14
14
  const ServiceCard_1 = require("../../../../../ServiceCard");
15
- const cardsContext_1 = require("../../../../cardsContext");
16
15
  const constants_1 = require("../../../../constants");
17
16
  const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
18
- function SubCategoryTitleBase({ groupId, service, groupFavoritesEnabled, expandable }) {
19
- const { isMobile, showDescription: showDescriptionProp, dragEnabled, favoriteIds, onFavoriteChange, onServiceClick, } = (0, cardsContext_1.useCardsContext)();
17
+ function SubCategoryTitle({ groupId, service, showDescription: showDescriptionProp, isMobile, dragDisabled, favorite, onServiceClick, expandable, }) {
20
18
  const titleRef = (0, react_1.useRef)(null);
21
19
  const tooltipTriggerRef = (0, react_1.useRef)(null);
22
20
  const favoriteRef = (0, react_1.useRef)(null);
23
- const { id, description, icon } = service;
24
- const handleServiceClick = (0, react_1.useCallback)((event) => {
21
+ const handleServiceClick = (event) => {
25
22
  (0, utils_1.stopEventPropagation)(event);
26
23
  onServiceClick?.(service, event);
27
- }, [onServiceClick, service]);
28
- const titleTestId = `${constants_1.TEST_IDS.subcategoryTitle}-${id}`;
29
- const cardFavoriteChange = groupFavoritesEnabled && favoriteIds ? onFavoriteChange : undefined;
30
- const isFavorite = Boolean(favoriteIds?.has(id));
31
- const showDescription = showDescriptionProp && Boolean(description);
32
- const hasTooltip = !showDescription && Boolean(description);
33
- const handleKeyDown = (0, react_1.useMemo)(() => (0, uikit_product_card_predefined_1.createCardActionsKeyDownHandler)({
24
+ };
25
+ const titleTestId = `${constants_1.TEST_IDS.subcategoryTitle}-${service.id}`;
26
+ const isFavorite = Boolean(favorite?.value.includes(service.id));
27
+ const showDescription = showDescriptionProp && Boolean(service.description);
28
+ const hasTooltip = !showDescription && service.description;
29
+ const handleKeyDown = (0, uikit_product_card_predefined_1.createCardActionsKeyDownHandler)({
34
30
  cardRef: titleRef,
35
31
  items: [
36
32
  hasTooltip ? { ref: tooltipTriggerRef } : null,
37
- cardFavoriteChange
33
+ favorite
38
34
  ? {
39
35
  ref: favoriteRef,
40
- onActivate: () => cardFavoriteChange(id)(!isFavorite),
36
+ onActivate: () => favorite.onChange(service.id)(!isFavorite),
41
37
  }
42
38
  : null,
43
39
  ],
44
- }), [hasTooltip, cardFavoriteChange, id, isFavorite]);
45
- const emblem = (0, react_1.useMemo)(() => (0, utils_2.getLinkEmblem)({ icon }), [icon]);
40
+ });
46
41
  if (expandable?.value) {
47
- return ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.subcategoryTitle, "data-mobile": isMobile || undefined, children: [(0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.subcategoryTitleRow, onKeyDown: handleKeyDown, children: [(0, jsx_runtime_1.jsx)(uikit_product_title_clickable_1.TitleClickable, { as: 'a', href: service.href, onClick: handleServiceClick, innerRef: titleRef, title: service.label, icon: emblem, className: styles_module_scss_1.default.subcategoryTitleClickable, "data-test-id": titleTestId }), (0, jsx_runtime_1.jsx)(uikit_product_card_predefined_1.CardActionsSurface, { className: styles_module_scss_1.default.subcategoryTitleActions, actionsVisibility: 'always', actionsSize: isMobile ? 's' : 'm', tooltip: hasTooltip
42
+ return ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.subcategoryTitle, "data-mobile": isMobile || undefined, children: [(0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.subcategoryTitleRow, onKeyDown: handleKeyDown, children: [(0, jsx_runtime_1.jsx)(uikit_product_title_clickable_1.TitleClickable, { as: 'a', href: service.href, onClick: handleServiceClick, innerRef: titleRef, title: service.label, icon: (0, utils_2.getLinkEmblem)(service), className: styles_module_scss_1.default.subcategoryTitleClickable, "data-test-id": titleTestId }), (0, jsx_runtime_1.jsx)(uikit_product_card_predefined_1.CardActionsSurface, { className: styles_module_scss_1.default.subcategoryTitleActions, actionsVisibility: 'always', actionsSize: isMobile ? 's' : 'm', tooltip: hasTooltip
48
43
  ? {
49
- tip: description,
44
+ tip: service.description,
50
45
  buttonRef: tooltipTriggerRef,
51
46
  trigger: isMobile ? 'click' : 'hoverAndFocusVisible',
52
47
  'data-test-id': `${titleTestId}-tooltip`,
53
48
  }
54
- : undefined, favorite: cardFavoriteChange
49
+ : undefined, favorite: favorite
55
50
  ? {
56
51
  enabled: true,
57
52
  checked: isFavorite,
58
- onChange: (checked) => cardFavoriteChange(id)(checked),
53
+ onChange: favorite.onChange(service.id),
59
54
  buttonRef: favoriteRef,
60
55
  'data-test-id': `${titleTestId}-favorite`,
61
56
  }
62
- : undefined })] }), showDescription && ((0, jsx_runtime_1.jsx)(typography_1.Typography, { as: 'p', variant: 'body', size: 's', className: styles_module_scss_1.default.subcategoryDescription, "data-test-id": `${titleTestId}-description`, children: description }))] }));
57
+ : undefined })] }), showDescription && ((0, jsx_runtime_1.jsx)(typography_1.Typography, { as: 'p', variant: 'body', size: 's', className: styles_module_scss_1.default.subcategoryDescription, "data-test-id": `${titleTestId}-description`, children: service.description }))] }));
63
58
  }
64
59
  return (
65
60
  // Карточка — ссылка `<a>`: клик по ней бы долетал до `onClick={toggleOpen}` заголовка
66
61
  // родительского CollapseBlockTertiary (см. TODO там) и лишний раз переключал аккордеон.
67
62
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
68
- (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.subcategoryTitleDraggable, onPointerDown: utils_1.stopEventPropagation, onClick: utils_1.stopEventPropagation, children: (0, jsx_runtime_1.jsx)(ServiceCard_1.GridServiceCard, { groupId: groupId, service: service, isFavorite: isFavorite, onFavoriteChange: cardFavoriteChange, isMobile: isMobile, onServiceClick: onServiceClick, showDescription: showDescriptionProp, dragEnabled: dragEnabled, expandable: expandable }) }));
63
+ (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.subcategoryTitleDraggable, onPointerDown: utils_1.stopEventPropagation, onClick: utils_1.stopEventPropagation, children: (0, jsx_runtime_1.jsx)(ServiceCard_1.DraggableServiceCard, { groupId: groupId, service: service, favorite: favorite, isMobile: isMobile, onServiceClick: onServiceClick, showDescription: showDescriptionProp, dragDisabled: dragDisabled, expandable: expandable }) }));
69
64
  }
70
- exports.SubCategoryTitle = (0, react_1.memo)(SubCategoryTitleBase);
@@ -12,7 +12,7 @@
12
12
  .subcategory:has([data-subcategory-body]), .subcategory[data-title-only]{
13
13
  grid-column:1/-1;
14
14
  padding:0 var(--sn-primitive-dimension-4, 4px);
15
- border-radius:var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px));
15
+ border-radius:var(--sn-density-radius-2xs, var(--sn-platform-comfort-radius-2xs, var(--sn-primitive-dimension-4, 4px)));
16
16
  background-color:var(--sn-theme-color-neutral-decorTransparent, var(--sn-brand-color-neutral-transparent-forLightMode, rgba(124, 131, 182, 0.0784313725)));
17
17
  }
18
18
  .subcategory[data-title-only]{
@@ -19,7 +19,7 @@
19
19
  min-width:0;
20
20
  min-height:var(--sn-primitive-dimension-40, 40px);
21
21
  padding-inline:var(--sn-primitive-dimension-8, 8px);
22
- border-radius:var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px));
22
+ border-radius:var(--sn-density-radius-2xs, var(--sn-platform-comfort-radius-2xs, var(--sn-primitive-dimension-4, 4px)));
23
23
  }
24
24
  .header:focus-visible .headerActions, .header:has(:focus-visible) .headerActions{
25
25
  pointer-events:auto;
@@ -46,8 +46,6 @@
46
46
  }
47
47
 
48
48
  .group{
49
- content-visibility:auto;
50
- contain-intrinsic-size:auto var(--sn-primitive-dimension-128, 128px);
51
49
  position:relative;
52
50
  overflow-x:clip;
53
51
  display:flex;
@@ -55,16 +53,8 @@
55
53
  width:100%;
56
54
  min-width:0;
57
55
  padding:var(--sn-primitive-dimension-4, 4px) var(--sn-primitive-dimension-8, 8px) var(--sn-primitive-dimension-8, 8px) var(--sn-primitive-dimension-12, 12px);
58
- border-radius:var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px));
59
- background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd)));
60
- }
61
- .group[data-appear]{
62
- animation:group-appear 0.24s cubic-bezier(0.4, 0, 0.2, 1) backwards;
63
- }
64
- @media (prefers-reduced-motion: reduce){
65
- .group[data-appear]{
66
- animation:none;
67
- }
56
+ border-radius:var(--sn-density-radius-2xs, var(--sn-platform-comfort-radius-2xs, var(--sn-primitive-dimension-4, 4px)));
57
+ background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd)));
68
58
  }
69
59
  .group[data-drag-preview]{
70
60
  cursor:grabbing;
@@ -81,7 +71,7 @@
81
71
  .groupDragPreview{
82
72
  cursor:grabbing;
83
73
  container-type:inline-size;
84
- border-radius:var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px));
74
+ border-radius:var(--sn-density-radius-2xs, var(--sn-platform-comfort-radius-2xs, var(--sn-primitive-dimension-4, 4px)));
85
75
  }
86
76
 
87
77
  .groupDragPreviewHeader{
@@ -178,7 +168,7 @@
178
168
  }
179
169
  [data-is-highlighted] .decorationBackground{
180
170
  inset:var(--highlight-border-width) var(--highlight-border-width) var(--highlight-border-width) var(--highlight-border-width);
181
- border-radius:calc(var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px)) - var(--highlight-border-width));
171
+ border-radius:calc(var(--sn-density-radius-2xs, var(--sn-platform-comfort-radius-2xs, var(--sn-primitive-dimension-4, 4px))) - var(--highlight-border-width));
182
172
  background:linear-gradient(90deg, var(--highlight-background-color-from) 2.29%, var(--highlight-background-color-to) 97.84%), var(--highlight-background-color);
183
173
  }
184
174
 
@@ -197,35 +187,35 @@
197
187
  }
198
188
  .colorMarker[data-block-color=neutral]{
199
189
  visibility:visible;
200
- background-color:var(--sn-theme-color-neutral-decor, var(--sn-brand-color-neutral-80, var(--sn-primitive-color-gray-80, #e3e5ed)));
190
+ background-color:var(--sn-theme-color-neutral-decor, var(--sn-brand-color-neutral-80, var(--sn-brand-palette-gray-80, #e3e5ed)));
201
191
  }
202
192
  .colorMarker[data-block-color=primary]{
203
193
  visibility:visible;
204
- background-color:var(--sn-theme-color-primary-decor, var(--sn-brand-color-primary-80, var(--sn-brandRole-color-brandA-80, var(--sn-primitive-color-brandA-80, #caeadb))));
194
+ background-color:var(--sn-theme-color-primary-decor, var(--sn-brand-color-primary-80, #caeadb));
205
195
  }
206
196
  .colorMarker[data-block-color=orange]{
207
197
  visibility:visible;
208
- background-color:var(--sn-theme-color-orange-decor, var(--sn-primitive-color-orange-80, #fbdeb6));
198
+ background-color:var(--sn-theme-color-orange-decor, var(--sn-brand-palette-orange-80, #fbdeb6));
209
199
  }
210
200
  .colorMarker[data-block-color=yellow]{
211
201
  visibility:visible;
212
- background-color:var(--sn-theme-color-yellow-decor, var(--sn-primitive-color-yellow-80, #f0dfb1));
202
+ background-color:var(--sn-theme-color-yellow-decor, var(--sn-brand-palette-yellow-80, #f0dfb1));
213
203
  }
214
204
  .colorMarker[data-block-color=green]{
215
205
  visibility:visible;
216
- background-color:var(--sn-theme-color-green-decor, var(--sn-primitive-color-green-80, #d2ead0));
206
+ background-color:var(--sn-theme-color-green-decor, var(--sn-brand-palette-green-80, #d2ead0));
217
207
  }
218
208
  .colorMarker[data-block-color=blue]{
219
209
  visibility:visible;
220
- background-color:var(--sn-theme-color-blue-decor, var(--sn-primitive-color-blue-80, #d6e2f4));
210
+ background-color:var(--sn-theme-color-blue-decor, var(--sn-brand-palette-blue-80, #d6e2f4));
221
211
  }
222
212
  .colorMarker[data-block-color=violet]{
223
213
  visibility:visible;
224
- background-color:var(--sn-theme-color-violet-decor, var(--sn-primitive-color-violet-80, #e6dcf3));
214
+ background-color:var(--sn-theme-color-violet-decor, var(--sn-brand-palette-violet-80, #e6dcf3));
225
215
  }
226
216
  .colorMarker[data-block-color=pink]{
227
217
  visibility:visible;
228
- background-color:var(--sn-theme-color-pink-decor, var(--sn-primitive-color-pink-80, #f5d9e1));
218
+ background-color:var(--sn-theme-color-pink-decor, var(--sn-brand-palette-pink-80, #f5d9e1));
229
219
  }
230
220
 
231
221
  .skeletonTitle{
@@ -243,11 +233,4 @@
243
233
 
244
234
  .skeletonService{
245
235
  padding:var(--sn-primitive-dimension-4, 4px);
246
- }
247
-
248
- @keyframes group-appear{
249
- from{
250
- transform:translate(calc(-1 * var(--sn-primitive-dimension-12, 12px)), var(--sn-primitive-dimension-4, 4px));
251
- opacity:0;
252
- }
253
236
  }
@@ -4,10 +4,8 @@ exports.useContentSegmentsSortable = useContentSegmentsSortable;
4
4
  const sortable_1 = require("@dnd-kit/sortable");
5
5
  const react_1 = require("react");
6
6
  function mergeIdsPreservingOrder(prevIds, nextIds) {
7
- const nextIdSet = new Set(nextIds);
8
- const prevIdSet = new Set(prevIds);
9
- const kept = prevIds.filter(id => nextIdSet.has(id));
10
- const added = nextIds.filter(id => !prevIdSet.has(id));
7
+ const kept = prevIds.filter(id => nextIds.includes(id));
8
+ const added = nextIds.filter(id => !prevIds.includes(id));
11
9
  if (added.length === 0 && kept.length === prevIds.length) {
12
10
  return prevIds;
13
11
  }
@@ -1,16 +1,16 @@
1
1
  import { DragEndEvent } from '@dnd-kit/core';
2
- import { LinksGroup } from '../../../types';
3
- import { CardsContextValue } from '../cardsContext';
2
+ import { FavoriteProps, LinksGroup } from '../../../types';
4
3
  type UseSegmentDndProps = {
5
4
  visibleGroups: LinksGroup[];
6
5
  expandedIds: string[];
7
6
  onSortableDragEnd(event: DragEndEvent): void;
8
7
  showDescription: boolean;
9
8
  showGroupsColors?: boolean;
10
- } & Pick<CardsContextValue, 'favoriteIds' | 'onFavoriteChange'>;
9
+ favorite?: FavoriteProps;
10
+ };
11
11
  /**
12
12
  * DnD групп внутри активного сегмента: drag overlay группы поверх `useContentSegmentsSortable`.
13
13
  * Сервис-драг (карточка → избранное) сюда не попадает — фильтруется через `isServiceDragId`.
14
14
  */
15
- export declare function useSegmentDnd({ visibleGroups, expandedIds, onSortableDragEnd, showDescription, showGroupsColors, favoriteIds, onFavoriteChange, }: UseSegmentDndProps): void;
15
+ export declare function useSegmentDnd({ visibleGroups, expandedIds, onSortableDragEnd, showDescription, showGroupsColors, favorite, }: UseSegmentDndProps): void;
16
16
  export {};
@@ -11,16 +11,16 @@ const SortableGroup_1 = require("../helperComponents/SortableGroup");
11
11
  * DnD групп внутри активного сегмента: drag overlay группы поверх `useContentSegmentsSortable`.
12
12
  * Сервис-драг (карточка → избранное) сюда не попадает — фильтруется через `isServiceDragId`.
13
13
  */
14
- function useSegmentDnd({ visibleGroups, expandedIds, onSortableDragEnd, showDescription, showGroupsColors, favoriteIds, onFavoriteChange, }) {
14
+ function useSegmentDnd({ visibleGroups, expandedIds, onSortableDragEnd, showDescription, showGroupsColors, favorite, }) {
15
15
  const { setGroupDragOverlay } = (0, useMainMenuDnd_1.useMainMenuDndOverlay)();
16
16
  const handleDragStart = (0, react_1.useCallback)(({ active }) => {
17
17
  if (!(0, utils_1.isServiceDragId)(active.id)) {
18
18
  const activeGroup = visibleGroups.find(({ id }) => id === String(active.id));
19
19
  if (activeGroup) {
20
- setGroupDragOverlay((0, jsx_runtime_1.jsx)(SortableGroup_1.SortableGroupDragPreview, { id: activeGroup.id, label: activeGroup.label, items: activeGroup.items, isExpanded: expandedIds.includes(activeGroup.id), blockColor: (0, utils_1.resolveGroupBlockColor)(activeGroup.blockColor, showGroupsColors), showDescription: showDescription, favoriteIds: activeGroup.favoritesEnabled ? favoriteIds : undefined, onFavoriteChange: onFavoriteChange, highlight: activeGroup.highlight }));
20
+ setGroupDragOverlay((0, jsx_runtime_1.jsx)(SortableGroup_1.SortableGroupDragPreview, { id: activeGroup.id, label: activeGroup.label, items: activeGroup.items, isExpanded: expandedIds.includes(activeGroup.id), blockColor: (0, utils_1.resolveGroupBlockColor)(activeGroup.blockColor, showGroupsColors), showDescription: showDescription, favorite: activeGroup.favoritesEnabled ? favorite : undefined, highlight: activeGroup.highlight }));
21
21
  }
22
22
  }
23
- }, [expandedIds, favoriteIds, onFavoriteChange, setGroupDragOverlay, showDescription, showGroupsColors, visibleGroups]);
23
+ }, [expandedIds, favorite, setGroupDragOverlay, showDescription, showGroupsColors, visibleGroups]);
24
24
  const handleDragEnd = (0, react_1.useCallback)((event) => {
25
25
  setGroupDragOverlay(null);
26
26
  if ((0, utils_1.isServiceDragId)(event.active.id)) {
@@ -1,13 +1,3 @@
1
- .content{
2
- display:flex;
3
- flex-direction:column;
4
- gap:var(--sn-primitive-dimension-4, 4px);
5
- width:100%;
6
- min-width:0;
7
- }
8
- .content[data-mobile]{
9
- gap:var(--sn-primitive-dimension-8, 8px);
10
- }
11
1
  .content[data-empty]{
12
2
  height:100%;
13
3
  }
@@ -15,12 +5,6 @@
15
5
  flex:1 1 auto;
16
6
  }
17
7
 
18
- .top{
19
- display:flex;
20
- flex-direction:column;
21
- gap:inherit;
22
- }
23
-
24
8
  .noData{
25
9
  flex:1 1 auto;
26
10
  place-self:center center;
@@ -1,12 +1,12 @@
1
- import { FavoriteProps, InnerLink } from '../../types';
1
+ import { FavoriteProps, LinksGroup } from '../../types';
2
2
  export type FavoritesProps = {
3
3
  /** Список избранных сервисов */
4
4
  favorite: FavoriteProps;
5
- /** Сервисы каталога по id для разрешения id в карточки */
6
- servicesById: ReadonlyMap<string, InnerLink>;
5
+ /** Группы сервисов для разрешения id в карточки */
6
+ allServiceGroups: LinksGroup[];
7
7
  /** CSS-класс строки заголовка (segment + кнопка настроек) */
8
8
  headerClassName?: string;
9
9
  /** Флаг мобильной раскладки */
10
10
  isMobile?: boolean;
11
11
  };
12
- export declare function Favorites({ favorite, servicesById, headerClassName, isMobile }: FavoritesProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function Favorites({ favorite, allServiceGroups, headerClassName, isMobile }: FavoritesProps): import("react/jsx-runtime").JSX.Element;
@@ -20,7 +20,7 @@ const components_1 = require("./components");
20
20
  const constants_1 = require("./constants");
21
21
  const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
22
22
  const utils_3 = require("./utils");
23
- function Favorites({ favorite, servicesById, headerClassName, isMobile }) {
23
+ function Favorites({ favorite, allServiceGroups, headerClassName, isMobile }) {
24
24
  const { t } = locale_1.headerLocale.useTranslations();
25
25
  const loading = favorite.loading;
26
26
  const [segment, setSegment] = (0, utils_1.useValueControl)({
@@ -32,8 +32,8 @@ function Favorites({ favorite, servicesById, headerClassName, isMobile }) {
32
32
  { value: constants_1.FAVORITES_SEGMENT.Favorites, label: t('favorite.title'), disabled: loading },
33
33
  { value: constants_1.FAVORITES_SEGMENT.Recent, label: t('recent.title'), disabled: loading },
34
34
  ], [t, loading]);
35
- const favoriteItems = (0, react_1.useMemo)(() => (0, utils_2.resolveInnerLinksByIds)(favorite.value, servicesById), [favorite.value, servicesById]);
36
- const recentItems = (0, react_1.useMemo)(() => (0, utils_2.resolveInnerLinksByIds)(favorite.recentServices ?? [], servicesById), [favorite.recentServices, servicesById]);
35
+ const favoriteItems = (0, react_1.useMemo)(() => (0, utils_2.resolveInnerLinksByIds)(favorite.value, allServiceGroups), [favorite.value, allServiceGroups]);
36
+ const recentItems = (0, react_1.useMemo)(() => (0, utils_2.resolveInnerLinksByIds)(favorite.recentServices ?? [], allServiceGroups), [favorite.recentServices, allServiceGroups]);
37
37
  const resolvedSegment = segment ?? constants_1.FAVORITES_SEGMENT.Favorites;
38
38
  const isFavoritesSegment = resolvedSegment === constants_1.FAVORITES_SEGMENT.Favorites;
39
39
  const isEmpty = (isFavoritesSegment ? favoriteItems : recentItems).length === 0;
@@ -45,14 +45,11 @@ function Favorites({ favorite, servicesById, headerClassName, isMobile }) {
45
45
  favorite.onFavoriteServiceClick?.(service.id, event);
46
46
  service.onClick(event);
47
47
  };
48
- // Карточки «Недавнего» нужны только на этом сегменте — на «Избранном» их не собираем.
49
- const recentCards = isFavoritesSegment
50
- ? null
51
- : recentItems.map(service => ((0, jsx_runtime_1.jsx)(uikit_product_card_predefined_1.CardServiceLight, { as: 'a', className: styles_module_scss_1.default.card, actionsVisibility: isMobile ? 'always' : 'hover', favorite: {
52
- enabled: true,
53
- checked: favorite.value.includes(service.id),
54
- onChange: favorite.onChange(service.id),
55
- }, ...(0, utils_3.getCommonCardProps)(service, handleRecentServiceClick(service)) }, service.id)));
48
+ const recentCards = recentItems.map(service => ((0, jsx_runtime_1.jsx)(uikit_product_card_predefined_1.CardServiceLight, { as: 'a', className: styles_module_scss_1.default.card, actionsVisibility: isMobile ? 'always' : 'hover', favorite: {
49
+ enabled: true,
50
+ checked: favorite.value.includes(service.id),
51
+ onChange: favorite.onChange(service.id),
52
+ }, ...(0, utils_3.getCommonCardProps)(service, handleRecentServiceClick(service)) }, service.id)));
56
53
  const content = (() => {
57
54
  if (loading) {
58
55
  return (0, jsx_runtime_1.jsx)(components_1.FavoritesItemsSkeleton, {});
@@ -68,5 +65,5 @@ function Favorites({ favorite, servicesById, headerClassName, isMobile }) {
68
65
  onChange: favorite.onChange(service.id),
69
66
  }, ...(0, utils_3.getCommonCardProps)(service, handleFavoriteServiceClick(service)) }, service.id))), !isEmpty && !isFavoritesSegment && recentCards] }) }) })) : ((0, jsx_runtime_1.jsx)(components_1.FavoritesSortable, { favorite: favorite, favoriteItems: favoriteItems, segment: resolvedSegment, setSegment: setSegment, isEmpty: isEmpty, recentCards: recentCards, onFavoriteServiceClick: handleFavoriteServiceClick }));
70
67
  })();
71
- return ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.root, "data-test-id": constants_1.FAVORITES_TEST_IDS.root, children: [(0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)(styles_module_scss_1.default.header, headerClassName), "data-test-id": constants_1.FAVORITES_TEST_IDS.header, children: [(0, jsx_runtime_1.jsx)(segment_control_1.SegmentControl, { size: 'm', width: segment_control_1.WIDTH.Full, value: segment, onChange: setSegment, className: styles_module_scss_1.default.segmentControl, "data-test-id": constants_1.FAVORITES_TEST_IDS.segmentControl, items: segmentControlItems }), favorite.actions && ((0, jsx_runtime_1.jsx)(list_1.Droplist, { size: 'm', ...favorite.actions, closeDroplistOnItemClick: true, children: (0, jsx_runtime_1.jsx)(button_1.Button, { view: 'function', size: 'm', appearance: 'neutral', icon: (0, jsx_runtime_1.jsx)(system_1.KebabSVG, { size: 24 }), "data-test-id": constants_1.FAVORITES_TEST_IDS.settingsButton, disabled: loading }) }))] }), content] }));
68
+ return ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.root, "data-test-id": constants_1.FAVORITES_TEST_IDS.root, children: [(0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)(styles_module_scss_1.default.header, headerClassName), "data-test-id": constants_1.FAVORITES_TEST_IDS.header, children: [(0, jsx_runtime_1.jsx)(segment_control_1.SegmentControl, { size: 'm', width: segment_control_1.WIDTH.Full, value: loading ? undefined : segment, onChange: setSegment, className: styles_module_scss_1.default.segmentControl, "data-test-id": constants_1.FAVORITES_TEST_IDS.segmentControl, items: segmentControlItems }), favorite.actions && ((0, jsx_runtime_1.jsx)(list_1.Droplist, { size: 'm', ...favorite.actions, closeDroplistOnItemClick: true, children: (0, jsx_runtime_1.jsx)(button_1.Button, { view: 'function', size: 'm', appearance: 'neutral', icon: (0, jsx_runtime_1.jsx)(system_1.KebabSVG, { size: 24 }), "data-test-id": constants_1.FAVORITES_TEST_IDS.settingsButton, disabled: loading }) }))] }), content] }));
72
69
  }
@@ -2,8 +2,8 @@
2
2
  flex-shrink:0;
3
3
  width:var(--sn-primitive-dimension-40, 40px);
4
4
  height:var(--sn-primitive-dimension-40, 40px);
5
- fill:var(--sn-theme-color-neutral-decor, var(--sn-brand-color-neutral-80, var(--sn-primitive-color-gray-80, #e3e5ed)));
6
- stroke:var(--sn-theme-color-neutral-text, var(--sn-brand-color-neutral-45, var(--sn-primitive-color-gray-45, #81869c)));
5
+ fill:var(--sn-theme-color-neutral-decor, var(--sn-brand-color-neutral-80, var(--sn-brand-palette-gray-80, #e3e5ed)));
6
+ stroke:var(--sn-theme-color-neutral-text, var(--sn-brand-color-neutral-40, var(--sn-brand-palette-gray-40, #81869c)));
7
7
  }
8
8
 
9
9
  .emptyState{
@@ -7,8 +7,8 @@
7
7
  width:100%;
8
8
  min-height:var(--sn-primitive-dimension-88, 88px);
9
9
  padding:var(--sn-primitive-dimension-8, 8px) 0 0;
10
- border-radius:var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px));
11
- background:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd)));
10
+ border-radius:var(--sn-density-radius-2xs, var(--sn-platform-comfort-radius-2xs, var(--sn-primitive-dimension-4, 4px)));
11
+ background:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd)));
12
12
  }
13
13
 
14
14
  .header{
@@ -35,8 +35,8 @@
35
35
  min-height:var(--sn-primitive-dimension-44, 44px);
36
36
  }
37
37
  .listScroll[data-insert-new] [data-favorite]{
38
- fill:var(--sn-theme-color-primary-accent, var(--sn-brand-color-primary-55, var(--sn-brandRole-color-brandA-55, var(--sn-primitive-color-brandA-55, #389f74))));
39
- stroke:var(--sn-theme-color-primary-text, var(--sn-brand-color-primary-45, var(--sn-brandRole-color-brandA-45, var(--sn-primitive-color-brandA-45, #22775b))));
38
+ fill:var(--sn-theme-color-primary-accent, var(--sn-brand-color-primary-50, #389f74));
39
+ stroke:var(--sn-theme-color-primary-text, var(--sn-brand-color-primary-40, #22775b));
40
40
  }
41
41
 
42
42
  .dropTarget{
@@ -89,5 +89,5 @@
89
89
  .skeletonItem{
90
90
  width:100%;
91
91
  height:var(--sn-primitive-dimension-24, 24px);
92
- border-radius:var(--sn-density-radius-3xs, var(--sn-primitive-dimension-2, 2px));
92
+ border-radius:var(--sn-density-radius-3xs, var(--sn-platform-comfort-radius-3xs, var(--sn-primitive-dimension-2, 2px)));
93
93
  }
@@ -1,2 +1,2 @@
1
1
  import { MainMenuProps } from '../../types';
2
- export declare function MenuDesktop({ open, setOpen, settingItems, platformGroups, segments, segmentPrefs, activeSegmentId, onActiveSegmentChange, onSegmentOrderChange, onSegmentExpandedChange, onSegmentServiceClick, favorite, search, preferences, logo, rightTop, leftTop, leftBottom, defaultWidth, onWidthChangeEnd, draggerTooltip, loading, }: MainMenuProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function MenuDesktop({ open: openProp, setOpen: setOpenProp, settingItems, platformGroups, segments, segmentPrefs, activeSegmentId, onActiveSegmentChange, onSegmentOrderChange, onSegmentExpandedChange, onSegmentServiceClick, favorite, search, preferences, logo, rightTop, leftTop, leftBottom, defaultWidth, onWidthChangeEnd, draggerTooltip, loading, }: MainMenuProps): import("react/jsx-runtime").JSX.Element;
@@ -8,11 +8,11 @@ const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const divider_1 = require("@cloud-ru/ds-divider");
9
9
  const drawer_1 = require("@cloud-ru/ds-drawer");
10
10
  const scroll_1 = require("@cloud-ru/ds-scroll");
11
+ const utils_1 = require("@cloud-ru/ds-utils");
11
12
  const react_1 = require("react");
12
13
  const constants_1 = require("../../../../constants");
13
14
  const useMainMenuDnd_1 = require("../../hooks/useMainMenuDnd");
14
15
  const useMenuItems_1 = require("../../hooks/useMenuItems");
15
- const utils_1 = require("../../utils");
16
16
  const Content_1 = require("../Content");
17
17
  const Favorites_1 = require("../Favorites");
18
18
  const MenuBottom_1 = require("../MenuBottom");
@@ -21,7 +21,8 @@ const MountAnimation_1 = require("../MountAnimation");
21
21
  const Search_1 = require("../Search");
22
22
  const constants_2 = require("./constants");
23
23
  const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
24
- function MenuDesktop({ open = false, setOpen, settingItems, platformGroups, segments, segmentPrefs, activeSegmentId, onActiveSegmentChange, onSegmentOrderChange, onSegmentExpandedChange, onSegmentServiceClick, favorite, search, preferences, logo, rightTop, leftTop, leftBottom, defaultWidth = constants_2.MENU_WIDTH_MAX, onWidthChangeEnd, draggerTooltip, loading, }) {
24
+ function MenuDesktop({ open: openProp, setOpen: setOpenProp, settingItems, platformGroups, segments, segmentPrefs, activeSegmentId, onActiveSegmentChange, onSegmentOrderChange, onSegmentExpandedChange, onSegmentServiceClick, favorite, search, preferences, logo, rightTop, leftTop, leftBottom, defaultWidth = constants_2.MENU_WIDTH_MAX, onWidthChangeEnd, draggerTooltip, loading, }) {
25
+ const [open = false, setOpen] = (0, utils_1.useValueControl)({ value: openProp, onChange: setOpenProp });
25
26
  const { scrollRef, searchRef, resultItems } = (0, useMenuItems_1.useMenuItems)({
26
27
  segments,
27
28
  search,
@@ -44,19 +45,18 @@ function MenuDesktop({ open = false, setOpen, settingItems, platformGroups, segm
44
45
  // сегменты используются, `loading` держит панель смонтированной на время ответа бэка — иначе
45
46
  // `Content` не успевает показать свой skeleton (он монтируется только когда данные уже пришли),
46
47
  // и между "ничего" и карточками на кадр проскакивает пустое состояние «нет данных».
47
- const isNeedRightBlock = (0, react_1.useMemo)(() => segments !== undefined && (loading || segments.some(segment => segment.items.length > 0)), [segments, loading]);
48
+ const isNeedRightBlock = segments !== undefined && (loading || segments.some(segment => segment.items.length > 0));
48
49
  const hasBottomItems = Boolean(settingItems?.length) || Boolean(leftBottom);
49
50
  const allServiceGroups = (0, react_1.useMemo)(() => segments?.flatMap(segment => segment.items) ?? [], [segments]);
50
- const servicesById = (0, react_1.useMemo)(() => (0, utils_1.buildServicesById)(allServiceGroups), [allServiceGroups]);
51
51
  const mainMenuDnd = (0, useMainMenuDnd_1.useMainMenuDnd)({
52
52
  favorite,
53
- servicesById,
53
+ groups: allServiceGroups,
54
54
  showDescription: preferences?.showDescription.value ?? false,
55
55
  });
56
56
  const handleCloseDrawer = (0, react_1.useCallback)(() => {
57
- setOpen?.(false);
57
+ setOpen(false);
58
58
  }, [setOpen]);
59
- const menu = ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.menu, children: [(0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.menuHeader, children: [(0, jsx_runtime_1.jsx)(MenuHeaderBrand_1.MenuHeaderBrand, { logo: logo, onClose: handleCloseDrawer, className: styles_module_scss_1.default.menuHeaderBrand }), isNeedRightBlock && search && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(divider_1.Divider, { orientation: 'vertical' }), (0, jsx_runtime_1.jsx)(Search_1.Search, { ...search, ref: searchRef })] }))] }), (0, jsx_runtime_1.jsx)(divider_1.Divider, {}), (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.menuBody, children: [(0, jsx_runtime_1.jsxs)(MountAnimation_1.MountAnimation, { className: styles_module_scss_1.default.left, "data-test-id": constants_1.TEST_IDS.mainMenu.left, type: 'slide-right', children: [leftTop && (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.leftTop, children: leftTop }), isNeedRightBlock && favorite && (0, jsx_runtime_1.jsx)(Favorites_1.Favorites, { favorite: favorite, servicesById: servicesById }), hasBottomItems && (0, jsx_runtime_1.jsx)(MenuBottom_1.MenuBottom, { settingItems: settingItems, leftBottom: leftBottom })] }), isNeedRightBlock && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(MountAnimation_1.MountAnimation, { type: 'fade-in', children: (0, jsx_runtime_1.jsx)(divider_1.Divider, { orientation: 'vertical' }) }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.right, "data-test-id": constants_1.TEST_IDS.mainMenu.right, children: (0, jsx_runtime_1.jsx)(scroll_1.Scroll, { paddingAbsolute: true, className: styles_module_scss_1.default.scroll, ref: scrollRef, barHideStrategy: 'never', overflow: { x: 'hidden' }, children: (0, jsx_runtime_1.jsx)(Content_1.Content, { className: styles_module_scss_1.default.rightContent, searchValue: search?.value, rightTop: rightTop, favorite: favorite, segments: segments, searchGroups: resultItems, segmentPrefs: segmentPrefs, activeSegmentId: activeSegmentId, onActiveSegmentChange: onActiveSegmentChange, onSegmentOrderChange: onSegmentOrderChange, onSegmentExpandedChange: onSegmentExpandedChange, onSegmentServiceClick: onSegmentServiceClick, preferences: preferences, loading: loading }) }) })] }))] })] }));
59
+ const menu = ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.menu, children: [(0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.menuHeader, children: [(0, jsx_runtime_1.jsx)(MenuHeaderBrand_1.MenuHeaderBrand, { logo: logo, onClose: handleCloseDrawer, className: styles_module_scss_1.default.menuHeaderBrand }), isNeedRightBlock && search && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(divider_1.Divider, { orientation: 'vertical' }), (0, jsx_runtime_1.jsx)(Search_1.Search, { ...search, ref: searchRef })] }))] }), (0, jsx_runtime_1.jsx)(divider_1.Divider, {}), (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.menuBody, children: [(0, jsx_runtime_1.jsxs)(MountAnimation_1.MountAnimation, { className: styles_module_scss_1.default.left, "data-test-id": constants_1.TEST_IDS.mainMenu.left, type: 'slide-right', children: [leftTop && (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.leftTop, children: leftTop }), isNeedRightBlock && favorite && (0, jsx_runtime_1.jsx)(Favorites_1.Favorites, { favorite: favorite, allServiceGroups: allServiceGroups }), hasBottomItems && (0, jsx_runtime_1.jsx)(MenuBottom_1.MenuBottom, { settingItems: settingItems, leftBottom: leftBottom })] }), isNeedRightBlock && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(MountAnimation_1.MountAnimation, { type: 'fade-in', children: (0, jsx_runtime_1.jsx)(divider_1.Divider, { orientation: 'vertical' }) }), (0, jsx_runtime_1.jsx)(MountAnimation_1.MountAnimation, { type: 'fade-slide-up-right', className: styles_module_scss_1.default.right, "data-test-id": constants_1.TEST_IDS.mainMenu.right, children: (0, jsx_runtime_1.jsx)(scroll_1.Scroll, { paddingAbsolute: true, className: styles_module_scss_1.default.scroll, ref: scrollRef, barHideStrategy: 'never', overflow: { x: 'hidden' }, children: (0, jsx_runtime_1.jsx)(Content_1.Content, { className: styles_module_scss_1.default.rightContent, searchValue: search?.value, rightTop: rightTop, favorite: favorite, segments: segments, searchGroups: resultItems, segmentPrefs: segmentPrefs, activeSegmentId: activeSegmentId, onActiveSegmentChange: onActiveSegmentChange, onSegmentOrderChange: onSegmentOrderChange, onSegmentExpandedChange: onSegmentExpandedChange, onSegmentServiceClick: onSegmentServiceClick, preferences: preferences, loading: loading }) }) })] }))] })] }));
60
60
  return ((0, jsx_runtime_1.jsx)(drawer_1.DrawerCustom, { open: open, onClose: handleCloseDrawer, width: isNeedRightBlock ? 'm' : 's', position: 'left', className: styles_module_scss_1.default.drawer, rootClassName: styles_module_scss_1.default.drawerRoot, "data-test-id": constants_1.TEST_IDS.mainMenu.drawer, "data-small": !isNeedRightBlock || undefined, disableMotions: true, showButtonClosed: false, resizable: isNeedRightBlock
61
61
  ? {
62
62
  min: constants_2.MENU_WIDTH_MIN,
@@ -1,5 +1,5 @@
1
1
  .drawer{
2
- border-radius:var(--sn-drawer-anatomy-container-vertical-positionLeft-container-borderTopLeftRadius, var(--sn-primitive-dimension-0, 0)) var(--sn-drawer-anatomy-container-vertical-positionLeft-container-borderTopRightRadius, var(--sn-brand-anatomy-radius-window-m, var(--sn-primitive-dimension-4, 4px))) var(--sn-drawer-anatomy-container-vertical-positionLeft-container-borderBottomRightRadius, var(--sn-brand-anatomy-radius-window-m, var(--sn-primitive-dimension-4, 4px))) var(--sn-drawer-anatomy-container-vertical-positionLeft-container-borderBottomLeftRadius, var(--sn-primitive-dimension-0, 0));
2
+ border-radius:var(--sn-drawer-anatomy-container-vertical-positionLeft-container-borderTopLeftRadius, var(--sn-primitive-dimension-0, 0px)) var(--sn-drawer-anatomy-container-vertical-positionLeft-container-borderTopRightRadius, var(--sn-brand-anatomy-radius-window-m, var(--sn-primitive-dimension-4, 4px))) var(--sn-drawer-anatomy-container-vertical-positionLeft-container-borderBottomRightRadius, var(--sn-brand-anatomy-radius-window-m, var(--sn-primitive-dimension-4, 4px))) var(--sn-drawer-anatomy-container-vertical-positionLeft-container-borderBottomLeftRadius, var(--sn-primitive-dimension-0, 0px));
3
3
  }
4
4
 
5
5
  .scroll{
@@ -27,7 +27,7 @@
27
27
  .drawerRoot [data-test-id=header__drawer-menu][data-small][data-position][data-width]{
28
28
  box-sizing:border-box;
29
29
  width:100%;
30
- max-width:calc(263px + var(--sn-drawer-anatomy-container-vertical-positionLeft-paddingRight, var(--sn-density-spacing-interval-l, var(--sn-primitive-dimension-24, 24px))));
30
+ max-width:calc(263px + var(--sn-drawer-anatomy-container-vertical-positionLeft-paddingRight, var(--sn-density-spacing-interval-l, var(--sn-platform-comfort-spacing-interval-l, var(--sn-primitive-dimension-32, 32px)))));
31
31
  }
32
32
  .drawerRoot [data-test-id=header__drawer-menu][data-small][data-position][data-width] .left{
33
33
  width:100%;
@@ -53,6 +53,11 @@
53
53
  .rightContent{
54
54
  container-type:inline-size;
55
55
  overflow-x:clip;
56
+ display:flex;
57
+ flex-direction:column;
58
+ gap:var(--sn-primitive-dimension-4, 4px);
59
+ width:100%;
60
+ min-width:0;
56
61
  padding:var(--sn-primitive-dimension-16, 16px);
57
62
  }
58
63
 
@@ -61,7 +66,7 @@
61
66
  --snack-menu-left-width:263px;
62
67
  position:relative;
63
68
  height:100vh;
64
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3)));
69
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3)));
65
70
  }
66
71
 
67
72
  .menuBody{
@@ -3,7 +3,7 @@
3
3
  gap:var(--sn-primitive-dimension-4, 4px);
4
4
  align-items:center;
5
5
  box-sizing:border-box;
6
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3)));
6
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3)));
7
7
  }
8
8
 
9
9
  .closeButton{
@@ -1,2 +1,2 @@
1
1
  import { MainMenuProps } from '../../types';
2
- export declare function MenuMobile({ open, setOpen, settingItems, platformGroups, segments, segmentPrefs, activeSegmentId, onActiveSegmentChange, onSegmentOrderChange, onSegmentExpandedChange, onSegmentServiceClick, favorite, search, logo, rightTop, leftTop, leftBottom, loading, }: MainMenuProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function MenuMobile({ open: openProp, setOpen: setOpenProp, settingItems, platformGroups, segments, segmentPrefs, activeSegmentId, onActiveSegmentChange, onSegmentOrderChange, onSegmentExpandedChange, onSegmentServiceClick, favorite, search, logo, rightTop, leftTop, leftBottom, loading, }: MainMenuProps): import("react/jsx-runtime").JSX.Element;
@@ -6,12 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.MenuMobile = MenuMobile;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const divider_1 = require("@cloud-ru/ds-divider");
9
+ const theme_1 = require("@cloud-ru/ds-theme");
10
+ const utils_1 = require("@cloud-ru/ds-utils");
9
11
  const react_1 = require("react");
10
12
  const constants_1 = require("../../../../constants");
11
13
  const mobileOverlays_1 = require("../../../../mobileOverlays");
12
14
  const useMainMenuDnd_1 = require("../../hooks/useMainMenuDnd");
13
15
  const useMenuItems_1 = require("../../hooks/useMenuItems");
14
- const utils_1 = require("../../utils");
15
16
  const Content_1 = require("../Content");
16
17
  const Favorites_1 = require("../Favorites");
17
18
  const MenuBottom_1 = require("../MenuBottom");
@@ -20,7 +21,8 @@ const MountAnimation_1 = require("../MountAnimation");
20
21
  const ScrollWithAnimatedStickyPanel_1 = require("../ScrollWithAnimatedStickyPanel");
21
22
  const Search_1 = require("../Search");
22
23
  const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
23
- function MenuMobile({ open = false, setOpen, settingItems, platformGroups, segments, segmentPrefs, activeSegmentId, onActiveSegmentChange, onSegmentOrderChange, onSegmentExpandedChange, onSegmentServiceClick, favorite, search, logo, rightTop, leftTop, leftBottom, loading, }) {
24
+ function MenuMobile({ open: openProp, setOpen: setOpenProp, settingItems, platformGroups, segments, segmentPrefs, activeSegmentId, onActiveSegmentChange, onSegmentOrderChange, onSegmentExpandedChange, onSegmentServiceClick, favorite, search, logo, rightTop, leftTop, leftBottom, loading, }) {
25
+ const [open = false, setOpen] = (0, utils_1.useValueControl)({ value: openProp, onChange: setOpenProp });
24
26
  // `segments !== undefined` — сигнал «каталог вообще используется» (консьюмер без сегментов
25
27
  // никогда не передаёт проп, и `loading` в этом случае к правой панели не относится). Пока
26
28
  // сегменты используются, `loading` держит панель смонтированной на время ответа бэка — иначе
@@ -34,9 +36,13 @@ function MenuMobile({ open = false, setOpen, settingItems, platformGroups, segme
34
36
  search,
35
37
  platformGroups,
36
38
  });
37
- const servicesById = (0, react_1.useMemo)(() => (0, utils_1.buildServicesById)(segments?.flatMap(segment => segment.items)), [segments]);
39
+ const allServiceGroups = (0, react_1.useMemo)(() => segments?.flatMap(segment => segment.items) ?? [], [segments]);
38
40
  const handleClose = (0, react_1.useCallback)(() => {
39
- setOpen?.(false);
41
+ setOpen(false);
40
42
  }, [setOpen]);
41
- return ((0, jsx_runtime_1.jsx)(mobileOverlays_1.MobileDrawerCustom, { open: open, onClose: handleClose, position: 'bottom', className: styles_module_scss_1.default.drawerMobile, swipeEnabled: false, "data-test-id": constants_1.TEST_IDS.mainMenu.drawerMobile, closeOnPopstate: true, snapPoints: constants_1.BOTTOM_SHEET_FULLSCREEN_SNAP_POINTS, disableMotions: true, children: (0, jsx_runtime_1.jsx)(ScrollWithAnimatedStickyPanel_1.ScrollWithAnimatedStickyPanel, { panel: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(MenuHeaderBrand_1.MenuHeaderBrand, { logo: logo, onClose: handleClose, className: styles_module_scss_1.default.menuHeader }), (0, jsx_runtime_1.jsx)(divider_1.Divider, { orientation: 'horizontal' })] }), children: (0, jsx_runtime_1.jsxs)(MountAnimation_1.MountAnimation, { className: styles_module_scss_1.default.scrollMobile, type: 'fade-slide-up', children: [leftTop && (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.rightContent, children: leftTop }), search && (0, jsx_runtime_1.jsx)(Search_1.Search, { ...search, ref: searchRef, isMobile: true }), !isSearching && favorite && (0, jsx_runtime_1.jsx)(Favorites_1.Favorites, { favorite: favorite, servicesById: servicesById, isMobile: true }), hasSegments && ((0, jsx_runtime_1.jsx)(useMainMenuDnd_1.MainMenuDndContext, { children: (0, jsx_runtime_1.jsx)(Content_1.Content, { isMobile: true, searchValue: search && search.value, rightTop: rightTop, favorite: favorite, segments: segments, searchGroups: resultItems, segmentPrefs: segmentPrefs, activeSegmentId: activeSegmentId, onActiveSegmentChange: onActiveSegmentChange, onSegmentOrderChange: onSegmentOrderChange, onSegmentExpandedChange: onSegmentExpandedChange, onSegmentServiceClick: onSegmentServiceClick, loading: loading }) })), !isSearching && hasBottomItems && (0, jsx_runtime_1.jsx)(MenuBottom_1.MenuBottom, { settingItems: settingItems, leftBottom: leftBottom })] }) }) }));
43
+ return (
44
+ // Временная фиксация comfort (см. `HeaderLayout`): `MainMenu` используется и отдельно от
45
+ // `HeaderLayout`, поэтому объявляем плотность здесь же. Обёртка провайдера layout-прозрачная
46
+ // (`display: contents`) — меню рендерится порталом, лишний бокс в строке шапки не нужен.
47
+ (0, jsx_runtime_1.jsx)(theme_1.ChildThemeProvider, { value: { density: theme_1.DENSITY.Comfort }, className: styles_module_scss_1.default.densityScope, children: (0, jsx_runtime_1.jsx)(mobileOverlays_1.MobileDrawerCustom, { open: open, onClose: handleClose, position: 'bottom', className: styles_module_scss_1.default.drawerMobile, swipeEnabled: false, "data-test-id": constants_1.TEST_IDS.mainMenu.drawerMobile, closeOnPopstate: true, snapPoints: constants_1.BOTTOM_SHEET_FULLSCREEN_SNAP_POINTS, disableMotions: true, children: (0, jsx_runtime_1.jsx)(ScrollWithAnimatedStickyPanel_1.ScrollWithAnimatedStickyPanel, { panel: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(MenuHeaderBrand_1.MenuHeaderBrand, { logo: logo, onClose: handleClose, className: styles_module_scss_1.default.menuHeader }), (0, jsx_runtime_1.jsx)(divider_1.Divider, { orientation: 'horizontal' })] }), children: (0, jsx_runtime_1.jsxs)(MountAnimation_1.MountAnimation, { className: styles_module_scss_1.default.scrollMobile, type: 'fade-slide-up', children: [leftTop && (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.rightContent, children: leftTop }), search && (0, jsx_runtime_1.jsx)(Search_1.Search, { ...search, ref: searchRef, isMobile: true }), !isSearching && favorite && (0, jsx_runtime_1.jsx)(Favorites_1.Favorites, { favorite: favorite, allServiceGroups: allServiceGroups, isMobile: true }), hasSegments && ((0, jsx_runtime_1.jsx)(useMainMenuDnd_1.MainMenuDndContext, { children: (0, jsx_runtime_1.jsx)(Content_1.Content, { isMobile: true, className: styles_module_scss_1.default.rightContent, searchValue: search && search.value, rightTop: rightTop, favorite: favorite, segments: segments, searchGroups: resultItems, segmentPrefs: segmentPrefs, activeSegmentId: activeSegmentId, onActiveSegmentChange: onActiveSegmentChange, onSegmentOrderChange: onSegmentOrderChange, onSegmentExpandedChange: onSegmentExpandedChange, onSegmentServiceClick: onSegmentServiceClick, loading: loading }) })), !isSearching && hasBottomItems && (0, jsx_runtime_1.jsx)(MenuBottom_1.MenuBottom, { settingItems: settingItems, leftBottom: leftBottom })] }) }) }) }));
42
48
  }
@@ -1,10 +1,21 @@
1
+ .densityScope{
2
+ display:contents;
3
+ }
4
+
1
5
  .menuHeader{
2
6
  height:var(--sn-primitive-dimension-40, 40px);
3
7
  padding:0 var(--sn-primitive-dimension-4, 4px);
4
8
  }
5
9
 
10
+ .rightContent{
11
+ display:flex;
12
+ flex-direction:column;
13
+ gap:var(--sn-primitive-dimension-8, 8px);
14
+ min-width:0;
15
+ }
16
+
6
17
  .drawerMobile{
7
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3))) !important;
18
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3))) !important;
8
19
  }
9
20
 
10
21
  .scrollMobile{
@@ -4,4 +4,4 @@ export type MountAnimationProps = PropsWithChildren<WithSupportProps<{
4
4
  type?: 'fade-slide-up' | 'fade-slide-up-right' | 'slide-right' | 'fade-in';
5
5
  className?: string;
6
6
  }>>;
7
- export declare function MountAnimation({ children, type, className, ...props }: MountAnimationProps): string | number | boolean | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
7
+ export declare function MountAnimation({ children, type, className, ...props }: MountAnimationProps): import("react/jsx-runtime").JSX.Element;