@astral/ui 4.71.4 → 4.73.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 (158) hide show
  1. package/components/PageAside/MobileAsideButton/MobileAsideButton.d.ts +6 -0
  2. package/components/PageAside/MobileAsideButton/MobileAsideButton.js +13 -0
  3. package/components/PageAside/MobileAsideButton/index.d.ts +1 -0
  4. package/components/PageAside/MobileAsideButton/index.js +1 -0
  5. package/components/PageAside/MobileAsideButton/styles.d.ts +22 -0
  6. package/components/PageAside/MobileAsideButton/styles.js +31 -0
  7. package/components/PageAside/PageAside.d.ts +2 -9
  8. package/components/PageAside/PageAside.js +21 -4
  9. package/components/PageAside/constants.d.ts +5 -0
  10. package/components/PageAside/constants.js +6 -0
  11. package/components/PageAside/hooks/index.d.ts +1 -0
  12. package/components/PageAside/hooks/index.js +1 -0
  13. package/components/PageAside/hooks/usePageAside/index.d.ts +1 -0
  14. package/components/PageAside/hooks/usePageAside/index.js +1 -0
  15. package/components/PageAside/hooks/usePageAside/usePageAside.d.ts +9 -0
  16. package/components/PageAside/hooks/usePageAside/usePageAside.js +17 -0
  17. package/components/PageAside/index.d.ts +4 -0
  18. package/components/PageAside/index.js +3 -0
  19. package/components/PageAside/public.d.ts +3 -1
  20. package/components/PageAside/public.js +1 -0
  21. package/components/PageAside/styles.d.ts +15 -0
  22. package/components/PageAside/styles.js +36 -7
  23. package/components/PageAside/types.d.ts +24 -0
  24. package/components/PageAside/types.js +1 -0
  25. package/components/PageAsideBlock/styles.js +2 -2
  26. package/components/PageAsideNavigation/PageAsideNavigation.d.ts +2 -0
  27. package/components/PageAsideNavigation/PageAsideNavigation.js +9 -0
  28. package/components/PageAsideNavigation/PageAsideNavigationItem/PageAsideNavigationItem.d.ts +18 -0
  29. package/components/PageAsideNavigation/PageAsideNavigationItem/PageAsideNavigationItem.js +18 -0
  30. package/components/PageAsideNavigation/PageAsideNavigationItem/constants.d.ts +4 -0
  31. package/components/PageAsideNavigation/PageAsideNavigationItem/constants.js +5 -0
  32. package/components/PageAsideNavigation/PageAsideNavigationItem/index.d.ts +3 -0
  33. package/components/PageAsideNavigation/PageAsideNavigationItem/index.js +2 -0
  34. package/components/PageAsideNavigation/PageAsideNavigationItem/styles.d.ts +9 -0
  35. package/components/PageAsideNavigation/PageAsideNavigationItem/styles.js +113 -0
  36. package/components/PageAsideNavigation/PageAsideNavigationItem/types.d.ts +26 -0
  37. package/components/PageAsideNavigation/PageAsideNavigationItem/types.js +1 -0
  38. package/components/PageAsideNavigation/constants.d.ts +3 -0
  39. package/components/PageAsideNavigation/constants.js +4 -0
  40. package/components/PageAsideNavigation/index.d.ts +4 -0
  41. package/components/PageAsideNavigation/index.js +3 -0
  42. package/components/PageAsideNavigation/public.d.ts +3 -0
  43. package/components/PageAsideNavigation/public.js +3 -0
  44. package/components/PageAsideNavigation/styles.d.ts +13 -0
  45. package/components/PageAsideNavigation/styles.js +48 -0
  46. package/components/PageAsideNavigation/types.d.ts +17 -0
  47. package/components/PageAsideNavigation/types.js +1 -0
  48. package/components/PageContent/PageContentHeader/Description/Description.d.ts +2 -1
  49. package/components/PageContent/PageContentHeader/Description/Description.js +4 -4
  50. package/components/PageContent/PageContentHeader/PageContentHeader.js +2 -1
  51. package/components/PageContent/PageContentHeader/constants.d.ts +4 -0
  52. package/components/PageContent/PageContentHeader/constants.js +5 -0
  53. package/components/PageContent/PageContentHeader/styles.js +7 -0
  54. package/components/PageHeader/HeaderContent/styles.js +0 -2
  55. package/components/PageHeader/PageHeader.js +11 -1
  56. package/components/PageHeader/styles.js +7 -5
  57. package/components/PagePinnableAside/PagePinnableAside.d.ts +1 -1
  58. package/components/PagePinnableAside/PagePinnableAside.js +16 -4
  59. package/components/PagePinnableAside/constants.d.ts +2 -0
  60. package/components/PagePinnableAside/constants.js +2 -0
  61. package/components/PagePinnableAside/styles.js +8 -11
  62. package/components/PagePinnableAside/types.d.ts +17 -1
  63. package/components/PagePinnableAside/useLogic/useLogic.d.ts +4 -2
  64. package/components/PagePinnableAside/useLogic/useLogic.js +10 -2
  65. package/components/Tabs/Tabs.js +2 -2
  66. package/components/Tabs/hooks/index.d.ts +1 -1
  67. package/components/Tabs/hooks/index.js +1 -1
  68. package/components/useScrollToActiveElement/index.d.ts +1 -0
  69. package/components/useScrollToActiveElement/index.js +1 -0
  70. package/components/useScrollToActiveElement/useScrollToActiveElement.d.ts +9 -0
  71. package/components/useScrollToActiveElement/useScrollToActiveElement.js +29 -0
  72. package/node/components/PageAside/MobileAsideButton/MobileAsideButton.d.ts +6 -0
  73. package/node/components/PageAside/MobileAsideButton/MobileAsideButton.js +17 -0
  74. package/node/components/PageAside/MobileAsideButton/index.d.ts +1 -0
  75. package/node/components/PageAside/MobileAsideButton/index.js +5 -0
  76. package/node/components/PageAside/MobileAsideButton/styles.d.ts +22 -0
  77. package/node/components/PageAside/MobileAsideButton/styles.js +34 -0
  78. package/node/components/PageAside/PageAside.d.ts +2 -9
  79. package/node/components/PageAside/PageAside.js +19 -2
  80. package/node/components/PageAside/constants.d.ts +5 -0
  81. package/node/components/PageAside/constants.js +7 -1
  82. package/node/components/PageAside/hooks/index.d.ts +1 -0
  83. package/node/components/{Tabs/hooks/useScrollToActiveTab → PageAside/hooks}/index.js +1 -1
  84. package/node/components/PageAside/hooks/usePageAside/index.d.ts +1 -0
  85. package/node/components/PageAside/hooks/usePageAside/index.js +17 -0
  86. package/node/components/PageAside/hooks/usePageAside/usePageAside.d.ts +9 -0
  87. package/node/components/PageAside/hooks/usePageAside/usePageAside.js +21 -0
  88. package/node/components/PageAside/index.d.ts +4 -0
  89. package/node/components/PageAside/index.js +7 -1
  90. package/node/components/PageAside/public.d.ts +3 -1
  91. package/node/components/PageAside/public.js +3 -1
  92. package/node/components/PageAside/styles.d.ts +15 -0
  93. package/node/components/PageAside/styles.js +38 -9
  94. package/node/components/PageAside/types.d.ts +24 -0
  95. package/node/components/PageAside/types.js +2 -0
  96. package/node/components/PageAsideBlock/styles.js +2 -2
  97. package/node/components/PageAsideNavigation/PageAsideNavigation.d.ts +2 -0
  98. package/node/components/PageAsideNavigation/PageAsideNavigation.js +13 -0
  99. package/node/components/PageAsideNavigation/PageAsideNavigationItem/PageAsideNavigationItem.d.ts +18 -0
  100. package/node/components/PageAsideNavigation/PageAsideNavigationItem/PageAsideNavigationItem.js +22 -0
  101. package/node/components/PageAsideNavigation/PageAsideNavigationItem/constants.d.ts +4 -0
  102. package/node/components/PageAsideNavigation/PageAsideNavigationItem/constants.js +8 -0
  103. package/node/components/PageAsideNavigation/PageAsideNavigationItem/index.d.ts +3 -0
  104. package/node/components/PageAsideNavigation/PageAsideNavigationItem/index.js +7 -0
  105. package/node/components/PageAsideNavigation/PageAsideNavigationItem/styles.d.ts +9 -0
  106. package/node/components/PageAsideNavigation/PageAsideNavigationItem/styles.js +116 -0
  107. package/node/components/PageAsideNavigation/PageAsideNavigationItem/types.d.ts +26 -0
  108. package/node/components/PageAsideNavigation/PageAsideNavigationItem/types.js +2 -0
  109. package/node/components/PageAsideNavigation/constants.d.ts +3 -0
  110. package/node/components/PageAsideNavigation/constants.js +7 -0
  111. package/node/components/PageAsideNavigation/index.d.ts +4 -0
  112. package/node/components/PageAsideNavigation/index.js +10 -0
  113. package/node/components/PageAsideNavigation/public.d.ts +3 -0
  114. package/node/components/PageAsideNavigation/public.js +10 -0
  115. package/node/components/PageAsideNavigation/styles.d.ts +13 -0
  116. package/node/components/PageAsideNavigation/styles.js +51 -0
  117. package/node/components/PageAsideNavigation/types.d.ts +17 -0
  118. package/node/components/PageAsideNavigation/types.js +2 -0
  119. package/node/components/PageContent/PageContentHeader/Description/Description.d.ts +2 -1
  120. package/node/components/PageContent/PageContentHeader/Description/Description.js +4 -4
  121. package/node/components/PageContent/PageContentHeader/PageContentHeader.js +2 -1
  122. package/node/components/PageContent/PageContentHeader/constants.d.ts +4 -0
  123. package/node/components/PageContent/PageContentHeader/constants.js +8 -0
  124. package/node/components/PageContent/PageContentHeader/styles.js +7 -0
  125. package/node/components/PageHeader/HeaderContent/styles.js +0 -2
  126. package/node/components/PageHeader/PageHeader.js +11 -1
  127. package/node/components/PageHeader/styles.js +18 -16
  128. package/node/components/PagePinnableAside/PagePinnableAside.d.ts +1 -1
  129. package/node/components/PagePinnableAside/PagePinnableAside.js +16 -4
  130. package/node/components/PagePinnableAside/constants.d.ts +2 -0
  131. package/node/components/PagePinnableAside/constants.js +2 -0
  132. package/node/components/PagePinnableAside/styles.js +10 -13
  133. package/node/components/PagePinnableAside/types.d.ts +17 -1
  134. package/node/components/PagePinnableAside/useLogic/useLogic.d.ts +4 -2
  135. package/node/components/PagePinnableAside/useLogic/useLogic.js +10 -2
  136. package/node/components/Tabs/Tabs.js +2 -2
  137. package/node/components/Tabs/hooks/index.d.ts +1 -1
  138. package/node/components/Tabs/hooks/index.js +1 -1
  139. package/node/components/useScrollToActiveElement/index.d.ts +1 -0
  140. package/node/components/useScrollToActiveElement/index.js +17 -0
  141. package/node/components/useScrollToActiveElement/useScrollToActiveElement.d.ts +9 -0
  142. package/node/components/useScrollToActiveElement/useScrollToActiveElement.js +33 -0
  143. package/package.json +1 -1
  144. package/components/DashboardLayout/Sidebar/MenuSidebarButton/types.d.ts +0 -0
  145. package/components/DashboardLayout/Sidebar/MenuSidebarButton/types.js +0 -1
  146. package/components/DashboardLayout/Sidebar/Sidebar.d.ts +0 -0
  147. package/components/DashboardLayout/Sidebar/Sidebar.js +0 -1
  148. package/components/Tabs/hooks/useScrollToActiveTab/index.d.ts +0 -1
  149. package/components/Tabs/hooks/useScrollToActiveTab/index.js +0 -1
  150. package/components/Tabs/hooks/useScrollToActiveTab/useScrollToActiveTab.d.ts +0 -4
  151. package/components/Tabs/hooks/useScrollToActiveTab/useScrollToActiveTab.js +0 -24
  152. package/node/components/DashboardLayout/Sidebar/MenuSidebarButton/types.d.ts +0 -0
  153. package/node/components/DashboardLayout/Sidebar/MenuSidebarButton/types.js +0 -1
  154. package/node/components/DashboardLayout/Sidebar/Sidebar.d.ts +0 -0
  155. package/node/components/DashboardLayout/Sidebar/Sidebar.js +0 -1
  156. package/node/components/Tabs/hooks/useScrollToActiveTab/index.d.ts +0 -1
  157. package/node/components/Tabs/hooks/useScrollToActiveTab/useScrollToActiveTab.d.ts +0 -4
  158. package/node/components/Tabs/hooks/useScrollToActiveTab/useScrollToActiveTab.js +0 -28
