@astral/ui 4.84.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/HintPopover/HintPopover.d.ts +6 -0
- package/components/HintPopover/HintPopover.js +23 -0
- package/components/HintPopover/constants.d.ts +4 -0
- package/components/HintPopover/constants.js +5 -0
- package/components/HintPopover/index.d.ts +2 -0
- package/components/HintPopover/index.js +1 -0
- package/components/HintPopover/public.d.ts +2 -0
- package/components/HintPopover/public.js +1 -0
- package/components/HintPopover/styles.d.ts +38 -0
- package/components/HintPopover/styles.js +69 -0
- package/components/HintPopover/types.d.ts +24 -0
- package/components/HintPopover/types.js +1 -0
- package/components/NewPopover/NewPopover.d.ts +1 -1
- package/components/NewPopover/NewPopover.js +5 -4
- package/components/NewPopover/constants.d.ts +11 -0
- package/components/NewPopover/constants.js +11 -0
- package/components/NewPopover/styles.js +35 -30
- package/components/NewPopover/types.d.ts +5 -0
- package/components/NewPopover/useLogic/useLogic.d.ts +4 -3
- package/components/NewPopover/useLogic/useLogic.js +17 -8
- package/components/NewPopover/useLogic/utils/getArrowPadding/getArrowPadding.d.ts +14 -0
- package/components/NewPopover/useLogic/utils/getArrowPadding/getArrowPadding.js +12 -0
- package/components/NewPopover/useLogic/utils/getArrowPadding/index.d.ts +1 -0
- package/components/NewPopover/useLogic/utils/getArrowPadding/index.js +1 -0
- package/components/NewPopover/useLogic/utils/getPopoverCssVars/getPopoverCssVars.d.ts +2 -0
- package/components/NewPopover/useLogic/utils/getPopoverCssVars/getPopoverCssVars.js +6 -0
- package/components/NewPopover/useLogic/utils/getPopoverCssVars/index.d.ts +1 -0
- package/components/NewPopover/useLogic/utils/getPopoverCssVars/index.js +1 -0
- package/components/NewPopover/useLogic/utils/resolveAnchorNode/resolveAnchorNode.d.ts +6 -0
- package/components/NewPopover/useLogic/utils/resolveAnchorNode/resolveAnchorNode.js +8 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/HighlightStep.js +3 -4
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/styles.d.ts +6 -22
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/styles.js +2 -45
- 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/HintPopover/HintPopover.d.ts +6 -0
- package/node/components/HintPopover/HintPopover.js +27 -0
- package/node/components/HintPopover/constants.d.ts +4 -0
- package/node/components/HintPopover/constants.js +8 -0
- package/node/components/HintPopover/index.d.ts +2 -0
- package/node/components/HintPopover/index.js +5 -0
- package/node/components/HintPopover/public.d.ts +2 -0
- package/node/components/HintPopover/public.js +5 -0
- package/node/components/HintPopover/styles.d.ts +38 -0
- package/node/components/HintPopover/styles.js +72 -0
- package/node/components/HintPopover/types.d.ts +24 -0
- package/node/components/HintPopover/types.js +2 -0
- package/node/components/NewPopover/NewPopover.d.ts +1 -1
- package/node/components/NewPopover/NewPopover.js +5 -4
- package/node/components/NewPopover/constants.d.ts +11 -0
- package/node/components/NewPopover/constants.js +12 -1
- package/node/components/NewPopover/styles.js +34 -29
- package/node/components/NewPopover/types.d.ts +5 -0
- package/node/components/NewPopover/useLogic/useLogic.d.ts +4 -3
- package/node/components/NewPopover/useLogic/useLogic.js +18 -9
- package/node/components/NewPopover/useLogic/utils/getArrowPadding/getArrowPadding.d.ts +14 -0
- package/node/components/NewPopover/useLogic/utils/getArrowPadding/getArrowPadding.js +16 -0
- package/node/components/NewPopover/useLogic/utils/getArrowPadding/index.d.ts +1 -0
- package/node/components/NewPopover/useLogic/utils/getArrowPadding/index.js +17 -0
- package/node/components/NewPopover/useLogic/utils/getPopoverCssVars/getPopoverCssVars.d.ts +2 -0
- package/node/components/NewPopover/useLogic/utils/getPopoverCssVars/getPopoverCssVars.js +10 -0
- package/node/components/NewPopover/useLogic/utils/getPopoverCssVars/index.d.ts +1 -0
- package/node/components/NewPopover/useLogic/utils/getPopoverCssVars/index.js +5 -0
- package/node/components/NewPopover/useLogic/utils/resolveAnchorNode/resolveAnchorNode.d.ts +6 -0
- package/node/components/NewPopover/{utils → useLogic/utils/resolveAnchorNode}/resolveAnchorNode.js +2 -2
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/HighlightStep.js +1 -2
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/styles.d.ts +6 -22
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/styles.js +3 -46
- 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
- package/components/NewPopover/utils/resolveAnchorNode.d.ts +0 -6
- package/components/NewPopover/utils/resolveAnchorNode.js +0 -8
- package/node/components/NewPopover/utils/resolveAnchorNode.d.ts +0 -6
- /package/components/NewPopover/{utils → useLogic/utils/resolveAnchorNode}/index.d.ts +0 -0
- /package/components/NewPopover/{utils → useLogic/utils/resolveAnchorNode}/index.js +0 -0
- /package/node/components/NewPopover/{utils → useLogic/utils/resolveAnchorNode}/index.d.ts +0 -0
- /package/node/components/NewPopover/{utils → useLogic/utils/resolveAnchorNode}/index.js +0 -0
|
@@ -1,56 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { NewPopover } from '../../../../../NewPopover';
|
|
1
|
+
import { HintPopover } from '../../../../../HintPopover';
|
|
3
2
|
import { popoverClassnames } from '../../../../../NewPopover/constants';
|
|
4
3
|
import { styled } from '../../../../../styled';
|
|
5
4
|
import { ONBOARDING_Z_INDEX_OFFSET } from '../../../../constants';
|
|
6
|
-
|
|
7
|
-
* Popover шага, z-index над overlay, быстрое закрытие.
|
|
8
|
-
*/
|
|
9
|
-
export const StepPopover = styled(NewPopover) `
|
|
5
|
+
export const StepPopover = styled(HintPopover) `
|
|
10
6
|
&& {
|
|
11
7
|
z-index: ${({ theme }) => theme.zIndex.tooltip + ONBOARDING_Z_INDEX_OFFSET.popover};
|
|
12
8
|
}
|
|
13
|
-
|
|
14
|
-
.${popoverClassnames.innerContainer} {
|
|
15
|
-
border-radius: calc(${({ theme }) => theme.shape.medium} * 2);
|
|
16
|
-
}
|
|
17
9
|
|
|
18
10
|
.${popoverClassnames.animatedWrapper}:not(.${popoverClassnames.animatedWrapperOpen}) {
|
|
19
11
|
animation-duration: ${({ theme }) => theme.transitions.duration.shortest}ms;
|
|
20
12
|
}
|
|
21
13
|
`;
|
|
22
|
-
export const PopoverBody = styled.div `
|
|
23
|
-
position: relative;
|
|
24
|
-
|
|
25
|
-
width: 400px;
|
|
26
|
-
padding: ${({ theme }) => theme.spacing(6)};
|
|
27
|
-
|
|
28
|
-
border-radius: calc(${({ theme }) => theme.shape.medium} * 2);
|
|
29
|
-
|
|
30
|
-
/* Фокус-трап ставит фокус на контейнер, браузерную рамку убираем. */
|
|
31
|
-
&:focus {
|
|
32
|
-
outline: none;
|
|
33
|
-
}
|
|
34
|
-
`;
|
|
35
|
-
export const CloseButton = styled(IconButton) `
|
|
36
|
-
position: absolute;
|
|
37
|
-
top: ${({ theme }) => theme.spacing(6)};
|
|
38
|
-
right: ${({ theme }) => theme.spacing(6)};
|
|
39
|
-
`;
|
|
40
|
-
export const Content = styled.div `
|
|
41
|
-
display: flex;
|
|
42
|
-
flex-direction: column;
|
|
43
|
-
gap: ${({ theme }) => theme.spacing(4)};
|
|
44
|
-
|
|
45
|
-
margin-bottom: ${({ theme }) => theme.spacing(6)};
|
|
46
|
-
|
|
47
|
-
&:last-child {
|
|
48
|
-
margin-bottom: 0;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/* Резерв справа под крестик — только у верхнего элемента (заголовок, а если
|
|
52
|
-
его нет — текст) */
|
|
53
|
-
& > *:first-of-type {
|
|
54
|
-
padding-right: ${({ theme }) => theme.spacing(10)};
|
|
55
|
-
}
|
|
56
|
-
`;
|
|
@@ -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;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type HintPopoverProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Поповер-подсказка, привязанная к элементу: подсвечивает возможность интерфейса.
|
|
4
|
+
* Отличие от `NewPopover`: увеличенное скругление, всегда со стрелкой и не сворачивается в BottomDrawer на mobile.
|
|
5
|
+
*/
|
|
6
|
+
export declare const HintPopover: ({ variant, title, action, onClose, contentRef, children, className, ...restProps }: HintPopoverProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HintPopover = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const CrossOutlineMd_1 = require("../../icons/CrossOutlineMd");
|
|
6
|
+
const useViewportType_1 = require("../useViewportType");
|
|
7
|
+
const classNames_1 = require("../utils/classNames");
|
|
8
|
+
const cva_1 = require("../utils/cva");
|
|
9
|
+
const constants_1 = require("./constants");
|
|
10
|
+
const styles_1 = require("./styles");
|
|
11
|
+
const hintPopoverCva = (0, cva_1.cva)(constants_1.hintPopoverClassnames.root, {
|
|
12
|
+
variants: {
|
|
13
|
+
variant: {
|
|
14
|
+
light: '',
|
|
15
|
+
dark: constants_1.hintPopoverClassnames.dark,
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* Поповер-подсказка, привязанная к элементу: подсвечивает возможность интерфейса.
|
|
21
|
+
* Отличие от `NewPopover`: увеличенное скругление, всегда со стрелкой и не сворачивается в BottomDrawer на mobile.
|
|
22
|
+
*/
|
|
23
|
+
const HintPopover = ({ variant = 'dark', title, action, onClose, contentRef, children, className, ...restProps }) => {
|
|
24
|
+
const { isMobile } = (0, useViewportType_1.useViewportType)();
|
|
25
|
+
return ((0, jsx_runtime_1.jsx)(styles_1.StyledHintPopover, { ...restProps, className: (0, classNames_1.classNames)(className, hintPopoverCva({ variant })), hasArrow: true, disableMobileDrawer: true, onClose: onClose, children: (0, jsx_runtime_1.jsxs)(styles_1.Body, { ref: contentRef, tabIndex: -1, children: [(0, jsx_runtime_1.jsx)(styles_1.CloseButton, { variant: "text", onClick: onClose, "aria-label": "\u0417\u0430\u043A\u0440\u044B\u0442\u044C", children: (0, jsx_runtime_1.jsx)(CrossOutlineMd_1.CrossOutlineMd, {}) }), title && ((0, jsx_runtime_1.jsx)(styles_1.Title, { component: "div", variant: isMobile ? 'h5' : 'h4', children: title })), children, action && (0, jsx_runtime_1.jsx)(styles_1.ActionRow, { children: action })] }) }));
|
|
26
|
+
};
|
|
27
|
+
exports.HintPopover = HintPopover;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hintPopoverClassnames = void 0;
|
|
4
|
+
const createUIKitClassname_1 = require("../utils/createUIKitClassname");
|
|
5
|
+
exports.hintPopoverClassnames = {
|
|
6
|
+
root: (0, createUIKitClassname_1.createUIKitClassname)('hint-popover'),
|
|
7
|
+
dark: (0, createUIKitClassname_1.createUIKitClassname)('hint-popover_dark'),
|
|
8
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HintPopover = void 0;
|
|
4
|
+
var HintPopover_1 = require("./HintPopover");
|
|
5
|
+
Object.defineProperty(exports, "HintPopover", { enumerable: true, get: function () { return HintPopover_1.HintPopover; } });
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HintPopover = void 0;
|
|
4
|
+
var HintPopover_1 = require("./HintPopover");
|
|
5
|
+
Object.defineProperty(exports, "HintPopover", { enumerable: true, get: function () { return HintPopover_1.HintPopover; } });
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* styled-обёртка над NewPopover: переопределяет его CSS-переменные — всегда
|
|
4
|
+
* увеличенный радиус, а для `dark` ещё тёмную подложку и текст (цвет стрелки
|
|
5
|
+
* подтянется из подложки сам).
|
|
6
|
+
*/
|
|
7
|
+
export declare const StyledHintPopover: import("@emotion/styled/dist/declarations/src/types").StyledComponent<import("../NewPopover").NewPopoverProps & {
|
|
8
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
9
|
+
}, {}, {}>;
|
|
10
|
+
export declare const Body: 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 Title: import("@emotion/styled/dist/declarations/src/types").StyledComponent<import("../Typography/types").TypographyPropsBase & {
|
|
15
|
+
color?: import("../Typography").TypographyColor | undefined;
|
|
16
|
+
variant?: import("../Typography").TypographyVariant | undefined;
|
|
17
|
+
colorIntensity?: import("../Typography").Intensity | undefined;
|
|
18
|
+
component?: import("../Typography/types").ComponentProp | undefined;
|
|
19
|
+
isUpperCase?: boolean | undefined;
|
|
20
|
+
withoutCalt?: boolean | undefined;
|
|
21
|
+
isTabularNums?: boolean | undefined;
|
|
22
|
+
} & import("react").HTMLAttributes<HTMLParagraphElement> & import("react").RefAttributes<HTMLSpanElement> & {
|
|
23
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
24
|
+
}, {}, {}>;
|
|
25
|
+
export declare const ActionRow: import("@emotion/styled/dist/declarations/src/types").StyledComponent<{
|
|
26
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
27
|
+
as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
|
|
28
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
29
|
+
export declare const CloseButton: import("@emotion/styled/dist/declarations/src/types").StyledComponent<Omit<import("..").WithoutEmotionSpecific<import("@mui/material").ButtonProps>, "color" | "component" | "size" | "variant" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple"> & {
|
|
30
|
+
variant?: "light" | "link" | "text" | "contained" | "outlined" | undefined;
|
|
31
|
+
loading?: boolean | undefined;
|
|
32
|
+
color?: "primary" | "success" | "warning" | "error" | "grey" | undefined;
|
|
33
|
+
component?: import("react").ElementType | undefined;
|
|
34
|
+
selected?: boolean | undefined;
|
|
35
|
+
size?: "large" | "medium" | undefined;
|
|
36
|
+
} & Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, ""> & import("react").RefAttributes<HTMLButtonElement> & {
|
|
37
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
38
|
+
}, {}, {}>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CloseButton = exports.ActionRow = exports.Title = exports.Body = exports.StyledHintPopover = void 0;
|
|
4
|
+
const IconButton_1 = require("../IconButton");
|
|
5
|
+
const NewPopover_1 = require("../NewPopover");
|
|
6
|
+
const styled_1 = require("../styled");
|
|
7
|
+
const Typography_1 = require("../Typography");
|
|
8
|
+
const constants_1 = require("./constants");
|
|
9
|
+
/**
|
|
10
|
+
* styled-обёртка над NewPopover: переопределяет его CSS-переменные — всегда
|
|
11
|
+
* увеличенный радиус, а для `dark` ещё тёмную подложку и текст (цвет стрелки
|
|
12
|
+
* подтянется из подложки сам).
|
|
13
|
+
*/
|
|
14
|
+
exports.StyledHintPopover = (0, styled_1.styled)(NewPopover_1.NewPopover) `
|
|
15
|
+
--popover-radius: calc(${({ theme }) => theme.shape.medium} * 2);
|
|
16
|
+
|
|
17
|
+
&.${constants_1.hintPopoverClassnames.dark} {
|
|
18
|
+
--popover-surface-color: ${({ theme }) => theme.palette.grey[900]};
|
|
19
|
+
--popover-text-color: ${({ theme }) => theme.palette.common.white};
|
|
20
|
+
}
|
|
21
|
+
`;
|
|
22
|
+
exports.Body = styled_1.styled.div `
|
|
23
|
+
position: relative;
|
|
24
|
+
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-direction: column;
|
|
27
|
+
|
|
28
|
+
width: min(400px, calc(100vw - ${({ theme }) => theme.spacing(8)}));
|
|
29
|
+
padding: ${({ theme }) => theme.spacing(6)};
|
|
30
|
+
|
|
31
|
+
${({ theme }) => theme.breakpoints.down('sm')} {
|
|
32
|
+
padding: ${({ theme }) => theme.spacing(4)};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Крестик висит абсолютом в углу и идёт первым в DOM, поэтому следующий за ним
|
|
36
|
+
верхний элемент (заголовок, а без него — контент) резервирует место справа,
|
|
37
|
+
чтобы текст под крестик не залез. */
|
|
38
|
+
& > button + * {
|
|
39
|
+
padding-right: ${({ theme }) => theme.spacing(10)};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* Тело — программная цель фокуса (tabIndex=-1) у потребителя; рамку убираем. */
|
|
43
|
+
&:focus {
|
|
44
|
+
outline: none;
|
|
45
|
+
}
|
|
46
|
+
`;
|
|
47
|
+
exports.Title = (0, styled_1.styled)(Typography_1.Typography) `
|
|
48
|
+
margin-bottom: ${({ theme }) => theme.spacing(4)};
|
|
49
|
+
|
|
50
|
+
${({ theme }) => theme.breakpoints.down('sm')} {
|
|
51
|
+
margin-bottom: ${({ theme }) => theme.spacing(1)};
|
|
52
|
+
}
|
|
53
|
+
`;
|
|
54
|
+
exports.ActionRow = styled_1.styled.div `
|
|
55
|
+
margin-top: ${({ theme }) => theme.spacing(6)};
|
|
56
|
+
|
|
57
|
+
${({ theme }) => theme.breakpoints.down('sm')} {
|
|
58
|
+
margin-top: ${({ theme }) => theme.spacing(4)};
|
|
59
|
+
}
|
|
60
|
+
`;
|
|
61
|
+
exports.CloseButton = (0, styled_1.styled)(IconButton_1.IconButton) `
|
|
62
|
+
position: absolute;
|
|
63
|
+
top: ${({ theme }) => theme.spacing(4)};
|
|
64
|
+
right: ${({ theme }) => theme.spacing(4)};
|
|
65
|
+
|
|
66
|
+
color: inherit;
|
|
67
|
+
|
|
68
|
+
${({ theme }) => theme.breakpoints.down('sm')} {
|
|
69
|
+
top: ${({ theme }) => theme.spacing(2)};
|
|
70
|
+
right: ${({ theme }) => theme.spacing(2)};
|
|
71
|
+
}
|
|
72
|
+
`;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type ReactNode, type Ref } from 'react';
|
|
2
|
+
import { type NewPopoverProps } from '../NewPopover';
|
|
3
|
+
/** Цвет подложки highlight-popover. */
|
|
4
|
+
export type HintPopoverVariant = 'light' | 'dark';
|
|
5
|
+
/** Параметры HintPopover */
|
|
6
|
+
export type HintPopoverProps = Omit<NewPopoverProps, 'hasArrow' | 'disableMobileDrawer' | 'title'> & {
|
|
7
|
+
/**
|
|
8
|
+
* Цвет подложки.
|
|
9
|
+
* @default 'dark'
|
|
10
|
+
*/
|
|
11
|
+
variant?: HintPopoverVariant;
|
|
12
|
+
/**
|
|
13
|
+
* Заголовок.
|
|
14
|
+
*/
|
|
15
|
+
title?: ReactNode;
|
|
16
|
+
/**
|
|
17
|
+
* Слот действий под контентом.
|
|
18
|
+
*/
|
|
19
|
+
action?: ReactNode;
|
|
20
|
+
/**
|
|
21
|
+
* Ref на узел контента — для фокус-трапа/определения кликов у потребителя.
|
|
22
|
+
*/
|
|
23
|
+
contentRef?: Ref<HTMLDivElement>;
|
|
24
|
+
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { type NewPopoverProps } from './types';
|
|
2
|
-
export declare const NewPopover: ({ children, onClose, isOpen, title, className, style, placement, anchorEl, disablePortal, disableAutoFocus, hasArrow, }: NewPopoverProps) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare const NewPopover: ({ children, onClose, isOpen, title, className, style, placement, anchorEl, disablePortal, disableAutoFocus, hasArrow, disableMobileDrawer, }: NewPopoverProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -18,19 +18,20 @@ const animatedWrapperCva = (0, cva_1.cva)(constants_1.popoverClassnames.animated
|
|
|
18
18
|
},
|
|
19
19
|
},
|
|
20
20
|
});
|
|
21
|
-
const NewPopover = ({ children, onClose, isOpen, title, className, style, placement = 'bottom', anchorEl, disablePortal, disableAutoFocus, hasArrow, }) => {
|
|
22
|
-
const {
|
|
21
|
+
const NewPopover = ({ children, onClose, isOpen, title, className, style, placement = 'bottom', anchorEl, disablePortal, disableAutoFocus, hasArrow, disableMobileDrawer, }) => {
|
|
22
|
+
const { shouldRenderDrawer, isOpened, shouldRender, handleAnimationEnd, handleClose, setContainerRef, setArrowElement, mergedModifiers, animatedWrapperStyle, } = (0, useLogic_1.useLogic)({
|
|
23
23
|
isOpen,
|
|
24
24
|
anchorEl,
|
|
25
25
|
onClose,
|
|
26
26
|
disableAutoFocus,
|
|
27
27
|
hasArrow,
|
|
28
|
+
disableMobileDrawer,
|
|
28
29
|
});
|
|
29
|
-
if (
|
|
30
|
+
if (shouldRenderDrawer) {
|
|
30
31
|
return ((0, jsx_runtime_1.jsx)(BottomDrawer_1.BottomDrawer, { title: title, onClose: handleClose, open: isOpened, className: className, style: style, ModalProps: {
|
|
31
32
|
disableAutoFocus,
|
|
32
33
|
}, children: children }));
|
|
33
34
|
}
|
|
34
|
-
return ((0, jsx_runtime_1.jsx)(styles_1.StyledMuiPopper, { className: (0, classNames_1.classNames)(constants_1.popoverClassnames.root, className), style: style, open: shouldRender, placement: placement, anchorEl: anchorEl, disablePortal: disablePortal, modifiers: mergedModifiers, children: (0, jsx_runtime_1.jsxs)(styles_1.AnimatedWrapper, { className: animatedWrapperCva({ isOpen: isOpened, hasArrow }), onAnimationEnd: handleAnimationEnd, children: [hasArrow && ((0, jsx_runtime_1.jsx)(styles_1.PopoverArrow, { ref: setArrowElement, className: constants_1.popoverClassnames.arrow })), (0, jsx_runtime_1.jsx)(styles_1.InnerContainer, { ref: setContainerRef, tabIndex: -1, className: constants_1.popoverClassnames.innerContainer, children: children })] }) }));
|
|
35
|
+
return ((0, jsx_runtime_1.jsx)(styles_1.StyledMuiPopper, { className: (0, classNames_1.classNames)(constants_1.popoverClassnames.root, className), style: style, open: shouldRender, placement: placement, anchorEl: anchorEl, disablePortal: disablePortal, modifiers: mergedModifiers, children: (0, jsx_runtime_1.jsxs)(styles_1.AnimatedWrapper, { className: animatedWrapperCva({ isOpen: isOpened, hasArrow }), style: animatedWrapperStyle, onAnimationEnd: handleAnimationEnd, children: [hasArrow && ((0, jsx_runtime_1.jsx)(styles_1.PopoverArrow, { ref: setArrowElement, className: constants_1.popoverClassnames.arrow })), (0, jsx_runtime_1.jsx)(styles_1.InnerContainer, { ref: setContainerRef, tabIndex: -1, className: constants_1.popoverClassnames.innerContainer, children: children })] }) }));
|
|
35
36
|
};
|
|
36
37
|
exports.NewPopover = NewPopover;
|
|
@@ -7,6 +7,17 @@ export declare const popoverClassnames: {
|
|
|
7
7
|
animatedWrapperHasArrow: string;
|
|
8
8
|
arrow: string;
|
|
9
9
|
};
|
|
10
|
+
/** Основание и высота стрелки (px). */
|
|
11
|
+
export declare const ARROW_BASE = 23;
|
|
12
|
+
export declare const ARROW_HEIGHT = 16;
|
|
13
|
+
/** Отступ стрелки от углов (px). */
|
|
14
|
+
export declare const ARROW_PADDING = 24;
|
|
15
|
+
/**
|
|
16
|
+
* Мин. отступ стрелки от угла (px)
|
|
17
|
+
*/
|
|
18
|
+
export declare const ARROW_MIN_PADDING = 16;
|
|
19
|
+
/** Мин. «ход» стрелки вдоль кромки (px). */
|
|
20
|
+
export declare const ARROW_MIN_TRACK = 16;
|
|
10
21
|
/**
|
|
11
22
|
* Базовые модификаторы Popper.js. У MUI Popper (popper.js)
|
|
12
23
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_MODIFIERS = exports.popoverClassnames = void 0;
|
|
3
|
+
exports.DEFAULT_MODIFIERS = exports.ARROW_MIN_TRACK = exports.ARROW_MIN_PADDING = exports.ARROW_PADDING = exports.ARROW_HEIGHT = exports.ARROW_BASE = exports.popoverClassnames = void 0;
|
|
4
4
|
const createUIKitClassname_1 = require("../utils/createUIKitClassname");
|
|
5
5
|
exports.popoverClassnames = {
|
|
6
6
|
root: (0, createUIKitClassname_1.createUIKitClassname)('popover'),
|
|
@@ -10,6 +10,17 @@ exports.popoverClassnames = {
|
|
|
10
10
|
animatedWrapperHasArrow: (0, createUIKitClassname_1.createUIKitClassname)('popover__animated-wrapper_has-arrow'),
|
|
11
11
|
arrow: (0, createUIKitClassname_1.createUIKitClassname)('popover__arrow'),
|
|
12
12
|
};
|
|
13
|
+
/** Основание и высота стрелки (px). */
|
|
14
|
+
exports.ARROW_BASE = 23;
|
|
15
|
+
exports.ARROW_HEIGHT = 16;
|
|
16
|
+
/** Отступ стрелки от углов (px). */
|
|
17
|
+
exports.ARROW_PADDING = 24;
|
|
18
|
+
/**
|
|
19
|
+
* Мин. отступ стрелки от угла (px)
|
|
20
|
+
*/
|
|
21
|
+
exports.ARROW_MIN_PADDING = 16;
|
|
22
|
+
/** Мин. «ход» стрелки вдоль кромки (px). */
|
|
23
|
+
exports.ARROW_MIN_TRACK = 16;
|
|
13
24
|
/**
|
|
14
25
|
* Базовые модификаторы Popper.js. У MUI Popper (popper.js)
|
|
15
26
|
*/
|
|
@@ -9,11 +9,13 @@ const styled_1 = require("../styled");
|
|
|
9
9
|
const constants_1 = require("./constants");
|
|
10
10
|
exports.StyledMuiPopper = (0, styled_1.styled)(Popper_1.default) `
|
|
11
11
|
&.${constants_1.popoverClassnames.root} {
|
|
12
|
+
--arrow-base: ${constants_1.ARROW_BASE}px;
|
|
13
|
+
--arrow-height: ${constants_1.ARROW_HEIGHT}px;
|
|
14
|
+
|
|
12
15
|
z-index: ${({ theme }) => theme.zIndex.tooltip};
|
|
13
16
|
}
|
|
14
17
|
|
|
15
|
-
/* Anchor ушёл за скролл/вьюпорт —
|
|
16
|
-
Стрелка иначе тянется к пропавшему anchor и торчит криво — прячем её. */
|
|
18
|
+
/* Anchor ушёл за скролл/вьюпорт — прячем стрелку. */
|
|
17
19
|
&[data-popper-reference-hidden] .${constants_1.popoverClassnames.arrow} {
|
|
18
20
|
visibility: hidden;
|
|
19
21
|
}
|
|
@@ -42,7 +44,6 @@ exports.StyledMuiPopper = (0, styled_1.styled)(Popper_1.default) `
|
|
|
42
44
|
margin-left: ${({ theme }) => theme.spacing(2)};
|
|
43
45
|
}
|
|
44
46
|
|
|
45
|
-
/* Со стрелкой отступ больше */
|
|
46
47
|
&&[data-popper-placement*='top']
|
|
47
48
|
.${constants_1.popoverClassnames.animatedWrapperHasArrow} {
|
|
48
49
|
margin-bottom: ${({ theme }) => theme.spacing(4)};
|
|
@@ -64,54 +65,52 @@ exports.StyledMuiPopper = (0, styled_1.styled)(Popper_1.default) `
|
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
&&[data-popper-placement*='bottom'] .${constants_1.popoverClassnames.arrow} {
|
|
67
|
-
top: -
|
|
68
|
+
top: calc(var(--arrow-height) * -1);
|
|
68
69
|
|
|
69
|
-
width:
|
|
70
|
-
height:
|
|
70
|
+
width: var(--arrow-base);
|
|
71
|
+
height: var(--arrow-height);
|
|
71
72
|
|
|
72
73
|
&::before {
|
|
73
|
-
border-color: transparent transparent
|
|
74
|
-
|
|
75
|
-
border-width: 0 11.5px 16px;
|
|
74
|
+
border-color: transparent transparent var(--popover-surface-color, ${({ theme }) => theme.palette.background.paper});
|
|
75
|
+
border-width: 0 calc(var(--arrow-base) / 2) var(--arrow-height);
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
&&[data-popper-placement*='top'] .${constants_1.popoverClassnames.arrow} {
|
|
80
|
-
bottom: -
|
|
80
|
+
bottom: calc(var(--arrow-height) * -1);
|
|
81
81
|
|
|
82
|
-
width:
|
|
83
|
-
height:
|
|
82
|
+
width: var(--arrow-base);
|
|
83
|
+
height: var(--arrow-height);
|
|
84
84
|
|
|
85
85
|
&::before {
|
|
86
|
-
border-color: ${({ theme }) => theme.palette.background.paper} transparent
|
|
87
|
-
|
|
88
|
-
border-width: 16px 11.5px 0;
|
|
86
|
+
border-color: var(--popover-surface-color, ${({ theme }) => theme.palette.background.paper}) transparent transparent;
|
|
87
|
+
border-width: var(--arrow-height) calc(var(--arrow-base) / 2) 0;
|
|
89
88
|
}
|
|
90
89
|
}
|
|
91
90
|
|
|
92
91
|
&&[data-popper-placement*='right'] .${constants_1.popoverClassnames.arrow} {
|
|
93
|
-
left: -
|
|
92
|
+
left: calc(var(--arrow-height) * -1);
|
|
94
93
|
|
|
95
|
-
width:
|
|
96
|
-
height:
|
|
94
|
+
width: var(--arrow-height);
|
|
95
|
+
height: var(--arrow-base);
|
|
97
96
|
|
|
98
97
|
&::before {
|
|
99
|
-
border-color: transparent ${({ theme }) => theme.palette.background.paper}
|
|
100
|
-
transparent
|
|
101
|
-
border-width:
|
|
98
|
+
border-color: transparent var(--popover-surface-color, ${({ theme }) => theme.palette.background.paper}) transparent
|
|
99
|
+
transparent;
|
|
100
|
+
border-width: calc(var(--arrow-base) / 2) var(--arrow-height) calc(var(--arrow-base) / 2) 0;
|
|
102
101
|
}
|
|
103
102
|
}
|
|
104
103
|
|
|
105
104
|
&&[data-popper-placement*='left'] .${constants_1.popoverClassnames.arrow} {
|
|
106
|
-
right: -
|
|
105
|
+
right: calc(var(--arrow-height) * -1);
|
|
107
106
|
|
|
108
|
-
width:
|
|
109
|
-
height:
|
|
107
|
+
width: var(--arrow-height);
|
|
108
|
+
height: var(--arrow-base);
|
|
110
109
|
|
|
111
110
|
&::before {
|
|
112
111
|
border-color: transparent transparent transparent
|
|
113
|
-
${({ theme }) => theme.palette.background.paper};
|
|
114
|
-
border-width:
|
|
112
|
+
var(--popover-surface-color, ${({ theme }) => theme.palette.background.paper});
|
|
113
|
+
border-width: calc(var(--arrow-base) / 2) 0 calc(var(--arrow-base) / 2) var(--arrow-height);
|
|
115
114
|
}
|
|
116
115
|
}
|
|
117
116
|
`;
|
|
@@ -132,6 +131,8 @@ exports.PopoverArrow = styled_1.styled.span `
|
|
|
132
131
|
`;
|
|
133
132
|
exports.AnimatedWrapper = styled_1.styled.div `
|
|
134
133
|
position: relative;
|
|
134
|
+
|
|
135
|
+
filter: var(--drop-shadow);
|
|
135
136
|
|
|
136
137
|
animation: popover-grow-out
|
|
137
138
|
${({ theme }) => theme.transitions.duration.leavingScreen}ms
|
|
@@ -175,8 +176,12 @@ exports.InnerContainer = styled_1.styled.div `
|
|
|
175
176
|
&.${constants_1.popoverClassnames.innerContainer} {
|
|
176
177
|
overflow: hidden;
|
|
177
178
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
179
|
+
color: var(--popover-text-color, ${({ theme }) => theme.palette.text.primary});
|
|
180
|
+
|
|
181
|
+
background: var(
|
|
182
|
+
--popover-surface-color,
|
|
183
|
+
${({ theme }) => theme.palette.background.paper}
|
|
184
|
+
);
|
|
185
|
+
border-radius: var(--popover-radius, ${({ theme }) => theme.shape.medium});
|
|
181
186
|
}
|
|
182
187
|
`;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { type NewPopoverModifier, type NewPopoverProps } from '../types';
|
|
3
|
-
type UseLogicParams = Pick<NewPopoverProps, 'isOpen' | 'anchorEl' | 'onClose' | 'disableAutoFocus' | 'hasArrow'>;
|
|
4
|
-
export declare const useLogic: ({ isOpen, anchorEl, onClose, disableAutoFocus, hasArrow, }: UseLogicParams) => {
|
|
5
|
-
|
|
3
|
+
type UseLogicParams = Pick<NewPopoverProps, 'isOpen' | 'anchorEl' | 'onClose' | 'disableAutoFocus' | 'hasArrow' | 'disableMobileDrawer'>;
|
|
4
|
+
export declare const useLogic: ({ isOpen, anchorEl, onClose, disableAutoFocus, hasArrow, disableMobileDrawer, }: UseLogicParams) => {
|
|
5
|
+
shouldRenderDrawer: boolean;
|
|
6
6
|
isOpened: boolean;
|
|
7
7
|
shouldRender: boolean;
|
|
8
8
|
handleAnimationEnd: () => void;
|
|
@@ -11,5 +11,6 @@ export declare const useLogic: ({ isOpen, anchorEl, onClose, disableAutoFocus, h
|
|
|
11
11
|
arrowElement: HTMLSpanElement | null;
|
|
12
12
|
setArrowElement: import("react").Dispatch<import("react").SetStateAction<HTMLSpanElement | null>>;
|
|
13
13
|
mergedModifiers: NewPopoverModifier[];
|
|
14
|
+
animatedWrapperStyle: import("react").CSSProperties;
|
|
14
15
|
};
|
|
15
16
|
export {};
|