@cloud-ru/ds-uikit-product-header-legacy 0.1.18 → 0.1.19-preview-a2208aeb.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 (26) hide show
  1. package/dist/cjs/components/HeaderLayout/HeaderLayout.js +12 -1
  2. package/dist/cjs/components/HeaderLayout/styles.module.css +1 -1
  3. package/dist/cjs/components/Logo/styles.module.css +1 -1
  4. package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/styles.module.css +3 -3
  5. package/dist/cjs/components/MainMenu/helperComponents/MenuMobile/MenuMobile.js +11 -1
  6. package/dist/cjs/components/MainMenu/helperComponents/MenuMobile/styles.module.css +7 -3
  7. package/dist/cjs/components/MainMenu/helperComponents/NavigationSearch/styles.module.css +8 -8
  8. package/dist/cjs/components/MainMenu/helperComponents/ServicesCategory/styles.module.css +7 -7
  9. package/dist/cjs/components/PlatformLogo/styles.module.css +3 -3
  10. package/dist/cjs/style.css +30 -26
  11. package/dist/esm/components/HeaderLayout/HeaderLayout.js +12 -1
  12. package/dist/esm/components/HeaderLayout/styles.module.css +1 -1
  13. package/dist/esm/components/Logo/styles.module.css +1 -1
  14. package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/styles.module.css +3 -3
  15. package/dist/esm/components/MainMenu/helperComponents/MenuMobile/MenuMobile.js +11 -1
  16. package/dist/esm/components/MainMenu/helperComponents/MenuMobile/styles.module.css +7 -3
  17. package/dist/esm/components/MainMenu/helperComponents/NavigationSearch/styles.module.css +8 -8
  18. package/dist/esm/components/MainMenu/helperComponents/ServicesCategory/styles.module.css +7 -7
  19. package/dist/esm/components/PlatformLogo/styles.module.css +3 -3
  20. package/dist/esm/style.css +30 -26
  21. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  22. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  23. package/package.json +19 -18
  24. package/src/components/HeaderLayout/HeaderLayout.tsx +20 -3
  25. package/src/components/MainMenu/helperComponents/MenuMobile/MenuMobile.tsx +83 -71
  26. package/src/components/MainMenu/helperComponents/MenuMobile/styles.module.scss +6 -0
@@ -6,9 +6,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.HeaderLayout = HeaderLayout;
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");
9
10
  const utils_1 = require("@cloud-ru/ds-utils");
10
11
  const classnames_1 = __importDefault(require("classnames"));
12
+ const react_1 = require("react");
11
13
  const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
12
14
  function HeaderLayout({ menu, logo, select, breadcrumbs, toolbar, className, isMobile = false, ...rest }) {
13
- return ((0, jsx_runtime_1.jsxs)("header", { className: (0, classnames_1.default)(styles_module_scss_1.default.header, className), ...(0, utils_1.extractSupportProps)(rest), children: [(0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.top, children: [(0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.left, children: [menu, logo, !isMobile && select && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(divider_1.Divider, { orientation: 'vertical' }), select] })), !isMobile && breadcrumbs && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(divider_1.Divider, { orientation: 'vertical' }), breadcrumbs] }))] }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.right, children: toolbar })] }), (0, jsx_runtime_1.jsx)(divider_1.Divider, { orientation: 'horizontal' }), isMobile && Boolean(breadcrumbs) && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.bottom, children: breadcrumbs }), (0, jsx_runtime_1.jsx)(divider_1.Divider, { orientation: 'horizontal' })] }))] }));
15
+ const headerRef = (0, react_1.useRef)(null);
16
+ const header = ((0, jsx_runtime_1.jsxs)("header", { ref: headerRef, className: (0, classnames_1.default)(styles_module_scss_1.default.header, className), ...(0, utils_1.extractSupportProps)(rest), children: [(0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.top, children: [(0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.left, children: [menu, logo, !isMobile && select && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(divider_1.Divider, { orientation: 'vertical' }), select] })), !isMobile && breadcrumbs && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(divider_1.Divider, { orientation: 'vertical' }), breadcrumbs] }))] }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.right, children: toolbar })] }), (0, jsx_runtime_1.jsx)(divider_1.Divider, { orientation: 'horizontal' }), isMobile && Boolean(breadcrumbs) && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.bottom, children: breadcrumbs }), (0, jsx_runtime_1.jsx)(divider_1.Divider, { orientation: 'horizontal' })] }))] }));
17
+ // Временная фиксация: на mobile прикладная тема переключилась на compact, а шапка сверстана
18
+ // под comfort и на compact ещё не переехала. Провайдер (а не класс на `<header>`) нужен потому,
19
+ // что поверхности шапки — порталы: они переэмитят набор `sn-*` из контекста на своём корне,
20
+ // и класс, поставленный поверх, проиграл бы их собственному.
21
+ if (isMobile) {
22
+ return ((0, jsx_runtime_1.jsx)(theme_1.ChildThemeProvider, { value: { density: theme_1.DENSITY.Comfort }, rootRef: headerRef, children: header }));
23
+ }
24
+ return header;
14
25
  }
@@ -1,6 +1,6 @@
1
1
  .header{
2
2
  box-sizing:border-box;
3
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3)));
3
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3)));
4
4
  }
5
5
 
6
6
  .top{
@@ -11,5 +11,5 @@
11
11
  flex-shrink:0;
12
12
  align-items:center;
13
13
  justify-content:center;
14
- color: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))));
14
+ color:var(--sn-theme-color-primary-accent, var(--sn-brand-color-primary-50, #389f74));
15
15
  }
@@ -8,7 +8,7 @@
8
8
  width:100%;
9
9
  height:100%;
10
10
  min-height:0;
11
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3)));
11
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3)));
12
12
  }
13
13
 
14
14
  .left{
@@ -75,7 +75,7 @@
75
75
 
76
76
  .leftBottomDivider{
77
77
  width:100%;
78
- padding:var(--sn-list-anatomy-size-s-listItem-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-primitive-dimension-6, 6px))) var(--sn-list-anatomy-size-s-listItem-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-s, var(--sn-primitive-dimension-12, 12px)));
78
+ padding:var(--sn-list-anatomy-size-s-listItem-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-platform-comfort-spacing-control-container-vertical-s, var(--sn-platform-comfort-scale-025-2xs, var(--sn-primitive-dimension-2, 2px))))) var(--sn-list-anatomy-size-s-listItem-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-s, var(--sn-platform-comfort-spacing-control-container-horizontal-s, var(--sn-platform-comfort-scale-050-2xs, var(--sn-primitive-dimension-4, 4px)))));
79
79
  }
80
80
 
81
81
  .leftBottomItems{
@@ -108,7 +108,7 @@
108
108
  flex-shrink:0;
109
109
  box-sizing:border-box;
110
110
  padding:var(--sn-primitive-dimension-16, 16px) var(--sn-primitive-dimension-16, 16px) 0 var(--sn-primitive-dimension-12, 12px);
111
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3)));
111
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3)));
112
112
  }