@@ -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
+ `;
@@ -0,0 +1,17 @@
1
+ import type { ReactNode } from 'react';
2
+ export type PageAsideNavigationProps = {
3
+ children?: ReactNode;
4
+ /**
5
+ * Название класса, применяется к корневому компоненту
6
+ */
7
+ className?: string;
8
+ /**
9
+ * Дополнительный контент для навигации
10
+ */
11
+ addonNavigation?: ReactNode;
12
+ /**
13
+ * Позиционирование дополнительного контента для навигации
14
+ * @default 'start'
15
+ */
16
+ addonNavigationPosition?: 'start' | 'end';
17
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -2,6 +2,7 @@ import { type ReactNode } from 'react';
2
2
  type DescriptionProps = {
3
3
  description?: ReactNode;
4
4
  isLoading?: boolean;
5
+ className?: string;
5
6
  };
6
- export declare const Description: ({ description, isLoading }: DescriptionProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const Description: ({ className, description, isLoading, }: DescriptionProps) => import("react/jsx-runtime").JSX.Element;
7
8
  export {};
@@ -4,13 +4,13 @@ exports.Description = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const Skeleton_1 = require("../../../Skeleton");
6
6
  const Typography_1 = require("../../../Typography");
7
- const Description = ({ description, isLoading }) => {
7
+ const Description = ({ className, description, isLoading, }) => {
8
8
  if (!description && isLoading) {
9
- return (0, jsx_runtime_1.jsx)(Skeleton_1.Skeleton, { height: 20, width: 300 });
9
+ return (0, jsx_runtime_1.jsx)(Skeleton_1.Skeleton, { className: className, height: 20, width: 300 });
10
10
  }
11
11
  if (typeof description === 'string') {
12
- return (0, jsx_runtime_1.jsx)(Typography_1.Typography, { variant: "body1", children: description });
12
+ return ((0, jsx_runtime_1.jsx)(Typography_1.Typography, { className: className, variant: "body1", children: description }));
13
13
  }
14
- return ((0, jsx_runtime_1.jsx)(Typography_1.Typography, { component: "div", variant: "body1", children: description }));
14
+ return ((0, jsx_runtime_1.jsx)(Typography_1.Typography, { className: className, component: "div", variant: "body1", children: description }));
15
15
  };
16
16
  exports.Description = Description;