@hh.ru/magritte-ui-nav-bar 1.3.25 → 1.3.26
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/index.css +150 -89
- package/index.d.ts +1 -0
- package/index.js +4 -1
- package/index.js.map +1 -1
- package/nav-bar-CmjjkPy6.js +5 -0
- package/nav-bar-CmjjkPy6.js.map +1 -0
- package/package.json +6 -4
- package/public/Actions.d.ts +6 -0
- package/public/Actions.js +27 -5
- package/public/Actions.js.map +1 -1
- package/public/LayoutMorph.js +1 -1
- package/public/LayoutStage.js +1 -1
- package/public/Morph.js +1 -1
- package/public/NavBar.d.ts +5 -0
- package/public/NavBar.js +6 -2
- package/public/NavBar.js.map +1 -1
- package/public/Pane.js +1 -1
- package/public/Stage.js +1 -1
- package/public/TitleContainer.d.ts +1 -0
- package/public/TitleContainer.js +26 -3
- package/public/TitleContainer.js.map +1 -1
- package/public/defaultProps.d.ts +40 -0
- package/public/defaultProps.js +36 -0
- package/public/defaultProps.js.map +1 -0
- package/nav-bar-DEFIZlLr.js +0 -5
- package/nav-bar-DEFIZlLr.js.map +0 -1
package/index.css
CHANGED
|
@@ -1,90 +1,102 @@
|
|
|
1
1
|
:root{
|
|
2
2
|
--magritte-color-background-body-v24-7-0:#ffffff;
|
|
3
|
+
--magritte-color-text-primary-v24-7-0:#000000;
|
|
4
|
+
--magritte-color-text-secondary-v24-7-0:#768694;
|
|
3
5
|
}
|
|
4
6
|
|
|
5
7
|
.magritte-night-theme{
|
|
6
8
|
--magritte-color-background-body-v24-7-0:#000000;
|
|
9
|
+
--magritte-color-text-primary-v24-7-0:#ffffff;
|
|
10
|
+
--magritte-color-text-secondary-v24-7-0:#ABABAB;
|
|
7
11
|
}
|
|
8
|
-
.magritte-actions-container___CBgYW_1-3-
|
|
12
|
+
.magritte-actions-container___CBgYW_1-3-26{
|
|
9
13
|
display:flex;
|
|
10
14
|
flex-direction:row;
|
|
11
15
|
gap:12px;
|
|
12
16
|
min-height:40px;
|
|
13
17
|
}
|
|
14
|
-
.magritte-actions-no-children___rgJUl_1-3-
|
|
18
|
+
.magritte-actions-no-children___rgJUl_1-3-26{
|
|
15
19
|
justify-content:space-between;
|
|
16
20
|
}
|
|
17
|
-
.magritte-actions-left-slot___DNOj0_1-3-
|
|
18
|
-
.magritte-actions-right-slot___aodtj_1-3-
|
|
21
|
+
.magritte-actions-left-slot___DNOj0_1-3-26,
|
|
22
|
+
.magritte-actions-right-slot___aodtj_1-3-26{
|
|
19
23
|
display:grid;
|
|
20
24
|
flex:0 0 auto;
|
|
21
25
|
--magritte-ui-icon-margin-not-transparent:var(--magritte-ui-navbar-actions-icon-margin-not-transparent-override, -8px);
|
|
22
26
|
--magritte-ui-icon-margin-transparent:var(--magritte-ui-navbar-actions-icon-margin-transparent-override, 0);
|
|
23
27
|
--magritte-ui-icon-margin-delta:calc(var(--magritte-ui-icon-margin-not-transparent) - var(--magritte-ui-icon-margin-transparent));
|
|
24
28
|
}
|
|
25
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
26
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
27
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
28
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
29
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-26 .magritte-actions-start-stage___MJ67a_1-3-26 .magritte-actions-left-slot___DNOj0_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:first-child,
|
|
30
|
+
.magritte-navbar-transparent-start___wysv0_1-3-26 .magritte-actions-end-stage___qHtTV_1-3-26 .magritte-actions-left-slot___DNOj0_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:first-child,
|
|
31
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-26 .magritte-actions-start-stage___MJ67a_1-3-26 .magritte-actions-left-slot___DNOj0_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:first-child,
|
|
32
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-26 .magritte-actions-end-stage___qHtTV_1-3-26 .magritte-actions-left-slot___DNOj0_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:first-child{
|
|
29
33
|
margin-left:var(--magritte-ui-icon-margin-not-transparent);
|
|
30
34
|
}
|
|
31
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
32
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
33
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
34
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
35
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-26 .magritte-actions-start-stage___MJ67a_1-3-26 .magritte-actions-right-slot___aodtj_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:last-child,
|
|
36
|
+
.magritte-navbar-transparent-start___wysv0_1-3-26 .magritte-actions-end-stage___qHtTV_1-3-26 .magritte-actions-right-slot___aodtj_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:last-child,
|
|
37
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-26 .magritte-actions-start-stage___MJ67a_1-3-26 .magritte-actions-right-slot___aodtj_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:last-child,
|
|
38
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-26 .magritte-actions-end-stage___qHtTV_1-3-26 .magritte-actions-right-slot___aodtj_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:last-child{
|
|
35
39
|
margin-right:var(--magritte-ui-icon-margin-not-transparent);
|
|
36
40
|
}
|
|
37
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
38
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
39
|
-
.magritte-navbar-transparent___ULEh8_1-3-
|
|
40
|
-
.magritte-navbar-transparent___ULEh8_1-3-
|
|
41
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-26 .magritte-actions-end-stage___qHtTV_1-3-26 .magritte-actions-left-slot___DNOj0_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:first-child,
|
|
42
|
+
.magritte-navbar-transparent-start___wysv0_1-3-26 .magritte-actions-start-stage___MJ67a_1-3-26 .magritte-actions-left-slot___DNOj0_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:first-child,
|
|
43
|
+
.magritte-navbar-transparent___ULEh8_1-3-26 .magritte-actions-start-stage___MJ67a_1-3-26 .magritte-actions-left-slot___DNOj0_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:first-child,
|
|
44
|
+
.magritte-navbar-transparent___ULEh8_1-3-26 .magritte-actions-end-stage___qHtTV_1-3-26 .magritte-actions-left-slot___DNOj0_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:first-child{
|
|
41
45
|
margin-left:var(--magritte-ui-icon-margin-transparent);
|
|
42
46
|
}
|
|
43
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
44
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
45
|
-
.magritte-navbar-transparent___ULEh8_1-3-
|
|
46
|
-
.magritte-navbar-transparent___ULEh8_1-3-
|
|
47
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-26 .magritte-actions-end-stage___qHtTV_1-3-26 .magritte-actions-right-slot___aodtj_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:last-child,
|
|
48
|
+
.magritte-navbar-transparent-start___wysv0_1-3-26 .magritte-actions-start-stage___MJ67a_1-3-26 .magritte-actions-right-slot___aodtj_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:last-child,
|
|
49
|
+
.magritte-navbar-transparent___ULEh8_1-3-26 .magritte-actions-start-stage___MJ67a_1-3-26 .magritte-actions-right-slot___aodtj_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:last-child,
|
|
50
|
+
.magritte-navbar-transparent___ULEh8_1-3-26 .magritte-actions-end-stage___qHtTV_1-3-26 .magritte-actions-right-slot___aodtj_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:last-child{
|
|
47
51
|
margin-right:var(--magritte-ui-icon-margin-transparent);
|
|
48
52
|
}
|
|
49
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
50
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
53
|
+
.magritte-navbar-transparent-start___wysv0_1-3-26 .magritte-actions-only-stage___cg10A_1-3-26 .magritte-actions-left-slot___DNOj0_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:first-child,
|
|
54
|
+
.magritte-navbar-transparent-start___wysv0_1-3-26 .magritte-actions-only-stage___cg10A_1-3-26 .magritte-actions-right-slot___aodtj_1-3-26 .magritte-actions-side-slot-content-clone___jDxVm_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:first-child{
|
|
51
55
|
margin-left:calc(var(--magritte-ui-icon-margin-transparent) + (var(--magritte-ui-icon-margin-delta) * var(--magritte-ui-navbar-animation-progress)));
|
|
52
56
|
}
|
|
53
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
54
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
57
|
+
.magritte-navbar-transparent-start___wysv0_1-3-26 .magritte-actions-only-stage___cg10A_1-3-26 .magritte-actions-right-slot___aodtj_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:last-child,
|
|
58
|
+
.magritte-navbar-transparent-start___wysv0_1-3-26 .magritte-actions-only-stage___cg10A_1-3-26 .magritte-actions-left-slot___DNOj0_1-3-26 .magritte-actions-side-slot-content-clone___jDxVm_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:last-child{
|
|
55
59
|
margin-right:calc(var(--magritte-ui-icon-margin-transparent) + (var(--magritte-ui-icon-margin-delta) * var(--magritte-ui-navbar-animation-progress)));
|
|
56
60
|
}
|
|
57
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
58
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
61
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-26 .magritte-actions-only-stage___cg10A_1-3-26 .magritte-actions-left-slot___DNOj0_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:first-child,
|
|
62
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-26 .magritte-actions-only-stage___cg10A_1-3-26 .magritte-actions-right-slot___aodtj_1-3-26 .magritte-actions-side-slot-content-clone___jDxVm_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:first-child{
|
|
59
63
|
margin-left:calc(var(--magritte-ui-icon-margin-not-transparent) - (var(--magritte-ui-icon-margin-delta) * var(--magritte-ui-navbar-animation-progress)));
|
|
60
64
|
}
|
|
61
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
62
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
65
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-26 .magritte-actions-only-stage___cg10A_1-3-26 .magritte-actions-right-slot___aodtj_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:last-child,
|
|
66
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-26 .magritte-actions-only-stage___cg10A_1-3-26 .magritte-actions-left-slot___DNOj0_1-3-26 .magritte-actions-side-slot-content-clone___jDxVm_1-3-26 > .magritte-actions-icon-morph___-nNgW_1-3-26:last-child{
|
|
63
67
|
margin-right:calc(var(--magritte-ui-icon-margin-not-transparent) - (var(--magritte-ui-icon-margin-delta) * var(--magritte-ui-navbar-animation-progress)));
|
|
64
68
|
}
|
|
65
|
-
.magritte-actions-center-slot___hLAy6_1-3-
|
|
69
|
+
.magritte-actions-center-slot___hLAy6_1-3-26{
|
|
66
70
|
display:flex;
|
|
67
71
|
flex:1 1 auto;
|
|
68
72
|
min-width:0;
|
|
69
73
|
}
|
|
70
|
-
.magritte-actions-center-slot___hLAy6_1-3-
|
|
74
|
+
.magritte-actions-center-slot___hLAy6_1-3-26.magritte-actions-center-slot-centered___merXQ_1-3-26{
|
|
71
75
|
justify-content:center;
|
|
72
76
|
}
|
|
73
|
-
.magritte-actions-side-slot-content___TlHrX_1-3-
|
|
74
|
-
.magritte-actions-side-slot-content-clone___jDxVm_1-3-
|
|
77
|
+
.magritte-actions-side-slot-content___TlHrX_1-3-26,
|
|
78
|
+
.magritte-actions-side-slot-content-clone___jDxVm_1-3-26{
|
|
75
79
|
grid-area:1 / 1;
|
|
76
80
|
display:flex;
|
|
77
81
|
align-items:center;
|
|
78
82
|
gap:4px;
|
|
79
83
|
}
|
|
80
|
-
.magritte-actions-side-slot-
|
|
84
|
+
.magritte-align-top___-QSFW_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26,
|
|
85
|
+
.magritte-align-top___-QSFW_1-3-26 .magritte-actions-side-slot-content-clone___jDxVm_1-3-26{
|
|
86
|
+
align-items:start;
|
|
87
|
+
}
|
|
88
|
+
.magritte-align-bottom___FliHI_1-3-26 .magritte-actions-side-slot-content___TlHrX_1-3-26,
|
|
89
|
+
.magritte-align-bottom___FliHI_1-3-26 .magritte-actions-side-slot-content-clone___jDxVm_1-3-26{
|
|
90
|
+
align-items:end;
|
|
91
|
+
}
|
|
92
|
+
.magritte-actions-side-slot-content-clone___jDxVm_1-3-26{
|
|
81
93
|
visibility:hidden;
|
|
82
94
|
z-index:0;
|
|
83
95
|
pointer-events:none;
|
|
84
96
|
user-select:none;
|
|
85
97
|
contain:style layout;
|
|
86
98
|
}
|
|
87
|
-
.magritte-title-container-wrapper___DQUcj_1-3-
|
|
99
|
+
.magritte-title-container-wrapper___DQUcj_1-3-26{
|
|
88
100
|
display:flex;
|
|
89
101
|
flex-direction:row;
|
|
90
102
|
align-items:center;
|
|
@@ -92,45 +104,94 @@
|
|
|
92
104
|
min-width:0;
|
|
93
105
|
gap:12px;
|
|
94
106
|
}
|
|
95
|
-
.magritte-title-main-part___npoHN_1-3-
|
|
107
|
+
.magritte-title-main-part___npoHN_1-3-26{
|
|
96
108
|
display:flex;
|
|
97
109
|
flex-direction:column;
|
|
98
110
|
flex:0 1 auto;
|
|
99
111
|
min-width:0;
|
|
100
112
|
}
|
|
101
|
-
.magritte-title-left-slot___HTE7h_1-3-
|
|
113
|
+
.magritte-title-left-slot___HTE7h_1-3-26{
|
|
102
114
|
display:flex;
|
|
103
115
|
align-items:center;
|
|
104
116
|
flex:0 0 auto;
|
|
105
117
|
}
|
|
106
|
-
.magritte-title-container___y9AIx_1-3-
|
|
118
|
+
.magritte-title-container___y9AIx_1-3-26{
|
|
107
119
|
display:flex;
|
|
108
120
|
flex-direction:row;
|
|
109
121
|
align-items:center;
|
|
110
122
|
gap:5px;
|
|
123
|
+
min-height:var(--magritte-ui-navbar-title-container-min-height-small-override, 0);
|
|
111
124
|
}
|
|
112
|
-
.magritte-subtitle-container___nVUBu_1-3-
|
|
125
|
+
.magritte-subtitle-container___nVUBu_1-3-26{
|
|
113
126
|
display:flex;
|
|
114
127
|
}
|
|
115
|
-
.magritte-
|
|
116
|
-
|
|
128
|
+
.magritte-subtitle-container___nVUBu_1-3-26 .magritte-text-morph-item___-vXru_1-3-26{
|
|
129
|
+
color:var(--magritte-color-text-secondary-v24-7-0);
|
|
130
|
+
font-family:"hh sans";
|
|
131
|
+
font-weight:400;
|
|
132
|
+
line-height:18px;
|
|
133
|
+
font-size:12px;
|
|
134
|
+
letter-spacing:0.01em;
|
|
135
|
+
text-indent:0px;
|
|
136
|
+
text-transform:none;
|
|
137
|
+
text-decoration:none;
|
|
138
|
+
}
|
|
139
|
+
.magritte-centered___Y2mlP_1-3-26 .magritte-subtitle-container___nVUBu_1-3-26,
|
|
140
|
+
.magritte-centered___Y2mlP_1-3-26 .magritte-title-container___y9AIx_1-3-26{
|
|
117
141
|
justify-content:center;
|
|
118
142
|
}
|
|
119
|
-
.magritte-title-morph-item___t7Wf3_1-3-
|
|
143
|
+
.magritte-title-morph-item___t7Wf3_1-3-26{
|
|
120
144
|
display:flex;
|
|
121
145
|
min-width:0;
|
|
122
146
|
}
|
|
123
|
-
.magritte-title___ZbLgP_1-3-
|
|
147
|
+
.magritte-title___ZbLgP_1-3-26{
|
|
124
148
|
display:flex;
|
|
125
149
|
flex:0 1 auto;
|
|
126
150
|
min-width:0;
|
|
127
151
|
}
|
|
128
|
-
.magritte-
|
|
152
|
+
.magritte-title___ZbLgP_1-3-26 .magritte-text-morph-item___-vXru_1-3-26{
|
|
153
|
+
color:var(--magritte-color-text-primary-v24-7-0);
|
|
154
|
+
font-family:"hh sans";
|
|
155
|
+
font-weight:500;
|
|
156
|
+
line-height:22px;
|
|
157
|
+
font-size:16px;
|
|
158
|
+
letter-spacing:0em;
|
|
159
|
+
text-indent:0px;
|
|
160
|
+
text-transform:none;
|
|
161
|
+
text-decoration:none;
|
|
162
|
+
}
|
|
163
|
+
.magritte-size-large___ISXfH_1-3-26 .magritte-title-main-part___npoHN_1-3-26{
|
|
164
|
+
gap:4px;
|
|
165
|
+
}
|
|
166
|
+
.magritte-size-large___ISXfH_1-3-26 .magritte-title-container___y9AIx_1-3-26{
|
|
167
|
+
min-height:var(--magritte-ui-navbar-title-container-min-height-large-override, 0);
|
|
168
|
+
}
|
|
169
|
+
.magritte-size-large___ISXfH_1-3-26 .magritte-title___ZbLgP_1-3-26 .magritte-text-morph-item___-vXru_1-3-26{
|
|
170
|
+
font-family:"hh sans";
|
|
171
|
+
font-weight:500;
|
|
172
|
+
line-height:32px;
|
|
173
|
+
font-size:22px;
|
|
174
|
+
letter-spacing:-0.0075em;
|
|
175
|
+
text-indent:0px;
|
|
176
|
+
text-transform:none;
|
|
177
|
+
text-decoration:none;
|
|
178
|
+
}
|
|
179
|
+
.magritte-size-large___ISXfH_1-3-26 .magritte-subtitle-container___nVUBu_1-3-26 .magritte-text-morph-item___-vXru_1-3-26{
|
|
180
|
+
font-family:"hh sans";
|
|
181
|
+
font-weight:400;
|
|
182
|
+
line-height:22px;
|
|
183
|
+
font-size:16px;
|
|
184
|
+
letter-spacing:0em;
|
|
185
|
+
text-indent:0px;
|
|
186
|
+
text-transform:none;
|
|
187
|
+
text-decoration:none;
|
|
188
|
+
}
|
|
189
|
+
.magritte-pane-content___UVmC6_1-3-26{
|
|
129
190
|
position:relative;
|
|
130
191
|
pointer-events:none;
|
|
131
192
|
z-index:2;
|
|
132
193
|
}
|
|
133
|
-
.magritte-pane-background___PDZAX_1-3-
|
|
194
|
+
.magritte-pane-background___PDZAX_1-3-26{
|
|
134
195
|
position:absolute;
|
|
135
196
|
background-color:var(--magritte-ui-nav-bar-background-color-override, var(--magritte-ui-container-background-color-override, var(--magritte-color-background-body-v24-7-0)));
|
|
136
197
|
opacity:0;
|
|
@@ -138,43 +199,43 @@
|
|
|
138
199
|
z-index:-1;
|
|
139
200
|
transform-origin:0 0;
|
|
140
201
|
}
|
|
141
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
202
|
+
.magritte-navbar-transparent-start___wysv0_1-3-26 .magritte-pane-background___PDZAX_1-3-26{
|
|
142
203
|
opacity:calc(var(--magritte-ui-navbar-animation-progress) * 0.95);
|
|
143
204
|
}
|
|
144
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
205
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-26 .magritte-pane-background___PDZAX_1-3-26{
|
|
145
206
|
opacity:calc((1 - var(--magritte-ui-navbar-animation-progress)) * 0.95);
|
|
146
207
|
}
|
|
147
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
208
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-26 .magritte-pane-background___PDZAX_1-3-26{
|
|
148
209
|
opacity:0.95;
|
|
149
210
|
}
|
|
150
|
-
.magritte-morph-item___8kF46_1-3-
|
|
211
|
+
.magritte-morph-item___8kF46_1-3-26{
|
|
151
212
|
line-height:0;
|
|
152
213
|
transform-origin:var(--magritte-ui-morph-item-transform-origin-x, center) var(--magritte-ui-morph-item-transform-origin-y, center);
|
|
153
214
|
}
|
|
154
|
-
.magritte-morph-item-top___WPEkn_1-3-
|
|
215
|
+
.magritte-morph-item-top___WPEkn_1-3-26{
|
|
155
216
|
--magritte-ui-morph-item-transform-origin-y:top;
|
|
156
217
|
}
|
|
157
|
-
.magritte-morph-item-bottom___zNbsF_1-3-
|
|
218
|
+
.magritte-morph-item-bottom___zNbsF_1-3-26{
|
|
158
219
|
--magritte-ui-morph-item-transform-origin-y:bottom;
|
|
159
220
|
}
|
|
160
|
-
.magritte-morph-item-left___T6AMW_1-3-
|
|
221
|
+
.magritte-morph-item-left___T6AMW_1-3-26{
|
|
161
222
|
--magritte-ui-morph-item-transform-origin-x:left;
|
|
162
223
|
}
|
|
163
|
-
.magritte-morph-item-right___EuT1E_1-3-
|
|
224
|
+
.magritte-morph-item-right___EuT1E_1-3-26{
|
|
164
225
|
--magritte-ui-morph-item-transform-origin-x:right;
|
|
165
226
|
}
|
|
166
|
-
.magritte-pane___f8eFC_1-3-
|
|
227
|
+
.magritte-pane___f8eFC_1-3-26{
|
|
167
228
|
position:relative;
|
|
168
229
|
overflow:hidden;
|
|
169
230
|
pointer-events:none;
|
|
170
231
|
}
|
|
171
|
-
.magritte-start-state-container___giBVb_1-3-
|
|
232
|
+
.magritte-start-state-container___giBVb_1-3-26{
|
|
172
233
|
position:relative;
|
|
173
234
|
z-index:1;
|
|
174
235
|
box-sizing:border-box;
|
|
175
236
|
pointer-events:auto;
|
|
176
237
|
}
|
|
177
|
-
.magritte-end-state-container___uiW8Q_1-3-
|
|
238
|
+
.magritte-end-state-container___uiW8Q_1-3-26{
|
|
178
239
|
position:absolute;
|
|
179
240
|
z-index:0;
|
|
180
241
|
top:0;
|
|
@@ -183,66 +244,66 @@
|
|
|
183
244
|
pointer-events:none;
|
|
184
245
|
opacity:0;
|
|
185
246
|
}
|
|
186
|
-
.magritte-content-container___7s7vv_1-3-
|
|
247
|
+
.magritte-content-container___7s7vv_1-3-26{
|
|
187
248
|
box-sizing:border-box;
|
|
188
249
|
}
|
|
189
|
-
.magritte-next-pane___H2oxQ_1-3-
|
|
250
|
+
.magritte-next-pane___H2oxQ_1-3-26{
|
|
190
251
|
position:relative;
|
|
191
252
|
}
|
|
192
|
-
.magritte-nav-bar___RRGe0_1-3-
|
|
253
|
+
.magritte-nav-bar___RRGe0_1-3-26{
|
|
193
254
|
top:0;
|
|
194
255
|
position:sticky;
|
|
195
256
|
pointer-events:none;
|
|
196
257
|
overflow-anchor:none;
|
|
197
258
|
z-index:10;
|
|
198
259
|
}
|
|
199
|
-
.magritte-nav-bar-overlay___Mq5ZD_1-3-
|
|
260
|
+
.magritte-nav-bar-overlay___Mq5ZD_1-3-26 .magritte-nav-bar-overlay-wrapper___y1VpY_1-3-26{
|
|
200
261
|
position:absolute;
|
|
201
262
|
inset:0;
|
|
202
263
|
}
|
|
203
|
-
.magritte-nav-bar-content-container___H-WMO_1-3-
|
|
264
|
+
.magritte-nav-bar-content-container___H-WMO_1-3-26{
|
|
204
265
|
display:grid;
|
|
205
266
|
position:relative;
|
|
206
267
|
}
|
|
207
|
-
.magritte-nav-bar-panes-container___5ZDLa_1-3-
|
|
268
|
+
.magritte-nav-bar-panes-container___5ZDLa_1-3-26{
|
|
208
269
|
position:relative;
|
|
209
270
|
z-index:1;
|
|
210
271
|
grid-area:1 / 1;
|
|
211
272
|
min-width:0;
|
|
212
273
|
}
|
|
213
|
-
.magritte-nav-bar-progressive-blur___qyeUV_1-3-
|
|
274
|
+
.magritte-nav-bar-progressive-blur___qyeUV_1-3-26{
|
|
214
275
|
position:relative;
|
|
215
276
|
z-index:0;
|
|
216
277
|
transform-origin:0 0;
|
|
217
278
|
grid-area:1 / 1;
|
|
218
279
|
min-width:0;
|
|
219
280
|
}
|
|
220
|
-
.magritte-nav-bar-content-container___H-WMO_1-3-
|
|
221
|
-
.magritte-nav-bar-content-container___H-WMO_1-3-
|
|
222
|
-
.magritte-nav-bar-content-container___H-WMO_1-3-
|
|
281
|
+
.magritte-nav-bar-content-container___H-WMO_1-3-26 .magritte-nav-bar-stage___amDz7_1-3-26,
|
|
282
|
+
.magritte-nav-bar-content-container___H-WMO_1-3-26 .nav-bar-layout-animation-stage-start,
|
|
283
|
+
.magritte-nav-bar-content-container___H-WMO_1-3-26 .nav-bar-layout-animation-stage-end{
|
|
223
284
|
padding-top:calc(8px + var(--magritte-ui-nav-bar-padding-top-override, 0px));
|
|
224
285
|
}
|
|
225
|
-
.magritte-nav-bar-content-container___H-WMO_1-3-
|
|
226
|
-
.magritte-nav-bar-content-container___H-WMO_1-3-
|
|
227
|
-
.magritte-nav-bar-content-container___H-WMO_1-3-
|
|
286
|
+
.magritte-nav-bar-content-container___H-WMO_1-3-26 .magritte-next-pane___H2oxQ_1-3-26 .magritte-nav-bar-stage___amDz7_1-3-26,
|
|
287
|
+
.magritte-nav-bar-content-container___H-WMO_1-3-26 .magritte-next-pane___H2oxQ_1-3-26 .nav-bar-layout-animation-stage-start,
|
|
288
|
+
.magritte-nav-bar-content-container___H-WMO_1-3-26 .magritte-next-pane___H2oxQ_1-3-26 .nav-bar-layout-animation-stage-end{
|
|
228
289
|
padding-top:8px;
|
|
229
290
|
}
|
|
230
|
-
.magritte-last-pane___Hf2No_1-3-
|
|
231
|
-
.magritte-last-pane___Hf2No_1-3-
|
|
232
|
-
.magritte-last-pane___Hf2No_1-3-
|
|
291
|
+
.magritte-last-pane___Hf2No_1-3-26 .magritte-nav-bar-stage___amDz7_1-3-26,
|
|
292
|
+
.magritte-last-pane___Hf2No_1-3-26 .nav-bar-layout-animation-stage-start,
|
|
293
|
+
.magritte-last-pane___Hf2No_1-3-26 .nav-bar-layout-animation-stage-end{
|
|
233
294
|
padding-bottom:var(--magritte-ui-nav-bar-stage-padding-bottom-override, 8px);
|
|
234
295
|
}
|
|
235
|
-
.magritte-next-pane___H2oxQ_1-3-
|
|
236
|
-
.magritte-next-pane___H2oxQ_1-3-
|
|
237
|
-
.magritte-next-pane___H2oxQ_1-3-
|
|
296
|
+
.magritte-next-pane___H2oxQ_1-3-26 .magritte-last-pane___Hf2No_1-3-26 .magritte-nav-bar-stage___amDz7_1-3-26,
|
|
297
|
+
.magritte-next-pane___H2oxQ_1-3-26 .magritte-last-pane___Hf2No_1-3-26 .nav-bar-layout-animation-stage-start,
|
|
298
|
+
.magritte-next-pane___H2oxQ_1-3-26 .magritte-last-pane___Hf2No_1-3-26 .nav-bar-layout-animation-stage-end{
|
|
238
299
|
padding-bottom:var(--magritte-ui-nav-bar-stage-padding-bottom-override, 16px);
|
|
239
300
|
}
|
|
240
|
-
.magritte-nav-bar-stage___amDz7_1-3-
|
|
301
|
+
.magritte-nav-bar-stage___amDz7_1-3-26{
|
|
241
302
|
padding:8px var(--magritte-ui-nav-bar-stage-horizontal-padding-override, 16px);
|
|
242
303
|
}
|
|
243
|
-
.magritte-metrics-mode___h38aX_1-3-
|
|
244
|
-
.magritte-metrics-mode___h38aX_1-3-
|
|
245
|
-
.magritte-metrics-mode___h38aX_1-3-
|
|
304
|
+
.magritte-metrics-mode___h38aX_1-3-26 .magritte-morph-item___8kF46_1-3-26,
|
|
305
|
+
.magritte-metrics-mode___h38aX_1-3-26 .magritte-pane___f8eFC_1-3-26,
|
|
306
|
+
.magritte-metrics-mode___h38aX_1-3-26 .magritte-next-pane___H2oxQ_1-3-26{
|
|
246
307
|
transform:none !important;
|
|
247
308
|
}
|
|
248
309
|
.nav-bar-layout-animation-stage-end,
|
|
@@ -253,41 +314,41 @@
|
|
|
253
314
|
height:auto !important;
|
|
254
315
|
transform:none !important;
|
|
255
316
|
}
|
|
256
|
-
.nav-bar-layout-animation-stage-end .magritte-layout-morph___I3SPy_1-3-
|
|
257
|
-
.nav-bar-layout-animation-stage-start .magritte-layout-morph___I3SPy_1-3-
|
|
317
|
+
.nav-bar-layout-animation-stage-end .magritte-layout-morph___I3SPy_1-3-26,
|
|
318
|
+
.nav-bar-layout-animation-stage-start .magritte-layout-morph___I3SPy_1-3-26{
|
|
258
319
|
position:static !important;
|
|
259
320
|
width:auto !important;
|
|
260
321
|
height:auto !important;
|
|
261
322
|
transform:none !important;
|
|
262
323
|
}
|
|
263
|
-
.magritte-layout-morph___I3SPy_1-3-
|
|
324
|
+
.magritte-layout-morph___I3SPy_1-3-26{
|
|
264
325
|
display:block;
|
|
265
326
|
position:absolute;
|
|
266
327
|
transform-origin:var(--magritte-ui-morph-item-transform-origin-x, center) var(--magritte-ui-morph-item-transform-origin-y, center);
|
|
267
328
|
z-index:3;
|
|
268
329
|
}
|
|
269
|
-
.magritte-animation-stage-progress___5FthT_1-3-
|
|
330
|
+
.magritte-animation-stage-progress___5FthT_1-3-26 .magritte-layout-morph___I3SPy_1-3-26 > *{
|
|
270
331
|
margin:0 !important;
|
|
271
332
|
}
|
|
272
|
-
.magritte-layout-morph-start___9-krP_1-3-
|
|
333
|
+
.magritte-layout-morph-start___9-krP_1-3-26{
|
|
273
334
|
z-index:2;
|
|
274
335
|
}
|
|
275
|
-
.magritte-layout-morph-end___LIg4d_1-3-
|
|
336
|
+
.magritte-layout-morph-end___LIg4d_1-3-26{
|
|
276
337
|
z-index:1;
|
|
277
338
|
}
|
|
278
|
-
.nav-bar-layout-animation-stage-start .magritte-layout-morph___I3SPy_1-3-
|
|
339
|
+
.nav-bar-layout-animation-stage-start .magritte-layout-morph___I3SPy_1-3-26{
|
|
279
340
|
display:contents;
|
|
280
341
|
}
|
|
281
|
-
.nav-bar-layout-animation-stage-start .magritte-layout-morph-end___LIg4d_1-3-
|
|
342
|
+
.nav-bar-layout-animation-stage-start .magritte-layout-morph-end___LIg4d_1-3-26{
|
|
282
343
|
display:none;
|
|
283
344
|
}
|
|
284
|
-
.nav-bar-layout-animation-stage-end .magritte-layout-morph___I3SPy_1-3-
|
|
345
|
+
.nav-bar-layout-animation-stage-end .magritte-layout-morph___I3SPy_1-3-26{
|
|
285
346
|
display:contents;
|
|
286
347
|
}
|
|
287
|
-
.nav-bar-layout-animation-stage-end .magritte-layout-morph-start___9-krP_1-3-
|
|
348
|
+
.nav-bar-layout-animation-stage-end .magritte-layout-morph-start___9-krP_1-3-26{
|
|
288
349
|
display:none;
|
|
289
350
|
}
|
|
290
|
-
.magritte-divider-container___-NdWi_1-3-
|
|
351
|
+
.magritte-divider-container___-NdWi_1-3-26{
|
|
291
352
|
position:absolute;
|
|
292
353
|
width:100%;
|
|
293
354
|
bottom:0;
|
package/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { Actions, type ActionsProps } from '@hh.ru/magritte-ui-nav-bar/public/Actions';
|
|
2
|
+
export { NavBarDefaultPropsContext, type NavBarDefaultPropsContextProps, } from '@hh.ru/magritte-ui-nav-bar/public/defaultProps';
|
|
2
3
|
export { NavBar, type NavBarProps } from '@hh.ru/magritte-ui-nav-bar/public/NavBar';
|
|
3
4
|
export { ExternalPane as Pane, type ExternalPaneProps as PaneProps } from '@hh.ru/magritte-ui-nav-bar/public/Pane';
|
|
4
5
|
export { ExternalStage as Stage } from '@hh.ru/magritte-ui-nav-bar/public/Stage';
|
package/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
export { Actions } from './public/Actions.js';
|
|
3
|
+
export { NavBarDefaultPropsContext } from './public/defaultProps.js';
|
|
3
4
|
export { NavBar } from './public/NavBar.js';
|
|
4
5
|
export { ExternalPane as Pane } from './public/Pane.js';
|
|
5
6
|
export { ExternalStage as Stage } from './public/Stage.js';
|
|
@@ -12,7 +13,8 @@ import 'react/jsx-runtime';
|
|
|
12
13
|
import 'react';
|
|
13
14
|
import 'classnames';
|
|
14
15
|
import '@hh.ru/magritte-ui-icon';
|
|
15
|
-
import './nav-bar-
|
|
16
|
+
import './nav-bar-CmjjkPy6.js';
|
|
17
|
+
import '@hh.ru/magritte-internal-default-props-context';
|
|
16
18
|
import 'motion/react';
|
|
17
19
|
import '@hh.ru/magritte-ui-divider';
|
|
18
20
|
import '@hh.ru/magritte-ui-layer';
|
|
@@ -32,6 +34,7 @@ import './internal/MorphStore.js';
|
|
|
32
34
|
import './internal/KeyedSubscriptions.js';
|
|
33
35
|
import './internal/PaneStore.js';
|
|
34
36
|
import './internal/useInert.js';
|
|
37
|
+
import '@hh.ru/magritte-ui-typography';
|
|
35
38
|
import '@hh.ru/magritte-common-use-when-font-loaded';
|
|
36
39
|
import '@hh.ru/magritte-common-use-multiple-refs';
|
|
37
40
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import './index.css';
|
|
2
|
+
var styles = {"actions-container":"magritte-actions-container___CBgYW_1-3-26","actionsContainer":"magritte-actions-container___CBgYW_1-3-26","actions-no-children":"magritte-actions-no-children___rgJUl_1-3-26","actionsNoChildren":"magritte-actions-no-children___rgJUl_1-3-26","actions-left-slot":"magritte-actions-left-slot___DNOj0_1-3-26","actionsLeftSlot":"magritte-actions-left-slot___DNOj0_1-3-26","actions-right-slot":"magritte-actions-right-slot___aodtj_1-3-26","actionsRightSlot":"magritte-actions-right-slot___aodtj_1-3-26","navbar-transparent-end":"magritte-navbar-transparent-end___6KqLR_1-3-26","navbarTransparentEnd":"magritte-navbar-transparent-end___6KqLR_1-3-26","actions-start-stage":"magritte-actions-start-stage___MJ67a_1-3-26","actionsStartStage":"magritte-actions-start-stage___MJ67a_1-3-26","actions-side-slot-content":"magritte-actions-side-slot-content___TlHrX_1-3-26","actionsSideSlotContent":"magritte-actions-side-slot-content___TlHrX_1-3-26","actions-icon-morph":"magritte-actions-icon-morph___-nNgW_1-3-26","actionsIconMorph":"magritte-actions-icon-morph___-nNgW_1-3-26","navbar-transparent-start":"magritte-navbar-transparent-start___wysv0_1-3-26","navbarTransparentStart":"magritte-navbar-transparent-start___wysv0_1-3-26","actions-end-stage":"magritte-actions-end-stage___qHtTV_1-3-26","actionsEndStage":"magritte-actions-end-stage___qHtTV_1-3-26","navbar-not-transparent":"magritte-navbar-not-transparent___5KZNp_1-3-26","navbarNotTransparent":"magritte-navbar-not-transparent___5KZNp_1-3-26","navbar-transparent":"magritte-navbar-transparent___ULEh8_1-3-26","navbarTransparent":"magritte-navbar-transparent___ULEh8_1-3-26","actions-only-stage":"magritte-actions-only-stage___cg10A_1-3-26","actionsOnlyStage":"magritte-actions-only-stage___cg10A_1-3-26","actions-side-slot-content-clone":"magritte-actions-side-slot-content-clone___jDxVm_1-3-26","actionsSideSlotContentClone":"magritte-actions-side-slot-content-clone___jDxVm_1-3-26","actions-center-slot":"magritte-actions-center-slot___hLAy6_1-3-26","actionsCenterSlot":"magritte-actions-center-slot___hLAy6_1-3-26","actions-center-slot-centered":"magritte-actions-center-slot-centered___merXQ_1-3-26","actionsCenterSlotCentered":"magritte-actions-center-slot-centered___merXQ_1-3-26","align-top":"magritte-align-top___-QSFW_1-3-26","alignTop":"magritte-align-top___-QSFW_1-3-26","align-bottom":"magritte-align-bottom___FliHI_1-3-26","alignBottom":"magritte-align-bottom___FliHI_1-3-26","title-container-wrapper":"magritte-title-container-wrapper___DQUcj_1-3-26","titleContainerWrapper":"magritte-title-container-wrapper___DQUcj_1-3-26","title-main-part":"magritte-title-main-part___npoHN_1-3-26","titleMainPart":"magritte-title-main-part___npoHN_1-3-26","title-left-slot":"magritte-title-left-slot___HTE7h_1-3-26","titleLeftSlot":"magritte-title-left-slot___HTE7h_1-3-26","title-container":"magritte-title-container___y9AIx_1-3-26","titleContainer":"magritte-title-container___y9AIx_1-3-26","subtitle-container":"magritte-subtitle-container___nVUBu_1-3-26","subtitleContainer":"magritte-subtitle-container___nVUBu_1-3-26","text-morph-item":"magritte-text-morph-item___-vXru_1-3-26","textMorphItem":"magritte-text-morph-item___-vXru_1-3-26","centered":"magritte-centered___Y2mlP_1-3-26","title-morph-item":"magritte-title-morph-item___t7Wf3_1-3-26","titleMorphItem":"magritte-title-morph-item___t7Wf3_1-3-26","title":"magritte-title___ZbLgP_1-3-26","size-large":"magritte-size-large___ISXfH_1-3-26","sizeLarge":"magritte-size-large___ISXfH_1-3-26","pane-content":"magritte-pane-content___UVmC6_1-3-26","paneContent":"magritte-pane-content___UVmC6_1-3-26","pane-background":"magritte-pane-background___PDZAX_1-3-26","paneBackground":"magritte-pane-background___PDZAX_1-3-26","morph-item":"magritte-morph-item___8kF46_1-3-26","morphItem":"magritte-morph-item___8kF46_1-3-26","morph-item-top":"magritte-morph-item-top___WPEkn_1-3-26","morphItemTop":"magritte-morph-item-top___WPEkn_1-3-26","morph-item-bottom":"magritte-morph-item-bottom___zNbsF_1-3-26","morphItemBottom":"magritte-morph-item-bottom___zNbsF_1-3-26","morph-item-left":"magritte-morph-item-left___T6AMW_1-3-26","morphItemLeft":"magritte-morph-item-left___T6AMW_1-3-26","morph-item-right":"magritte-morph-item-right___EuT1E_1-3-26","morphItemRight":"magritte-morph-item-right___EuT1E_1-3-26","pane":"magritte-pane___f8eFC_1-3-26","start-state-container":"magritte-start-state-container___giBVb_1-3-26","startStateContainer":"magritte-start-state-container___giBVb_1-3-26","end-state-container":"magritte-end-state-container___uiW8Q_1-3-26","endStateContainer":"magritte-end-state-container___uiW8Q_1-3-26","content-container":"magritte-content-container___7s7vv_1-3-26","contentContainer":"magritte-content-container___7s7vv_1-3-26","next-pane":"magritte-next-pane___H2oxQ_1-3-26","nextPane":"magritte-next-pane___H2oxQ_1-3-26","nav-bar":"magritte-nav-bar___RRGe0_1-3-26","navBar":"magritte-nav-bar___RRGe0_1-3-26","nav-bar-overlay":"magritte-nav-bar-overlay___Mq5ZD_1-3-26","navBarOverlay":"magritte-nav-bar-overlay___Mq5ZD_1-3-26","nav-bar-overlay-wrapper":"magritte-nav-bar-overlay-wrapper___y1VpY_1-3-26","navBarOverlayWrapper":"magritte-nav-bar-overlay-wrapper___y1VpY_1-3-26","nav-bar-content-container":"magritte-nav-bar-content-container___H-WMO_1-3-26","navBarContentContainer":"magritte-nav-bar-content-container___H-WMO_1-3-26","nav-bar-panes-container":"magritte-nav-bar-panes-container___5ZDLa_1-3-26","navBarPanesContainer":"magritte-nav-bar-panes-container___5ZDLa_1-3-26","nav-bar-progressive-blur":"magritte-nav-bar-progressive-blur___qyeUV_1-3-26","navBarProgressiveBlur":"magritte-nav-bar-progressive-blur___qyeUV_1-3-26","nav-bar-stage":"magritte-nav-bar-stage___amDz7_1-3-26","navBarStage":"magritte-nav-bar-stage___amDz7_1-3-26","last-pane":"magritte-last-pane___Hf2No_1-3-26","lastPane":"magritte-last-pane___Hf2No_1-3-26","metrics-mode":"magritte-metrics-mode___h38aX_1-3-26","metricsMode":"magritte-metrics-mode___h38aX_1-3-26","layout-morph":"magritte-layout-morph___I3SPy_1-3-26","layoutMorph":"magritte-layout-morph___I3SPy_1-3-26","animation-stage-progress":"magritte-animation-stage-progress___5FthT_1-3-26","animationStageProgress":"magritte-animation-stage-progress___5FthT_1-3-26","layout-morph-start":"magritte-layout-morph-start___9-krP_1-3-26","layoutMorphStart":"magritte-layout-morph-start___9-krP_1-3-26","layout-morph-end":"magritte-layout-morph-end___LIg4d_1-3-26","layoutMorphEnd":"magritte-layout-morph-end___LIg4d_1-3-26","divider-container":"magritte-divider-container___-NdWi_1-3-26","dividerContainer":"magritte-divider-container___-NdWi_1-3-26"};
|
|
3
|
+
|
|
4
|
+
export { styles as s };
|
|
5
|
+
//# sourceMappingURL=nav-bar-CmjjkPy6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-bar-CmjjkPy6.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hh.ru/magritte-ui-nav-bar",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.26",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"sideEffects": [
|
|
@@ -31,10 +31,12 @@
|
|
|
31
31
|
"@hh.ru/magritte-common-use-when-font-loaded": "1.0.14",
|
|
32
32
|
"@hh.ru/magritte-design-tokens": "24.7.0",
|
|
33
33
|
"@hh.ru/magritte-internal-custom-scroll": "2.1.1",
|
|
34
|
+
"@hh.ru/magritte-internal-default-props-context": "1.0.1",
|
|
34
35
|
"@hh.ru/magritte-ui-divider": "3.1.3",
|
|
35
|
-
"@hh.ru/magritte-ui-icon": "14.2.
|
|
36
|
+
"@hh.ru/magritte-ui-icon": "14.2.8",
|
|
36
37
|
"@hh.ru/magritte-ui-layer": "3.2.4",
|
|
37
|
-
"@hh.ru/magritte-ui-mock-component": "1.1.7"
|
|
38
|
+
"@hh.ru/magritte-ui-mock-component": "1.1.7",
|
|
39
|
+
"@hh.ru/magritte-ui-typography": "5.3.2"
|
|
38
40
|
},
|
|
39
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "fa01b9128d8cb502e80c61cd964d7a8a3a279957"
|
|
40
42
|
}
|
package/public/Actions.d.ts
CHANGED
|
@@ -14,13 +14,19 @@ export interface ActionsProps {
|
|
|
14
14
|
children?: ReactNode;
|
|
15
15
|
/**
|
|
16
16
|
* Включает центрирование контента центрального слота относительно всего компонента.
|
|
17
|
+
* @default false
|
|
17
18
|
*/
|
|
18
19
|
centered?: boolean;
|
|
19
20
|
/**
|
|
20
21
|
* Управляет автоматическим оборачиванием всего контента в компоненты <Morph />.
|
|
21
22
|
* По умолчанию включен, но может быть отключен если требуется более сложное описание анимации
|
|
22
23
|
* чем используется по умолчанию.
|
|
24
|
+
* @default true
|
|
23
25
|
*/
|
|
24
26
|
autoMorph?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* @default center
|
|
29
|
+
*/
|
|
30
|
+
verticalAlign?: 'top' | 'center' | 'bottom';
|
|
25
31
|
}
|
|
26
32
|
export declare const Actions: FC<PropsWithChildren<ActionsProps>>;
|
package/public/Actions.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import './../index.css';
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { Children, isValidElement, Fragment } from 'react';
|
|
3
|
+
import { useMemo, Children, isValidElement, Fragment } from 'react';
|
|
4
4
|
import classNames from 'classnames';
|
|
5
|
-
import { isIconElement } from '@hh.ru/magritte-ui-icon';
|
|
5
|
+
import { IconDefaultPropsContext, isIconElement } from '@hh.ru/magritte-ui-icon';
|
|
6
6
|
import { EnvironmentFingerprintNode } from './EnvironmentFingerprintNode.js';
|
|
7
7
|
import { Morph } from './Morph.js';
|
|
8
8
|
import { useAnimationStage } from './Stage.js';
|
|
9
|
-
import {
|
|
9
|
+
import { useActionsDefaultProps, useActionsIconsDefaultProps } from './defaultProps.js';
|
|
10
|
+
import { s as styles } from '../nav-bar-CmjjkPy6.js';
|
|
10
11
|
import '../internal/MetricsProvider.js';
|
|
11
12
|
import '../internal/utils.js';
|
|
12
13
|
import 'motion';
|
|
@@ -16,8 +17,19 @@ import '../internal/KeyedSubscriptions.js';
|
|
|
16
17
|
import '../internal/PaneStore.js';
|
|
17
18
|
import '../internal/NavBarContext.js';
|
|
18
19
|
import '../internal/useInert.js';
|
|
20
|
+
import '@hh.ru/magritte-internal-default-props-context';
|
|
19
21
|
|
|
20
22
|
const isFragmentElement = (node) => isValidElement(node) && node.type === Fragment;
|
|
23
|
+
/**
|
|
24
|
+
* Базовые дефолтные пропсы иконок в боковых слотах `Actions`. Через `NavBarDefaultPropsContext`
|
|
25
|
+
* (ключ `actionsIcons`) их можно переопределить; на иконки центрального слота не распространяются.
|
|
26
|
+
*/
|
|
27
|
+
const SIDE_SLOT_ICON_DEFAULT_PROPS = {
|
|
28
|
+
padding: 8,
|
|
29
|
+
initialColor: 'primary',
|
|
30
|
+
backgroundStyle: 'overlay-action',
|
|
31
|
+
borderRadius: 'halfHeight',
|
|
32
|
+
};
|
|
21
33
|
const wrapToMorph = (node, isRight) => {
|
|
22
34
|
const arr = isFragmentElement(node) ? Children.toArray(node.props.children) : Children.toArray(node);
|
|
23
35
|
return arr.map((node, index) => (jsx(Morph, { className: isIconElement(node) ? styles.actionsIconMorph : '', id: `actions-component-${isRight ? 'right' : 'left'}-slot-item-${isRight ? arr.length - index : index}`, children: node }, index)));
|
|
@@ -26,14 +38,24 @@ const wrapToDiv = (node) => {
|
|
|
26
38
|
const arr = isFragmentElement(node) ? Children.toArray(node.props.children) : Children.toArray(node);
|
|
27
39
|
return arr.map((node, index) => (jsx("div", { className: isIconElement(node) ? styles.actionsIconMorph : '', children: node }, index)));
|
|
28
40
|
};
|
|
29
|
-
const Actions = (
|
|
41
|
+
const Actions = (props) => {
|
|
42
|
+
const defaultProps = useActionsDefaultProps();
|
|
43
|
+
const { children, left, right, centered = false, autoMorph = true, verticalAlign = 'center', } = { ...defaultProps, ...props };
|
|
44
|
+
const actionsIconsOverride = useActionsIconsDefaultProps();
|
|
45
|
+
const sideSlotIconProps = useMemo(
|
|
46
|
+
// Каст: спред union-типа `IconProps` (ветки styled/hexed с взаимоисключающими `initialColor`/`hex`)
|
|
47
|
+
// TS не сводит обратно к `Partial<IconProps>`, хотя мёрж семантически корректен.
|
|
48
|
+
() => ({ ...SIDE_SLOT_ICON_DEFAULT_PROPS, ...actionsIconsOverride }), [actionsIconsOverride]);
|
|
30
49
|
const stage = useAnimationStage();
|
|
31
50
|
return (jsxs("div", { className: classNames(styles.actionsContainer, {
|
|
32
51
|
[styles.actionsStartStage]: stage === 'start',
|
|
33
52
|
[styles.actionsEndStage]: stage === 'end',
|
|
34
53
|
[styles.actionsOnlyStage]: stage === 'only',
|
|
35
54
|
[styles.actionsNoChildren]: !children,
|
|
36
|
-
|
|
55
|
+
[styles.alignTop]: verticalAlign === 'top',
|
|
56
|
+
[styles.alignCenter]: verticalAlign === 'center',
|
|
57
|
+
[styles.alignBottom]: verticalAlign === 'bottom',
|
|
58
|
+
}), children: [(!!left || (!!right && centered)) && (jsx(IconDefaultPropsContext, { props: sideSlotIconProps, children: jsxs("div", { className: styles.actionsLeftSlot, children: [!!left && (jsx(EnvironmentFingerprintNode, { className: styles.actionsSideSlotContent, children: autoMorph && stage !== 'only' ? wrapToMorph(left, false) : wrapToDiv(left) })), centered && !!right && (jsx("div", { className: styles.actionsSideSlotContentClone, "aria-hidden": "true", "data-qa": "actions-duplicate-container", inert: 'true', children: wrapToDiv(right) }))] }) })), (!!children || !left || !right) && (jsx("div", { className: classNames(styles.actionsCenterSlot, { [styles.actionsCenterSlotCentered]: centered }), children: children })), (!!right || (!!left && centered)) && (jsx(IconDefaultPropsContext, { props: sideSlotIconProps, children: jsxs("div", { className: styles.actionsRightSlot, children: [!!right && (jsx(EnvironmentFingerprintNode, { className: styles.actionsSideSlotContent, children: autoMorph && stage !== 'only' ? wrapToMorph(right, true) : wrapToDiv(right) })), centered && !!left && (jsx("div", { className: styles.actionsSideSlotContentClone, "aria-hidden": "true", "data-qa": "actions-duplicate-container", inert: 'true', children: wrapToDiv(left) }))] }) }))] }));
|
|
37
59
|
};
|
|
38
60
|
|
|
39
61
|
export { Actions };
|
package/public/Actions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Actions.js","sources":["src/public/Actions.tsx"],"sourcesContent":["import {\n Children,\n Fragment,\n isValidElement,\n type JSXElementConstructor,\n type PropsWithChildren,\n type ReactElement,\n type FC,\n type ReactNode,\n} from 'react';\nimport classNames from 'classnames';\n\nimport { isIconElement } from '@hh.ru/magritte-ui-icon';\nimport { EnvironmentFingerprintNode } from '@hh.ru/magritte-ui-nav-bar/public/EnvironmentFingerprintNode';\nimport { Morph } from '@hh.ru/magritte-ui-nav-bar/public/Morph';\nimport { useAnimationStage } from '@hh.ru/magritte-ui-nav-bar/public/Stage';\n\nimport styles from './nav-bar.less';\n\nexport interface ActionsProps {\n /**\n * Контент левого слота\n */\n left?: ReactNode | ReactNode[];\n /**\n * Контент правого слота\n */\n right?: ReactNode | ReactNode[];\n /**\n * Контент центрального слота\n */\n children?: ReactNode;\n /**\n * Включает центрирование контента центрального слота относительно всего компонента.\n */\n centered?: boolean;\n /**\n * Управляет автоматическим оборачиванием всего контента в компоненты <Morph />.\n * По умолчанию включен, но может быть отключен если требуется более сложное описание анимации\n * чем используется по умолчанию.\n */\n autoMorph?: boolean;\n}\n\nconst isFragmentElement = (\n node: ReactNode\n): node is ReactElement<PropsWithChildren, JSXElementConstructor<PropsWithChildren>> =>\n isValidElement(node) && node.type === Fragment;\n\nconst wrapToMorph = (node: ReactNode | ReactNode[], isRight: boolean) => {\n const arr = isFragmentElement(node) ? Children.toArray(node.props.children) : Children.toArray(node);\n\n return arr.map((node, index) => (\n <Morph\n className={isIconElement(node) ? styles.actionsIconMorph : ''}\n id={`actions-component-${isRight ? 'right' : 'left'}-slot-item-${isRight ? arr.length - index : index}`}\n key={index}\n >\n {node}\n </Morph>\n ));\n};\n\nconst wrapToDiv = (node: ReactNode | ReactNode[]) => {\n const arr = isFragmentElement(node) ? Children.toArray(node.props.children) : Children.toArray(node);\n\n return arr.map((node, index) => (\n <div className={isIconElement(node) ? styles.actionsIconMorph : ''} key={index}>\n {node}\n </div>\n ));\n};\n\nexport const Actions: FC<PropsWithChildren<ActionsProps>> = ({\n children,\n left,\n right,\n centered = false,\n autoMorph = true,\n}) => {\n const stage = useAnimationStage();\n return (\n <div\n className={classNames(styles.actionsContainer, {\n [styles.actionsStartStage]: stage === 'start',\n [styles.actionsEndStage]: stage === 'end',\n [styles.actionsOnlyStage]: stage === 'only',\n [styles.actionsNoChildren]: !children,\n })}\n >\n {(!!left || (!!right && centered)) && (\n <div className={styles.actionsLeftSlot}>\n {!!left && (\n <EnvironmentFingerprintNode className={styles.actionsSideSlotContent}>\n {autoMorph && stage !== 'only' ? wrapToMorph(left, false) : wrapToDiv(left)}\n </EnvironmentFingerprintNode>\n )}\n {centered && !!right && (\n <div\n className={styles.actionsSideSlotContentClone}\n aria-hidden=\"true\"\n data-qa=\"actions-duplicate-container\"\n // атрибут не завезли в типы react 18, только с 19го\n {...{ inert: 'true' }}\n >\n {wrapToDiv(right)}\n </div>\n )}\n </div>\n )}\n\n {(!!children || !left || !right) && (\n <div className={classNames(styles.actionsCenterSlot, { [styles.actionsCenterSlotCentered]: centered })}>\n {children}\n </div>\n )}\n\n {(!!right || (!!left && centered)) && (\n <div className={styles.actionsRightSlot}>\n {!!right && (\n <EnvironmentFingerprintNode className={styles.actionsSideSlotContent}>\n {autoMorph && stage !== 'only' ? wrapToMorph(right, true) : wrapToDiv(right)}\n </EnvironmentFingerprintNode>\n )}\n {centered && !!left && (\n <div\n className={styles.actionsSideSlotContentClone}\n aria-hidden=\"true\"\n data-qa=\"actions-duplicate-container\"\n {...{ inert: 'true' }}\n >\n {wrapToDiv(left)}\n </div>\n )}\n </div>\n )}\n </div>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Actions.js","sources":["src/public/Actions.tsx"],"sourcesContent":["import {\n Children,\n Fragment,\n isValidElement,\n useMemo,\n type JSXElementConstructor,\n type PropsWithChildren,\n type ReactElement,\n type FC,\n type ReactNode,\n} from 'react';\nimport classNames from 'classnames';\n\nimport { isIconElement, IconDefaultPropsContext } from '@hh.ru/magritte-ui-icon';\nimport type { IconProps } from '@hh.ru/magritte-ui-icon/types';\nimport { EnvironmentFingerprintNode } from '@hh.ru/magritte-ui-nav-bar/public/EnvironmentFingerprintNode';\nimport { Morph } from '@hh.ru/magritte-ui-nav-bar/public/Morph';\nimport { useAnimationStage } from '@hh.ru/magritte-ui-nav-bar/public/Stage';\nimport { useActionsDefaultProps, useActionsIconsDefaultProps } from '@hh.ru/magritte-ui-nav-bar/public/defaultProps';\n\nimport styles from './nav-bar.less';\n\nexport interface ActionsProps {\n /**\n * Контент левого слота\n */\n left?: ReactNode | ReactNode[];\n /**\n * Контент правого слота\n */\n right?: ReactNode | ReactNode[];\n /**\n * Контент центрального слота\n */\n children?: ReactNode;\n /**\n * Включает центрирование контента центрального слота относительно всего компонента.\n * @default false\n */\n centered?: boolean;\n /**\n * Управляет автоматическим оборачиванием всего контента в компоненты <Morph />.\n * По умолчанию включен, но может быть отключен если требуется более сложное описание анимации\n * чем используется по умолчанию.\n * @default true\n */\n autoMorph?: boolean;\n /**\n * @default center\n */\n verticalAlign?: 'top' | 'center' | 'bottom';\n}\n\nconst isFragmentElement = (\n node: ReactNode\n): node is ReactElement<PropsWithChildren, JSXElementConstructor<PropsWithChildren>> =>\n isValidElement(node) && node.type === Fragment;\n/**\n * Базовые дефолтные пропсы иконок в боковых слотах `Actions`. Через `NavBarDefaultPropsContext`\n * (ключ `actionsIcons`) их можно переопределить; на иконки центрального слота не распространяются.\n */\nconst SIDE_SLOT_ICON_DEFAULT_PROPS: Partial<IconProps> = {\n padding: 8,\n initialColor: 'primary',\n backgroundStyle: 'overlay-action',\n borderRadius: 'halfHeight',\n};\n\nconst wrapToMorph = (node: ReactNode | ReactNode[], isRight: boolean) => {\n const arr = isFragmentElement(node) ? Children.toArray(node.props.children) : Children.toArray(node);\n\n return arr.map((node, index) => (\n <Morph\n className={isIconElement(node) ? styles.actionsIconMorph : ''}\n id={`actions-component-${isRight ? 'right' : 'left'}-slot-item-${isRight ? arr.length - index : index}`}\n key={index}\n >\n {node}\n </Morph>\n ));\n};\n\nconst wrapToDiv = (node: ReactNode | ReactNode[]) => {\n const arr = isFragmentElement(node) ? Children.toArray(node.props.children) : Children.toArray(node);\n\n return arr.map((node, index) => (\n <div className={isIconElement(node) ? styles.actionsIconMorph : ''} key={index}>\n {node}\n </div>\n ));\n};\n\nexport const Actions: FC<PropsWithChildren<ActionsProps>> = (props) => {\n const defaultProps = useActionsDefaultProps();\n const {\n children,\n left,\n right,\n centered = false,\n autoMorph = true,\n verticalAlign = 'center',\n } = { ...defaultProps, ...props };\n const actionsIconsOverride = useActionsIconsDefaultProps();\n const sideSlotIconProps = useMemo(\n // Каст: спред union-типа `IconProps` (ветки styled/hexed с взаимоисключающими `initialColor`/`hex`)\n // TS не сводит обратно к `Partial<IconProps>`, хотя мёрж семантически корректен.\n () => ({ ...SIDE_SLOT_ICON_DEFAULT_PROPS, ...actionsIconsOverride }) as Partial<IconProps>,\n [actionsIconsOverride]\n );\n const stage = useAnimationStage();\n return (\n <div\n className={classNames(styles.actionsContainer, {\n [styles.actionsStartStage]: stage === 'start',\n [styles.actionsEndStage]: stage === 'end',\n [styles.actionsOnlyStage]: stage === 'only',\n [styles.actionsNoChildren]: !children,\n [styles.alignTop]: verticalAlign === 'top',\n [styles.alignCenter]: verticalAlign === 'center',\n [styles.alignBottom]: verticalAlign === 'bottom',\n })}\n >\n {(!!left || (!!right && centered)) && (\n <IconDefaultPropsContext props={sideSlotIconProps}>\n <div className={styles.actionsLeftSlot}>\n {!!left && (\n <EnvironmentFingerprintNode className={styles.actionsSideSlotContent}>\n {autoMorph && stage !== 'only' ? wrapToMorph(left, false) : wrapToDiv(left)}\n </EnvironmentFingerprintNode>\n )}\n {centered && !!right && (\n <div\n className={styles.actionsSideSlotContentClone}\n aria-hidden=\"true\"\n data-qa=\"actions-duplicate-container\"\n // атрибут не завезли в типы react 18, только с 19го\n {...{ inert: 'true' }}\n >\n {wrapToDiv(right)}\n </div>\n )}\n </div>\n </IconDefaultPropsContext>\n )}\n\n {(!!children || !left || !right) && (\n <div className={classNames(styles.actionsCenterSlot, { [styles.actionsCenterSlotCentered]: centered })}>\n {children}\n </div>\n )}\n\n {(!!right || (!!left && centered)) && (\n <IconDefaultPropsContext props={sideSlotIconProps}>\n <div className={styles.actionsRightSlot}>\n {!!right && (\n <EnvironmentFingerprintNode className={styles.actionsSideSlotContent}>\n {autoMorph && stage !== 'only' ? wrapToMorph(right, true) : wrapToDiv(right)}\n </EnvironmentFingerprintNode>\n )}\n {centered && !!left && (\n <div\n className={styles.actionsSideSlotContentClone}\n aria-hidden=\"true\"\n data-qa=\"actions-duplicate-container\"\n {...{ inert: 'true' }}\n >\n {wrapToDiv(left)}\n </div>\n )}\n </div>\n </IconDefaultPropsContext>\n )}\n </div>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
package/public/LayoutMorph.js
CHANGED
|
@@ -10,7 +10,7 @@ import { usePaneStore } from '../internal/PaneStore.js';
|
|
|
10
10
|
import { useInert } from '../internal/useInert.js';
|
|
11
11
|
import { useActualRef, useStoreSyncedTransform, lerp, calcMorphParams } from '../internal/utils.js';
|
|
12
12
|
import { AnimationStageContext } from './LayoutStage.js';
|
|
13
|
-
import { s as styles } from '../nav-bar-
|
|
13
|
+
import { s as styles } from '../nav-bar-CmjjkPy6.js';
|
|
14
14
|
import '../internal/KeyedSubscriptions.js';
|
|
15
15
|
import 'motion';
|
|
16
16
|
import '../internal/NavBarContext.js';
|
package/public/LayoutStage.js
CHANGED
|
@@ -9,7 +9,7 @@ import { MorphStoreProvider, useMorphStore } from '../internal/MorphStore.js';
|
|
|
9
9
|
import { usePaneStore } from '../internal/PaneStore.js';
|
|
10
10
|
import { useInitOnce } from '../internal/utils.js';
|
|
11
11
|
import { EnvironmentFingerprintNode, useEnvironmentFingerprint } from './EnvironmentFingerprintNode.js';
|
|
12
|
-
import { s as styles } from '../nav-bar-
|
|
12
|
+
import { s as styles } from '../nav-bar-CmjjkPy6.js';
|
|
13
13
|
import '../internal/KeyedSubscriptions.js';
|
|
14
14
|
import 'motion';
|
|
15
15
|
import '../internal/NavBarContext.js';
|
package/public/Morph.js
CHANGED
|
@@ -9,7 +9,7 @@ import { usePaneStore } from '../internal/PaneStore.js';
|
|
|
9
9
|
import { useStoreSyncedTransform, calcMorphParams, lerp } from '../internal/utils.js';
|
|
10
10
|
import { useEnvironmentFingerprint } from './EnvironmentFingerprintNode.js';
|
|
11
11
|
import { useAnimationStage } from './Stage.js';
|
|
12
|
-
import { s as styles } from '../nav-bar-
|
|
12
|
+
import { s as styles } from '../nav-bar-CmjjkPy6.js';
|
|
13
13
|
import '../internal/KeyedSubscriptions.js';
|
|
14
14
|
import 'motion';
|
|
15
15
|
import '../internal/NavBarContext.js';
|
package/public/NavBar.d.ts
CHANGED
|
@@ -13,10 +13,12 @@ export interface NavBarProps {
|
|
|
13
13
|
* -- Прозрачный всегда (`true`)
|
|
14
14
|
* -- Прозрачный в начале анимации (`start`)
|
|
15
15
|
* -- Прозрачный в конце анимации (`end`)
|
|
16
|
+
* @default false
|
|
16
17
|
*/
|
|
17
18
|
transparent?: 'start' | 'end' | boolean;
|
|
18
19
|
/**
|
|
19
20
|
* Управляет позицией триггера начала анимации
|
|
21
|
+
* @default start
|
|
20
22
|
*/
|
|
21
23
|
startTriggerPosition?: 'start' | 'full-area' | RefObject<HTMLElement | null>;
|
|
22
24
|
/**
|
|
@@ -27,10 +29,12 @@ export interface NavBarProps {
|
|
|
27
29
|
endTriggerPosition?: RefObject<HTMLElement | null> | number;
|
|
28
30
|
/**
|
|
29
31
|
* Включает режим когда NavBar не занимает место в лейауте и контент располагается под ним.
|
|
32
|
+
* @default false
|
|
30
33
|
*/
|
|
31
34
|
overlay?: boolean;
|
|
32
35
|
/**
|
|
33
36
|
* Управляет режимом автодоскролла. По умолчанию включен.
|
|
37
|
+
* @default true
|
|
34
38
|
*/
|
|
35
39
|
snapScroll?: boolean;
|
|
36
40
|
/**
|
|
@@ -38,6 +42,7 @@ export interface NavBarProps {
|
|
|
38
42
|
* - `false` дивайдер отключен
|
|
39
43
|
* - `always` дивайдер отображается постоянно
|
|
40
44
|
* - `with-scroll` дивайдер отображается только когда контент подскроллен под NavBar
|
|
45
|
+
* @default false
|
|
41
46
|
*/
|
|
42
47
|
showDivider?: ShowDivider;
|
|
43
48
|
/**
|
package/public/NavBar.js
CHANGED
|
@@ -16,7 +16,8 @@ import { useSnapScroll } from '../internal/useSnapScroll.js';
|
|
|
16
16
|
import { useSyncMotionValue } from '../internal/useSyncMotionValue.js';
|
|
17
17
|
import { useInitOnce, scheduleMicro, scheduleMacro, remap } from '../internal/utils.js';
|
|
18
18
|
import { isPaneElement, ExternalPane } from './Pane.js';
|
|
19
|
-
import {
|
|
19
|
+
import { useNavBarRootDefaultProps } from './defaultProps.js';
|
|
20
|
+
import { s as styles } from '../nav-bar-CmjjkPy6.js';
|
|
20
21
|
import '@hh.ru/magritte-internal-custom-scroll';
|
|
21
22
|
import 'motion';
|
|
22
23
|
import '../internal/MorphStore.js';
|
|
@@ -27,8 +28,11 @@ import './LayoutStage.js';
|
|
|
27
28
|
import '@hh.ru/magritte-common-use-when-font-loaded';
|
|
28
29
|
import './Stage.js';
|
|
29
30
|
import '../internal/useInert.js';
|
|
31
|
+
import '@hh.ru/magritte-internal-default-props-context';
|
|
30
32
|
|
|
31
|
-
const NavBar = (
|
|
33
|
+
const NavBar = (props) => {
|
|
34
|
+
const defaultProps = useNavBarRootDefaultProps();
|
|
35
|
+
const { children, transparent = false, startTriggerPosition = 'start', endTriggerPosition, overlay = false, snapScroll: scrollSnapping = true, showDivider = false, animationProgress, } = { ...defaultProps, ...props };
|
|
32
36
|
const paneStoreRegistry = useInitOnce(() => new Set());
|
|
33
37
|
const prevFullHeight = useRef(0);
|
|
34
38
|
const rootRef = useRef(null);
|
package/public/NavBar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavBar.js","sources":["src/public/NavBar.tsx"],"sourcesContent":["import React, { Children, type ReactNode, type RefObject, useLayoutEffect, useRef, type FC } from 'react';\nimport classNames from 'classnames';\nimport { motion, type MotionStyle, MotionValue, frame } from 'motion/react';\n\nimport { Divider, type ShowDivider } from '@hh.ru/magritte-ui-divider';\nimport { Layer } from '@hh.ru/magritte-ui-layer';\nimport { MetricsProvider } from '@hh.ru/magritte-ui-nav-bar/internal/MetricsProvider';\nimport { NavBarContext } from '@hh.ru/magritte-ui-nav-bar/internal/NavBarContext';\nimport { PaneStore } from '@hh.ru/magritte-ui-nav-bar/internal/PaneStore';\nimport { useAnimationRanges } from '@hh.ru/magritte-ui-nav-bar/internal/useAnimationRanges';\nimport { useBindScrollToAnimationProgress } from '@hh.ru/magritte-ui-nav-bar/internal/useBindScrollToAnimationProgress';\nimport { useNavBarMetrics } from '@hh.ru/magritte-ui-nav-bar/internal/useNavBarMetrics';\nimport { useResetFocus } from '@hh.ru/magritte-ui-nav-bar/internal/useResetFocus';\nimport { useScrollAdapter } from '@hh.ru/magritte-ui-nav-bar/internal/useScrollAdapter';\nimport { useSnapScroll } from '@hh.ru/magritte-ui-nav-bar/internal/useSnapScroll';\nimport { useSyncMotionValue } from '@hh.ru/magritte-ui-nav-bar/internal/useSyncMotionValue';\nimport { remap, scheduleMicro, scheduleMacro, useInitOnce } from '@hh.ru/magritte-ui-nav-bar/internal/utils';\nimport {\n type PaneElement,\n type InternalPaneProps,\n ExternalPane,\n isPaneElement,\n} from '@hh.ru/magritte-ui-nav-bar/public/Pane';\n\nimport styles from './nav-bar.less';\n\nexport interface NavBarProps {\n /**\n * В качестве потомков могут передаваться компоненты <Pane /> или произвольные элементы,\n * которые будут автоматически обёрнуты в <Pane />.\n */\n children: ReactNode;\n /**\n * Управляет режимом прозрачности:\n * -- Прозрачность отключена (`false`)\n * -- Прозрачный всегда (`true`)\n * -- Прозрачный в начале анимации (`start`)\n * -- Прозрачный в конце анимации (`end`)\n */\n transparent?: 'start' | 'end' | boolean;\n /**\n * Управляет позицией триггера начала анимации\n */\n startTriggerPosition?: 'start' | 'full-area' | RefObject<HTMLElement | null>;\n /**\n * Управляет позицией триггера конца анимации. Если не передан вычисляется автоматически на основе изменения\n * высоты навбара в процессе анимации и позиции триггера начала анмиации. Если передано число, то интерпретируется\n * как отступ в пикселях от позиции триггера старта анимации.\n */\n endTriggerPosition?: RefObject<HTMLElement | null> | number;\n /**\n * Включает режим когда NavBar не занимает место в лейауте и контент располагается под ним.\n */\n overlay?: boolean;\n /**\n * Управляет режимом автодоскролла. По умолчанию включен.\n */\n snapScroll?: boolean;\n /**\n * Управляет режимом отображения дивайдера:\n * - `false` дивайдер отключен\n * - `always` дивайдер отображается постоянно\n * - `with-scroll` дивайдер отображается только когда контент подскроллен под NavBar\n */\n showDivider?: ShowDivider;\n /**\n * Принимает MotionValue значение которого будет обновляться синхронно с анимацией всего NavBar.\n * Прогресс анимации представляется в виде числа 0..1\n * Предназначен для синхронизации внешних анимаций с анимациями NavBar.\n */\n animationProgress?: MotionValue<number>;\n}\n\nexport const NavBar: FC<NavBarProps> = ({\n children,\n transparent = false,\n startTriggerPosition = 'start',\n endTriggerPosition,\n overlay = false,\n snapScroll: scrollSnapping = true,\n showDivider = false,\n animationProgress,\n}) => {\n const paneStoreRegistry = useInitOnce(() => new Set<PaneStore>());\n const prevFullHeight = useRef<null | number>(0);\n const rootRef = useRef<HTMLDivElement>(null);\n\n const [scrollAdapter, scrollPosition] = useScrollAdapter(rootRef);\n const [getMetrics, invalidateMetrics] = useNavBarMetrics(paneStoreRegistry, rootRef, scrollAdapter);\n const [getAnimationRanges, invalidateAnimationRanges] = useAnimationRanges(paneStoreRegistry, getMetrics);\n const [bindScrollToAnimation, getClosestStops, totalAnimationProgress, dividerStyle] =\n useBindScrollToAnimationProgress(\n scrollPosition,\n getMetrics,\n getAnimationRanges,\n scrollAdapter,\n startTriggerPosition,\n endTriggerPosition\n );\n const snapScroll = useSnapScroll(\n scrollPosition,\n totalAnimationProgress,\n scrollAdapter,\n getClosestStops,\n scrollSnapping\n );\n\n // При получении размеров важно дождаться применения MotionValue к DOM, поэтому используем frame.render\n const bindScrollToAnimationScheduled = useInitOnce(() => scheduleMicro(() => frame.render(bindScrollToAnimation)));\n useResetFocus(rootRef, totalAnimationProgress);\n useSyncMotionValue(totalAnimationProgress, animationProgress);\n\n const dividerVisibility =\n // eslint-disable-next-line no-nested-ternary\n showDivider === 'with-scroll' ? dividerStyle.visibility : showDivider ? 'visible' : 'hidden';\n\n const registerPaneStore = useInitOnce(() => {\n const subscriptions: VoidFunction[] = [];\n\n const updateAnimationParams = () => {\n subscriptions.length = 0;\n invalidateMetrics();\n invalidateAnimationRanges();\n bindScrollToAnimationScheduled();\n const navBarMetrics = getMetrics();\n const fullPanesStartHeight = navBarMetrics.bottom - navBarMetrics.top;\n\n let scroll = scrollAdapter.getScrollTop();\n if (prevFullHeight.current !== null && scroll !== 0) {\n const heightDelta = fullPanesStartHeight - prevFullHeight.current;\n scroll += heightDelta;\n\n requestAnimationFrame(() => {\n scrollPosition.jump(scrollAdapter.getScrollTop() - 1);\n scrollPosition.jump(scrollAdapter.getScrollTop());\n });\n }\n\n const animationRanges = getAnimationRanges();\n [...paneStoreRegistry.values()].forEach((paneStore) => {\n const range = animationRanges.get(paneStore.get('id'));\n if (!range) {\n return;\n }\n const remapFn = remap(\n range[0] === 0 && range[1] === 0\n ? [0, 1]\n : [range[0] / navBarMetrics.animationHeight, range[1] / navBarMetrics.animationHeight],\n [0, 1]\n );\n const motionValue = paneStore.get('motionValue');\n motionValue.set(remapFn(totalAnimationProgress.get()));\n subscriptions.push(totalAnimationProgress.on('change', (value) => motionValue.set(remapFn(value))));\n });\n\n prevFullHeight.current = fullPanesStartHeight;\n };\n\n // основной триггер запуска updateAnimationParams это изменения размеров, обработка которых происходит\n // в очереди микрозадач, поэтому откладываем запуск функции до перехдоа к макрозадачам, чтобы сократить\n // количество вызовов при массовых изменениях\n const onChange = scheduleMacro(updateAnimationParams);\n\n return (paneStore: PaneStore) => {\n const unsubscribe = paneStore.onChange(\n ['startHeight', 'endHeight', 'top', 'foldable', 'animated'],\n onChange\n );\n paneStoreRegistry.add(paneStore);\n return () => {\n paneStoreRegistry.delete(paneStore);\n unsubscribe();\n };\n };\n });\n\n useLayoutEffect(() => {\n bindScrollToAnimation();\n snapScroll();\n if (!rootRef.current || (typeof startTriggerPosition === 'string' && !endTriggerPosition)) {\n return void 0;\n }\n return scrollAdapter.onResize(bindScrollToAnimationScheduled);\n }, [\n startTriggerPosition,\n endTriggerPosition,\n bindScrollToAnimation,\n bindScrollToAnimationScheduled,\n snapScroll,\n scrollAdapter,\n ]);\n\n // Оборачиваем потомков, не являющихся Pane, в Pane и вкладываем панели друг в друга через проп nextPane\n const childrenArray = Children.toArray(children);\n const nested = isPaneElement(childrenArray[0]) ? (\n childrenArray.reduceRight<PaneElement | null>((acc, child) => {\n if (!isPaneElement(child)) {\n return acc;\n }\n // cloneElement сужает конструктор до InternalPaneProps, поэтому возвращаем к PaneElement\n return React.cloneElement<InternalPaneProps>(child, {\n ...child.props,\n nextPane: acc,\n }) as PaneElement;\n }, null)\n ) : (\n <ExternalPane>{children}</ExternalPane>\n );\n\n return (\n <Layer layer=\"navigation-bar\">\n <MetricsProvider\n className={classNames(styles.navBar, {\n [styles.navbarTransparentStart]: transparent === 'start',\n [styles.navbarTransparentEnd]: transparent === 'end',\n [styles.navbarNotTransparent]: !transparent,\n [styles.navbarTransparent]: transparent === true,\n [styles.navBarOverlay]: overlay,\n })}\n ref={rootRef}\n measureClassName={styles.metricsMode}\n >\n <div className={styles.navBarOverlayWrapper}>\n <div className={styles.navBarContentContainer}>\n <motion.div\n style={{ '--magritte-ui-navbar-animation-progress': totalAnimationProgress } as MotionStyle}\n className={styles.navBarPanesContainer}\n >\n <NavBarContext.Provider value={registerPaneStore}>{nested}</NavBarContext.Provider>\n </motion.div>\n <motion.div\n className={styles.dividerContainer}\n style={{ ...dividerStyle, visibility: dividerVisibility }}\n >\n <Divider />\n </motion.div>\n </div>\n </div>\n </MetricsProvider>\n </Layer>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NavBar.js","sources":["src/public/NavBar.tsx"],"sourcesContent":["import React, { Children, type ReactNode, type RefObject, useLayoutEffect, useRef, type FC } from 'react';\nimport classNames from 'classnames';\nimport { motion, type MotionStyle, MotionValue, frame } from 'motion/react';\n\nimport { Divider, type ShowDivider } from '@hh.ru/magritte-ui-divider';\nimport { Layer } from '@hh.ru/magritte-ui-layer';\nimport { MetricsProvider } from '@hh.ru/magritte-ui-nav-bar/internal/MetricsProvider';\nimport { NavBarContext } from '@hh.ru/magritte-ui-nav-bar/internal/NavBarContext';\nimport { PaneStore } from '@hh.ru/magritte-ui-nav-bar/internal/PaneStore';\nimport { useAnimationRanges } from '@hh.ru/magritte-ui-nav-bar/internal/useAnimationRanges';\nimport { useBindScrollToAnimationProgress } from '@hh.ru/magritte-ui-nav-bar/internal/useBindScrollToAnimationProgress';\nimport { useNavBarMetrics } from '@hh.ru/magritte-ui-nav-bar/internal/useNavBarMetrics';\nimport { useResetFocus } from '@hh.ru/magritte-ui-nav-bar/internal/useResetFocus';\nimport { useScrollAdapter } from '@hh.ru/magritte-ui-nav-bar/internal/useScrollAdapter';\nimport { useSnapScroll } from '@hh.ru/magritte-ui-nav-bar/internal/useSnapScroll';\nimport { useSyncMotionValue } from '@hh.ru/magritte-ui-nav-bar/internal/useSyncMotionValue';\nimport { remap, scheduleMicro, scheduleMacro, useInitOnce } from '@hh.ru/magritte-ui-nav-bar/internal/utils';\nimport {\n type PaneElement,\n type InternalPaneProps,\n ExternalPane,\n isPaneElement,\n} from '@hh.ru/magritte-ui-nav-bar/public/Pane';\nimport { useNavBarRootDefaultProps } from '@hh.ru/magritte-ui-nav-bar/public/defaultProps';\n\nimport styles from './nav-bar.less';\n\nexport interface NavBarProps {\n /**\n * В качестве потомков могут передаваться компоненты <Pane /> или произвольные элементы,\n * которые будут автоматически обёрнуты в <Pane />.\n */\n children: ReactNode;\n /**\n * Управляет режимом прозрачности:\n * -- Прозрачность отключена (`false`)\n * -- Прозрачный всегда (`true`)\n * -- Прозрачный в начале анимации (`start`)\n * -- Прозрачный в конце анимации (`end`)\n * @default false\n */\n transparent?: 'start' | 'end' | boolean;\n /**\n * Управляет позицией триггера начала анимации\n * @default start\n */\n startTriggerPosition?: 'start' | 'full-area' | RefObject<HTMLElement | null>;\n /**\n * Управляет позицией триггера конца анимации. Если не передан вычисляется автоматически на основе изменения\n * высоты навбара в процессе анимации и позиции триггера начала анмиации. Если передано число, то интерпретируется\n * как отступ в пикселях от позиции триггера старта анимации.\n */\n endTriggerPosition?: RefObject<HTMLElement | null> | number;\n /**\n * Включает режим когда NavBar не занимает место в лейауте и контент располагается под ним.\n * @default false\n */\n overlay?: boolean;\n /**\n * Управляет режимом автодоскролла. По умолчанию включен.\n * @default true\n */\n snapScroll?: boolean;\n /**\n * Управляет режимом отображения дивайдера:\n * - `false` дивайдер отключен\n * - `always` дивайдер отображается постоянно\n * - `with-scroll` дивайдер отображается только когда контент подскроллен под NavBar\n * @default false\n */\n showDivider?: ShowDivider;\n /**\n * Принимает MotionValue значение которого будет обновляться синхронно с анимацией всего NavBar.\n * Прогресс анимации представляется в виде числа 0..1\n * Предназначен для синхронизации внешних анимаций с анимациями NavBar.\n */\n animationProgress?: MotionValue<number>;\n}\n\nexport const NavBar: FC<NavBarProps> = (props) => {\n const defaultProps = useNavBarRootDefaultProps();\n const {\n children,\n transparent = false,\n startTriggerPosition = 'start',\n endTriggerPosition,\n overlay = false,\n snapScroll: scrollSnapping = true,\n showDivider = false,\n animationProgress,\n } = { ...defaultProps, ...props };\n const paneStoreRegistry = useInitOnce(() => new Set<PaneStore>());\n const prevFullHeight = useRef<null | number>(0);\n const rootRef = useRef<HTMLDivElement>(null);\n\n const [scrollAdapter, scrollPosition] = useScrollAdapter(rootRef);\n const [getMetrics, invalidateMetrics] = useNavBarMetrics(paneStoreRegistry, rootRef, scrollAdapter);\n const [getAnimationRanges, invalidateAnimationRanges] = useAnimationRanges(paneStoreRegistry, getMetrics);\n const [bindScrollToAnimation, getClosestStops, totalAnimationProgress, dividerStyle] =\n useBindScrollToAnimationProgress(\n scrollPosition,\n getMetrics,\n getAnimationRanges,\n scrollAdapter,\n startTriggerPosition,\n endTriggerPosition\n );\n const snapScroll = useSnapScroll(\n scrollPosition,\n totalAnimationProgress,\n scrollAdapter,\n getClosestStops,\n scrollSnapping\n );\n\n // При получении размеров важно дождаться применения MotionValue к DOM, поэтому используем frame.render\n const bindScrollToAnimationScheduled = useInitOnce(() => scheduleMicro(() => frame.render(bindScrollToAnimation)));\n useResetFocus(rootRef, totalAnimationProgress);\n useSyncMotionValue(totalAnimationProgress, animationProgress);\n\n const dividerVisibility =\n // eslint-disable-next-line no-nested-ternary\n showDivider === 'with-scroll' ? dividerStyle.visibility : showDivider ? 'visible' : 'hidden';\n\n const registerPaneStore = useInitOnce(() => {\n const subscriptions: VoidFunction[] = [];\n\n const updateAnimationParams = () => {\n subscriptions.length = 0;\n invalidateMetrics();\n invalidateAnimationRanges();\n bindScrollToAnimationScheduled();\n const navBarMetrics = getMetrics();\n const fullPanesStartHeight = navBarMetrics.bottom - navBarMetrics.top;\n\n let scroll = scrollAdapter.getScrollTop();\n if (prevFullHeight.current !== null && scroll !== 0) {\n const heightDelta = fullPanesStartHeight - prevFullHeight.current;\n scroll += heightDelta;\n\n requestAnimationFrame(() => {\n scrollPosition.jump(scrollAdapter.getScrollTop() - 1);\n scrollPosition.jump(scrollAdapter.getScrollTop());\n });\n }\n\n const animationRanges = getAnimationRanges();\n [...paneStoreRegistry.values()].forEach((paneStore) => {\n const range = animationRanges.get(paneStore.get('id'));\n if (!range) {\n return;\n }\n const remapFn = remap(\n range[0] === 0 && range[1] === 0\n ? [0, 1]\n : [range[0] / navBarMetrics.animationHeight, range[1] / navBarMetrics.animationHeight],\n [0, 1]\n );\n const motionValue = paneStore.get('motionValue');\n motionValue.set(remapFn(totalAnimationProgress.get()));\n subscriptions.push(totalAnimationProgress.on('change', (value) => motionValue.set(remapFn(value))));\n });\n\n prevFullHeight.current = fullPanesStartHeight;\n };\n\n // основной триггер запуска updateAnimationParams это изменения размеров, обработка которых происходит\n // в очереди микрозадач, поэтому откладываем запуск функции до перехдоа к макрозадачам, чтобы сократить\n // количество вызовов при массовых изменениях\n const onChange = scheduleMacro(updateAnimationParams);\n\n return (paneStore: PaneStore) => {\n const unsubscribe = paneStore.onChange(\n ['startHeight', 'endHeight', 'top', 'foldable', 'animated'],\n onChange\n );\n paneStoreRegistry.add(paneStore);\n return () => {\n paneStoreRegistry.delete(paneStore);\n unsubscribe();\n };\n };\n });\n\n useLayoutEffect(() => {\n bindScrollToAnimation();\n snapScroll();\n if (!rootRef.current || (typeof startTriggerPosition === 'string' && !endTriggerPosition)) {\n return void 0;\n }\n return scrollAdapter.onResize(bindScrollToAnimationScheduled);\n }, [\n startTriggerPosition,\n endTriggerPosition,\n bindScrollToAnimation,\n bindScrollToAnimationScheduled,\n snapScroll,\n scrollAdapter,\n ]);\n\n // Оборачиваем потомков, не являющихся Pane, в Pane и вкладываем панели друг в друга через проп nextPane\n const childrenArray = Children.toArray(children);\n const nested = isPaneElement(childrenArray[0]) ? (\n childrenArray.reduceRight<PaneElement | null>((acc, child) => {\n if (!isPaneElement(child)) {\n return acc;\n }\n // cloneElement сужает конструктор до InternalPaneProps, поэтому возвращаем к PaneElement\n return React.cloneElement<InternalPaneProps>(child, {\n ...child.props,\n nextPane: acc,\n }) as PaneElement;\n }, null)\n ) : (\n <ExternalPane>{children}</ExternalPane>\n );\n\n return (\n <Layer layer=\"navigation-bar\">\n <MetricsProvider\n className={classNames(styles.navBar, {\n [styles.navbarTransparentStart]: transparent === 'start',\n [styles.navbarTransparentEnd]: transparent === 'end',\n [styles.navbarNotTransparent]: !transparent,\n [styles.navbarTransparent]: transparent === true,\n [styles.navBarOverlay]: overlay,\n })}\n ref={rootRef}\n measureClassName={styles.metricsMode}\n >\n <div className={styles.navBarOverlayWrapper}>\n <div className={styles.navBarContentContainer}>\n <motion.div\n style={{ '--magritte-ui-navbar-animation-progress': totalAnimationProgress } as MotionStyle}\n className={styles.navBarPanesContainer}\n >\n <NavBarContext.Provider value={registerPaneStore}>{nested}</NavBarContext.Provider>\n </motion.div>\n <motion.div\n className={styles.dividerContainer}\n style={{ ...dividerStyle, visibility: dividerVisibility }}\n >\n <Divider />\n </motion.div>\n </div>\n </div>\n </MetricsProvider>\n </Layer>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
package/public/Pane.js
CHANGED
|
@@ -10,7 +10,7 @@ import { useInitOnce, useStoreSyncedTransform, lerp } from '../internal/utils.js
|
|
|
10
10
|
import { EnvironmentFingerprintProvider } from './EnvironmentFingerprintNode.js';
|
|
11
11
|
import { LayoutStage } from './LayoutStage.js';
|
|
12
12
|
import { Stage } from './Stage.js';
|
|
13
|
-
import { s as styles } from '../nav-bar-
|
|
13
|
+
import { s as styles } from '../nav-bar-CmjjkPy6.js';
|
|
14
14
|
import '../internal/KeyedSubscriptions.js';
|
|
15
15
|
import 'motion';
|
|
16
16
|
import '../internal/NavBarContext.js';
|
package/public/Stage.js
CHANGED
|
@@ -7,7 +7,7 @@ import { useMeasureAuto } from '../internal/MetricsProvider.js';
|
|
|
7
7
|
import { usePaneStore } from '../internal/PaneStore.js';
|
|
8
8
|
import { useInert } from '../internal/useInert.js';
|
|
9
9
|
import { EnvironmentFingerprintNode } from './EnvironmentFingerprintNode.js';
|
|
10
|
-
import { s as styles } from '../nav-bar-
|
|
10
|
+
import { s as styles } from '../nav-bar-CmjjkPy6.js';
|
|
11
11
|
import '../internal/utils.js';
|
|
12
12
|
import 'motion';
|
|
13
13
|
import '../internal/KeyedSubscriptions.js';
|
package/public/TitleContainer.js
CHANGED
|
@@ -2,7 +2,8 @@ import './../index.css';
|
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import { Morph } from './Morph.js';
|
|
5
|
-
import {
|
|
5
|
+
import { TextDefaultPropsContext } from '@hh.ru/magritte-ui-typography';
|
|
6
|
+
import { s as styles } from '../nav-bar-CmjjkPy6.js';
|
|
6
7
|
import 'react';
|
|
7
8
|
import 'motion/react';
|
|
8
9
|
import '../internal/MetricsProvider.js';
|
|
@@ -16,8 +17,30 @@ import './EnvironmentFingerprintNode.js';
|
|
|
16
17
|
import './Stage.js';
|
|
17
18
|
import '../internal/useInert.js';
|
|
18
19
|
|
|
19
|
-
const
|
|
20
|
-
|
|
20
|
+
const TEXT_DEFAULT_PROPS_TITLE = {
|
|
21
|
+
small: {
|
|
22
|
+
typography: 'subtitle-1-semibold',
|
|
23
|
+
style: 'primary',
|
|
24
|
+
},
|
|
25
|
+
large: {
|
|
26
|
+
typography: 'title-4-semibold',
|
|
27
|
+
style: 'primary',
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
const TEXT_DEFAULT_PROPS_SUBTITLE = {
|
|
31
|
+
small: {
|
|
32
|
+
typography: 'label-4-regular',
|
|
33
|
+
style: 'secondary',
|
|
34
|
+
},
|
|
35
|
+
large: {
|
|
36
|
+
typography: 'label-2-regular',
|
|
37
|
+
style: 'secondary',
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
const TitleContainer = ({ left, title, icon, subtitle, size = 'small', centered = false, }) => {
|
|
41
|
+
return (jsxs("div", { className: classNames(styles.titleContainerWrapper, {
|
|
42
|
+
[styles.sizeLarge]: size === 'large',
|
|
43
|
+
}), children: [!!left && (jsx("div", { className: styles.titleLeftSlot, children: jsx(Morph, { id: "title-component-left-slot", className: styles.titleMorphItem, children: left }) })), jsxs("div", { className: classNames(styles.titleMainPart, { [styles.centered]: centered }), children: [jsxs("div", { className: styles.titleContainer, children: [jsx("div", { className: styles.title, children: !!title && (jsx(TextDefaultPropsContext, { props: TEXT_DEFAULT_PROPS_TITLE[size], children: jsx(Morph, { id: "title-component-title", className: classNames(styles.titleMorphItem, styles.textMorphItem), horizontalPositionAlign: "left", children: title }) })) }), jsx("div", { className: styles.titleInlineContainer, children: !!icon && (jsx(Morph, { id: "title-component-inline-slot", className: styles.titleMorphItem, children: icon })) })] }), jsx("div", { className: styles.subtitleContainer, children: !!subtitle && (jsx(TextDefaultPropsContext, { props: TEXT_DEFAULT_PROPS_SUBTITLE[size], children: jsx(Morph, { id: "title-component-subtitle", className: classNames(styles.titleMorphItem, styles.textMorphItem), horizontalPositionAlign: "left", children: subtitle }) })) })] })] }));
|
|
21
44
|
};
|
|
22
45
|
|
|
23
46
|
export { TitleContainer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TitleContainer.js","sources":["src/public/TitleContainer.tsx"],"sourcesContent":["import { type FC, type ReactNode } from 'react';\nimport classNames from 'classnames';\n\nimport { Morph } from '@hh.ru/magritte-ui-nav-bar/public/Morph';\n\nimport styles from './nav-bar.less';\n\nexport interface TitleContainerProps {\n /**\n * Контент левого слота\n */\n left?: ReactNode;\n /**\n * Контент слота для заголовка\n */\n title?: ReactNode;\n /**\n * Контент слота для подзаголовка\n */\n subtitle?: ReactNode;\n /**\n * Контент слота справа от заголовка\n */\n icon?: ReactNode;\n /**\n * Позволяет выровнять по горизонтали контент слотов для заголовка и подзаголовка\n */\n centered?: boolean;\n}\n\nexport const TitleContainer: FC<TitleContainerProps> = ({
|
|
1
|
+
{"version":3,"file":"TitleContainer.js","sources":["src/public/TitleContainer.tsx"],"sourcesContent":["import { type FC, type ReactNode } from 'react';\nimport classNames from 'classnames';\n\nimport { Morph } from '@hh.ru/magritte-ui-nav-bar/public/Morph';\nimport { TextDefaultPropsContext } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './nav-bar.less';\n\nconst TEXT_DEFAULT_PROPS_TITLE = {\n small: {\n typography: 'subtitle-1-semibold',\n style: 'primary',\n },\n large: {\n typography: 'title-4-semibold',\n style: 'primary',\n },\n} as const;\n\nconst TEXT_DEFAULT_PROPS_SUBTITLE = {\n small: {\n typography: 'label-4-regular',\n style: 'secondary',\n },\n large: {\n typography: 'label-2-regular',\n style: 'secondary',\n },\n} as const;\n\nexport interface TitleContainerProps {\n /**\n * Контент левого слота\n */\n left?: ReactNode;\n /**\n * Контент слота для заголовка\n */\n title?: ReactNode;\n /**\n * Контент слота для подзаголовка\n */\n subtitle?: ReactNode;\n /**\n * Контент слота справа от заголовка\n */\n icon?: ReactNode;\n /**\n * Позволяет выровнять по горизонтали контент слотов для заголовка и подзаголовка\n */\n centered?: boolean;\n size?: 'large' | 'small';\n}\n\nexport const TitleContainer: FC<TitleContainerProps> = ({\n left,\n title,\n icon,\n subtitle,\n size = 'small',\n centered = false,\n}) => {\n return (\n <div\n className={classNames(styles.titleContainerWrapper, {\n [styles.sizeLarge]: size === 'large',\n })}\n >\n {!!left && (\n <div className={styles.titleLeftSlot}>\n <Morph id=\"title-component-left-slot\" className={styles.titleMorphItem}>\n {left}\n </Morph>\n </div>\n )}\n <div className={classNames(styles.titleMainPart, { [styles.centered]: centered })}>\n <div className={styles.titleContainer}>\n <div className={styles.title}>\n {!!title && (\n <TextDefaultPropsContext props={TEXT_DEFAULT_PROPS_TITLE[size]}>\n <Morph\n id=\"title-component-title\"\n className={classNames(styles.titleMorphItem, styles.textMorphItem)}\n horizontalPositionAlign=\"left\"\n >\n {title}\n </Morph>\n </TextDefaultPropsContext>\n )}\n </div>\n <div className={styles.titleInlineContainer}>\n {!!icon && (\n <Morph id=\"title-component-inline-slot\" className={styles.titleMorphItem}>\n {icon}\n </Morph>\n )}\n </div>\n </div>\n <div className={styles.subtitleContainer}>\n {!!subtitle && (\n <TextDefaultPropsContext props={TEXT_DEFAULT_PROPS_SUBTITLE[size]}>\n <Morph\n id=\"title-component-subtitle\"\n className={classNames(styles.titleMorphItem, styles.textMorphItem)}\n horizontalPositionAlign=\"left\"\n >\n {subtitle}\n </Morph>\n </TextDefaultPropsContext>\n )}\n </div>\n </div>\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;;;;;;;;;AAQA,MAAM,wBAAwB,GAAG;AAC7B,IAAA,KAAK,EAAE;AACH,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,KAAK,EAAE,SAAS;AACnB,KAAA;AACD,IAAA,KAAK,EAAE;AACH,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,KAAK,EAAE,SAAS;AACnB,KAAA;CACK,CAAC;AAEX,MAAM,2BAA2B,GAAG;AAChC,IAAA,KAAK,EAAE;AACH,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,KAAK,EAAE,WAAW;AACrB,KAAA;AACD,IAAA,KAAK,EAAE;AACH,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,KAAK,EAAE,WAAW;AACrB,KAAA;CACK,CAAC;MA0BE,cAAc,GAA4B,CAAC,EACpD,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,GAAG,OAAO,EACd,QAAQ,GAAG,KAAK,GACnB,KAAI;IACD,QACIA,cACI,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,qBAAqB,EAAE;AAChD,YAAA,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,KAAK,OAAO;SACvC,CAAC,EAAA,QAAA,EAAA,CAED,CAAC,CAAC,IAAI,KACHC,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,aAAa,EAAA,QAAA,EAChCA,IAAC,KAAK,EAAA,EAAC,EAAE,EAAC,2BAA2B,EAAC,SAAS,EAAE,MAAM,CAAC,cAAc,YACjE,IAAI,EAAA,CACD,GACN,CACT,EACDD,cAAK,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,aAC7EA,IAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,cAAc,EACjC,QAAA,EAAA,CAAAC,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,KAAK,EAAA,QAAA,EACvB,CAAC,CAAC,KAAK,KACJA,GAAC,CAAA,uBAAuB,IAAC,KAAK,EAAE,wBAAwB,CAAC,IAAI,CAAC,EAC1D,QAAA,EAAAA,GAAA,CAAC,KAAK,EACF,EAAA,EAAE,EAAC,uBAAuB,EAC1B,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC,EAClE,uBAAuB,EAAC,MAAM,YAE7B,KAAK,EAAA,CACF,GACc,CAC7B,EAAA,CACC,EACNA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,oBAAoB,EACtC,QAAA,EAAA,CAAC,CAAC,IAAI,KACHA,IAAC,KAAK,EAAA,EAAC,EAAE,EAAC,6BAA6B,EAAC,SAAS,EAAE,MAAM,CAAC,cAAc,YACnE,IAAI,EAAA,CACD,CACX,EACC,CAAA,CAAA,EAAA,CACJ,EACNA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,iBAAiB,YACnC,CAAC,CAAC,QAAQ,KACPA,IAAC,uBAAuB,EAAA,EAAC,KAAK,EAAE,2BAA2B,CAAC,IAAI,CAAC,YAC7DA,GAAC,CAAA,KAAK,IACF,EAAE,EAAC,0BAA0B,EAC7B,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC,EAClE,uBAAuB,EAAC,MAAM,EAAA,QAAA,EAE7B,QAAQ,EACL,CAAA,EAAA,CACc,CAC7B,EACC,CAAA,CAAA,EAAA,CACJ,CACJ,EAAA,CAAA,EACR;AACN;;;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type FC, type ReactNode } from 'react';
|
|
2
|
+
import type { IconProps } from '@hh.ru/magritte-ui-icon/types';
|
|
3
|
+
import type { ActionsProps } from '@hh.ru/magritte-ui-nav-bar/public/Actions';
|
|
4
|
+
import type { NavBarProps } from '@hh.ru/magritte-ui-nav-bar/public/NavBar';
|
|
5
|
+
/** Внутренний хук чтения дефолтов корневых пропсов `NavBar` из ближайшего `NavBarDefaultPropsContext`. */
|
|
6
|
+
export declare const useNavBarRootDefaultProps: () => Partial<NavBarProps>;
|
|
7
|
+
/** Внутренний хук чтения дефолтов `Actions` из ближайшего `NavBarDefaultPropsContext`. */
|
|
8
|
+
export declare const useActionsDefaultProps: () => Partial<ActionsProps>;
|
|
9
|
+
/** Внутренний хук чтения переопределений дефолтов иконок боковых слотов `Actions`. */
|
|
10
|
+
export declare const useActionsIconsDefaultProps: () => Partial<IconProps>;
|
|
11
|
+
export interface NavBarDefaultPropsContextProps {
|
|
12
|
+
/**
|
|
13
|
+
* Дефолтные пропсы для самого `NavBar` в поддереве (например `startTriggerPosition` /
|
|
14
|
+
* `endTriggerPosition`) — явные пропсы на самом `NavBar` побеждают.
|
|
15
|
+
*/
|
|
16
|
+
rootProps?: Partial<NavBarProps>;
|
|
17
|
+
/** Дефолтные пропсы для всех `Actions` в поддереве — явные пропсы на самом `Actions` побеждают. */
|
|
18
|
+
actionsProps?: Partial<ActionsProps>;
|
|
19
|
+
/**
|
|
20
|
+
* Переопределение дефолтных пропсов иконок в боковых слотах `Actions` (`left` / `right`).
|
|
21
|
+
* Мёржится поверх базовых дефолтов боковых иконок; на иконки центрального слота не влияет.
|
|
22
|
+
*/
|
|
23
|
+
actionsIconsProps?: Partial<IconProps>;
|
|
24
|
+
/**
|
|
25
|
+
* Если `true`, заданные здесь дефолты форсируются: по пересекающимся ключам они побеждают
|
|
26
|
+
* любой вложенный (внутренний) провайдер, а не наоборот. Явные пропсы на самом компоненте
|
|
27
|
+
* по-прежнему перекрывают любой дефолт. Применяется ко всем слотам.
|
|
28
|
+
* @default false
|
|
29
|
+
*/
|
|
30
|
+
important?: boolean;
|
|
31
|
+
children?: ReactNode;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Провайдер дефолтных пропсов для подкомпонентов NavBar в поддереве.
|
|
35
|
+
*
|
|
36
|
+
* Под капотом раскладывает пропсы по изолированным, типизированным контекстам каждого подкомпонента
|
|
37
|
+
* (`actions` → контекст `Actions` и т.д.), а подкомпоненты читают свои дефолты через собственные хуки.
|
|
38
|
+
* Добавление поддержки нового подкомпонента = новое поле-слот здесь + чтение в этом подкомпоненте.
|
|
39
|
+
*/
|
|
40
|
+
export declare const NavBarDefaultPropsContext: FC<NavBarDefaultPropsContextProps>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import './../index.css';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { createDefaultPropsContext } from '@hh.ru/magritte-internal-default-props-context';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Стабильные ссылки на пустые дефолты для незаданных слотов. Объявлены на уровне модуля,
|
|
7
|
+
* чтобы не создавать новый объект на каждый рендер composite-провайдера — иначе внутренний
|
|
8
|
+
* провайдер слота пересчитывал бы свёртку дефолтов вхолостую на каждый рендер.
|
|
9
|
+
*/
|
|
10
|
+
const EMPTY_ACTIONS_PROPS = {};
|
|
11
|
+
const EMPTY_ICON_PROPS = {};
|
|
12
|
+
const EMPTY_ROOT_PROPS = {};
|
|
13
|
+
const rootContext = createDefaultPropsContext('NavBarRoot');
|
|
14
|
+
const actionsContext = createDefaultPropsContext('NavBarActions');
|
|
15
|
+
const actionsIconsContext = createDefaultPropsContext('NavBarActionsIcons');
|
|
16
|
+
const RootDefaultPropsContext = rootContext.DefaultPropsContext;
|
|
17
|
+
const ActionsDefaultPropsContext = actionsContext.DefaultPropsContext;
|
|
18
|
+
const ActionsIconsDefaultPropsContext = actionsIconsContext.DefaultPropsContext;
|
|
19
|
+
/** Внутренний хук чтения дефолтов корневых пропсов `NavBar` из ближайшего `NavBarDefaultPropsContext`. */
|
|
20
|
+
const useNavBarRootDefaultProps = rootContext.useDefaultProps;
|
|
21
|
+
/** Внутренний хук чтения дефолтов `Actions` из ближайшего `NavBarDefaultPropsContext`. */
|
|
22
|
+
const useActionsDefaultProps = actionsContext.useDefaultProps;
|
|
23
|
+
/** Внутренний хук чтения переопределений дефолтов иконок боковых слотов `Actions`. */
|
|
24
|
+
const useActionsIconsDefaultProps = actionsIconsContext.useDefaultProps;
|
|
25
|
+
/**
|
|
26
|
+
* Провайдер дефолтных пропсов для подкомпонентов NavBar в поддереве.
|
|
27
|
+
*
|
|
28
|
+
* Под капотом раскладывает пропсы по изолированным, типизированным контекстам каждого подкомпонента
|
|
29
|
+
* (`actions` → контекст `Actions` и т.д.), а подкомпоненты читают свои дефолты через собственные хуки.
|
|
30
|
+
* Добавление поддержки нового подкомпонента = новое поле-слот здесь + чтение в этом подкомпоненте.
|
|
31
|
+
*/
|
|
32
|
+
const NavBarDefaultPropsContext = ({ rootProps: root = EMPTY_ROOT_PROPS, actionsProps: actions = EMPTY_ACTIONS_PROPS, actionsIconsProps: actionsIcons = EMPTY_ICON_PROPS, important = false, children, }) => (jsx(RootDefaultPropsContext, { props: root, important: important, children: jsx(ActionsDefaultPropsContext, { props: actions, important: important, children: jsx(ActionsIconsDefaultPropsContext, { props: actionsIcons, important: important, children: children }) }) }));
|
|
33
|
+
NavBarDefaultPropsContext.displayName = 'NavBarDefaultPropsContext';
|
|
34
|
+
|
|
35
|
+
export { NavBarDefaultPropsContext, useActionsDefaultProps, useActionsIconsDefaultProps, useNavBarRootDefaultProps };
|
|
36
|
+
//# sourceMappingURL=defaultProps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultProps.js","sources":["src/public/defaultProps.tsx"],"sourcesContent":["import { type FC, type ReactNode } from 'react';\n\nimport { createDefaultPropsContext } from '@hh.ru/magritte-internal-default-props-context';\nimport type { IconProps } from '@hh.ru/magritte-ui-icon/types';\nimport type { ActionsProps } from '@hh.ru/magritte-ui-nav-bar/public/Actions';\nimport type { NavBarProps } from '@hh.ru/magritte-ui-nav-bar/public/NavBar';\n\n/**\n * Стабильные ссылки на пустые дефолты для незаданных слотов. Объявлены на уровне модуля,\n * чтобы не создавать новый объект на каждый рендер composite-провайдера — иначе внутренний\n * провайдер слота пересчитывал бы свёртку дефолтов вхолостую на каждый рендер.\n */\nconst EMPTY_ACTIONS_PROPS: Partial<ActionsProps> = {};\nconst EMPTY_ICON_PROPS: Partial<IconProps> = {};\nconst EMPTY_ROOT_PROPS: Partial<NavBarProps> = {};\n\nconst rootContext = createDefaultPropsContext<NavBarProps>('NavBarRoot');\nconst actionsContext = createDefaultPropsContext<ActionsProps>('NavBarActions');\nconst actionsIconsContext = createDefaultPropsContext<IconProps>('NavBarActionsIcons');\n\nconst RootDefaultPropsContext = rootContext.DefaultPropsContext;\nconst ActionsDefaultPropsContext = actionsContext.DefaultPropsContext;\nconst ActionsIconsDefaultPropsContext = actionsIconsContext.DefaultPropsContext;\n\n/** Внутренний хук чтения дефолтов корневых пропсов `NavBar` из ближайшего `NavBarDefaultPropsContext`. */\nexport const useNavBarRootDefaultProps = rootContext.useDefaultProps;\n\n/** Внутренний хук чтения дефолтов `Actions` из ближайшего `NavBarDefaultPropsContext`. */\nexport const useActionsDefaultProps = actionsContext.useDefaultProps;\n\n/** Внутренний хук чтения переопределений дефолтов иконок боковых слотов `Actions`. */\nexport const useActionsIconsDefaultProps = actionsIconsContext.useDefaultProps;\n\nexport interface NavBarDefaultPropsContextProps {\n /**\n * Дефолтные пропсы для самого `NavBar` в поддереве (например `startTriggerPosition` /\n * `endTriggerPosition`) — явные пропсы на самом `NavBar` побеждают.\n */\n rootProps?: Partial<NavBarProps>;\n /** Дефолтные пропсы для всех `Actions` в поддереве — явные пропсы на самом `Actions` побеждают. */\n actionsProps?: Partial<ActionsProps>;\n /**\n * Переопределение дефолтных пропсов иконок в боковых слотах `Actions` (`left` / `right`).\n * Мёржится поверх базовых дефолтов боковых иконок; на иконки центрального слота не влияет.\n */\n actionsIconsProps?: Partial<IconProps>;\n /**\n * Если `true`, заданные здесь дефолты форсируются: по пересекающимся ключам они побеждают\n * любой вложенный (внутренний) провайдер, а не наоборот. Явные пропсы на самом компоненте\n * по-прежнему перекрывают любой дефолт. Применяется ко всем слотам.\n * @default false\n */\n important?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Провайдер дефолтных пропсов для подкомпонентов NavBar в поддереве.\n *\n * Под капотом раскладывает пропсы по изолированным, типизированным контекстам каждого подкомпонента\n * (`actions` → контекст `Actions` и т.д.), а подкомпоненты читают свои дефолты через собственные хуки.\n * Добавление поддержки нового подкомпонента = новое поле-слот здесь + чтение в этом подкомпоненте.\n */\nexport const NavBarDefaultPropsContext: FC<NavBarDefaultPropsContextProps> = ({\n rootProps: root = EMPTY_ROOT_PROPS,\n actionsProps: actions = EMPTY_ACTIONS_PROPS,\n actionsIconsProps: actionsIcons = EMPTY_ICON_PROPS,\n important = false,\n children,\n}) => (\n <RootDefaultPropsContext props={root} important={important}>\n <ActionsDefaultPropsContext props={actions} important={important}>\n <ActionsIconsDefaultPropsContext props={actionsIcons} important={important}>\n {children}\n </ActionsIconsDefaultPropsContext>\n </ActionsDefaultPropsContext>\n </RootDefaultPropsContext>\n);\n\nNavBarDefaultPropsContext.displayName = 'NavBarDefaultPropsContext';\n"],"names":["_jsx"],"mappings":";;;AAOA;;;;AAIG;AACH,MAAM,mBAAmB,GAA0B,EAAE,CAAC;AACtD,MAAM,gBAAgB,GAAuB,EAAE,CAAC;AAChD,MAAM,gBAAgB,GAAyB,EAAE,CAAC;AAElD,MAAM,WAAW,GAAG,yBAAyB,CAAc,YAAY,CAAC,CAAC;AACzE,MAAM,cAAc,GAAG,yBAAyB,CAAe,eAAe,CAAC,CAAC;AAChF,MAAM,mBAAmB,GAAG,yBAAyB,CAAY,oBAAoB,CAAC,CAAC;AAEvF,MAAM,uBAAuB,GAAG,WAAW,CAAC,mBAAmB,CAAC;AAChE,MAAM,0BAA0B,GAAG,cAAc,CAAC,mBAAmB,CAAC;AACtE,MAAM,+BAA+B,GAAG,mBAAmB,CAAC,mBAAmB,CAAC;AAEhF;AACa,MAAA,yBAAyB,GAAG,WAAW,CAAC,gBAAgB;AAErE;AACa,MAAA,sBAAsB,GAAG,cAAc,CAAC,gBAAgB;AAErE;AACa,MAAA,2BAA2B,GAAG,mBAAmB,CAAC,gBAAgB;AAyB/E;;;;;;AAMG;AACI,MAAM,yBAAyB,GAAuC,CAAC,EAC1E,SAAS,EAAE,IAAI,GAAG,gBAAgB,EAClC,YAAY,EAAE,OAAO,GAAG,mBAAmB,EAC3C,iBAAiB,EAAE,YAAY,GAAG,gBAAgB,EAClD,SAAS,GAAG,KAAK,EACjB,QAAQ,GACX,MACGA,GAAC,CAAA,uBAAuB,EAAC,EAAA,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAA,QAAA,EACtDA,GAAC,CAAA,0BAA0B,IAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAC5D,QAAA,EAAAA,GAAA,CAAC,+BAA+B,EAAA,EAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,YACrE,QAAQ,EAAA,CACqB,EACT,CAAA,EAAA,CACP,EAC5B;AAEF,yBAAyB,CAAC,WAAW,GAAG,2BAA2B;;;;"}
|
package/nav-bar-DEFIZlLr.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import './index.css';
|
|
2
|
-
var styles = {"actions-container":"magritte-actions-container___CBgYW_1-3-25","actionsContainer":"magritte-actions-container___CBgYW_1-3-25","actions-no-children":"magritte-actions-no-children___rgJUl_1-3-25","actionsNoChildren":"magritte-actions-no-children___rgJUl_1-3-25","actions-left-slot":"magritte-actions-left-slot___DNOj0_1-3-25","actionsLeftSlot":"magritte-actions-left-slot___DNOj0_1-3-25","actions-right-slot":"magritte-actions-right-slot___aodtj_1-3-25","actionsRightSlot":"magritte-actions-right-slot___aodtj_1-3-25","navbar-transparent-end":"magritte-navbar-transparent-end___6KqLR_1-3-25","navbarTransparentEnd":"magritte-navbar-transparent-end___6KqLR_1-3-25","actions-start-stage":"magritte-actions-start-stage___MJ67a_1-3-25","actionsStartStage":"magritte-actions-start-stage___MJ67a_1-3-25","actions-side-slot-content":"magritte-actions-side-slot-content___TlHrX_1-3-25","actionsSideSlotContent":"magritte-actions-side-slot-content___TlHrX_1-3-25","actions-icon-morph":"magritte-actions-icon-morph___-nNgW_1-3-25","actionsIconMorph":"magritte-actions-icon-morph___-nNgW_1-3-25","navbar-transparent-start":"magritte-navbar-transparent-start___wysv0_1-3-25","navbarTransparentStart":"magritte-navbar-transparent-start___wysv0_1-3-25","actions-end-stage":"magritte-actions-end-stage___qHtTV_1-3-25","actionsEndStage":"magritte-actions-end-stage___qHtTV_1-3-25","navbar-not-transparent":"magritte-navbar-not-transparent___5KZNp_1-3-25","navbarNotTransparent":"magritte-navbar-not-transparent___5KZNp_1-3-25","navbar-transparent":"magritte-navbar-transparent___ULEh8_1-3-25","navbarTransparent":"magritte-navbar-transparent___ULEh8_1-3-25","actions-only-stage":"magritte-actions-only-stage___cg10A_1-3-25","actionsOnlyStage":"magritte-actions-only-stage___cg10A_1-3-25","actions-side-slot-content-clone":"magritte-actions-side-slot-content-clone___jDxVm_1-3-25","actionsSideSlotContentClone":"magritte-actions-side-slot-content-clone___jDxVm_1-3-25","actions-center-slot":"magritte-actions-center-slot___hLAy6_1-3-25","actionsCenterSlot":"magritte-actions-center-slot___hLAy6_1-3-25","actions-center-slot-centered":"magritte-actions-center-slot-centered___merXQ_1-3-25","actionsCenterSlotCentered":"magritte-actions-center-slot-centered___merXQ_1-3-25","title-container-wrapper":"magritte-title-container-wrapper___DQUcj_1-3-25","titleContainerWrapper":"magritte-title-container-wrapper___DQUcj_1-3-25","title-main-part":"magritte-title-main-part___npoHN_1-3-25","titleMainPart":"magritte-title-main-part___npoHN_1-3-25","title-left-slot":"magritte-title-left-slot___HTE7h_1-3-25","titleLeftSlot":"magritte-title-left-slot___HTE7h_1-3-25","title-container":"magritte-title-container___y9AIx_1-3-25","titleContainer":"magritte-title-container___y9AIx_1-3-25","subtitle-container":"magritte-subtitle-container___nVUBu_1-3-25","subtitleContainer":"magritte-subtitle-container___nVUBu_1-3-25","centered":"magritte-centered___Y2mlP_1-3-25","title-morph-item":"magritte-title-morph-item___t7Wf3_1-3-25","titleMorphItem":"magritte-title-morph-item___t7Wf3_1-3-25","title":"magritte-title___ZbLgP_1-3-25","pane-content":"magritte-pane-content___UVmC6_1-3-25","paneContent":"magritte-pane-content___UVmC6_1-3-25","pane-background":"magritte-pane-background___PDZAX_1-3-25","paneBackground":"magritte-pane-background___PDZAX_1-3-25","morph-item":"magritte-morph-item___8kF46_1-3-25","morphItem":"magritte-morph-item___8kF46_1-3-25","morph-item-top":"magritte-morph-item-top___WPEkn_1-3-25","morphItemTop":"magritte-morph-item-top___WPEkn_1-3-25","morph-item-bottom":"magritte-morph-item-bottom___zNbsF_1-3-25","morphItemBottom":"magritte-morph-item-bottom___zNbsF_1-3-25","morph-item-left":"magritte-morph-item-left___T6AMW_1-3-25","morphItemLeft":"magritte-morph-item-left___T6AMW_1-3-25","morph-item-right":"magritte-morph-item-right___EuT1E_1-3-25","morphItemRight":"magritte-morph-item-right___EuT1E_1-3-25","pane":"magritte-pane___f8eFC_1-3-25","start-state-container":"magritte-start-state-container___giBVb_1-3-25","startStateContainer":"magritte-start-state-container___giBVb_1-3-25","end-state-container":"magritte-end-state-container___uiW8Q_1-3-25","endStateContainer":"magritte-end-state-container___uiW8Q_1-3-25","content-container":"magritte-content-container___7s7vv_1-3-25","contentContainer":"magritte-content-container___7s7vv_1-3-25","next-pane":"magritte-next-pane___H2oxQ_1-3-25","nextPane":"magritte-next-pane___H2oxQ_1-3-25","nav-bar":"magritte-nav-bar___RRGe0_1-3-25","navBar":"magritte-nav-bar___RRGe0_1-3-25","nav-bar-overlay":"magritte-nav-bar-overlay___Mq5ZD_1-3-25","navBarOverlay":"magritte-nav-bar-overlay___Mq5ZD_1-3-25","nav-bar-overlay-wrapper":"magritte-nav-bar-overlay-wrapper___y1VpY_1-3-25","navBarOverlayWrapper":"magritte-nav-bar-overlay-wrapper___y1VpY_1-3-25","nav-bar-content-container":"magritte-nav-bar-content-container___H-WMO_1-3-25","navBarContentContainer":"magritte-nav-bar-content-container___H-WMO_1-3-25","nav-bar-panes-container":"magritte-nav-bar-panes-container___5ZDLa_1-3-25","navBarPanesContainer":"magritte-nav-bar-panes-container___5ZDLa_1-3-25","nav-bar-progressive-blur":"magritte-nav-bar-progressive-blur___qyeUV_1-3-25","navBarProgressiveBlur":"magritte-nav-bar-progressive-blur___qyeUV_1-3-25","nav-bar-stage":"magritte-nav-bar-stage___amDz7_1-3-25","navBarStage":"magritte-nav-bar-stage___amDz7_1-3-25","last-pane":"magritte-last-pane___Hf2No_1-3-25","lastPane":"magritte-last-pane___Hf2No_1-3-25","metrics-mode":"magritte-metrics-mode___h38aX_1-3-25","metricsMode":"magritte-metrics-mode___h38aX_1-3-25","layout-morph":"magritte-layout-morph___I3SPy_1-3-25","layoutMorph":"magritte-layout-morph___I3SPy_1-3-25","animation-stage-progress":"magritte-animation-stage-progress___5FthT_1-3-25","animationStageProgress":"magritte-animation-stage-progress___5FthT_1-3-25","layout-morph-start":"magritte-layout-morph-start___9-krP_1-3-25","layoutMorphStart":"magritte-layout-morph-start___9-krP_1-3-25","layout-morph-end":"magritte-layout-morph-end___LIg4d_1-3-25","layoutMorphEnd":"magritte-layout-morph-end___LIg4d_1-3-25","divider-container":"magritte-divider-container___-NdWi_1-3-25","dividerContainer":"magritte-divider-container___-NdWi_1-3-25"};
|
|
3
|
-
|
|
4
|
-
export { styles as s };
|
|
5
|
-
//# sourceMappingURL=nav-bar-DEFIZlLr.js.map
|
package/nav-bar-DEFIZlLr.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nav-bar-DEFIZlLr.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|