113
113
 
114
114
  .scroll{
@@ -8,8 +8,10 @@ const react_1 = require("react");
8
8
  const jsx_runtime_1 = require("react/jsx-runtime");
9
9
  const adaptive_1 = require("@cloud-ru/ds-adaptive");
10
10
  const divider_1 = require("@cloud-ru/ds-divider");
11
+ const theme_1 = require("@cloud-ru/ds-theme");
11
12
  const uikit_product_card_predefined_1 = require("@cloud-ru/ds-uikit-product-card-predefined");
12
13
  const utils_1 = require("@cloud-ru/ds-utils");
14
+ const classnames_1 = __importDefault(require("classnames"));
13
15
  const react_2 = require("react");
14
16
  const locale_1 = require("../../../../locale");
15
17
  const shouldBeOpenedInNewTab_1 = require("../../../../utils/shouldBeOpenedInNewTab");
@@ -50,5 +52,13 @@ function MenuMobile({ open: openProp, setOpen: setOpenProp, settingItems, platfo
50
52
  const searchValue = search?.searchValue;
51
53
  const showSearch = Boolean(search) && !isInitialEmptyCards && (resultItems.length > 0 || Boolean(searchValue));
52
54
  const hasBottomItems = Boolean(settingItems?.items.length);
53
- return ((0, jsx_runtime_1.jsx)(desktopDrawer_1.DesktopDrawerCustom, { open: open, onClose: handleCloseDrawer, position: 'left', width: 's', className: styles_module_scss_1.default.drawerMobile, closeOnPopstate: true, "data-test-id": constants_1.TEST_IDS.drawerMobile, children: (0, jsx_runtime_1.jsxs)(adaptive_1.AdaptiveProvider, { layoutType: layoutType, children: [(0, jsx_runtime_1.jsx)(desktopDrawer_1.DesktopDrawerCustom.Header, { title: t('mainMenu.navigation'), className: styles_module_scss_1.default.header }), (0, jsx_runtime_1.jsx)(desktopDrawer_1.DesktopDrawerCustom.Body, { bodyPadding: false, className: styles_module_scss_1.default.scrollBody, children: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.scrollMobile, children: [leftTop ? (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.leftTop, children: leftTop }) : null, !isInitialEmptyCards ? ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.main, children: [showSearch && search ? ((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.searchItem, "data-test-id": constants_1.TEST_IDS.search, children: (0, jsx_runtime_1.jsx)(NavigationSearch_1.NavigationSearch, { ref: searchRef, value: search.searchValue, onChange: search.onSearchValueChange, onBlur: search.onBlur, onFocus: search.onFocus, options: search.searchFunctions.map(fn => ({ id: fn.id, label: fn.label })), selectedOption: search.searchFn ?? search.searchFunctions[0]?.id ?? 'fuzzy', onSelectedOptionChange: search.onChangeSearchFn }) })) : null, (0, jsx_runtime_1.jsx)(Content_1.Content, { isMobile: true, onClose: handleCloseDrawer, onLinkChange: onLinkChange, className: styles_module_scss_1.default.content, searchValue: searchValue, banners: rightTop, favorite: favorite, serviceGroups: resultItems })] })) : null, isInitialEmptyCards && rightTop ? (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.bannersWrap, children: rightTop }) : null, hasBottomItems ? ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.bottom, "data-test-id": constants_1.TEST_IDS.leftBottom, children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.bottomDivider, children: (0, jsx_runtime_1.jsx)(divider_1.Divider, {}) }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.bottomItems, "data-test-id": constants_1.TEST_IDS.leftBottomItems, children: settingItems?.items.map(item => ((0, react_1.createElement)(uikit_product_card_predefined_1.CardServiceLight, { ...(item.href ? { href: item.href, as: 'a' } : { as: 'button', type: 'button' }), key: item.id, title: item.label, icon: (0, utils_2.getLinkEmblem)(item), onClick: wrappedSettingClick(item), disabled: item.disabled, className: styles_module_scss_1.default.bottomCard, "data-test-id": constants_1.TEST_IDS.setting(item.id) }))) })] })) : null] }) })] }) }));
55
+ // Временная фиксация comfort (см. `HeaderLayout`): `MainMenu` используется и отдельно от
56
+ // `HeaderLayout`, поэтому объявляем плотность здесь же. Провайдер задаёт контекст (его читают
57
+ // вложенные поверхности, которые переэмитят тему на своём корне), класс — сам дровер: он тему
58
+ // из контекста не переэмитит и иначе остался бы с плотностью приложения.
59
+ const comfortThemeClassName = (0, theme_1.useThemeClassnames)({ density: theme_1.DENSITY.Comfort });
60
+ return (
61
+ // Обёртка провайдера layout-прозрачная (`display: contents`) — меню рендерится порталом,
62
+ // лишний бокс в строке шапки не нужен.
63
+ (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)(desktopDrawer_1.DesktopDrawerCustom, { open: open, onClose: handleCloseDrawer, position: 'left', width: 's', className: (0, classnames_1.default)(styles_module_scss_1.default.drawerMobile, comfortThemeClassName), closeOnPopstate: true, "data-test-id": constants_1.TEST_IDS.drawerMobile, children: (0, jsx_runtime_1.jsxs)(adaptive_1.AdaptiveProvider, { layoutType: layoutType, children: [(0, jsx_runtime_1.jsx)(desktopDrawer_1.DesktopDrawerCustom.Header, { title: t('mainMenu.navigation'), className: styles_module_scss_1.default.header }), (0, jsx_runtime_1.jsx)(desktopDrawer_1.DesktopDrawerCustom.Body, { bodyPadding: false, className: styles_module_scss_1.default.scrollBody, children: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.scrollMobile, children: [leftTop ? (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.leftTop, children: leftTop }) : null, !isInitialEmptyCards ? ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.main, children: [showSearch && search ? ((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.searchItem, "data-test-id": constants_1.TEST_IDS.search, children: (0, jsx_runtime_1.jsx)(NavigationSearch_1.NavigationSearch, { ref: searchRef, value: search.searchValue, onChange: search.onSearchValueChange, onBlur: search.onBlur, onFocus: search.onFocus, options: search.searchFunctions.map(fn => ({ id: fn.id, label: fn.label })), selectedOption: search.searchFn ?? search.searchFunctions[0]?.id ?? 'fuzzy', onSelectedOptionChange: search.onChangeSearchFn }) })) : null, (0, jsx_runtime_1.jsx)(Content_1.Content, { isMobile: true, onClose: handleCloseDrawer, onLinkChange: onLinkChange, className: styles_module_scss_1.default.content, searchValue: searchValue, banners: rightTop, favorite: favorite, serviceGroups: resultItems })] })) : null, isInitialEmptyCards && rightTop ? (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.bannersWrap, children: rightTop }) : null, hasBottomItems ? ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.bottom, "data-test-id": constants_1.TEST_IDS.leftBottom, children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.bottomDivider, children: (0, jsx_runtime_1.jsx)(divider_1.Divider, {}) }), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.bottomItems, "data-test-id": constants_1.TEST_IDS.leftBottomItems, children: settingItems?.items.map(item => ((0, react_1.createElement)(uikit_product_card_predefined_1.CardServiceLight, { ...(item.href ? { href: item.href, as: 'a' } : { as: 'button', type: 'button' }), key: item.id, title: item.label, icon: (0, utils_2.getLinkEmblem)(item), onClick: wrappedSettingClick(item), disabled: item.disabled, className: styles_module_scss_1.default.bottomCard, "data-test-id": constants_1.TEST_IDS.setting(item.id) }))) })] })) : null] }) })] }) }) }));
54
64
  }
