@alfalab/core-components-side-panel 7.0.7 → 7.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/content/desktop.css +2 -2
- package/components/content/desktop.module.css.js +1 -1
- package/components/content/index.css +3 -3
- package/components/content/index.module.css.js +1 -1
- package/components/content/mobile.css +6 -6
- package/components/content/mobile.module.css.js +1 -1
- package/components/content/mobile.module.css.js.map +1 -1
- package/components/controls/Component.js +7 -3
- 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/controls/mobile.layout.css +13 -0
- package/components/controls/mobile.layout.module.css.js +8 -0
- package/components/controls/mobile.layout.module.css.js.map +1 -0
- package/components/footer/desktop.css +2 -2
- package/components/footer/desktop.module.css.js +1 -1
- package/components/footer/index.css +3 -3
- package/components/footer/index.module.css.js +1 -1
- package/components/footer/layout.css +16 -16
- package/components/footer/layout.module.css.js +1 -1
- package/components/footer/mobile.css +7 -7
- package/components/footer/mobile.module.css.js +1 -1
- package/components/footer/mobile.module.css.js.map +1 -1
- package/components/header/desktop.css +3 -3
- package/components/header/desktop.module.css.js +1 -1
- package/components/header/index.css +13 -13
- package/components/header/index.module.css.js +1 -1
- package/components/header/mobile.css +8 -6
- package/components/header/mobile.module.css.js +1 -1
- package/cssm/components/content/mobile.module.css +4 -4
- package/cssm/components/controls/Component.js +8 -3
- package/cssm/components/controls/Component.js.map +1 -1
- package/cssm/components/controls/mobile.layout.module.css +13 -0
- package/cssm/components/footer/mobile.module.css +4 -4
- package/cssm/components/header/mobile.module.css +4 -2
- package/desktop/desktop.css +2 -2
- package/desktop/desktop.module.css.js +1 -1
- package/desktop/transitions.desktop.css +6 -6
- package/desktop/transitions.desktop.module.css.js +1 -1
- package/esm/components/content/desktop.css +2 -2
- package/esm/components/content/desktop.module.css.js +1 -1
- package/esm/components/content/index.css +3 -3
- package/esm/components/content/index.module.css.js +1 -1
- package/esm/components/content/mobile.css +6 -6
- package/esm/components/content/mobile.module.css.js +1 -1
- package/esm/components/content/mobile.module.css.js.map +1 -1
- package/esm/components/controls/Component.js +7 -3
- 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/controls/mobile.layout.css +13 -0
- package/esm/components/controls/mobile.layout.module.css.js +6 -0
- package/esm/components/controls/mobile.layout.module.css.js.map +1 -0
- package/esm/components/footer/desktop.css +2 -2
- package/esm/components/footer/desktop.module.css.js +1 -1
- package/esm/components/footer/index.css +3 -3
- package/esm/components/footer/index.module.css.js +1 -1
- package/esm/components/footer/layout.css +16 -16
- package/esm/components/footer/layout.module.css.js +1 -1
- package/esm/components/footer/mobile.css +7 -7
- package/esm/components/footer/mobile.module.css.js +1 -1
- package/esm/components/footer/mobile.module.css.js.map +1 -1
- package/esm/components/header/desktop.css +3 -3
- package/esm/components/header/desktop.module.css.js +1 -1
- package/esm/components/header/index.css +13 -13
- package/esm/components/header/index.module.css.js +1 -1
- package/esm/components/header/mobile.css +8 -6
- package/esm/components/header/mobile.module.css.js +1 -1
- package/esm/desktop/desktop.css +2 -2
- package/esm/desktop/desktop.module.css.js +1 -1
- package/esm/desktop/transitions.desktop.css +6 -6
- package/esm/desktop/transitions.desktop.module.css.js +1 -1
- package/esm/mobile/mobile.css +4 -4
- package/esm/mobile/mobile.module.css.js +1 -1
- package/esm/mobile/transitions.mobile.css +7 -7
- package/esm/mobile/transitions.mobile.module.css.js +1 -1
- package/mobile/mobile.css +4 -4
- package/mobile/mobile.module.css.js +1 -1
- package/mobile/transitions.mobile.css +7 -7
- package/mobile/transitions.mobile.module.css.js +1 -1
- package/modern/components/content/desktop.css +2 -2
- package/modern/components/content/desktop.module.css.js +1 -1
- package/modern/components/content/index.css +3 -3
- package/modern/components/content/index.module.css.js +1 -1
- package/modern/components/content/mobile.css +6 -6
- package/modern/components/content/mobile.module.css.js +1 -1
- package/modern/components/content/mobile.module.css.js.map +1 -1
- package/modern/components/controls/Component.js +4 -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/controls/mobile.layout.css +13 -0
- package/modern/components/controls/mobile.layout.module.css.js +6 -0
- package/modern/components/controls/mobile.layout.module.css.js.map +1 -0
- package/modern/components/footer/desktop.css +2 -2
- package/modern/components/footer/desktop.module.css.js +1 -1
- package/modern/components/footer/index.css +3 -3
- package/modern/components/footer/index.module.css.js +1 -1
- package/modern/components/footer/layout.css +16 -16
- package/modern/components/footer/layout.module.css.js +1 -1
- package/modern/components/footer/mobile.css +7 -7
- package/modern/components/footer/mobile.module.css.js +1 -1
- package/modern/components/footer/mobile.module.css.js.map +1 -1
- package/modern/components/header/desktop.css +3 -3
- package/modern/components/header/desktop.module.css.js +1 -1
- package/modern/components/header/index.css +13 -13
- package/modern/components/header/index.module.css.js +1 -1
- package/modern/components/header/mobile.css +8 -6
- package/modern/components/header/mobile.module.css.js +1 -1
- package/modern/desktop/desktop.css +2 -2
- package/modern/desktop/desktop.module.css.js +1 -1
- package/modern/desktop/transitions.desktop.css +6 -6
- package/modern/desktop/transitions.desktop.module.css.js +1 -1
- package/modern/mobile/mobile.css +4 -4
- package/modern/mobile/mobile.module.css.js +1 -1
- package/modern/mobile/transitions.mobile.css +7 -7
- package/modern/mobile/transitions.mobile.module.css.js +1 -1
- package/moderncssm/components/content/mobile.module.css +2 -2
- package/moderncssm/components/controls/Component.js +4 -1
- package/moderncssm/components/controls/Component.js.map +1 -1
- package/moderncssm/components/controls/mobile.layout.module.css +13 -0
- package/moderncssm/components/footer/mobile.module.css +2 -2
- package/moderncssm/components/header/mobile.module.css +2 -2
- package/package.json +4 -4
- package/src/components/content/mobile.module.css +2 -2
- package/src/components/controls/Component.tsx +4 -0
- package/src/components/controls/mobile.layout.module.css +15 -0
- package/src/components/footer/mobile.module.css +2 -2
- package/src/vars.css +3 -2
|
@@ -7,38 +7,38 @@
|
|
|
7
7
|
--side-panel-header-highlight-background: var(--color-light-modal-bg-primary);
|
|
8
8
|
--side-panel-header-highlight-box-shadow: 0 1px 0 0 var(--color-light-neutral-300);
|
|
9
9
|
}
|
|
10
|
-
.side-
|
|
10
|
+
.side-panel__header_54qsv {
|
|
11
11
|
width: 100%;
|
|
12
12
|
box-sizing: border-box;
|
|
13
13
|
transition:
|
|
14
14
|
box-shadow 0.2s ease,
|
|
15
15
|
background 0.2s ease;
|
|
16
16
|
}
|
|
17
|
-
.side-
|
|
17
|
+
.side-panel__header_54qsv:not(.side-panel__hasContent_54qsv) {
|
|
18
18
|
pointer-events: none;
|
|
19
19
|
}
|
|
20
|
-
.side-
|
|
20
|
+
.side-panel__highlighted_54qsv {
|
|
21
21
|
background: var(--side-panel-header-highlight-background);
|
|
22
22
|
box-shadow: var(--side-panel-header-highlight-box-shadow);
|
|
23
23
|
}
|
|
24
|
-
.side-
|
|
24
|
+
.side-panel__sticky_54qsv {
|
|
25
25
|
position: sticky;
|
|
26
26
|
z-index: 1;
|
|
27
27
|
}
|
|
28
|
-
.side-
|
|
28
|
+
.side-panel__sticky_54qsv.side-panel__hasContent_54qsv {
|
|
29
29
|
background: var(--side-panel-header-background);
|
|
30
30
|
}
|
|
31
|
-
.side-
|
|
31
|
+
.side-panel__header_54qsv.side-panel__backgroundImage_54qsv {
|
|
32
32
|
background: center no-repeat;
|
|
33
33
|
background-size: cover;
|
|
34
34
|
}
|
|
35
|
-
.side-
|
|
35
|
+
.side-panel__content_54qsv {
|
|
36
36
|
flex-grow: 1;
|
|
37
37
|
}
|
|
38
|
-
.side-
|
|
38
|
+
.side-panel__title_54qsv {
|
|
39
39
|
word-break: break-word;
|
|
40
40
|
}
|
|
41
|
-
.side-
|
|
41
|
+
.side-panel__addon_54qsv {
|
|
42
42
|
min-width: 48px;
|
|
43
43
|
height: 48px;
|
|
44
44
|
display: flex;
|
|
@@ -46,17 +46,17 @@
|
|
|
46
46
|
align-items: center;
|
|
47
47
|
pointer-events: all;
|
|
48
48
|
}
|
|
49
|
-
.side-
|
|
49
|
+
.side-panel__closer_54qsv {
|
|
50
50
|
margin-left: auto;
|
|
51
51
|
}
|
|
52
|
-
.side-
|
|
52
|
+
.side-panel__right_54qsv {
|
|
53
53
|
justify-content: flex-end;
|
|
54
54
|
text-align: right;
|
|
55
55
|
}
|
|
56
|
-
.side-
|
|
56
|
+
.side-panel__trim_54qsv {
|
|
57
57
|
overflow: hidden;
|
|
58
58
|
}
|
|
59
|
-
.side-
|
|
59
|
+
.side-panel__trim_54qsv .side-panel__title_54qsv {
|
|
60
60
|
overflow: hidden;
|
|
61
61
|
white-space: nowrap;
|
|
62
62
|
text-overflow: ellipsis;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
|
|
3
|
-
const styles = {"header":"side-
|
|
3
|
+
const styles = {"header":"side-panel__header_54qsv","hasContent":"side-panel__hasContent_54qsv","highlighted":"side-panel__highlighted_54qsv","sticky":"side-panel__sticky_54qsv"};
|
|
4
4
|
|
|
5
5
|
export { styles as default };
|
|
6
6
|
//# sourceMappingURL=index.module.css.js.map
|
|
@@ -4,10 +4,12 @@
|
|
|
4
4
|
:root {
|
|
5
5
|
--gap-2xs: 4px;
|
|
6
6
|
--gap-xs: 8px;
|
|
7
|
+
--gap-s: 12px;
|
|
7
8
|
--gap-0: 0px;
|
|
8
9
|
--gap-4: var(--gap-2xs);
|
|
9
10
|
--gap-8: var(--gap-xs);
|
|
10
11
|
--gap-10: 10px;
|
|
12
|
+
--gap-12: var(--gap-s);
|
|
11
13
|
}
|
|
12
14
|
:root {
|
|
13
15
|
--font-family-system:
|
|
@@ -16,21 +18,21 @@
|
|
|
16
18
|
:root {
|
|
17
19
|
--side-panel-header-mobile-content-paddings: var(--gap-10) var(--gap-8);
|
|
18
20
|
--side-panel-header-mobile-top-padding: var(--gap-4);
|
|
19
|
-
--side-panel-header-mobile-paddings: var(--side-panel-header-mobile-top-padding) var(--gap-
|
|
20
|
-
var(--gap-4) var(--gap-
|
|
21
|
+
--side-panel-header-mobile-paddings: var(--side-panel-header-mobile-top-padding) var(--gap-12)
|
|
22
|
+
var(--gap-4) var(--gap-12);
|
|
21
23
|
}
|
|
22
|
-
.side-
|
|
24
|
+
.side-panel__header_mq7sk {
|
|
23
25
|
padding: var(--side-panel-header-mobile-paddings);
|
|
24
26
|
}
|
|
25
27
|
@media (display-mode: standalone) {
|
|
26
|
-
.side-
|
|
28
|
+
.side-panel__header_mq7sk {
|
|
27
29
|
padding-top: calc(var(--sat) + var(--side-panel-header-mobile-top-padding));
|
|
28
30
|
}
|
|
29
31
|
}
|
|
30
|
-
.side-
|
|
32
|
+
.side-panel__sticky_mq7sk {
|
|
31
33
|
top: var(--gap-0);
|
|
32
34
|
}
|
|
33
|
-
.side-
|
|
35
|
+
.side-panel__content_mq7sk {
|
|
34
36
|
padding: var(--side-panel-header-mobile-content-paddings);
|
|
35
37
|
|
|
36
38
|
font-size: 20px;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './mobile.css';
|
|
2
2
|
|
|
3
|
-
const mobileStyles = {"header":"side-
|
|
3
|
+
const mobileStyles = {"header":"side-panel__header_mq7sk","sticky":"side-panel__sticky_mq7sk","content":"side-panel__content_mq7sk"};
|
|
4
4
|
|
|
5
5
|
export { mobileStyles as default };
|
|
6
6
|
//# sourceMappingURL=mobile.module.css.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
--side-panel-s-width: 500px;
|
|
3
3
|
}
|
|
4
|
-
.side-panel__size-
|
|
4
|
+
.side-panel__size-500_1yys0.side-panel__size-500_1yys0 {
|
|
5
5
|
width: var(--side-panel-s-width);
|
|
6
6
|
}
|
|
7
|
-
.side-
|
|
7
|
+
.side-panel__hidden_1yys0 {
|
|
8
8
|
overflow-x: hidden;
|
|
9
9
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './desktop.css';
|
|
2
2
|
|
|
3
|
-
const styles = {"size-500":"side-panel__size-
|
|
3
|
+
const styles = {"size-500":"side-panel__size-500_1yys0","hidden":"side-panel__hidden_1yys0"};
|
|
4
4
|
|
|
5
5
|
export { styles as default };
|
|
6
6
|
//# sourceMappingURL=desktop.module.css.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
.side-
|
|
1
|
+
.side-panel__enterRight_6ypzi {
|
|
2
2
|
opacity: 0;
|
|
3
3
|
transform: translateX(15px);
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
-
.side-
|
|
6
|
+
.side-panel__enterLeft_6ypzi {
|
|
7
7
|
opacity: 0;
|
|
8
8
|
transform: translateX(-15px);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
.side-
|
|
11
|
+
.side-panel__enterActive_6ypzi {
|
|
12
12
|
opacity: 1;
|
|
13
13
|
transform: translateX(0);
|
|
14
14
|
transition:
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
transform 200ms ease-in;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
.side-
|
|
19
|
+
.side-panel__exit_6ypzi {
|
|
20
20
|
opacity: 1;
|
|
21
21
|
transform: translateX(0);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
.side-
|
|
24
|
+
.side-panel__exitActiveRight_6ypzi {
|
|
25
25
|
opacity: 0;
|
|
26
26
|
transition:
|
|
27
27
|
opacity 200ms ease-out,
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
transform: translateX(15px);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
.side-
|
|
32
|
+
.side-panel__exitActiveLeft_6ypzi {
|
|
33
33
|
opacity: 0;
|
|
34
34
|
transition:
|
|
35
35
|
opacity 200ms ease-out,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './transitions.desktop.css';
|
|
2
2
|
|
|
3
|
-
const transitions = {"enterActive":"side-
|
|
3
|
+
const transitions = {"enterActive":"side-panel__enterActive_6ypzi","exit":"side-panel__exit_6ypzi","exitActiveRight":"side-panel__exitActiveRight_6ypzi","exitActiveLeft":"side-panel__exitActiveLeft_6ypzi"};
|
|
4
4
|
|
|
5
5
|
export { transitions as default };
|
|
6
6
|
//# sourceMappingURL=transitions.desktop.module.css.js.map
|
package/modern/mobile/mobile.css
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
:root {
|
|
6
6
|
--gap-0: 0px;
|
|
7
7
|
}
|
|
8
|
-
.side-
|
|
8
|
+
.side-panel__component_1o61u {
|
|
9
9
|
top: var(--gap-0);
|
|
10
10
|
height: 100%;
|
|
11
11
|
width: 100%;
|
|
@@ -13,17 +13,17 @@
|
|
|
13
13
|
overflow-y: auto;
|
|
14
14
|
max-width: 600px;
|
|
15
15
|
}
|
|
16
|
-
.side-
|
|
16
|
+
.side-panel__component_1o61u.side-panel__component_1o61u {
|
|
17
17
|
position: fixed;
|
|
18
18
|
flex: 1;
|
|
19
19
|
}
|
|
20
20
|
@media (display-mode: standalone) {
|
|
21
|
-
.side-
|
|
21
|
+
.side-panel__content_1o61u {
|
|
22
22
|
padding-top: var(--sat);
|
|
23
23
|
padding-bottom: var(--sab);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
.side-
|
|
26
|
+
.side-panel__mobileContent_1o61u {
|
|
27
27
|
display: flex;
|
|
28
28
|
flex-direction: column;
|
|
29
29
|
width: 100%;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './mobile.css';
|
|
2
2
|
|
|
3
|
-
const styles = {"component":"side-
|
|
3
|
+
const styles = {"component":"side-panel__component_1o61u","content":"side-panel__content_1o61u","mobileContent":"side-panel__mobileContent_1o61u"};
|
|
4
4
|
|
|
5
5
|
export { styles as default };
|
|
6
6
|
//# sourceMappingURL=mobile.module.css.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
.side-
|
|
2
|
-
.side-
|
|
1
|
+
.side-panel__appear_ydqgt,
|
|
2
|
+
.side-panel__enter_ydqgt {
|
|
3
3
|
opacity: 0;
|
|
4
4
|
transform: translateY(15px);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
.side-
|
|
8
|
-
.side-
|
|
7
|
+
.side-panel__appearActive_ydqgt,
|
|
8
|
+
.side-panel__enterActive_ydqgt {
|
|
9
9
|
opacity: 1;
|
|
10
10
|
transform: translateY(0);
|
|
11
11
|
transition:
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
transform 200ms ease-in;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
.side-
|
|
16
|
+
.side-panel__exit_ydqgt {
|
|
17
17
|
opacity: 1;
|
|
18
18
|
transform: translateY(0);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
.side-
|
|
22
|
-
.side-
|
|
21
|
+
.side-panel__exitActive_ydqgt,
|
|
22
|
+
.side-panel__exitDone_ydqgt {
|
|
23
23
|
opacity: 0;
|
|
24
24
|
transform: translateY(15px);
|
|
25
25
|
transition:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './transitions.mobile.css';
|
|
2
2
|
|
|
3
|
-
const transitions = {"appear":"side-
|
|
3
|
+
const transitions = {"appear":"side-panel__appear_ydqgt","enter":"side-panel__enter_ydqgt","appearActive":"side-panel__appearActive_ydqgt","enterActive":"side-panel__enterActive_ydqgt","exit":"side-panel__exit_ydqgt","exitActive":"side-panel__exitActive_ydqgt","exitDone":"side-panel__exitDone_ydqgt"};
|
|
4
4
|
|
|
5
5
|
export { transitions as default };
|
|
6
6
|
//# sourceMappingURL=transitions.mobile.module.css.js.map
|
|
@@ -4,13 +4,16 @@ import { getDataTestId } from '@alfalab/core-components-shared/moderncssm';
|
|
|
4
4
|
import { ResponsiveContext } from '../../ResponsiveContext.js';
|
|
5
5
|
import layoutStyles from '../footer/layout.module.css';
|
|
6
6
|
import styles from './index.module.css';
|
|
7
|
+
import mobileLayoutStyles from './mobile.layout.module.css';
|
|
7
8
|
|
|
8
9
|
const Controls = ({ primary, secondary, gap, layout: layoutProp = 'start', mobileLayout = layoutProp, }) => {
|
|
9
10
|
const context = useContext(ResponsiveContext);
|
|
10
11
|
const { view = 'desktop', dataTestId } = context || {};
|
|
11
12
|
const layout = view === 'mobile' ? mobileLayout : layoutProp;
|
|
12
13
|
const shouldReverse = view === 'mobile' && layout !== 'column';
|
|
13
|
-
return (React.createElement("div", { "data-test-id": getDataTestId(dataTestId, 'controls'), className: cn(styles.component, layoutStyles[layout], gap && layoutStyles[`gap-${gap}`]
|
|
14
|
+
return (React.createElement("div", { "data-test-id": getDataTestId(dataTestId, 'controls'), className: cn(styles.component, layoutStyles[layout], gap && layoutStyles[`gap-${gap}`], {
|
|
15
|
+
[mobileLayoutStyles[layout]]: view === 'mobile',
|
|
16
|
+
}) }, shouldReverse ? (React.createElement(React.Fragment, null,
|
|
14
17
|
secondary,
|
|
15
18
|
primary)) : (React.createElement(React.Fragment, null,
|
|
16
19
|
primary,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sources":["../../../src/components/controls/Component.tsx"],"sourcesContent":["import React, { type ReactNode, useContext } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { ResponsiveContext } from '../../ResponsiveContext';\n\nimport layoutStyles from '../footer/layout.module.css';\nimport styles from './index.module.css';\n\nexport interface ControlsProps {\n /**\n * Основной слот\n */\n primary?: ReactNode;\n\n /**\n * Дополнительный слот\n */\n secondary?: ReactNode;\n\n /**\n * Выравнивание элементов футера\n * @default start\n */\n layout?: 'start' | 'center' | 'space-between' | 'column';\n\n /**\n * Выравнивание элементов футера (мобильный view)\n * @default start\n */\n mobileLayout?: 'start' | 'center' | 'space-between' | 'column';\n\n /**\n * Отступы между элементами футера\n */\n gap?: 16 | 24 | 32;\n}\n\nexport const Controls: React.FC<ControlsProps> = ({\n primary,\n secondary,\n gap,\n layout: layoutProp = 'start',\n mobileLayout = layoutProp,\n}) => {\n const context = useContext(ResponsiveContext);\n const { view = 'desktop', dataTestId } = context || {};\n\n const layout = view === 'mobile' ? mobileLayout : layoutProp;\n\n const shouldReverse = view === 'mobile' && layout !== 'column';\n\n return (\n <div\n data-test-id={getDataTestId(dataTestId, 'controls')}\n className={cn(\n styles.component,\n layoutStyles[layout],\n gap && layoutStyles[`gap-${gap}`],\n )}\n >\n {shouldReverse ? (\n <React.Fragment>\n {secondary}\n {primary}\n </React.Fragment>\n ) : (\n <React.Fragment>\n {primary}\n {secondary}\n </React.Fragment>\n )}\n </div>\n );\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../../src/components/controls/Component.tsx"],"sourcesContent":["import React, { type ReactNode, useContext } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { ResponsiveContext } from '../../ResponsiveContext';\n\nimport layoutStyles from '../footer/layout.module.css';\nimport styles from './index.module.css';\nimport mobileLayoutStyles from './mobile.layout.module.css';\n\nexport interface ControlsProps {\n /**\n * Основной слот\n */\n primary?: ReactNode;\n\n /**\n * Дополнительный слот\n */\n secondary?: ReactNode;\n\n /**\n * Выравнивание элементов футера\n * @default start\n */\n layout?: 'start' | 'center' | 'space-between' | 'column';\n\n /**\n * Выравнивание элементов футера (мобильный view)\n * @default start\n */\n mobileLayout?: 'start' | 'center' | 'space-between' | 'column';\n\n /**\n * Отступы между элементами футера\n */\n gap?: 16 | 24 | 32;\n}\n\nexport const Controls: React.FC<ControlsProps> = ({\n primary,\n secondary,\n gap,\n layout: layoutProp = 'start',\n mobileLayout = layoutProp,\n}) => {\n const context = useContext(ResponsiveContext);\n const { view = 'desktop', dataTestId } = context || {};\n\n const layout = view === 'mobile' ? mobileLayout : layoutProp;\n\n const shouldReverse = view === 'mobile' && layout !== 'column';\n\n return (\n <div\n data-test-id={getDataTestId(dataTestId, 'controls')}\n className={cn(\n styles.component,\n layoutStyles[layout],\n gap && layoutStyles[`gap-${gap}`],\n {\n [mobileLayoutStyles[layout]]: view === 'mobile',\n },\n )}\n >\n {shouldReverse ? (\n <React.Fragment>\n {secondary}\n {primary}\n </React.Fragment>\n ) : (\n <React.Fragment>\n {primary}\n {secondary}\n </React.Fragment>\n )}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;MAwCa,QAAQ,GAA4B,CAAC,EAC9C,OAAO,EACP,SAAS,EACT,GAAG,EACH,MAAM,EAAE,UAAU,GAAG,OAAO,EAC5B,YAAY,GAAG,UAAU,GAC5B,KAAI;AACD,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,iBAAiB,CAAC;IAC7C,MAAM,EAAE,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI,EAAE;AAEtD,IAAA,MAAM,MAAM,GAAG,IAAI,KAAK,QAAQ,GAAG,YAAY,GAAG,UAAU;IAE5D,MAAM,aAAa,GAAG,IAAI,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ;AAE9D,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,cAAA,EACkB,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,EACnD,SAAS,EAAE,EAAE,CACT,MAAM,CAAC,SAAS,EAChB,YAAY,CAAC,MAAM,CAAC,EACpB,GAAG,IAAI,YAAY,CAAC,CAAA,IAAA,EAAO,GAAG,CAAA,CAAE,CAAC,EACjC;YACI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK,QAAQ;SAClD,CACJ,EAAA,EAEA,aAAa,IACV,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,QAAQ,EAAA,IAAA;QACV,SAAS;QACT,OAAO,CACK,KAEjB,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,QAAQ,EAAA,IAAA;QACV,OAAO;AACP,QAAA,SAAS,CACG,CACpB,CACC;AAEd;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--side-panel-footer-mobile-default-gap: var(--gap-8);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.column > *:not(:last-child):not(:only-child) {
|
|
8
|
+
margin-bottom: var(--side-panel-footer-mobile-default-gap);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.start > *:not(:last-child):not(:only-child), .center > *:not(:last-child):not(:only-child), .space-between > *:not(:last-child):not(:only-child) {
|
|
12
|
+
margin-right: var(--side-panel-footer-mobile-default-gap);
|
|
13
|
+
}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
--sab: env(safe-area-inset-bottom, var(--gap-0));
|
|
3
3
|
}
|
|
4
4
|
.footer {
|
|
5
|
-
padding: var(--gap-
|
|
5
|
+
padding: var(--gap-20);
|
|
6
6
|
}
|
|
7
7
|
@media (display-mode: standalone) {
|
|
8
8
|
.footer {
|
|
9
|
-
padding-bottom: calc(var(--sab) + var(--gap-
|
|
9
|
+
padding-bottom: calc(var(--sab) + var(--gap-20));
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
.sticky {
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
:root {
|
|
5
5
|
--side-panel-header-mobile-content-paddings: var(--gap-10) var(--gap-8);
|
|
6
6
|
--side-panel-header-mobile-top-padding: var(--gap-4);
|
|
7
|
-
--side-panel-header-mobile-paddings: var(--side-panel-header-mobile-top-padding) var(--gap-
|
|
8
|
-
var(--gap-4) var(--gap-
|
|
7
|
+
--side-panel-header-mobile-paddings: var(--side-panel-header-mobile-top-padding) var(--gap-12)
|
|
8
|
+
var(--gap-4) var(--gap-12);
|
|
9
9
|
}
|
|
10
10
|
.header {
|
|
11
11
|
padding: var(--side-panel-header-mobile-paddings);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alfalab/core-components-side-panel",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.8",
|
|
4
4
|
"description": "SidePanel component",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"main": "index.js",
|
|
11
11
|
"module": "./esm/index.js",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@alfalab/core-components-base-modal": "^7.1.
|
|
14
|
-
"@alfalab/core-components-drawer": "^7.0.
|
|
13
|
+
"@alfalab/core-components-base-modal": "^7.1.4",
|
|
14
|
+
"@alfalab/core-components-drawer": "^7.0.6",
|
|
15
15
|
"@alfalab/core-components-mq": "^6.0.3",
|
|
16
16
|
"@alfalab/core-components-navigation-bar-private": "^2.0.6",
|
|
17
17
|
"@alfalab/core-components-shared": "^2.1.1",
|
|
@@ -27,6 +27,6 @@
|
|
|
27
27
|
"access": "public",
|
|
28
28
|
"directory": "dist"
|
|
29
29
|
},
|
|
30
|
-
"themesVersion": "15.0.
|
|
30
|
+
"themesVersion": "15.0.4",
|
|
31
31
|
"varsVersion": "11.0.2"
|
|
32
32
|
}
|
|
@@ -7,6 +7,7 @@ import { ResponsiveContext } from '../../ResponsiveContext';
|
|
|
7
7
|
|
|
8
8
|
import layoutStyles from '../footer/layout.module.css';
|
|
9
9
|
import styles from './index.module.css';
|
|
10
|
+
import mobileLayoutStyles from './mobile.layout.module.css';
|
|
10
11
|
|
|
11
12
|
export interface ControlsProps {
|
|
12
13
|
/**
|
|
@@ -58,6 +59,9 @@ export const Controls: React.FC<ControlsProps> = ({
|
|
|
58
59
|
styles.component,
|
|
59
60
|
layoutStyles[layout],
|
|
60
61
|
gap && layoutStyles[`gap-${gap}`],
|
|
62
|
+
{
|
|
63
|
+
[mobileLayoutStyles[layout]]: view === 'mobile',
|
|
64
|
+
},
|
|
61
65
|
)}
|
|
62
66
|
>
|
|
63
67
|
{shouldReverse ? (
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
@import '../../vars.css';
|
|
2
|
+
|
|
3
|
+
.column {
|
|
4
|
+
& > *:not(:last-child):not(:only-child) {
|
|
5
|
+
margin-bottom: var(--side-panel-footer-mobile-default-gap);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.start,
|
|
10
|
+
.center,
|
|
11
|
+
.space-between {
|
|
12
|
+
& > *:not(:last-child):not(:only-child) {
|
|
13
|
+
margin-right: var(--side-panel-footer-mobile-default-gap);
|
|
14
|
+
}
|
|
15
|
+
}
|
package/src/vars.css
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
--side-panel-header-background: var(--color-light-modal-bg-primary);
|
|
7
7
|
--side-panel-footer-background: var(--color-light-modal-bg-primary);
|
|
8
8
|
--side-panel-footer-default-gap: var(--gap-16);
|
|
9
|
+
--side-panel-footer-mobile-default-gap: var(--gap-8);
|
|
9
10
|
|
|
10
11
|
/* sizes */
|
|
11
12
|
--side-panel-s-width: 500px;
|
|
@@ -29,6 +30,6 @@
|
|
|
29
30
|
|
|
30
31
|
/* paddings */
|
|
31
32
|
--side-panel-header-mobile-top-padding: var(--gap-4);
|
|
32
|
-
--side-panel-header-mobile-paddings: var(--side-panel-header-mobile-top-padding) var(--gap-
|
|
33
|
-
var(--gap-4) var(--gap-
|
|
33
|
+
--side-panel-header-mobile-paddings: var(--side-panel-header-mobile-top-padding) var(--gap-12)
|
|
34
|
+
var(--gap-4) var(--gap-12);
|
|
34
35
|
}
|