@astral/ui 4.72.0 → 4.73.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 (150) hide show
  1. package/components/DashboardLayout/Header/styles.js +21 -1
  2. package/components/MenuOrganization/OrganizationButton/styles.js +3 -0
  3. package/components/PageAside/MobileAsideButton/MobileAsideButton.d.ts +6 -0
  4. package/components/PageAside/MobileAsideButton/MobileAsideButton.js +13 -0
  5. package/components/PageAside/MobileAsideButton/index.d.ts +1 -0
  6. package/components/PageAside/MobileAsideButton/index.js +1 -0
  7. package/components/PageAside/MobileAsideButton/styles.d.ts +22 -0
  8. package/components/PageAside/MobileAsideButton/styles.js +31 -0
  9. package/components/PageAside/PageAside.d.ts +2 -9
  10. package/components/PageAside/PageAside.js +21 -4
  11. package/components/PageAside/constants.d.ts +5 -0
  12. package/components/PageAside/constants.js +6 -0
  13. package/components/PageAside/hooks/index.d.ts +1 -0
  14. package/components/PageAside/hooks/index.js +1 -0
  15. package/components/PageAside/hooks/usePageAside/index.d.ts +1 -0
  16. package/components/PageAside/hooks/usePageAside/index.js +1 -0
  17. package/components/PageAside/hooks/usePageAside/usePageAside.d.ts +9 -0
  18. package/components/PageAside/hooks/usePageAside/usePageAside.js +17 -0
  19. package/components/PageAside/index.d.ts +4 -0
  20. package/components/PageAside/index.js +3 -0
  21. package/components/PageAside/public.d.ts +3 -1
  22. package/components/PageAside/public.js +1 -0
  23. package/components/PageAside/styles.d.ts +15 -0
  24. package/components/PageAside/styles.js +36 -7
  25. package/components/PageAside/types.d.ts +24 -0
  26. package/components/PageAside/types.js +1 -0
  27. package/components/PageAsideBlock/styles.js +2 -2
  28. package/components/PageAsideNavigation/PageAsideNavigation.d.ts +2 -0
  29. package/components/PageAsideNavigation/PageAsideNavigation.js +9 -0
  30. package/components/PageAsideNavigation/PageAsideNavigationItem/PageAsideNavigationItem.d.ts +18 -0
  31. package/components/PageAsideNavigation/PageAsideNavigationItem/PageAsideNavigationItem.js +18 -0
  32. package/components/PageAsideNavigation/PageAsideNavigationItem/constants.d.ts +4 -0
  33. package/components/PageAsideNavigation/PageAsideNavigationItem/constants.js +5 -0
  34. package/components/PageAsideNavigation/PageAsideNavigationItem/index.d.ts +3 -0
  35. package/components/PageAsideNavigation/PageAsideNavigationItem/index.js +2 -0
  36. package/components/PageAsideNavigation/PageAsideNavigationItem/styles.d.ts +9 -0
  37. package/components/PageAsideNavigation/PageAsideNavigationItem/styles.js +113 -0
  38. package/components/PageAsideNavigation/PageAsideNavigationItem/types.d.ts +26 -0
  39. package/components/PageAsideNavigation/PageAsideNavigationItem/types.js +1 -0
  40. package/components/PageAsideNavigation/constants.d.ts +3 -0
  41. package/components/PageAsideNavigation/constants.js +4 -0
  42. package/components/PageAsideNavigation/index.d.ts +4 -0
  43. package/components/PageAsideNavigation/index.js +3 -0
  44. package/components/PageAsideNavigation/public.d.ts +3 -0
  45. package/components/PageAsideNavigation/public.js +3 -0
  46. package/components/PageAsideNavigation/styles.d.ts +13 -0
  47. package/components/PageAsideNavigation/styles.js +48 -0
  48. package/components/PageAsideNavigation/types.d.ts +17 -0
  49. package/components/PageAsideNavigation/types.js +1 -0
  50. package/components/PageHeader/HeaderContent/styles.js +0 -2
  51. package/components/PageHeader/PageHeader.js +11 -1
  52. package/components/PageHeader/styles.js +7 -5
  53. package/components/PagePinnableAside/PagePinnableAside.d.ts +1 -1
  54. package/components/PagePinnableAside/PagePinnableAside.js +16 -4
  55. package/components/PagePinnableAside/constants.d.ts +2 -0
  56. package/components/PagePinnableAside/constants.js +2 -0
  57. package/components/PagePinnableAside/styles.js +8 -11
  58. package/components/PagePinnableAside/types.d.ts +17 -1
  59. package/components/PagePinnableAside/useLogic/useLogic.d.ts +4 -2
  60. package/components/PagePinnableAside/useLogic/useLogic.js +10 -2
  61. package/components/Tabs/Tabs.js +2 -2
  62. package/components/Tabs/hooks/index.d.ts +1 -1
  63. package/components/Tabs/hooks/index.js +1 -1
  64. package/components/useScrollToActiveElement/index.d.ts +1 -0
  65. package/components/useScrollToActiveElement/index.js +1 -0
  66. package/components/useScrollToActiveElement/useScrollToActiveElement.d.ts +9 -0
  67. package/components/useScrollToActiveElement/useScrollToActiveElement.js +29 -0
  68. package/node/components/DashboardLayout/Header/styles.js +21 -1
  69. package/node/components/MenuOrganization/OrganizationButton/styles.js +3 -0
  70. package/node/components/PageAside/MobileAsideButton/MobileAsideButton.d.ts +6 -0
  71. package/node/components/PageAside/MobileAsideButton/MobileAsideButton.js +17 -0
  72. package/node/components/PageAside/MobileAsideButton/index.d.ts +1 -0
  73. package/node/components/PageAside/MobileAsideButton/index.js +5 -0
  74. package/node/components/PageAside/MobileAsideButton/styles.d.ts +22 -0
  75. package/node/components/PageAside/MobileAsideButton/styles.js +34 -0
  76. package/node/components/PageAside/PageAside.d.ts +2 -9
  77. package/node/components/PageAside/PageAside.js +19 -2
  78. package/node/components/PageAside/constants.d.ts +5 -0
  79. package/node/components/PageAside/constants.js +7 -1
  80. package/node/components/PageAside/hooks/index.d.ts +1 -0
  81. package/node/components/{Tabs/hooks/useScrollToActiveTab → PageAside/hooks}/index.js +1 -1
  82. package/node/components/PageAside/hooks/usePageAside/index.d.ts +1 -0
  83. package/node/components/PageAside/hooks/usePageAside/index.js +17 -0
  84. package/node/components/PageAside/hooks/usePageAside/usePageAside.d.ts +9 -0
  85. package/node/components/PageAside/hooks/usePageAside/usePageAside.js +21 -0
  86. package/node/components/PageAside/index.d.ts +4 -0
  87. package/node/components/PageAside/index.js +7 -1
  88. package/node/components/PageAside/public.d.ts +3 -1
  89. package/node/components/PageAside/public.js +3 -1
  90. package/node/components/PageAside/styles.d.ts +15 -0
  91. package/node/components/PageAside/styles.js +38 -9
  92. package/node/components/PageAside/types.d.ts +24 -0
  93. package/node/components/PageAside/types.js +2 -0
  94. package/node/components/PageAsideBlock/styles.js +2 -2
  95. package/node/components/PageAsideNavigation/PageAsideNavigation.d.ts +2 -0
  96. package/node/components/PageAsideNavigation/PageAsideNavigation.js +13 -0
  97. package/node/components/PageAsideNavigation/PageAsideNavigationItem/PageAsideNavigationItem.d.ts +18 -0
  98. package/node/components/PageAsideNavigation/PageAsideNavigationItem/PageAsideNavigationItem.js +22 -0
  99. package/node/components/PageAsideNavigation/PageAsideNavigationItem/constants.d.ts +4 -0
  100. package/node/components/PageAsideNavigation/PageAsideNavigationItem/constants.js +8 -0
  101. package/node/components/PageAsideNavigation/PageAsideNavigationItem/index.d.ts +3 -0
  102. package/node/components/PageAsideNavigation/PageAsideNavigationItem/index.js +7 -0
  103. package/node/components/PageAsideNavigation/PageAsideNavigationItem/styles.d.ts +9 -0
  104. package/node/components/PageAsideNavigation/PageAsideNavigationItem/styles.js +116 -0
  105. package/node/components/PageAsideNavigation/PageAsideNavigationItem/types.d.ts +26 -0
  106. package/node/components/PageAsideNavigation/PageAsideNavigationItem/types.js +2 -0
  107. package/node/components/PageAsideNavigation/constants.d.ts +3 -0
  108. package/node/components/PageAsideNavigation/constants.js +7 -0
  109. package/node/components/PageAsideNavigation/index.d.ts +4 -0
  110. package/node/components/PageAsideNavigation/index.js +10 -0
  111. package/node/components/PageAsideNavigation/public.d.ts +3 -0
  112. package/node/components/PageAsideNavigation/public.js +10 -0
  113. package/node/components/PageAsideNavigation/styles.d.ts +13 -0
  114. package/node/components/PageAsideNavigation/styles.js +51 -0
  115. package/node/components/PageAsideNavigation/types.d.ts +17 -0
  116. package/node/components/PageAsideNavigation/types.js +2 -0
  117. package/node/components/PageHeader/HeaderContent/styles.js +0 -2
  118. package/node/components/PageHeader/PageHeader.js +11 -1
  119. package/node/components/PageHeader/styles.js +18 -16
  120. package/node/components/PagePinnableAside/PagePinnableAside.d.ts +1 -1
  121. package/node/components/PagePinnableAside/PagePinnableAside.js +16 -4
  122. package/node/components/PagePinnableAside/constants.d.ts +2 -0
  123. package/node/components/PagePinnableAside/constants.js +2 -0
  124. package/node/components/PagePinnableAside/styles.js +10 -13
  125. package/node/components/PagePinnableAside/types.d.ts +17 -1
  126. package/node/components/PagePinnableAside/useLogic/useLogic.d.ts +4 -2
  127. package/node/components/PagePinnableAside/useLogic/useLogic.js +10 -2
  128. package/node/components/Tabs/Tabs.js +2 -2
  129. package/node/components/Tabs/hooks/index.d.ts +1 -1
  130. package/node/components/Tabs/hooks/index.js +1 -1
  131. package/node/components/useScrollToActiveElement/index.d.ts +1 -0
  132. package/node/components/useScrollToActiveElement/index.js +17 -0
  133. package/node/components/useScrollToActiveElement/useScrollToActiveElement.d.ts +9 -0
  134. package/node/components/useScrollToActiveElement/useScrollToActiveElement.js +33 -0
  135. package/package.json +1 -1
  136. package/components/DashboardLayout/Sidebar/MenuSidebarButton/types.d.ts +0 -0
  137. package/components/DashboardLayout/Sidebar/MenuSidebarButton/types.js +0 -1
  138. package/components/DashboardLayout/Sidebar/Sidebar.d.ts +0 -0
  139. package/components/DashboardLayout/Sidebar/Sidebar.js +0 -1
  140. package/components/Tabs/hooks/useScrollToActiveTab/index.d.ts +0 -1
  141. package/components/Tabs/hooks/useScrollToActiveTab/index.js +0 -1
  142. package/components/Tabs/hooks/useScrollToActiveTab/useScrollToActiveTab.d.ts +0 -4
  143. package/components/Tabs/hooks/useScrollToActiveTab/useScrollToActiveTab.js +0 -24
  144. package/node/components/DashboardLayout/Sidebar/MenuSidebarButton/types.d.ts +0 -0
  145. package/node/components/DashboardLayout/Sidebar/MenuSidebarButton/types.js +0 -1
  146. package/node/components/DashboardLayout/Sidebar/Sidebar.d.ts +0 -0
  147. package/node/components/DashboardLayout/Sidebar/Sidebar.js +0 -1
  148. package/node/components/Tabs/hooks/useScrollToActiveTab/index.d.ts +0 -1
  149. package/node/components/Tabs/hooks/useScrollToActiveTab/useScrollToActiveTab.d.ts +0 -4
  150. package/node/components/Tabs/hooks/useScrollToActiveTab/useScrollToActiveTab.js +0 -28