@@ -1,7 +1,11 @@
1
+ .densityScope{
2
+ display:contents;
3
+ }
4
+
1
5
  .drawerMobile{
2
6
  height:100%;
3
7
  min-height:0;
4
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3))) !important;
8
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3))) !important;
5
9
  }
6
10
 
7
11
  .scrollBody{
@@ -50,7 +54,7 @@
50
54
  flex-direction:column;
51
55
  gap:var(--sn-primitive-dimension-4, 4px);
52
56
  padding-bottom:var(--sn-primitive-dimension-4, 4px);
53
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3)));
57
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3)));
54
58
  }
55
59
 
56
60
  .bannersWrap{
@@ -72,7 +76,7 @@
72
76
 
73
77
  .bottomDivider{
74
78
  width:100%;
75
- padding:var(--sn-list-anatomy-size-s-listItem-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-primitive-dimension-6, 6px))) var(--sn-list-anatomy-size-s-listItem-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-s, var(--sn-primitive-dimension-12, 12px)));
79
+ padding:var(--sn-list-anatomy-size-s-listItem-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-platform-comfort-spacing-control-container-vertical-s, var(--sn-platform-comfort-scale-025-2xs, var(--sn-primitive-dimension-2, 2px))))) var(--sn-list-anatomy-size-s-listItem-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-s, var(--sn-platform-comfort-spacing-control-container-horizontal-s, var(--sn-platform-comfort-scale-050-2xs, var(--sn-primitive-dimension-4, 4px)))));
76
80
  }
77
81
 
78
82
  .bottomItems{
@@ -10,8 +10,8 @@
10
10
  display:flex;
11
11
  flex:1 0 0;
12
12
  flex-direction:column;
13
- min-height:var(--sn-field-anatomy-size-m-fieldContainer-minHeight, var(--sn-density-size-m, var(--sn-primitive-dimension-56, 56px)));
14
- padding:var(--sn-field-anatomy-size-m-fieldContainer-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-primitive-dimension-8, 8px))) var(--sn-field-anatomy-size-m-fieldContainer-paddingRight, var(--sn-density-spacing-control-container-horizontal-m, var(--sn-primitive-dimension-16, 16px))) var(--sn-field-anatomy-size-m-fieldContainer-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-primitive-dimension-8, 8px))) var(--sn-field-anatomy-size-m-fieldContainer-paddingLeft, var(--sn-density-spacing-control-container-horizontal-m, var(--sn-primitive-dimension-16, 16px)));
13
+ min-height:var(--sn-field-anatomy-size-m-fieldContainer-minHeight, var(--sn-density-size-m, var(--sn-density-scale-100-m, var(--sn-platform-comfort-scale-100-m, var(--sn-primitive-dimension-40, 40px)))));
14
+ padding:var(--sn-field-anatomy-size-m-fieldContainer-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-platform-comfort-spacing-control-container-vertical-m, var(--sn-platform-comfort-scale-025-xs, var(--sn-primitive-dimension-4, 4px))))) var(--sn-field-anatomy-size-m-fieldContainer-paddingRight, var(--sn-density-spacing-control-container-horizontal-m, var(--sn-platform-comfort-spacing-control-container-horizontal-m, var(--sn-platform-comfort-scale-050-xs, var(--sn-primitive-dimension-8, 8px))))) var(--sn-field-anatomy-size-m-fieldContainer-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-platform-comfort-spacing-control-container-vertical-m, var(--sn-platform-comfort-scale-025-xs, var(--sn-primitive-dimension-4, 4px))))) var(--sn-field-anatomy-size-m-fieldContainer-paddingLeft, var(--sn-density-spacing-control-container-horizontal-m, var(--sn-platform-comfort-spacing-control-container-horizontal-m, var(--sn-platform-comfort-scale-050-xs, var(--sn-primitive-dimension-8, 8px)))));
15
15
  }
16
16
 
17
17
  .search{
@@ -28,7 +28,7 @@
28
28
  opacity:var(--sn-theme-effect-opacity-disabled, 0.4);
29
29
  }
30
30
  .search[data-size=m]{
31
- padding:var(--sn-field-anatomy-size-m-fieldContainer-contentWrapper-verticalPadding, var(--sn-density-spacing-control-wrapper-vertical-m, var(--sn-primitive-dimension-8, 8px))) 0;
31
+ padding:var(--sn-field-anatomy-size-m-fieldContainer-contentWrapper-verticalPadding, var(--sn-density-spacing-control-wrapper-vertical-m, var(--sn-platform-comfort-spacing-control-wrapper-vertical-m, var(--sn-platform-comfort-scale-025-xs, var(--sn-primitive-dimension-4, 4px))))) 0;
32
32
  }
33
33
 
34
34
  .root{
@@ -37,8 +37,8 @@
37
37
  align-items:stretch;
38
38
  box-sizing:border-box;
39
39
  width:100%;
40
- border-radius:var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px));
41
- background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd)));
40
+ border-radius:var(--sn-density-radius-2xs, var(--sn-platform-comfort-radius-2xs, var(--sn-primitive-dimension-4, 4px)));
41
+ background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd)));
42
42
  }
43
43
  .root[data-mobile]{
44
44
  flex-direction:row;
@@ -47,7 +47,7 @@
47
47
  background-color:transparent;
48
48
  }
49
49
  .root[data-mobile][data-open-search]{
50
- background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd)));
50
+ background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd)));
51
51
  }
52
52
  .root[data-mobile] .searchWrapper{
53
53
  padding:0;
@@ -70,6 +70,6 @@
70
70
  }
71
71
 
72
72
  .mobileSearchButton[data-size=m]{
73
- border-radius:var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px));
74
- background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd)));
73
+ border-radius:var(--sn-density-radius-2xs, var(--sn-platform-comfort-radius-2xs, var(--sn-primitive-dimension-4, 4px)));
74
+ background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd)));
75
75
  }
@@ -12,20 +12,20 @@
12
12
  min-width:0;
13
13
  max-width:100%;
14
14
  padding:var(--sn-primitive-dimension-12, 12px);
