@alfalab/core-components-side-panel 5.0.0 → 5.0.1
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.js +4 -4
- package/components/content/Component.desktop.js +3 -1
- package/components/content/Component.js +5 -2
- package/components/content/Component.mobile.js +3 -1
- package/components/content/desktop.css +3 -3
- package/components/content/index.css +4 -4
- package/components/content/mobile.css +3 -3
- package/components/controls/Component.js +5 -4
- package/components/controls/index.css +2 -2
- package/components/controls/index.js +2 -1
- package/components/footer/Component.desktop.js +4 -2
- package/components/footer/Component.js +6 -3
- package/components/footer/Component.mobile.js +4 -2
- package/components/footer/desktop.css +3 -3
- package/components/footer/index.css +4 -4
- package/components/footer/layout.css +17 -17
- package/components/footer/mobile.css +3 -3
- package/components/header/Component.js +6 -5
- package/components/header/desktop.css +5 -5
- package/components/header/index.css +14 -14
- package/components/header/mobile.css +4 -4
- package/cssm/Component.responsive.js +3 -3
- package/cssm/components/content/Component.desktop.js +2 -0
- package/cssm/components/content/Component.js +4 -1
- package/cssm/components/content/Component.mobile.js +2 -0
- package/cssm/components/controls/Component.js +3 -2
- package/cssm/components/controls/index.js +1 -0
- package/cssm/components/footer/Component.desktop.js +2 -0
- package/cssm/components/footer/Component.js +4 -1
- package/cssm/components/footer/Component.mobile.js +2 -0
- package/cssm/components/header/Component.js +3 -2
- package/cssm/desktop/Component.desktop.js +4 -3
- package/cssm/desktop/index.js +2 -1
- package/cssm/mobile/Component.mobile.js +4 -3
- package/cssm/mobile/index.js +2 -1
- package/cssm/typings.d.ts +1 -0
- package/desktop/Component.desktop.js +7 -6
- package/desktop/desktop.css +3 -3
- package/desktop/index.js +3 -2
- package/desktop/transitions.desktop.css +7 -7
- package/esm/Component.responsive.js +4 -4
- package/esm/components/content/Component.desktop.js +3 -1
- package/esm/components/content/Component.js +5 -2
- package/esm/components/content/Component.mobile.js +3 -1
- package/esm/components/content/desktop.css +3 -3
- package/esm/components/content/index.css +4 -4
- package/esm/components/content/mobile.css +3 -3
- package/esm/components/controls/Component.js +5 -4
- package/esm/components/controls/index.css +2 -2
- package/esm/components/controls/index.js +2 -1
- package/esm/components/footer/Component.desktop.js +4 -2
- package/esm/components/footer/Component.js +6 -3
- package/esm/components/footer/Component.mobile.js +4 -2
- package/esm/components/footer/desktop.css +3 -3
- package/esm/components/footer/index.css +4 -4
- package/esm/components/footer/layout.css +17 -17
- package/esm/components/footer/mobile.css +3 -3
- package/esm/components/header/Component.js +6 -5
- package/esm/components/header/desktop.css +5 -5
- package/esm/components/header/index.css +14 -14
- package/esm/components/header/mobile.css +4 -4
- package/esm/desktop/Component.desktop.js +7 -6
- package/esm/desktop/desktop.css +3 -3
- package/esm/desktop/index.js +3 -2
- package/esm/desktop/transitions.desktop.css +7 -7
- package/esm/index.js +1 -1
- package/esm/layout.module-31951bef.js +4 -0
- package/esm/mobile/Component.mobile.js +8 -7
- package/esm/mobile/index.js +3 -2
- package/esm/mobile/mobile.css +4 -4
- package/esm/mobile/transitions.mobile.css +8 -8
- package/esm/typings.d.ts +1 -0
- package/index.js +1 -1
- package/layout.module-2f71de49.js +6 -0
- package/mobile/Component.mobile.js +7 -6
- package/mobile/index.js +3 -2
- package/mobile/mobile.css +4 -4
- package/mobile/transitions.mobile.css +8 -8
- package/modern/Component.responsive.js +4 -4
- package/modern/components/content/Component.desktop.js +3 -1
- package/modern/components/content/Component.js +5 -2
- package/modern/components/content/Component.mobile.js +3 -1
- package/modern/components/content/desktop.css +3 -3
- package/modern/components/content/index.css +4 -4
- package/modern/components/content/mobile.css +3 -3
- package/modern/components/controls/Component.js +5 -4
- package/modern/components/controls/index.css +2 -2
- package/modern/components/controls/index.js +2 -1
- package/modern/components/footer/Component.desktop.js +4 -2
- package/modern/components/footer/Component.js +6 -3
- package/modern/components/footer/Component.mobile.js +4 -2
- package/modern/components/footer/desktop.css +3 -3
- package/modern/components/footer/index.css +4 -4
- package/modern/components/footer/layout.css +17 -17
- package/modern/components/footer/mobile.css +3 -3
- package/modern/components/header/Component.js +6 -5
- package/modern/components/header/desktop.css +5 -5
- package/modern/components/header/index.css +14 -14
- package/modern/components/header/mobile.css +4 -4
- package/modern/desktop/Component.desktop.js +7 -6
- package/modern/desktop/desktop.css +3 -3
- package/modern/desktop/index.js +3 -2
- package/modern/desktop/transitions.desktop.css +7 -7
- package/modern/index.js +1 -1
- package/modern/layout.module-a8ffdbd1.js +4 -0
- package/modern/mobile/Component.mobile.js +8 -7
- package/modern/mobile/index.js +3 -2
- package/modern/mobile/mobile.css +4 -4
- package/modern/mobile/transitions.mobile.css +8 -8
- package/modern/typings.d.ts +1 -0
- package/package.json +5 -5
- package/src/Component.responsive.tsx +16 -3
- package/src/components/content/Component.tsx +5 -1
- package/src/components/controls/Component.tsx +4 -1
- package/src/components/footer/Component.tsx +5 -1
- package/src/components/header/Component.tsx +3 -1
- package/src/desktop/Component.desktop.tsx +4 -2
- package/src/mobile/Component.mobile.tsx +8 -4
- package/src/typings.ts +1 -0
- package/typings.d.ts +1 -0
- package/esm/layout.module-39750ede.js +0 -4
- package/layout.module-9de5161f.js +0 -6
- package/modern/layout.module-36042bae.js +0 -4
|
@@ -8,19 +8,20 @@ import { FooterDesktop } from '../components/footer/Component.desktop.js';
|
|
|
8
8
|
import { Header } from '../components/header/Component.js';
|
|
9
9
|
import { ResponsiveContext } from '../ResponsiveContext.js';
|
|
10
10
|
import '../components/content/Component.js';
|
|
11
|
+
import '@alfalab/core-components-shared/modern';
|
|
11
12
|
import '../Context.js';
|
|
12
13
|
import '@alfalab/core-components-base-modal/modern';
|
|
13
|
-
import '../layout.module-
|
|
14
|
+
import '../layout.module-a8ffdbd1.js';
|
|
14
15
|
import '../components/footer/Component.js';
|
|
15
16
|
import '@alfalab/core-components-navigation-bar/modern';
|
|
16
17
|
|
|
17
|
-
const styles = {"s":"side-
|
|
18
|
+
const styles = {"s":"side-panel__s_1nqpu","hidden":"side-panel__hidden_1nqpu"};
|
|
18
19
|
require('./desktop.css')
|
|
19
20
|
|
|
20
|
-
const transitions = {"enterRight":"side-
|
|
21
|
+
const transitions = {"enterRight":"side-panel__enterRight_74yrs","enterLeft":"side-panel__enterLeft_74yrs","enterActive":"side-panel__enterActive_74yrs","exit":"side-panel__exit_74yrs","exitActiveRight":"side-panel__exitActiveRight_74yrs","exitActiveLeft":"side-panel__exitActiveLeft_74yrs"};
|
|
21
22
|
require('./transitions.desktop.css')
|
|
22
23
|
|
|
23
|
-
const SidePanelDesktopComponent = forwardRef(({ size = 's', children, className, wrapperClassName, contentTransitionProps = {}, backdropProps, placement = 'right', ...restProps }, ref) => {
|
|
24
|
+
const SidePanelDesktopComponent = forwardRef(({ size = 's', children, className, wrapperClassName, contentTransitionProps = {}, backdropProps, placement = 'right', dataTestId, ...restProps }, ref) => {
|
|
24
25
|
const responsiveContext = useContext(ResponsiveContext);
|
|
25
26
|
const modalRef = useRef(null);
|
|
26
27
|
const enterCn = cn({
|
|
@@ -31,8 +32,8 @@ const SidePanelDesktopComponent = forwardRef(({ size = 's', children, className,
|
|
|
31
32
|
[transitions.exitActiveRight]: placement === 'right',
|
|
32
33
|
[transitions.exitActiveLeft]: placement === 'left',
|
|
33
34
|
});
|
|
34
|
-
const contextValue = React.useMemo(() => ({ size, view: 'desktop' }), [size]);
|
|
35
|
-
const renderContent = () => (React.createElement(Drawer, { ...restProps, ref: mergeRefs([ref, modalRef]), placement: placement, wrapperClassName: wrapperClassName, className: cn(className, styles[size], styles.hidden), backdropProps: backdropProps, contentTransitionProps: {
|
|
35
|
+
const contextValue = React.useMemo(() => ({ size, view: 'desktop', dataTestId }), [size, dataTestId]);
|
|
36
|
+
const renderContent = () => (React.createElement(Drawer, { ...restProps, dataTestId: dataTestId, ref: mergeRefs([ref, modalRef]), placement: placement, wrapperClassName: wrapperClassName, className: cn(className, styles[size], styles.hidden), backdropProps: backdropProps, contentTransitionProps: {
|
|
36
37
|
classNames: {
|
|
37
38
|
appear: enterCn,
|
|
38
39
|
enter: enterCn,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: 1omtc */
|
|
2
2
|
:root {
|
|
3
3
|
} /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
4
4
|
} :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
/* mobile */
|
|
29
29
|
|
|
30
30
|
/* paddings */
|
|
31
|
-
} .side-
|
|
31
|
+
} .side-panel__s_1nqpu.side-panel__s_1nqpu {
|
|
32
32
|
width: var(--side-panel-s-width);
|
|
33
|
-
} .side-
|
|
33
|
+
} .side-panel__hidden_1nqpu {
|
|
34
34
|
overflow-x: hidden;
|
|
35
35
|
}
|
package/modern/desktop/index.js
CHANGED
|
@@ -5,11 +5,12 @@ import 'classnames';
|
|
|
5
5
|
import '@alfalab/core-components-drawer/modern';
|
|
6
6
|
import '../components/content/Component.desktop.js';
|
|
7
7
|
import '../components/content/Component.js';
|
|
8
|
+
import '@alfalab/core-components-shared/modern';
|
|
8
9
|
import '../Context.js';
|
|
9
10
|
import '@alfalab/core-components-base-modal/modern';
|
|
10
|
-
import '../components/controls/Component.js';
|
|
11
11
|
import '../ResponsiveContext.js';
|
|
12
|
-
import '../
|
|
12
|
+
import '../components/controls/Component.js';
|
|
13
|
+
import '../layout.module-a8ffdbd1.js';
|
|
13
14
|
import '../components/footer/Component.desktop.js';
|
|
14
15
|
import '../components/footer/Component.js';
|
|
15
16
|
import '../components/header/Component.js';
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
/* hash:
|
|
2
|
-
.side-
|
|
1
|
+
/* hash: 10z53 */
|
|
2
|
+
.side-panel__enterRight_74yrs {
|
|
3
3
|
opacity: 0;
|
|
4
4
|
transform: translateX(15px);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
.side-
|
|
7
|
+
.side-panel__enterLeft_74yrs {
|
|
8
8
|
opacity: 0;
|
|
9
9
|
transform: translateX(-15px);
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
.side-
|
|
12
|
+
.side-panel__enterActive_74yrs {
|
|
13
13
|
opacity: 1;
|
|
14
14
|
transform: translateX(0);
|
|
15
15
|
transition: opacity 200ms ease-in, transform 200ms ease-in;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
.side-
|
|
18
|
+
.side-panel__exit_74yrs {
|
|
19
19
|
opacity: 1;
|
|
20
20
|
transform: translateX(0);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
.side-
|
|
23
|
+
.side-panel__exitActiveRight_74yrs {
|
|
24
24
|
opacity: 0;
|
|
25
25
|
transition: opacity 200ms ease-out, transform 200ms ease-out;
|
|
26
26
|
transform: translateX(15px);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
.side-
|
|
29
|
+
.side-panel__exitActiveLeft_74yrs {
|
|
30
30
|
opacity: 0;
|
|
31
31
|
transition: opacity 200ms ease-out, transform 200ms ease-out;
|
|
32
32
|
transform: translateX(-15px);
|
package/modern/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import '@alfalab/core-components-shared/modern';
|
|
|
5
5
|
import './components/controls/Component.js';
|
|
6
6
|
import 'classnames';
|
|
7
7
|
import './ResponsiveContext.js';
|
|
8
|
-
import './layout.module-
|
|
8
|
+
import './layout.module-a8ffdbd1.js';
|
|
9
9
|
import './components/header/Component.js';
|
|
10
10
|
import '@alfalab/core-components-navigation-bar/modern';
|
|
11
11
|
import './Context.js';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const layoutStyles = {"column":"side-panel__column_16gdu","gap-16":"side-panel__gap-16_16gdu","gap-24":"side-panel__gap-24_16gdu","gap-32":"side-panel__gap-32_16gdu","start":"side-panel__start_16gdu","center":"side-panel__center_16gdu","space-between":"side-panel__space-between_16gdu"};
|
|
2
|
+
require('./components/footer/layout.css')
|
|
3
|
+
|
|
4
|
+
export { layoutStyles as l };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { forwardRef, useContext } from 'react';
|
|
1
|
+
import React, { forwardRef, useContext, useMemo } from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
import { BaseModal } from '@alfalab/core-components-base-modal/modern';
|
|
4
4
|
import { ContentMobile } from '../components/content/Component.mobile.js';
|
|
@@ -7,21 +7,22 @@ import { FooterMobile } from '../components/footer/Component.mobile.js';
|
|
|
7
7
|
import { Header } from '../components/header/Component.js';
|
|
8
8
|
import { ResponsiveContext } from '../ResponsiveContext.js';
|
|
9
9
|
import '../components/content/Component.js';
|
|
10
|
+
import '@alfalab/core-components-shared/modern';
|
|
10
11
|
import '../Context.js';
|
|
11
|
-
import '../layout.module-
|
|
12
|
+
import '../layout.module-a8ffdbd1.js';
|
|
12
13
|
import '../components/footer/Component.js';
|
|
13
14
|
import '@alfalab/core-components-navigation-bar/modern';
|
|
14
15
|
|
|
15
|
-
const styles = {"component":"side-
|
|
16
|
+
const styles = {"component":"side-panel__component_1050h","mobileContent":"side-panel__mobileContent_1050h"};
|
|
16
17
|
require('./mobile.css')
|
|
17
18
|
|
|
18
|
-
const transitions = {"appear":"side-
|
|
19
|
+
const transitions = {"appear":"side-panel__appear_1lrki","enter":"side-panel__enter_1lrki","appearActive":"side-panel__appearActive_1lrki","enterActive":"side-panel__enterActive_1lrki","exit":"side-panel__exit_1lrki","exitActive":"side-panel__exitActive_1lrki","exitDone":"side-panel__exitDone_1lrki"};
|
|
19
20
|
require('./transitions.mobile.css')
|
|
20
21
|
|
|
21
|
-
const
|
|
22
|
-
const SidePanelMobileComponent = forwardRef(({ children, className, transitionProps, ...restProps }, ref) => {
|
|
22
|
+
const SidePanelMobileComponent = forwardRef(({ children, className, transitionProps, dataTestId, ...restProps }, ref) => {
|
|
23
23
|
const responsiveContext = useContext(ResponsiveContext);
|
|
24
|
-
const
|
|
24
|
+
const contextValue = useMemo(() => ({ size: 's', view: 'mobile', dataTestId }), [dataTestId]);
|
|
25
|
+
const renderContent = () => (React.createElement(BaseModal, { ...restProps, dataTestId: dataTestId, ref: ref, transitionProps: {
|
|
25
26
|
classNames: transitions,
|
|
26
27
|
...transitionProps,
|
|
27
28
|
}, className: cn(className, styles.component), scrollHandler: 'content' },
|
package/modern/mobile/index.js
CHANGED
|
@@ -4,10 +4,11 @@ import 'classnames';
|
|
|
4
4
|
import '@alfalab/core-components-base-modal/modern';
|
|
5
5
|
import '../components/content/Component.mobile.js';
|
|
6
6
|
import '../components/content/Component.js';
|
|
7
|
+
import '@alfalab/core-components-shared/modern';
|
|
7
8
|
import '../Context.js';
|
|
8
|
-
import '../components/controls/Component.js';
|
|
9
9
|
import '../ResponsiveContext.js';
|
|
10
|
-
import '../
|
|
10
|
+
import '../components/controls/Component.js';
|
|
11
|
+
import '../layout.module-a8ffdbd1.js';
|
|
11
12
|
import '../components/footer/Component.mobile.js';
|
|
12
13
|
import '../components/footer/Component.js';
|
|
13
14
|
import '../components/header/Component.js';
|
package/modern/mobile/mobile.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: uxsui */
|
|
2
2
|
:root {
|
|
3
3
|
} /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
4
4
|
} :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
|
|
@@ -27,17 +27,17 @@
|
|
|
27
27
|
/* mobile */
|
|
28
28
|
|
|
29
29
|
/* paddings */
|
|
30
|
-
} .side-
|
|
30
|
+
} .side-panel__component_1050h {
|
|
31
31
|
top: 0;
|
|
32
32
|
height: 100%;
|
|
33
33
|
width: 100%;
|
|
34
34
|
overflow-x: hidden;
|
|
35
35
|
overflow-y: auto;
|
|
36
36
|
max-width: 600px;
|
|
37
|
-
} .side-
|
|
37
|
+
} .side-panel__component_1050h.side-panel__component_1050h {
|
|
38
38
|
position: fixed;
|
|
39
39
|
flex: 1;
|
|
40
|
-
} .side-
|
|
40
|
+
} .side-panel__mobileContent_1050h {
|
|
41
41
|
display: flex;
|
|
42
42
|
flex-direction: column;
|
|
43
43
|
width: 100%;
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
/* hash:
|
|
2
|
-
.side-
|
|
3
|
-
.side-
|
|
1
|
+
/* hash: ntku8 */
|
|
2
|
+
.side-panel__appear_1lrki,
|
|
3
|
+
.side-panel__enter_1lrki {
|
|
4
4
|
opacity: 0;
|
|
5
5
|
transform: translateY(15px);
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
.side-
|
|
9
|
-
.side-
|
|
8
|
+
.side-panel__appearActive_1lrki,
|
|
9
|
+
.side-panel__enterActive_1lrki {
|
|
10
10
|
opacity: 1;
|
|
11
11
|
transform: translateY(0);
|
|
12
12
|
transition: opacity 200ms ease-in, transform 200ms ease-in;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
.side-
|
|
15
|
+
.side-panel__exit_1lrki {
|
|
16
16
|
opacity: 1;
|
|
17
17
|
transform: translateY(0);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
.side-
|
|
21
|
-
.side-
|
|
20
|
+
.side-panel__exitActive_1lrki,
|
|
21
|
+
.side-panel__exitDone_1lrki {
|
|
22
22
|
opacity: 0;
|
|
23
23
|
transform: translateY(15px);
|
|
24
24
|
transition: opacity 200ms ease-out, transform 200ms ease-out;
|
package/modern/typings.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alfalab/core-components-side-panel",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.1",
|
|
4
4
|
"description": "SidePanel component",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "MIT",
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
"react": "^16.9.0 || ^17.0.1 || ^18.0.0"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@alfalab/core-components-base-modal": "^5.7.
|
|
18
|
-
"@alfalab/core-components-drawer": "^5.0.
|
|
17
|
+
"@alfalab/core-components-base-modal": "^5.7.1",
|
|
18
|
+
"@alfalab/core-components-drawer": "^5.0.7",
|
|
19
19
|
"@alfalab/core-components-mq": "^4.2.0",
|
|
20
|
-
"@alfalab/core-components-navigation-bar": "^0.
|
|
21
|
-
"@alfalab/core-components-shared": "^0.
|
|
20
|
+
"@alfalab/core-components-navigation-bar": "^0.8.0",
|
|
21
|
+
"@alfalab/core-components-shared": "^0.9.0",
|
|
22
22
|
"classnames": "^2.3.1",
|
|
23
23
|
"react-merge-refs": "^1.1.0",
|
|
24
24
|
"tslib": "^2.4.0"
|
|
@@ -55,7 +55,17 @@ function createResponsive<DesktopType extends FC, MobileType extends FC>(
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
const SidePanelResponsiveComponent = forwardRef<HTMLDivElement, SidePanelResponsiveProps>(
|
|
58
|
-
(
|
|
58
|
+
(
|
|
59
|
+
{
|
|
60
|
+
children,
|
|
61
|
+
breakpoint = 1024,
|
|
62
|
+
size = 's',
|
|
63
|
+
defaultMatchMediaValue,
|
|
64
|
+
dataTestId,
|
|
65
|
+
...restProps
|
|
66
|
+
},
|
|
67
|
+
ref,
|
|
68
|
+
) => {
|
|
59
69
|
const query = `(min-width: ${breakpoint}px)`;
|
|
60
70
|
const getDefaultValue = () => (isClient() ? window.matchMedia(query).matches : false);
|
|
61
71
|
|
|
@@ -63,13 +73,16 @@ const SidePanelResponsiveComponent = forwardRef<HTMLDivElement, SidePanelRespons
|
|
|
63
73
|
|
|
64
74
|
const view = isDesktop ? 'desktop' : 'mobile';
|
|
65
75
|
|
|
66
|
-
const contextValue = useMemo<TResponsiveModalContext>(
|
|
76
|
+
const contextValue = useMemo<TResponsiveModalContext>(
|
|
77
|
+
() => ({ view, size, dataTestId }),
|
|
78
|
+
[view, size, dataTestId],
|
|
79
|
+
);
|
|
67
80
|
|
|
68
81
|
const Component = isDesktop ? SidePanelDesktop : SidePanelMobile;
|
|
69
82
|
|
|
70
83
|
return (
|
|
71
84
|
<ResponsiveContext.Provider value={contextValue}>
|
|
72
|
-
<Component ref={ref} size={size} {...restProps}>
|
|
85
|
+
<Component ref={ref} size={size} dataTestId={dataTestId} {...restProps}>
|
|
73
86
|
{children}
|
|
74
87
|
</Component>
|
|
75
88
|
</ResponsiveContext.Provider>
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import React, { FC, ReactNode, Ref, useContext } from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
|
|
4
|
+
import { getDataTestId } from '@alfalab/core-components-shared';
|
|
5
|
+
|
|
4
6
|
import { ModalContext } from '../../Context';
|
|
7
|
+
import { ResponsiveContext } from '../../ResponsiveContext';
|
|
5
8
|
|
|
6
9
|
import styles from './index.module.css';
|
|
7
10
|
|
|
@@ -24,6 +27,7 @@ export type ContentProps = {
|
|
|
24
27
|
|
|
25
28
|
export const Content: FC<ContentProps> = ({ children, className, dataTestId }) => {
|
|
26
29
|
const { contentRef, hasHeader } = useContext(ModalContext);
|
|
30
|
+
const responsiveContext = useContext(ResponsiveContext);
|
|
27
31
|
|
|
28
32
|
return (
|
|
29
33
|
<div
|
|
@@ -31,7 +35,7 @@ export const Content: FC<ContentProps> = ({ children, className, dataTestId }) =
|
|
|
31
35
|
[styles.withHeader]: hasHeader,
|
|
32
36
|
})}
|
|
33
37
|
ref={contentRef as Ref<HTMLDivElement>}
|
|
34
|
-
data-test-id={dataTestId}
|
|
38
|
+
data-test-id={dataTestId || getDataTestId(responsiveContext?.dataTestId, 'content')}
|
|
35
39
|
>
|
|
36
40
|
{children}
|
|
37
41
|
</div>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React, { ReactNode, useContext } from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
|
|
4
|
+
import { getDataTestId } from '@alfalab/core-components-shared';
|
|
5
|
+
|
|
4
6
|
import { ResponsiveContext } from '../../ResponsiveContext';
|
|
5
7
|
|
|
6
8
|
import layoutStyles from '../footer/layout.module.css';
|
|
@@ -43,7 +45,7 @@ export const Controls: React.FC<ControlsProps> = ({
|
|
|
43
45
|
mobileLayout = layoutProp,
|
|
44
46
|
}) => {
|
|
45
47
|
const context = useContext(ResponsiveContext);
|
|
46
|
-
const { view = 'desktop' } = context || {};
|
|
48
|
+
const { view = 'desktop', dataTestId } = context || {};
|
|
47
49
|
|
|
48
50
|
const layout = view === 'mobile' ? mobileLayout : layoutProp;
|
|
49
51
|
|
|
@@ -51,6 +53,7 @@ export const Controls: React.FC<ControlsProps> = ({
|
|
|
51
53
|
|
|
52
54
|
return (
|
|
53
55
|
<div
|
|
56
|
+
data-test-id={getDataTestId(dataTestId, 'controls')}
|
|
54
57
|
className={cn(
|
|
55
58
|
styles.component,
|
|
56
59
|
layoutStyles[layout],
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import React, { FC, ReactNode, useContext, useEffect } from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
|
|
4
|
+
import { getDataTestId } from '@alfalab/core-components-shared';
|
|
5
|
+
|
|
4
6
|
import { ModalContext } from '../../Context';
|
|
7
|
+
import { ResponsiveContext } from '../../ResponsiveContext';
|
|
5
8
|
|
|
6
9
|
import styles from './index.module.css';
|
|
7
10
|
import layoutStyles from './layout.module.css';
|
|
@@ -47,6 +50,7 @@ export const Footer: FC<FooterProps> = ({
|
|
|
47
50
|
dataTestId,
|
|
48
51
|
}) => {
|
|
49
52
|
const { footerHighlighted, setHasFooter } = useContext(ModalContext);
|
|
53
|
+
const responsiveContext = useContext(ResponsiveContext);
|
|
50
54
|
|
|
51
55
|
useEffect(() => {
|
|
52
56
|
setHasFooter(true);
|
|
@@ -64,7 +68,7 @@ export const Footer: FC<FooterProps> = ({
|
|
|
64
68
|
[styles.sticky]: sticky,
|
|
65
69
|
},
|
|
66
70
|
)}
|
|
67
|
-
data-test-id={dataTestId}
|
|
71
|
+
data-test-id={dataTestId || getDataTestId(responsiveContext?.dataTestId, 'footer')}
|
|
68
72
|
>
|
|
69
73
|
{children}
|
|
70
74
|
</div>
|
|
@@ -2,6 +2,7 @@ import React, { FC, useContext, useEffect } from 'react';
|
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
|
|
4
4
|
import { NavigationBar, NavigationBarProps } from '@alfalab/core-components-navigation-bar';
|
|
5
|
+
import { getDataTestId } from '@alfalab/core-components-shared';
|
|
5
6
|
|
|
6
7
|
import { ModalContext } from '../../Context';
|
|
7
8
|
import { ResponsiveContext } from '../../ResponsiveContext';
|
|
@@ -22,7 +23,7 @@ export const Header: FC<HeaderProps> = ({
|
|
|
22
23
|
...restProps
|
|
23
24
|
}) => {
|
|
24
25
|
const { setHasHeader, headerHighlighted, onClose, componentRef } = useContext(ModalContext);
|
|
25
|
-
const { size = 's', view = 'desktop' } = useContext(ResponsiveContext) || {};
|
|
26
|
+
const { size = 's', view = 'desktop', dataTestId } = useContext(ResponsiveContext) || {};
|
|
26
27
|
|
|
27
28
|
useEffect(() => {
|
|
28
29
|
setHasHeader(true);
|
|
@@ -33,6 +34,7 @@ export const Header: FC<HeaderProps> = ({
|
|
|
33
34
|
return (
|
|
34
35
|
<NavigationBar
|
|
35
36
|
{...restProps}
|
|
37
|
+
dataTestId={getDataTestId(dataTestId, 'header')}
|
|
36
38
|
scrollableParentRef={componentRef}
|
|
37
39
|
view={view}
|
|
38
40
|
sticky={sticky}
|
|
@@ -40,6 +40,7 @@ const SidePanelDesktopComponent = forwardRef<HTMLDivElement, SidePanelDesktopPro
|
|
|
40
40
|
contentTransitionProps = {},
|
|
41
41
|
backdropProps,
|
|
42
42
|
placement = 'right',
|
|
43
|
+
dataTestId,
|
|
43
44
|
...restProps
|
|
44
45
|
},
|
|
45
46
|
ref,
|
|
@@ -58,13 +59,14 @@ const SidePanelDesktopComponent = forwardRef<HTMLDivElement, SidePanelDesktopPro
|
|
|
58
59
|
});
|
|
59
60
|
|
|
60
61
|
const contextValue = React.useMemo<TResponsiveModalContext>(
|
|
61
|
-
() => ({ size, view: 'desktop' }),
|
|
62
|
-
[size],
|
|
62
|
+
() => ({ size, view: 'desktop', dataTestId }),
|
|
63
|
+
[size, dataTestId],
|
|
63
64
|
);
|
|
64
65
|
|
|
65
66
|
const renderContent = () => (
|
|
66
67
|
<Drawer
|
|
67
68
|
{...restProps}
|
|
69
|
+
dataTestId={dataTestId}
|
|
68
70
|
ref={mergeRefs([ref, modalRef])}
|
|
69
71
|
placement={placement}
|
|
70
72
|
wrapperClassName={wrapperClassName}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { forwardRef, useContext } from 'react';
|
|
1
|
+
import React, { forwardRef, useContext, useMemo } from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
|
|
4
4
|
import { BaseModal, BaseModalProps } from '@alfalab/core-components-base-modal';
|
|
@@ -8,6 +8,7 @@ import { Controls, 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
12
|
|
|
12
13
|
import styles from './mobile.module.css';
|
|
13
14
|
import transitions from './transitions.mobile.module.css';
|
|
@@ -20,15 +21,18 @@ export type SidePanelMobileProps = BaseModalProps & {
|
|
|
20
21
|
hasCloser?: boolean;
|
|
21
22
|
};
|
|
22
23
|
|
|
23
|
-
const contextValue = { size: 's', view: 'mobile' } as const;
|
|
24
|
-
|
|
25
24
|
const SidePanelMobileComponent = forwardRef<HTMLDivElement, SidePanelMobileProps>(
|
|
26
|
-
({ children, className, transitionProps, ...restProps }, ref) => {
|
|
25
|
+
({ children, className, transitionProps, dataTestId, ...restProps }, ref) => {
|
|
27
26
|
const responsiveContext = useContext(ResponsiveContext);
|
|
27
|
+
const contextValue = useMemo<TResponsiveModalContext>(
|
|
28
|
+
() => ({ size: 's', view: 'mobile', dataTestId }),
|
|
29
|
+
[dataTestId],
|
|
30
|
+
);
|
|
28
31
|
|
|
29
32
|
const renderContent = () => (
|
|
30
33
|
<BaseModal
|
|
31
34
|
{...restProps}
|
|
35
|
+
dataTestId={dataTestId}
|
|
32
36
|
ref={ref}
|
|
33
37
|
transitionProps={{
|
|
34
38
|
classNames: transitions,
|
package/src/typings.ts
CHANGED
package/typings.d.ts
CHANGED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
var layoutStyles = {"column":"side-panel__column_1465d","gap-16":"side-panel__gap-16_1465d","gap-24":"side-panel__gap-24_1465d","gap-32":"side-panel__gap-32_1465d","start":"side-panel__start_1465d","center":"side-panel__center_1465d","space-between":"side-panel__space-between_1465d"};
|
|
2
|
-
require('./components/footer/layout.css')
|
|
3
|
-
|
|
4
|
-
export { layoutStyles as l };
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var layoutStyles = {"column":"side-panel__column_1465d","gap-16":"side-panel__gap-16_1465d","gap-24":"side-panel__gap-24_1465d","gap-32":"side-panel__gap-32_1465d","start":"side-panel__start_1465d","center":"side-panel__center_1465d","space-between":"side-panel__space-between_1465d"};
|
|
4
|
-
require('./components/footer/layout.css')
|
|
5
|
-
|
|
6
|
-
exports.layoutStyles = layoutStyles;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
const layoutStyles = {"column":"side-panel__column_1465d","gap-16":"side-panel__gap-16_1465d","gap-24":"side-panel__gap-24_1465d","gap-32":"side-panel__gap-32_1465d","start":"side-panel__start_1465d","center":"side-panel__center_1465d","space-between":"side-panel__space-between_1465d"};
|
|
2
|
-
require('./components/footer/layout.css')
|
|
3
|
-
|
|
4
|
-
export { layoutStyles as l };
|