@@ -1,4 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PAGE_ASIDE_WIDTH = void 0;
3
+ exports.pageAsideClassnames = exports.PAGE_ASIDE_WIDTH = void 0;
4
+ const createUIKitClassname_1 = require("../utils/createUIKitClassname");
4
5
  exports.PAGE_ASIDE_WIDTH = '320px';
6
+ exports.pageAsideClassnames = {
7
+ mobileNavigation: (0, createUIKitClassname_1.createUIKitClassname)('page-aside__mobile-navigation'),
8
+ withHeader: (0, createUIKitClassname_1.createUIKitClassname)('page-aside_with-header'),
9
+ root: (0, createUIKitClassname_1.createUIKitClassname)('page-aside'),
10
+ };
@@ -0,0 +1 @@
1
+ export * from './usePageAside';
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./useScrollToActiveTab"), exports);
17
+ __exportStar(require("./usePageAside"), exports);
@@ -0,0 +1 @@
1
+ export * from './usePageAside';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./usePageAside"), exports);
@@ -0,0 +1,9 @@
1
+ import { type ReactNode } from 'react';
2
+ type UsePageAsideParams = {
3
+ navigation?: ReactNode;
4
+ };
5
+ export declare const usePageAside: ({ navigation }: UsePageAsideParams) => {
6
+ pageHeaderContainer: Element | null;
7
+ isMobileNavigationVisible: false | "" | 0 | 0n | Element | null | undefined;
8
+ };
9
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.usePageAside = void 0;
4
+ const react_1 = require("react");
5
+ const PageHeader_1 = require("../../../PageHeader");
6
+ const usePageAside = ({ navigation }) => {
7
+ const [pageHeaderContainer, setPageHeaderContainer] = (0, react_1.useState)(null);
8
+ (0, react_1.useEffect)(() => {
9
+ if (!navigation) {
10
+ return;
11
+ }
12
+ const container = document.querySelector(`.${PageHeader_1.pageHeaderClassnames.root}`);
13
+ setPageHeaderContainer(container);
14
+ }, []);
15
+ const isMobileNavigationVisible = navigation && pageHeaderContainer;
16
+ return {
17
+ pageHeaderContainer,
18
+ isMobileNavigationVisible,
19
+ };
20
+ };
21
+ exports.usePageAside = usePageAside;
@@ -1,2 +1,6 @@
1
1
  export { PAGE_ASIDE_WIDTH } from './constants';