15
- border-radius:var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px));
16
- background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd)));
15
+ border-radius:var(--sn-density-radius-2xs, var(--sn-platform-comfort-radius-2xs, var(--sn-primitive-dimension-4, 4px)));
16
+ background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd)));
17
17
  }
18
18
  .root[data-highlight]{
19
19
  background-color:transparent;
20
- background-image:linear-gradient(90deg, color-mix(in srgb, var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd))) 20%, transparent) 2.29%, color-mix(in srgb, 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)))) 12%, transparent) 97.84%), linear-gradient(var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd))), var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd))));
21
- box-shadow:inset 0 0 0 var(--sn-primitive-strokeWeight-strokeRegular, 1px) 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))));
20
+ background-image:linear-gradient(90deg, color-mix(in srgb, var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd))) 20%, transparent) 2.29%, color-mix(in srgb, var(--sn-theme-color-primary-decor, var(--sn-brand-color-primary-80, #caeadb)) 12%, transparent) 97.84%), linear-gradient(var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd))), var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd))));
21
+ box-shadow:inset 0 0 0 var(--sn-primitive-strokeWeight-strokeRegular, 1px) var(--sn-theme-color-primary-accent, var(--sn-brand-color-primary-50, #389f74));
22
22
  }
23
23
 
24
24
  .title{
25
- font-family:var(--sn-regular-title-m-fontFamily, var(--sn-brand-font-fontFamily-regular-title, var(--sn-primitive-fontFamily-brandA-sans, SB Sans Interface)));
25
+ font-family:var(--sn-regular-title-m-fontFamily, var(--sn-brand-font-fontFamily-regular-title, SB Sans Interface));
26
26
  font-weight:var(--sn-regular-title-m-fontWeight, var(--sn-theme-typography-fontWeight-regular-title-m, var(--sn-brand-font-fontWeight-light-regular-title-m, var(--sn-primitive-font-fontWeightValue-600, 600))));
27
- line-height:var(--sn-regular-title-m-lineHeight, var(--sn-density-typography-roleTitle-lineHeightM, var(--sn-primitive-font-lineHeight-by16, 24px)));
28
- font-size:var(--sn-regular-title-m-fontSize, var(--sn-density-typography-roleTitle-fontSizeM, var(--sn-primitive-font-fontSize-16, 16px)));
27
+ line-height:var(--sn-regular-title-m-lineHeight, var(--sn-density-typography-roleTitle-lineHeightM, var(--sn-platform-comfort-typography-roleTitle-lineHeightM, var(--sn-primitive-font-lineHeight-24, 24px))));
28
+ font-size:var(--sn-regular-title-m-fontSize, var(--sn-density-typography-roleTitle-fontSizeM, var(--sn-platform-comfort-typography-roleTitle-fontSizeM, var(--sn-primitive-font-fontSize-16, 16px))));
29
29
  letter-spacing:var(--sn-regular-title-m-letterSpacing, var(--sn-primitive-font-letterSpacing-l, 0.15px));
30
30
  paragraph-spacing:var(--sn-regular-title-m-paragraphSpacing, var(--sn-primitive-font-paragraphSpacing-byFontSize16, 8px));
31
31
  margin:0;
@@ -5,9 +5,9 @@
5
5
  justify-content:center;
6
6
  box-sizing:border-box;
7
7
  padding:var(--sn-primitive-dimension-4, 4px);
8
- border-radius:var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px));
9
- color:var(--sn-theme-color-neutral-onAccent, var(--sn-brand-color-neutral-99, var(--sn-primitive-color-gray-99, #ffffff)));
10
- background:var(--sn-theme-color-neutral-accent, var(--sn-brand-color-neutral-55, var(--sn-primitive-color-gray-55, #8b8fa7)));
8
+ border-radius:var(--sn-density-radius-2xs, var(--sn-platform-comfort-radius-2xs, var(--sn-primitive-dimension-4, 4px)));
9
+ color:var(--sn-theme-color-neutral-onAccent, var(--sn-brand-color-neutral-99, var(--sn-brand-palette-gray-99, #ffffff)));
10
+ background:var(--sn-theme-color-neutral-accent, var(--sn-brand-color-neutral-50, var(--sn-brand-palette-gray-50, #8b8fa7)));
11
11
  }
12
12
  .root[data-compact]{
13
13
  padding:0;
@@ -1,6 +1,6 @@
1
1
  .header{
2
2
  box-sizing:border-box;
3
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3)));
3
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3)));
4
4
  }
5
5
 
6
6
  .top{
@@ -50,7 +50,7 @@
50
50
  flex-shrink:0;
51
51
  align-items:center;
52
52
  justify-content:center;
53
- color: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))));
53
+ color:var(--sn-theme-color-primary-accent, var(--sn-brand-color-primary-50, #389f74));
54
54
  }
55
55
  .root{
56
56
  display:flex;
@@ -111,7 +111,7 @@
111
111
  width:100%;
112
112
  height:100%;
113
113
  min-height:0;
114
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3)));
114
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3)));
115
115
  }
116
116
 
117
117
  .left{
@@ -178,7 +178,7 @@
178
178
 
179
179
  .leftBottomDivider{
180
180
  width:100%;
181
- padding:var(--sn-list-anatomy-size-s-listItem-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-primitive-dimension-6, 6px))) var(--sn-list-anatomy-size-s-listItem-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-s, var(--sn-primitive-dimension-12, 12px)));
181
+ padding:var(--sn-list-anatomy-size-s-listItem-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-platform-comfort-spacing-control-container-vertical-s, var(--sn-platform-comfort-scale-025-2xs, var(--sn-primitive-dimension-2, 2px))))) var(--sn-list-anatomy-size-s-listItem-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-s, var(--sn-platform-comfort-spacing-control-container-horizontal-s, var(--sn-platform-comfort-scale-050-2xs, var(--sn-primitive-dimension-4, 4px)))));
182
182
  }
183
183
 
184
184
  .leftBottomItems{
@@ -211,7 +211,7 @@
211
211
  flex-shrink:0;
212
212
  box-sizing:border-box;
213
213
  padding:var(--sn-primitive-dimension-16, 16px) var(--sn-primitive-dimension-16, 16px) 0 var(--sn-primitive-dimension-12, 12px);
214
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3)));
214
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3)));
215
215
  }
216
216
 
217
217
  .scroll{
@@ -246,10 +246,14 @@
246
246
  .bannersWrap{
247
247
  padding:var(--sn-primitive-dimension-4, 4px) var(--sn-primitive-dimension-8, 8px) var(--sn-primitive-dimension-8, 8px);
248
248
  }
249
+ .densityScope{
250
+ display:contents;
251
+ }
252
+
249
253
  .drawerMobile{
250
254
  height:100%;
251
255
  min-height:0;
252
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3))) !important;
256
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3))) !important;
253
257
  }
254
258
 
