@astral/ui 4.85.0 → 4.86.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.
- package/components/PageHeader/HeaderContent/HeaderContent.d.ts +2 -2
- package/components/PageHeader/HeaderContent/HeaderContent.js +3 -3
- package/components/PageHeader/HeaderContent/styles.d.ts +4 -0
- package/components/PageHeader/HeaderContent/styles.js +11 -1
- package/components/PageHeader/PageHeader.js +2 -2
- package/components/PageHeader/styles.js +2 -2
- package/components/PageHeader/types.d.ts +10 -0
- package/hook-form/FormPageLayoutBase/useLogic/useLogic.d.ts +1 -0
- package/node/components/PageHeader/HeaderContent/HeaderContent.d.ts +2 -2
- package/node/components/PageHeader/HeaderContent/HeaderContent.js +2 -2
- package/node/components/PageHeader/HeaderContent/styles.d.ts +4 -0
- package/node/components/PageHeader/HeaderContent/styles.js +12 -2
- package/node/components/PageHeader/PageHeader.js +2 -2
- package/node/components/PageHeader/styles.js +2 -2
- package/node/components/PageHeader/types.d.ts +10 -0
- package/node/hook-form/FormPageLayoutBase/useLogic/useLogic.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ElementType } from 'react';
|
|
2
2
|
import type { PageHeaderProps } from '../types';
|
|
3
|
-
type HeaderContentProps<TMainActionComponent extends ElementType, TSecondaryActionComponent extends ElementType, TBackButtonComponent extends ElementType> = Pick<PageHeaderProps<TMainActionComponent, TSecondaryActionComponent, TBackButtonComponent>, 'breadcrumbs' | 'backButton' | 'description' | 'actions' | 'subheader' | 'filters' | 'title' | 'isLoading'>;
|
|
4
|
-
export declare const HeaderContent: <TMainActionComponent extends ElementType, TSecondaryActionComponent extends ElementType, TBackButtonComponent extends ElementType>({ backButton, description, subheader, breadcrumbs, actions, title, filters, isLoading, }: HeaderContentProps<TMainActionComponent, TSecondaryActionComponent, TBackButtonComponent>) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
type HeaderContentProps<TMainActionComponent extends ElementType, TSecondaryActionComponent extends ElementType, TBackButtonComponent extends ElementType> = Pick<PageHeaderProps<TMainActionComponent, TSecondaryActionComponent, TBackButtonComponent>, 'breadcrumbs' | 'backButton' | 'description' | 'actions' | 'subheader' | 'tabs' | 'filters' | 'title' | 'isLoading'>;
|
|
4
|
+
export declare const HeaderContent: <TMainActionComponent extends ElementType, TSecondaryActionComponent extends ElementType, TBackButtonComponent extends ElementType>({ backButton, description, subheader, breadcrumbs, tabs, actions, title, filters, isLoading, }: HeaderContentProps<TMainActionComponent, TSecondaryActionComponent, TBackButtonComponent>) => import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
export {};
|
|
@@ -6,13 +6,13 @@ import { PageActions } from '../PageActions';
|
|
|
6
6
|
import { Title } from '../Title';
|
|
7
7
|
import { Description } from './Description';
|
|
8
8
|
import { FormFiltersProvider } from './FormFiltersProvider';
|
|
9
|
-
import { BreadcrumbsWrapper, DesktopTitleWrapper, PageSubheader, } from './styles';
|
|
10
|
-
export const HeaderContent = ({ backButton, description, subheader, breadcrumbs, actions, title, filters, isLoading, }) => {
|
|
9
|
+
import { BreadcrumbsWrapper, DesktopTitleWrapper, PageSubheader, TabsWrapper, } from './styles';
|
|
10
|
+
export const HeaderContent = ({ backButton, description, subheader, breadcrumbs, tabs, actions, title, filters, isLoading, }) => {
|
|
11
11
|
const renderBreadcrumbs = () => {
|
|
12
12
|
if (!breadcrumbs) {
|
|
13
13
|
return null;
|
|
14
14
|
}
|
|
15
15
|
return (_jsx(BreadcrumbsWrapper, { children: Array.isArray(breadcrumbs) ? (_jsx(Breadcrumbs, { children: breadcrumbs })) : (breadcrumbs) }));
|
|
16
16
|
};
|
|
17
|
-
return (_jsxs(_Fragment, { children: [renderBreadcrumbs(), _jsx(DesktopTitleWrapper, { children: _jsx(Title, { backButton: backButton, title: title, isLoading: isLoading, hasDescription: Boolean(description), hasBreadcrumbs: Boolean(breadcrumbs) }) }), _jsx(Description, { description: description, isLoading: isLoading }), actions && (_jsx(PageActions, { className: classNames(pageHeaderClassnames.pageHeaderActions), isLoading: isLoading, size: "medium", withCollapseOnLaptop: Boolean(filters), ...actions })), filters && (_jsx(FormFiltersProvider, { filtersClassName: pageHeaderClassnames.filters, quickFiltersClassName: pageHeaderClassnames.quickFilters, children: filters })), subheader && (_jsx(PageSubheader, { className: pageHeaderClassnames.subheader, children: subheader }))] }));
|
|
17
|
+
return (_jsxs(_Fragment, { children: [renderBreadcrumbs(), _jsx(DesktopTitleWrapper, { children: _jsx(Title, { backButton: backButton, title: title, isLoading: isLoading, hasDescription: Boolean(description), hasBreadcrumbs: Boolean(breadcrumbs) }) }), _jsx(Description, { description: description, isLoading: isLoading }), actions && (_jsx(PageActions, { className: classNames(pageHeaderClassnames.pageHeaderActions), isLoading: isLoading, size: "medium", withCollapseOnLaptop: Boolean(filters), ...actions })), filters && (_jsx(FormFiltersProvider, { filtersClassName: pageHeaderClassnames.filters, quickFiltersClassName: pageHeaderClassnames.quickFilters, children: filters })), tabs && _jsx(TabsWrapper, { children: tabs }), subheader && (_jsx(PageSubheader, { className: pageHeaderClassnames.subheader, children: subheader }))] }));
|
|
18
18
|
};
|
|
@@ -3,6 +3,10 @@ export declare const BreadcrumbsWrapper: import("../../styled").StyledComponent<
|
|
|
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<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
6
|
+
export declare const TabsWrapper: import("../../styled").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>, {}>;
|
|
6
10
|
export declare const PageSubheader: import("../../styled").StyledComponent<{
|
|
7
11
|
theme?: import("@emotion/react").Theme | undefined;
|
|
8
12
|
as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
|
|
@@ -9,9 +9,19 @@ export const BreadcrumbsWrapper = styled.div `
|
|
|
9
9
|
display: none;
|
|
10
10
|
}
|
|
11
11
|
`;
|
|
12
|
+
export const TabsWrapper = styled.div `
|
|
13
|
+
grid-column: 1 / -1;
|
|
14
|
+
grid-row: 4;
|
|
15
|
+
|
|
16
|
+
padding-top: ${({ theme }) => theme.spacing(3)};
|
|
17
|
+
|
|
18
|
+
${({ theme }) => theme.breakpoints.down('sm')} {
|
|
19
|
+
padding: ${({ theme }) => theme.spacing(0, 3, 3, 3)};
|
|
20
|
+
}
|
|
21
|
+
`;
|
|
12
22
|
export const PageSubheader = styled.div `
|
|
13
23
|
grid-column: 1 / -1;
|
|
14
|
-
grid-row:
|
|
24
|
+
grid-row: 5;
|
|
15
25
|
|
|
16
26
|
padding-top: ${({ theme }) => theme.spacing(4)};
|
|
17
27
|
|
|
@@ -31,7 +31,7 @@ const rootCva = cva(pageHeaderClassnames.root, {
|
|
|
31
31
|
},
|
|
32
32
|
});
|
|
33
33
|
export const PageHeader = (props) => {
|
|
34
|
-
const { title, description, subheader, breadcrumbs, actions, backButton, className, filters, } = props;
|
|
34
|
+
const { title, description, subheader, breadcrumbs, tabs, actions, backButton, className, filters, } = props;
|
|
35
35
|
const { isLoading, mobileTitleActions, isShowMobileActions } = useLogic(props);
|
|
36
36
|
return (_jsxs(_Fragment, { children: [_jsxs(MobileTitleWrapper, { className: mobilePageHeaderCva({
|
|
37
37
|
hasTitle: Boolean(title) || isLoading,
|
|
@@ -40,5 +40,5 @@ export const PageHeader = (props) => {
|
|
|
40
40
|
hasActions: Boolean(actions),
|
|
41
41
|
hasSubheader: Boolean(subheader),
|
|
42
42
|
hasFilters: Boolean(filters),
|
|
43
|
-
}), className), children: _jsx(HeaderContent, { breadcrumbs: breadcrumbs, backButton: backButton, title: title, description: description, actions: actions, subheader: subheader, filters: filters, isLoading: isLoading }) }), isShowMobileActions && (_jsx(MobilePageActions, { className: classNames(pageHeaderClassnames.pageHeaderActions), isLoading: isLoading, ...actions }))] }));
|
|
43
|
+
}), className), children: _jsx(HeaderContent, { breadcrumbs: breadcrumbs, backButton: backButton, title: title, description: description, actions: actions, subheader: subheader, tabs: tabs, filters: filters, isLoading: isLoading }) }), isShowMobileActions && (_jsx(MobilePageActions, { className: classNames(pageHeaderClassnames.pageHeaderActions), isLoading: isLoading, ...actions }))] }));
|
|
44
44
|
};
|
|
@@ -38,7 +38,7 @@ export const Wrapper = styled.header `
|
|
|
38
38
|
|
|
39
39
|
.${pageHeaderClassnames.filters} {
|
|
40
40
|
grid-column: 1 / -1;
|
|
41
|
-
grid-row:
|
|
41
|
+
grid-row: 6;
|
|
42
42
|
|
|
43
43
|
${({ theme }) => theme.breakpoints.down('laptop')} {
|
|
44
44
|
grid-column: 3;
|
|
@@ -48,7 +48,7 @@ export const Wrapper = styled.header `
|
|
|
48
48
|
|
|
49
49
|
.${pageHeaderClassnames.quickFilters} {
|
|
50
50
|
grid-column: 1 / -1;
|
|
51
|
-
grid-row:
|
|
51
|
+
grid-row: 7;
|
|
52
52
|
|
|
53
53
|
margin-top: ${({ theme }) => theme.spacing(4)};
|
|
54
54
|
|
|
@@ -34,6 +34,16 @@ export type PageHeaderProps<TMainActionComponent extends ElementType = ElementTy
|
|
|
34
34
|
* } />
|
|
35
35
|
*/
|
|
36
36
|
breadcrumbs?: ReactNode;
|
|
37
|
+
/**
|
|
38
|
+
* Слот для tabs
|
|
39
|
+
* @example <PageHeader tabs={
|
|
40
|
+
* <Tabs value={tabValue} onChange={handleChange}>
|
|
41
|
+
* <Tab label="Вкладка 1" />
|
|
42
|
+
* <Tab label="Вкладка 2" />
|
|
43
|
+
* </Tabs>
|
|
44
|
+
* } />
|
|
45
|
+
*/
|
|
46
|
+
tabs?: ReactNode;
|
|
37
47
|
/**
|
|
38
48
|
* Набор кнопок, видимые конфигурируются через объект main, скрытые в меню -
|
|
39
49
|
* через secondary
|
|
@@ -9,6 +9,7 @@ export declare const useLogic: <TFormValues extends Record<string, unknown>>({ a
|
|
|
9
9
|
subheader?: import("react").ReactNode;
|
|
10
10
|
filters?: import("react").ReactNode;
|
|
11
11
|
breadcrumbs?: import("react").ReactNode;
|
|
12
|
+
tabs?: import("react").ReactNode;
|
|
12
13
|
className?: string | undefined;
|
|
13
14
|
isLoading?: boolean | undefined;
|
|
14
15
|
shouldUpdateDocumentTitle?: boolean | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ElementType } from 'react';
|
|
2
2
|
import type { PageHeaderProps } from '../types';
|
|
3
|
-
type HeaderContentProps<TMainActionComponent extends ElementType, TSecondaryActionComponent extends ElementType, TBackButtonComponent extends ElementType> = Pick<PageHeaderProps<TMainActionComponent, TSecondaryActionComponent, TBackButtonComponent>, 'breadcrumbs' | 'backButton' | 'description' | 'actions' | 'subheader' | 'filters' | 'title' | 'isLoading'>;
|
|
4
|
-
export declare const HeaderContent: <TMainActionComponent extends ElementType, TSecondaryActionComponent extends ElementType, TBackButtonComponent extends ElementType>({ backButton, description, subheader, breadcrumbs, actions, title, filters, isLoading, }: HeaderContentProps<TMainActionComponent, TSecondaryActionComponent, TBackButtonComponent>) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
type HeaderContentProps<TMainActionComponent extends ElementType, TSecondaryActionComponent extends ElementType, TBackButtonComponent extends ElementType> = Pick<PageHeaderProps<TMainActionComponent, TSecondaryActionComponent, TBackButtonComponent>, 'breadcrumbs' | 'backButton' | 'description' | 'actions' | 'subheader' | 'tabs' | 'filters' | 'title' | 'isLoading'>;
|
|
4
|
+
export declare const HeaderContent: <TMainActionComponent extends ElementType, TSecondaryActionComponent extends ElementType, TBackButtonComponent extends ElementType>({ backButton, description, subheader, breadcrumbs, tabs, actions, title, filters, isLoading, }: HeaderContentProps<TMainActionComponent, TSecondaryActionComponent, TBackButtonComponent>) => import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
export {};
|
|
@@ -10,13 +10,13 @@ const Title_1 = require("../Title");
|
|
|
10
10
|
const Description_1 = require("./Description");
|
|
11
11
|
const FormFiltersProvider_1 = require("./FormFiltersProvider");
|
|
12
12
|
const styles_1 = require("./styles");
|
|
13
|
-
const HeaderContent = ({ backButton, description, subheader, breadcrumbs, actions, title, filters, isLoading, }) => {
|
|
13
|
+
const HeaderContent = ({ backButton, description, subheader, breadcrumbs, tabs, actions, title, filters, isLoading, }) => {
|
|
14
14
|
const renderBreadcrumbs = () => {
|
|
15
15
|
if (!breadcrumbs) {
|
|
16
16
|
return null;
|
|
17
17
|
}
|
|
18
18
|
return ((0, jsx_runtime_1.jsx)(styles_1.BreadcrumbsWrapper, { children: Array.isArray(breadcrumbs) ? ((0, jsx_runtime_1.jsx)(Breadcrumbs_1.Breadcrumbs, { children: breadcrumbs })) : (breadcrumbs) }));
|
|
19
19
|
};
|
|
20
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [renderBreadcrumbs(), (0, jsx_runtime_1.jsx)(styles_1.DesktopTitleWrapper, { children: (0, jsx_runtime_1.jsx)(Title_1.Title, { backButton: backButton, title: title, isLoading: isLoading, hasDescription: Boolean(description), hasBreadcrumbs: Boolean(breadcrumbs) }) }), (0, jsx_runtime_1.jsx)(Description_1.Description, { description: description, isLoading: isLoading }), actions && ((0, jsx_runtime_1.jsx)(PageActions_1.PageActions, { className: (0, classNames_1.classNames)(constants_1.pageHeaderClassnames.pageHeaderActions), isLoading: isLoading, size: "medium", withCollapseOnLaptop: Boolean(filters), ...actions })), filters && ((0, jsx_runtime_1.jsx)(FormFiltersProvider_1.FormFiltersProvider, { filtersClassName: constants_1.pageHeaderClassnames.filters, quickFiltersClassName: constants_1.pageHeaderClassnames.quickFilters, children: filters })), subheader && ((0, jsx_runtime_1.jsx)(styles_1.PageSubheader, { className: constants_1.pageHeaderClassnames.subheader, children: subheader }))] }));
|
|
20
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [renderBreadcrumbs(), (0, jsx_runtime_1.jsx)(styles_1.DesktopTitleWrapper, { children: (0, jsx_runtime_1.jsx)(Title_1.Title, { backButton: backButton, title: title, isLoading: isLoading, hasDescription: Boolean(description), hasBreadcrumbs: Boolean(breadcrumbs) }) }), (0, jsx_runtime_1.jsx)(Description_1.Description, { description: description, isLoading: isLoading }), actions && ((0, jsx_runtime_1.jsx)(PageActions_1.PageActions, { className: (0, classNames_1.classNames)(constants_1.pageHeaderClassnames.pageHeaderActions), isLoading: isLoading, size: "medium", withCollapseOnLaptop: Boolean(filters), ...actions })), filters && ((0, jsx_runtime_1.jsx)(FormFiltersProvider_1.FormFiltersProvider, { filtersClassName: constants_1.pageHeaderClassnames.filters, quickFiltersClassName: constants_1.pageHeaderClassnames.quickFilters, children: filters })), tabs && (0, jsx_runtime_1.jsx)(styles_1.TabsWrapper, { children: tabs }), subheader && ((0, jsx_runtime_1.jsx)(styles_1.PageSubheader, { className: constants_1.pageHeaderClassnames.subheader, children: subheader }))] }));
|
|
21
21
|
};
|
|
22
22
|
exports.HeaderContent = HeaderContent;
|
|
@@ -3,6 +3,10 @@ export declare const BreadcrumbsWrapper: import("@emotion/styled/dist/declaratio
|
|
|
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<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
6
|
+
export declare const TabsWrapper: 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>, {}>;
|
|
6
10
|
export declare const PageSubheader: import("@emotion/styled/dist/declarations/src/types").StyledComponent<{
|
|
7
11
|
theme?: import("@emotion/react").Theme | undefined;
|
|
8
12
|
as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DesktopTitleWrapper = exports.PageSubheader = exports.BreadcrumbsWrapper = void 0;
|
|
3
|
+
exports.DesktopTitleWrapper = exports.PageSubheader = exports.TabsWrapper = exports.BreadcrumbsWrapper = void 0;
|
|
4
4
|
const styled_1 = require("../../styled");
|
|
5
5
|
exports.BreadcrumbsWrapper = styled_1.styled.div `
|
|
6
6
|
grid-column: 2;
|
|
@@ -12,9 +12,19 @@ exports.BreadcrumbsWrapper = styled_1.styled.div `
|
|
|
12
12
|
display: none;
|
|
13
13
|
}
|
|
14
14
|
`;
|
|
15
|
+
exports.TabsWrapper = styled_1.styled.div `
|
|
16
|
+
grid-column: 1 / -1;
|
|
17
|
+
grid-row: 4;
|
|
18
|
+
|
|
19
|
+
padding-top: ${({ theme }) => theme.spacing(3)};
|
|
20
|
+
|
|
21
|
+
${({ theme }) => theme.breakpoints.down('sm')} {
|
|
22
|
+
padding: ${({ theme }) => theme.spacing(0, 3, 3, 3)};
|
|
23
|
+
}
|
|
24
|
+
`;
|
|
15
25
|
exports.PageSubheader = styled_1.styled.div `
|
|
16
26
|
grid-column: 1 / -1;
|
|
17
|
-
grid-row:
|
|
27
|
+
grid-row: 5;
|
|
18
28
|
|
|
19
29
|
padding-top: ${({ theme }) => theme.spacing(4)};
|
|
20
30
|
|
|
@@ -34,7 +34,7 @@ const rootCva = (0, cva_1.cva)(constants_1.pageHeaderClassnames.root, {
|
|
|
34
34
|
},
|
|
35
35
|
});
|
|
36
36
|
const PageHeader = (props) => {
|
|
37
|
-
const { title, description, subheader, breadcrumbs, actions, backButton, className, filters, } = props;
|
|
37
|
+
const { title, description, subheader, breadcrumbs, tabs, actions, backButton, className, filters, } = props;
|
|
38
38
|
const { isLoading, mobileTitleActions, isShowMobileActions } = (0, useLogic_1.useLogic)(props);
|
|
39
39
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(styles_1.MobileTitleWrapper, { className: mobilePageHeaderCva({
|
|
40
40
|
hasTitle: Boolean(title) || isLoading,
|
|
@@ -43,6 +43,6 @@ const PageHeader = (props) => {
|
|
|
43
43
|
hasActions: Boolean(actions),
|
|
44
44
|
hasSubheader: Boolean(subheader),
|
|
45
45
|
hasFilters: Boolean(filters),
|
|
46
|
-
}), className), children: (0, jsx_runtime_1.jsx)(HeaderContent_1.HeaderContent, { breadcrumbs: breadcrumbs, backButton: backButton, title: title, description: description, actions: actions, subheader: subheader, filters: filters, isLoading: isLoading }) }), isShowMobileActions && ((0, jsx_runtime_1.jsx)(MobilePageActions_1.MobilePageActions, { className: (0, classNames_1.classNames)(constants_1.pageHeaderClassnames.pageHeaderActions), isLoading: isLoading, ...actions }))] }));
|
|
46
|
+
}), className), children: (0, jsx_runtime_1.jsx)(HeaderContent_1.HeaderContent, { breadcrumbs: breadcrumbs, backButton: backButton, title: title, description: description, actions: actions, subheader: subheader, tabs: tabs, filters: filters, isLoading: isLoading }) }), isShowMobileActions && ((0, jsx_runtime_1.jsx)(MobilePageActions_1.MobilePageActions, { className: (0, classNames_1.classNames)(constants_1.pageHeaderClassnames.pageHeaderActions), isLoading: isLoading, ...actions }))] }));
|
|
47
47
|
};
|
|
48
48
|
exports.PageHeader = PageHeader;
|
|
@@ -41,7 +41,7 @@ exports.Wrapper = styled_1.styled.header `
|
|
|
41
41
|
|
|
42
42
|
.${constants_2.pageHeaderClassnames.filters} {
|
|
43
43
|
grid-column: 1 / -1;
|
|
44
|
-
grid-row:
|
|
44
|
+
grid-row: 6;
|
|
45
45
|
|
|
46
46
|
${({ theme }) => theme.breakpoints.down('laptop')} {
|
|
47
47
|
grid-column: 3;
|
|
@@ -51,7 +51,7 @@ exports.Wrapper = styled_1.styled.header `
|
|
|
51
51
|
|
|
52
52
|
.${constants_2.pageHeaderClassnames.quickFilters} {
|
|
53
53
|
grid-column: 1 / -1;
|
|
54
|
-
grid-row:
|
|
54
|
+
grid-row: 7;
|
|
55
55
|
|
|
56
56
|
margin-top: ${({ theme }) => theme.spacing(4)};
|
|
57
57
|
|
|
@@ -34,6 +34,16 @@ export type PageHeaderProps<TMainActionComponent extends ElementType = ElementTy
|
|
|
34
34
|
* } />
|
|
35
35
|
*/
|
|
36
36
|
breadcrumbs?: ReactNode;
|
|
37
|
+
/**
|
|
38
|
+
* Слот для tabs
|
|
39
|
+
* @example <PageHeader tabs={
|
|
40
|
+
* <Tabs value={tabValue} onChange={handleChange}>
|
|
41
|
+
* <Tab label="Вкладка 1" />
|
|
42
|
+
* <Tab label="Вкладка 2" />
|
|
43
|
+
* </Tabs>
|
|
44
|
+
* } />
|
|
45
|
+
*/
|
|
46
|
+
tabs?: ReactNode;
|
|
37
47
|
/**
|
|
38
48
|
* Набор кнопок, видимые конфигурируются через объект main, скрытые в меню -
|
|
39
49
|
* через secondary
|
|
@@ -9,6 +9,7 @@ export declare const useLogic: <TFormValues extends Record<string, unknown>>({ a
|
|
|
9
9
|
subheader?: import("react").ReactNode;
|
|
10
10
|
filters?: import("react").ReactNode;
|
|
11
11
|
breadcrumbs?: import("react").ReactNode;
|
|
12
|
+
tabs?: import("react").ReactNode;
|
|
12
13
|
className?: string | undefined;
|
|
13
14
|
isLoading?: boolean | undefined;
|
|
14
15
|
shouldUpdateDocumentTitle?: boolean | undefined;
|