2
2
  export * from './PageAside';
3
+ export type { PageAsideProps } from './types';
4
+ export { usePageAside } from './hooks';
5
+ export { MobileAsideButton } from './MobileAsideButton';
6
+ export { pageAsideClassnames } from './constants';
@@ -14,7 +14,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.PAGE_ASIDE_WIDTH = void 0;
17
+ exports.pageAsideClassnames = exports.MobileAsideButton = exports.usePageAside = exports.PAGE_ASIDE_WIDTH = void 0;
18
18
  var constants_1 = require("./constants");
19
19
  Object.defineProperty(exports, "PAGE_ASIDE_WIDTH", { enumerable: true, get: function () { return constants_1.PAGE_ASIDE_WIDTH; } });
20
20
  __exportStar(require("./PageAside"), exports);
21
+ var hooks_1 = require("./hooks");
22
+ Object.defineProperty(exports, "usePageAside", { enumerable: true, get: function () { return hooks_1.usePageAside; } });
23
+ var MobileAsideButton_1 = require("./MobileAsideButton");
24
+ Object.defineProperty(exports, "MobileAsideButton", { enumerable: true, get: function () { return MobileAsideButton_1.MobileAsideButton; } });
25
+ var constants_2 = require("./constants");
26
+ Object.defineProperty(exports, "pageAsideClassnames", { enumerable: true, get: function () { return constants_2.pageAsideClassnames; } });
@@ -1 +1,3 @@
1
- export { PageAside, type PageAsideProps } from './PageAside';
1
+ export { pageAsideClassnames } from './constants';
2
+ export { PageAside } from './PageAside';
3
+ export type { PageAsideProps } from './types';
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PageAside = void 0;
3
+ exports.PageAside = exports.pageAsideClassnames = void 0;
4
+ var constants_1 = require("./constants");
5
+ Object.defineProperty(exports, "pageAsideClassnames", { enumerable: true, get: function () { return constants_1.pageAsideClassnames; } });
4
6
  var PageAside_1 = require("./PageAside");