255
259
  .scrollBody{
@@ -298,7 +302,7 @@
298
302
  flex-direction:column;
299
303
  gap:var(--sn-primitive-dimension-4, 4px);
300
304
  padding-bottom:var(--sn-primitive-dimension-4, 4px);
301
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3)));
305
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3)));
302
306
  }
303
307
 
304
308
  .bannersWrap{
@@ -320,7 +324,7 @@
320
324
 
321
325
  .bottomDivider{
322
326
  width:100%;
323
- padding:var(--sn-list-anatomy-size-s-listItem-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-primitive-dimension-6, 6px))) var(--sn-list-anatomy-size-s-listItem-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-s, var(--sn-primitive-dimension-12, 12px)));
327
+ padding:var(--sn-list-anatomy-size-s-listItem-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-platform-comfort-spacing-control-container-vertical-s, var(--sn-platform-comfort-scale-025-2xs, var(--sn-primitive-dimension-2, 2px))))) var(--sn-list-anatomy-size-s-listItem-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-s, var(--sn-platform-comfort-spacing-control-container-horizontal-s, var(--sn-platform-comfort-scale-050-2xs, var(--sn-primitive-dimension-4, 4px)))));
324
328
  }
325
329
 
326
330
  .bottomItems{
@@ -344,8 +348,8 @@
344
348
  display:flex;
345
349
  flex:1 0 0;
346
350
  flex-direction:column;
347
- min-height:var(--sn-field-anatomy-size-m-fieldContainer-minHeight, var(--sn-density-size-m, var(--sn-primitive-dimension-56, 56px)));
348
- padding:var(--sn-field-anatomy-size-m-fieldContainer-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-primitive-dimension-8, 8px))) var(--sn-field-anatomy-size-m-fieldContainer-paddingRight, var(--sn-density-spacing-control-container-horizontal-m, var(--sn-primitive-dimension-16, 16px))) var(--sn-field-anatomy-size-m-fieldContainer-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-primitive-dimension-8, 8px))) var(--sn-field-anatomy-size-m-fieldContainer-paddingLeft, var(--sn-density-spacing-control-container-horizontal-m, var(--sn-primitive-dimension-16, 16px)));
351
+ min-height:var(--sn-field-anatomy-size-m-fieldContainer-minHeight, var(--sn-density-size-m, var(--sn-density-scale-100-m, var(--sn-platform-comfort-scale-100-m, var(--sn-primitive-dimension-40, 40px)))));
352
+ padding:var(--sn-field-anatomy-size-m-fieldContainer-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-platform-comfort-spacing-control-container-vertical-m, var(--sn-platform-comfort-scale-025-xs, var(--sn-primitive-dimension-4, 4px))))) var(--sn-field-anatomy-size-m-fieldContainer-paddingRight, var(--sn-density-spacing-control-container-horizontal-m, var(--sn-platform-comfort-spacing-control-container-horizontal-m, var(--sn-platform-comfort-scale-050-xs, var(--sn-primitive-dimension-8, 8px))))) var(--sn-field-anatomy-size-m-fieldContainer-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-platform-comfort-spacing-control-container-vertical-m, var(--sn-platform-comfort-scale-025-xs, var(--sn-primitive-dimension-4, 4px))))) var(--sn-field-anatomy-size-m-fieldContainer-paddingLeft, var(--sn-density-spacing-control-container-horizontal-m, var(--sn-platform-comfort-spacing-control-container-horizontal-m, var(--sn-platform-comfort-scale-050-xs, var(--sn-primitive-dimension-8, 8px)))));
349
353
  }
350
354
 
351
355
  .search{
@@ -362,7 +366,7 @@
362
366
  opacity:var(--sn-theme-effect-opacity-disabled, 0.4);
363
367
  }
364
368
  .search[data-size=m]{
365
- padding:var(--sn-field-anatomy-size-m-fieldContainer-contentWrapper-verticalPadding, var(--sn-density-spacing-control-wrapper-vertical-m, var(--sn-primitive-dimension-8, 8px))) 0;
369
+ padding:var(--sn-field-anatomy-size-m-fieldContainer-contentWrapper-verticalPadding, var(--sn-density-spacing-control-wrapper-vertical-m, var(--sn-platform-comfort-spacing-control-wrapper-vertical-m, var(--sn-platform-comfort-scale-025-xs, var(--sn-primitive-dimension-4, 4px))))) 0;
366
370
  }
367
371
 
368
372
  .root{
@@ -371,8 +375,8 @@
371
375
  align-items:stretch;
372
376
  box-sizing:border-box;
373
377
  width:100%;
374
- border-radius:var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px));
375
- background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd)));
378
+ border-radius:var(--sn-density-radius-2xs, var(--sn-platform-comfort-radius-2xs, var(--sn-primitive-dimension-4, 4px)));
379
+ background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd)));
376
380
  }
377
381
  .root[data-mobile]{
378
382
  flex-direction:row;
@@ -381,7 +385,7 @@
381
385
  background-color:transparent;
382
386
  }
383
387
  .root[data-mobile][data-open-search]{
384
- background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd)));
388
+ background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd)));
385
389
  }
386
390
  .root[data-mobile] .searchWrapper{
387
391
  padding:0;
@@ -404,8 +408,8 @@
404
408
  }
405
409
 
406
410
  .mobileSearchButton[data-size=m]{
407
- border-radius:var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px));
408
- background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd)));
411
+ border-radius:var(--sn-density-radius-2xs, var(--sn-platform-comfort-radius-2xs, var(--sn-primitive-dimension-4, 4px)));
412
+ background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd)));
409
413
  }
410
414
  @charset "UTF-8";
411
415
  .root{
@@ -421,20 +425,20 @@
421
425
  min-width:0;
422
426
  max-width:100%;
423
427
  padding:var(--sn-primitive-dimension-12, 12px);
424
- border-radius:var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px));
425
- background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd)));
428
+ border-radius:var(--sn-density-radius-2xs, var(--sn-platform-comfort-radius-2xs, var(--sn-primitive-dimension-4, 4px)));
429
+ background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd)));
426
430
  }
