@hh.ru/magritte-ui-scrollable-container 4.4.2 → 4.4.4

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.
@@ -6,7 +6,7 @@ import { Action } from '@hh.ru/magritte-ui-action';
6
6
  import { Breakpoint, useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';
7
7
  import { DotPages } from '@hh.ru/magritte-ui-dot-pages';
8
8
  import { ChevronLeftOutlinedSize24, ChevronRightOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';
9
- import { u as useScrollContainer, s as styles } from './useScrollContainer-DNqfN56n.js';
9
+ import { u as useScrollContainer, s as styles } from './useScrollContainer-H5QZsUZy.js';
10
10
  import { VSpacing } from '@hh.ru/magritte-ui-spacing';
11
11
  import '@hh.ru/magritte-internal-custom-scroll';
12
12
  import './types.js';
package/ScrollableItem.js CHANGED
@@ -7,7 +7,7 @@ import '@hh.ru/magritte-ui-action';
7
7
  import '@hh.ru/magritte-ui-breakpoint';
8
8
  import '@hh.ru/magritte-ui-dot-pages';
9
9
  import '@hh.ru/magritte-ui-icon/icon';
10
- import './useScrollContainer-DNqfN56n.js';
10
+ import './useScrollContainer-H5QZsUZy.js';
11
11
  import '@hh.ru/magritte-internal-custom-scroll';
12
12
  import './types.js';
13
13
  import './utils.js';
package/index.css CHANGED
@@ -1,12 +1,542 @@
1
1
  :root{
2
- --magritte-semantic-animation-ease-in-out-tiger-200-timing-function-v19-1-2:cubic-bezier(0.25, 0.1, 0.25, 1);
3
- --magritte-semantic-animation-ease-in-out-tiger-200-duration-v19-1-2:200ms;
2
+ --magritte-typography-title-1-semibold-font-family-v20-0-0:"hh sans";
3
+ --magritte-typography-title-1-semibold-font-weight-v20-0-0:500;
4
+ --magritte-typography-title-1-semibold-line-height-v20-0-0:60px;
5
+ --magritte-typography-title-1-semibold-font-size-v20-0-0:48px;
6
+ --magritte-typography-title-1-semibold-letter-spacing-v20-0-0:-0.02em;
7
+ --magritte-typography-title-1-semibold-text-indent-v20-0-0:0px;
8
+ --magritte-typography-title-1-semibold-text-transform-v20-0-0:none;
9
+ --magritte-typography-title-1-semibold-text-decoration-v20-0-0:none;
10
+ --magritte-typography-title-2-semibold-font-family-v20-0-0:"hh sans";
11
+ --magritte-typography-title-2-semibold-font-weight-v20-0-0:500;
12
+ --magritte-typography-title-2-semibold-line-height-v20-0-0:48px;
13
+ --magritte-typography-title-2-semibold-font-size-v20-0-0:36px;
14
+ --magritte-typography-title-2-semibold-letter-spacing-v20-0-0:-0.0175em;
15
+ --magritte-typography-title-2-semibold-text-indent-v20-0-0:0px;
16
+ --magritte-typography-title-2-semibold-text-transform-v20-0-0:none;
17
+ --magritte-typography-title-2-semibold-text-decoration-v20-0-0:none;
18
+ --magritte-typography-title-3-semibold-font-family-v20-0-0:"hh sans";
19
+ --magritte-typography-title-3-semibold-font-weight-v20-0-0:500;
20
+ --magritte-typography-title-3-semibold-line-height-v20-0-0:40px;
21
+ --magritte-typography-title-3-semibold-font-size-v20-0-0:28px;
22
+ --magritte-typography-title-3-semibold-letter-spacing-v20-0-0:-0.0125em;
23
+ --magritte-typography-title-3-semibold-text-indent-v20-0-0:0px;
24
+ --magritte-typography-title-3-semibold-text-transform-v20-0-0:none;
25
+ --magritte-typography-title-3-semibold-text-decoration-v20-0-0:none;
26
+ --magritte-typography-title-4-semibold-font-family-v20-0-0:"hh sans";
27
+ --magritte-typography-title-4-semibold-font-weight-v20-0-0:500;
28
+ --magritte-typography-title-4-semibold-line-height-v20-0-0:32px;
29
+ --magritte-typography-title-4-semibold-font-size-v20-0-0:22px;
30
+ --magritte-typography-title-4-semibold-letter-spacing-v20-0-0:-0.0075em;
31
+ --magritte-typography-title-4-semibold-text-indent-v20-0-0:0px;
32
+ --magritte-typography-title-4-semibold-text-transform-v20-0-0:none;
33
+ --magritte-typography-title-4-semibold-text-decoration-v20-0-0:none;
34
+ --magritte-typography-title-5-semibold-font-family-v20-0-0:"hh sans";
35
+ --magritte-typography-title-5-semibold-font-weight-v20-0-0:500;
36
+ --magritte-typography-title-5-semibold-line-height-v20-0-0:26px;
37
+ --magritte-typography-title-5-semibold-font-size-v20-0-0:18px;
38
+ --magritte-typography-title-5-semibold-letter-spacing-v20-0-0:0em;
39
+ --magritte-typography-title-5-semibold-text-indent-v20-0-0:0px;
40
+ --magritte-typography-title-5-semibold-text-transform-v20-0-0:none;
41
+ --magritte-typography-title-5-semibold-text-decoration-v20-0-0:none;
42
+ --magritte-typography-subtitle-1-semibold-font-family-v20-0-0:"hh sans";
43
+ --magritte-typography-subtitle-1-semibold-font-weight-v20-0-0:500;
44
+ --magritte-typography-subtitle-1-semibold-line-height-v20-0-0:22px;
45
+ --magritte-typography-subtitle-1-semibold-font-size-v20-0-0:16px;
46
+ --magritte-typography-subtitle-1-semibold-letter-spacing-v20-0-0:0em;
47
+ --magritte-typography-subtitle-1-semibold-text-indent-v20-0-0:0px;
48
+ --magritte-typography-subtitle-1-semibold-text-transform-v20-0-0:none;
49
+ --magritte-typography-subtitle-1-semibold-text-decoration-v20-0-0:none;
50
+ --magritte-typography-subtitle-2-semibold-font-family-v20-0-0:"hh sans";
51
+ --magritte-typography-subtitle-2-semibold-font-weight-v20-0-0:500;
52
+ --magritte-typography-subtitle-2-semibold-line-height-v20-0-0:20px;
53
+ --magritte-typography-subtitle-2-semibold-font-size-v20-0-0:14px;
54
+ --magritte-typography-subtitle-2-semibold-letter-spacing-v20-0-0:0.005em;
55
+ --magritte-typography-subtitle-2-semibold-text-indent-v20-0-0:0px;
56
+ --magritte-typography-subtitle-2-semibold-text-transform-v20-0-0:none;
57
+ --magritte-typography-subtitle-2-semibold-text-decoration-v20-0-0:none;
58
+ --magritte-typography-subtitle-3-semibold-font-family-v20-0-0:"hh sans";
59
+ --magritte-typography-subtitle-3-semibold-font-weight-v20-0-0:500;
60
+ --magritte-typography-subtitle-3-semibold-line-height-v20-0-0:18px;
61
+ --magritte-typography-subtitle-3-semibold-font-size-v20-0-0:12px;
62
+ --magritte-typography-subtitle-3-semibold-letter-spacing-v20-0-0:0.01em;
63
+ --magritte-typography-subtitle-3-semibold-text-indent-v20-0-0:0px;
64
+ --magritte-typography-subtitle-3-semibold-text-transform-v20-0-0:none;
65
+ --magritte-typography-subtitle-3-semibold-text-decoration-v20-0-0:none;
66
+ --magritte-typography-subtitle-4-semibold-font-family-v20-0-0:"hh sans";
67
+ --magritte-typography-subtitle-4-semibold-font-weight-v20-0-0:500;
68
+ --magritte-typography-subtitle-4-semibold-line-height-v20-0-0:16px;
69
+ --magritte-typography-subtitle-4-semibold-font-size-v20-0-0:10px;
70
+ --magritte-typography-subtitle-4-semibold-letter-spacing-v20-0-0:0.015em;
71
+ --magritte-typography-subtitle-4-semibold-text-indent-v20-0-0:0px;
72
+ --magritte-typography-subtitle-4-semibold-text-transform-v20-0-0:none;
73
+ --magritte-typography-subtitle-4-semibold-text-decoration-v20-0-0:none;
74
+ --magritte-typography-label-1-regular-font-family-v20-0-0:"hh sans";
75
+ --magritte-typography-label-1-regular-font-weight-v20-0-0:400;
76
+ --magritte-typography-label-1-regular-line-height-v20-0-0:26px;
77
+ --magritte-typography-label-1-regular-font-size-v20-0-0:18px;
78
+ --magritte-typography-label-1-regular-letter-spacing-v20-0-0:-0.005em;
79
+ --magritte-typography-label-1-regular-text-indent-v20-0-0:0px;
80
+ --magritte-typography-label-1-regular-text-transform-v20-0-0:none;
81
+ --magritte-typography-label-1-regular-text-decoration-v20-0-0:none;
82
+ --magritte-typography-label-2-regular-font-family-v20-0-0:"hh sans";
83
+ --magritte-typography-label-2-regular-font-weight-v20-0-0:400;
84
+ --magritte-typography-label-2-regular-line-height-v20-0-0:22px;
85
+ --magritte-typography-label-2-regular-font-size-v20-0-0:16px;
86
+ --magritte-typography-label-2-regular-letter-spacing-v20-0-0:0em;
87
+ --magritte-typography-label-2-regular-text-indent-v20-0-0:0px;
88
+ --magritte-typography-label-2-regular-text-transform-v20-0-0:none;
89
+ --magritte-typography-label-2-regular-text-decoration-v20-0-0:none;
90
+ --magritte-typography-label-3-regular-font-family-v20-0-0:"hh sans";
91
+ --magritte-typography-label-3-regular-font-weight-v20-0-0:400;
92
+ --magritte-typography-label-3-regular-line-height-v20-0-0:20px;
93
+ --magritte-typography-label-3-regular-font-size-v20-0-0:14px;
94
+ --magritte-typography-label-3-regular-letter-spacing-v20-0-0:0.005em;
95
+ --magritte-typography-label-3-regular-text-indent-v20-0-0:0px;
96
+ --magritte-typography-label-3-regular-text-transform-v20-0-0:none;
97
+ --magritte-typography-label-3-regular-text-decoration-v20-0-0:none;
98
+ --magritte-typography-label-4-regular-font-family-v20-0-0:"hh sans";
99
+ --magritte-typography-label-4-regular-font-weight-v20-0-0:400;
100
+ --magritte-typography-label-4-regular-line-height-v20-0-0:18px;
101
+ --magritte-typography-label-4-regular-font-size-v20-0-0:12px;
102
+ --magritte-typography-label-4-regular-letter-spacing-v20-0-0:0.01em;
103
+ --magritte-typography-label-4-regular-text-indent-v20-0-0:0px;
104
+ --magritte-typography-label-4-regular-text-transform-v20-0-0:none;
105
+ --magritte-typography-label-4-regular-text-decoration-v20-0-0:none;
106
+ --magritte-typography-label-5-regular-font-family-v20-0-0:"hh sans";
107
+ --magritte-typography-label-5-regular-font-weight-v20-0-0:400;
108
+ --magritte-typography-label-5-regular-line-height-v20-0-0:14px;
109
+ --magritte-typography-label-5-regular-font-size-v20-0-0:10px;
110
+ --magritte-typography-label-5-regular-letter-spacing-v20-0-0:0.02em;
111
+ --magritte-typography-label-5-regular-text-indent-v20-0-0:0px;
112
+ --magritte-typography-label-5-regular-text-transform-v20-0-0:none;
113
+ --magritte-typography-label-5-regular-text-decoration-v20-0-0:none;
114
+ --magritte-typography-paragraph-1-regular-font-family-v20-0-0:"hh sans";
115
+ --magritte-typography-paragraph-1-regular-font-weight-v20-0-0:400;
116
+ --magritte-typography-paragraph-1-regular-line-height-v20-0-0:28px;
117
+ --magritte-typography-paragraph-1-regular-font-size-v20-0-0:18px;
118
+ --magritte-typography-paragraph-1-regular-letter-spacing-v20-0-0:0em;
119
+ --magritte-typography-paragraph-1-regular-text-indent-v20-0-0:0px;
120
+ --magritte-typography-paragraph-1-regular-text-transform-v20-0-0:none;
121
+ --magritte-typography-paragraph-1-regular-text-decoration-v20-0-0:none;
122
+ --magritte-typography-paragraph-2-regular-font-family-v20-0-0:"hh sans";
123
+ --magritte-typography-paragraph-2-regular-font-weight-v20-0-0:400;
124
+ --magritte-typography-paragraph-2-regular-line-height-v20-0-0:26px;
125
+ --magritte-typography-paragraph-2-regular-font-size-v20-0-0:16px;
126
+ --magritte-typography-paragraph-2-regular-letter-spacing-v20-0-0:0.005em;
127
+ --magritte-typography-paragraph-2-regular-text-indent-v20-0-0:0px;
128
+ --magritte-typography-paragraph-2-regular-text-transform-v20-0-0:none;
129
+ --magritte-typography-paragraph-2-regular-text-decoration-v20-0-0:none;
130
+ --magritte-typography-paragraph-3-regular-font-family-v20-0-0:"hh sans";
131
+ --magritte-typography-paragraph-3-regular-font-weight-v20-0-0:400;
132
+ --magritte-typography-paragraph-3-regular-line-height-v20-0-0:24px;
133
+ --magritte-typography-paragraph-3-regular-font-size-v20-0-0:14px;
134
+ --magritte-typography-paragraph-3-regular-letter-spacing-v20-0-0:0.01em;
135
+ --magritte-typography-paragraph-3-regular-text-indent-v20-0-0:0px;
136
+ --magritte-typography-paragraph-3-regular-text-transform-v20-0-0:none;
137
+ --magritte-typography-paragraph-3-regular-text-decoration-v20-0-0:none;
138
+ --magritte-typography-paragraph-4-regular-font-family-v20-0-0:"hh sans";
139
+ --magritte-typography-paragraph-4-regular-font-weight-v20-0-0:400;
140
+ --magritte-typography-paragraph-4-regular-line-height-v20-0-0:22px;
141
+ --magritte-typography-paragraph-4-regular-font-size-v20-0-0:12px;
142
+ --magritte-typography-paragraph-4-regular-letter-spacing-v20-0-0:0.015em;
143
+ --magritte-typography-paragraph-4-regular-text-indent-v20-0-0:0px;
144
+ --magritte-typography-paragraph-4-regular-text-transform-v20-0-0:none;
145
+ --magritte-typography-paragraph-4-regular-text-decoration-v20-0-0:none;
146
+ --magritte-typography-_custom-1-semibold-font-family-v20-0-0:"hh sans";
147
+ --magritte-typography-_custom-1-semibold-font-weight-v20-0-0:500;
148
+ --magritte-typography-_custom-1-semibold-line-height-v20-0-0:28px;
149
+ --magritte-typography-_custom-1-semibold-font-size-v20-0-0:18px;
150
+ --magritte-typography-_custom-1-semibold-letter-spacing-v20-0-0:0em;
151
+ --magritte-typography-_custom-1-semibold-text-indent-v20-0-0:0px;
152
+ --magritte-typography-_custom-1-semibold-text-transform-v20-0-0:none;
153
+ --magritte-typography-_custom-1-semibold-text-decoration-v20-0-0:none;
154
+ --magritte-typography-_custom-2-semibold-font-family-v20-0-0:"hh sans";
155
+ --magritte-typography-_custom-2-semibold-font-weight-v20-0-0:500;
156
+ --magritte-typography-_custom-2-semibold-line-height-v20-0-0:26px;
157
+ --magritte-typography-_custom-2-semibold-font-size-v20-0-0:16px;
158
+ --magritte-typography-_custom-2-semibold-letter-spacing-v20-0-0:0.005em;
159
+ --magritte-typography-_custom-2-semibold-text-indent-v20-0-0:0px;
160
+ --magritte-typography-_custom-2-semibold-text-transform-v20-0-0:none;
161
+ --magritte-typography-_custom-2-semibold-text-decoration-v20-0-0:none;
162
+ --magritte-typography-_custom-3-semibold-font-family-v20-0-0:"hh sans";
163
+ --magritte-typography-_custom-3-semibold-font-weight-v20-0-0:500;
164
+ --magritte-typography-_custom-3-semibold-line-height-v20-0-0:24px;
165
+ --magritte-typography-_custom-3-semibold-font-size-v20-0-0:14px;
166
+ --magritte-typography-_custom-3-semibold-letter-spacing-v20-0-0:0.01em;
167
+ --magritte-typography-_custom-3-semibold-text-indent-v20-0-0:0px;
168
+ --magritte-typography-_custom-3-semibold-text-transform-v20-0-0:none;
169
+ --magritte-typography-_custom-3-semibold-text-decoration-v20-0-0:none;
170
+ --magritte-typography-_custom-4-semibold-font-family-v20-0-0:"hh sans";
171
+ --magritte-typography-_custom-4-semibold-font-weight-v20-0-0:400;
172
+ --magritte-typography-_custom-4-semibold-line-height-v20-0-0:22px;
173
+ --magritte-typography-_custom-4-semibold-font-size-v20-0-0:12px;
174
+ --magritte-typography-_custom-4-semibold-letter-spacing-v20-0-0:0.015em;
175
+ --magritte-typography-_custom-4-semibold-text-indent-v20-0-0:0px;
176
+ --magritte-typography-_custom-4-semibold-text-transform-v20-0-0:none;
177
+ --magritte-typography-_custom-4-semibold-text-decoration-v20-0-0:none;
178
+ --magritte-typography-_custom-5-semibold-font-family-v20-0-0:"hh sans";
179
+ --magritte-typography-_custom-5-semibold-font-weight-v20-0-0:400;
180
+ --magritte-typography-_custom-5-semibold-line-height-v20-0-0:12px;
181
+ --magritte-typography-_custom-5-semibold-font-size-v20-0-0:10px;
182
+ --magritte-typography-_custom-5-semibold-letter-spacing-v20-0-0:0.015em;
183
+ --magritte-typography-_custom-5-semibold-text-indent-v20-0-0:0px;
184
+ --magritte-typography-_custom-5-semibold-text-transform-v20-0-0:none;
185
+ --magritte-typography-_custom-5-semibold-text-decoration-v20-0-0:none;
186
+ --magritte-typography-_custom-1-medium-font-family-v20-0-0:"hh sans";
187
+ --magritte-typography-_custom-1-medium-font-weight-v20-0-0:500;
188
+ --magritte-typography-_custom-1-medium-line-height-v20-0-0:28px;
189
+ --magritte-typography-_custom-1-medium-font-size-v20-0-0:18px;
190
+ --magritte-typography-_custom-1-medium-letter-spacing-v20-0-0:0em;
191
+ --magritte-typography-_custom-1-medium-text-indent-v20-0-0:0px;
192
+ --magritte-typography-_custom-1-medium-text-transform-v20-0-0:none;
193
+ --magritte-typography-_custom-1-medium-text-decoration-v20-0-0:none;
194
+ --magritte-typography-_custom-2-medium-font-family-v20-0-0:"hh sans";
195
+ --magritte-typography-_custom-2-medium-font-weight-v20-0-0:500;
196
+ --magritte-typography-_custom-2-medium-line-height-v20-0-0:26px;
197
+ --magritte-typography-_custom-2-medium-font-size-v20-0-0:16px;
198
+ --magritte-typography-_custom-2-medium-letter-spacing-v20-0-0:0.005em;
199
+ --magritte-typography-_custom-2-medium-text-indent-v20-0-0:0px;
200
+ --magritte-typography-_custom-2-medium-text-transform-v20-0-0:none;
201
+ --magritte-typography-_custom-2-medium-text-decoration-v20-0-0:none;
202
+ --magritte-typography-_custom-3-medium-font-family-v20-0-0:"hh sans";
203
+ --magritte-typography-_custom-3-medium-font-weight-v20-0-0:500;
204
+ --magritte-typography-_custom-3-medium-line-height-v20-0-0:24px;
205
+ --magritte-typography-_custom-3-medium-font-size-v20-0-0:14px;
206
+ --magritte-typography-_custom-3-medium-letter-spacing-v20-0-0:0.01em;
207
+ --magritte-typography-_custom-3-medium-text-indent-v20-0-0:0px;
208
+ --magritte-typography-_custom-3-medium-text-transform-v20-0-0:none;
209
+ --magritte-typography-_custom-3-medium-text-decoration-v20-0-0:none;
210
+ --magritte-typography-_custom-4-medium-font-family-v20-0-0:"hh sans";
211
+ --magritte-typography-_custom-4-medium-font-weight-v20-0-0:500;
212
+ --magritte-typography-_custom-4-medium-line-height-v20-0-0:22px;
213
+ --magritte-typography-_custom-4-medium-font-size-v20-0-0:12px;
214
+ --magritte-typography-_custom-4-medium-letter-spacing-v20-0-0:0.015em;
215
+ --magritte-typography-_custom-4-medium-text-indent-v20-0-0:0px;
216
+ --magritte-typography-_custom-4-medium-text-transform-v20-0-0:none;
217
+ --magritte-typography-_custom-4-medium-text-decoration-v20-0-0:none;
218
+ --magritte-typography-_custom-5-medium-font-family-v20-0-0:"hh sans";
219
+ --magritte-typography-_custom-5-medium-font-weight-v20-0-0:500;
220
+ --magritte-typography-_custom-5-medium-line-height-v20-0-0:12px;
221
+ --magritte-typography-_custom-5-medium-font-size-v20-0-0:10px;
222
+ --magritte-typography-_custom-5-medium-letter-spacing-v20-0-0:0.015em;
223
+ --magritte-typography-_custom-5-medium-text-indent-v20-0-0:0px;
224
+ --magritte-typography-_custom-5-medium-text-transform-v20-0-0:none;
225
+ --magritte-typography-_custom-5-medium-text-decoration-v20-0-0:none;
226
+ --magritte-typography-_custom-1-italic-font-family-v20-0-0:"hh sans";
227
+ --magritte-typography-_custom-1-italic-font-weight-v20-0-0:400;
228
+ --magritte-typography-_custom-1-italic-line-height-v20-0-0:28px;
229
+ --magritte-typography-_custom-1-italic-font-size-v20-0-0:18px;
230
+ --magritte-typography-_custom-1-italic-letter-spacing-v20-0-0:0em;
231
+ --magritte-typography-_custom-1-italic-text-indent-v20-0-0:0px;
232
+ --magritte-typography-_custom-1-italic-text-transform-v20-0-0:none;
233
+ --magritte-typography-_custom-1-italic-text-decoration-v20-0-0:none;
234
+ --magritte-typography-_custom-2-italic-font-family-v20-0-0:"hh sans";
235
+ --magritte-typography-_custom-2-italic-font-weight-v20-0-0:400;
236
+ --magritte-typography-_custom-2-italic-line-height-v20-0-0:26px;
237
+ --magritte-typography-_custom-2-italic-font-size-v20-0-0:16px;
238
+ --magritte-typography-_custom-2-italic-letter-spacing-v20-0-0:0.005em;
239
+ --magritte-typography-_custom-2-italic-text-indent-v20-0-0:0px;
240
+ --magritte-typography-_custom-2-italic-text-transform-v20-0-0:none;
241
+ --magritte-typography-_custom-2-italic-text-decoration-v20-0-0:none;
242
+ --magritte-typography-_custom-3-italic-font-family-v20-0-0:"hh sans";
243
+ --magritte-typography-_custom-3-italic-font-weight-v20-0-0:400;
244
+ --magritte-typography-_custom-3-italic-line-height-v20-0-0:24px;
245
+ --magritte-typography-_custom-3-italic-font-size-v20-0-0:14px;
246
+ --magritte-typography-_custom-3-italic-letter-spacing-v20-0-0:0.01em;
247
+ --magritte-typography-_custom-3-italic-text-indent-v20-0-0:0px;
248
+ --magritte-typography-_custom-3-italic-text-transform-v20-0-0:none;
249
+ --magritte-typography-_custom-3-italic-text-decoration-v20-0-0:none;
250
+ --magritte-typography-_custom-4-italic-font-family-v20-0-0:"hh sans";
251
+ --magritte-typography-_custom-4-italic-font-weight-v20-0-0:400;
252
+ --magritte-typography-_custom-4-italic-line-height-v20-0-0:22px;
253
+ --magritte-typography-_custom-4-italic-font-size-v20-0-0:12px;
254
+ --magritte-typography-_custom-4-italic-letter-spacing-v20-0-0:0.015em;
255
+ --magritte-typography-_custom-4-italic-text-indent-v20-0-0:0px;
256
+ --magritte-typography-_custom-4-italic-text-transform-v20-0-0:none;
257
+ --magritte-typography-_custom-4-italic-text-decoration-v20-0-0:none;
258
+ --magritte-typography-_custom-5-italic-font-family-v20-0-0:"hh sans";
259
+ --magritte-typography-_custom-5-italic-font-weight-v20-0-0:400;
260
+ --magritte-typography-_custom-5-italic-line-height-v20-0-0:12px;
261
+ --magritte-typography-_custom-5-italic-font-size-v20-0-0:10px;
262
+ --magritte-typography-_custom-5-italic-letter-spacing-v20-0-0:0.015em;
263
+ --magritte-typography-_custom-5-italic-text-indent-v20-0-0:0px;
264
+ --magritte-typography-_custom-5-italic-text-transform-v20-0-0:none;
265
+ --magritte-typography-_custom-5-italic-text-decoration-v20-0-0:none;
266
+ --magritte-semantic-animation-ease-in-out-tiger-200-timing-function-v20-0-0:cubic-bezier(0.25, 0.1, 0.25, 1);
267
+ --magritte-semantic-animation-ease-in-out-tiger-200-duration-v20-0-0:200ms;
4
268
  }
5
- .magritte-scroll-wrapper___vTdZl_4-4-2{
269
+ .magritte-with-inter{
270
+ --magritte-typography-title-1-semibold-font-family-v20-0-0:"Inter";
271
+ --magritte-typography-title-1-semibold-font-weight-v20-0-0:600;
272
+ --magritte-typography-title-1-semibold-line-height-v20-0-0:60px;
273
+ --magritte-typography-title-1-semibold-font-size-v20-0-0:48px;
274
+ --magritte-typography-title-1-semibold-letter-spacing-v20-0-0:-0.02em;
275
+ --magritte-typography-title-1-semibold-text-indent-v20-0-0:0px;
276
+ --magritte-typography-title-1-semibold-text-transform-v20-0-0:none;
277
+ --magritte-typography-title-1-semibold-text-decoration-v20-0-0:none;
278
+ --magritte-typography-title-2-semibold-font-family-v20-0-0:"Inter";
279
+ --magritte-typography-title-2-semibold-font-weight-v20-0-0:600;
280
+ --magritte-typography-title-2-semibold-line-height-v20-0-0:48px;
281
+ --magritte-typography-title-2-semibold-font-size-v20-0-0:36px;
282
+ --magritte-typography-title-2-semibold-letter-spacing-v20-0-0:-0.0175em;
283
+ --magritte-typography-title-2-semibold-text-indent-v20-0-0:0px;
284
+ --magritte-typography-title-2-semibold-text-transform-v20-0-0:none;
285
+ --magritte-typography-title-2-semibold-text-decoration-v20-0-0:none;
286
+ --magritte-typography-title-3-semibold-font-family-v20-0-0:"Inter";
287
+ --magritte-typography-title-3-semibold-font-weight-v20-0-0:600;
288
+ --magritte-typography-title-3-semibold-line-height-v20-0-0:40px;
289
+ --magritte-typography-title-3-semibold-font-size-v20-0-0:28px;
290
+ --magritte-typography-title-3-semibold-letter-spacing-v20-0-0:-0.0125em;
291
+ --magritte-typography-title-3-semibold-text-indent-v20-0-0:0px;
292
+ --magritte-typography-title-3-semibold-text-transform-v20-0-0:none;
293
+ --magritte-typography-title-3-semibold-text-decoration-v20-0-0:none;
294
+ --magritte-typography-title-4-semibold-font-family-v20-0-0:"Inter";
295
+ --magritte-typography-title-4-semibold-font-weight-v20-0-0:600;
296
+ --magritte-typography-title-4-semibold-line-height-v20-0-0:32px;
297
+ --magritte-typography-title-4-semibold-font-size-v20-0-0:22px;
298
+ --magritte-typography-title-4-semibold-letter-spacing-v20-0-0:-0.0075em;
299
+ --magritte-typography-title-4-semibold-text-indent-v20-0-0:0px;
300
+ --magritte-typography-title-4-semibold-text-transform-v20-0-0:none;
301
+ --magritte-typography-title-4-semibold-text-decoration-v20-0-0:none;
302
+ --magritte-typography-title-5-semibold-font-family-v20-0-0:"Inter";
303
+ --magritte-typography-title-5-semibold-font-weight-v20-0-0:600;
304
+ --magritte-typography-title-5-semibold-line-height-v20-0-0:26px;
305
+ --magritte-typography-title-5-semibold-font-size-v20-0-0:18px;
306
+ --magritte-typography-title-5-semibold-letter-spacing-v20-0-0:0em;
307
+ --magritte-typography-title-5-semibold-text-indent-v20-0-0:0px;
308
+ --magritte-typography-title-5-semibold-text-transform-v20-0-0:none;
309
+ --magritte-typography-title-5-semibold-text-decoration-v20-0-0:none;
310
+ --magritte-typography-subtitle-1-semibold-font-family-v20-0-0:"Inter";
311
+ --magritte-typography-subtitle-1-semibold-font-weight-v20-0-0:600;
312
+ --magritte-typography-subtitle-1-semibold-line-height-v20-0-0:22px;
313
+ --magritte-typography-subtitle-1-semibold-font-size-v20-0-0:16px;
314
+ --magritte-typography-subtitle-1-semibold-letter-spacing-v20-0-0:0em;
315
+ --magritte-typography-subtitle-1-semibold-text-indent-v20-0-0:0px;
316
+ --magritte-typography-subtitle-1-semibold-text-transform-v20-0-0:none;
317
+ --magritte-typography-subtitle-1-semibold-text-decoration-v20-0-0:none;
318
+ --magritte-typography-subtitle-2-semibold-font-family-v20-0-0:"Inter";
319
+ --magritte-typography-subtitle-2-semibold-font-weight-v20-0-0:600;
320
+ --magritte-typography-subtitle-2-semibold-line-height-v20-0-0:20px;
321
+ --magritte-typography-subtitle-2-semibold-font-size-v20-0-0:14px;
322
+ --magritte-typography-subtitle-2-semibold-letter-spacing-v20-0-0:0.005em;
323
+ --magritte-typography-subtitle-2-semibold-text-indent-v20-0-0:0px;
324
+ --magritte-typography-subtitle-2-semibold-text-transform-v20-0-0:none;
325
+ --magritte-typography-subtitle-2-semibold-text-decoration-v20-0-0:none;
326
+ --magritte-typography-subtitle-3-semibold-font-family-v20-0-0:"Inter";
327
+ --magritte-typography-subtitle-3-semibold-font-weight-v20-0-0:600;
328
+ --magritte-typography-subtitle-3-semibold-line-height-v20-0-0:18px;
329
+ --magritte-typography-subtitle-3-semibold-font-size-v20-0-0:12px;
330
+ --magritte-typography-subtitle-3-semibold-letter-spacing-v20-0-0:0.01em;
331
+ --magritte-typography-subtitle-3-semibold-text-indent-v20-0-0:0px;
332
+ --magritte-typography-subtitle-3-semibold-text-transform-v20-0-0:none;
333
+ --magritte-typography-subtitle-3-semibold-text-decoration-v20-0-0:none;
334
+ --magritte-typography-subtitle-4-semibold-font-family-v20-0-0:"Inter";
335
+ --magritte-typography-subtitle-4-semibold-font-weight-v20-0-0:600;
336
+ --magritte-typography-subtitle-4-semibold-line-height-v20-0-0:16px;
337
+ --magritte-typography-subtitle-4-semibold-font-size-v20-0-0:10px;
338
+ --magritte-typography-subtitle-4-semibold-letter-spacing-v20-0-0:0.015em;
339
+ --magritte-typography-subtitle-4-semibold-text-indent-v20-0-0:0px;
340
+ --magritte-typography-subtitle-4-semibold-text-transform-v20-0-0:none;
341
+ --magritte-typography-subtitle-4-semibold-text-decoration-v20-0-0:none;
342
+ --magritte-typography-label-1-regular-font-family-v20-0-0:"Inter";
343
+ --magritte-typography-label-1-regular-font-weight-v20-0-0:400;
344
+ --magritte-typography-label-1-regular-line-height-v20-0-0:26px;
345
+ --magritte-typography-label-1-regular-font-size-v20-0-0:18px;
346
+ --magritte-typography-label-1-regular-letter-spacing-v20-0-0:-0.005em;
347
+ --magritte-typography-label-1-regular-text-indent-v20-0-0:0px;
348
+ --magritte-typography-label-1-regular-text-transform-v20-0-0:none;
349
+ --magritte-typography-label-1-regular-text-decoration-v20-0-0:none;
350
+ --magritte-typography-label-2-regular-font-family-v20-0-0:"Inter";
351
+ --magritte-typography-label-2-regular-font-weight-v20-0-0:400;
352
+ --magritte-typography-label-2-regular-line-height-v20-0-0:22px;
353
+ --magritte-typography-label-2-regular-font-size-v20-0-0:16px;
354
+ --magritte-typography-label-2-regular-letter-spacing-v20-0-0:0em;
355
+ --magritte-typography-label-2-regular-text-indent-v20-0-0:0px;
356
+ --magritte-typography-label-2-regular-text-transform-v20-0-0:none;
357
+ --magritte-typography-label-2-regular-text-decoration-v20-0-0:none;
358
+ --magritte-typography-label-3-regular-font-family-v20-0-0:"Inter";
359
+ --magritte-typography-label-3-regular-font-weight-v20-0-0:400;
360
+ --magritte-typography-label-3-regular-line-height-v20-0-0:20px;
361
+ --magritte-typography-label-3-regular-font-size-v20-0-0:14px;
362
+ --magritte-typography-label-3-regular-letter-spacing-v20-0-0:0.005em;
363
+ --magritte-typography-label-3-regular-text-indent-v20-0-0:0px;
364
+ --magritte-typography-label-3-regular-text-transform-v20-0-0:none;
365
+ --magritte-typography-label-3-regular-text-decoration-v20-0-0:none;
366
+ --magritte-typography-label-4-regular-font-family-v20-0-0:"Inter";
367
+ --magritte-typography-label-4-regular-font-weight-v20-0-0:400;
368
+ --magritte-typography-label-4-regular-line-height-v20-0-0:18px;
369
+ --magritte-typography-label-4-regular-font-size-v20-0-0:12px;
370
+ --magritte-typography-label-4-regular-letter-spacing-v20-0-0:0.01em;
371
+ --magritte-typography-label-4-regular-text-indent-v20-0-0:0px;
372
+ --magritte-typography-label-4-regular-text-transform-v20-0-0:none;
373
+ --magritte-typography-label-4-regular-text-decoration-v20-0-0:none;
374
+ --magritte-typography-label-5-regular-font-family-v20-0-0:"Inter";
375
+ --magritte-typography-label-5-regular-font-weight-v20-0-0:400;
376
+ --magritte-typography-label-5-regular-line-height-v20-0-0:14px;
377
+ --magritte-typography-label-5-regular-font-size-v20-0-0:10px;
378
+ --magritte-typography-label-5-regular-letter-spacing-v20-0-0:0.02em;
379
+ --magritte-typography-label-5-regular-text-indent-v20-0-0:0px;
380
+ --magritte-typography-label-5-regular-text-transform-v20-0-0:none;
381
+ --magritte-typography-label-5-regular-text-decoration-v20-0-0:none;
382
+ --magritte-typography-paragraph-1-regular-font-family-v20-0-0:"Inter";
383
+ --magritte-typography-paragraph-1-regular-font-weight-v20-0-0:400;
384
+ --magritte-typography-paragraph-1-regular-line-height-v20-0-0:28px;
385
+ --magritte-typography-paragraph-1-regular-font-size-v20-0-0:18px;
386
+ --magritte-typography-paragraph-1-regular-letter-spacing-v20-0-0:0em;
387
+ --magritte-typography-paragraph-1-regular-text-indent-v20-0-0:0px;
388
+ --magritte-typography-paragraph-1-regular-text-transform-v20-0-0:none;
389
+ --magritte-typography-paragraph-1-regular-text-decoration-v20-0-0:none;
390
+ --magritte-typography-paragraph-2-regular-font-family-v20-0-0:"Inter";
391
+ --magritte-typography-paragraph-2-regular-font-weight-v20-0-0:400;
392
+ --magritte-typography-paragraph-2-regular-line-height-v20-0-0:26px;
393
+ --magritte-typography-paragraph-2-regular-font-size-v20-0-0:16px;
394
+ --magritte-typography-paragraph-2-regular-letter-spacing-v20-0-0:0.005em;
395
+ --magritte-typography-paragraph-2-regular-text-indent-v20-0-0:0px;
396
+ --magritte-typography-paragraph-2-regular-text-transform-v20-0-0:none;
397
+ --magritte-typography-paragraph-2-regular-text-decoration-v20-0-0:none;
398
+ --magritte-typography-paragraph-3-regular-font-family-v20-0-0:"Inter";
399
+ --magritte-typography-paragraph-3-regular-font-weight-v20-0-0:400;
400
+ --magritte-typography-paragraph-3-regular-line-height-v20-0-0:24px;
401
+ --magritte-typography-paragraph-3-regular-font-size-v20-0-0:14px;
402
+ --magritte-typography-paragraph-3-regular-letter-spacing-v20-0-0:0.01em;
403
+ --magritte-typography-paragraph-3-regular-text-indent-v20-0-0:0px;
404
+ --magritte-typography-paragraph-3-regular-text-transform-v20-0-0:none;
405
+ --magritte-typography-paragraph-3-regular-text-decoration-v20-0-0:none;
406
+ --magritte-typography-paragraph-4-regular-font-family-v20-0-0:"Inter";
407
+ --magritte-typography-paragraph-4-regular-font-weight-v20-0-0:400;
408
+ --magritte-typography-paragraph-4-regular-line-height-v20-0-0:22px;
409
+ --magritte-typography-paragraph-4-regular-font-size-v20-0-0:12px;
410
+ --magritte-typography-paragraph-4-regular-letter-spacing-v20-0-0:0.015em;
411
+ --magritte-typography-paragraph-4-regular-text-indent-v20-0-0:0px;
412
+ --magritte-typography-paragraph-4-regular-text-transform-v20-0-0:none;
413
+ --magritte-typography-paragraph-4-regular-text-decoration-v20-0-0:none;
414
+ --magritte-typography-_custom-1-semibold-font-family-v20-0-0:"Inter";
415
+ --magritte-typography-_custom-1-semibold-font-weight-v20-0-0:600;
416
+ --magritte-typography-_custom-1-semibold-line-height-v20-0-0:28px;
417
+ --magritte-typography-_custom-1-semibold-font-size-v20-0-0:18px;
418
+ --magritte-typography-_custom-1-semibold-letter-spacing-v20-0-0:0em;
419
+ --magritte-typography-_custom-1-semibold-text-indent-v20-0-0:0px;
420
+ --magritte-typography-_custom-1-semibold-text-transform-v20-0-0:none;
421
+ --magritte-typography-_custom-1-semibold-text-decoration-v20-0-0:none;
422
+ --magritte-typography-_custom-2-semibold-font-family-v20-0-0:"Inter";
423
+ --magritte-typography-_custom-2-semibold-font-weight-v20-0-0:600;
424
+ --magritte-typography-_custom-2-semibold-line-height-v20-0-0:26px;
425
+ --magritte-typography-_custom-2-semibold-font-size-v20-0-0:16px;
426
+ --magritte-typography-_custom-2-semibold-letter-spacing-v20-0-0:0.005em;
427
+ --magritte-typography-_custom-2-semibold-text-indent-v20-0-0:0px;
428
+ --magritte-typography-_custom-2-semibold-text-transform-v20-0-0:none;
429
+ --magritte-typography-_custom-2-semibold-text-decoration-v20-0-0:none;
430
+ --magritte-typography-_custom-3-semibold-font-family-v20-0-0:"Inter";
431
+ --magritte-typography-_custom-3-semibold-font-weight-v20-0-0:600;
432
+ --magritte-typography-_custom-3-semibold-line-height-v20-0-0:24px;
433
+ --magritte-typography-_custom-3-semibold-font-size-v20-0-0:14px;
434
+ --magritte-typography-_custom-3-semibold-letter-spacing-v20-0-0:0.01em;
435
+ --magritte-typography-_custom-3-semibold-text-indent-v20-0-0:0px;
436
+ --magritte-typography-_custom-3-semibold-text-transform-v20-0-0:none;
437
+ --magritte-typography-_custom-3-semibold-text-decoration-v20-0-0:none;
438
+ --magritte-typography-_custom-4-semibold-font-family-v20-0-0:"Inter";
439
+ --magritte-typography-_custom-4-semibold-font-weight-v20-0-0:400;
440
+ --magritte-typography-_custom-4-semibold-line-height-v20-0-0:22px;
441
+ --magritte-typography-_custom-4-semibold-font-size-v20-0-0:12px;
442
+ --magritte-typography-_custom-4-semibold-letter-spacing-v20-0-0:0.015em;
443
+ --magritte-typography-_custom-4-semibold-text-indent-v20-0-0:0px;
444
+ --magritte-typography-_custom-4-semibold-text-transform-v20-0-0:none;
445
+ --magritte-typography-_custom-4-semibold-text-decoration-v20-0-0:none;
446
+ --magritte-typography-_custom-5-semibold-font-family-v20-0-0:"Inter";
447
+ --magritte-typography-_custom-5-semibold-font-weight-v20-0-0:400;
448
+ --magritte-typography-_custom-5-semibold-line-height-v20-0-0:12px;
449
+ --magritte-typography-_custom-5-semibold-font-size-v20-0-0:10px;
450
+ --magritte-typography-_custom-5-semibold-letter-spacing-v20-0-0:0.015em;
451
+ --magritte-typography-_custom-5-semibold-text-indent-v20-0-0:0px;
452
+ --magritte-typography-_custom-5-semibold-text-transform-v20-0-0:none;
453
+ --magritte-typography-_custom-5-semibold-text-decoration-v20-0-0:none;
454
+ --magritte-typography-_custom-1-medium-font-family-v20-0-0:"Inter";
455
+ --magritte-typography-_custom-1-medium-font-weight-v20-0-0:undefined;
456
+ --magritte-typography-_custom-1-medium-line-height-v20-0-0:28px;
457
+ --magritte-typography-_custom-1-medium-font-size-v20-0-0:18px;
458
+ --magritte-typography-_custom-1-medium-letter-spacing-v20-0-0:0em;
459
+ --magritte-typography-_custom-1-medium-text-indent-v20-0-0:0px;
460
+ --magritte-typography-_custom-1-medium-text-transform-v20-0-0:none;
461
+ --magritte-typography-_custom-1-medium-text-decoration-v20-0-0:none;
462
+ --magritte-typography-_custom-2-medium-font-family-v20-0-0:"Inter";
463
+ --magritte-typography-_custom-2-medium-font-weight-v20-0-0:undefined;
464
+ --magritte-typography-_custom-2-medium-line-height-v20-0-0:26px;
465
+ --magritte-typography-_custom-2-medium-font-size-v20-0-0:16px;
466
+ --magritte-typography-_custom-2-medium-letter-spacing-v20-0-0:0.005em;
467
+ --magritte-typography-_custom-2-medium-text-indent-v20-0-0:0px;
468
+ --magritte-typography-_custom-2-medium-text-transform-v20-0-0:none;
469
+ --magritte-typography-_custom-2-medium-text-decoration-v20-0-0:none;
470
+ --magritte-typography-_custom-3-medium-font-family-v20-0-0:"Inter";
471
+ --magritte-typography-_custom-3-medium-font-weight-v20-0-0:undefined;
472
+ --magritte-typography-_custom-3-medium-line-height-v20-0-0:24px;
473
+ --magritte-typography-_custom-3-medium-font-size-v20-0-0:14px;
474
+ --magritte-typography-_custom-3-medium-letter-spacing-v20-0-0:0.01em;
475
+ --magritte-typography-_custom-3-medium-text-indent-v20-0-0:0px;
476
+ --magritte-typography-_custom-3-medium-text-transform-v20-0-0:none;
477
+ --magritte-typography-_custom-3-medium-text-decoration-v20-0-0:none;
478
+ --magritte-typography-_custom-4-medium-font-family-v20-0-0:"Inter";
479
+ --magritte-typography-_custom-4-medium-font-weight-v20-0-0:undefined;
480
+ --magritte-typography-_custom-4-medium-line-height-v20-0-0:22px;
481
+ --magritte-typography-_custom-4-medium-font-size-v20-0-0:12px;
482
+ --magritte-typography-_custom-4-medium-letter-spacing-v20-0-0:0.015em;
483
+ --magritte-typography-_custom-4-medium-text-indent-v20-0-0:0px;
484
+ --magritte-typography-_custom-4-medium-text-transform-v20-0-0:none;
485
+ --magritte-typography-_custom-4-medium-text-decoration-v20-0-0:none;
486
+ --magritte-typography-_custom-5-medium-font-family-v20-0-0:"Inter";
487
+ --magritte-typography-_custom-5-medium-font-weight-v20-0-0:undefined;
488
+ --magritte-typography-_custom-5-medium-line-height-v20-0-0:12px;
489
+ --magritte-typography-_custom-5-medium-font-size-v20-0-0:10px;
490
+ --magritte-typography-_custom-5-medium-letter-spacing-v20-0-0:0.015em;
491
+ --magritte-typography-_custom-5-medium-text-indent-v20-0-0:0px;
492
+ --magritte-typography-_custom-5-medium-text-transform-v20-0-0:none;
493
+ --magritte-typography-_custom-5-medium-text-decoration-v20-0-0:none;
494
+ --magritte-typography-_custom-1-italic-font-family-v20-0-0:"Inter";
495
+ --magritte-typography-_custom-1-italic-font-weight-v20-0-0:200;
496
+ --magritte-typography-_custom-1-italic-line-height-v20-0-0:28px;
497
+ --magritte-typography-_custom-1-italic-font-size-v20-0-0:18px;
498
+ --magritte-typography-_custom-1-italic-letter-spacing-v20-0-0:0em;
499
+ --magritte-typography-_custom-1-italic-text-indent-v20-0-0:0px;
500
+ --magritte-typography-_custom-1-italic-text-transform-v20-0-0:none;
501
+ --magritte-typography-_custom-1-italic-text-decoration-v20-0-0:none;
502
+ --magritte-typography-_custom-2-italic-font-family-v20-0-0:"Inter";
503
+ --magritte-typography-_custom-2-italic-font-weight-v20-0-0:200;
504
+ --magritte-typography-_custom-2-italic-line-height-v20-0-0:26px;
505
+ --magritte-typography-_custom-2-italic-font-size-v20-0-0:16px;
506
+ --magritte-typography-_custom-2-italic-letter-spacing-v20-0-0:0.005em;
507
+ --magritte-typography-_custom-2-italic-text-indent-v20-0-0:0px;
508
+ --magritte-typography-_custom-2-italic-text-transform-v20-0-0:none;
509
+ --magritte-typography-_custom-2-italic-text-decoration-v20-0-0:none;
510
+ --magritte-typography-_custom-3-italic-font-family-v20-0-0:"Inter";
511
+ --magritte-typography-_custom-3-italic-font-weight-v20-0-0:200;
512
+ --magritte-typography-_custom-3-italic-line-height-v20-0-0:24px;
513
+ --magritte-typography-_custom-3-italic-font-size-v20-0-0:14px;
514
+ --magritte-typography-_custom-3-italic-letter-spacing-v20-0-0:0.01em;
515
+ --magritte-typography-_custom-3-italic-text-indent-v20-0-0:0px;
516
+ --magritte-typography-_custom-3-italic-text-transform-v20-0-0:none;
517
+ --magritte-typography-_custom-3-italic-text-decoration-v20-0-0:none;
518
+ --magritte-typography-_custom-4-italic-font-family-v20-0-0:"Inter";
519
+ --magritte-typography-_custom-4-italic-font-weight-v20-0-0:200;
520
+ --magritte-typography-_custom-4-italic-line-height-v20-0-0:22px;
521
+ --magritte-typography-_custom-4-italic-font-size-v20-0-0:12px;
522
+ --magritte-typography-_custom-4-italic-letter-spacing-v20-0-0:0.015em;
523
+ --magritte-typography-_custom-4-italic-text-indent-v20-0-0:0px;
524
+ --magritte-typography-_custom-4-italic-text-transform-v20-0-0:none;
525
+ --magritte-typography-_custom-4-italic-text-decoration-v20-0-0:none;
526
+ --magritte-typography-_custom-5-italic-font-family-v20-0-0:"Inter";
527
+ --magritte-typography-_custom-5-italic-font-weight-v20-0-0:200;
528
+ --magritte-typography-_custom-5-italic-line-height-v20-0-0:12px;
529
+ --magritte-typography-_custom-5-italic-font-size-v20-0-0:10px;
530
+ --magritte-typography-_custom-5-italic-letter-spacing-v20-0-0:0.015em;
531
+ --magritte-typography-_custom-5-italic-text-indent-v20-0-0:0px;
532
+ --magritte-typography-_custom-5-italic-text-transform-v20-0-0:none;
533
+ --magritte-typography-_custom-5-italic-text-decoration-v20-0-0:none;
534
+ }
535
+ .magritte-scroll-wrapper___vTdZl_4-4-4{
6
536
  position:relative;
7
537
  touch-action:pan-y pinch-zoom;
8
538
  }
9
- .magritte-scrollable-container___AKIUp_4-4-2{
539
+ .magritte-scrollable-container___AKIUp_4-4-4{
10
540
  display:block;
11
541
  overflow-x:hidden;
12
542
  overflow-x:clip;
@@ -16,57 +546,57 @@
16
546
  padding:0 4px;
17
547
  margin:0 -4px;
18
548
  }
19
- .magritte-fade-both-sides___pBan7_4-4-2:not(.magritte-no-buttons___eCwO-_4-4-2) .magritte-scrollable-container___AKIUp_4-4-2{
549
+ .magritte-fade-both-sides___pBan7_4-4-4:not(.magritte-no-buttons___eCwO-_4-4-4) .magritte-scrollable-container___AKIUp_4-4-4{
20
550
  padding:4px 0;
21
551
  margin:-4px 0;
22
552
  --both-sides-mask:linear-gradient(90deg, transparent 0, transparent 36px, #000 100.504px, #000 calc(100% - 100.50399999999999px), transparent calc(100% - 36px));
23
553
  -webkit-mask:var(--both-sides-mask);
24
554
  mask:var(--both-sides-mask);
25
555
  }
26
- .magritte-fade-left-side___Hlpre_4-4-2:not(.magritte-no-buttons___eCwO-_4-4-2) .magritte-scrollable-container___AKIUp_4-4-2{
556
+ .magritte-fade-left-side___Hlpre_4-4-4:not(.magritte-no-buttons___eCwO-_4-4-4) .magritte-scrollable-container___AKIUp_4-4-4{
27
557
  margin-left:0;
28
558
  padding-left:0;
29
559
  --left-fade-mask:linear-gradient(90deg, transparent 0, transparent 36px, #000 100.504px);
30
560
  -webkit-mask:var(--left-fade-mask);
31
561
  mask:var(--left-fade-mask);
32
562
  }
33
- .magritte-fade-right-side___Lskyt_4-4-2:not(.magritte-no-buttons___eCwO-_4-4-2) .magritte-scrollable-container___AKIUp_4-4-2{
563
+ .magritte-fade-right-side___Lskyt_4-4-4:not(.magritte-no-buttons___eCwO-_4-4-4) .magritte-scrollable-container___AKIUp_4-4-4{
34
564
  padding-right:0;
35
565
  margin-right:0;
36
566
  --right-fade-mask:linear-gradient(90deg, #000 0, #000 calc(100% - 100.50399999999999px), transparent calc(100% - 36px));
37
567
  -webkit-mask:var(--right-fade-mask);
38
568
  mask:var(--right-fade-mask);
39
569
  }
40
- .magritte-scroll-button___4GQu3_4-4-2{
570
+ .magritte-scroll-button___4GQu3_4-4-4{
41
571
  display:none;
42
572
  position:absolute;
43
573
  top:50%;
44
574
  transform:translateY(-50%);
45
575
  }
46
- .magritte-scroll-button-left___UueEY_4-4-2{
576
+ .magritte-scroll-button-left___UueEY_4-4-4{
47
577
  left:0;
48
578
  }
49
- .magritte-fade-left-side___Hlpre_4-4-2:not(.magritte-no-buttons___eCwO-_4-4-2) .magritte-scroll-button-left___UueEY_4-4-2,
50
- .magritte-fade-both-sides___pBan7_4-4-2:not(.magritte-no-buttons___eCwO-_4-4-2) .magritte-scroll-button-left___UueEY_4-4-2{
579
+ .magritte-fade-left-side___Hlpre_4-4-4:not(.magritte-no-buttons___eCwO-_4-4-4) .magritte-scroll-button-left___UueEY_4-4-4,
580
+ .magritte-fade-both-sides___pBan7_4-4-4:not(.magritte-no-buttons___eCwO-_4-4-4) .magritte-scroll-button-left___UueEY_4-4-4{
51
581
  display:block;
52
582
  }
53
- .magritte-scroll-button-right___wZOn-_4-4-2{
583
+ .magritte-scroll-button-right___wZOn-_4-4-4{
54
584
  right:0;
55
585
  }
56
- .magritte-fade-right-side___Lskyt_4-4-2:not(.magritte-no-buttons___eCwO-_4-4-2) .magritte-scroll-button-right___wZOn-_4-4-2,
57
- .magritte-fade-both-sides___pBan7_4-4-2:not(.magritte-no-buttons___eCwO-_4-4-2) .magritte-scroll-button-right___wZOn-_4-4-2{
586
+ .magritte-fade-right-side___Lskyt_4-4-4:not(.magritte-no-buttons___eCwO-_4-4-4) .magritte-scroll-button-right___wZOn-_4-4-4,
587
+ .magritte-fade-both-sides___pBan7_4-4-4:not(.magritte-no-buttons___eCwO-_4-4-4) .magritte-scroll-button-right___wZOn-_4-4-4{
58
588
  display:block;
59
589
  }
60
- .magritte-position-container___1A4Bv_4-4-2{
590
+ .magritte-position-container___1A4Bv_4-4-4{
61
591
  box-sizing:border-box;
62
592
  width:100%;
63
593
  }
64
- .magritte-position-container-animated___XuPNW_4-4-2{
594
+ .magritte-position-container-animated___XuPNW_4-4-4{
65
595
  transition-property:transform;
66
- transition-duration:var(--magritte-semantic-animation-ease-in-out-tiger-200-duration-v19-1-2);
67
- transition-timing-function:var(--magritte-semantic-animation-ease-in-out-tiger-200-timing-function-v19-1-2);
596
+ transition-duration:var(--magritte-semantic-animation-ease-in-out-tiger-200-duration-v20-0-0);
597
+ transition-timing-function:var(--magritte-semantic-animation-ease-in-out-tiger-200-timing-function-v20-0-0);
68
598
  }
69
- .magritte-dot-container___ahtlG_4-4-2{
599
+ .magritte-dot-container___ahtlG_4-4-4{
70
600
  display:flex;
71
601
  justify-content:center;
72
602
  }
package/index.js CHANGED
@@ -8,7 +8,7 @@ import '@hh.ru/magritte-ui-action';
8
8
  import '@hh.ru/magritte-ui-breakpoint';
9
9
  import '@hh.ru/magritte-ui-dot-pages';
10
10
  import '@hh.ru/magritte-ui-icon/icon';
11
- import './useScrollContainer-DNqfN56n.js';
11
+ import './useScrollContainer-H5QZsUZy.js';
12
12
  import '@hh.ru/magritte-internal-custom-scroll';
13
13
  import './types.js';
14
14
  import './utils.js';
package/index.mock.js CHANGED
@@ -8,7 +8,7 @@ import '@hh.ru/magritte-ui-action';
8
8
  import '@hh.ru/magritte-ui-breakpoint';
9
9
  import '@hh.ru/magritte-ui-dot-pages';
10
10
  import '@hh.ru/magritte-ui-icon/icon';
11
- import './useScrollContainer-DNqfN56n.js';
11
+ import './useScrollContainer-H5QZsUZy.js';
12
12
  import '@hh.ru/magritte-internal-custom-scroll';
13
13
  import './types.js';
14
14
  import './utils.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hh.ru/magritte-ui-scrollable-container",
3
- "version": "4.4.2",
3
+ "version": "4.4.4",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -20,14 +20,14 @@
20
20
  "watch": "yarn root:watch $(pwd)"
21
21
  },
22
22
  "dependencies": {
23
- "@hh.ru/magritte-design-tokens": "19.1.2",
23
+ "@hh.ru/magritte-design-tokens": "20.0.0",
24
24
  "@hh.ru/magritte-internal-custom-scroll": "1.3.1",
25
- "@hh.ru/magritte-ui-action": "4.4.14",
25
+ "@hh.ru/magritte-ui-action": "4.4.16",
26
26
  "@hh.ru/magritte-ui-breakpoint": "4.1.0",
27
- "@hh.ru/magritte-ui-dot-pages": "3.0.11",
28
- "@hh.ru/magritte-ui-icon": "7.9.3",
27
+ "@hh.ru/magritte-ui-dot-pages": "3.0.12",
28
+ "@hh.ru/magritte-ui-icon": "7.9.5",
29
29
  "@hh.ru/magritte-ui-mock-component": "1.0.11",
30
- "@hh.ru/magritte-ui-spacing": "2.0.32"
30
+ "@hh.ru/magritte-ui-spacing": "2.0.33"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "classnames": ">=2.3.2",
@@ -36,5 +36,5 @@
36
36
  "publishConfig": {
37
37
  "access": "public"
38
38
  },
39
- "gitHead": "4adeae453af768d9a43f23cd7f9f43bb54676a3b"
39
+ "gitHead": "c433893f26e96398f781c1b7698d13bdcb442d48"
40
40
  }
@@ -5,7 +5,7 @@ import { initScrollHandlers, clamp } from '@hh.ru/magritte-internal-custom-scrol
5
5
  import { OFFSET_ATTR } from './types.js';
6
6
  import { debounce, scheduleForAnimationFrame } from './utils.js';
7
7
 
8
- var styles = {"scroll-wrapper":"magritte-scroll-wrapper___vTdZl_4-4-2","scrollWrapper":"magritte-scroll-wrapper___vTdZl_4-4-2","scrollable-container":"magritte-scrollable-container___AKIUp_4-4-2","scrollableContainer":"magritte-scrollable-container___AKIUp_4-4-2","fade-both-sides":"magritte-fade-both-sides___pBan7_4-4-2","fadeBothSides":"magritte-fade-both-sides___pBan7_4-4-2","no-buttons":"magritte-no-buttons___eCwO-_4-4-2","noButtons":"magritte-no-buttons___eCwO-_4-4-2","fade-left-side":"magritte-fade-left-side___Hlpre_4-4-2","fadeLeftSide":"magritte-fade-left-side___Hlpre_4-4-2","fade-right-side":"magritte-fade-right-side___Lskyt_4-4-2","fadeRightSide":"magritte-fade-right-side___Lskyt_4-4-2","scroll-button":"magritte-scroll-button___4GQu3_4-4-2","scrollButton":"magritte-scroll-button___4GQu3_4-4-2","scroll-button-left":"magritte-scroll-button-left___UueEY_4-4-2","scrollButtonLeft":"magritte-scroll-button-left___UueEY_4-4-2","scroll-button-right":"magritte-scroll-button-right___wZOn-_4-4-2","scrollButtonRight":"magritte-scroll-button-right___wZOn-_4-4-2","position-container":"magritte-position-container___1A4Bv_4-4-2","positionContainer":"magritte-position-container___1A4Bv_4-4-2","position-container-animated":"magritte-position-container-animated___XuPNW_4-4-2","positionContainerAnimated":"magritte-position-container-animated___XuPNW_4-4-2","dot-container":"magritte-dot-container___ahtlG_4-4-2","dotContainer":"magritte-dot-container___ahtlG_4-4-2"};
8
+ var styles = {"scroll-wrapper":"magritte-scroll-wrapper___vTdZl_4-4-4","scrollWrapper":"magritte-scroll-wrapper___vTdZl_4-4-4","scrollable-container":"magritte-scrollable-container___AKIUp_4-4-4","scrollableContainer":"magritte-scrollable-container___AKIUp_4-4-4","fade-both-sides":"magritte-fade-both-sides___pBan7_4-4-4","fadeBothSides":"magritte-fade-both-sides___pBan7_4-4-4","no-buttons":"magritte-no-buttons___eCwO-_4-4-4","noButtons":"magritte-no-buttons___eCwO-_4-4-4","fade-left-side":"magritte-fade-left-side___Hlpre_4-4-4","fadeLeftSide":"magritte-fade-left-side___Hlpre_4-4-4","fade-right-side":"magritte-fade-right-side___Lskyt_4-4-4","fadeRightSide":"magritte-fade-right-side___Lskyt_4-4-4","scroll-button":"magritte-scroll-button___4GQu3_4-4-4","scrollButton":"magritte-scroll-button___4GQu3_4-4-4","scroll-button-left":"magritte-scroll-button-left___UueEY_4-4-4","scrollButtonLeft":"magritte-scroll-button-left___UueEY_4-4-4","scroll-button-right":"magritte-scroll-button-right___wZOn-_4-4-4","scrollButtonRight":"magritte-scroll-button-right___wZOn-_4-4-4","position-container":"magritte-position-container___1A4Bv_4-4-4","positionContainer":"magritte-position-container___1A4Bv_4-4-4","position-container-animated":"magritte-position-container-animated___XuPNW_4-4-4","positionContainerAnimated":"magritte-position-container-animated___XuPNW_4-4-4","dot-container":"magritte-dot-container___ahtlG_4-4-4","dotContainer":"magritte-dot-container___ahtlG_4-4-4"};
9
9
 
10
10
  const BUTTON_WIDTH = 44;
11
11
  const FOCUS_OUTLINE_WIDTH = 4;
@@ -443,4 +443,4 @@ const useScrollContainer = (leftCorrection, rightCorrection, disableButtons, sho
443
443
  };
444
444
 
445
445
  export { styles as s, useScrollContainer as u };
446
- //# sourceMappingURL=useScrollContainer-DNqfN56n.js.map
446
+ //# sourceMappingURL=useScrollContainer-H5QZsUZy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollContainer-DNqfN56n.js","sources":["../src/useScrollContainer.ts"],"sourcesContent":["import { useRef, useEffect, RefObject, useCallback, useLayoutEffect, useState } from 'react';\nimport classnames from 'classnames';\n\nimport { ScrollGestureEvent, initScrollHandlers, clamp } from '@hh.ru/magritte-internal-custom-scroll';\nimport { ScrollInternalState, ItemWithOffset, OFFSET_ATTR } from '@hh.ru/magritte-ui-scrollable-container/types';\nimport { debounce, scheduleForAnimationFrame } from '@hh.ru/magritte-ui-scrollable-container/utils';\n\nimport styles from './scrollableContainer.less';\n\nconst BUTTON_WIDTH = 44;\nconst FOCUS_OUTLINE_WIDTH = 4;\nconst DEFAULT_DOT = 1;\n\n/**\n * На базе стейта проверяем возможность использования вычисленного index-а\n * @param index значение для проверки\n * @param state Состояние скролла\n */\nconst isIncorrectIndex = (index: number, state: ScrollInternalState) => index < 0 || state.items.length - 1 < index;\n\n/**\n * Валидирует значение анимации и устанавливает ее в контейнер\n * @param translation значение анимации\n * @param state Состояние скролла\n */\nconst setTranslation = (translation: number, state: ScrollInternalState) => {\n const { positionContainerRef, positionContainerWidth, containerWidth } = state;\n if (!positionContainerRef.current) {\n return;\n }\n state.positionContainerTranslation = clamp(translation, containerWidth - positionContainerWidth, 0);\n positionContainerRef.current.style.transform = `translate3d(${state.positionContainerTranslation}px, 0, 0)`;\n state.onScroll?.();\n};\n\n/**\n * Вычисляет нужно ли показывать фейды по краям и скрывать кнопки скролла\n * Применяет соответствующие классы к обертке\n * Проверяет что сдвиг контейнера позиционирования находится в допустимых пределах и если нет, то корректирует его\n * @param state Состояние скролла\n */\nconst applyScrollButtonsUpdate = (state: ScrollInternalState) => {\n const { positionContainerRef, wrapperRef, positionContainerWidth, containerWidth } = state;\n let { positionContainerTranslation } = state;\n\n if (!positionContainerRef.current || !wrapperRef.current) {\n return;\n }\n\n if (positionContainerWidth + positionContainerTranslation < containerWidth) {\n positionContainerTranslation = containerWidth - positionContainerWidth;\n setTranslation(positionContainerTranslation, state);\n }\n const isFadeLeft = positionContainerTranslation < 0;\n const isFadeRight = positionContainerTranslation + positionContainerWidth > containerWidth;\n const className = classnames({\n [styles.fadeLeftSide]: isFadeLeft && !isFadeRight,\n [styles.fadeRightSide]: isFadeRight && !isFadeLeft,\n [styles.fadeBothSides]: isFadeRight && isFadeLeft,\n });\n wrapperRef.current.classList.remove(styles.fadeBothSides, styles.fadeLeftSide, styles.fadeRightSide);\n className && wrapperRef.current.classList.add(className);\n};\n\nconst setAnimated = (state: ScrollInternalState, animated: boolean) => {\n state.positionContainerRef.current?.classList.toggle(styles.positionContainerAnimated, animated);\n if (!animated) {\n state.scrollAnimationInProgress = false;\n }\n};\n\n/**\n * Скролл к конкретному элементу группы. Если на момент вызова нет ref контейнера позиционирования, то считаем что\n * функция была при маунте компонента и запоминаем элемент на который нужно скроллить. При маунте вызываем эту функцию\n * еще раз и скроллим к запомненному элементу без анимации.\n * @param state Состояние скролла\n * @param item Элемент к которому нужно подскроллить\n */\nconst scrollTo = (state: ScrollInternalState, item: RefObject<HTMLElement>) => {\n const {\n positionContainerTranslation,\n containerWidth,\n positionContainerRef,\n scrollToItemInProgress,\n disableButtons,\n positionContainerWidth,\n showDotPages,\n items,\n } = state;\n if (!positionContainerRef.current) {\n state.scrollToOnMount = item;\n return;\n }\n\n if (item.current === scrollToItemInProgress?.current) {\n return;\n }\n state.previousActiveIndexItem = items.indexOf(item as unknown as RefObject<HTMLElement & ItemWithOffset>);\n const offset = (item.current as unknown as ItemWithOffset)[OFFSET_ATTR];\n const width = offset.right - offset.left;\n const buttonsCorrection = disableButtons ? 0 : BUTTON_WIDTH;\n\n // нужно ли отцентрировать контейнер по текущему item\n // актуально для режима showDotPages\n // так как контейнер работает как карусель\n const needItemCorrection = showDotPages;\n let translation = positionContainerTranslation;\n if (width > containerWidth) {\n // элемент шире контейнера\n translation = -((width - containerWidth) / 2 + offset.left);\n } else if (offset.left + positionContainerTranslation < buttonsCorrection && positionContainerTranslation < 0) {\n // контейнер движется вправо\n const correction = needItemCorrection ? (containerWidth - width) / 2 : buttonsCorrection;\n translation = -offset.left + correction;\n } else if (\n offset.right + positionContainerTranslation > containerWidth - buttonsCorrection &&\n positionContainerTranslation > containerWidth - positionContainerWidth\n ) {\n // контейнер движется влево\n const correction = needItemCorrection ? (containerWidth - width) / 2 : buttonsCorrection;\n translation = containerWidth - offset.right - correction;\n } else if (showDotPages) {\n // анимация к центру элемента (при необходимости)\n const correction = (containerWidth - width) / 2;\n // если находимся на границе контейнера, то анимации уже не будет (так как граница блока достигнута)\n // то есть translation надо скорректировать на базе контейнера чрз clamp\n translation = clamp(-offset.left + correction, containerWidth - positionContainerWidth, 0);\n }\n\n const isPositionChanged = translation !== positionContainerTranslation;\n const needAnimation = !state.scrollToOnMount && isPositionChanged;\n\n // Если это скролл при маунте, или позиция скролла не изменилась, то его не нужно анимировать\n setAnimated(state, needAnimation);\n setTranslation(translation, state);\n if (needAnimation) {\n state.scrollAnimationInProgress = true;\n state.scrollToItemInProgress = item;\n }\n applyScrollButtonsUpdate(state);\n};\n\n/**\n * Если текущий элемент совпадает с новым\n * Находим следующий активный элемент по направлению и скролим к нему\n */\nconst scrollToNewItemDebounced = debounce((state: ScrollInternalState, indexNearestToCenter: number) => {\n const { previousActiveIndexItem, items, directionRight } = state;\n let index = indexNearestToCenter;\n // определяем ситуацию, когда скрола не хватило до следующего элемента\n if (previousActiveIndexItem === indexNearestToCenter) {\n const indexBasedOnDirection = directionRight ? indexNearestToCenter + 1 : indexNearestToCenter - 1;\n // нужно проверить новый индекс, чтобы не выходить за границы\n if (!isIncorrectIndex(indexBasedOnDirection, state)) {\n index = indexBasedOnDirection;\n state.setActiveDot(index + 1);\n }\n }\n const item: RefObject<HTMLElement> = items[index];\n scrollTo(state, item);\n}, 30);\n\n/**\n * Скролл к конкретному элементу группы (обернуто в debounce)\n */\nconst scrollToDebounced = debounce(\n (state: ScrollInternalState, index: number) => scrollTo(state, state.items[index]),\n 30\n);\n\n/**\n * Пересчитывает позиции элементов и обновляет состояние скролла. Вызывается при изменении размеров контейнера или\n * добавлении/удалении элементов. Проходится по всем элементам и вычисляет сдвиг их правой и левой границы относительно\n * контейнера позиционирования. Сортирует элементы по возрастанию сдвига левой границы. Вычисляет ширину внешнего\n * контейнера и контейнера позиционирования. При вычислении ширины контейнера позиционирования правой его границей\n * считается правая граница самого крайнего справа элемента. Это нужно чтобы при переносе элементов на несколько строк\n * справа не появлялось лишнее пустое пространство.\n * @param state Состояние скролла\n */\nconst recalculateItemPositions = (state: ScrollInternalState) => {\n const { positionContainerRef, containerRef, items, showDotPages, setCountItems } = state;\n\n if (!positionContainerRef.current || !containerRef.current) {\n return;\n }\n const offset = positionContainerRef.current.getBoundingClientRect().left || 0;\n items.forEach((itemRef) => {\n if (!itemRef.current) {\n return;\n }\n const rect = itemRef.current.getBoundingClientRect();\n itemRef.current[OFFSET_ATTR] = { left: rect.left - offset, right: rect.right - offset };\n });\n\n if (showDotPages) {\n setCountItems(items.length);\n }\n\n state.recalcRequired = false;\n // т.к. нам нужна ширина content-box, то вычитаем левую и правую коррекцию, т.к. ей будут равны паддинги\n state.containerWidth =\n containerRef.current.offsetWidth - state.correction.leftCorrection - state.correction.rightCorrection;\n // считаем ширину контейнера позиционирования равной правой границе самого крайнего элемента\n state.positionContainerWidth = items.reduce(\n (position, itemRef) => Math.max(position, itemRef.current?.[OFFSET_ATTR]?.right || 0),\n 0\n );\n if (!state.disableButtons && state.positionContainerWidth > state.containerWidth) {\n state.containerWidth -= FOCUS_OUTLINE_WIDTH;\n }\n\n // если при маунте, когда у нас еще не было информации об элементах и размерах контейнеров был вызван scrollTo,\n // то нужно проскроллить без анимации\n if (state.scrollToOnMount) {\n scrollTo(state, state.scrollToOnMount);\n state.scrollToOnMount = null;\n return;\n }\n\n applyScrollButtonsUpdate(state);\n};\n\n/**\n * Инициализирует ResizeObserver для контейнера и контейнера позиционирования\n */\nconst initResizeObserver = (state: ScrollInternalState) => {\n const { positionContainerRef, containerRef } = state;\n if (!positionContainerRef.current || !containerRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n return () => {};\n }\n let firstCall = true;\n const observer = new ResizeObserver(\n scheduleForAnimationFrame(() => {\n if (firstCall) {\n firstCall = false;\n return;\n }\n recalculateItemPositions(state);\n })\n );\n observer.observe(containerRef.current);\n observer.observe(positionContainerRef.current);\n\n return () => observer.disconnect();\n};\n\n/**\n * На базе стейта считает ближайший элемент, который ближе к центру вью контейнера\n * Между блоками могут быть отступы, тогда centerPoint в offset-ы ни одного из элементов не попадет\n * В этом случае, используем предыдущее значение\n * @param state Состояние скролла\n * @returns Индекс элемента в массиве state.items\n */\nconst findIndexNearestToCenter = (state: ScrollInternalState): number => {\n const centerPoint = state.containerWidth / 2 + Math.abs(state.positionContainerTranslation);\n const indexNearestToCenter = state.items.findIndex((itemRef) => {\n if (!itemRef.current) {\n return false;\n }\n const offset = itemRef.current[OFFSET_ATTR];\n return offset.left < centerPoint && offset.right > centerPoint;\n });\n return indexNearestToCenter !== -1 ? indexNearestToCenter + 1 : state.activeDot;\n};\n\ninterface UseScrollContainer {\n registerItem: (ref: RefObject<HTMLElement>) => void;\n removeItem: (ref: RefObject<HTMLElement>) => void;\n scrollToItem: (ref: RefObject<HTMLElement>) => void;\n scrollToFirstItem: VoidFunction;\n scrollToLastItem: VoidFunction;\n scrollSide: (right?: boolean) => void;\n initScrollHandlers: () => VoidFunction;\n wrapperRef: RefObject<HTMLDivElement>;\n positionContainerRef: RefObject<HTMLDivElement>;\n containerRef: RefObject<HTMLDivElement>;\n countItems: number;\n activeDot: number;\n isScrollRightEnabled: () => boolean;\n isScrollLeftEnabled: () => boolean;\n}\n\nexport const useScrollContainer = (\n leftCorrection: number,\n rightCorrection: number,\n disableButtons: boolean,\n showDotPages?: boolean,\n onScroll?: () => void\n): UseScrollContainer => {\n // need state for dot component\n const [activeDot, setActiveDot] = useState(DEFAULT_DOT);\n const [countItems, setCountItems] = useState(0);\n const scrollStateRef = useRef<ScrollInternalState>({\n wrapperRef: useRef<HTMLDivElement>(null),\n positionContainerRef: useRef<HTMLDivElement>(null),\n containerRef: useRef<HTMLDivElement>(null),\n positionContainerWidth: 0,\n positionContainerTranslation: 0,\n containerWidth: 0,\n items: [],\n correction: { leftCorrection: 0, rightCorrection: 0 },\n disableButtons: false,\n scrollAnimationInProgress: false,\n scrollToOnMount: null,\n recalcRequired: false,\n scrollToItemInProgress: null,\n showDotPages: false,\n activeDot: DEFAULT_DOT,\n needCorrectionOnScrollEnd: false,\n setActiveDot,\n setCountItems,\n directionRight: false,\n previousActiveIndexItem: 0,\n onScroll,\n });\n\n scrollStateRef.current.correction = { leftCorrection, rightCorrection };\n scrollStateRef.current.disableButtons = disableButtons;\n scrollStateRef.current.showDotPages = Boolean(showDotPages);\n scrollStateRef.current.activeDot = activeDot;\n scrollStateRef.current.onScroll = onScroll;\n\n // eslint-disable-next-line disable-autofix/react-hooks/exhaustive-deps\n const recalculateItemPositionsDebounced = useCallback(\n debounce(() => recalculateItemPositions(scrollStateRef.current), 10),\n []\n );\n\n const scrollToItem = useCallback((ref: RefObject<HTMLElement>) => {\n if (scrollStateRef.current.recalcRequired) {\n recalculateItemPositions(scrollStateRef.current);\n }\n // set active dot here because user can click on item\n if (scrollStateRef.current.showDotPages) {\n scrollStateRef.current.setActiveDot(\n scrollStateRef.current.items.indexOf(ref as unknown as RefObject<HTMLElement & ItemWithOffset>) + 1\n );\n }\n scrollTo(scrollStateRef.current, ref);\n }, []);\n\n const scrollToFirstItem = useCallback(() => {\n const { items } = scrollStateRef.current;\n items.length > 0 && scrollToItem(items[0]);\n }, [scrollToItem]);\n\n const scrollToLastItem = useCallback(() => {\n const { items } = scrollStateRef.current;\n items.length > 0 && scrollToItem(items[items.length - 1]);\n }, [scrollToItem]);\n\n const scrollSide = useCallback(\n (directionRight?: boolean) => {\n const { containerWidth, positionContainerRef, positionContainerTranslation, showDotPages } =\n scrollStateRef.current;\n if (!positionContainerRef.current) {\n return;\n }\n if (!showDotPages) {\n // move container based on container width\n const translation = positionContainerTranslation + (directionRight ? -containerWidth : containerWidth);\n setAnimated(scrollStateRef.current, true);\n setTranslation(translation, scrollStateRef.current);\n applyScrollButtonsUpdate(scrollStateRef.current);\n } else {\n // calc new dot and check it\n const activeDot = scrollStateRef.current.activeDot;\n const newActiveDot = directionRight ? activeDot + 1 : activeDot - 1;\n if (!isIncorrectIndex(newActiveDot - 1, scrollStateRef.current)) {\n // move container to new select ref\n scrollToItem(scrollStateRef.current.items[newActiveDot - 1]);\n }\n }\n },\n [scrollToItem]\n );\n\n const registerItem = useCallback((ref: RefObject<HTMLElement>) => {\n if (!ref.current) {\n return;\n }\n\n scrollStateRef.current.items.push(ref as unknown as RefObject<HTMLElement & ItemWithOffset>);\n scrollStateRef.current.recalcRequired = true;\n recalculateItemPositions(scrollStateRef.current);\n }, []);\n\n const removeItem = useCallback(\n (ref: RefObject<HTMLElement>) => {\n if (!ref.current) {\n return;\n }\n\n scrollStateRef.current.items = scrollStateRef.current.items.filter(\n (storedRef) => storedRef.current !== ref.current\n );\n recalculateItemPositionsDebounced();\n },\n [recalculateItemPositionsDebounced]\n );\n\n useEffect(() => {\n const { wrapperRef, positionContainerRef, containerRef } = scrollStateRef.current;\n if (!containerRef.current || !positionContainerRef.current || !wrapperRef.current) {\n return void 0;\n }\n\n const transitionEndHandler = (event: TransitionEvent) => {\n if (event.target !== scrollStateRef.current?.positionContainerRef.current) {\n return;\n }\n setAnimated(scrollStateRef.current, false);\n if (scrollStateRef.current) {\n scrollStateRef.current.scrollAnimationInProgress = false;\n scrollStateRef.current.scrollToItemInProgress = null;\n }\n };\n const positionContainer = scrollStateRef.current?.positionContainerRef.current;\n positionContainer?.addEventListener('transitionend', transitionEndHandler);\n\n const resizeObserverCleanup = initResizeObserver(scrollStateRef.current);\n\n return () => {\n resizeObserverCleanup();\n positionContainer?.removeEventListener('transitionend', transitionEndHandler);\n };\n }, []);\n\n useLayoutEffect(() => {\n recalculateItemPositions(scrollStateRef.current);\n if (disableButtons) {\n setAnimated(scrollStateRef.current, false);\n }\n }, [disableButtons, leftCorrection, rightCorrection]);\n\n useEffect(() => {\n const wrapperRef = scrollStateRef.current.wrapperRef.current;\n if (!wrapperRef) {\n return void 0;\n }\n const handleTouchStartHandler = (event: TouchEvent) => {\n event.stopPropagation();\n };\n wrapperRef.addEventListener('touchstart', handleTouchStartHandler);\n return () => {\n wrapperRef.removeEventListener('touchstart', handleTouchStartHandler);\n };\n }, []);\n\n const onTouchMove = useCallback((event: ScrollGestureEvent) => {\n if (scrollStateRef.current.scrollAnimationInProgress) {\n return;\n }\n const { positionContainerTranslation } = scrollStateRef.current;\n setTranslation(scrollStateRef.current.positionContainerTranslation + event.delta, scrollStateRef.current);\n if (positionContainerTranslation === scrollStateRef.current.positionContainerTranslation) {\n event.preventDefault();\n }\n if (scrollStateRef.current.showDotPages) {\n // by touch change active dot\n const newActiveDot = findIndexNearestToCenter(scrollStateRef.current);\n // update state\n scrollStateRef.current.setActiveDot(newActiveDot);\n // scheduling correction\n scrollStateRef.current.needCorrectionOnScrollEnd = true;\n }\n }, []);\n\n const onTouchEnd = useCallback(() => {\n const { needCorrectionOnScrollEnd, showDotPages, activeDot } = scrollStateRef.current;\n if (showDotPages && needCorrectionOnScrollEnd) {\n scrollStateRef.current.needCorrectionOnScrollEnd = false;\n // center active element\n scrollToDebounced(scrollStateRef.current, activeDot - 1);\n }\n }, []);\n\n const onWheelMove = useCallback((event: ScrollGestureEvent) => {\n const { recalcRequired, scrollAnimationInProgress, positionContainerTranslation, showDotPages } =\n scrollStateRef.current;\n if (recalcRequired) {\n recalculateItemPositions(scrollStateRef.current);\n }\n if (scrollAnimationInProgress) {\n event.preventDefault();\n return;\n }\n scrollStateRef.current.directionRight = event.delta < 0;\n const translation = positionContainerTranslation + event.delta;\n setTranslation(translation, scrollStateRef.current);\n applyScrollButtonsUpdate(scrollStateRef.current);\n\n // эти значения могут быть не равны только в случае если попытались сдвинуть контейнер дальше\n // допустимого значения, это значит что мы уперлись в левую или правую границу, значит дальнейшие события\n // скролла можно не обрабатывать\n if (translation === scrollStateRef.current.positionContainerTranslation) {\n event.preventDefault();\n }\n if (showDotPages) {\n // by wheel change active dot\n const newActiveDot = findIndexNearestToCenter(scrollStateRef.current);\n scrollStateRef.current.setActiveDot(newActiveDot);\n // center active element\n scrollToNewItemDebounced(scrollStateRef.current, newActiveDot - 1);\n }\n }, []);\n\n const _initScrollHandlers = useCallback(\n () =>\n initScrollHandlers({\n axis: 'horizontal',\n wrapperRef: scrollStateRef.current.wrapperRef,\n onTouchMove,\n onTouchEnd,\n onWheelMove,\n }),\n [onTouchMove, onTouchEnd, onWheelMove]\n );\n\n const isScrollRightEnabled = useCallback(() => {\n const { positionContainerTranslation, positionContainerWidth, containerWidth } = scrollStateRef.current;\n return positionContainerTranslation + positionContainerWidth <= containerWidth;\n }, []);\n\n const isScrollLeftEnabled = useCallback(() => {\n const { positionContainerTranslation } = scrollStateRef.current;\n return positionContainerTranslation >= 0;\n }, []);\n\n return {\n registerItem,\n removeItem,\n scrollToItem,\n scrollToFirstItem,\n scrollToLastItem,\n scrollSide,\n initScrollHandlers: _initScrollHandlers,\n wrapperRef: scrollStateRef.current.wrapperRef,\n positionContainerRef: scrollStateRef.current.positionContainerRef,\n containerRef: scrollStateRef.current.containerRef,\n countItems,\n activeDot,\n isScrollRightEnabled,\n isScrollLeftEnabled,\n };\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useScrollContainer-H5QZsUZy.js","sources":["../src/useScrollContainer.ts"],"sourcesContent":["import { useRef, useEffect, RefObject, useCallback, useLayoutEffect, useState } from 'react';\nimport classnames from 'classnames';\n\nimport { ScrollGestureEvent, initScrollHandlers, clamp } from '@hh.ru/magritte-internal-custom-scroll';\nimport { ScrollInternalState, ItemWithOffset, OFFSET_ATTR } from '@hh.ru/magritte-ui-scrollable-container/types';\nimport { debounce, scheduleForAnimationFrame } from '@hh.ru/magritte-ui-scrollable-container/utils';\n\nimport styles from './scrollableContainer.less';\n\nconst BUTTON_WIDTH = 44;\nconst FOCUS_OUTLINE_WIDTH = 4;\nconst DEFAULT_DOT = 1;\n\n/**\n * На базе стейта проверяем возможность использования вычисленного index-а\n * @param index значение для проверки\n * @param state Состояние скролла\n */\nconst isIncorrectIndex = (index: number, state: ScrollInternalState) => index < 0 || state.items.length - 1 < index;\n\n/**\n * Валидирует значение анимации и устанавливает ее в контейнер\n * @param translation значение анимации\n * @param state Состояние скролла\n */\nconst setTranslation = (translation: number, state: ScrollInternalState) => {\n const { positionContainerRef, positionContainerWidth, containerWidth } = state;\n if (!positionContainerRef.current) {\n return;\n }\n state.positionContainerTranslation = clamp(translation, containerWidth - positionContainerWidth, 0);\n positionContainerRef.current.style.transform = `translate3d(${state.positionContainerTranslation}px, 0, 0)`;\n state.onScroll?.();\n};\n\n/**\n * Вычисляет нужно ли показывать фейды по краям и скрывать кнопки скролла\n * Применяет соответствующие классы к обертке\n * Проверяет что сдвиг контейнера позиционирования находится в допустимых пределах и если нет, то корректирует его\n * @param state Состояние скролла\n */\nconst applyScrollButtonsUpdate = (state: ScrollInternalState) => {\n const { positionContainerRef, wrapperRef, positionContainerWidth, containerWidth } = state;\n let { positionContainerTranslation } = state;\n\n if (!positionContainerRef.current || !wrapperRef.current) {\n return;\n }\n\n if (positionContainerWidth + positionContainerTranslation < containerWidth) {\n positionContainerTranslation = containerWidth - positionContainerWidth;\n setTranslation(positionContainerTranslation, state);\n }\n const isFadeLeft = positionContainerTranslation < 0;\n const isFadeRight = positionContainerTranslation + positionContainerWidth > containerWidth;\n const className = classnames({\n [styles.fadeLeftSide]: isFadeLeft && !isFadeRight,\n [styles.fadeRightSide]: isFadeRight && !isFadeLeft,\n [styles.fadeBothSides]: isFadeRight && isFadeLeft,\n });\n wrapperRef.current.classList.remove(styles.fadeBothSides, styles.fadeLeftSide, styles.fadeRightSide);\n className && wrapperRef.current.classList.add(className);\n};\n\nconst setAnimated = (state: ScrollInternalState, animated: boolean) => {\n state.positionContainerRef.current?.classList.toggle(styles.positionContainerAnimated, animated);\n if (!animated) {\n state.scrollAnimationInProgress = false;\n }\n};\n\n/**\n * Скролл к конкретному элементу группы. Если на момент вызова нет ref контейнера позиционирования, то считаем что\n * функция была при маунте компонента и запоминаем элемент на который нужно скроллить. При маунте вызываем эту функцию\n * еще раз и скроллим к запомненному элементу без анимации.\n * @param state Состояние скролла\n * @param item Элемент к которому нужно подскроллить\n */\nconst scrollTo = (state: ScrollInternalState, item: RefObject<HTMLElement>) => {\n const {\n positionContainerTranslation,\n containerWidth,\n positionContainerRef,\n scrollToItemInProgress,\n disableButtons,\n positionContainerWidth,\n showDotPages,\n items,\n } = state;\n if (!positionContainerRef.current) {\n state.scrollToOnMount = item;\n return;\n }\n\n if (item.current === scrollToItemInProgress?.current) {\n return;\n }\n state.previousActiveIndexItem = items.indexOf(item as unknown as RefObject<HTMLElement & ItemWithOffset>);\n const offset = (item.current as unknown as ItemWithOffset)[OFFSET_ATTR];\n const width = offset.right - offset.left;\n const buttonsCorrection = disableButtons ? 0 : BUTTON_WIDTH;\n\n // нужно ли отцентрировать контейнер по текущему item\n // актуально для режима showDotPages\n // так как контейнер работает как карусель\n const needItemCorrection = showDotPages;\n let translation = positionContainerTranslation;\n if (width > containerWidth) {\n // элемент шире контейнера\n translation = -((width - containerWidth) / 2 + offset.left);\n } else if (offset.left + positionContainerTranslation < buttonsCorrection && positionContainerTranslation < 0) {\n // контейнер движется вправо\n const correction = needItemCorrection ? (containerWidth - width) / 2 : buttonsCorrection;\n translation = -offset.left + correction;\n } else if (\n offset.right + positionContainerTranslation > containerWidth - buttonsCorrection &&\n positionContainerTranslation > containerWidth - positionContainerWidth\n ) {\n // контейнер движется влево\n const correction = needItemCorrection ? (containerWidth - width) / 2 : buttonsCorrection;\n translation = containerWidth - offset.right - correction;\n } else if (showDotPages) {\n // анимация к центру элемента (при необходимости)\n const correction = (containerWidth - width) / 2;\n // если находимся на границе контейнера, то анимации уже не будет (так как граница блока достигнута)\n // то есть translation надо скорректировать на базе контейнера чрз clamp\n translation = clamp(-offset.left + correction, containerWidth - positionContainerWidth, 0);\n }\n\n const isPositionChanged = translation !== positionContainerTranslation;\n const needAnimation = !state.scrollToOnMount && isPositionChanged;\n\n // Если это скролл при маунте, или позиция скролла не изменилась, то его не нужно анимировать\n setAnimated(state, needAnimation);\n setTranslation(translation, state);\n if (needAnimation) {\n state.scrollAnimationInProgress = true;\n state.scrollToItemInProgress = item;\n }\n applyScrollButtonsUpdate(state);\n};\n\n/**\n * Если текущий элемент совпадает с новым\n * Находим следующий активный элемент по направлению и скролим к нему\n */\nconst scrollToNewItemDebounced = debounce((state: ScrollInternalState, indexNearestToCenter: number) => {\n const { previousActiveIndexItem, items, directionRight } = state;\n let index = indexNearestToCenter;\n // определяем ситуацию, когда скрола не хватило до следующего элемента\n if (previousActiveIndexItem === indexNearestToCenter) {\n const indexBasedOnDirection = directionRight ? indexNearestToCenter + 1 : indexNearestToCenter - 1;\n // нужно проверить новый индекс, чтобы не выходить за границы\n if (!isIncorrectIndex(indexBasedOnDirection, state)) {\n index = indexBasedOnDirection;\n state.setActiveDot(index + 1);\n }\n }\n const item: RefObject<HTMLElement> = items[index];\n scrollTo(state, item);\n}, 30);\n\n/**\n * Скролл к конкретному элементу группы (обернуто в debounce)\n */\nconst scrollToDebounced = debounce(\n (state: ScrollInternalState, index: number) => scrollTo(state, state.items[index]),\n 30\n);\n\n/**\n * Пересчитывает позиции элементов и обновляет состояние скролла. Вызывается при изменении размеров контейнера или\n * добавлении/удалении элементов. Проходится по всем элементам и вычисляет сдвиг их правой и левой границы относительно\n * контейнера позиционирования. Сортирует элементы по возрастанию сдвига левой границы. Вычисляет ширину внешнего\n * контейнера и контейнера позиционирования. При вычислении ширины контейнера позиционирования правой его границей\n * считается правая граница самого крайнего справа элемента. Это нужно чтобы при переносе элементов на несколько строк\n * справа не появлялось лишнее пустое пространство.\n * @param state Состояние скролла\n */\nconst recalculateItemPositions = (state: ScrollInternalState) => {\n const { positionContainerRef, containerRef, items, showDotPages, setCountItems } = state;\n\n if (!positionContainerRef.current || !containerRef.current) {\n return;\n }\n const offset = positionContainerRef.current.getBoundingClientRect().left || 0;\n items.forEach((itemRef) => {\n if (!itemRef.current) {\n return;\n }\n const rect = itemRef.current.getBoundingClientRect();\n itemRef.current[OFFSET_ATTR] = { left: rect.left - offset, right: rect.right - offset };\n });\n\n if (showDotPages) {\n setCountItems(items.length);\n }\n\n state.recalcRequired = false;\n // т.к. нам нужна ширина content-box, то вычитаем левую и правую коррекцию, т.к. ей будут равны паддинги\n state.containerWidth =\n containerRef.current.offsetWidth - state.correction.leftCorrection - state.correction.rightCorrection;\n // считаем ширину контейнера позиционирования равной правой границе самого крайнего элемента\n state.positionContainerWidth = items.reduce(\n (position, itemRef) => Math.max(position, itemRef.current?.[OFFSET_ATTR]?.right || 0),\n 0\n );\n if (!state.disableButtons && state.positionContainerWidth > state.containerWidth) {\n state.containerWidth -= FOCUS_OUTLINE_WIDTH;\n }\n\n // если при маунте, когда у нас еще не было информации об элементах и размерах контейнеров был вызван scrollTo,\n // то нужно проскроллить без анимации\n if (state.scrollToOnMount) {\n scrollTo(state, state.scrollToOnMount);\n state.scrollToOnMount = null;\n return;\n }\n\n applyScrollButtonsUpdate(state);\n};\n\n/**\n * Инициализирует ResizeObserver для контейнера и контейнера позиционирования\n */\nconst initResizeObserver = (state: ScrollInternalState) => {\n const { positionContainerRef, containerRef } = state;\n if (!positionContainerRef.current || !containerRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n return () => {};\n }\n let firstCall = true;\n const observer = new ResizeObserver(\n scheduleForAnimationFrame(() => {\n if (firstCall) {\n firstCall = false;\n return;\n }\n recalculateItemPositions(state);\n })\n );\n observer.observe(containerRef.current);\n observer.observe(positionContainerRef.current);\n\n return () => observer.disconnect();\n};\n\n/**\n * На базе стейта считает ближайший элемент, который ближе к центру вью контейнера\n * Между блоками могут быть отступы, тогда centerPoint в offset-ы ни одного из элементов не попадет\n * В этом случае, используем предыдущее значение\n * @param state Состояние скролла\n * @returns Индекс элемента в массиве state.items\n */\nconst findIndexNearestToCenter = (state: ScrollInternalState): number => {\n const centerPoint = state.containerWidth / 2 + Math.abs(state.positionContainerTranslation);\n const indexNearestToCenter = state.items.findIndex((itemRef) => {\n if (!itemRef.current) {\n return false;\n }\n const offset = itemRef.current[OFFSET_ATTR];\n return offset.left < centerPoint && offset.right > centerPoint;\n });\n return indexNearestToCenter !== -1 ? indexNearestToCenter + 1 : state.activeDot;\n};\n\ninterface UseScrollContainer {\n registerItem: (ref: RefObject<HTMLElement>) => void;\n removeItem: (ref: RefObject<HTMLElement>) => void;\n scrollToItem: (ref: RefObject<HTMLElement>) => void;\n scrollToFirstItem: VoidFunction;\n scrollToLastItem: VoidFunction;\n scrollSide: (right?: boolean) => void;\n initScrollHandlers: () => VoidFunction;\n wrapperRef: RefObject<HTMLDivElement>;\n positionContainerRef: RefObject<HTMLDivElement>;\n containerRef: RefObject<HTMLDivElement>;\n countItems: number;\n activeDot: number;\n isScrollRightEnabled: () => boolean;\n isScrollLeftEnabled: () => boolean;\n}\n\nexport const useScrollContainer = (\n leftCorrection: number,\n rightCorrection: number,\n disableButtons: boolean,\n showDotPages?: boolean,\n onScroll?: () => void\n): UseScrollContainer => {\n // need state for dot component\n const [activeDot, setActiveDot] = useState(DEFAULT_DOT);\n const [countItems, setCountItems] = useState(0);\n const scrollStateRef = useRef<ScrollInternalState>({\n wrapperRef: useRef<HTMLDivElement>(null),\n positionContainerRef: useRef<HTMLDivElement>(null),\n containerRef: useRef<HTMLDivElement>(null),\n positionContainerWidth: 0,\n positionContainerTranslation: 0,\n containerWidth: 0,\n items: [],\n correction: { leftCorrection: 0, rightCorrection: 0 },\n disableButtons: false,\n scrollAnimationInProgress: false,\n scrollToOnMount: null,\n recalcRequired: false,\n scrollToItemInProgress: null,\n showDotPages: false,\n activeDot: DEFAULT_DOT,\n needCorrectionOnScrollEnd: false,\n setActiveDot,\n setCountItems,\n directionRight: false,\n previousActiveIndexItem: 0,\n onScroll,\n });\n\n scrollStateRef.current.correction = { leftCorrection, rightCorrection };\n scrollStateRef.current.disableButtons = disableButtons;\n scrollStateRef.current.showDotPages = Boolean(showDotPages);\n scrollStateRef.current.activeDot = activeDot;\n scrollStateRef.current.onScroll = onScroll;\n\n // eslint-disable-next-line disable-autofix/react-hooks/exhaustive-deps\n const recalculateItemPositionsDebounced = useCallback(\n debounce(() => recalculateItemPositions(scrollStateRef.current), 10),\n []\n );\n\n const scrollToItem = useCallback((ref: RefObject<HTMLElement>) => {\n if (scrollStateRef.current.recalcRequired) {\n recalculateItemPositions(scrollStateRef.current);\n }\n // set active dot here because user can click on item\n if (scrollStateRef.current.showDotPages) {\n scrollStateRef.current.setActiveDot(\n scrollStateRef.current.items.indexOf(ref as unknown as RefObject<HTMLElement & ItemWithOffset>) + 1\n );\n }\n scrollTo(scrollStateRef.current, ref);\n }, []);\n\n const scrollToFirstItem = useCallback(() => {\n const { items } = scrollStateRef.current;\n items.length > 0 && scrollToItem(items[0]);\n }, [scrollToItem]);\n\n const scrollToLastItem = useCallback(() => {\n const { items } = scrollStateRef.current;\n items.length > 0 && scrollToItem(items[items.length - 1]);\n }, [scrollToItem]);\n\n const scrollSide = useCallback(\n (directionRight?: boolean) => {\n const { containerWidth, positionContainerRef, positionContainerTranslation, showDotPages } =\n scrollStateRef.current;\n if (!positionContainerRef.current) {\n return;\n }\n if (!showDotPages) {\n // move container based on container width\n const translation = positionContainerTranslation + (directionRight ? -containerWidth : containerWidth);\n setAnimated(scrollStateRef.current, true);\n setTranslation(translation, scrollStateRef.current);\n applyScrollButtonsUpdate(scrollStateRef.current);\n } else {\n // calc new dot and check it\n const activeDot = scrollStateRef.current.activeDot;\n const newActiveDot = directionRight ? activeDot + 1 : activeDot - 1;\n if (!isIncorrectIndex(newActiveDot - 1, scrollStateRef.current)) {\n // move container to new select ref\n scrollToItem(scrollStateRef.current.items[newActiveDot - 1]);\n }\n }\n },\n [scrollToItem]\n );\n\n const registerItem = useCallback((ref: RefObject<HTMLElement>) => {\n if (!ref.current) {\n return;\n }\n\n scrollStateRef.current.items.push(ref as unknown as RefObject<HTMLElement & ItemWithOffset>);\n scrollStateRef.current.recalcRequired = true;\n recalculateItemPositions(scrollStateRef.current);\n }, []);\n\n const removeItem = useCallback(\n (ref: RefObject<HTMLElement>) => {\n if (!ref.current) {\n return;\n }\n\n scrollStateRef.current.items = scrollStateRef.current.items.filter(\n (storedRef) => storedRef.current !== ref.current\n );\n recalculateItemPositionsDebounced();\n },\n [recalculateItemPositionsDebounced]\n );\n\n useEffect(() => {\n const { wrapperRef, positionContainerRef, containerRef } = scrollStateRef.current;\n if (!containerRef.current || !positionContainerRef.current || !wrapperRef.current) {\n return void 0;\n }\n\n const transitionEndHandler = (event: TransitionEvent) => {\n if (event.target !== scrollStateRef.current?.positionContainerRef.current) {\n return;\n }\n setAnimated(scrollStateRef.current, false);\n if (scrollStateRef.current) {\n scrollStateRef.current.scrollAnimationInProgress = false;\n scrollStateRef.current.scrollToItemInProgress = null;\n }\n };\n const positionContainer = scrollStateRef.current?.positionContainerRef.current;\n positionContainer?.addEventListener('transitionend', transitionEndHandler);\n\n const resizeObserverCleanup = initResizeObserver(scrollStateRef.current);\n\n return () => {\n resizeObserverCleanup();\n positionContainer?.removeEventListener('transitionend', transitionEndHandler);\n };\n }, []);\n\n useLayoutEffect(() => {\n recalculateItemPositions(scrollStateRef.current);\n if (disableButtons) {\n setAnimated(scrollStateRef.current, false);\n }\n }, [disableButtons, leftCorrection, rightCorrection]);\n\n useEffect(() => {\n const wrapperRef = scrollStateRef.current.wrapperRef.current;\n if (!wrapperRef) {\n return void 0;\n }\n const handleTouchStartHandler = (event: TouchEvent) => {\n event.stopPropagation();\n };\n wrapperRef.addEventListener('touchstart', handleTouchStartHandler);\n return () => {\n wrapperRef.removeEventListener('touchstart', handleTouchStartHandler);\n };\n }, []);\n\n const onTouchMove = useCallback((event: ScrollGestureEvent) => {\n if (scrollStateRef.current.scrollAnimationInProgress) {\n return;\n }\n const { positionContainerTranslation } = scrollStateRef.current;\n setTranslation(scrollStateRef.current.positionContainerTranslation + event.delta, scrollStateRef.current);\n if (positionContainerTranslation === scrollStateRef.current.positionContainerTranslation) {\n event.preventDefault();\n }\n if (scrollStateRef.current.showDotPages) {\n // by touch change active dot\n const newActiveDot = findIndexNearestToCenter(scrollStateRef.current);\n // update state\n scrollStateRef.current.setActiveDot(newActiveDot);\n // scheduling correction\n scrollStateRef.current.needCorrectionOnScrollEnd = true;\n }\n }, []);\n\n const onTouchEnd = useCallback(() => {\n const { needCorrectionOnScrollEnd, showDotPages, activeDot } = scrollStateRef.current;\n if (showDotPages && needCorrectionOnScrollEnd) {\n scrollStateRef.current.needCorrectionOnScrollEnd = false;\n // center active element\n scrollToDebounced(scrollStateRef.current, activeDot - 1);\n }\n }, []);\n\n const onWheelMove = useCallback((event: ScrollGestureEvent) => {\n const { recalcRequired, scrollAnimationInProgress, positionContainerTranslation, showDotPages } =\n scrollStateRef.current;\n if (recalcRequired) {\n recalculateItemPositions(scrollStateRef.current);\n }\n if (scrollAnimationInProgress) {\n event.preventDefault();\n return;\n }\n scrollStateRef.current.directionRight = event.delta < 0;\n const translation = positionContainerTranslation + event.delta;\n setTranslation(translation, scrollStateRef.current);\n applyScrollButtonsUpdate(scrollStateRef.current);\n\n // эти значения могут быть не равны только в случае если попытались сдвинуть контейнер дальше\n // допустимого значения, это значит что мы уперлись в левую или правую границу, значит дальнейшие события\n // скролла можно не обрабатывать\n if (translation === scrollStateRef.current.positionContainerTranslation) {\n event.preventDefault();\n }\n if (showDotPages) {\n // by wheel change active dot\n const newActiveDot = findIndexNearestToCenter(scrollStateRef.current);\n scrollStateRef.current.setActiveDot(newActiveDot);\n // center active element\n scrollToNewItemDebounced(scrollStateRef.current, newActiveDot - 1);\n }\n }, []);\n\n const _initScrollHandlers = useCallback(\n () =>\n initScrollHandlers({\n axis: 'horizontal',\n wrapperRef: scrollStateRef.current.wrapperRef,\n onTouchMove,\n onTouchEnd,\n onWheelMove,\n }),\n [onTouchMove, onTouchEnd, onWheelMove]\n );\n\n const isScrollRightEnabled = useCallback(() => {\n const { positionContainerTranslation, positionContainerWidth, containerWidth } = scrollStateRef.current;\n return positionContainerTranslation + positionContainerWidth <= containerWidth;\n }, []);\n\n const isScrollLeftEnabled = useCallback(() => {\n const { positionContainerTranslation } = scrollStateRef.current;\n return positionContainerTranslation >= 0;\n }, []);\n\n return {\n registerItem,\n removeItem,\n scrollToItem,\n scrollToFirstItem,\n scrollToLastItem,\n scrollSide,\n initScrollHandlers: _initScrollHandlers,\n wrapperRef: scrollStateRef.current.wrapperRef,\n positionContainerRef: scrollStateRef.current.positionContainerRef,\n containerRef: scrollStateRef.current.containerRef,\n countItems,\n activeDot,\n isScrollRightEnabled,\n isScrollLeftEnabled,\n };\n};\n"],"names":[],"mappings":"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"}
@@ -4,5 +4,5 @@ import 'classnames';
4
4
  import '@hh.ru/magritte-internal-custom-scroll';
5
5
  import './types.js';
6
6
  import './utils.js';
7
- export { u as useScrollContainer } from './useScrollContainer-DNqfN56n.js';
7
+ export { u as useScrollContainer } from './useScrollContainer-H5QZsUZy.js';
8
8
  //# sourceMappingURL=useScrollContainer.js.map