@alfalab/core-components-side-panel 6.0.1 → 6.0.3
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 +2 -2
- package/Component.responsive.js.map +1 -1
- package/Context.js.map +1 -1
- package/ResponsiveContext.d.ts +1 -1
- package/ResponsiveContext.js.map +1 -1
- package/components/content/Component.d.ts +1 -1
- package/components/content/Component.desktop.d.ts +2 -2
- package/components/content/Component.desktop.js.map +1 -1
- package/components/content/Component.js.map +1 -1
- package/components/content/Component.mobile.d.ts +2 -2
- package/components/content/Component.mobile.js.map +1 -1
- package/components/content/desktop.css +3 -3
- package/components/content/desktop.module.css.js +1 -1
- package/components/content/index.css +4 -4
- package/components/content/index.module.css.js +1 -1
- package/components/content/mobile.css +3 -3
- package/components/content/mobile.module.css.js +1 -1
- package/components/controls/Component.d.ts +1 -1
- package/components/controls/Component.js.map +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 +2 -2
- package/components/footer/Component.desktop.js.map +1 -1
- package/components/footer/Component.js +3 -0
- package/components/footer/Component.js.map +1 -1
- package/components/footer/Component.mobile.d.ts +2 -2
- package/components/footer/Component.mobile.js.map +1 -1
- package/components/footer/desktop.css +2 -2
- package/components/footer/desktop.module.css.js +1 -1
- package/components/footer/index.css +6 -4
- package/components/footer/index.module.css.js +1 -1
- package/components/footer/index.module.css.js.map +1 -1
- package/components/footer/layout.css +19 -19
- package/components/footer/layout.module.css.js +1 -1
- package/components/footer/mobile.css +5 -5
- package/components/footer/mobile.module.css.js +1 -1
- package/components/header/Component.d.ts +2 -2
- package/components/header/Component.js.map +1 -1
- package/components/header/desktop.css +6 -6
- package/components/header/desktop.module.css.js +1 -1
- package/components/header/index.css +18 -16
- package/components/header/index.module.css.js +1 -1
- package/components/header/index.module.css.js.map +1 -1
- package/components/header/mobile.css +8 -8
- package/components/header/mobile.module.css.js +1 -1
- package/cssm/Component.responsive.d.ts +2 -2
- package/cssm/Component.responsive.js.map +1 -1
- package/cssm/Context.js.map +1 -1
- package/cssm/ResponsiveContext.d.ts +1 -1
- package/cssm/ResponsiveContext.js.map +1 -1
- package/cssm/components/content/Component.d.ts +1 -1
- package/cssm/components/content/Component.desktop.d.ts +2 -2
- package/cssm/components/content/Component.desktop.js.map +1 -1
- package/cssm/components/content/Component.js.map +1 -1
- package/cssm/components/content/Component.mobile.d.ts +2 -2
- package/cssm/components/content/Component.mobile.js.map +1 -1
- package/cssm/components/content/desktop.module.css +1 -1
- package/cssm/components/content/index.module.css +1 -1
- package/cssm/components/content/mobile.module.css +1 -1
- package/cssm/components/controls/Component.d.ts +1 -1
- package/cssm/components/controls/Component.js.map +1 -1
- package/cssm/components/footer/Component.d.ts +1 -1
- package/cssm/components/footer/Component.desktop.d.ts +2 -2
- package/cssm/components/footer/Component.desktop.js.map +1 -1
- package/cssm/components/footer/Component.js +3 -0
- package/cssm/components/footer/Component.js.map +1 -1
- package/cssm/components/footer/Component.mobile.d.ts +2 -2
- package/cssm/components/footer/Component.mobile.js.map +1 -1
- package/cssm/components/footer/index.module.css +3 -1
- package/cssm/components/footer/layout.module.css +3 -3
- package/cssm/components/footer/mobile.module.css +2 -2
- package/cssm/components/header/Component.d.ts +2 -2
- package/cssm/components/header/Component.js.map +1 -1
- package/cssm/components/header/desktop.module.css +2 -2
- package/cssm/components/header/index.module.css +5 -3
- package/cssm/components/header/mobile.module.css +4 -4
- package/cssm/desktop/Component.desktop.d.ts +4 -4
- package/cssm/desktop/Component.desktop.js.map +1 -1
- package/cssm/desktop/transitions.desktop.module.css +9 -3
- package/cssm/mobile/Component.mobile.d.ts +2 -2
- package/cssm/mobile/Component.mobile.js.map +1 -1
- package/cssm/mobile/mobile.module.css +1 -1
- package/cssm/mobile/transitions.mobile.module.css +6 -2
- package/desktop/Component.desktop.d.ts +4 -4
- 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 +15 -9
- package/desktop/transitions.desktop.module.css.js +1 -1
- package/desktop/transitions.desktop.module.css.js.map +1 -1
- package/esm/Component.responsive.d.ts +2 -2
- package/esm/Component.responsive.js.map +1 -1
- package/esm/Context.js.map +1 -1
- package/esm/ResponsiveContext.d.ts +1 -1
- package/esm/ResponsiveContext.js.map +1 -1
- package/esm/components/content/Component.d.ts +1 -1
- package/esm/components/content/Component.desktop.d.ts +2 -2
- package/esm/components/content/Component.desktop.js.map +1 -1
- package/esm/components/content/Component.js.map +1 -1
- package/esm/components/content/Component.mobile.d.ts +2 -2
- package/esm/components/content/Component.mobile.js.map +1 -1
- package/esm/components/content/desktop.css +3 -3
- package/esm/components/content/desktop.module.css.js +1 -1
- package/esm/components/content/index.css +4 -4
- package/esm/components/content/index.module.css.js +1 -1
- package/esm/components/content/mobile.css +3 -3
- package/esm/components/content/mobile.module.css.js +1 -1
- package/esm/components/controls/Component.d.ts +1 -1
- package/esm/components/controls/Component.js.map +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 +2 -2
- package/esm/components/footer/Component.desktop.js.map +1 -1
- package/esm/components/footer/Component.js +3 -0
- package/esm/components/footer/Component.js.map +1 -1
- package/esm/components/footer/Component.mobile.d.ts +2 -2
- package/esm/components/footer/Component.mobile.js.map +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 +6 -4
- package/esm/components/footer/index.module.css.js +1 -1
- package/esm/components/footer/index.module.css.js.map +1 -1
- package/esm/components/footer/layout.css +19 -19
- package/esm/components/footer/layout.module.css.js +1 -1
- package/esm/components/footer/mobile.css +5 -5
- package/esm/components/footer/mobile.module.css.js +1 -1
- package/esm/components/header/Component.d.ts +2 -2
- package/esm/components/header/Component.js.map +1 -1
- package/esm/components/header/desktop.css +6 -6
- package/esm/components/header/desktop.module.css.js +1 -1
- package/esm/components/header/index.css +18 -16
- package/esm/components/header/index.module.css.js +1 -1
- package/esm/components/header/index.module.css.js.map +1 -1
- package/esm/components/header/mobile.css +8 -8
- package/esm/components/header/mobile.module.css.js +1 -1
- package/esm/desktop/Component.desktop.d.ts +4 -4
- 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 +15 -9
- package/esm/desktop/transitions.desktop.module.css.js +1 -1
- package/esm/desktop/transitions.desktop.module.css.js.map +1 -1
- package/esm/mobile/Component.mobile.d.ts +2 -2
- package/esm/mobile/Component.mobile.js.map +1 -1
- package/esm/mobile/mobile.css +5 -5
- package/esm/mobile/mobile.module.css.js +1 -1
- package/esm/mobile/transitions.mobile.css +13 -9
- package/esm/mobile/transitions.mobile.module.css.js +1 -1
- package/esm/mobile/transitions.mobile.module.css.js.map +1 -1
- package/mobile/Component.mobile.d.ts +2 -2
- package/mobile/Component.mobile.js.map +1 -1
- package/mobile/mobile.css +5 -5
- package/mobile/mobile.module.css.js +1 -1
- package/mobile/transitions.mobile.css +13 -9
- package/mobile/transitions.mobile.module.css.js +1 -1
- package/mobile/transitions.mobile.module.css.js.map +1 -1
- package/modern/Component.responsive.d.ts +2 -2
- package/modern/Component.responsive.js.map +1 -1
- package/modern/Context.js.map +1 -1
- package/modern/ResponsiveContext.d.ts +1 -1
- package/modern/ResponsiveContext.js.map +1 -1
- package/modern/components/content/Component.d.ts +1 -1
- package/modern/components/content/Component.desktop.d.ts +2 -2
- package/modern/components/content/Component.desktop.js.map +1 -1
- package/modern/components/content/Component.js.map +1 -1
- package/modern/components/content/Component.mobile.d.ts +2 -2
- package/modern/components/content/Component.mobile.js.map +1 -1
- package/modern/components/content/desktop.css +3 -3
- package/modern/components/content/desktop.module.css.js +1 -1
- package/modern/components/content/index.css +4 -4
- package/modern/components/content/index.module.css.js +1 -1
- package/modern/components/content/mobile.css +3 -3
- package/modern/components/content/mobile.module.css.js +1 -1
- package/modern/components/controls/Component.d.ts +1 -1
- package/modern/components/controls/Component.js.map +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 +2 -2
- package/modern/components/footer/Component.desktop.js.map +1 -1
- package/modern/components/footer/Component.js +3 -0
- package/modern/components/footer/Component.js.map +1 -1
- package/modern/components/footer/Component.mobile.d.ts +2 -2
- package/modern/components/footer/Component.mobile.js.map +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 +6 -4
- package/modern/components/footer/index.module.css.js +1 -1
- package/modern/components/footer/index.module.css.js.map +1 -1
- package/modern/components/footer/layout.css +19 -19
- package/modern/components/footer/layout.module.css.js +1 -1
- package/modern/components/footer/mobile.css +5 -5
- package/modern/components/footer/mobile.module.css.js +1 -1
- package/modern/components/header/Component.d.ts +2 -2
- package/modern/components/header/Component.js.map +1 -1
- package/modern/components/header/desktop.css +6 -6
- package/modern/components/header/desktop.module.css.js +1 -1
- package/modern/components/header/index.css +18 -16
- package/modern/components/header/index.module.css.js +1 -1
- package/modern/components/header/index.module.css.js.map +1 -1
- package/modern/components/header/mobile.css +8 -8
- package/modern/components/header/mobile.module.css.js +1 -1
- package/modern/desktop/Component.desktop.d.ts +4 -4
- 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 +15 -9
- package/modern/desktop/transitions.desktop.module.css.js +1 -1
- package/modern/desktop/transitions.desktop.module.css.js.map +1 -1
- package/modern/mobile/Component.mobile.d.ts +2 -2
- package/modern/mobile/Component.mobile.js.map +1 -1
- package/modern/mobile/mobile.css +5 -5
- package/modern/mobile/mobile.module.css.js +1 -1
- package/modern/mobile/transitions.mobile.css +13 -9
- package/modern/mobile/transitions.mobile.module.css.js +1 -1
- package/modern/mobile/transitions.mobile.module.css.js.map +1 -1
- package/moderncssm/Component.responsive.d.ts +2 -2
- package/moderncssm/Component.responsive.js.map +1 -1
- package/moderncssm/Context.js.map +1 -1
- package/moderncssm/ResponsiveContext.d.ts +1 -1
- package/moderncssm/ResponsiveContext.js.map +1 -1
- package/moderncssm/components/content/Component.d.ts +1 -1
- package/moderncssm/components/content/Component.desktop.d.ts +2 -2
- package/moderncssm/components/content/Component.desktop.js.map +1 -1
- package/moderncssm/components/content/Component.js.map +1 -1
- package/moderncssm/components/content/Component.mobile.d.ts +2 -2
- package/moderncssm/components/content/Component.mobile.js.map +1 -1
- package/moderncssm/components/content/desktop.module.css +3 -1
- package/moderncssm/components/content/index.module.css +3 -1
- package/moderncssm/components/content/mobile.module.css +3 -1
- package/moderncssm/components/controls/Component.d.ts +1 -1
- package/moderncssm/components/controls/Component.js.map +1 -1
- package/moderncssm/components/footer/Component.d.ts +1 -1
- package/moderncssm/components/footer/Component.desktop.d.ts +2 -2
- package/moderncssm/components/footer/Component.desktop.js.map +1 -1
- package/moderncssm/components/footer/Component.js +3 -0
- package/moderncssm/components/footer/Component.js.map +1 -1
- package/moderncssm/components/footer/Component.mobile.d.ts +2 -2
- package/moderncssm/components/footer/Component.mobile.js.map +1 -1
- package/moderncssm/components/footer/desktop.module.css +2 -0
- package/moderncssm/components/footer/index.module.css +5 -1
- package/moderncssm/components/footer/layout.module.css +5 -3
- package/moderncssm/components/footer/mobile.module.css +2 -2
- package/moderncssm/components/header/Component.d.ts +2 -2
- package/moderncssm/components/header/Component.js.map +1 -1
- package/moderncssm/components/header/desktop.module.css +2 -0
- package/moderncssm/components/header/index.module.css +7 -3
- package/moderncssm/components/header/mobile.module.css +2 -2
- package/moderncssm/desktop/Component.desktop.d.ts +4 -4
- package/moderncssm/desktop/Component.desktop.js.map +1 -1
- package/moderncssm/desktop/desktop.module.css +2 -0
- package/moderncssm/desktop/transitions.desktop.module.css +9 -3
- package/moderncssm/mobile/Component.mobile.d.ts +2 -2
- package/moderncssm/mobile/Component.mobile.js.map +1 -1
- package/moderncssm/mobile/mobile.module.css +1 -1
- package/moderncssm/mobile/transitions.mobile.module.css +6 -2
- package/package.json +4 -4
- package/src/Component.responsive.tsx +4 -4
- package/src/ResponsiveContext.ts +1 -1
- package/src/components/content/Component.desktop.tsx +2 -2
- package/src/components/content/Component.mobile.tsx +2 -2
- package/src/components/content/Component.tsx +1 -1
- package/src/components/controls/Component.tsx +1 -1
- package/src/components/footer/Component.desktop.tsx +2 -2
- package/src/components/footer/Component.mobile.tsx +2 -2
- package/src/components/footer/Component.tsx +5 -1
- package/src/components/footer/index.module.css +3 -1
- package/src/components/header/Component.tsx +2 -2
- package/src/components/header/index.module.css +3 -1
- package/src/desktop/Component.desktop.tsx +5 -5
- package/src/desktop/transitions.desktop.module.css +6 -2
- package/src/mobile/Component.mobile.tsx +3 -3
- package/src/mobile/transitions.mobile.module.css +6 -2
- package/src/vars.css +1 -1
- /package/src/{Context.tsx → Context.ts} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FC } from 'react';
|
|
2
|
-
import { FooterProps } from './Component';
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
import { type FooterProps } from './Component';
|
|
3
3
|
export declare type FooterDesktopProps = FooterProps & {
|
|
4
4
|
/**
|
|
5
5
|
* Размер (только для desktop версии компонента)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.desktop.js","sources":["../../../src/components/footer/Component.desktop.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport cn from 'classnames';\n\nimport { SIZE_TO_CLASSNAME_MAP } from '../../consts';\n\nimport { Footer, FooterProps } from './Component';\n\nimport styles from './desktop.module.css';\n\nexport type FooterDesktopProps = FooterProps & {\n /**\n * Размер (только для desktop версии компонента)\n */\n size?: 's' | 500;\n};\n\nexport const FooterDesktop: FC<FooterDesktopProps> = ({\n size = 500,\n className,\n sticky,\n ...restProps\n}) => (\n <Footer\n className={cn(className, size && styles[SIZE_TO_CLASSNAME_MAP[size]], {\n [styles.sticky]: sticky,\n })}\n sticky={sticky}\n {...restProps}\n />\n);\n"],"names":[],"mappings":";;;;;;AAgBa,MAAA,aAAa,GAA2B,CAAC,EAClD,IAAI,GAAG,GAAG,EACV,SAAS,EACT,MAAM,EACN,GAAG,SAAS,EACf,MACG,oBAAC,MAAM,EAAA,EACH,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,IAAI,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE;AAClE,QAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;KAC1B,CAAC,EACF,MAAM,EAAE,MAAM,KACV,SAAS,EAAA,CACf;;;;"}
|
|
1
|
+
{"version":3,"file":"Component.desktop.js","sources":["../../../src/components/footer/Component.desktop.tsx"],"sourcesContent":["import React, { type FC } from 'react';\nimport cn from 'classnames';\n\nimport { SIZE_TO_CLASSNAME_MAP } from '../../consts';\n\nimport { Footer, type FooterProps } from './Component';\n\nimport styles from './desktop.module.css';\n\nexport type FooterDesktopProps = FooterProps & {\n /**\n * Размер (только для desktop версии компонента)\n */\n size?: 's' | 500;\n};\n\nexport const FooterDesktop: FC<FooterDesktopProps> = ({\n size = 500,\n className,\n sticky,\n ...restProps\n}) => (\n <Footer\n className={cn(className, size && styles[SIZE_TO_CLASSNAME_MAP[size]], {\n [styles.sticky]: sticky,\n })}\n sticky={sticky}\n {...restProps}\n />\n);\n"],"names":[],"mappings":";;;;;;AAgBa,MAAA,aAAa,GAA2B,CAAC,EAClD,IAAI,GAAG,GAAG,EACV,SAAS,EACT,MAAM,EACN,GAAG,SAAS,EACf,MACG,oBAAC,MAAM,EAAA,EACH,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,IAAI,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE;AAClE,QAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;KAC1B,CAAC,EACF,MAAM,EAAE,MAAM,KACV,SAAS,EAAA,CACf;;;;"}
|
|
@@ -11,6 +11,9 @@ const Footer = ({ children, className, sticky, layout = 'start', gap, dataTestId
|
|
|
11
11
|
const responsiveContext = useContext(ResponsiveContext);
|
|
12
12
|
useEffect(() => {
|
|
13
13
|
setHasFooter(true);
|
|
14
|
+
return () => {
|
|
15
|
+
setHasFooter(false);
|
|
16
|
+
};
|
|
14
17
|
}, [setHasFooter]);
|
|
15
18
|
return (React.createElement("div", { className: cn(styles.footer, className, layoutStyles[layout], gap && layoutStyles[`gap-${gap}`], {
|
|
16
19
|
[styles.highlighted]: sticky && footerHighlighted,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sources":["../../../src/components/footer/Component.tsx"],"sourcesContent":["import React, { FC, ReactNode, useContext, useEffect } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { ModalContext } from '../../Context';\nimport { ResponsiveContext } from '../../ResponsiveContext';\n\nimport styles from './index.module.css';\nimport layoutStyles from './layout.module.css';\n\nexport type FooterProps = {\n /**\n * Контент футера\n */\n children?: ReactNode;\n\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Фиксирует футер\n */\n sticky?: boolean;\n\n /**\n * Выравнивание элементов футера\n */\n layout?: 'start' | 'center' | 'space-between' | 'column';\n\n /**\n * Отступы между элементами футера\n */\n gap?: 16 | 24 | 32;\n\n /**\n * Идентификатор для систем автоматизированного тестирования\n */\n dataTestId?: string;\n};\n\nexport const Footer: FC<FooterProps> = ({\n children,\n className,\n sticky,\n layout = 'start',\n gap,\n dataTestId,\n}) => {\n const { footerHighlighted, setHasFooter } = useContext(ModalContext);\n const responsiveContext = useContext(ResponsiveContext);\n\n useEffect(() => {\n setHasFooter(true);\n }, [setHasFooter]);\n\n return (\n <div\n className={cn(\n styles.footer,\n className,\n layoutStyles[layout],\n gap && layoutStyles[`gap-${gap}`],\n {\n [styles.highlighted]: sticky && footerHighlighted,\n [styles.sticky]: sticky,\n },\n )}\n data-test-id={dataTestId || getDataTestId(responsiveContext?.dataTestId, 'footer')}\n >\n {children}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;MA2Ca,MAAM,GAAoB,CAAC,EACpC,QAAQ,EACR,SAAS,EACT,MAAM,EACN,MAAM,GAAG,OAAO,EAChB,GAAG,EACH,UAAU,GACb,KAAI;IACD,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC;AACpE,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;IAEvD,SAAS,CAAC,MAAK;QACX,YAAY,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../../src/components/footer/Component.tsx"],"sourcesContent":["import React, { type FC, type ReactNode, useContext, useEffect } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { ModalContext } from '../../Context';\nimport { ResponsiveContext } from '../../ResponsiveContext';\n\nimport styles from './index.module.css';\nimport layoutStyles from './layout.module.css';\n\nexport type FooterProps = {\n /**\n * Контент футера\n */\n children?: ReactNode;\n\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Фиксирует футер\n */\n sticky?: boolean;\n\n /**\n * Выравнивание элементов футера\n */\n layout?: 'start' | 'center' | 'space-between' | 'column';\n\n /**\n * Отступы между элементами футера\n */\n gap?: 16 | 24 | 32;\n\n /**\n * Идентификатор для систем автоматизированного тестирования\n */\n dataTestId?: string;\n};\n\nexport const Footer: FC<FooterProps> = ({\n children,\n className,\n sticky,\n layout = 'start',\n gap,\n dataTestId,\n}) => {\n const { footerHighlighted, setHasFooter } = useContext(ModalContext);\n const responsiveContext = useContext(ResponsiveContext);\n\n useEffect(() => {\n setHasFooter(true);\n\n return () => {\n setHasFooter(false);\n };\n }, [setHasFooter]);\n\n return (\n <div\n className={cn(\n styles.footer,\n className,\n layoutStyles[layout],\n gap && layoutStyles[`gap-${gap}`],\n {\n [styles.highlighted]: sticky && footerHighlighted,\n [styles.sticky]: sticky,\n },\n )}\n data-test-id={dataTestId || getDataTestId(responsiveContext?.dataTestId, 'footer')}\n >\n {children}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;MA2Ca,MAAM,GAAoB,CAAC,EACpC,QAAQ,EACR,SAAS,EACT,MAAM,EACN,MAAM,GAAG,OAAO,EAChB,GAAG,EACH,UAAU,GACb,KAAI;IACD,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC;AACpE,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;IAEvD,SAAS,CAAC,MAAK;QACX,YAAY,CAAC,IAAI,CAAC;AAElB,QAAA,OAAO,MAAK;YACR,YAAY,CAAC,KAAK,CAAC;AACvB,SAAC;AACL,KAAC,EAAE,CAAC,YAAY,CAAC,CAAC;IAElB,QACI,KACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,EAAE,CACT,MAAM,CAAC,MAAM,EACb,SAAS,EACT,YAAY,CAAC,MAAM,CAAC,EACpB,GAAG,IAAI,YAAY,CAAC,CAAO,IAAA,EAAA,GAAG,CAAE,CAAA,CAAC,EACjC;AACI,YAAA,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,IAAI,iBAAiB;AACjD,YAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;AAC1B,SAAA,CACJ,EACa,cAAA,EAAA,UAAU,IAAI,aAAa,CAAC,iBAAiB,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAA,EAEjF,QAAQ,CACP;AAEd;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FC } from 'react';
|
|
2
|
-
import { FooterProps } from './Component';
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
import { type FooterProps } from './Component';
|
|
3
3
|
export declare type FooterMobileProps = FooterProps;
|
|
4
4
|
export declare const FooterMobile: FC<FooterMobileProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.mobile.js","sources":["../../../src/components/footer/Component.mobile.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport cn from 'classnames';\n\nimport { Footer, FooterProps } from './Component';\n\nimport styles from './mobile.module.css';\n\nexport type FooterMobileProps = FooterProps;\n\nexport const FooterMobile: FC<FooterMobileProps> = ({\n className,\n sticky,\n layout = 'start',\n ...restProps\n}) => (\n <Footer\n className={cn(className, styles.footer, {\n [styles.sticky]: sticky,\n })}\n sticky={sticky}\n layout={layout}\n {...restProps}\n />\n);\n"],"names":[],"mappings":";;;;;AASO,MAAM,YAAY,GAA0B,CAAC,EAChD,SAAS,EACT,MAAM,EACN,MAAM,GAAG,OAAO,EAChB,GAAG,SAAS,EACf,MACG,KAAA,CAAA,aAAA,CAAC,MAAM,EACH,EAAA,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;AACpC,QAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;AAC1B,KAAA,CAAC,EACF,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACV,GAAA,SAAS,EACf,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"Component.mobile.js","sources":["../../../src/components/footer/Component.mobile.tsx"],"sourcesContent":["import React, { type FC } from 'react';\nimport cn from 'classnames';\n\nimport { Footer, type FooterProps } from './Component';\n\nimport styles from './mobile.module.css';\n\nexport type FooterMobileProps = FooterProps;\n\nexport const FooterMobile: FC<FooterMobileProps> = ({\n className,\n sticky,\n layout = 'start',\n ...restProps\n}) => (\n <Footer\n className={cn(className, styles.footer, {\n [styles.sticky]: sticky,\n })}\n sticky={sticky}\n layout={layout}\n {...restProps}\n />\n);\n"],"names":[],"mappings":";;;;;AASO,MAAM,YAAY,GAA0B,CAAC,EAChD,SAAS,EACT,MAAM,EACN,MAAM,GAAG,OAAO,EAChB,GAAG,SAAS,EACf,MACG,KAAA,CAAA,aAAA,CAAC,MAAM,EACH,EAAA,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;AACpC,QAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;AAC1B,KAAA,CAAC,EACF,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACV,GAAA,SAAS,EACf,CAAA;;;;"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
1
3
|
:root {
|
|
2
4
|
--side-panel-footer-background: var(--color-light-modal-bg-primary);
|
|
3
5
|
--side-panel-footer-highlight-background: var(--color-light-modal-bg-primary);
|
|
@@ -7,7 +9,9 @@
|
|
|
7
9
|
.footer {
|
|
8
10
|
width: 100%;
|
|
9
11
|
box-sizing: border-box;
|
|
10
|
-
transition:
|
|
12
|
+
transition:
|
|
13
|
+
box-shadow 0.2s ease,
|
|
14
|
+
background 0.2s ease;
|
|
11
15
|
}
|
|
12
16
|
|
|
13
17
|
.sticky {
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
1
3
|
:root {
|
|
2
4
|
--side-panel-footer-default-gap: var(--gap-16);
|
|
3
5
|
}
|
|
4
6
|
|
|
5
7
|
.column {
|
|
6
8
|
display: flex;
|
|
7
|
-
flex-direction: column
|
|
9
|
+
flex-direction: column;
|
|
8
10
|
}
|
|
9
11
|
|
|
10
12
|
.column > *:not(:last-child):not(:only-child) {
|
|
@@ -32,7 +34,7 @@
|
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
.space-between {
|
|
35
|
-
justify-content: space-between
|
|
37
|
+
justify-content: space-between;
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
.space-between > * {
|
|
@@ -42,7 +44,7 @@
|
|
|
42
44
|
.start,
|
|
43
45
|
.center,
|
|
44
46
|
.space-between {
|
|
45
|
-
display: flex
|
|
47
|
+
display: flex;
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
.start > *:not(:last-child):not(:only-child), .center > *:not(:last-child):not(:only-child), .space-between > *:not(:last-child):not(:only-child) {
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
--sab: env(safe-area-inset-bottom, var(--gap-0));
|
|
3
3
|
}
|
|
4
4
|
.footer {
|
|
5
|
-
padding: var(--gap-16)
|
|
5
|
+
padding: var(--gap-16);
|
|
6
6
|
}
|
|
7
7
|
@media (display-mode: standalone) {
|
|
8
8
|
.footer {
|
|
9
|
-
padding-bottom: calc(var(--sab) + var(--gap-16))
|
|
9
|
+
padding-bottom: calc(var(--sab) + var(--gap-16));
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
.sticky {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FC } from 'react';
|
|
2
|
-
import { NavigationBarPrivateProps } from '@alfalab/core-components-navigation-bar-private/moderncssm';
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
import { type NavigationBarPrivateProps } from '@alfalab/core-components-navigation-bar-private/moderncssm';
|
|
3
3
|
export declare type HeaderProps = Omit<NavigationBarPrivateProps, 'size' | 'view' | 'parentRef'>;
|
|
4
4
|
export declare const Header: FC<HeaderProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sources":["../../../src/components/header/Component.tsx"],"sourcesContent":["import React, { FC, useContext, useEffect } from 'react';\nimport cn from 'classnames';\n\nimport {\n NavigationBarPrivate,\n NavigationBarPrivateProps,\n} from '@alfalab/core-components-navigation-bar-private';\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { SIZE_TO_CLASSNAME_MAP } from '../../consts';\nimport { ModalContext } from '../../Context';\nimport { ResponsiveContext } from '../../ResponsiveContext';\n\nimport desktopStyles from './desktop.module.css';\nimport styles from './index.module.css';\nimport mobileStyles from './mobile.module.css';\n\nexport type HeaderProps = Omit<NavigationBarPrivateProps, 'size' | 'view' | 'parentRef'>;\n\nexport const Header: FC<HeaderProps> = ({\n className,\n children,\n contentClassName,\n title,\n sticky,\n hasCloser = true,\n ...restProps\n}) => {\n const { setHasHeader, headerHighlighted, onClose, componentRef } = useContext(ModalContext);\n const { size = 500, view = 'desktop', dataTestId } = useContext(ResponsiveContext) || {};\n\n useEffect(() => {\n setHasHeader(true);\n }, [setHasHeader]);\n\n const hasContent = Boolean(title || children);\n\n return (\n <NavigationBarPrivate\n dataTestId={getDataTestId(dataTestId, 'header')}\n {...restProps}\n scrollableParentRef={componentRef}\n view={view}\n sticky={sticky}\n title={title}\n hasCloser={hasCloser}\n onClose={onClose}\n className={cn(styles.header, className, {\n [styles.highlighted]: hasContent && sticky && headerHighlighted,\n [styles.sticky]: sticky,\n [styles.hasContent]: hasContent,\n [desktopStyles.sticky]: view === 'desktop' && sticky,\n [desktopStyles[SIZE_TO_CLASSNAME_MAP[size]]]: view === 'desktop',\n [mobileStyles.sticky]: view === 'mobile' && sticky,\n [mobileStyles.header]: view === 'mobile',\n })}\n contentClassName={cn(contentClassName, {\n [desktopStyles.content]: view === 'desktop',\n [mobileStyles.content]: view === 'mobile',\n })}\n >\n {children}\n </NavigationBarPrivate>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAmBa,MAAA,MAAM,GAAoB,CAAC,EACpC,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,SAAS,GAAG,IAAI,EAChB,GAAG,SAAS,EACf,KAAI;AACD,IAAA,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC;AAC3F,IAAA,MAAM,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE;IAExF,SAAS,CAAC,MAAK;QACX,YAAY,CAAC,IAAI,CAAC;AACtB,KAAC,EAAE,CAAC,YAAY,CAAC,CAAC;IAElB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;IAE7C,QACI,oBAAC,oBAAoB,EAAA,EACjB,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,EAC3C,GAAA,SAAS,EACb,mBAAmB,EAAE,YAAY,EACjC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE;YACpC,CAAC,MAAM,CAAC,WAAW,GAAG,UAAU,IAAI,MAAM,IAAI,iBAAiB;AAC/D,YAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;AACvB,YAAA,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU;YAC/B,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,KAAK,SAAS,IAAI,MAAM;YACpD,CAAC,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,SAAS;YAChE,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,KAAK,QAAQ,IAAI,MAAM;AAClD,YAAA,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,KAAK,QAAQ;AAC3C,SAAA,CAAC,EACF,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,EAAE;AACnC,YAAA,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,KAAK,SAAS;AAC3C,YAAA,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,KAAK,QAAQ;AAC5C,SAAA,CAAC,EAED,EAAA,QAAQ,CACU;AAE/B;;;;"}
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../../src/components/header/Component.tsx"],"sourcesContent":["import React, { type FC, useContext, useEffect } from 'react';\nimport cn from 'classnames';\n\nimport {\n NavigationBarPrivate,\n type NavigationBarPrivateProps,\n} from '@alfalab/core-components-navigation-bar-private';\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { SIZE_TO_CLASSNAME_MAP } from '../../consts';\nimport { ModalContext } from '../../Context';\nimport { ResponsiveContext } from '../../ResponsiveContext';\n\nimport desktopStyles from './desktop.module.css';\nimport styles from './index.module.css';\nimport mobileStyles from './mobile.module.css';\n\nexport type HeaderProps = Omit<NavigationBarPrivateProps, 'size' | 'view' | 'parentRef'>;\n\nexport const Header: FC<HeaderProps> = ({\n className,\n children,\n contentClassName,\n title,\n sticky,\n hasCloser = true,\n ...restProps\n}) => {\n const { setHasHeader, headerHighlighted, onClose, componentRef } = useContext(ModalContext);\n const { size = 500, view = 'desktop', dataTestId } = useContext(ResponsiveContext) || {};\n\n useEffect(() => {\n setHasHeader(true);\n }, [setHasHeader]);\n\n const hasContent = Boolean(title || children);\n\n return (\n <NavigationBarPrivate\n dataTestId={getDataTestId(dataTestId, 'header')}\n {...restProps}\n scrollableParentRef={componentRef}\n view={view}\n sticky={sticky}\n title={title}\n hasCloser={hasCloser}\n onClose={onClose}\n className={cn(styles.header, className, {\n [styles.highlighted]: hasContent && sticky && headerHighlighted,\n [styles.sticky]: sticky,\n [styles.hasContent]: hasContent,\n [desktopStyles.sticky]: view === 'desktop' && sticky,\n [desktopStyles[SIZE_TO_CLASSNAME_MAP[size]]]: view === 'desktop',\n [mobileStyles.sticky]: view === 'mobile' && sticky,\n [mobileStyles.header]: view === 'mobile',\n })}\n contentClassName={cn(contentClassName, {\n [desktopStyles.content]: view === 'desktop',\n [mobileStyles.content]: view === 'mobile',\n })}\n >\n {children}\n </NavigationBarPrivate>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAmBa,MAAA,MAAM,GAAoB,CAAC,EACpC,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,SAAS,GAAG,IAAI,EAChB,GAAG,SAAS,EACf,KAAI;AACD,IAAA,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC;AAC3F,IAAA,MAAM,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE;IAExF,SAAS,CAAC,MAAK;QACX,YAAY,CAAC,IAAI,CAAC;AACtB,KAAC,EAAE,CAAC,YAAY,CAAC,CAAC;IAElB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;IAE7C,QACI,oBAAC,oBAAoB,EAAA,EACjB,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,EAC3C,GAAA,SAAS,EACb,mBAAmB,EAAE,YAAY,EACjC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE;YACpC,CAAC,MAAM,CAAC,WAAW,GAAG,UAAU,IAAI,MAAM,IAAI,iBAAiB;AAC/D,YAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;AACvB,YAAA,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU;YAC/B,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,KAAK,SAAS,IAAI,MAAM;YACpD,CAAC,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,SAAS;YAChE,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,KAAK,QAAQ,IAAI,MAAM;AAClD,YAAA,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,KAAK,QAAQ;AAC3C,SAAA,CAAC,EACF,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,EAAE;AACnC,YAAA,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,KAAK,SAAS;AAC3C,YAAA,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,KAAK,QAAQ;AAC5C,SAAA,CAAC,EAED,EAAA,QAAQ,CACU;AAE/B;;;;"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
1
3
|
:root {
|
|
2
4
|
--side-panel-header-background: var(--color-light-modal-bg-primary);
|
|
3
5
|
--side-panel-header-highlight-background: var(--color-light-modal-bg-primary);
|
|
@@ -7,7 +9,9 @@
|
|
|
7
9
|
.header {
|
|
8
10
|
width: 100%;
|
|
9
11
|
box-sizing: border-box;
|
|
10
|
-
transition:
|
|
12
|
+
transition:
|
|
13
|
+
box-shadow 0.2s ease,
|
|
14
|
+
background 0.2s ease;
|
|
11
15
|
}
|
|
12
16
|
|
|
13
17
|
.header:not(.hasContent) {
|
|
@@ -21,7 +25,7 @@
|
|
|
21
25
|
|
|
22
26
|
.sticky {
|
|
23
27
|
position: sticky;
|
|
24
|
-
z-index: 1
|
|
28
|
+
z-index: 1;
|
|
25
29
|
}
|
|
26
30
|
|
|
27
31
|
.sticky.hasContent {
|
|
@@ -60,7 +64,7 @@
|
|
|
60
64
|
}
|
|
61
65
|
|
|
62
66
|
.trim {
|
|
63
|
-
overflow: hidden
|
|
67
|
+
overflow: hidden;
|
|
64
68
|
}
|
|
65
69
|
|
|
66
70
|
.trim .title {
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
var(--gap-4) var(--gap-8);
|
|
13
13
|
}
|
|
14
14
|
.header {
|
|
15
|
-
padding: var(--side-panel-header-mobile-paddings)
|
|
15
|
+
padding: var(--side-panel-header-mobile-paddings);
|
|
16
16
|
}
|
|
17
17
|
@media (display-mode: standalone) {
|
|
18
18
|
.header {
|
|
19
|
-
padding-top: calc(var(--sat) + var(--side-panel-header-mobile-top-padding))
|
|
19
|
+
padding-top: calc(var(--sat) + var(--side-panel-header-mobile-top-padding));
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
.sticky {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { BaseModalProps } from '@alfalab/core-components-base-modal/moderncssm';
|
|
3
|
-
import { DrawerProps } from '@alfalab/core-components-drawer/moderncssm';
|
|
2
|
+
import { type BaseModalProps } from '@alfalab/core-components-base-modal/moderncssm';
|
|
3
|
+
import { type DrawerProps } from '@alfalab/core-components-drawer/moderncssm';
|
|
4
4
|
import { ContentDesktop } from '../components/content/Component.desktop';
|
|
5
|
-
import { ControlsProps } from '../components/controls';
|
|
5
|
+
import { type ControlsProps } from '../components/controls';
|
|
6
6
|
import { FooterDesktop } from '../components/footer/Component.desktop';
|
|
7
|
-
import { HeaderProps } from '../components/header/Component';
|
|
7
|
+
import { type HeaderProps } from '../components/header/Component';
|
|
8
8
|
export declare type SidePanelDesktopProps = BaseModalProps & Pick<DrawerProps, 'placement' | 'nativeScrollbar' | 'contentTransitionProps'> & {
|
|
9
9
|
/**
|
|
10
10
|
* Ширина модального окна
|
|
@@ -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 { BaseModalProps } from '@alfalab/core-components-base-modal';\nimport { Drawer, DrawerProps } from '@alfalab/core-components-drawer';\n\nimport { ContentDesktop } from '../components/content/Component.desktop';\nimport { Controls, ControlsProps } from '../components/controls';\nimport { FooterDesktop } from '../components/footer/Component.desktop';\nimport { Header, HeaderProps } from '../components/header/Component';\nimport { SIZE_TO_CLASSNAME_MAP } from '../consts';\nimport { ResponsiveContext } from '../ResponsiveContext';\nimport { 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) ? cloneElement(child, { size }) : 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,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAChE,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
|
+
{"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) ? cloneElement(child, { size }) : 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,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAChE,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;;;;"}
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
.enterActive {
|
|
12
12
|
opacity: 1;
|
|
13
13
|
transform: translateX(0);
|
|
14
|
-
transition:
|
|
14
|
+
transition:
|
|
15
|
+
opacity 200ms ease-in,
|
|
16
|
+
transform 200ms ease-in;
|
|
15
17
|
}
|
|
16
18
|
|
|
17
19
|
.exit {
|
|
@@ -21,12 +23,16 @@
|
|
|
21
23
|
|
|
22
24
|
.exitActiveRight {
|
|
23
25
|
opacity: 0;
|
|
24
|
-
transition:
|
|
26
|
+
transition:
|
|
27
|
+
opacity 200ms ease-out,
|
|
28
|
+
transform 200ms ease-out;
|
|
25
29
|
transform: translateX(15px);
|
|
26
30
|
}
|
|
27
31
|
|
|
28
32
|
.exitActiveLeft {
|
|
29
33
|
opacity: 0;
|
|
30
|
-
transition:
|
|
34
|
+
transition:
|
|
35
|
+
opacity 200ms ease-out,
|
|
36
|
+
transform 200ms ease-out;
|
|
31
37
|
transform: translateX(-15px);
|
|
32
38
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { BaseModalProps } from '@alfalab/core-components-base-modal/moderncssm';
|
|
2
|
+
import { type BaseModalProps } from '@alfalab/core-components-base-modal/moderncssm';
|
|
3
3
|
import { ContentMobile } from '../components/content/Component.mobile';
|
|
4
|
-
import { ControlsProps } from '../components/controls';
|
|
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
7
|
export declare type SidePanelMobileProps = BaseModalProps & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.mobile.js","sources":["../../src/mobile/Component.mobile.tsx"],"sourcesContent":["import React, { forwardRef, useContext, useMemo } from 'react';\nimport cn from 'classnames';\n\nimport { BaseModal, BaseModalProps } from '@alfalab/core-components-base-modal';\n\nimport { ContentMobile } from '../components/content/Component.mobile';\nimport { Controls, ControlsProps } from '../components/controls';\nimport { FooterMobile } from '../components/footer/Component.mobile';\nimport { Header } from '../components/header/Component';\nimport { ResponsiveContext } from '../ResponsiveContext';\nimport { TResponsiveModalContext } from '../typings';\n\nimport styles from './mobile.module.css';\nimport transitions from './transitions.mobile.module.css';\n\nexport type SidePanelMobileProps = BaseModalProps & {\n /**\n * Управление наличием закрывающего крестика\n * @default false\n */\n hasCloser?: boolean;\n};\n\nconst SidePanelMobileComponent = forwardRef<HTMLDivElement, SidePanelMobileProps>(\n ({ children, className, transitionProps, dataTestId, ...restProps }, ref) => {\n const responsiveContext = useContext(ResponsiveContext);\n const contextValue = useMemo<TResponsiveModalContext>(\n () => ({ size: 500, view: 'mobile', dataTestId }),\n [dataTestId],\n );\n\n const renderContent = () => (\n <BaseModal\n {...restProps}\n dataTestId={dataTestId}\n ref={ref}\n transitionProps={{\n classNames: transitions,\n ...transitionProps,\n }}\n className={cn(className, styles.component)}\n scrollHandler='content'\n contentProps={{\n ...restProps.contentProps,\n className: cn(styles.content, restProps.contentProps?.className),\n }}\n >\n <div className={styles.mobileContent}>{children}</div>\n </BaseModal>\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 ControlsMobile = Controls as React.FC<Omit<ControlsProps, 'mobileLayout'>>;\n\nconst SidePanelMobile = Object.assign(SidePanelMobileComponent, {\n Content: ContentMobile,\n Header,\n Footer: FooterMobile,\n Controls: ControlsMobile,\n});\n\nexport {\n SidePanelMobile,\n SidePanelMobileComponent as SidePanelComponentMobile,\n ContentMobile,\n Header as HeaderMobile,\n FooterMobile,\n ControlsMobile,\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAuBM,MAAA,wBAAwB,GAAG,UAAU,CACvC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,KAAI;AACxE,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;IACvD,MAAM,YAAY,GAAG,OAAO,CACxB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EACjD,CAAC,UAAU,CAAC,CACf;IAED,MAAM,aAAa,GAAG,OAClB,KAAA,CAAA,aAAA,CAAC,SAAS,EACF,EAAA,GAAA,SAAS,EACb,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,GAAG,EACR,eAAe,EAAE;AACb,YAAA,UAAU,EAAE,WAAW;AACvB,YAAA,GAAG,eAAe;AACrB,SAAA,EACD,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAC1C,aAAa,EAAC,SAAS,EACvB,YAAY,EAAE;YACV,GAAG,SAAS,CAAC,YAAY;AACzB,YAAA,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC;AACnE,SAAA,EAAA;QAED,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,aAAa,IAAG,QAAQ,CAAO,CAC9C,CACf;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,cAAc,GAAG;AAEvB,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE;AAC5D,IAAA,OAAO,EAAE,aAAa;IACtB,MAAM;AACN,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,QAAQ,EAAE,cAAc;AAC3B,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"Component.mobile.js","sources":["../../src/mobile/Component.mobile.tsx"],"sourcesContent":["import React, { forwardRef, useContext, useMemo } from 'react';\nimport cn from 'classnames';\n\nimport { BaseModal, type BaseModalProps } from '@alfalab/core-components-base-modal';\n\nimport { ContentMobile } from '../components/content/Component.mobile';\nimport { Controls, type ControlsProps } from '../components/controls';\nimport { FooterMobile } from '../components/footer/Component.mobile';\nimport { Header } from '../components/header/Component';\nimport { ResponsiveContext } from '../ResponsiveContext';\nimport { type TResponsiveModalContext } from '../typings';\n\nimport styles from './mobile.module.css';\nimport transitions from './transitions.mobile.module.css';\n\nexport type SidePanelMobileProps = BaseModalProps & {\n /**\n * Управление наличием закрывающего крестика\n * @default false\n */\n hasCloser?: boolean;\n};\n\nconst SidePanelMobileComponent = forwardRef<HTMLDivElement, SidePanelMobileProps>(\n ({ children, className, transitionProps, dataTestId, ...restProps }, ref) => {\n const responsiveContext = useContext(ResponsiveContext);\n const contextValue = useMemo<TResponsiveModalContext>(\n () => ({ size: 500, view: 'mobile', dataTestId }),\n [dataTestId],\n );\n\n const renderContent = () => (\n <BaseModal\n {...restProps}\n dataTestId={dataTestId}\n ref={ref}\n transitionProps={{\n classNames: transitions,\n ...transitionProps,\n }}\n className={cn(className, styles.component)}\n scrollHandler='content'\n contentProps={{\n ...restProps.contentProps,\n className: cn(styles.content, restProps.contentProps?.className),\n }}\n >\n <div className={styles.mobileContent}>{children}</div>\n </BaseModal>\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 ControlsMobile = Controls as React.FC<Omit<ControlsProps, 'mobileLayout'>>;\n\nconst SidePanelMobile = Object.assign(SidePanelMobileComponent, {\n Content: ContentMobile,\n Header,\n Footer: FooterMobile,\n Controls: ControlsMobile,\n});\n\nexport {\n SidePanelMobile,\n SidePanelMobileComponent as SidePanelComponentMobile,\n ContentMobile,\n Header as HeaderMobile,\n FooterMobile,\n ControlsMobile,\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAuBM,MAAA,wBAAwB,GAAG,UAAU,CACvC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,KAAI;AACxE,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;IACvD,MAAM,YAAY,GAAG,OAAO,CACxB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EACjD,CAAC,UAAU,CAAC,CACf;IAED,MAAM,aAAa,GAAG,OAClB,KAAA,CAAA,aAAA,CAAC,SAAS,EACF,EAAA,GAAA,SAAS,EACb,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,GAAG,EACR,eAAe,EAAE;AACb,YAAA,UAAU,EAAE,WAAW;AACvB,YAAA,GAAG,eAAe;AACrB,SAAA,EACD,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAC1C,aAAa,EAAC,SAAS,EACvB,YAAY,EAAE;YACV,GAAG,SAAS,CAAC,YAAY;AACzB,YAAA,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC;AACnE,SAAA,EAAA;QAED,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,aAAa,IAAG,QAAQ,CAAO,CAC9C,CACf;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,cAAc,GAAG;AAEvB,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE;AAC5D,IAAA,OAAO,EAAE,aAAa;IACtB,MAAM;AACN,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,QAAQ,EAAE,cAAc;AAC3B,CAAA;;;;"}
|
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
.enterActive {
|
|
9
9
|
opacity: 1;
|
|
10
10
|
transform: translateY(0);
|
|
11
|
-
transition:
|
|
11
|
+
transition:
|
|
12
|
+
opacity 200ms ease-in,
|
|
13
|
+
transform 200ms ease-in;
|
|
12
14
|
}
|
|
13
15
|
|
|
14
16
|
.exit {
|
|
@@ -20,5 +22,7 @@
|
|
|
20
22
|
.exitDone {
|
|
21
23
|
opacity: 0;
|
|
22
24
|
transform: translateY(15px);
|
|
23
|
-
transition:
|
|
25
|
+
transition:
|
|
26
|
+
opacity 200ms ease-out,
|
|
27
|
+
transform 200ms ease-out;
|
|
24
28
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alfalab/core-components-side-panel",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.3",
|
|
4
4
|
"description": "SidePanel component",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "MIT",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"@alfalab/core-components-base-modal": "^6.0.1",
|
|
14
14
|
"@alfalab/core-components-drawer": "^6.0.1",
|
|
15
15
|
"@alfalab/core-components-mq": "^5.0.1",
|
|
16
|
-
"@alfalab/core-components-navigation-bar-private": "^1.0
|
|
16
|
+
"@alfalab/core-components-navigation-bar-private": "^1.1.0",
|
|
17
17
|
"@alfalab/core-components-shared": "^1.1.0",
|
|
18
18
|
"classnames": "^2.5.1",
|
|
19
19
|
"react-merge-refs": "^1.1.0",
|
|
@@ -27,6 +27,6 @@
|
|
|
27
27
|
"access": "public",
|
|
28
28
|
"directory": "dist"
|
|
29
29
|
},
|
|
30
|
-
"themesVersion": "14.1.
|
|
31
|
-
"varsVersion": "10.1.
|
|
30
|
+
"themesVersion": "14.1.3",
|
|
31
|
+
"varsVersion": "10.1.1"
|
|
32
32
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React, { FC, forwardRef, useContext, useMemo } from 'react';
|
|
1
|
+
import React, { type FC, forwardRef, useContext, useMemo } from 'react';
|
|
2
2
|
|
|
3
|
-
import { BaseModalProps } from '@alfalab/core-components-base-modal';
|
|
4
|
-
import { DrawerProps } from '@alfalab/core-components-drawer';
|
|
3
|
+
import { type BaseModalProps } from '@alfalab/core-components-base-modal';
|
|
4
|
+
import { type DrawerProps } from '@alfalab/core-components-drawer';
|
|
5
5
|
import { useIsDesktop } from '@alfalab/core-components-mq';
|
|
6
6
|
|
|
7
7
|
import { Controls } from './components/controls';
|
|
@@ -9,7 +9,7 @@ import { Header } from './components/header/Component';
|
|
|
9
9
|
import { SidePanelDesktop } from './desktop';
|
|
10
10
|
import { SidePanelMobile } from './mobile';
|
|
11
11
|
import { ResponsiveContext } from './ResponsiveContext';
|
|
12
|
-
import { TResponsiveModalContext } from './typings';
|
|
12
|
+
import { type TResponsiveModalContext } from './typings';
|
|
13
13
|
|
|
14
14
|
export type SidePanelResponsiveProps = BaseModalProps &
|
|
15
15
|
Pick<DrawerProps, 'contentTransitionProps' | 'placement' | 'nativeScrollbar'> & {
|
package/src/ResponsiveContext.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import React, { FC } from 'react';
|
|
1
|
+
import React, { type FC } from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
|
|
4
4
|
import { SIZE_TO_CLASSNAME_MAP } from '../../consts';
|
|
5
5
|
|
|
6
|
-
import { Content, ContentProps } from './Component';
|
|
6
|
+
import { Content, type ContentProps } from './Component';
|
|
7
7
|
|
|
8
8
|
import styles from './desktop.module.css';
|
|
9
9
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React, { FC } from 'react';
|
|
1
|
+
import React, { type FC } from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
|
|
4
|
-
import { Content, ContentProps } from './Component';
|
|
4
|
+
import { Content, type ContentProps } from './Component';
|
|
5
5
|
|
|
6
6
|
import styles from './mobile.module.css';
|
|
7
7
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import React, { FC } from 'react';
|
|
1
|
+
import React, { type FC } from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
|
|
4
4
|
import { SIZE_TO_CLASSNAME_MAP } from '../../consts';
|
|
5
5
|
|
|
6
|
-
import { Footer, FooterProps } from './Component';
|
|
6
|
+
import { Footer, type FooterProps } from './Component';
|
|
7
7
|
|
|
8
8
|
import styles from './desktop.module.css';
|
|
9
9
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React, { FC } from 'react';
|
|
1
|
+
import React, { type FC } from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
|
|
4
|
-
import { Footer, FooterProps } from './Component';
|
|
4
|
+
import { Footer, type FooterProps } from './Component';
|
|
5
5
|
|
|
6
6
|
import styles from './mobile.module.css';
|
|
7
7
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { FC, ReactNode, useContext, useEffect } from 'react';
|
|
1
|
+
import React, { type FC, type ReactNode, useContext, useEffect } from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
|
|
4
4
|
import { getDataTestId } from '@alfalab/core-components-shared';
|
|
@@ -54,6 +54,10 @@ export const Footer: FC<FooterProps> = ({
|
|
|
54
54
|
|
|
55
55
|
useEffect(() => {
|
|
56
56
|
setHasFooter(true);
|
|
57
|
+
|
|
58
|
+
return () => {
|
|
59
|
+
setHasFooter(false);
|
|
60
|
+
};
|
|
57
61
|
}, [setHasFooter]);
|
|
58
62
|
|
|
59
63
|
return (
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import React, { FC, useContext, useEffect } from 'react';
|
|
1
|
+
import React, { type FC, useContext, useEffect } from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
5
|
NavigationBarPrivate,
|
|
6
|
-
NavigationBarPrivateProps,
|
|
6
|
+
type NavigationBarPrivateProps,
|
|
7
7
|
} from '@alfalab/core-components-navigation-bar-private';
|
|
8
8
|
import { getDataTestId } from '@alfalab/core-components-shared';
|
|
9
9
|
|
|
@@ -2,16 +2,16 @@ import React, { cloneElement, forwardRef, isValidElement, useContext, useRef } f
|
|
|
2
2
|
import mergeRefs from 'react-merge-refs';
|
|
3
3
|
import cn from 'classnames';
|
|
4
4
|
|
|
5
|
-
import { BaseModalProps } from '@alfalab/core-components-base-modal';
|
|
6
|
-
import { Drawer, DrawerProps } from '@alfalab/core-components-drawer';
|
|
5
|
+
import { type BaseModalProps } from '@alfalab/core-components-base-modal';
|
|
6
|
+
import { Drawer, type DrawerProps } from '@alfalab/core-components-drawer';
|
|
7
7
|
|
|
8
8
|
import { ContentDesktop } from '../components/content/Component.desktop';
|
|
9
|
-
import { Controls, ControlsProps } from '../components/controls';
|
|
9
|
+
import { Controls, type ControlsProps } from '../components/controls';
|
|
10
10
|
import { FooterDesktop } from '../components/footer/Component.desktop';
|
|
11
|
-
import { Header, HeaderProps } from '../components/header/Component';
|
|
11
|
+
import { Header, type HeaderProps } from '../components/header/Component';
|
|
12
12
|
import { SIZE_TO_CLASSNAME_MAP } from '../consts';
|
|
13
13
|
import { ResponsiveContext } from '../ResponsiveContext';
|
|
14
|
-
import { TResponsiveModalContext } from '../typings';
|
|
14
|
+
import { type TResponsiveModalContext } from '../typings';
|
|
15
15
|
|
|
16
16
|
import styles from './desktop.module.css';
|
|
17
17
|
import transitions from './transitions.desktop.module.css';
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
@define-mixin exit-active {
|
|
2
2
|
opacity: 0;
|
|
3
|
-
transition:
|
|
3
|
+
transition:
|
|
4
|
+
opacity 200ms ease-out,
|
|
5
|
+
transform 200ms ease-out;
|
|
4
6
|
}
|
|
5
7
|
|
|
6
8
|
.enterRight {
|
|
@@ -16,7 +18,9 @@
|
|
|
16
18
|
.enterActive {
|
|
17
19
|
opacity: 1;
|
|
18
20
|
transform: translateX(0);
|
|
19
|
-
transition:
|
|
21
|
+
transition:
|
|
22
|
+
opacity 200ms ease-in,
|
|
23
|
+
transform 200ms ease-in;
|
|
20
24
|
}
|
|
21
25
|
|
|
22
26
|
.exit {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import React, { forwardRef, useContext, useMemo } from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
|
|
4
|
-
import { BaseModal, BaseModalProps } from '@alfalab/core-components-base-modal';
|
|
4
|
+
import { BaseModal, type BaseModalProps } from '@alfalab/core-components-base-modal';
|
|
5
5
|
|
|
6
6
|
import { ContentMobile } from '../components/content/Component.mobile';
|
|
7
|
-
import { Controls, ControlsProps } from '../components/controls';
|
|
7
|
+
import { Controls, type ControlsProps } from '../components/controls';
|
|
8
8
|
import { FooterMobile } from '../components/footer/Component.mobile';
|
|
9
9
|
import { Header } from '../components/header/Component';
|
|
10
10
|
import { ResponsiveContext } from '../ResponsiveContext';
|
|
11
|
-
import { TResponsiveModalContext } from '../typings';
|
|
11
|
+
import { type TResponsiveModalContext } from '../typings';
|
|
12
12
|
|
|
13
13
|
import styles from './mobile.module.css';
|
|
14
14
|
import transitions from './transitions.mobile.module.css';
|