427
431
  .root[data-highlight]{
428
432
  background-color:transparent;
429
- background-image:linear-gradient(90deg, color-mix(in srgb, var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd))) 20%, transparent) 2.29%, color-mix(in srgb, 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)))) 12%, transparent) 97.84%), linear-gradient(var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd))), var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd))));
430
- box-shadow:inset 0 0 0 var(--sn-primitive-strokeWeight-strokeRegular, 1px) 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))));
433
+ background-image:linear-gradient(90deg, color-mix(in srgb, var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd))) 20%, transparent) 2.29%, color-mix(in srgb, var(--sn-theme-color-primary-decor, var(--sn-brand-color-primary-80, #caeadb)) 12%, transparent) 97.84%), linear-gradient(var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd))), var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd))));
434
+ box-shadow:inset 0 0 0 var(--sn-primitive-strokeWeight-strokeRegular, 1px) var(--sn-theme-color-primary-accent, var(--sn-brand-color-primary-50, #389f74));
431
435
  }
432
436
 
433
437
  .title{
434
- font-family:var(--sn-regular-title-m-fontFamily, var(--sn-brand-font-fontFamily-regular-title, var(--sn-primitive-fontFamily-brandA-sans, SB Sans Interface)));
438
+ font-family:var(--sn-regular-title-m-fontFamily, var(--sn-brand-font-fontFamily-regular-title, SB Sans Interface));
435
439
  font-weight:var(--sn-regular-title-m-fontWeight, var(--sn-theme-typography-fontWeight-regular-title-m, var(--sn-brand-font-fontWeight-light-regular-title-m, var(--sn-primitive-font-fontWeightValue-600, 600))));
436
- line-height:var(--sn-regular-title-m-lineHeight, var(--sn-density-typography-roleTitle-lineHeightM, var(--sn-primitive-font-lineHeight-by16, 24px)));
437
- font-size:var(--sn-regular-title-m-fontSize, var(--sn-density-typography-roleTitle-fontSizeM, var(--sn-primitive-font-fontSize-16, 16px)));
440
+ line-height:var(--sn-regular-title-m-lineHeight, var(--sn-density-typography-roleTitle-lineHeightM, var(--sn-platform-comfort-typography-roleTitle-lineHeightM, var(--sn-primitive-font-lineHeight-24, 24px))));
441
+ font-size:var(--sn-regular-title-m-fontSize, var(--sn-density-typography-roleTitle-fontSizeM, var(--sn-platform-comfort-typography-roleTitle-fontSizeM, var(--sn-primitive-font-fontSize-16, 16px))));
438
442
  letter-spacing:var(--sn-regular-title-m-letterSpacing, var(--sn-primitive-font-letterSpacing-l, 0.15px));
439
443
  paragraph-spacing:var(--sn-regular-title-m-paragraphSpacing, var(--sn-primitive-font-paragraphSpacing-byFontSize16, 8px));
440
444
  margin:0;
@@ -495,9 +499,9 @@
495
499
  justify-content:center;
496
500
  box-sizing:border-box;
497
501
  padding:var(--sn-primitive-dimension-4, 4px);
498
- border-radius:var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px));
499
- color:var(--sn-theme-color-neutral-onAccent, var(--sn-brand-color-neutral-99, var(--sn-primitive-color-gray-99, #ffffff)));
500
- background:var(--sn-theme-color-neutral-accent, var(--sn-brand-color-neutral-55, var(--sn-primitive-color-gray-55, #8b8fa7)));
502
+ border-radius:var(--sn-density-radius-2xs, var(--sn-platform-comfort-radius-2xs, var(--sn-primitive-dimension-4, 4px)));
503
+ color:var(--sn-theme-color-neutral-onAccent, var(--sn-brand-color-neutral-99, var(--sn-brand-palette-gray-99, #ffffff)));
504
+ background:var(--sn-theme-color-neutral-accent, var(--sn-brand-color-neutral-50, var(--sn-brand-palette-gray-50, #8b8fa7)));
501
505
  }
502
506
  .root[data-compact]{
503
507
  padding:0;
@@ -1,8 +1,19 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Divider } from '@cloud-ru/ds-divider';
3
+ import { ChildThemeProvider, DENSITY } from '@cloud-ru/ds-theme';
3
4
  import { extractSupportProps } from '@cloud-ru/ds-utils';
4
5
  import cn from 'classnames';
6
+ import { useRef } from 'react';
5
7
  import styles from './styles.module.css';
6
8
  export function HeaderLayout({ menu, logo, select, breadcrumbs, toolbar, className, isMobile = false, ...rest }) {
7
- return (_jsxs("header", { className: cn(styles.header, className), ...extractSupportProps(rest), children: [_jsxs("div", { className: styles.top, children: [_jsxs("div", { className: styles.left, children: [menu, logo, !isMobile && select && (_jsxs(_Fragment, { children: [_jsx(Divider, { orientation: 'vertical' }), select] })), !isMobile && breadcrumbs && (_jsxs(_Fragment, { children: [_jsx(Divider, { orientation: 'vertical' }), breadcrumbs] }))] }), _jsx("div", { className: styles.right, children: toolbar })] }), _jsx(Divider, { orientation: 'horizontal' }), isMobile && Boolean(breadcrumbs) && (_jsxs(_Fragment, { children: [_jsx("div", { className: styles.bottom, children: breadcrumbs }), _jsx(Divider, { orientation: 'horizontal' })] }))] }));
9
+ const headerRef = useRef(null);
10
+ const header = (_jsxs("header", { ref: headerRef, className: cn(styles.header, className), ...extractSupportProps(rest), children: [_jsxs("div", { className: styles.top, children: [_jsxs("div", { className: styles.left, children: [menu, logo, !isMobile && select && (_jsxs(_Fragment, { children: [_jsx(Divider, { orientation: 'vertical' }), select] })), !isMobile && breadcrumbs && (_jsxs(_Fragment, { children: [_jsx(Divider, { orientation: 'vertical' }), breadcrumbs] }))] }), _jsx("div", { className: styles.right, children: toolbar })] }), _jsx(Divider, { orientation: 'horizontal' }), isMobile && Boolean(breadcrumbs) && (_jsxs(_Fragment, { children: [_jsx("div", { className: styles.bottom, children: breadcrumbs }), _jsx(Divider, { orientation: 'horizontal' })] }))] }));
11
+ // Временная фиксация: на mobile прикладная тема переключилась на compact, а шапка сверстана
12
+ // под comfort и на compact ещё не переехала. Провайдер (а не класс на `<header>`) нужен потому,
13
+ // что поверхности шапки — порталы: они переэмитят набор `sn-*` из контекста на своём корне,
14
+ // и класс, поставленный поверх, проиграл бы их собственному.
15
+ if (isMobile) {
16
+ return (_jsx(ChildThemeProvider, { value: { density: DENSITY.Comfort }, rootRef: headerRef, children: header }));
17
+ }
18
+ return header;
8
19
  }
@@ -1,6 +1,6 @@
1
1
  .header{
2
2
  box-sizing:border-box;
3
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3)));
3
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3)));
4
4
  }
5
5
 
6
6
  .top{
@@ -11,5 +11,5 @@
11
11
  flex-shrink:0;
12
12
  align-items:center;
13
13
  justify-content:center;
14
- color: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))));
14
+ color:var(--sn-theme-color-primary-accent, var(--sn-brand-color-primary-50, #389f74));
15
15
  }
@@ -8,7 +8,7 @@
8
8
  width:100%;
9
9
  height:100%;
10
10
  min-height:0;
11
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3)));
11
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3)));
12
12
  }
13
13
 
