@hh.ru/magritte-ui-media-viewer 1.2.43 → 1.2.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.css CHANGED
@@ -13,7 +13,7 @@
13
13
  .magritte-night-theme{
14
14
  --magritte-color-component-skeleton-background-content-v24-7-0:#5e5e5e3d;
15
15
  }
16
- .magritte-media-viewer___KnrXP_1-2-43{
16
+ .magritte-media-viewer___KnrXP_1-2-44{
17
17
  position:fixed;
18
18
  inset:0;
19
19
  display:grid;
@@ -25,7 +25,7 @@
25
25
  --media-viewer-background-opacity:calc(1 - var(--magritte-ui-media-viewer-close-progress));
26
26
  --magritte-ui-nav-bar-background-color-override:var(--magritte-color-background-overlay-toolbar-v24-7-0);
27
27
  }
28
- .magritte-media-viewer___KnrXP_1-2-43::before{
28
+ .magritte-media-viewer___KnrXP_1-2-44::before{
29
29
  content:'';
30
30
  position:absolute;
31
31
  inset:0;
@@ -33,13 +33,13 @@
33
33
  opacity:var(--media-viewer-background-opacity);
34
34
  pointer-events:none;
35
35
  }
36
- .magritte-gallery-placeholder___rUoGL_1-2-43{
36
+ .magritte-gallery-placeholder___rUoGL_1-2-44{
37
37
  display:flex;
38
38
  align-items:stretch;
39
39
  grid-row:2;
40
40
  min-height:0;
41
41
  }
42
- .magritte-media-viewer-gallery___P0SnN_1-2-43{
42
+ .magritte-media-viewer-gallery___P0SnN_1-2-44{
43
43
  display:grid;
44
44
  flex-grow:1;
45
45
  contain:layout size;
@@ -48,16 +48,16 @@
48
48
  inset:0;
49
49
  }
50
50
  @media (min-width: 1020px){
51
- body.magritte-old-layout .magritte-media-viewer-gallery___P0SnN_1-2-43{
51
+ body.magritte-old-layout .magritte-media-viewer-gallery___P0SnN_1-2-44{
52
52
  position:relative;
53
53
  }
54
54
  }
55
55
  @media (min-width: 1024px){
56
- body:not(.magritte-old-layout) .magritte-media-viewer-gallery___P0SnN_1-2-43{
56
+ body:not(.magritte-old-layout) .magritte-media-viewer-gallery___P0SnN_1-2-44{
57
57
  position:relative;
58
58
  }
59
59
  }
60
- .magritte-gallery-item___Js0Z5_1-2-43{
60
+ .magritte-gallery-item___Js0Z5_1-2-44{
61
61
  position:relative;
62
62
  grid-area:1 / 1;
63
63
  contain:size;
@@ -66,7 +66,7 @@
66
66
  overflow-y:visible;
67
67
  opacity:calc(1 - var(--magritte-ui-media-viewer-image-close-progress, 0));
68
68
  }
69
- .magritte-gallery-item-transform-container___N8-sA_1-2-43{
69
+ .magritte-gallery-item-transform-container___N8-sA_1-2-44{
70
70
  position:absolute;
71
71
  top:50%;
72
72
  left:50%;
@@ -74,44 +74,44 @@
74
74
  will-change:transform;
75
75
  touch-action:none;
76
76
  }
77
- .magritte-preview-counter___uP2Hc_1-2-43{
77
+ .magritte-preview-counter___uP2Hc_1-2-44{
78
78
  min-width:0;
79
79
  text-align:center;
80
80
  }
81
81
  @media (min-width: 1020px){
82
- body.magritte-old-layout .magritte-preview-counter___uP2Hc_1-2-43{
82
+ body.magritte-old-layout .magritte-preview-counter___uP2Hc_1-2-44{
83
83
  text-align:left;
84
84
  }
85
85
  }
86
86
  @media (min-width: 1024px){
87
- body:not(.magritte-old-layout) .magritte-preview-counter___uP2Hc_1-2-43{
87
+ body:not(.magritte-old-layout) .magritte-preview-counter___uP2Hc_1-2-44{
88
88
  text-align:left;
89
89
  }
90
90
  }
91
- .magritte-preview-counter___uP2Hc_1-2-43.magritte-with-description___-w7ld_1-2-43{
91
+ .magritte-preview-counter___uP2Hc_1-2-44.magritte-with-description___-w7ld_1-2-44{
92
92
  cursor:pointer;
93
93
  }
94
- .magritte-counter-number___gUpMp_1-2-43{
94
+ .magritte-counter-number___gUpMp_1-2-44{
95
95
  display:block;
96
96
  transform:translateY(calc(18px * 0.5));
97
97
  transition:transform var(--magritte-semantic-animation-time-m-duration-v24-7-0) var(--magritte-semantic-animation-ease-base-timing-function-v24-7-0);
98
98
  }
99
- .magritte-with-description___-w7ld_1-2-43 .magritte-counter-number___gUpMp_1-2-43{
99
+ .magritte-with-description___-w7ld_1-2-44 .magritte-counter-number___gUpMp_1-2-44{
100
100
  transform:translateY(0);
101
101
  }
102
- .magritte-no-description-placeholder___qc6h2_1-2-43{
102
+ .magritte-no-description-placeholder___qc6h2_1-2-44{
103
103
  display:block;
104
104
  height:18px;
105
105
  padding:0;
106
106
  }
107
- .magritte-preview-zoom-control___026jA_1-2-43{
107
+ .magritte-preview-zoom-control___026jA_1-2-44{
108
108
  display:flex;
109
109
  flex-direction:row;
110
110
  gap:2px;
111
111
  align-items:center;
112
112
  justify-self:end;
113
113
  }
114
- .magritte-preview-container___nwjNY_1-2-43{
114
+ .magritte-preview-container___nwjNY_1-2-44{
115
115
  display:grid;
116
116
  grid-template-columns:1fr auto 1fr;
117
117
  gap:16px;
@@ -122,16 +122,16 @@
122
122
  z-index:10;
123
123
  }
124
124
  @media (min-width: 1020px){
125
- body.magritte-old-layout .magritte-preview-container___nwjNY_1-2-43{
125
+ body.magritte-old-layout .magritte-preview-container___nwjNY_1-2-44{
126
126
  padding:16px 24px;
127
127
  }
128
128
  }
129
129
  @media (min-width: 1024px){
130
- body:not(.magritte-old-layout) .magritte-preview-container___nwjNY_1-2-43{
130
+ body:not(.magritte-old-layout) .magritte-preview-container___nwjNY_1-2-44{
131
131
  padding:16px 24px;
132
132
  }
133
133
  }
134
- .magritte-preview___0Ge4C_1-2-43{
134
+ .magritte-preview___0Ge4C_1-2-44{
135
135
  display:flex;
136
136
  flex-direction:row;
137
137
  touch-action:none;
@@ -139,18 +139,18 @@
139
139
  min-width:0;
140
140
  }
141
141
  @media (min-width: 1020px){
142
- body.magritte-old-layout .magritte-preview___0Ge4C_1-2-43{
142
+ body.magritte-old-layout .magritte-preview___0Ge4C_1-2-44{
143
143
  max-width:calc(((40 + 8) * (var(--media-viewer-max-visible-items) - 1) + 80) * 1px);
144
144
  overflow:hidden;
145
145
  }
146
146
  }
147
147
  @media (min-width: 1024px){
148
- body:not(.magritte-old-layout) .magritte-preview___0Ge4C_1-2-43{
148
+ body:not(.magritte-old-layout) .magritte-preview___0Ge4C_1-2-44{
149
149
  max-width:calc(((40 + 8) * (var(--media-viewer-max-visible-items) - 1) + 80) * 1px);
150
150
  overflow:hidden;
151
151
  }
152
152
  }
153
- .magritte-preview-list___SAXLZ_1-2-43{
153
+ .magritte-preview-list___SAXLZ_1-2-44{
154
154
  margin-left:50%;
155
155
  contain:layout paint;
156
156
  display:flex;
@@ -160,18 +160,18 @@
160
160
  flex:0 0 auto;
161
161
  }
162
162
  @media (min-width: 1020px){
163
- body.magritte-old-layout .magritte-preview-list___SAXLZ_1-2-43{
163
+ body.magritte-old-layout .magritte-preview-list___SAXLZ_1-2-44{
164
164
  margin:0;
165
165
  gap:8px;
166
166
  }
167
167
  }
168
168
  @media (min-width: 1024px){
169
- body:not(.magritte-old-layout) .magritte-preview-list___SAXLZ_1-2-43{
169
+ body:not(.magritte-old-layout) .magritte-preview-list___SAXLZ_1-2-44{
170
170
  margin:0;
171
171
  gap:8px;
172
172
  }
173
173
  }
174
- .magritte-preview-item___gz5f2_1-2-43{
174
+ .magritte-preview-item___gz5f2_1-2-44{
175
175
  contain:layout paint size;
176
176
  position:relative;
177
177
  flex-shrink:0;
@@ -185,33 +185,33 @@
185
185
  background-color:var(--magritte-color-component-skeleton-background-content-v24-7-0);
186
186
  }
187
187
  @media (min-width: 1020px){
188
- body.magritte-old-layout .magritte-preview-item___gz5f2_1-2-43{
188
+ body.magritte-old-layout .magritte-preview-item___gz5f2_1-2-44{
189
189
  height:80px;
190
190
  border-radius:8px;
191
191
  }
192
192
  }
193
193
  @media (min-width: 1024px){
194
- body:not(.magritte-old-layout) .magritte-preview-item___gz5f2_1-2-43{
194
+ body:not(.magritte-old-layout) .magritte-preview-item___gz5f2_1-2-44{
195
195
  height:80px;
196
196
  border-radius:8px;
197
197
  }
198
198
  }
199
- .magritte-preview-item-container___JDVsk_1-2-43{
199
+ .magritte-preview-item-container___JDVsk_1-2-44{
200
200
  contain:layout paint size;
201
201
  overflow:hidden;
202
202
  scale:1;
203
203
  }
204
204
  @media (min-width: 1020px){
205
- body.magritte-old-layout .magritte-preview-item-container___JDVsk_1-2-43{
205
+ body.magritte-old-layout .magritte-preview-item-container___JDVsk_1-2-44{
206
206
  scale:1.66666667;
207
207
  }
208
208
  }
209
209
  @media (min-width: 1024px){
210
- body:not(.magritte-old-layout) .magritte-preview-item-container___JDVsk_1-2-43{
210
+ body:not(.magritte-old-layout) .magritte-preview-item-container___JDVsk_1-2-44{
211
211
  scale:1.66666667;
212
212
  }
213
213
  }
214
- .magritte-preview-item-container___JDVsk_1-2-43 *{
214
+ .magritte-preview-item-container___JDVsk_1-2-44 *{
215
215
  touch-action:none;
216
216
  position:absolute;
217
217
  top:0;
@@ -221,7 +221,7 @@
221
221
  height:100%;
222
222
  user-select:none;
223
223
  }
224
- .magritte-media-viewer-toolbar___2C8nr_1-2-43{
224
+ .magritte-media-viewer-toolbar___2C8nr_1-2-44{
225
225
  background:var(--magritte-color-background-overlay-toolbar-v24-7-0);
226
226
  padding:0 8px;
227
227
  display:grid;
@@ -232,30 +232,30 @@
232
232
  grid-row:4;
233
233
  z-index:10;
234
234
  }
235
- .magritte-media-viewer-toolbar___2C8nr_1-2-43.magritte-no-description___NebrT_1-2-43{
235
+ .magritte-media-viewer-toolbar___2C8nr_1-2-44.magritte-no-description___NebrT_1-2-44{
236
236
  display:flex;
237
237
  justify-content:space-between;
238
238
  }
239
239
  @media (min-width: 1020px){
240
- body.magritte-old-layout .magritte-media-viewer-toolbar___2C8nr_1-2-43{
240
+ body.magritte-old-layout .magritte-media-viewer-toolbar___2C8nr_1-2-44{
241
241
  display:none;
242
242
  }
243
243
  }
244
244
  @media (min-width: 1024px){
245
- body:not(.magritte-old-layout) .magritte-media-viewer-toolbar___2C8nr_1-2-43{
245
+ body:not(.magritte-old-layout) .magritte-media-viewer-toolbar___2C8nr_1-2-44{
246
246
  display:none;
247
247
  }
248
248
  }
249
- .magritte-media-viewer-toolbar-left___YzkJt_1-2-43,
250
- .magritte-media-viewer-toolbar-right___kBER9_1-2-43{
249
+ .magritte-media-viewer-toolbar-left___YzkJt_1-2-44,
250
+ .magritte-media-viewer-toolbar-right___kBER9_1-2-44{
251
251
  display:flex;
252
252
  gap:4px;
253
253
  }
254
- .magritte-media-viewer-toolbar-right___kBER9_1-2-43{
254
+ .magritte-media-viewer-toolbar-right___kBER9_1-2-44{
255
255
  justify-content:end;
256
256
  }
257
- .magritte-prev-button___WMYjR_1-2-43,
258
- .magritte-next-button___f8hJT_1-2-43{
257
+ .magritte-prev-button___WMYjR_1-2-44,
258
+ .magritte-next-button___f8hJT_1-2-44{
259
259
  cursor:pointer;
260
260
  position:absolute;
261
261
  top:0;
@@ -263,40 +263,40 @@
263
263
  width:48px;
264
264
  opacity:var(--media-viewer-background-opacity);
265
265
  }
266
- .magritte-prev-button___WMYjR_1-2-43:active,
267
- .magritte-next-button___f8hJT_1-2-43:active{
266
+ .magritte-prev-button___WMYjR_1-2-44:active,
267
+ .magritte-next-button___f8hJT_1-2-44:active{
268
268
  background:linear-gradient(90deg, var(--magritte-gradient-component-media-viewer-background-fade-v24-7-0));
269
269
  }
270
270
  @media (min-width: 1020px){
271
- body.magritte-old-layout .magritte-prev-button___WMYjR_1-2-43,
272
- body.magritte-old-layout .magritte-next-button___f8hJT_1-2-43{
271
+ body.magritte-old-layout .magritte-prev-button___WMYjR_1-2-44,
272
+ body.magritte-old-layout .magritte-next-button___f8hJT_1-2-44{
273
273
  width:88px;
274
274
  }
275
- body.magritte-old-layout .magritte-prev-button___WMYjR_1-2-43:active,
276
- body.magritte-old-layout .magritte-next-button___f8hJT_1-2-43:active{
275
+ body.magritte-old-layout .magritte-prev-button___WMYjR_1-2-44:active,
276
+ body.magritte-old-layout .magritte-next-button___f8hJT_1-2-44:active{
277
277
  background:none;
278
278
  }
279
279
  }
280
280
  @media (min-width: 1024px){
281
- body:not(.magritte-old-layout) .magritte-prev-button___WMYjR_1-2-43,
282
- body:not(.magritte-old-layout) .magritte-next-button___f8hJT_1-2-43{
281
+ body:not(.magritte-old-layout) .magritte-prev-button___WMYjR_1-2-44,
282
+ body:not(.magritte-old-layout) .magritte-next-button___f8hJT_1-2-44{
283
283
  width:88px;
284
284
  }
285
- body:not(.magritte-old-layout) .magritte-prev-button___WMYjR_1-2-43:active,
286
- body:not(.magritte-old-layout) .magritte-next-button___f8hJT_1-2-43:active{
285
+ body:not(.magritte-old-layout) .magritte-prev-button___WMYjR_1-2-44:active,
286
+ body:not(.magritte-old-layout) .magritte-next-button___f8hJT_1-2-44:active{
287
287
  background:none;
288
288
  }
289
289
  }
290
- .magritte-prev-button___WMYjR_1-2-43{
290
+ .magritte-prev-button___WMYjR_1-2-44{
291
291
  left:0;
292
292
  }
293
- .magritte-prev-button___WMYjR_1-2-43:active{
293
+ .magritte-prev-button___WMYjR_1-2-44:active{
294
294
  background:linear-gradient(270deg, var(--magritte-gradient-component-media-viewer-background-fade-v24-7-0));
295
295
  }
296
- .magritte-next-button___f8hJT_1-2-43{
296
+ .magritte-next-button___f8hJT_1-2-44{
297
297
  right:0;
298
298
  }
299
- .magritte-slide-button___sY8LB_1-2-43{
299
+ .magritte-slide-button___sY8LB_1-2-44{
300
300
  display:flex;
301
301
  background:none;
302
302
  padding:0;
@@ -306,7 +306,7 @@
306
306
  position:absolute;
307
307
  inset:0;
308
308
  }
309
- .magritte-preview-placeholder___yuhW1_1-2-43{
309
+ .magritte-preview-placeholder___yuhW1_1-2-44{
310
310
  --magritte-media-viewer-preview-width:24px;
311
311
  --magritte-media-viewer-preview-gap:2px;
312
312
  flex:0 0 auto;
@@ -315,24 +315,24 @@
315
315
  flex-grow:0;
316
316
  }
317
317
  @media (min-width: 1020px){
318
- body.magritte-old-layout .magritte-preview-placeholder___yuhW1_1-2-43{
318
+ body.magritte-old-layout .magritte-preview-placeholder___yuhW1_1-2-44{
319
319
  --magritte-media-viewer-preview-width:40px;
320
320
  --magritte-media-viewer-preview-gap:8px;
321
321
  }
322
322
  }
323
323
  @media (min-width: 1024px){
324
- body:not(.magritte-old-layout) .magritte-preview-placeholder___yuhW1_1-2-43{
324
+ body:not(.magritte-old-layout) .magritte-preview-placeholder___yuhW1_1-2-44{
325
325
  --magritte-media-viewer-preview-width:40px;
326
326
  --magritte-media-viewer-preview-gap:8px;
327
327
  }
328
328
  }
329
- .magritte-gallery-item-loader___70TDe_1-2-43{
329
+ .magritte-gallery-item-loader___70TDe_1-2-44{
330
330
  position:absolute;
331
331
  top:50%;
332
332
  left:50%;
333
333
  transform:translate(-50%, -50%);
334
334
  }
335
- .magritte-gallery-item-error-container___Z-HyZ_1-2-43{
335
+ .magritte-gallery-item-error-container___Z-HyZ_1-2-44{
336
336
  display:flex;
337
337
  flex-direction:column;
338
338
  align-items:center;
@@ -346,22 +346,22 @@
346
346
  width:100%;
347
347
  box-sizing:border-box;
348
348
  }
349
- .magritte-description-bottom-sheet-content___swnEV_1-2-43{
349
+ .magritte-description-bottom-sheet-content___swnEV_1-2-44{
350
350
  padding:8px 0;
351
351
  }
352
- .magritte-header___egZXt_1-2-43{
352
+ .magritte-header___egZXt_1-2-44{
353
353
  grid-row:1;
354
354
  z-index:2;
355
355
  opacity:var(--media-viewer-toolbars-opacity);
356
356
  transform:translateY(calc(var(--magritte-ui-media-viewer-hide-tools-progress) * -100%));
357
357
  }
358
- .magritte-footer___rOH-M_1-2-43{
358
+ .magritte-footer___rOH-M_1-2-44{
359
359
  grid-row:3;
360
360
  z-index:2;
361
361
  opacity:var(--media-viewer-toolbars-opacity);
362
362
  transform:translateY(calc(var(--magritte-ui-media-viewer-hide-tools-progress) * 100%));
363
363
  }
364
- .magritte-description___dYc-E_1-2-43{
364
+ .magritte-description___dYc-E_1-2-44{
365
365
  display:inline-block;
366
366
  max-width:100%;
367
367
  }
package/index.js CHANGED
@@ -17,7 +17,7 @@ import './internal/utils.js';
17
17
  import './internal/hooks/useTapToToggleTools.js';
18
18
  import './internal/hooks/useVirtualization.js';
19
19
  import './public/Footer.js';
20
- import './media-viewer-DZtR9S9t.js';
20
+ import './media-viewer-C7hIa-QB.js';
21
21
  import './public/Gallery.js';
22
22
  import '@hh.ru/magritte-common-resize';
23
23
  import '@hh.ru/magritte-ui-icon/icon';
@@ -8,7 +8,7 @@ import { BottomSheet } from '@hh.ru/magritte-ui-bottom-sheet';
8
8
  import { useMediaViewerContext } from './context.js';
9
9
  import { TooltipHover } from '@hh.ru/magritte-ui-tooltip';
10
10
  import { Text } from '@hh.ru/magritte-ui-typography';
11
- import { s as styles } from '../media-viewer-DZtR9S9t.js';
11
+ import { s as styles } from '../media-viewer-C7hIa-QB.js';
12
12
  import './ImagesLoader.js';
13
13
  import './utils.js';
14
14
  import '@hh.ru/magritte-design-tokens/types';
@@ -14,7 +14,7 @@ import { usePinchToZoom } from './hooks/usePinchToZoom.js';
14
14
  import { useWheelToZoom } from './hooks/useWheelToZoom.js';
15
15
  import { lerp, clamp } from './utils.js';
16
16
  import { Text } from '@hh.ru/magritte-ui-typography';
17
- import { s as styles } from '../media-viewer-DZtR9S9t.js';
17
+ import { s as styles } from '../media-viewer-C7hIa-QB.js';
18
18
  import './ImagesLoader.js';
19
19
  import '@use-gesture/react';
20
20
 
@@ -9,7 +9,7 @@ import '@hh.ru/magritte-ui-breakpoint';
9
9
  import './utils.js';
10
10
  import '@hh.ru/magritte-design-tokens/types';
11
11
  import './animations.js';
12
- import '../media-viewer-DZtR9S9t.js';
12
+ import '../media-viewer-C7hIa-QB.js';
13
13
  import './ImagesLoader.js';
14
14
 
15
15
  const PreviewItem = ({ index, ...props }) => {
@@ -5,7 +5,7 @@ import { useMotionValue, useTransform, useMotionValueEvent, animate, motion } fr
5
5
  import { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';
6
6
  import { useMediaViewerContext, usePreviewContext } from './context.js';
7
7
  import { useDetectDiscreteChange, clamp } from './utils.js';
8
- import { s as styles } from '../media-viewer-DZtR9S9t.js';
8
+ import { s as styles } from '../media-viewer-C7hIa-QB.js';
9
9
  import './ImagesLoader.js';
10
10
  import '@hh.ru/magritte-design-tokens/types';
11
11
  import './animations.js';
@@ -9,7 +9,7 @@ import { EASE_BASE } from './animations.js';
9
9
  import { useMediaViewerContext } from './context.js';
10
10
  import { useInitOnce, findNextValue, getDimensionsAfterRotation, clampOffset } from './utils.js';
11
11
  import { Text } from '@hh.ru/magritte-ui-typography';
12
- import { s as styles } from '../media-viewer-DZtR9S9t.js';
12
+ import { s as styles } from '../media-viewer-C7hIa-QB.js';
13
13
  import './ImagesLoader.js';
14
14
 
15
15
  const getCurrentControllerLimits = (globalContext) => {
@@ -0,0 +1,5 @@
1
+ import './index.css';
2
+ var styles = {"media-viewer":"magritte-media-viewer___KnrXP_1-2-44","mediaViewer":"magritte-media-viewer___KnrXP_1-2-44","gallery-placeholder":"magritte-gallery-placeholder___rUoGL_1-2-44","galleryPlaceholder":"magritte-gallery-placeholder___rUoGL_1-2-44","media-viewer-gallery":"magritte-media-viewer-gallery___P0SnN_1-2-44","mediaViewerGallery":"magritte-media-viewer-gallery___P0SnN_1-2-44","gallery-item":"magritte-gallery-item___Js0Z5_1-2-44","galleryItem":"magritte-gallery-item___Js0Z5_1-2-44","gallery-item-transform-container":"magritte-gallery-item-transform-container___N8-sA_1-2-44","galleryItemTransformContainer":"magritte-gallery-item-transform-container___N8-sA_1-2-44","preview-counter":"magritte-preview-counter___uP2Hc_1-2-44","previewCounter":"magritte-preview-counter___uP2Hc_1-2-44","with-description":"magritte-with-description___-w7ld_1-2-44","withDescription":"magritte-with-description___-w7ld_1-2-44","counter-number":"magritte-counter-number___gUpMp_1-2-44","counterNumber":"magritte-counter-number___gUpMp_1-2-44","no-description-placeholder":"magritte-no-description-placeholder___qc6h2_1-2-44","noDescriptionPlaceholder":"magritte-no-description-placeholder___qc6h2_1-2-44","preview-zoom-control":"magritte-preview-zoom-control___026jA_1-2-44","previewZoomControl":"magritte-preview-zoom-control___026jA_1-2-44","preview-container":"magritte-preview-container___nwjNY_1-2-44","previewContainer":"magritte-preview-container___nwjNY_1-2-44","preview":"magritte-preview___0Ge4C_1-2-44","preview-list":"magritte-preview-list___SAXLZ_1-2-44","previewList":"magritte-preview-list___SAXLZ_1-2-44","preview-item":"magritte-preview-item___gz5f2_1-2-44","previewItem":"magritte-preview-item___gz5f2_1-2-44","preview-item-container":"magritte-preview-item-container___JDVsk_1-2-44","previewItemContainer":"magritte-preview-item-container___JDVsk_1-2-44","media-viewer-toolbar":"magritte-media-viewer-toolbar___2C8nr_1-2-44","mediaViewerToolbar":"magritte-media-viewer-toolbar___2C8nr_1-2-44","no-description":"magritte-no-description___NebrT_1-2-44","noDescription":"magritte-no-description___NebrT_1-2-44","media-viewer-toolbar-left":"magritte-media-viewer-toolbar-left___YzkJt_1-2-44","mediaViewerToolbarLeft":"magritte-media-viewer-toolbar-left___YzkJt_1-2-44","media-viewer-toolbar-right":"magritte-media-viewer-toolbar-right___kBER9_1-2-44","mediaViewerToolbarRight":"magritte-media-viewer-toolbar-right___kBER9_1-2-44","prev-button":"magritte-prev-button___WMYjR_1-2-44","prevButton":"magritte-prev-button___WMYjR_1-2-44","next-button":"magritte-next-button___f8hJT_1-2-44","nextButton":"magritte-next-button___f8hJT_1-2-44","slide-button":"magritte-slide-button___sY8LB_1-2-44","slideButton":"magritte-slide-button___sY8LB_1-2-44","preview-placeholder":"magritte-preview-placeholder___yuhW1_1-2-44","previewPlaceholder":"magritte-preview-placeholder___yuhW1_1-2-44","gallery-item-loader":"magritte-gallery-item-loader___70TDe_1-2-44","galleryItemLoader":"magritte-gallery-item-loader___70TDe_1-2-44","gallery-item-error-container":"magritte-gallery-item-error-container___Z-HyZ_1-2-44","galleryItemErrorContainer":"magritte-gallery-item-error-container___Z-HyZ_1-2-44","description-bottom-sheet-content":"magritte-description-bottom-sheet-content___swnEV_1-2-44","descriptionBottomSheetContent":"magritte-description-bottom-sheet-content___swnEV_1-2-44","header":"magritte-header___egZXt_1-2-44","footer":"magritte-footer___rOH-M_1-2-44","description":"magritte-description___dYc-E_1-2-44"};
3
+
4
+ export { styles as s };
5
+ //# sourceMappingURL=media-viewer-C7hIa-QB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-viewer-C7hIa-QB.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hh.ru/magritte-ui-media-viewer",
3
- "version": "1.2.43",
3
+ "version": "1.2.44",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -27,13 +27,13 @@
27
27
  "@hh.ru/magritte-common-use-multiple-refs": "1.1.11",
28
28
  "@hh.ru/magritte-common-use-translation": "3.1.0",
29
29
  "@hh.ru/magritte-design-tokens": "24.7.0",
30
- "@hh.ru/magritte-ui-bottom-sheet": "9.3.36",
30
+ "@hh.ru/magritte-ui-bottom-sheet": "9.3.37",
31
31
  "@hh.ru/magritte-ui-breakpoint": "6.1.1",
32
32
  "@hh.ru/magritte-ui-icon": "14.2.7",
33
33
  "@hh.ru/magritte-ui-layer": "3.2.4",
34
34
  "@hh.ru/magritte-ui-loader": "3.0.9",
35
35
  "@hh.ru/magritte-ui-mock-component": "1.1.7",
36
- "@hh.ru/magritte-ui-tooltip": "11.0.20",
36
+ "@hh.ru/magritte-ui-tooltip": "11.0.21",
37
37
  "@hh.ru/magritte-ui-typography": "5.3.1",
38
38
  "@use-gesture/react": "10.3.1"
39
39
  },
@@ -42,5 +42,5 @@
42
42
  "motion": "^12.23.12",
43
43
  "react": ">=18.2.0"
44
44
  },
45
- "gitHead": "8f3d9128b3717d8176cb8fcecc75a8e8584df3cb"
45
+ "gitHead": "05f02718f20bf30efb7740f5dd109fdcd1b025c6"
46
46
  }
package/public/Footer.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import './../index.css';
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { s as styles } from '../media-viewer-DZtR9S9t.js';
3
+ import { s as styles } from '../media-viewer-C7hIa-QB.js';
4
4
 
5
5
  const Footer = ({ children }) => {
6
6
  return (jsx("div", { "data-media-viewer-interactive": "true", className: styles.footer, children: children }));
package/public/Gallery.js CHANGED
@@ -10,7 +10,7 @@ import { useMediaViewerContext, useGalleryItemsContext } from '../internal/conte
10
10
  import { useSwipe } from '../internal/hooks/useSwipe.js';
11
11
  import { clamp } from '../internal/utils.js';
12
12
  import { GalleryItem } from './GalleryItem.js';
13
- import { s as styles } from '../media-viewer-DZtR9S9t.js';
13
+ import { s as styles } from '../media-viewer-C7hIa-QB.js';
14
14
  import '../internal/ImagesLoader.js';
15
15
  import '@use-gesture/react';
16
16
  import '@hh.ru/magritte-design-tokens/types';
@@ -17,7 +17,7 @@ import '@use-gesture/react';
17
17
  import '../internal/hooks/usePinchToZoom.js';
18
18
  import '../internal/hooks/useWheelToZoom.js';
19
19
  import '@hh.ru/magritte-ui-typography';
20
- import '../media-viewer-DZtR9S9t.js';
20
+ import '../media-viewer-C7hIa-QB.js';
21
21
  import '../internal/ImagesLoader.js';
22
22
 
23
23
  const GALLERY_ITEM_VIRTUALIZATION_PADDING = 5;
package/public/Header.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import './../index.css';
2
2
  import { jsx } from 'react/jsx-runtime';
3
- import { s as styles } from '../media-viewer-DZtR9S9t.js';
3
+ import { s as styles } from '../media-viewer-C7hIa-QB.js';
4
4
 
5
5
  const Header = ({ children }) => {
6
6
  return (jsx("div", { "data-media-viewer-interactive": "true", className: styles.header, children: children }));
@@ -21,7 +21,7 @@ import { Header } from './Header.js';
21
21
  import { Preview } from './Preview.js';
22
22
  import { Toolbar } from './Toolbar.js';
23
23
  import { DesktopTool, MobileTool, RotateTool, CloseTool, FullWidthTool } from './Tools.js';
24
- import { s as styles } from '../media-viewer-DZtR9S9t.js';
24
+ import { s as styles } from '../media-viewer-C7hIa-QB.js';
25
25
  import '../internal/ImagesLoader.js';
26
26
  import '@use-gesture/react';
27
27
  import '@hh.ru/magritte-common-resize';
@@ -68,7 +68,7 @@ const FLOAT_COMPARISON_THRESHOLD = 0.5;
68
68
  const FOCUSABLE_SELECTOR = `
69
69
  button:not([disabled]):not([tabindex="-1"]),
70
70
  a[href],
71
- input:not([disabled]):not([tabindex="-1"]),
71
+ input:not([disabled]):not([tabindex="-1"]):not([type="hidden"]),
72
72
  select:not([disabled]):not([tabindex="-1"]),
73
73
  textarea:not([disabled]):not([tabindex="-1"]),
74
74
  [tabindex]:not([tabindex="-1"])
@@ -1 +1 @@
1
- {"version":3,"file":"MediaViewer.js","sources":["../../common/keyboard/lib/keys-BQYfE7yD.js","../../common/keyboard/lib/findNextFocusableElement.js","../../common/keyboard/lib/match.js","../../common/keyboard/lib/useKeyboardNavigation.js","src/public/MediaViewer.tsx"],"sourcesContent":["const Escape = {\n key: 'Escape',\n code: 'Esc',\n};\nconst PageUp = {\n key: 'PageUp',\n code: 'Numpad9',\n};\nconst PageDown = {\n key: 'PageDown',\n code: 'Numpad3',\n};\nconst Enter = {\n key: 'Enter',\n code: 'Enter',\n};\nconst Space = {\n key: ' ',\n code: 'Space',\n};\nconst Backspace = {\n key: 'Backspace',\n code: 'Backspace',\n};\nconst Delete = {\n key: 'Delete',\n code: 'Delete',\n};\nconst Home = {\n key: 'Home',\n code: 'Home',\n};\nconst End = {\n key: 'End',\n code: 'End',\n};\nconst ArrowRight = {\n key: 'ArrowRight',\n code: 'ArrowRight',\n};\nconst ArrowLeft = {\n key: 'ArrowLeft',\n code: 'ArrowLeft',\n};\nconst ArrowUp = {\n key: 'ArrowUp',\n code: 'ArrowUp',\n};\nconst ArrowDown = {\n key: 'ArrowDown',\n code: 'ArrowDown',\n};\nconst Tab = {\n key: 'Tab',\n code: 'Tab',\n};\nconst DigitKeys = [\n {\n key: '0',\n code: 'Digit0',\n },\n {\n key: '1',\n code: 'Digit1',\n },\n {\n key: '2',\n code: 'Digit2',\n },\n {\n key: '3',\n code: 'Digit3',\n },\n {\n key: '4',\n code: 'Digit4',\n },\n {\n key: '5',\n code: 'Digit5',\n },\n {\n key: '6',\n code: 'Digit6',\n },\n {\n key: '7',\n code: 'Digit7',\n },\n {\n key: '8',\n code: 'Digit8',\n },\n {\n key: '9',\n code: 'Digit9',\n },\n];\n\nvar keys = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ArrowDown: ArrowDown,\n ArrowLeft: ArrowLeft,\n ArrowRight: ArrowRight,\n ArrowUp: ArrowUp,\n Backspace: Backspace,\n Delete: Delete,\n DigitKeys: DigitKeys,\n End: End,\n Enter: Enter,\n Escape: Escape,\n Home: Home,\n PageDown: PageDown,\n PageUp: PageUp,\n Space: Space,\n Tab: Tab\n});\n\nexport { ArrowUp as A, Backspace as B, Delete as D, Escape as E, Home as H, PageUp as P, Space as S, Tab as T, ArrowRight as a, ArrowDown as b, ArrowLeft as c, PageDown as d, Enter as e, End as f, DigitKeys as g, keys as k };\n//# sourceMappingURL=keys-BQYfE7yD.js.map\n","const FLOAT_COMPARISON_THRESHOLD = 0.5;\nconst FOCUSABLE_SELECTOR = `\n button:not([disabled]):not([tabindex=\"-1\"]),\n a[href],\n input:not([disabled]):not([tabindex=\"-1\"]),\n select:not([disabled]):not([tabindex=\"-1\"]),\n textarea:not([disabled]):not([tabindex=\"-1\"]),\n [tabindex]:not([tabindex=\"-1\"])\n`;\nconst findAllFocusableElements = (container) => {\n return [...container.querySelectorAll(FOCUSABLE_SELECTOR)];\n};\n/**\n * Находит следующий фокусабельный элемент в контейнере\n * В зависимости от параметра `mode`:\n * `list` — элемент ищется сначала в заданном направлении, потом с противоположной стороны контейнера (т.е. навигация зациклена)\n * `main` — элемент ищется только в заданном направлении относительно таргета\n */\nconst findNextFocusableElement = (container, targetElement, direction, mode = 'main') => {\n if ((mode === 'main' && !targetElement) ||\n (targetElement !== null && (targetElement === container || !container.contains(targetElement)))) {\n return null;\n }\n const focusableElements = findAllFocusableElements(container);\n const targetRect = targetElement?.getBoundingClientRect() ?? null;\n const targetCenterX = targetRect !== null ? Math.round(targetRect.left + targetRect.width / 2) : Number.NaN;\n const targetCenterY = targetRect !== null ? Math.round(targetRect.top + targetRect.height / 2) : Number.NaN;\n let nearestElement = null;\n let minDistance = Infinity;\n let oppositeElement = null;\n let oppositeCoordinate = Number.NaN;\n switch (direction) {\n case 'up':\n oppositeCoordinate = targetRect?.top ?? 0;\n break;\n case 'down':\n oppositeCoordinate = targetRect?.bottom ?? Infinity;\n break;\n case 'left':\n oppositeCoordinate = targetRect?.right ?? 0;\n break;\n case 'right':\n oppositeCoordinate = targetRect?.left ?? Infinity;\n break;\n }\n focusableElements.forEach((element) => {\n if (targetElement === element) {\n return;\n }\n const elementRect = element.getBoundingClientRect();\n const elementCenterX = Math.round(elementRect.left + elementRect.width / 2);\n const elementCenterY = Math.round(elementRect.top + elementRect.height / 2);\n // Ищем ближайший к таргету элемент в заданном направлении\n if (targetRect !== null &&\n !(direction === 'up' && (elementCenterY >= targetCenterY || elementRect.bottom > targetRect.top)) &&\n !(direction === 'down' && (elementCenterY <= targetCenterY || elementRect.top < targetRect.bottom)) &&\n !(direction === 'left' && (elementCenterX >= targetCenterX || elementRect.right > targetRect.left)) &&\n !(direction === 'right' && (elementCenterX <= targetCenterX || elementRect.left < targetRect.right))) {\n let distanceX = Math.abs(targetCenterX - elementCenterX);\n let distanceY = Math.abs(targetCenterY - elementCenterY);\n // Добавляем коэффициенты для соответствующих осей,\n // чтобы сделать элементы в направлении, соответствующем нажатой arrow-клавише, более приоритетными\n if (direction === 'up' || direction === 'down') {\n distanceY *= 0.5;\n }\n else {\n distanceX *= 0.5;\n }\n const distance = Math.hypot(distanceX, distanceY);\n if (distance < minDistance) {\n minDistance = distance;\n nearestElement = element;\n }\n }\n // Ищем ближайший к противоположной стороне элемент\n if (mode === 'list') {\n if (direction === 'up' && elementRect.top - oppositeCoordinate > FLOAT_COMPARISON_THRESHOLD) {\n oppositeElement = element;\n oppositeCoordinate = elementRect.top;\n }\n else if (direction === 'down' && elementRect.bottom - oppositeCoordinate < -FLOAT_COMPARISON_THRESHOLD) {\n oppositeElement = element;\n oppositeCoordinate = elementRect.bottom;\n }\n else if (direction === 'left' && elementRect.right - oppositeCoordinate > FLOAT_COMPARISON_THRESHOLD) {\n oppositeElement = element;\n oppositeCoordinate = elementRect.right;\n }\n else if (direction === 'right' && elementRect.left - oppositeCoordinate < -FLOAT_COMPARISON_THRESHOLD) {\n oppositeElement = element;\n oppositeCoordinate = elementRect.left;\n }\n }\n });\n return nearestElement ?? oppositeElement;\n};\n\nexport { FOCUSABLE_SELECTOR, findAllFocusableElements, findNextFocusableElement };\n//# sourceMappingURL=findNextFocusableElement.js.map\n","const keyboardMatch = (event, { key, code }) => {\n return event.key === key || event.code === code;\n};\nconst keyboardMatches = (event, keysToMatch) => {\n for (let i = 0; i < keysToMatch.length; i++) {\n if (keyboardMatch(event, keysToMatch[i])) {\n return true;\n }\n }\n return false;\n};\n\nexport { keyboardMatch, keyboardMatches };\n//# sourceMappingURL=match.js.map\n","import { useRef, useCallback } from 'react';\nimport { findAllFocusableElements, findNextFocusableElement } from './findNextFocusableElement.js';\nimport { T as Tab, A as ArrowUp, a as ArrowRight, b as ArrowDown, c as ArrowLeft } from './keys-BQYfE7yD.js';\nimport { keyboardMatch } from './match.js';\n\nconst TEXT_FIELD_SELECTOR = 'textarea, input:not([type=\"checkbox\"]):not([type=\"radio\"]), [contenteditable=\"true\"]';\nconst isTextElement = (element) => {\n return element?.matches(TEXT_FIELD_SELECTOR) ?? false;\n};\nconst getNavigationDirection = (event, mode = 'main') => {\n if (mode === 'list' && keyboardMatch(event, Tab)) {\n return event.shiftKey ? 'up' : 'down';\n }\n if (keyboardMatch(event, ArrowUp)) {\n return 'up';\n }\n if (keyboardMatch(event, ArrowRight)) {\n return 'right';\n }\n if (keyboardMatch(event, ArrowDown)) {\n return 'down';\n }\n if (keyboardMatch(event, ArrowLeft)) {\n return 'left';\n }\n return null;\n};\nconst handleKeyboardNavigation = (event, container, activeElementOverride = null, mode = 'main') => {\n const activeElement = activeElementOverride ?? document.activeElement;\n if (mode === 'loop') {\n const focusableElements = findAllFocusableElements(container);\n if (keyboardMatch(event, Tab) && focusableElements.length > 1) {\n if ((activeElement === container || activeElement === focusableElements[focusableElements.length - 1]) &&\n !event.shiftKey) {\n event.preventDefault();\n focusableElements[0].focus();\n }\n if ((activeElement === container || activeElement === focusableElements[0]) && event.shiftKey) {\n event.preventDefault();\n focusableElements[focusableElements.length - 1].focus();\n }\n }\n }\n if (mode !== 'loop' && !isTextElement(activeElement)) {\n const direction = getNavigationDirection(event, mode);\n if (direction !== null) {\n const nextFocusableElement = findNextFocusableElement(container, activeElement, direction, mode);\n if (nextFocusableElement !== null) {\n event.preventDefault();\n nextFocusableElement.focus();\n }\n }\n }\n};\n/**\n * Хук для клавиатурной навигации внутри контейнера с использованием клавиш-стрелок и Tab.\n * Поведение зависит от параметра `mode`:\n * `main` — поддерживается навигация стрелками, поведение Tab не переопределяется\n * `list` — поддерживается навигация стрелками, Tab и Shift+Tab работают аналогично ↓ и ↑, навигация зациклена\n * `loop` — навигация стрелками не поддерживается, навигация с помощью Tab и Shift+Tab зациклена\n */\nconst useKeyboardNavigation = (args = {}) => {\n const { mode = 'main', enabled = true, activeElement: activeElementOverride } = args;\n const enabledRef = useRef(enabled);\n enabledRef.current = enabled;\n const activeElementOverrideRef = useRef(activeElementOverride);\n activeElementOverrideRef.current = activeElementOverride;\n const modeRef = useRef(mode);\n modeRef.current = mode;\n const cleanupRef = useRef(null);\n const bindNavigationRef = useCallback((container) => {\n if (!container) {\n cleanupRef.current?.();\n cleanupRef.current = null;\n return;\n }\n const handleKeyDown = (event) => {\n if (enabledRef.current) {\n handleKeyboardNavigation(event, container, activeElementOverrideRef.current, modeRef.current);\n }\n };\n container.addEventListener('keydown', handleKeyDown);\n cleanupRef.current = () => {\n container.removeEventListener('keydown', handleKeyDown);\n };\n }, []);\n return bindNavigationRef;\n};\n\nexport { TEXT_FIELD_SELECTOR, isTextElement, useKeyboardNavigation };\n//# sourceMappingURL=useKeyboardNavigation.js.map\n","import {\n type FC,\n type PropsWithChildren,\n type ReactElement,\n useState,\n CSSProperties,\n useEffect,\n useCallback,\n useRef,\n} from 'react';\nimport { type HTMLMotionProps, motion, useMotionValue, animate } from 'motion/react';\n\nimport { useKeyboardNavigation } from '@hh.ru/magritte-common-keyboard';\nimport { disableScroll } from '@hh.ru/magritte-common-modal-helper';\nimport { useTranslation } from '@hh.ru/magritte-common-use-translation';\nimport { tokenSemanticAnimationTimeMDuration } from '@hh.ru/magritte-design-tokens/types';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { Layer } from '@hh.ru/magritte-ui-layer';\nimport { GalleryItemProps } from '@hh.ru/magritte-ui-media-viewer/internal/GalleryItemBody';\nimport { EASE_BASE } from '@hh.ru/magritte-ui-media-viewer/internal/animations';\nimport {\n createMediaViewerContextValue,\n MediaViewerContext,\n GalleryItemsContext,\n} from '@hh.ru/magritte-ui-media-viewer/internal/context';\nimport { useAutoHideTools } from '@hh.ru/magritte-ui-media-viewer/internal/hooks/useAutoHideTools';\nimport { useSwipeToClose } from '@hh.ru/magritte-ui-media-viewer/internal/hooks/useSwipeToClose';\nimport { useTapToToggleTools } from '@hh.ru/magritte-ui-media-viewer/internal/hooks/useTapToToggleTools';\nimport { useVirtualization } from '@hh.ru/magritte-ui-media-viewer/internal/hooks/useVirtualization';\nimport { clamp, useInitOnce } from '@hh.ru/magritte-ui-media-viewer/internal/utils';\nimport { Footer } from '@hh.ru/magritte-ui-media-viewer/public/Footer';\nimport { Gallery } from '@hh.ru/magritte-ui-media-viewer/public/Gallery';\nimport { GalleryItem } from '@hh.ru/magritte-ui-media-viewer/public/GalleryItem';\nimport { Header } from '@hh.ru/magritte-ui-media-viewer/public/Header';\nimport { Preview, PreviewProps } from '@hh.ru/magritte-ui-media-viewer/public/Preview';\nimport { Toolbar, ToolbarProps } from '@hh.ru/magritte-ui-media-viewer/public/Toolbar';\nimport {\n DesktopTool,\n MobileTool,\n RotateTool,\n CloseTool,\n FullWidthTool,\n} from '@hh.ru/magritte-ui-media-viewer/public/Tools';\n\nimport styles from './media-viewer.less';\n\ninterface MediaViewerCompound {\n Gallery: FC<PropsWithChildren>;\n GalleryItem: FC<GalleryItemProps>;\n Preview: FC<PreviewProps>;\n Toolbar: FC<ToolbarProps>;\n Header: FC<PropsWithChildren>;\n Footer: FC<PropsWithChildren>;\n DesktopTool: FC<PropsWithChildren>;\n MobileTool: FC<PropsWithChildren>;\n RotateTool: FC<PropsWithChildren>;\n CloseTool: FC<PropsWithChildren>;\n FullWidthTool: FC<PropsWithChildren>;\n}\n\nexport const MediaViewer: FC<\n PropsWithChildren<{\n /** Флаг видимости компонента */\n visible: boolean;\n /** Коллбек, вызываемый при закрытии медиавьюера */\n onClose?: VoidFunction;\n }>\n> &\n MediaViewerCompound = ({ children, visible, onClose }) => {\n const [isVisible, setIsVisible] = useState(visible);\n const currentSlideIndex = useMotionValue<number>(0);\n const closeProgress = useMotionValue(isVisible ? 0 : 1);\n const visibleRange = useVirtualization(4, currentSlideIndex);\n const closeCallbackRef = useRef(onClose);\n closeCallbackRef.current = onClose;\n const scrollEnableRef = useRef<VoidFunction | null>(null);\n\n const close = useInitOnce(() => () => {\n if (closeProgress.get() >= 1) {\n closeProgress.set(1);\n setIsVisible(false);\n scrollEnableRef.current?.();\n scrollEnableRef.current = null;\n currentSlideIndex.set(0);\n closeCallbackRef.current?.();\n return;\n }\n const delta = Math.abs(closeProgress.get() - 1);\n const animationDuration = delta * (tokenSemanticAnimationTimeMDuration / 1000);\n animate(closeProgress, 1, {\n duration: animationDuration,\n ease: EASE_BASE,\n onComplete: () => {\n setIsVisible(false);\n scrollEnableRef.current?.();\n scrollEnableRef.current = null;\n currentSlideIndex.set(0);\n closeCallbackRef.current?.();\n },\n });\n });\n const rootRef = useKeyboardNavigation({ mode: 'loop', enabled: isVisible });\n\n const contextValue = useInitOnce(() => {\n const contextValue = createMediaViewerContextValue(visibleRange, currentSlideIndex, closeProgress, close);\n contextValue.onRequestClose = () => {\n setIsVisible(false);\n };\n return contextValue;\n });\n\n const keyHandler = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n close();\n return;\n }\n\n const currentSlideIndexRounded = Math.round(currentSlideIndex.get());\n let slideIndex = currentSlideIndexRounded;\n const slidesCount = contextValue.totalSlides.get();\n if (event.key === 'ArrowLeft') {\n slideIndex = clamp(slideIndex - 1, 0, slidesCount - 1);\n }\n if (event.key === 'ArrowRight') {\n slideIndex = clamp(slideIndex + 1, 0, slidesCount - 1);\n }\n if (slideIndex === currentSlideIndexRounded) {\n return;\n }\n\n currentSlideIndex.set(slideIndex);\n },\n [currentSlideIndex, contextValue, close]\n );\n\n useEffect(() => {\n if (visible) {\n document.addEventListener('keydown', keyHandler);\n } else {\n document.removeEventListener('keydown', keyHandler);\n }\n return () => {\n document.removeEventListener('keydown', keyHandler);\n };\n }, [visible, keyHandler]);\n\n const componentDescriptionTrl = useTranslation('MediaViewer', 'componentDescription');\n\n useEffect(() => {\n if (visible && !isVisible) {\n scrollEnableRef.current = disableScroll();\n setIsVisible(true);\n animate(contextValue.closeProgress, 0, {\n duration: tokenSemanticAnimationTimeMDuration / 1000,\n ease: EASE_BASE,\n });\n return;\n }\n\n if (!visible && isVisible) {\n close();\n }\n // нельзя реагировать на изменения isVisible, иначе при закрытии жестом хук будет срабатывать\n // и переоткрывать компонент, хук должен реагировать только на изменения visible пропса\n // eslint-disable-next-line disable-autofix/react-hooks/exhaustive-deps\n }, [visible, contextValue]);\n\n useEffect(\n () => () => {\n scrollEnableRef.current?.();\n scrollEnableRef.current = null;\n },\n []\n );\n\n const { isMobile } = useBreakpoint();\n\n const [bindSwipeToClose, isSwipeClosing] = useSwipeToClose<HTMLDivElement>(contextValue);\n const { onTouchStart, onTouchEnd, onClick } = useTapToToggleTools(contextValue);\n const { onMouseMove, onClick: onDesktopClick } = useAutoHideTools(contextValue);\n\n const [items, setItems] = useState<ReactElement<GalleryItemProps>[]>([]);\n\n if (!isVisible) {\n return null;\n }\n\n return (\n <GalleryItemsContext.Provider value={{ items, setItems }}>\n <MediaViewerContext.Provider value={contextValue}>\n <Layer layer=\"media-viewer\">\n <motion.div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={componentDescriptionTrl}\n className={styles.mediaViewer}\n {...(bindSwipeToClose() as HTMLMotionProps<'div'>)}\n ref={rootRef}\n style={\n {\n '--magritte-ui-media-viewer-close-progress': contextValue.closeProgress,\n '--magritte-ui-media-viewer-hide-tools-progress': contextValue.hideToolsProgress,\n ...(!isSwipeClosing\n ? { '--magritte-ui-media-viewer-image-close-progress': contextValue.closeProgress }\n : {}),\n } as CSSProperties\n }\n onTouchStart={isMobile ? onTouchStart : undefined}\n onTouchEnd={isMobile ? onTouchEnd : undefined}\n onClick={isMobile ? onClick : onDesktopClick}\n onMouseMove={!isMobile ? onMouseMove : undefined}\n >\n {children}\n </motion.div>\n </Layer>\n </MediaViewerContext.Provider>\n </GalleryItemsContext.Provider>\n );\n};\n\nMediaViewer.Header = Header;\nMediaViewer.Footer = Footer;\nMediaViewer.Gallery = Gallery;\nMediaViewer.GalleryItem = GalleryItem;\nMediaViewer.Preview = Preview;\nMediaViewer.Toolbar = Toolbar;\nMediaViewer.DesktopTool = DesktopTool;\nMediaViewer.MobileTool = MobileTool;\nMediaViewer.RotateTool = RotateTool;\nMediaViewer.CloseTool = CloseTool;\nMediaViewer.FullWidthTool = FullWidthTool;\n\nMediaViewer.displayName = 'MediaViewer';\n"],"names":["_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"MediaViewer.js","sources":["../../common/keyboard/lib/keys-BQYfE7yD.js","../../common/keyboard/lib/findNextFocusableElement.js","../../common/keyboard/lib/match.js","../../common/keyboard/lib/useKeyboardNavigation.js","src/public/MediaViewer.tsx"],"sourcesContent":["const Escape = {\n key: 'Escape',\n code: 'Esc',\n};\nconst PageUp = {\n key: 'PageUp',\n code: 'Numpad9',\n};\nconst PageDown = {\n key: 'PageDown',\n code: 'Numpad3',\n};\nconst Enter = {\n key: 'Enter',\n code: 'Enter',\n};\nconst Space = {\n key: ' ',\n code: 'Space',\n};\nconst Backspace = {\n key: 'Backspace',\n code: 'Backspace',\n};\nconst Delete = {\n key: 'Delete',\n code: 'Delete',\n};\nconst Home = {\n key: 'Home',\n code: 'Home',\n};\nconst End = {\n key: 'End',\n code: 'End',\n};\nconst ArrowRight = {\n key: 'ArrowRight',\n code: 'ArrowRight',\n};\nconst ArrowLeft = {\n key: 'ArrowLeft',\n code: 'ArrowLeft',\n};\nconst ArrowUp = {\n key: 'ArrowUp',\n code: 'ArrowUp',\n};\nconst ArrowDown = {\n key: 'ArrowDown',\n code: 'ArrowDown',\n};\nconst Tab = {\n key: 'Tab',\n code: 'Tab',\n};\nconst DigitKeys = [\n {\n key: '0',\n code: 'Digit0',\n },\n {\n key: '1',\n code: 'Digit1',\n },\n {\n key: '2',\n code: 'Digit2',\n },\n {\n key: '3',\n code: 'Digit3',\n },\n {\n key: '4',\n code: 'Digit4',\n },\n {\n key: '5',\n code: 'Digit5',\n },\n {\n key: '6',\n code: 'Digit6',\n },\n {\n key: '7',\n code: 'Digit7',\n },\n {\n key: '8',\n code: 'Digit8',\n },\n {\n key: '9',\n code: 'Digit9',\n },\n];\n\nvar keys = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ArrowDown: ArrowDown,\n ArrowLeft: ArrowLeft,\n ArrowRight: ArrowRight,\n ArrowUp: ArrowUp,\n Backspace: Backspace,\n Delete: Delete,\n DigitKeys: DigitKeys,\n End: End,\n Enter: Enter,\n Escape: Escape,\n Home: Home,\n PageDown: PageDown,\n PageUp: PageUp,\n Space: Space,\n Tab: Tab\n});\n\nexport { ArrowUp as A, Backspace as B, Delete as D, Escape as E, Home as H, PageUp as P, Space as S, Tab as T, ArrowRight as a, ArrowDown as b, ArrowLeft as c, PageDown as d, Enter as e, End as f, DigitKeys as g, keys as k };\n//# sourceMappingURL=keys-BQYfE7yD.js.map\n","const FLOAT_COMPARISON_THRESHOLD = 0.5;\nconst FOCUSABLE_SELECTOR = `\n button:not([disabled]):not([tabindex=\"-1\"]),\n a[href],\n input:not([disabled]):not([tabindex=\"-1\"]):not([type=\"hidden\"]),\n select:not([disabled]):not([tabindex=\"-1\"]),\n textarea:not([disabled]):not([tabindex=\"-1\"]),\n [tabindex]:not([tabindex=\"-1\"])\n`;\nconst findAllFocusableElements = (container) => {\n return [...container.querySelectorAll(FOCUSABLE_SELECTOR)];\n};\n/**\n * Находит следующий фокусабельный элемент в контейнере\n * В зависимости от параметра `mode`:\n * `list` — элемент ищется сначала в заданном направлении, потом с противоположной стороны контейнера (т.е. навигация зациклена)\n * `main` — элемент ищется только в заданном направлении относительно таргета\n */\nconst findNextFocusableElement = (container, targetElement, direction, mode = 'main') => {\n if ((mode === 'main' && !targetElement) ||\n (targetElement !== null && (targetElement === container || !container.contains(targetElement)))) {\n return null;\n }\n const focusableElements = findAllFocusableElements(container);\n const targetRect = targetElement?.getBoundingClientRect() ?? null;\n const targetCenterX = targetRect !== null ? Math.round(targetRect.left + targetRect.width / 2) : Number.NaN;\n const targetCenterY = targetRect !== null ? Math.round(targetRect.top + targetRect.height / 2) : Number.NaN;\n let nearestElement = null;\n let minDistance = Infinity;\n let oppositeElement = null;\n let oppositeCoordinate = Number.NaN;\n switch (direction) {\n case 'up':\n oppositeCoordinate = targetRect?.top ?? 0;\n break;\n case 'down':\n oppositeCoordinate = targetRect?.bottom ?? Infinity;\n break;\n case 'left':\n oppositeCoordinate = targetRect?.right ?? 0;\n break;\n case 'right':\n oppositeCoordinate = targetRect?.left ?? Infinity;\n break;\n }\n focusableElements.forEach((element) => {\n if (targetElement === element) {\n return;\n }\n const elementRect = element.getBoundingClientRect();\n const elementCenterX = Math.round(elementRect.left + elementRect.width / 2);\n const elementCenterY = Math.round(elementRect.top + elementRect.height / 2);\n // Ищем ближайший к таргету элемент в заданном направлении\n if (targetRect !== null &&\n !(direction === 'up' && (elementCenterY >= targetCenterY || elementRect.bottom > targetRect.top)) &&\n !(direction === 'down' && (elementCenterY <= targetCenterY || elementRect.top < targetRect.bottom)) &&\n !(direction === 'left' && (elementCenterX >= targetCenterX || elementRect.right > targetRect.left)) &&\n !(direction === 'right' && (elementCenterX <= targetCenterX || elementRect.left < targetRect.right))) {\n let distanceX = Math.abs(targetCenterX - elementCenterX);\n let distanceY = Math.abs(targetCenterY - elementCenterY);\n // Добавляем коэффициенты для соответствующих осей,\n // чтобы сделать элементы в направлении, соответствующем нажатой arrow-клавише, более приоритетными\n if (direction === 'up' || direction === 'down') {\n distanceY *= 0.5;\n }\n else {\n distanceX *= 0.5;\n }\n const distance = Math.hypot(distanceX, distanceY);\n if (distance < minDistance) {\n minDistance = distance;\n nearestElement = element;\n }\n }\n // Ищем ближайший к противоположной стороне элемент\n if (mode === 'list') {\n if (direction === 'up' && elementRect.top - oppositeCoordinate > FLOAT_COMPARISON_THRESHOLD) {\n oppositeElement = element;\n oppositeCoordinate = elementRect.top;\n }\n else if (direction === 'down' && elementRect.bottom - oppositeCoordinate < -FLOAT_COMPARISON_THRESHOLD) {\n oppositeElement = element;\n oppositeCoordinate = elementRect.bottom;\n }\n else if (direction === 'left' && elementRect.right - oppositeCoordinate > FLOAT_COMPARISON_THRESHOLD) {\n oppositeElement = element;\n oppositeCoordinate = elementRect.right;\n }\n else if (direction === 'right' && elementRect.left - oppositeCoordinate < -FLOAT_COMPARISON_THRESHOLD) {\n oppositeElement = element;\n oppositeCoordinate = elementRect.left;\n }\n }\n });\n return nearestElement ?? oppositeElement;\n};\n\nexport { FOCUSABLE_SELECTOR, findAllFocusableElements, findNextFocusableElement };\n//# sourceMappingURL=findNextFocusableElement.js.map\n","const keyboardMatch = (event, { key, code }) => {\n return event.key === key || event.code === code;\n};\nconst keyboardMatches = (event, keysToMatch) => {\n for (let i = 0; i < keysToMatch.length; i++) {\n if (keyboardMatch(event, keysToMatch[i])) {\n return true;\n }\n }\n return false;\n};\n\nexport { keyboardMatch, keyboardMatches };\n//# sourceMappingURL=match.js.map\n","import { useRef, useCallback } from 'react';\nimport { findAllFocusableElements, findNextFocusableElement } from './findNextFocusableElement.js';\nimport { T as Tab, A as ArrowUp, a as ArrowRight, b as ArrowDown, c as ArrowLeft } from './keys-BQYfE7yD.js';\nimport { keyboardMatch } from './match.js';\n\nconst TEXT_FIELD_SELECTOR = 'textarea, input:not([type=\"checkbox\"]):not([type=\"radio\"]), [contenteditable=\"true\"]';\nconst isTextElement = (element) => {\n return element?.matches(TEXT_FIELD_SELECTOR) ?? false;\n};\nconst getNavigationDirection = (event, mode = 'main') => {\n if (mode === 'list' && keyboardMatch(event, Tab)) {\n return event.shiftKey ? 'up' : 'down';\n }\n if (keyboardMatch(event, ArrowUp)) {\n return 'up';\n }\n if (keyboardMatch(event, ArrowRight)) {\n return 'right';\n }\n if (keyboardMatch(event, ArrowDown)) {\n return 'down';\n }\n if (keyboardMatch(event, ArrowLeft)) {\n return 'left';\n }\n return null;\n};\nconst handleKeyboardNavigation = (event, container, activeElementOverride = null, mode = 'main') => {\n const activeElement = activeElementOverride ?? document.activeElement;\n if (mode === 'loop') {\n const focusableElements = findAllFocusableElements(container);\n if (keyboardMatch(event, Tab) && focusableElements.length > 1) {\n if ((activeElement === container || activeElement === focusableElements[focusableElements.length - 1]) &&\n !event.shiftKey) {\n event.preventDefault();\n focusableElements[0].focus();\n }\n if ((activeElement === container || activeElement === focusableElements[0]) && event.shiftKey) {\n event.preventDefault();\n focusableElements[focusableElements.length - 1].focus();\n }\n }\n }\n if (mode !== 'loop' && !isTextElement(activeElement)) {\n const direction = getNavigationDirection(event, mode);\n if (direction !== null) {\n const nextFocusableElement = findNextFocusableElement(container, activeElement, direction, mode);\n if (nextFocusableElement !== null) {\n event.preventDefault();\n nextFocusableElement.focus();\n }\n }\n }\n};\n/**\n * Хук для клавиатурной навигации внутри контейнера с использованием клавиш-стрелок и Tab.\n * Поведение зависит от параметра `mode`:\n * `main` — поддерживается навигация стрелками, поведение Tab не переопределяется\n * `list` — поддерживается навигация стрелками, Tab и Shift+Tab работают аналогично ↓ и ↑, навигация зациклена\n * `loop` — навигация стрелками не поддерживается, навигация с помощью Tab и Shift+Tab зациклена\n */\nconst useKeyboardNavigation = (args = {}) => {\n const { mode = 'main', enabled = true, activeElement: activeElementOverride } = args;\n const enabledRef = useRef(enabled);\n enabledRef.current = enabled;\n const activeElementOverrideRef = useRef(activeElementOverride);\n activeElementOverrideRef.current = activeElementOverride;\n const modeRef = useRef(mode);\n modeRef.current = mode;\n const cleanupRef = useRef(null);\n const bindNavigationRef = useCallback((container) => {\n if (!container) {\n cleanupRef.current?.();\n cleanupRef.current = null;\n return;\n }\n const handleKeyDown = (event) => {\n if (enabledRef.current) {\n handleKeyboardNavigation(event, container, activeElementOverrideRef.current, modeRef.current);\n }\n };\n container.addEventListener('keydown', handleKeyDown);\n cleanupRef.current = () => {\n container.removeEventListener('keydown', handleKeyDown);\n };\n }, []);\n return bindNavigationRef;\n};\n\nexport { TEXT_FIELD_SELECTOR, isTextElement, useKeyboardNavigation };\n//# sourceMappingURL=useKeyboardNavigation.js.map\n","import {\n type FC,\n type PropsWithChildren,\n type ReactElement,\n useState,\n CSSProperties,\n useEffect,\n useCallback,\n useRef,\n} from 'react';\nimport { type HTMLMotionProps, motion, useMotionValue, animate } from 'motion/react';\n\nimport { useKeyboardNavigation } from '@hh.ru/magritte-common-keyboard';\nimport { disableScroll } from '@hh.ru/magritte-common-modal-helper';\nimport { useTranslation } from '@hh.ru/magritte-common-use-translation';\nimport { tokenSemanticAnimationTimeMDuration } from '@hh.ru/magritte-design-tokens/types';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { Layer } from '@hh.ru/magritte-ui-layer';\nimport { GalleryItemProps } from '@hh.ru/magritte-ui-media-viewer/internal/GalleryItemBody';\nimport { EASE_BASE } from '@hh.ru/magritte-ui-media-viewer/internal/animations';\nimport {\n createMediaViewerContextValue,\n MediaViewerContext,\n GalleryItemsContext,\n} from '@hh.ru/magritte-ui-media-viewer/internal/context';\nimport { useAutoHideTools } from '@hh.ru/magritte-ui-media-viewer/internal/hooks/useAutoHideTools';\nimport { useSwipeToClose } from '@hh.ru/magritte-ui-media-viewer/internal/hooks/useSwipeToClose';\nimport { useTapToToggleTools } from '@hh.ru/magritte-ui-media-viewer/internal/hooks/useTapToToggleTools';\nimport { useVirtualization } from '@hh.ru/magritte-ui-media-viewer/internal/hooks/useVirtualization';\nimport { clamp, useInitOnce } from '@hh.ru/magritte-ui-media-viewer/internal/utils';\nimport { Footer } from '@hh.ru/magritte-ui-media-viewer/public/Footer';\nimport { Gallery } from '@hh.ru/magritte-ui-media-viewer/public/Gallery';\nimport { GalleryItem } from '@hh.ru/magritte-ui-media-viewer/public/GalleryItem';\nimport { Header } from '@hh.ru/magritte-ui-media-viewer/public/Header';\nimport { Preview, PreviewProps } from '@hh.ru/magritte-ui-media-viewer/public/Preview';\nimport { Toolbar, ToolbarProps } from '@hh.ru/magritte-ui-media-viewer/public/Toolbar';\nimport {\n DesktopTool,\n MobileTool,\n RotateTool,\n CloseTool,\n FullWidthTool,\n} from '@hh.ru/magritte-ui-media-viewer/public/Tools';\n\nimport styles from './media-viewer.less';\n\ninterface MediaViewerCompound {\n Gallery: FC<PropsWithChildren>;\n GalleryItem: FC<GalleryItemProps>;\n Preview: FC<PreviewProps>;\n Toolbar: FC<ToolbarProps>;\n Header: FC<PropsWithChildren>;\n Footer: FC<PropsWithChildren>;\n DesktopTool: FC<PropsWithChildren>;\n MobileTool: FC<PropsWithChildren>;\n RotateTool: FC<PropsWithChildren>;\n CloseTool: FC<PropsWithChildren>;\n FullWidthTool: FC<PropsWithChildren>;\n}\n\nexport const MediaViewer: FC<\n PropsWithChildren<{\n /** Флаг видимости компонента */\n visible: boolean;\n /** Коллбек, вызываемый при закрытии медиавьюера */\n onClose?: VoidFunction;\n }>\n> &\n MediaViewerCompound = ({ children, visible, onClose }) => {\n const [isVisible, setIsVisible] = useState(visible);\n const currentSlideIndex = useMotionValue<number>(0);\n const closeProgress = useMotionValue(isVisible ? 0 : 1);\n const visibleRange = useVirtualization(4, currentSlideIndex);\n const closeCallbackRef = useRef(onClose);\n closeCallbackRef.current = onClose;\n const scrollEnableRef = useRef<VoidFunction | null>(null);\n\n const close = useInitOnce(() => () => {\n if (closeProgress.get() >= 1) {\n closeProgress.set(1);\n setIsVisible(false);\n scrollEnableRef.current?.();\n scrollEnableRef.current = null;\n currentSlideIndex.set(0);\n closeCallbackRef.current?.();\n return;\n }\n const delta = Math.abs(closeProgress.get() - 1);\n const animationDuration = delta * (tokenSemanticAnimationTimeMDuration / 1000);\n animate(closeProgress, 1, {\n duration: animationDuration,\n ease: EASE_BASE,\n onComplete: () => {\n setIsVisible(false);\n scrollEnableRef.current?.();\n scrollEnableRef.current = null;\n currentSlideIndex.set(0);\n closeCallbackRef.current?.();\n },\n });\n });\n const rootRef = useKeyboardNavigation({ mode: 'loop', enabled: isVisible });\n\n const contextValue = useInitOnce(() => {\n const contextValue = createMediaViewerContextValue(visibleRange, currentSlideIndex, closeProgress, close);\n contextValue.onRequestClose = () => {\n setIsVisible(false);\n };\n return contextValue;\n });\n\n const keyHandler = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n close();\n return;\n }\n\n const currentSlideIndexRounded = Math.round(currentSlideIndex.get());\n let slideIndex = currentSlideIndexRounded;\n const slidesCount = contextValue.totalSlides.get();\n if (event.key === 'ArrowLeft') {\n slideIndex = clamp(slideIndex - 1, 0, slidesCount - 1);\n }\n if (event.key === 'ArrowRight') {\n slideIndex = clamp(slideIndex + 1, 0, slidesCount - 1);\n }\n if (slideIndex === currentSlideIndexRounded) {\n return;\n }\n\n currentSlideIndex.set(slideIndex);\n },\n [currentSlideIndex, contextValue, close]\n );\n\n useEffect(() => {\n if (visible) {\n document.addEventListener('keydown', keyHandler);\n } else {\n document.removeEventListener('keydown', keyHandler);\n }\n return () => {\n document.removeEventListener('keydown', keyHandler);\n };\n }, [visible, keyHandler]);\n\n const componentDescriptionTrl = useTranslation('MediaViewer', 'componentDescription');\n\n useEffect(() => {\n if (visible && !isVisible) {\n scrollEnableRef.current = disableScroll();\n setIsVisible(true);\n animate(contextValue.closeProgress, 0, {\n duration: tokenSemanticAnimationTimeMDuration / 1000,\n ease: EASE_BASE,\n });\n return;\n }\n\n if (!visible && isVisible) {\n close();\n }\n // нельзя реагировать на изменения isVisible, иначе при закрытии жестом хук будет срабатывать\n // и переоткрывать компонент, хук должен реагировать только на изменения visible пропса\n // eslint-disable-next-line disable-autofix/react-hooks/exhaustive-deps\n }, [visible, contextValue]);\n\n useEffect(\n () => () => {\n scrollEnableRef.current?.();\n scrollEnableRef.current = null;\n },\n []\n );\n\n const { isMobile } = useBreakpoint();\n\n const [bindSwipeToClose, isSwipeClosing] = useSwipeToClose<HTMLDivElement>(contextValue);\n const { onTouchStart, onTouchEnd, onClick } = useTapToToggleTools(contextValue);\n const { onMouseMove, onClick: onDesktopClick } = useAutoHideTools(contextValue);\n\n const [items, setItems] = useState<ReactElement<GalleryItemProps>[]>([]);\n\n if (!isVisible) {\n return null;\n }\n\n return (\n <GalleryItemsContext.Provider value={{ items, setItems }}>\n <MediaViewerContext.Provider value={contextValue}>\n <Layer layer=\"media-viewer\">\n <motion.div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={componentDescriptionTrl}\n className={styles.mediaViewer}\n {...(bindSwipeToClose() as HTMLMotionProps<'div'>)}\n ref={rootRef}\n style={\n {\n '--magritte-ui-media-viewer-close-progress': contextValue.closeProgress,\n '--magritte-ui-media-viewer-hide-tools-progress': contextValue.hideToolsProgress,\n ...(!isSwipeClosing\n ? { '--magritte-ui-media-viewer-image-close-progress': contextValue.closeProgress }\n : {}),\n } as CSSProperties\n }\n onTouchStart={isMobile ? onTouchStart : undefined}\n onTouchEnd={isMobile ? onTouchEnd : undefined}\n onClick={isMobile ? onClick : onDesktopClick}\n onMouseMove={!isMobile ? onMouseMove : undefined}\n >\n {children}\n </motion.div>\n </Layer>\n </MediaViewerContext.Provider>\n </GalleryItemsContext.Provider>\n );\n};\n\nMediaViewer.Header = Header;\nMediaViewer.Footer = Footer;\nMediaViewer.Gallery = Gallery;\nMediaViewer.GalleryItem = GalleryItem;\nMediaViewer.Preview = Preview;\nMediaViewer.Toolbar = Toolbar;\nMediaViewer.DesktopTool = DesktopTool;\nMediaViewer.MobileTool = MobileTool;\nMediaViewer.RotateTool = RotateTool;\nMediaViewer.CloseTool = CloseTool;\nMediaViewer.FullWidthTool = FullWidthTool;\n\nMediaViewer.displayName = 'MediaViewer';\n"],"names":["_jsx"],"mappings":"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"}
package/public/Preview.js CHANGED
@@ -12,7 +12,7 @@ import { EASE_BASE } from '../internal/animations.js';
12
12
  import { useMediaViewerContext, useGalleryItemsContext, PreviewContext } from '../internal/context.js';
13
13
  import { useVirtualization } from '../internal/hooks/useVirtualization.js';
14
14
  import { useDetectDiscreteChange, useInitOnce, clamp } from '../internal/utils.js';
15
- import { s as styles } from '../media-viewer-DZtR9S9t.js';
15
+ import { s as styles } from '../media-viewer-C7hIa-QB.js';
16
16
  import 'classnames';
17
17
  import '@hh.ru/magritte-common-use-translation';
18
18
  import '@hh.ru/magritte-ui-bottom-sheet';
package/public/Toolbar.js CHANGED
@@ -3,7 +3,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import classNames from 'classnames';
4
4
  import { Counter } from '../internal/Counter.js';
5
5
  import { useGalleryItemsContext } from '../internal/context.js';
6
- import { s as styles } from '../media-viewer-DZtR9S9t.js';
6
+ import { s as styles } from '../media-viewer-C7hIa-QB.js';
7
7
  import 'react';
8
8
  import 'motion/react';
9
9
  import '@hh.ru/magritte-common-use-translation';
@@ -1,5 +0,0 @@
1
- import './index.css';
2
- var styles = {"media-viewer":"magritte-media-viewer___KnrXP_1-2-43","mediaViewer":"magritte-media-viewer___KnrXP_1-2-43","gallery-placeholder":"magritte-gallery-placeholder___rUoGL_1-2-43","galleryPlaceholder":"magritte-gallery-placeholder___rUoGL_1-2-43","media-viewer-gallery":"magritte-media-viewer-gallery___P0SnN_1-2-43","mediaViewerGallery":"magritte-media-viewer-gallery___P0SnN_1-2-43","gallery-item":"magritte-gallery-item___Js0Z5_1-2-43","galleryItem":"magritte-gallery-item___Js0Z5_1-2-43","gallery-item-transform-container":"magritte-gallery-item-transform-container___N8-sA_1-2-43","galleryItemTransformContainer":"magritte-gallery-item-transform-container___N8-sA_1-2-43","preview-counter":"magritte-preview-counter___uP2Hc_1-2-43","previewCounter":"magritte-preview-counter___uP2Hc_1-2-43","with-description":"magritte-with-description___-w7ld_1-2-43","withDescription":"magritte-with-description___-w7ld_1-2-43","counter-number":"magritte-counter-number___gUpMp_1-2-43","counterNumber":"magritte-counter-number___gUpMp_1-2-43","no-description-placeholder":"magritte-no-description-placeholder___qc6h2_1-2-43","noDescriptionPlaceholder":"magritte-no-description-placeholder___qc6h2_1-2-43","preview-zoom-control":"magritte-preview-zoom-control___026jA_1-2-43","previewZoomControl":"magritte-preview-zoom-control___026jA_1-2-43","preview-container":"magritte-preview-container___nwjNY_1-2-43","previewContainer":"magritte-preview-container___nwjNY_1-2-43","preview":"magritte-preview___0Ge4C_1-2-43","preview-list":"magritte-preview-list___SAXLZ_1-2-43","previewList":"magritte-preview-list___SAXLZ_1-2-43","preview-item":"magritte-preview-item___gz5f2_1-2-43","previewItem":"magritte-preview-item___gz5f2_1-2-43","preview-item-container":"magritte-preview-item-container___JDVsk_1-2-43","previewItemContainer":"magritte-preview-item-container___JDVsk_1-2-43","media-viewer-toolbar":"magritte-media-viewer-toolbar___2C8nr_1-2-43","mediaViewerToolbar":"magritte-media-viewer-toolbar___2C8nr_1-2-43","no-description":"magritte-no-description___NebrT_1-2-43","noDescription":"magritte-no-description___NebrT_1-2-43","media-viewer-toolbar-left":"magritte-media-viewer-toolbar-left___YzkJt_1-2-43","mediaViewerToolbarLeft":"magritte-media-viewer-toolbar-left___YzkJt_1-2-43","media-viewer-toolbar-right":"magritte-media-viewer-toolbar-right___kBER9_1-2-43","mediaViewerToolbarRight":"magritte-media-viewer-toolbar-right___kBER9_1-2-43","prev-button":"magritte-prev-button___WMYjR_1-2-43","prevButton":"magritte-prev-button___WMYjR_1-2-43","next-button":"magritte-next-button___f8hJT_1-2-43","nextButton":"magritte-next-button___f8hJT_1-2-43","slide-button":"magritte-slide-button___sY8LB_1-2-43","slideButton":"magritte-slide-button___sY8LB_1-2-43","preview-placeholder":"magritte-preview-placeholder___yuhW1_1-2-43","previewPlaceholder":"magritte-preview-placeholder___yuhW1_1-2-43","gallery-item-loader":"magritte-gallery-item-loader___70TDe_1-2-43","galleryItemLoader":"magritte-gallery-item-loader___70TDe_1-2-43","gallery-item-error-container":"magritte-gallery-item-error-container___Z-HyZ_1-2-43","galleryItemErrorContainer":"magritte-gallery-item-error-container___Z-HyZ_1-2-43","description-bottom-sheet-content":"magritte-description-bottom-sheet-content___swnEV_1-2-43","descriptionBottomSheetContent":"magritte-description-bottom-sheet-content___swnEV_1-2-43","header":"magritte-header___egZXt_1-2-43","footer":"magritte-footer___rOH-M_1-2-43","description":"magritte-description___dYc-E_1-2-43"};
3
-
4
- export { styles as s };
5
- //# sourceMappingURL=media-viewer-DZtR9S9t.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"media-viewer-DZtR9S9t.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}