@alfalab/core-components-side-panel 7.0.4 → 7.0.5-alfasans
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/Component.responsive.d.ts +11 -11
- package/Context.d.ts +0 -1
- package/components/content/Component.d.ts +1 -1
- package/components/content/Component.desktop.d.ts +1 -1
- package/components/content/Component.mobile.d.ts +1 -1
- package/components/content/desktop.css +2 -2
- package/components/content/desktop.module.css.js +1 -1
- package/components/content/index.css +3 -3
- package/components/content/index.module.css.js +1 -1
- package/components/content/mobile.css +2 -2
- package/components/content/mobile.module.css.js +1 -1
- package/components/controls/index.css +1 -1
- package/components/controls/index.module.css.js +1 -1
- package/components/footer/Component.d.ts +1 -1
- package/components/footer/Component.desktop.d.ts +1 -1
- package/components/footer/Component.mobile.d.ts +1 -1
- package/components/footer/desktop.css +2 -2
- package/components/footer/desktop.module.css.js +1 -1
- package/components/footer/index.css +3 -3
- package/components/footer/index.module.css.js +1 -1
- package/components/footer/layout.css +16 -16
- package/components/footer/layout.module.css.js +1 -1
- package/components/footer/mobile.css +3 -3
- package/components/footer/mobile.module.css.js +1 -1
- package/components/header/Component.d.ts +1 -1
- package/components/header/desktop.css +8 -6
- package/components/header/desktop.module.css.js +1 -1
- package/components/header/index.css +13 -13
- package/components/header/index.module.css.js +1 -1
- package/components/header/mobile.css +11 -8
- package/components/header/mobile.module.css.js +1 -1
- package/cssm/Component.responsive.d.ts +11 -11
- package/cssm/Context.d.ts +0 -1
- package/cssm/components/content/Component.d.ts +1 -1
- package/cssm/components/content/Component.desktop.d.ts +1 -1
- package/cssm/components/content/Component.mobile.d.ts +1 -1
- package/cssm/components/footer/Component.d.ts +1 -1
- package/cssm/components/footer/Component.desktop.d.ts +1 -1
- package/cssm/components/footer/Component.mobile.d.ts +1 -1
- package/cssm/components/header/Component.d.ts +1 -1
- package/cssm/components/header/desktop.module.css +5 -3
- package/cssm/components/header/mobile.module.css +7 -4
- package/cssm/desktop/Component.desktop.d.ts +6 -6
- package/cssm/desktop/Component.desktop.js +3 -1
- package/cssm/desktop/Component.desktop.js.map +1 -1
- package/cssm/mobile/Component.mobile.d.ts +3 -3
- package/cssm/typings.d.ts +2 -2
- package/desktop/Component.desktop.d.ts +6 -6
- package/desktop/Component.desktop.js +3 -1
- package/desktop/Component.desktop.js.map +1 -1
- package/desktop/desktop.css +2 -2
- package/desktop/desktop.module.css.js +1 -1
- package/desktop/transitions.desktop.css +6 -6
- package/desktop/transitions.desktop.module.css.js +1 -1
- package/esm/Component.responsive.d.ts +11 -11
- package/esm/Context.d.ts +0 -1
- package/esm/components/content/Component.d.ts +1 -1
- package/esm/components/content/Component.desktop.d.ts +1 -1
- package/esm/components/content/Component.mobile.d.ts +1 -1
- package/esm/components/content/desktop.css +2 -2
- package/esm/components/content/desktop.module.css.js +1 -1
- package/esm/components/content/index.css +3 -3
- package/esm/components/content/index.module.css.js +1 -1
- package/esm/components/content/mobile.css +2 -2
- package/esm/components/content/mobile.module.css.js +1 -1
- package/esm/components/controls/index.css +1 -1
- package/esm/components/controls/index.module.css.js +1 -1
- package/esm/components/footer/Component.d.ts +1 -1
- package/esm/components/footer/Component.desktop.d.ts +1 -1
- package/esm/components/footer/Component.mobile.d.ts +1 -1
- package/esm/components/footer/desktop.css +2 -2
- package/esm/components/footer/desktop.module.css.js +1 -1
- package/esm/components/footer/index.css +3 -3
- package/esm/components/footer/index.module.css.js +1 -1
- package/esm/components/footer/layout.css +16 -16
- package/esm/components/footer/layout.module.css.js +1 -1
- package/esm/components/footer/mobile.css +3 -3
- package/esm/components/footer/mobile.module.css.js +1 -1
- package/esm/components/header/Component.d.ts +1 -1
- package/esm/components/header/desktop.css +8 -6
- package/esm/components/header/desktop.module.css.js +1 -1
- package/esm/components/header/index.css +13 -13
- package/esm/components/header/index.module.css.js +1 -1
- package/esm/components/header/mobile.css +11 -8
- package/esm/components/header/mobile.module.css.js +1 -1
- package/esm/desktop/Component.desktop.d.ts +6 -6
- package/esm/desktop/Component.desktop.js +3 -1
- package/esm/desktop/Component.desktop.js.map +1 -1
- package/esm/desktop/desktop.css +2 -2
- package/esm/desktop/desktop.module.css.js +1 -1
- package/esm/desktop/transitions.desktop.css +6 -6
- package/esm/desktop/transitions.desktop.module.css.js +1 -1
- package/esm/mobile/Component.mobile.d.ts +3 -3
- package/esm/mobile/mobile.css +4 -4
- package/esm/mobile/mobile.module.css.js +1 -1
- package/esm/mobile/transitions.mobile.css +7 -7
- package/esm/mobile/transitions.mobile.module.css.js +1 -1
- package/esm/typings.d.ts +2 -2
- package/mobile/Component.mobile.d.ts +3 -3
- package/mobile/mobile.css +4 -4
- package/mobile/mobile.module.css.js +1 -1
- package/mobile/transitions.mobile.css +7 -7
- package/mobile/transitions.mobile.module.css.js +1 -1
- package/modern/Component.responsive.d.ts +11 -11
- package/modern/Context.d.ts +0 -1
- package/modern/components/content/Component.d.ts +1 -1
- package/modern/components/content/Component.desktop.d.ts +1 -1
- package/modern/components/content/Component.mobile.d.ts +1 -1
- package/modern/components/content/desktop.css +2 -2
- package/modern/components/content/desktop.module.css.js +1 -1
- package/modern/components/content/index.css +3 -3
- package/modern/components/content/index.module.css.js +1 -1
- package/modern/components/content/mobile.css +2 -2
- package/modern/components/content/mobile.module.css.js +1 -1
- package/modern/components/controls/index.css +1 -1
- package/modern/components/controls/index.module.css.js +1 -1
- package/modern/components/footer/Component.d.ts +1 -1
- package/modern/components/footer/Component.desktop.d.ts +1 -1
- package/modern/components/footer/Component.mobile.d.ts +1 -1
- package/modern/components/footer/desktop.css +2 -2
- package/modern/components/footer/desktop.module.css.js +1 -1
- package/modern/components/footer/index.css +3 -3
- package/modern/components/footer/index.module.css.js +1 -1
- package/modern/components/footer/layout.css +16 -16
- package/modern/components/footer/layout.module.css.js +1 -1
- package/modern/components/footer/mobile.css +3 -3
- package/modern/components/footer/mobile.module.css.js +1 -1
- package/modern/components/header/Component.d.ts +1 -1
- package/modern/components/header/desktop.css +8 -6
- package/modern/components/header/desktop.module.css.js +1 -1
- package/modern/components/header/index.css +13 -13
- package/modern/components/header/index.module.css.js +1 -1
- package/modern/components/header/mobile.css +11 -8
- package/modern/components/header/mobile.module.css.js +1 -1
- package/modern/desktop/Component.desktop.d.ts +6 -6
- package/modern/desktop/Component.desktop.js +3 -1
- package/modern/desktop/Component.desktop.js.map +1 -1
- package/modern/desktop/desktop.css +2 -2
- package/modern/desktop/desktop.module.css.js +1 -1
- package/modern/desktop/transitions.desktop.css +6 -6
- package/modern/desktop/transitions.desktop.module.css.js +1 -1
- package/modern/mobile/Component.mobile.d.ts +3 -3
- package/modern/mobile/mobile.css +4 -4
- package/modern/mobile/mobile.module.css.js +1 -1
- package/modern/mobile/transitions.mobile.css +7 -7
- package/modern/mobile/transitions.mobile.module.css.js +1 -1
- package/modern/typings.d.ts +2 -2
- package/moderncssm/Component.responsive.d.ts +11 -11
- package/moderncssm/Context.d.ts +0 -1
- package/moderncssm/components/content/Component.d.ts +1 -1
- package/moderncssm/components/content/Component.desktop.d.ts +1 -1
- package/moderncssm/components/content/Component.mobile.d.ts +1 -1
- package/moderncssm/components/footer/Component.d.ts +1 -1
- package/moderncssm/components/footer/Component.desktop.d.ts +1 -1
- package/moderncssm/components/footer/Component.mobile.d.ts +1 -1
- package/moderncssm/components/header/Component.d.ts +1 -1
- package/moderncssm/components/header/desktop.module.css +2 -1
- package/moderncssm/components/header/mobile.module.css +4 -2
- package/moderncssm/desktop/Component.desktop.d.ts +6 -6
- package/moderncssm/desktop/Component.desktop.js +3 -1
- package/moderncssm/desktop/Component.desktop.js.map +1 -1
- package/moderncssm/mobile/Component.mobile.d.ts +3 -3
- package/moderncssm/typings.d.ts +2 -2
- package/package.json +8 -8
- package/src/desktop/Component.desktop.tsx +3 -1
- package/src/vars.css +1 -1
- package/typings.d.ts +2 -2
|
@@ -10,8 +10,9 @@
|
|
|
10
10
|
--gap-10: 10px;
|
|
11
11
|
}
|
|
12
12
|
:root {
|
|
13
|
-
--font-family-
|
|
14
|
-
system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue',
|
|
13
|
+
--font-family-alfasans:
|
|
14
|
+
'Alfa Interface Sans', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue',
|
|
15
|
+
Helvetica, sans-serif;
|
|
15
16
|
}
|
|
16
17
|
:root {
|
|
17
18
|
--side-panel-header-mobile-content-paddings: var(--gap-10) var(--gap-8);
|
|
@@ -19,25 +20,27 @@
|
|
|
19
20
|
--side-panel-header-mobile-paddings: var(--side-panel-header-mobile-top-padding) var(--gap-8)
|
|
20
21
|
var(--gap-4) var(--gap-8);
|
|
21
22
|
}
|
|
22
|
-
.side-
|
|
23
|
+
.side-panel__header_1cxcs {
|
|
23
24
|
padding: var(--side-panel-header-mobile-paddings);
|
|
24
25
|
}
|
|
25
26
|
@media (display-mode: standalone) {
|
|
26
|
-
.side-
|
|
27
|
+
.side-panel__header_1cxcs {
|
|
27
28
|
padding-top: calc(var(--sat) + var(--side-panel-header-mobile-top-padding));
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
|
-
.side-
|
|
31
|
+
.side-panel__sticky_1cxcs {
|
|
31
32
|
top: var(--gap-0);
|
|
32
33
|
}
|
|
33
|
-
.side-
|
|
34
|
+
.side-panel__content_1cxcs {
|
|
34
35
|
padding: var(--side-panel-header-mobile-content-paddings);
|
|
35
36
|
|
|
36
37
|
font-size: 20px;
|
|
37
38
|
|
|
38
39
|
line-height: 28px;
|
|
39
40
|
|
|
40
|
-
font-weight:
|
|
41
|
+
font-weight: 500;
|
|
41
42
|
|
|
42
|
-
|
|
43
|
+
letter-spacing: -0.15px;
|
|
44
|
+
|
|
45
|
+
font-family: var(--font-family-alfasans);
|
|
43
46
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './mobile.css';
|
|
2
2
|
|
|
3
|
-
const mobileStyles = {"header":"side-
|
|
3
|
+
const mobileStyles = {"header":"side-panel__header_1cxcs","sticky":"side-panel__sticky_1cxcs","content":"side-panel__content_1cxcs"};
|
|
4
4
|
|
|
5
5
|
export { mobileStyles as default };
|
|
6
6
|
//# sourceMappingURL=mobile.module.css.js.map
|
|
@@ -5,7 +5,7 @@ import { ContentDesktop } from '../components/content/Component.desktop';
|
|
|
5
5
|
import { type ControlsProps } from '../components/controls';
|
|
6
6
|
import { FooterDesktop } from '../components/footer/Component.desktop';
|
|
7
7
|
import { type HeaderProps } from '../components/header/Component';
|
|
8
|
-
export
|
|
8
|
+
export type SidePanelDesktopProps = BaseModalProps & Pick<DrawerProps, 'placement' | 'nativeScrollbar' | 'contentTransitionProps'> & {
|
|
9
9
|
/**
|
|
10
10
|
* Ширина модального окна
|
|
11
11
|
* @default "s"
|
|
@@ -22,26 +22,26 @@ declare const SidePanelDesktopComponent: React.ForwardRefExoticComponent<BaseMod
|
|
|
22
22
|
* Ширина модального окна
|
|
23
23
|
* @default "s"
|
|
24
24
|
*/
|
|
25
|
-
size?: "s" | 500
|
|
25
|
+
size?: "s" | 500;
|
|
26
26
|
/**
|
|
27
27
|
* Управление наличием закрывающего крестика
|
|
28
28
|
* @default false
|
|
29
29
|
*/
|
|
30
|
-
hasCloser?: boolean
|
|
30
|
+
hasCloser?: boolean;
|
|
31
31
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
32
|
-
declare const HeaderDesktop: React.FC<Omit<HeaderProps, "
|
|
32
|
+
declare const HeaderDesktop: React.FC<Omit<HeaderProps, "titleSize" | "subtitle">>;
|
|
33
33
|
declare const ControlsDesktop: React.FC<Omit<ControlsProps, "mobileLayout">>;
|
|
34
34
|
declare const SidePanelDesktop: React.ForwardRefExoticComponent<BaseModalProps & Pick<DrawerProps, "placement" | "nativeScrollbar" | "contentTransitionProps"> & {
|
|
35
35
|
/**
|
|
36
36
|
* Ширина модального окна
|
|
37
37
|
* @default "s"
|
|
38
38
|
*/
|
|
39
|
-
size?: "s" | 500
|
|
39
|
+
size?: "s" | 500;
|
|
40
40
|
/**
|
|
41
41
|
* Управление наличием закрывающего крестика
|
|
42
42
|
* @default false
|
|
43
43
|
*/
|
|
44
|
-
hasCloser?: boolean
|
|
44
|
+
hasCloser?: boolean;
|
|
45
45
|
} & React.RefAttributes<HTMLDivElement>> & {
|
|
46
46
|
Content: React.FC<import("../components/content/Component.desktop").ContentDesktopProps>;
|
|
47
47
|
Header: React.FC<Omit<HeaderProps, "subtitle" | "titleSize">>;
|
|
@@ -34,7 +34,9 @@ const SidePanelDesktopComponent = forwardRef(({ size = 500, children, className,
|
|
|
34
34
|
exitDone: exitCn,
|
|
35
35
|
},
|
|
36
36
|
...contentTransitionProps,
|
|
37
|
-
} }, React.Children.map(children, (child) => isValidElement(child)
|
|
37
|
+
} }, React.Children.map(children, (child) => isValidElement(child)
|
|
38
|
+
? cloneElement(child, { size })
|
|
39
|
+
: child)));
|
|
38
40
|
const renderWithContext = () => (React.createElement(ResponsiveContext.Provider, { value: contextValue }, renderContent()));
|
|
39
41
|
return responsiveContext ? renderContent() : renderWithContext();
|
|
40
42
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.desktop.js","sources":["../../src/desktop/Component.desktop.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, useContext, useRef } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { type BaseModalProps } from '@alfalab/core-components-base-modal';\nimport { Drawer, type DrawerProps } from '@alfalab/core-components-drawer';\n\nimport { ContentDesktop } from '../components/content/Component.desktop';\nimport { Controls, type ControlsProps } from '../components/controls';\nimport { FooterDesktop } from '../components/footer/Component.desktop';\nimport { Header, type HeaderProps } from '../components/header/Component';\nimport { SIZE_TO_CLASSNAME_MAP } from '../consts';\nimport { ResponsiveContext } from '../ResponsiveContext';\nimport { type TResponsiveModalContext } from '../typings';\n\nimport styles from './desktop.module.css';\nimport transitions from './transitions.desktop.module.css';\n\nexport type SidePanelDesktopProps = BaseModalProps &\n Pick<DrawerProps, 'placement' | 'nativeScrollbar' | 'contentTransitionProps'> & {\n /**\n * Ширина модального окна\n * @default \"s\"\n */\n size?: 's' | 500;\n\n /**\n * Управление наличием закрывающего крестика\n * @default false\n */\n hasCloser?: boolean;\n };\n\nconst SidePanelDesktopComponent = forwardRef<HTMLDivElement, SidePanelDesktopProps>(\n (\n {\n size = 500,\n children,\n className,\n wrapperClassName,\n contentTransitionProps = {},\n backdropProps,\n placement = 'right',\n dataTestId,\n ...restProps\n },\n ref,\n ) => {\n const responsiveContext = useContext(ResponsiveContext);\n const modalRef = useRef<HTMLElement>(null);\n\n const enterCn = cn({\n [transitions.appearRight]: placement === 'right',\n [transitions.appearLeft]: placement === 'left',\n });\n\n const exitCn = cn({\n [transitions.exitActiveRight]: placement === 'right',\n [transitions.exitActiveLeft]: placement === 'left',\n });\n\n const contextValue = React.useMemo<TResponsiveModalContext>(\n () => ({ size, view: 'desktop', dataTestId }),\n [size, dataTestId],\n );\n\n const renderContent = () => (\n <Drawer\n {...restProps}\n dataTestId={dataTestId}\n ref={mergeRefs([ref, modalRef])}\n placement={placement}\n wrapperClassName={wrapperClassName}\n className={cn(className, styles[SIZE_TO_CLASSNAME_MAP[size]], styles.hidden)}\n backdropProps={backdropProps}\n contentTransitionProps={{\n classNames: {\n appear: enterCn,\n enter: enterCn,\n appearActive: transitions.enterActive,\n enterActive: transitions.enterActive,\n exit: transitions.exit,\n exitActive: exitCn,\n exitDone: exitCn,\n },\n ...contentTransitionProps,\n }}\n >\n {React.Children.map(children, (child) =>\n isValidElement(child)
|
|
1
|
+
{"version":3,"file":"Component.desktop.js","sources":["../../src/desktop/Component.desktop.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, useContext, useRef } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { type BaseModalProps } from '@alfalab/core-components-base-modal';\nimport { Drawer, type DrawerProps } from '@alfalab/core-components-drawer';\n\nimport { ContentDesktop } from '../components/content/Component.desktop';\nimport { Controls, type ControlsProps } from '../components/controls';\nimport { FooterDesktop } from '../components/footer/Component.desktop';\nimport { Header, type HeaderProps } from '../components/header/Component';\nimport { SIZE_TO_CLASSNAME_MAP } from '../consts';\nimport { ResponsiveContext } from '../ResponsiveContext';\nimport { type TResponsiveModalContext } from '../typings';\n\nimport styles from './desktop.module.css';\nimport transitions from './transitions.desktop.module.css';\n\nexport type SidePanelDesktopProps = BaseModalProps &\n Pick<DrawerProps, 'placement' | 'nativeScrollbar' | 'contentTransitionProps'> & {\n /**\n * Ширина модального окна\n * @default \"s\"\n */\n size?: 's' | 500;\n\n /**\n * Управление наличием закрывающего крестика\n * @default false\n */\n hasCloser?: boolean;\n };\n\nconst SidePanelDesktopComponent = forwardRef<HTMLDivElement, SidePanelDesktopProps>(\n (\n {\n size = 500,\n children,\n className,\n wrapperClassName,\n contentTransitionProps = {},\n backdropProps,\n placement = 'right',\n dataTestId,\n ...restProps\n },\n ref,\n ) => {\n const responsiveContext = useContext(ResponsiveContext);\n const modalRef = useRef<HTMLElement>(null);\n\n const enterCn = cn({\n [transitions.appearRight]: placement === 'right',\n [transitions.appearLeft]: placement === 'left',\n });\n\n const exitCn = cn({\n [transitions.exitActiveRight]: placement === 'right',\n [transitions.exitActiveLeft]: placement === 'left',\n });\n\n const contextValue = React.useMemo<TResponsiveModalContext>(\n () => ({ size, view: 'desktop', dataTestId }),\n [size, dataTestId],\n );\n\n const renderContent = () => (\n <Drawer\n {...restProps}\n dataTestId={dataTestId}\n ref={mergeRefs([ref, modalRef])}\n placement={placement}\n wrapperClassName={wrapperClassName}\n className={cn(className, styles[SIZE_TO_CLASSNAME_MAP[size]], styles.hidden)}\n backdropProps={backdropProps}\n contentTransitionProps={{\n classNames: {\n appear: enterCn,\n enter: enterCn,\n appearActive: transitions.enterActive,\n enterActive: transitions.enterActive,\n exit: transitions.exit,\n exitActive: exitCn,\n exitDone: exitCn,\n },\n ...contentTransitionProps,\n }}\n >\n {React.Children.map(children, (child) =>\n isValidElement<{ size: unknown }>(child)\n ? cloneElement(child, { size })\n : child,\n )}\n </Drawer>\n );\n\n const renderWithContext = () => (\n <ResponsiveContext.Provider value={contextValue}>\n {renderContent()}\n </ResponsiveContext.Provider>\n );\n\n return responsiveContext ? renderContent() : renderWithContext();\n },\n);\n\nconst HeaderDesktop = Header as React.FC<Omit<HeaderProps, 'titleSize' | 'subtitle'>>;\nconst ControlsDesktop = Controls as React.FC<Omit<ControlsProps, 'mobileLayout'>>;\n\nconst SidePanelDesktop = Object.assign(SidePanelDesktopComponent, {\n Content: ContentDesktop,\n Header: HeaderDesktop,\n Footer: FooterDesktop,\n Controls: ControlsDesktop,\n});\n\nexport {\n SidePanelDesktop,\n SidePanelDesktopComponent as SidePanelComponentDesktop,\n ContentDesktop,\n HeaderDesktop,\n FooterDesktop,\n ControlsDesktop,\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAiCA,MAAM,yBAAyB,GAAG,UAAU,CACxC,CACI,EACI,IAAI,GAAG,GAAG,EACV,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,sBAAsB,GAAG,EAAE,EAC3B,aAAa,EACb,SAAS,GAAG,OAAO,EACnB,UAAU,EACV,GAAG,SAAS,EACf,EACD,GAAG,KACH;AACA,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;AACvD,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAc,IAAI,CAAC;IAE1C,MAAM,OAAO,GAAG,EAAE,CAAC;AACf,QAAA,CAAC,WAAW,CAAC,WAAW,GAAG,SAAS,KAAK,OAAO;AAChD,QAAA,CAAC,WAAW,CAAC,UAAU,GAAG,SAAS,KAAK,MAAM;AACjD,KAAA,CAAC;IAEF,MAAM,MAAM,GAAG,EAAE,CAAC;AACd,QAAA,CAAC,WAAW,CAAC,eAAe,GAAG,SAAS,KAAK,OAAO;AACpD,QAAA,CAAC,WAAW,CAAC,cAAc,GAAG,SAAS,KAAK,MAAM;AACrD,KAAA,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAC9B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAC7C,CAAC,IAAI,EAAE,UAAU,CAAC,CACrB;IAED,MAAM,aAAa,GAAG,OAClB,KAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EAAA,GACC,SAAS,EACb,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAC/B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAC5E,aAAa,EAAE,aAAa,EAC5B,sBAAsB,EAAE;AACpB,YAAA,UAAU,EAAE;AACR,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,KAAK,EAAE,OAAO;gBACd,YAAY,EAAE,WAAW,CAAC,WAAW;gBACrC,WAAW,EAAE,WAAW,CAAC,WAAW;gBACpC,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,QAAQ,EAAE,MAAM;AACnB,aAAA;AACD,YAAA,GAAG,sBAAsB;AAC5B,SAAA,EAAA,EAEA,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,KAChC,cAAc,CAAoB,KAAK;UACjC,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE;AAC9B,UAAE,KAAK,CACd,CACI,CACZ;AAED,IAAA,MAAM,iBAAiB,GAAG,OACtB,oBAAC,iBAAiB,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,YAAY,EAAA,EAC1C,aAAa,EAAE,CACS,CAChC;IAED,OAAO,iBAAiB,GAAG,aAAa,EAAE,GAAG,iBAAiB,EAAE;AACpE,CAAC;AAGC,MAAA,aAAa,GAAG;AAChB,MAAA,eAAe,GAAG;AAExB,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE;AAC9D,IAAA,OAAO,EAAE,cAAc;AACvB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,QAAQ,EAAE,eAAe;AAC5B,CAAA;;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
--side-panel-s-width: 500px;
|
|
3
3
|
}
|
|
4
|
-
.side-panel__size-
|
|
4
|
+
.side-panel__size-500_1tea1.side-panel__size-500_1tea1 {
|
|
5
5
|
width: var(--side-panel-s-width);
|
|
6
6
|
}
|
|
7
|
-
.side-
|
|
7
|
+
.side-panel__hidden_1tea1 {
|
|
8
8
|
overflow-x: hidden;
|
|
9
9
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './desktop.css';
|
|
2
2
|
|
|
3
|
-
const styles = {"size-500":"side-panel__size-
|
|
3
|
+
const styles = {"size-500":"side-panel__size-500_1tea1","hidden":"side-panel__hidden_1tea1"};
|
|
4
4
|
|
|
5
5
|
export { styles as default };
|
|
6
6
|
//# sourceMappingURL=desktop.module.css.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
.side-
|
|
1
|
+
.side-panel__enterRight_w8pr1 {
|
|
2
2
|
opacity: 0;
|
|
3
3
|
transform: translateX(15px);
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
-
.side-
|
|
6
|
+
.side-panel__enterLeft_w8pr1 {
|
|
7
7
|
opacity: 0;
|
|
8
8
|
transform: translateX(-15px);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
.side-
|
|
11
|
+
.side-panel__enterActive_w8pr1 {
|
|
12
12
|
opacity: 1;
|
|
13
13
|
transform: translateX(0);
|
|
14
14
|
transition:
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
transform 200ms ease-in;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
.side-
|
|
19
|
+
.side-panel__exit_w8pr1 {
|
|
20
20
|
opacity: 1;
|
|
21
21
|
transform: translateX(0);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
.side-
|
|
24
|
+
.side-panel__exitActiveRight_w8pr1 {
|
|
25
25
|
opacity: 0;
|
|
26
26
|
transition:
|
|
27
27
|
opacity 200ms ease-out,
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
transform: translateX(15px);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
.side-
|
|
32
|
+
.side-panel__exitActiveLeft_w8pr1 {
|
|
33
33
|
opacity: 0;
|
|
34
34
|
transition:
|
|
35
35
|
opacity 200ms ease-out,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './transitions.desktop.css';
|
|
2
2
|
|
|
3
|
-
const transitions = {"enterActive":"side-
|
|
3
|
+
const transitions = {"enterActive":"side-panel__enterActive_w8pr1","exit":"side-panel__exit_w8pr1","exitActiveRight":"side-panel__exitActiveRight_w8pr1","exitActiveLeft":"side-panel__exitActiveLeft_w8pr1"};
|
|
4
4
|
|
|
5
5
|
export { transitions as default };
|
|
6
6
|
//# sourceMappingURL=transitions.desktop.module.css.js.map
|
|
@@ -4,7 +4,7 @@ import { ContentMobile } from '../components/content/Component.mobile';
|
|
|
4
4
|
import { type ControlsProps } from '../components/controls';
|
|
5
5
|
import { FooterMobile } from '../components/footer/Component.mobile';
|
|
6
6
|
import { Header } from '../components/header/Component';
|
|
7
|
-
export
|
|
7
|
+
export type SidePanelMobileProps = BaseModalProps & {
|
|
8
8
|
/**
|
|
9
9
|
* Управление наличием закрывающего крестика
|
|
10
10
|
* @default false
|
|
@@ -16,7 +16,7 @@ declare const SidePanelMobileComponent: React.ForwardRefExoticComponent<BaseModa
|
|
|
16
16
|
* Управление наличием закрывающего крестика
|
|
17
17
|
* @default false
|
|
18
18
|
*/
|
|
19
|
-
hasCloser?: boolean
|
|
19
|
+
hasCloser?: boolean;
|
|
20
20
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
21
21
|
declare const ControlsMobile: React.FC<Omit<ControlsProps, "mobileLayout">>;
|
|
22
22
|
declare const SidePanelMobile: React.ForwardRefExoticComponent<BaseModalProps & {
|
|
@@ -24,7 +24,7 @@ declare const SidePanelMobile: React.ForwardRefExoticComponent<BaseModalProps &
|
|
|
24
24
|
* Управление наличием закрывающего крестика
|
|
25
25
|
* @default false
|
|
26
26
|
*/
|
|
27
|
-
hasCloser?: boolean
|
|
27
|
+
hasCloser?: boolean;
|
|
28
28
|
} & React.RefAttributes<HTMLDivElement>> & {
|
|
29
29
|
Content: React.FC<import("../components/content/Component").ContentProps>;
|
|
30
30
|
Header: React.FC<import("../components/header/Component").HeaderProps>;
|
package/modern/mobile/mobile.css
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
:root {
|
|
6
6
|
--gap-0: 0px;
|
|
7
7
|
}
|
|
8
|
-
.side-
|
|
8
|
+
.side-panel__component_wlnew {
|
|
9
9
|
top: var(--gap-0);
|
|
10
10
|
height: 100%;
|
|
11
11
|
width: 100%;
|
|
@@ -13,17 +13,17 @@
|
|
|
13
13
|
overflow-y: auto;
|
|
14
14
|
max-width: 600px;
|
|
15
15
|
}
|
|
16
|
-
.side-
|
|
16
|
+
.side-panel__component_wlnew.side-panel__component_wlnew {
|
|
17
17
|
position: fixed;
|
|
18
18
|
flex: 1;
|
|
19
19
|
}
|
|
20
20
|
@media (display-mode: standalone) {
|
|
21
|
-
.side-
|
|
21
|
+
.side-panel__content_wlnew {
|
|
22
22
|
padding-top: var(--sat);
|
|
23
23
|
padding-bottom: var(--sab);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
.side-
|
|
26
|
+
.side-panel__mobileContent_wlnew {
|
|
27
27
|
display: flex;
|
|
28
28
|
flex-direction: column;
|
|
29
29
|
width: 100%;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './mobile.css';
|
|
2
2
|
|
|
3
|
-
const styles = {"component":"side-
|
|
3
|
+
const styles = {"component":"side-panel__component_wlnew","content":"side-panel__content_wlnew","mobileContent":"side-panel__mobileContent_wlnew"};
|
|
4
4
|
|
|
5
5
|
export { styles as default };
|
|
6
6
|
//# sourceMappingURL=mobile.module.css.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
.side-
|
|
2
|
-
.side-
|
|
1
|
+
.side-panel__appear_1m6ft,
|
|
2
|
+
.side-panel__enter_1m6ft {
|
|
3
3
|
opacity: 0;
|
|
4
4
|
transform: translateY(15px);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
.side-
|
|
8
|
-
.side-
|
|
7
|
+
.side-panel__appearActive_1m6ft,
|
|
8
|
+
.side-panel__enterActive_1m6ft {
|
|
9
9
|
opacity: 1;
|
|
10
10
|
transform: translateY(0);
|
|
11
11
|
transition:
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
transform 200ms ease-in;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
.side-
|
|
16
|
+
.side-panel__exit_1m6ft {
|
|
17
17
|
opacity: 1;
|
|
18
18
|
transform: translateY(0);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
.side-
|
|
22
|
-
.side-
|
|
21
|
+
.side-panel__exitActive_1m6ft,
|
|
22
|
+
.side-panel__exitDone_1m6ft {
|
|
23
23
|
opacity: 0;
|
|
24
24
|
transform: translateY(15px);
|
|
25
25
|
transition:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './transitions.mobile.css';
|
|
2
2
|
|
|
3
|
-
const transitions = {"appear":"side-
|
|
3
|
+
const transitions = {"appear":"side-panel__appear_1m6ft","enter":"side-panel__enter_1m6ft","appearActive":"side-panel__appearActive_1m6ft","enterActive":"side-panel__enterActive_1m6ft","exit":"side-panel__exit_1m6ft","exitActive":"side-panel__exitActive_1m6ft","exitDone":"side-panel__exitDone_1m6ft"};
|
|
4
4
|
|
|
5
5
|
export { transitions as default };
|
|
6
6
|
//# sourceMappingURL=transitions.mobile.module.css.js.map
|
package/modern/typings.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { type BaseModalProps } from '@alfalab/core-components-base-modal/modernc
|
|
|
3
3
|
import { type DrawerProps } from '@alfalab/core-components-drawer/moderncssm';
|
|
4
4
|
import { Controls } from './components/controls';
|
|
5
5
|
import { Header } from './components/header/Component';
|
|
6
|
-
export
|
|
6
|
+
export type SidePanelResponsiveProps = BaseModalProps & Pick<DrawerProps, 'contentTransitionProps' | 'placement' | 'nativeScrollbar'> & {
|
|
7
7
|
/**
|
|
8
8
|
* Ширина модального окна
|
|
9
9
|
* @default "s"
|
|
@@ -34,26 +34,26 @@ declare const SidePanelResponsiveComponent: React.ForwardRefExoticComponent<Base
|
|
|
34
34
|
* Ширина модального окна
|
|
35
35
|
* @default "s"
|
|
36
36
|
*/
|
|
37
|
-
size?: "s" | 500
|
|
37
|
+
size?: "s" | 500;
|
|
38
38
|
/**
|
|
39
39
|
* Управление наличием закрывающего крестика
|
|
40
40
|
* @default false
|
|
41
41
|
*/
|
|
42
|
-
hasCloser?: boolean
|
|
42
|
+
hasCloser?: boolean;
|
|
43
43
|
/**
|
|
44
44
|
* Контрольная точка, с нее начинается desktop версия
|
|
45
45
|
* @default 1024
|
|
46
46
|
*/
|
|
47
|
-
breakpoint?: number
|
|
47
|
+
breakpoint?: number;
|
|
48
48
|
/**
|
|
49
49
|
* Версия, которая будет использоваться при серверном рендеринге
|
|
50
50
|
*/
|
|
51
|
-
client?: "desktop" | "mobile"
|
|
51
|
+
client?: "desktop" | "mobile";
|
|
52
52
|
/**
|
|
53
53
|
* Значение по-умолчанию для хука useMatchMedia
|
|
54
54
|
* @deprecated Используйте client
|
|
55
55
|
*/
|
|
56
|
-
defaultMatchMediaValue?: boolean | (() => boolean)
|
|
56
|
+
defaultMatchMediaValue?: boolean | (() => boolean);
|
|
57
57
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
58
58
|
declare const ContentResponsive: React.FC<import("./components/content/Component").ContentProps> | React.FC<import("./components/content/Component.desktop").ContentDesktopProps>;
|
|
59
59
|
declare const FooterResponsive: React.FC<import("./components/footer/Component").FooterProps> | React.FC<import("./components/footer/Component.desktop").FooterDesktopProps>;
|
|
@@ -63,26 +63,26 @@ declare const SidePanelResponsive: React.ForwardRefExoticComponent<BaseModalProp
|
|
|
63
63
|
* Ширина модального окна
|
|
64
64
|
* @default "s"
|
|
65
65
|
*/
|
|
66
|
-
size?: "s" | 500
|
|
66
|
+
size?: "s" | 500;
|
|
67
67
|
/**
|
|
68
68
|
* Управление наличием закрывающего крестика
|
|
69
69
|
* @default false
|
|
70
70
|
*/
|
|
71
|
-
hasCloser?: boolean
|
|
71
|
+
hasCloser?: boolean;
|
|
72
72
|
/**
|
|
73
73
|
* Контрольная точка, с нее начинается desktop версия
|
|
74
74
|
* @default 1024
|
|
75
75
|
*/
|
|
76
|
-
breakpoint?: number
|
|
76
|
+
breakpoint?: number;
|
|
77
77
|
/**
|
|
78
78
|
* Версия, которая будет использоваться при серверном рендеринге
|
|
79
79
|
*/
|
|
80
|
-
client?: "desktop" | "mobile"
|
|
80
|
+
client?: "desktop" | "mobile";
|
|
81
81
|
/**
|
|
82
82
|
* Значение по-умолчанию для хука useMatchMedia
|
|
83
83
|
* @deprecated Используйте client
|
|
84
84
|
*/
|
|
85
|
-
defaultMatchMediaValue?: boolean | (() => boolean)
|
|
85
|
+
defaultMatchMediaValue?: boolean | (() => boolean);
|
|
86
86
|
} & React.RefAttributes<HTMLDivElement>> & {
|
|
87
87
|
Header: React.FC<import("./components/header/Component").HeaderProps>;
|
|
88
88
|
Controls: React.FC<import("./components/controls").ControlsProps>;
|
package/moderncssm/Context.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { type FC } from 'react';
|
|
2
2
|
import { type NavigationBarPrivateProps } from '@alfalab/core-components-navigation-bar-private/moderncssm';
|
|
3
|
-
export
|
|
3
|
+
export type HeaderProps = Omit<NavigationBarPrivateProps, 'size' | 'view' | 'parentRef'>;
|
|
4
4
|
export declare const Header: FC<HeaderProps>;
|
|
@@ -5,7 +5,7 @@ import { ContentDesktop } from '../components/content/Component.desktop';
|
|
|
5
5
|
import { type ControlsProps } from '../components/controls';
|
|
6
6
|
import { FooterDesktop } from '../components/footer/Component.desktop';
|
|
7
7
|
import { type HeaderProps } from '../components/header/Component';
|
|
8
|
-
export
|
|
8
|
+
export type SidePanelDesktopProps = BaseModalProps & Pick<DrawerProps, 'placement' | 'nativeScrollbar' | 'contentTransitionProps'> & {
|
|
9
9
|
/**
|
|
10
10
|
* Ширина модального окна
|
|
11
11
|
* @default "s"
|
|
@@ -22,26 +22,26 @@ declare const SidePanelDesktopComponent: React.ForwardRefExoticComponent<BaseMod
|
|
|
22
22
|
* Ширина модального окна
|
|
23
23
|
* @default "s"
|
|
24
24
|
*/
|
|
25
|
-
size?: "s" | 500
|
|
25
|
+
size?: "s" | 500;
|
|
26
26
|
/**
|
|
27
27
|
* Управление наличием закрывающего крестика
|
|
28
28
|
* @default false
|
|
29
29
|
*/
|
|
30
|
-
hasCloser?: boolean
|
|
30
|
+
hasCloser?: boolean;
|
|
31
31
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
32
|
-
declare const HeaderDesktop: React.FC<Omit<HeaderProps, "
|
|
32
|
+
declare const HeaderDesktop: React.FC<Omit<HeaderProps, "titleSize" | "subtitle">>;
|
|
33
33
|
declare const ControlsDesktop: React.FC<Omit<ControlsProps, "mobileLayout">>;
|
|
34
34
|
declare const SidePanelDesktop: React.ForwardRefExoticComponent<BaseModalProps & Pick<DrawerProps, "placement" | "nativeScrollbar" | "contentTransitionProps"> & {
|
|
35
35
|
/**
|
|
36
36
|
* Ширина модального окна
|
|
37
37
|
* @default "s"
|
|
38
38
|
*/
|
|
39
|
-
size?: "s" | 500
|
|
39
|
+
size?: "s" | 500;
|
|
40
40
|
/**
|
|
41
41
|
* Управление наличием закрывающего крестика
|
|
42
42
|
* @default false
|
|
43
43
|
*/
|
|
44
|
-
hasCloser?: boolean
|
|
44
|
+
hasCloser?: boolean;
|
|
45
45
|
} & React.RefAttributes<HTMLDivElement>> & {
|
|
46
46
|
Content: React.FC<import("../components/content/Component.desktop").ContentDesktopProps>;
|
|
47
47
|
Header: React.FC<Omit<HeaderProps, "subtitle" | "titleSize">>;
|
|
@@ -34,7 +34,9 @@ const SidePanelDesktopComponent = forwardRef(({ size = 500, children, className,
|
|
|
34
34
|
exitDone: exitCn,
|
|
35
35
|
},
|
|
36
36
|
...contentTransitionProps,
|
|
37
|
-
} }, React.Children.map(children, (child) => isValidElement(child)
|
|
37
|
+
} }, React.Children.map(children, (child) => isValidElement(child)
|
|
38
|
+
? cloneElement(child, { size })
|
|
39
|
+
: child)));
|
|
38
40
|
const renderWithContext = () => (React.createElement(ResponsiveContext.Provider, { value: contextValue }, renderContent()));
|
|
39
41
|
return responsiveContext ? renderContent() : renderWithContext();
|
|
40
42
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.desktop.js","sources":["../../src/desktop/Component.desktop.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, useContext, useRef } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { type BaseModalProps } from '@alfalab/core-components-base-modal';\nimport { Drawer, type DrawerProps } from '@alfalab/core-components-drawer';\n\nimport { ContentDesktop } from '../components/content/Component.desktop';\nimport { Controls, type ControlsProps } from '../components/controls';\nimport { FooterDesktop } from '../components/footer/Component.desktop';\nimport { Header, type HeaderProps } from '../components/header/Component';\nimport { SIZE_TO_CLASSNAME_MAP } from '../consts';\nimport { ResponsiveContext } from '../ResponsiveContext';\nimport { type TResponsiveModalContext } from '../typings';\n\nimport styles from './desktop.module.css';\nimport transitions from './transitions.desktop.module.css';\n\nexport type SidePanelDesktopProps = BaseModalProps &\n Pick<DrawerProps, 'placement' | 'nativeScrollbar' | 'contentTransitionProps'> & {\n /**\n * Ширина модального окна\n * @default \"s\"\n */\n size?: 's' | 500;\n\n /**\n * Управление наличием закрывающего крестика\n * @default false\n */\n hasCloser?: boolean;\n };\n\nconst SidePanelDesktopComponent = forwardRef<HTMLDivElement, SidePanelDesktopProps>(\n (\n {\n size = 500,\n children,\n className,\n wrapperClassName,\n contentTransitionProps = {},\n backdropProps,\n placement = 'right',\n dataTestId,\n ...restProps\n },\n ref,\n ) => {\n const responsiveContext = useContext(ResponsiveContext);\n const modalRef = useRef<HTMLElement>(null);\n\n const enterCn = cn({\n [transitions.appearRight]: placement === 'right',\n [transitions.appearLeft]: placement === 'left',\n });\n\n const exitCn = cn({\n [transitions.exitActiveRight]: placement === 'right',\n [transitions.exitActiveLeft]: placement === 'left',\n });\n\n const contextValue = React.useMemo<TResponsiveModalContext>(\n () => ({ size, view: 'desktop', dataTestId }),\n [size, dataTestId],\n );\n\n const renderContent = () => (\n <Drawer\n {...restProps}\n dataTestId={dataTestId}\n ref={mergeRefs([ref, modalRef])}\n placement={placement}\n wrapperClassName={wrapperClassName}\n className={cn(className, styles[SIZE_TO_CLASSNAME_MAP[size]], styles.hidden)}\n backdropProps={backdropProps}\n contentTransitionProps={{\n classNames: {\n appear: enterCn,\n enter: enterCn,\n appearActive: transitions.enterActive,\n enterActive: transitions.enterActive,\n exit: transitions.exit,\n exitActive: exitCn,\n exitDone: exitCn,\n },\n ...contentTransitionProps,\n }}\n >\n {React.Children.map(children, (child) =>\n isValidElement(child)
|
|
1
|
+
{"version":3,"file":"Component.desktop.js","sources":["../../src/desktop/Component.desktop.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, useContext, useRef } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { type BaseModalProps } from '@alfalab/core-components-base-modal';\nimport { Drawer, type DrawerProps } from '@alfalab/core-components-drawer';\n\nimport { ContentDesktop } from '../components/content/Component.desktop';\nimport { Controls, type ControlsProps } from '../components/controls';\nimport { FooterDesktop } from '../components/footer/Component.desktop';\nimport { Header, type HeaderProps } from '../components/header/Component';\nimport { SIZE_TO_CLASSNAME_MAP } from '../consts';\nimport { ResponsiveContext } from '../ResponsiveContext';\nimport { type TResponsiveModalContext } from '../typings';\n\nimport styles from './desktop.module.css';\nimport transitions from './transitions.desktop.module.css';\n\nexport type SidePanelDesktopProps = BaseModalProps &\n Pick<DrawerProps, 'placement' | 'nativeScrollbar' | 'contentTransitionProps'> & {\n /**\n * Ширина модального окна\n * @default \"s\"\n */\n size?: 's' | 500;\n\n /**\n * Управление наличием закрывающего крестика\n * @default false\n */\n hasCloser?: boolean;\n };\n\nconst SidePanelDesktopComponent = forwardRef<HTMLDivElement, SidePanelDesktopProps>(\n (\n {\n size = 500,\n children,\n className,\n wrapperClassName,\n contentTransitionProps = {},\n backdropProps,\n placement = 'right',\n dataTestId,\n ...restProps\n },\n ref,\n ) => {\n const responsiveContext = useContext(ResponsiveContext);\n const modalRef = useRef<HTMLElement>(null);\n\n const enterCn = cn({\n [transitions.appearRight]: placement === 'right',\n [transitions.appearLeft]: placement === 'left',\n });\n\n const exitCn = cn({\n [transitions.exitActiveRight]: placement === 'right',\n [transitions.exitActiveLeft]: placement === 'left',\n });\n\n const contextValue = React.useMemo<TResponsiveModalContext>(\n () => ({ size, view: 'desktop', dataTestId }),\n [size, dataTestId],\n );\n\n const renderContent = () => (\n <Drawer\n {...restProps}\n dataTestId={dataTestId}\n ref={mergeRefs([ref, modalRef])}\n placement={placement}\n wrapperClassName={wrapperClassName}\n className={cn(className, styles[SIZE_TO_CLASSNAME_MAP[size]], styles.hidden)}\n backdropProps={backdropProps}\n contentTransitionProps={{\n classNames: {\n appear: enterCn,\n enter: enterCn,\n appearActive: transitions.enterActive,\n enterActive: transitions.enterActive,\n exit: transitions.exit,\n exitActive: exitCn,\n exitDone: exitCn,\n },\n ...contentTransitionProps,\n }}\n >\n {React.Children.map(children, (child) =>\n isValidElement<{ size: unknown }>(child)\n ? cloneElement(child, { size })\n : child,\n )}\n </Drawer>\n );\n\n const renderWithContext = () => (\n <ResponsiveContext.Provider value={contextValue}>\n {renderContent()}\n </ResponsiveContext.Provider>\n );\n\n return responsiveContext ? renderContent() : renderWithContext();\n },\n);\n\nconst HeaderDesktop = Header as React.FC<Omit<HeaderProps, 'titleSize' | 'subtitle'>>;\nconst ControlsDesktop = Controls as React.FC<Omit<ControlsProps, 'mobileLayout'>>;\n\nconst SidePanelDesktop = Object.assign(SidePanelDesktopComponent, {\n Content: ContentDesktop,\n Header: HeaderDesktop,\n Footer: FooterDesktop,\n Controls: ControlsDesktop,\n});\n\nexport {\n SidePanelDesktop,\n SidePanelDesktopComponent as SidePanelComponentDesktop,\n ContentDesktop,\n HeaderDesktop,\n FooterDesktop,\n ControlsDesktop,\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAiCA,MAAM,yBAAyB,GAAG,UAAU,CACxC,CACI,EACI,IAAI,GAAG,GAAG,EACV,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,sBAAsB,GAAG,EAAE,EAC3B,aAAa,EACb,SAAS,GAAG,OAAO,EACnB,UAAU,EACV,GAAG,SAAS,EACf,EACD,GAAG,KACH;AACA,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;AACvD,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAc,IAAI,CAAC;IAE1C,MAAM,OAAO,GAAG,EAAE,CAAC;AACf,QAAA,CAAC,WAAW,CAAC,WAAW,GAAG,SAAS,KAAK,OAAO;AAChD,QAAA,CAAC,WAAW,CAAC,UAAU,GAAG,SAAS,KAAK,MAAM;AACjD,KAAA,CAAC;IAEF,MAAM,MAAM,GAAG,EAAE,CAAC;AACd,QAAA,CAAC,WAAW,CAAC,eAAe,GAAG,SAAS,KAAK,OAAO;AACpD,QAAA,CAAC,WAAW,CAAC,cAAc,GAAG,SAAS,KAAK,MAAM;AACrD,KAAA,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAC9B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAC7C,CAAC,IAAI,EAAE,UAAU,CAAC,CACrB;IAED,MAAM,aAAa,GAAG,OAClB,KAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EAAA,GACC,SAAS,EACb,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAC/B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAC5E,aAAa,EAAE,aAAa,EAC5B,sBAAsB,EAAE;AACpB,YAAA,UAAU,EAAE;AACR,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,KAAK,EAAE,OAAO;gBACd,YAAY,EAAE,WAAW,CAAC,WAAW;gBACrC,WAAW,EAAE,WAAW,CAAC,WAAW;gBACpC,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,QAAQ,EAAE,MAAM;AACnB,aAAA;AACD,YAAA,GAAG,sBAAsB;AAC5B,SAAA,EAAA,EAEA,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,KAChC,cAAc,CAAoB,KAAK;UACjC,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE;AAC9B,UAAE,KAAK,CACd,CACI,CACZ;AAED,IAAA,MAAM,iBAAiB,GAAG,OACtB,oBAAC,iBAAiB,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,YAAY,EAAA,EAC1C,aAAa,EAAE,CACS,CAChC;IAED,OAAO,iBAAiB,GAAG,aAAa,EAAE,GAAG,iBAAiB,EAAE;AACpE,CAAC;AAGC,MAAA,aAAa,GAAG;AAChB,MAAA,eAAe,GAAG;AAExB,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE;AAC9D,IAAA,OAAO,EAAE,cAAc;AACvB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,QAAQ,EAAE,eAAe;AAC5B,CAAA;;;;"}
|
|
@@ -4,7 +4,7 @@ import { ContentMobile } from '../components/content/Component.mobile';
|
|
|
4
4
|
import { type ControlsProps } from '../components/controls';
|
|
5
5
|
import { FooterMobile } from '../components/footer/Component.mobile';
|
|
6
6
|
import { Header } from '../components/header/Component';
|
|
7
|
-
export
|
|
7
|
+
export type SidePanelMobileProps = BaseModalProps & {
|
|
8
8
|
/**
|
|
9
9
|
* Управление наличием закрывающего крестика
|
|
10
10
|
* @default false
|
|
@@ -16,7 +16,7 @@ declare const SidePanelMobileComponent: React.ForwardRefExoticComponent<BaseModa
|
|
|
16
16
|
* Управление наличием закрывающего крестика
|
|
17
17
|
* @default false
|
|
18
18
|
*/
|
|
19
|
-
hasCloser?: boolean
|
|
19
|
+
hasCloser?: boolean;
|
|
20
20
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
21
21
|
declare const ControlsMobile: React.FC<Omit<ControlsProps, "mobileLayout">>;
|
|
22
22
|
declare const SidePanelMobile: React.ForwardRefExoticComponent<BaseModalProps & {
|
|
@@ -24,7 +24,7 @@ declare const SidePanelMobile: React.ForwardRefExoticComponent<BaseModalProps &
|
|
|
24
24
|
* Управление наличием закрывающего крестика
|
|
25
25
|
* @default false
|
|
26
26
|
*/
|
|
27
|
-
hasCloser?: boolean
|
|
27
|
+
hasCloser?: boolean;
|
|
28
28
|
} & React.RefAttributes<HTMLDivElement>> & {
|
|
29
29
|
Content: React.FC<import("../components/content/Component").ContentProps>;
|
|
30
30
|
Header: React.FC<import("../components/header/Component").HeaderProps>;
|
package/moderncssm/typings.d.ts
CHANGED