14
14
  .left{
@@ -75,7 +75,7 @@
75
75
 
76
76
  .leftBottomDivider{
77
77
  width:100%;
78
- padding:var(--sn-list-anatomy-size-s-listItem-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-primitive-dimension-6, 6px))) var(--sn-list-anatomy-size-s-listItem-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-s, var(--sn-primitive-dimension-12, 12px)));
78
+ padding:var(--sn-list-anatomy-size-s-listItem-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-platform-comfort-spacing-control-container-vertical-s, var(--sn-platform-comfort-scale-025-2xs, var(--sn-primitive-dimension-2, 2px))))) var(--sn-list-anatomy-size-s-listItem-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-s, var(--sn-platform-comfort-spacing-control-container-horizontal-s, var(--sn-platform-comfort-scale-050-2xs, var(--sn-primitive-dimension-4, 4px)))));
79
79
  }
80
80
 
81
81
  .leftBottomItems{
@@ -108,7 +108,7 @@
108
108
  flex-shrink:0;
109
109
  box-sizing:border-box;
110
110
  padding:var(--sn-primitive-dimension-16, 16px) var(--sn-primitive-dimension-16, 16px) 0 var(--sn-primitive-dimension-12, 12px);
111
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3)));
111
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3)));
112
112
  }
113
113
 
114
114
  .scroll{
@@ -2,8 +2,10 @@ import { createElement as _createElement } from "react";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { AdaptiveProvider, useAdaptiveLayout } from '@cloud-ru/ds-adaptive';
4
4
  import { Divider } from '@cloud-ru/ds-divider';
5
+ import { ChildThemeProvider, DENSITY, useThemeClassnames } from '@cloud-ru/ds-theme';
5
6
  import { CardServiceLight } from '@cloud-ru/ds-uikit-product-card-predefined';
6
7
  import { useValueControl } from '@cloud-ru/ds-utils';
8
+ import cn from 'classnames';
7
9
  import { useCallback } from 'react';
8
10
  import { headerLegacyLocale } from '../../../../locale/index.js';
9
11
  import { shouldBeOpenedInNewTab } from '../../../../utils/shouldBeOpenedInNewTab.js';
@@ -44,5 +46,13 @@ export function MenuMobile({ open: openProp, setOpen: setOpenProp, settingItems,
44
46
  const searchValue = search?.searchValue;
45
47
  const showSearch = Boolean(search) && !isInitialEmptyCards && (resultItems.length > 0 || Boolean(searchValue));
46
48
  const hasBottomItems = Boolean(settingItems?.items.length);
47
- return (_jsx(DesktopDrawerCustom, { open: open, onClose: handleCloseDrawer, position: 'left', width: 's', className: styles.drawerMobile, closeOnPopstate: true, "data-test-id": TEST_IDS.drawerMobile, children: _jsxs(AdaptiveProvider, { layoutType: layoutType, children: [_jsx(DesktopDrawerCustom.Header, { title: t('mainMenu.navigation'), className: styles.header }), _jsx(DesktopDrawerCustom.Body, { bodyPadding: false, className: styles.scrollBody, children: _jsxs("div", { className: styles.scrollMobile, children: [leftTop ? _jsx("div", { className: styles.leftTop, children: leftTop }) : null, !isInitialEmptyCards ? (_jsxs("div", { className: styles.main, children: [showSearch && search ? (_jsx("div", { className: styles.searchItem, "data-test-id": TEST_IDS.search, children: _jsx(NavigationSearch, { ref: searchRef, value: search.searchValue, onChange: search.onSearchValueChange, onBlur: search.onBlur, onFocus: search.onFocus, options: search.searchFunctions.map(fn => ({ id: fn.id, label: fn.label })), selectedOption: search.searchFn ?? search.searchFunctions[0]?.id ?? 'fuzzy', onSelectedOptionChange: search.onChangeSearchFn }) })) : null, _jsx(Content, { isMobile: true, onClose: handleCloseDrawer, onLinkChange: onLinkChange, className: styles.content, searchValue: searchValue, banners: rightTop, favorite: favorite, serviceGroups: resultItems })] })) : null, isInitialEmptyCards && rightTop ? _jsx("div", { className: styles.bannersWrap, children: rightTop }) : null, hasBottomItems ? (_jsxs("div", { className: styles.bottom, "data-test-id": TEST_IDS.leftBottom, children: [_jsx("div", { className: styles.bottomDivider, children: _jsx(Divider, {}) }), _jsx("div", { className: styles.bottomItems, "data-test-id": TEST_IDS.leftBottomItems, children: settingItems?.items.map(item => (_createElement(CardServiceLight, { ...(item.href ? { href: item.href, as: 'a' } : { as: 'button', type: 'button' }), key: item.id, title: item.label, icon: getLinkEmblem(item), onClick: wrappedSettingClick(item), disabled: item.disabled, className: styles.bottomCard, "data-test-id": TEST_IDS.setting(item.id) }))) })] })) : null] }) })] }) }));
49
+ // Временная фиксация comfort (см. `HeaderLayout`): `MainMenu` используется и отдельно от
50
+ // `HeaderLayout`, поэтому объявляем плотность здесь же. Провайдер задаёт контекст (его читают
51
+ // вложенные поверхности, которые переэмитят тему на своём корне), класс — сам дровер: он тему
52
+ // из контекста не переэмитит и иначе остался бы с плотностью приложения.
53
+ const comfortThemeClassName = useThemeClassnames({ density: DENSITY.Comfort });
54
+ return (
55
+ // Обёртка провайдера layout-прозрачная (`display: contents`) — меню рендерится порталом,
56
+ // лишний бокс в строке шапки не нужен.
57
+ _jsx(ChildThemeProvider, { value: { density: DENSITY.Comfort }, className: styles.densityScope, children: _jsx(DesktopDrawerCustom, { open: open, onClose: handleCloseDrawer, position: 'left', width: 's', className: cn(styles.drawerMobile, comfortThemeClassName), closeOnPopstate: true, "data-test-id": TEST_IDS.drawerMobile, children: _jsxs(AdaptiveProvider, { layoutType: layoutType, children: [_jsx(DesktopDrawerCustom.Header, { title: t('mainMenu.navigation'), className: styles.header }), _jsx(DesktopDrawerCustom.Body, { bodyPadding: false, className: styles.scrollBody, children: _jsxs("div", { className: styles.scrollMobile, children: [leftTop ? _jsx("div", { className: styles.leftTop, children: leftTop }) : null, !isInitialEmptyCards ? (_jsxs("div", { className: styles.main, children: [showSearch && search ? (_jsx("div", { className: styles.searchItem, "data-test-id": TEST_IDS.search, children: _jsx(NavigationSearch, { ref: searchRef, value: search.searchValue, onChange: search.onSearchValueChange, onBlur: search.onBlur, onFocus: search.onFocus, options: search.searchFunctions.map(fn => ({ id: fn.id, label: fn.label })), selectedOption: search.searchFn ?? search.searchFunctions[0]?.id ?? 'fuzzy', onSelectedOptionChange: search.onChangeSearchFn }) })) : null, _jsx(Content, { isMobile: true, onClose: handleCloseDrawer, onLinkChange: onLinkChange, className: styles.content, searchValue: searchValue, banners: rightTop, favorite: favorite, serviceGroups: resultItems })] })) : null, isInitialEmptyCards && rightTop ? _jsx("div", { className: styles.bannersWrap, children: rightTop }) : null, hasBottomItems ? (_jsxs("div", { className: styles.bottom, "data-test-id": TEST_IDS.leftBottom, children: [_jsx("div", { className: styles.bottomDivider, children: _jsx(Divider, {}) }), _jsx("div", { className: styles.bottomItems, "data-test-id": TEST_IDS.leftBottomItems, children: settingItems?.items.map(item => (_createElement(CardServiceLight, { ...(item.href ? { href: item.href, as: 'a' } : { as: 'button', type: 'button' }), key: item.id, title: item.label, icon: getLinkEmblem(item), onClick: wrappedSettingClick(item), disabled: item.disabled, className: styles.bottomCard, "data-test-id": TEST_IDS.setting(item.id) }))) })] })) : null] }) })] }) }) }));
48
58
  }
@@ -1,7 +1,11 @@
1
+ .densityScope{
2
+ display:contents;
3
+ }
4
+
1
5
  .drawerMobile{
2
6
  height:100%;
3
7
  min-height:0;
4
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3))) !important;
8
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3))) !important;
5
9
  }