5
7
  Object.defineProperty(exports, "PageAside", { enumerable: true, get: function () { return PageAside_1.PageAside; } });
@@ -3,3 +3,18 @@ export declare const Wrapper: import("@emotion/styled/dist/declarations/src/type
3
3
  theme?: import("@emotion/react").Theme | undefined;
4
4
  as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
5
5
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, {}>;
6
+ export declare const MobileAsideHeader: import("@emotion/styled/dist/declarations/src/types").StyledComponent<{
7
+ theme?: import("@emotion/react").Theme | undefined;
8
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
9
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
10
+ export declare const AsideHeader: import("@emotion/styled/dist/declarations/src/types").StyledComponent<{
11
+ theme?: import("@emotion/react").Theme | undefined;
12
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
13
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
14
+ export declare const StyledDivider: import("@emotion/styled/dist/declarations/src/types").StyledComponent<import("../Divider").DividerProps & {
15
+ theme?: import("@emotion/react").Theme | undefined;
16
+ }, {}, {}>;
17
+ export declare const MobileAsideNavigation: import("@emotion/styled/dist/declarations/src/types").StyledComponent<{
18
+ theme?: import("@emotion/react").Theme | undefined;
19
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
20
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -1,32 +1,61 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Wrapper = void 0;
3
+ exports.MobileAsideNavigation = exports.StyledDivider = exports.AsideHeader = exports.MobileAsideHeader = exports.Wrapper = void 0;
4
+ const Divider_1 = require("../Divider");
5
+ const constants_1 = require("../PageAsideNavigation/constants");
4
6
  const styled_1 = require("../styled");
5
- const constants_1 = require("./constants");
7
+ const constants_2 = require("./constants");
6
8
  exports.Wrapper = styled_1.styled.aside `
7
9
  overflow: auto;
8
10
  grid-column: 2;
9
11
  grid-row: 2;
10
12
 
11
- width: ${constants_1.PAGE_ASIDE_WIDTH};
13
+ width: ${constants_2.PAGE_ASIDE_WIDTH};
12
14
  padding: ${({ theme }) => theme.spacing(4, 6)};
13
15
 
14
16
  border-top: 1px solid ${({ theme }) => theme.palette.components.border.default};
15
17
  border-left: 1px solid ${({ theme }) => theme.palette.components.border.default};
16
18
 
19
+ &.${constants_2.pageAsideClassnames.withHeader} {
20
+ & .${constants_1.pageAsideNavigationClassnames.root} {
21
+ padding-top: ${({ theme }) => theme.spacing(5)};
22
+ }
23
+ }
24
+
17
25
  ${({ theme }) => theme.breakpoints.down('laptop')} {
18
26
  padding: ${({ theme }) => theme.spacing(4)};
19
27
  }
20
28
 
21
29
  ${({ theme }) => theme.breakpoints.down('sm')} {
22
- overflow: unset;
30
+ display: none;
31
+ }
32
+ `;
33
+ exports.MobileAsideHeader = styled_1.styled.div `
34
+ display: none;
35
+
36
+ ${({ theme }) => theme.breakpoints.down('sm')} {
37
+ display: block;
23
38
  order: 3;
24
39
 
25
- width: unset;
26
- margin: ${({ theme }) => theme.spacing(0, 4, 4)};
40
+ padding: ${({ theme }) => theme.microSpacing(0, 8, 5)};
41
+ }
42
+ `;
43
+ exports.AsideHeader = styled_1.styled.div `
44
+ position: relative;
45
+
46
+ padding: ${({ theme }) => theme.spacing(1, 0, 4)};
47
+ `;
48
+ exports.StyledDivider = (0, styled_1.styled)(Divider_1.Divider) `
49
+ position: absolute;
50
+ bottom: 0;
51
+ left: ${({ theme }) => theme.spacing(-6)};
27
52
 
28
- background-color: ${({ theme }) => theme.palette.background.default};
29
- border: 1px solid ${({ theme }) => theme.palette.components.border.default};
30
- border-radius: ${({ theme }) => theme.shape.medium};
53
+ width: ${({ theme }) => `calc(100% + ${theme.spacing(12)})`};
54
+ `;
55
+ exports.MobileAsideNavigation = styled_1.styled.div `
56
+ display: none;
57
+
58
+ ${({ theme }) => theme.breakpoints.down('sm')} {
59
+ display: block;
31
60
  }
32
61
  `;
@@ -0,0 +1,24 @@
1
+ import { type ReactNode } from 'react';
2
+ export type PageAsideProps = {
3
+ children?: ReactNode;
4
+ /**
5
+ * Название класса, применяется к корневому компоненту
6
+ */
7
+ className?: string;
8
+ /**
9
+ * Заголовок боковой панели
10
+ */
11
+ header?: ReactNode;
12
+ /**
13
+ * Компонент для отображения навигации
14
+ * @example
15
+ * <PageAside navigation={
16
+ * <PageAsideNavigation>
17
+ * <PageAsideNavigationItem>
18
+ * Home
19
+ * </PageAsideNavigationItem>
20
+ * </PageAsideNavigation>}
21
+ * />
22
+ */
23
+ navigation?: ReactNode;
24
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -25,11 +25,11 @@ exports.Wrapper = styled_1.styled.div `
25
25
  padding: ${({ theme }) => theme.spacing(4, 0)};
26
26
 
27
27
  :first-of-type {
28
- padding: ${({ theme }) => theme.spacing(3, 0, 4)};
28
+ padding: ${({ theme }) => theme.spacing(0, 0, 4)};
29
29
  }
30
30
 
31
31
  :last-of-type {
32
- padding: ${({ theme }) => theme.spacing(4, 0, 3)};
32
+ padding: ${({ theme }) => theme.spacing(4, 0, 0)};
33
33
  }
34
34
  }
35
35
  `;
@@ -0,0 +1,2 @@
1
+ import { type PageAsideNavigationProps } from './types';
2
+ export declare const PageAsideNavigation: ({ addonNavigation, children, className, addonNavigationPosition, }: PageAsideNavigationProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PageAsideNavigation = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const useScrollToActiveElement_1 = require("../useScrollToActiveElement");
6
+ const classNames_1 = require("../utils/classNames");
7
+ const constants_1 = require("./constants");
8
+ const styles_1 = require("./styles");
9
+ const PageAsideNavigation = ({ addonNavigation, children, className, addonNavigationPosition = 'start', }) => {
10
+ const { containerRef } = (0, useScrollToActiveElement_1.useScrollToActiveElement)();
11
+ return ((0, jsx_runtime_1.jsxs)(styles_1.Wrapper, { className: (0, classNames_1.classNames)(constants_1.pageAsideNavigationClassnames.root, className), children: [addonNavigationPosition === 'start' && addonNavigation && ((0, jsx_runtime_1.jsx)(styles_1.AddonNavigationWrapper, { children: addonNavigation })), (0, jsx_runtime_1.jsx)(styles_1.NavigationList, { ref: containerRef, children: children }), addonNavigationPosition === 'end' && addonNavigation && ((0, jsx_runtime_1.jsx)(styles_1.AddonNavigationWrapper, { children: addonNavigation }))] }));
12
+ };
13
+ exports.PageAsideNavigation = PageAsideNavigation;
@@ -0,0 +1,18 @@
1
+ import { type ElementType, type ForwardedRef } from 'react';
2
+ import { type PageAsideNavigationItemProps } from './types';
3
+ export declare const PageAsideNavigationItemInner: <TComponent extends ElementType = "a">({ children, component, icon, onClick, isActive, className, ...props }: PageAsideNavigationItemProps<TComponent>, ref: ForwardedRef<TComponent>) => import("react/jsx-runtime").JSX.Element;
4
+ export declare const PageAsideNavigationItem: <TComponent extends ElementType = "a">(props: {
5
+ children: import("react").ReactNode;
6
+ className?: string | undefined;
7
+ isActive?: boolean | undefined;
8
+ onClick?: (() => void) | undefined;
9
+ icon?: import("react").ReactNode;
10
+ component?: TComponent | undefined;
11
+ } & Omit<import("react").ComponentPropsWithRef<TComponent>, keyof {
12
+ children: import("react").ReactNode;
13
+ className?: string | undefined;
14
+ isActive?: boolean | undefined;
15
+ onClick?: (() => void) | undefined;
16
+ icon?: import("react").ReactNode;
17
+ component?: ElementType | undefined;
18
+ }> & import("react").RefAttributes<TComponent>) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | null;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PageAsideNavigationItem = exports.PageAsideNavigationItemInner = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const forwardRefWithGeneric_1 = require("../../forwardRefWithGeneric");
6
+ const OverflowTypography_1 = require("../../OverflowTypography");
7
+ const cva_1 = require("../../utils/cva");
8
+ const constants_1 = require("./constants");
9
+ const styles_1 = require("./styles");
10
+ const itemCva = (0, cva_1.cva)(constants_1.pageAsideNavigationItemClassnames.root, {
11
+ variants: {
12
+ isActive: {
13
+ true: constants_1.pageAsideNavigationItemClassnames.isActive,
14
+ },
15
+ },
16
+ });
17
+ const PageAsideNavigationItemInner = ({ children, component, icon, onClick, isActive, className, ...props }, ref) => {
18
+ const Component = component ?? 'a';
19
+ return ((0, jsx_runtime_1.jsx)(styles_1.Wrapper, { className: className, children: (0, jsx_runtime_1.jsxs)(Component, { ref: ref, ...props, className: itemCva({ isActive }), onClick: onClick, "aria-selected": isActive, children: [(0, jsx_runtime_1.jsx)(styles_1.IconWrapper, { children: icon }), (0, jsx_runtime_1.jsx)(OverflowTypography_1.OverflowTypography, { children: children })] }) }));
20
+ };
21
+ exports.PageAsideNavigationItemInner = PageAsideNavigationItemInner;
22
+ exports.PageAsideNavigationItem = (0, forwardRefWithGeneric_1.forwardRefWithGeneric)(exports.PageAsideNavigationItemInner);
@@ -0,0 +1,4 @@
1
+ export declare const pageAsideNavigationItemClassnames: {
2
+ root: string;
3
+ isActive: string;
4
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pageAsideNavigationItemClassnames = void 0;
4
+ const createUIKitClassname_1 = require("../../utils/createUIKitClassname");
5
+ exports.pageAsideNavigationItemClassnames = {
6
+ root: (0, createUIKitClassname_1.createUIKitClassname)('page-aside-navigation__item'),
7
+ isActive: (0, createUIKitClassname_1.createUIKitClassname)('page-aside-navigation__item_active'),
8
+ };
@@ -0,0 +1,3 @@
1
+ export { PageAsideNavigationItem } from './PageAsideNavigationItem';
2
+ export { pageAsideNavigationItemClassnames } from './constants';
3
+ export type { PageAsideNavigationItemProps } from './types';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pageAsideNavigationItemClassnames = exports.PageAsideNavigationItem = void 0;
4
+ var PageAsideNavigationItem_1 = require("./PageAsideNavigationItem");
5
+ Object.defineProperty(exports, "PageAsideNavigationItem", { enumerable: true, get: function () { return PageAsideNavigationItem_1.PageAsideNavigationItem; } });
6
+ var constants_1 = require("./constants");
7
+ Object.defineProperty(exports, "pageAsideNavigationItemClassnames", { enumerable: true, get: function () { return constants_1.pageAsideNavigationItemClassnames; } });
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ export declare const Wrapper: import("@emotion/styled/dist/declarations/src/types").StyledComponent<{
3
+ theme?: import("@emotion/react").Theme | undefined;
4
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
5
+ }, import("react").DetailedHTMLProps<import("react").LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, {}>;
6
+ export declare const IconWrapper: import("@emotion/styled/dist/declarations/src/types").StyledComponent<{
7
+ theme?: import("@emotion/react").Theme | undefined;
8
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
9
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IconWrapper = exports.Wrapper = void 0;
4
+ const constants_1 = require("../../SvgIcon/constants");
5
+ const styled_1 = require("../../styled");
6
+ const constants_2 = require("./constants");
7
+ exports.Wrapper = styled_1.styled.li `
8
+ cursor: pointer;
9
+
10
+ height: 44px;
11
+
12
+ & .${constants_2.pageAsideNavigationItemClassnames.root} {
13
+ cursor: pointer;
14
+
15
+ position: relative;
16
+
17
+ overflow: hidden;
18
+ display: flex;
19
+ gap: ${({ theme }) => theme.spacing(3)};
20
+ align-items: center;
21
+
22
+ width: 100%;
23
+ margin: 0;
24
+ padding: ${({ theme }) => theme.microSpacing(6, 5)};
25
+
26
+ color: ${({ theme }) => theme.palette.grey[800]};
27
+ text-decoration: none;
28
+
29
+ /* Сбрасываем стандартные стили */
30
+ background-color: ${({ theme }) => theme.palette.background.default};
31
+ border: none;
32
+ border-radius: ${({ theme }) => theme.shape.small};
33
+ outline: none;
34
+
35
+ &:visited, &:link {
36
+ color: ${({ theme }) => theme.palette.grey[800]};
37
+ }
38
+
39
+ &:hover {
40
+ color: ${({ theme }) => theme.palette.primary[800]};
41
+ }
42
+
43
+ &:active {
44
+ color: ${({ theme }) => theme.palette.primary[900]};
45
+ }
46
+ }
47
+
48
+ & .${constants_2.pageAsideNavigationItemClassnames.isActive} {
49
+ background-color: ${({ theme }) => theme.palette.primary[100]};
50
+
51
+ &::before {
52
+ content: '';
53
+
54
+ position: absolute;
55
+ inset: 0;
56
+
57
+ width: 10px;
58
+
59
+ border-left: 3px solid ${({ theme }) => theme.palette.primary[800]};
60
+ }
61
+ }
62
+
63
+
64
+ ${({ theme }) => theme.breakpoints.down('sm')} {
65
+ height: 40px;
66
+ -webkit-tap-highlight-color: transparent;
67
+
68
+ & .${constants_2.pageAsideNavigationItemClassnames.root} {
69
+ box-sizing: border-box;
70
+ height: inherit;
71
+ padding: ${({ theme }) => theme.microSpacing(5, 6)};
72
+
73
+ border: 1px solid ${({ theme }) => theme.palette.grey[400]};
74
+ border-radius: ${({ theme }) => theme.shape.medium};
75
+
76
+ transition: ${({ theme }) => theme.transitions.create(['border-color', 'background-color'], {
77
+ duration: theme.transitions.duration.shortest,
78
+ })};
79
+
80
+ &:hover {
81
+ color: ${({ theme }) => theme.palette.grey[800]};
82
+ }
83
+
84
+ &:active {
85
+ color: ${({ theme }) => theme.palette.grey[800]};
86
+
87
+ border-color: ${({ theme }) => theme.palette.grey[800]};
88
+ }
89
+ }
90
+
91
+ & .${constants_2.pageAsideNavigationItemClassnames.isActive} {
92
+ background-color: ${({ theme }) => theme.palette.grey[100]};
93
+ border-color: ${({ theme }) => theme.palette.grey[800]};
94
+
95
+ &::before {
96
+ display: none;
97
+ }
98
+
99
+ &:active {
100
+ border-color: ${({ theme }) => theme.palette.grey[400]};
101
+ }
102
+ }
103
+ }
104
+ `;
105
+ exports.IconWrapper = styled_1.styled.div `
106
+ display: flex;
107
+
108
+ & .${constants_1.svgIconClassnames.root} {
109
+ width: 20px;
110
+ height: 20px;
111
+ }
112
+
113
+ ${({ theme }) => theme.breakpoints.down('sm')} {
114
+ display: none;
115
+ }
116
+ `;
@@ -0,0 +1,26 @@
1
+ import { type ComponentPropsWithRef, type ElementType, type ReactNode } from 'react';
2
+ type PageAsideNavigationItemOwnProps<TComponent extends ElementType> = {
3
+ children: ReactNode;
4
+ /**
5
+ * Название класса, применяется к корневому компоненту
6
+ */
7
+ className?: string;
8
+ /**
9
+ * Флаг активности элемента
10
+ */
11
+ isActive?: boolean;
12
+ /**
13
+ * Функция вызываемая при клике на элемент
14
+ */
15
+ onClick?: () => void;
16
+ /**
17
+ * Иконка элемента
18
+ */
19
+ icon?: ReactNode;
20
+ /**
21
+ * Тип элемента
22
+ */
23
+ component?: TComponent;
24
+ };
25
+ export type PageAsideNavigationItemProps<TComponent extends ElementType> = PageAsideNavigationItemOwnProps<TComponent> & Omit<ComponentPropsWithRef<TComponent>, keyof PageAsideNavigationItemOwnProps<ElementType>>;
26
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ export declare const pageAsideNavigationClassnames: {
2
+ root: string;
3
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pageAsideNavigationClassnames = void 0;
4
+ const createUIKitClassname_1 = require("../utils/createUIKitClassname");
5
+ exports.pageAsideNavigationClassnames = {
6
+ root: (0, createUIKitClassname_1.createUIKitClassname)('page-aside-navigation'),
7
+ };
@@ -0,0 +1,4 @@
1
+ export type { PageAsideNavigationProps } from './types';
2
+ export { PageAsideNavigation } from './PageAsideNavigation';
3
+ export { PageAsideNavigationItem, type PageAsideNavigationItemProps, pageAsideNavigationItemClassnames, } from './PageAsideNavigationItem';
4
+ export { pageAsideNavigationClassnames } from './constants';
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pageAsideNavigationClassnames = exports.pageAsideNavigationItemClassnames = exports.PageAsideNavigationItem = exports.PageAsideNavigation = void 0;
4
+ var PageAsideNavigation_1 = require("./PageAsideNavigation");
5
+ Object.defineProperty(exports, "PageAsideNavigation", { enumerable: true, get: function () { return PageAsideNavigation_1.PageAsideNavigation; } });
6
+ var PageAsideNavigationItem_1 = require("./PageAsideNavigationItem");
7
+ Object.defineProperty(exports, "PageAsideNavigationItem", { enumerable: true, get: function () { return PageAsideNavigationItem_1.PageAsideNavigationItem; } });
8
+ Object.defineProperty(exports, "pageAsideNavigationItemClassnames", { enumerable: true, get: function () { return PageAsideNavigationItem_1.pageAsideNavigationItemClassnames; } });
9
+ var constants_1 = require("./constants");
10
+ Object.defineProperty(exports, "pageAsideNavigationClassnames", { enumerable: true, get: function () { return constants_1.pageAsideNavigationClassnames; } });
@@ -0,0 +1,3 @@
1
+ export { pageAsideNavigationClassnames } from './constants';
2
+ export { PageAsideNavigation } from './PageAsideNavigation';
3
+ export { PageAsideNavigationItem, type PageAsideNavigationItemProps, pageAsideNavigationItemClassnames, } from './PageAsideNavigationItem';
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pageAsideNavigationItemClassnames = exports.PageAsideNavigationItem = exports.PageAsideNavigation = exports.pageAsideNavigationClassnames = void 0;
4
+ var constants_1 = require("./constants");
5
+ Object.defineProperty(exports, "pageAsideNavigationClassnames", { enumerable: true, get: function () { return constants_1.pageAsideNavigationClassnames; } });
6
+ var PageAsideNavigation_1 = require("./PageAsideNavigation");
7
+ Object.defineProperty(exports, "PageAsideNavigation", { enumerable: true, get: function () { return PageAsideNavigation_1.PageAsideNavigation; } });
8
+ var PageAsideNavigationItem_1 = require("./PageAsideNavigationItem");
9
+ Object.defineProperty(exports, "PageAsideNavigationItem", { enumerable: true, get: function () { return PageAsideNavigationItem_1.PageAsideNavigationItem; } });
10
+ Object.defineProperty(exports, "pageAsideNavigationItemClassnames", { enumerable: true, get: function () { return PageAsideNavigationItem_1.pageAsideNavigationItemClassnames; } });
@@ -0,0 +1,13 @@
1
+ /// <reference types="react" />
2
+ export declare const Wrapper: import("@emotion/styled/dist/declarations/src/types").StyledComponent<{
3
+ theme?: import("@emotion/react").Theme | undefined;
4
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
5
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
6
+ export declare const NavigationList: import("@emotion/styled/dist/declarations/src/types").StyledComponent<{
7
+ theme?: import("@emotion/react").Theme | undefined;
8
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
9
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLUListElement>, HTMLUListElement>, {}>;
10
+ export declare const AddonNavigationWrapper: import("@emotion/styled/dist/declarations/src/types").StyledComponent<{
11
+ theme?: import("@emotion/react").Theme | undefined;
12
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
13
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddonNavigationWrapper = exports.NavigationList = exports.Wrapper = void 0;
4
+ const styled_1 = require("../styled");
5
+ exports.Wrapper = styled_1.styled.div `
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: ${({ theme }) => theme.spacing(10)};
9
+
10
+ ${({ theme }) => theme.breakpoints.down('sm')} {
11
+ gap: ${({ theme }) => theme.spacing(3)};
12
+
13
+ width: 100%;
14
+ padding: ${({ theme }) => theme.spacing(0, 0, 3)};
15
+
16
+ background-color: ${({ theme }) => theme.palette.background.default};
17
+ border-bottom: 1px solid ${({ theme }) => theme.palette.components.border.default};
18
+ }
19
+ `;
20
+ exports.NavigationList = styled_1.styled.ul `
21
+ display: flex;
22
+ flex-direction: column;
23
+
24
+ width: 100%;
25
+ margin: 0;
26
+ padding: 0;
27
+
28
+ list-style: none;
29
+
30
+ ${({ theme }) => theme.breakpoints.down('sm')} {
31
+ /* Убираем видимую полосу прокрутки в firefox */
32
+ scrollbar-width: none;
33
+
34
+ overflow-x: auto;
35
+ flex-direction: row;
36
+ gap: ${({ theme }) => theme.spacing(2)};
37
+
38
+ padding: ${({ theme }) => theme.spacing(0, 4)};
39
+
40
+ /* Убираем видимую полосу прокрутки в chrome */
41
+ &::-webkit-scrollbar {
42
+ display: none;
43
+ }
44
+
45
+ }
46
+ `;
47
+ exports.AddonNavigationWrapper = styled_1.styled.div `
48
+ ${({ theme }) => theme.breakpoints.down('sm')} {
49
+ padding: ${({ theme }) => theme.spacing(0, 4)};
50
+ }
51
+ `;