6
10
 
7
11
  .scrollBody{
@@ -50,7 +54,7 @@
50
54
  flex-direction:column;
51
55
  gap:var(--sn-primitive-dimension-4, 4px);
52
56
  padding-bottom:var(--sn-primitive-dimension-4, 4px);
53
- background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3)));
57
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-brand-palette-gray-90, #eeeff3)));
54
58
  }
55
59
 
56
60
  .bannersWrap{
@@ -72,7 +76,7 @@
72
76
 
73
77
  .bottomDivider{
74
78
  width:100%;
75
- padding:var(--sn-list-anatomy-size-s-listItem-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-primitive-dimension-6, 6px))) var(--sn-list-anatomy-size-s-listItem-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-s, var(--sn-primitive-dimension-12, 12px)));
79
+ padding:var(--sn-list-anatomy-size-s-listItem-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-platform-comfort-spacing-control-container-vertical-s, var(--sn-platform-comfort-scale-025-2xs, var(--sn-primitive-dimension-2, 2px))))) var(--sn-list-anatomy-size-s-listItem-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-s, var(--sn-platform-comfort-spacing-control-container-horizontal-s, var(--sn-platform-comfort-scale-050-2xs, var(--sn-primitive-dimension-4, 4px)))));
76
80
  }
77
81
 
78
82
  .bottomItems{
@@ -10,8 +10,8 @@
10
10
  display:flex;
11
11
  flex:1 0 0;
12
12
  flex-direction:column;
13
- min-height:var(--sn-field-anatomy-size-m-fieldContainer-minHeight, var(--sn-density-size-m, var(--sn-primitive-dimension-56, 56px)));
14
- padding:var(--sn-field-anatomy-size-m-fieldContainer-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-primitive-dimension-8, 8px))) var(--sn-field-anatomy-size-m-fieldContainer-paddingRight, var(--sn-density-spacing-control-container-horizontal-m, var(--sn-primitive-dimension-16, 16px))) var(--sn-field-anatomy-size-m-fieldContainer-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-primitive-dimension-8, 8px))) var(--sn-field-anatomy-size-m-fieldContainer-paddingLeft, var(--sn-density-spacing-control-container-horizontal-m, var(--sn-primitive-dimension-16, 16px)));
13
+ min-height:var(--sn-field-anatomy-size-m-fieldContainer-minHeight, var(--sn-density-size-m, var(--sn-density-scale-100-m, var(--sn-platform-comfort-scale-100-m, var(--sn-primitive-dimension-40, 40px)))));
14
+ padding:var(--sn-field-anatomy-size-m-fieldContainer-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-platform-comfort-spacing-control-container-vertical-m, var(--sn-platform-comfort-scale-025-xs, var(--sn-primitive-dimension-4, 4px))))) var(--sn-field-anatomy-size-m-fieldContainer-paddingRight, var(--sn-density-spacing-control-container-horizontal-m, var(--sn-platform-comfort-spacing-control-container-horizontal-m, var(--sn-platform-comfort-scale-050-xs, var(--sn-primitive-dimension-8, 8px))))) var(--sn-field-anatomy-size-m-fieldContainer-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-platform-comfort-spacing-control-container-vertical-m, var(--sn-platform-comfort-scale-025-xs, var(--sn-primitive-dimension-4, 4px))))) var(--sn-field-anatomy-size-m-fieldContainer-paddingLeft, var(--sn-density-spacing-control-container-horizontal-m, var(--sn-platform-comfort-spacing-control-container-horizontal-m, var(--sn-platform-comfort-scale-050-xs, var(--sn-primitive-dimension-8, 8px)))));
15
15
  }
16
16
 
17
17
  .search{
@@ -28,7 +28,7 @@
28
28
  opacity:var(--sn-theme-effect-opacity-disabled, 0.4);
29
29
  }
30
30
  .search[data-size=m]{
31
- padding:var(--sn-field-anatomy-size-m-fieldContainer-contentWrapper-verticalPadding, var(--sn-density-spacing-control-wrapper-vertical-m, var(--sn-primitive-dimension-8, 8px))) 0;
31
+ padding:var(--sn-field-anatomy-size-m-fieldContainer-contentWrapper-verticalPadding, var(--sn-density-spacing-control-wrapper-vertical-m, var(--sn-platform-comfort-spacing-control-wrapper-vertical-m, var(--sn-platform-comfort-scale-025-xs, var(--sn-primitive-dimension-4, 4px))))) 0;
32
32
  }
33
33
 
34
34
  .root{
@@ -37,8 +37,8 @@
37
37
  align-items:stretch;
38
38
  box-sizing:border-box;
39
39
  width:100%;
40
- border-radius:var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px));
41
- background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd)));
40
+ border-radius:var(--sn-density-radius-2xs, var(--sn-platform-comfort-radius-2xs, var(--sn-primitive-dimension-4, 4px)));
41
+ background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd)));
42
42
  }
43
43
  .root[data-mobile]{
44
44
  flex-direction:row;
@@ -47,7 +47,7 @@
47
47
  background-color:transparent;
48
48
  }
49
49
  .root[data-mobile][data-open-search]{
50
- background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd)));
50
+ background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd)));
51
51
  }
52
52
  .root[data-mobile] .searchWrapper{
53
53
  padding:0;
@@ -70,6 +70,6 @@
70
70
  }
71
71
 
72
72
  .mobileSearchButton[data-size=m]{
73
- border-radius:var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px));
74
- background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd)));
73
+ border-radius:var(--sn-density-radius-2xs, var(--sn-platform-comfort-radius-2xs, var(--sn-primitive-dimension-4, 4px)));
74
+ background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-brand-palette-gray-95, #fdfdfd)));
75
75
  }