@hh.ru/magritte-ui-media-viewer 1.3.47 → 1.3.49

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
@@ -15,7 +15,7 @@
15
15
  .magritte-night-theme{
16
16
  --magritte-color-component-skeleton-background-content-v26-0-2:#5e5e5e3d;
17
17
  }
18
- .magritte-media-viewer___KnrXP_1-3-47{
18
+ .magritte-media-viewer___KnrXP_1-3-49{
19
19
  position:fixed;
20
20
  inset:0;
21
21
  display:grid;
@@ -27,7 +27,7 @@
27
27
  --media-viewer-background-opacity:calc(1 - var(--magritte-ui-media-viewer-close-progress));
28
28
  --magritte-ui-nav-bar-background-color-override:var(--magritte-color-background-overlay-toolbar-v26-0-2);
29
29
  }
30
- .magritte-media-viewer___KnrXP_1-3-47::before{
30
+ .magritte-media-viewer___KnrXP_1-3-49::before{
31
31
  content:'';
32
32
  position:absolute;
33
33
  inset:0;
@@ -35,13 +35,13 @@
35
35
  opacity:var(--media-viewer-background-opacity);
36
36
  pointer-events:none;
37
37
  }
38
- .magritte-gallery-placeholder___rUoGL_1-3-47{
38
+ .magritte-gallery-placeholder___rUoGL_1-3-49{
39
39
  display:flex;
40
40
  align-items:stretch;
41
41
  grid-row:2;
42
42
  min-height:0;
43
43
  }
44
- .magritte-media-viewer-gallery___P0SnN_1-3-47{
44
+ .magritte-media-viewer-gallery___P0SnN_1-3-49{
45
45
  display:grid;
46
46
  flex-grow:1;
47
47
  contain:layout size;
@@ -50,16 +50,16 @@
50
50
  inset:0;
51
51
  }
52
52
  @media (min-width: 1020px){
53
- body.magritte-old-layout .magritte-media-viewer-gallery___P0SnN_1-3-47{
53
+ body.magritte-old-layout .magritte-media-viewer-gallery___P0SnN_1-3-49{
54
54
  position:relative;
55
55
  }
56
56
  }
57
57
  @media (min-width: 1024px){
58
- body:not(.magritte-old-layout) .magritte-media-viewer-gallery___P0SnN_1-3-47{
58
+ body:not(.magritte-old-layout) .magritte-media-viewer-gallery___P0SnN_1-3-49{
59
59
  position:relative;
60
60
  }
61
61
  }
62
- .magritte-gallery-item___Js0Z5_1-3-47{
62
+ .magritte-gallery-item___Js0Z5_1-3-49{
63
63
  position:relative;
64
64
  grid-area:1 / 1;
65
65
  contain:size;
@@ -68,7 +68,7 @@
68
68
  overflow-y:visible;
69
69
  opacity:calc(1 - var(--magritte-ui-media-viewer-image-close-progress, 0));
70
70
  }
71
- .magritte-gallery-item-transform-container___N8-sA_1-3-47{
71
+ .magritte-gallery-item-transform-container___N8-sA_1-3-49{
72
72
  position:absolute;
73
73
  top:50%;
74
74
  left:50%;
@@ -76,37 +76,37 @@
76
76
  will-change:transform;
77
77
  touch-action:none;
78
78
  }
79
- .magritte-preview-counter___uP2Hc_1-3-47{
79
+ .magritte-preview-counter___uP2Hc_1-3-49{
80
80
  min-width:0;
81
81
  text-align:center;
82
82
  }
83
83
  @media (min-width: 1020px){
84
- body.magritte-old-layout .magritte-preview-counter___uP2Hc_1-3-47{
84
+ body.magritte-old-layout .magritte-preview-counter___uP2Hc_1-3-49{
85
85
  text-align:left;
86
86
  }
87
87
  }
88
88
  @media (min-width: 1024px){
89
- body:not(.magritte-old-layout) .magritte-preview-counter___uP2Hc_1-3-47{
89
+ body:not(.magritte-old-layout) .magritte-preview-counter___uP2Hc_1-3-49{
90
90
  text-align:left;
91
91
  }
92
92
  }
93
- .magritte-preview-counter___uP2Hc_1-3-47.magritte-with-description___-w7ld_1-3-47{
93
+ .magritte-preview-counter___uP2Hc_1-3-49.magritte-with-description___-w7ld_1-3-49{
94
94
  cursor:pointer;
95
95
  }
96
- .magritte-counter-number___gUpMp_1-3-47{
96
+ .magritte-counter-number___gUpMp_1-3-49{
97
97
  display:block;
98
98
  transform:translateY(calc(18px * 0.5));
99
99
  transition:transform var(--magritte-semantic-animation-time-m-duration-v26-0-2) var(--magritte-semantic-animation-ease-base-timing-function-v26-0-2);
100
100
  }
101
- .magritte-with-description___-w7ld_1-3-47 .magritte-counter-number___gUpMp_1-3-47{
101
+ .magritte-with-description___-w7ld_1-3-49 .magritte-counter-number___gUpMp_1-3-49{
102
102
  transform:translateY(0);
103
103
  }
104
- .magritte-no-description-placeholder___qc6h2_1-3-47{
104
+ .magritte-no-description-placeholder___qc6h2_1-3-49{
105
105
  display:block;
106
106
  height:18px;
107
107
  padding:0;
108
108
  }
109
- .magritte-preview-zoom-control___026jA_1-3-47{
109
+ .magritte-preview-zoom-control___026jA_1-3-49{
110
110
  display:flex;
111
111
  flex-direction:row;
112
112
  gap:2px;
@@ -114,7 +114,7 @@
114
114
  justify-self:end;
115
115
  grid-column:3;
116
116
  }
117
- .magritte-preview-container___nwjNY_1-3-47{
117
+ .magritte-preview-container___nwjNY_1-3-49{
118
118
  display:grid;
119
119
  grid-template-columns:1fr auto 1fr;
120
120
  gap:16px;
@@ -125,16 +125,16 @@
125
125
  z-index:10;
126
126
  }
127
127
  @media (min-width: 1020px){
128
- body.magritte-old-layout .magritte-preview-container___nwjNY_1-3-47{
128
+ body.magritte-old-layout .magritte-preview-container___nwjNY_1-3-49{
129
129
  padding:16px 24px;
130
130
  }
131
131
  }
132
132
  @media (min-width: 1024px){
133
- body:not(.magritte-old-layout) .magritte-preview-container___nwjNY_1-3-47{
133
+ body:not(.magritte-old-layout) .magritte-preview-container___nwjNY_1-3-49{
134
134
  padding:16px 24px;
135
135
  }
136
136
  }
137
- .magritte-preview___0Ge4C_1-3-47{
137
+ .magritte-preview___0Ge4C_1-3-49{
138
138
  display:flex;
139
139
  flex-direction:row;
140
140
  touch-action:none;
@@ -142,18 +142,18 @@
142
142
  min-width:0;
143
143
  }
144
144
  @media (min-width: 1020px){
145
- body.magritte-old-layout .magritte-preview___0Ge4C_1-3-47{
145
+ body.magritte-old-layout .magritte-preview___0Ge4C_1-3-49{
146
146
  max-width:calc(((40 + 8) * (var(--media-viewer-max-visible-items) - 1) + 80) * 1px);
147
147
  overflow:hidden;
148
148
  }
149
149
  }
150
150
  @media (min-width: 1024px){
151
- body:not(.magritte-old-layout) .magritte-preview___0Ge4C_1-3-47{
151
+ body:not(.magritte-old-layout) .magritte-preview___0Ge4C_1-3-49{
152
152
  max-width:calc(((40 + 8) * (var(--media-viewer-max-visible-items) - 1) + 80) * 1px);
153
153
  overflow:hidden;
154
154
  }
155
155
  }
156
- .magritte-preview-list___SAXLZ_1-3-47{
156
+ .magritte-preview-list___SAXLZ_1-3-49{
157
157
  margin-left:50%;
158
158
  contain:layout paint;
159
159
  display:flex;
@@ -163,18 +163,18 @@
163
163
  flex:0 0 auto;
164
164
  }
165
165
  @media (min-width: 1020px){
166
- body.magritte-old-layout .magritte-preview-list___SAXLZ_1-3-47{
166
+ body.magritte-old-layout .magritte-preview-list___SAXLZ_1-3-49{
167
167
  margin:0;
168
168
  gap:8px;
169
169
  }
170
170
  }
171
171
  @media (min-width: 1024px){
172
- body:not(.magritte-old-layout) .magritte-preview-list___SAXLZ_1-3-47{
172
+ body:not(.magritte-old-layout) .magritte-preview-list___SAXLZ_1-3-49{
173
173
  margin:0;
174
174
  gap:8px;
175
175
  }
176
176
  }
177
- .magritte-preview-item___gz5f2_1-3-47{
177
+ .magritte-preview-item___gz5f2_1-3-49{
178
178
  contain:layout paint size;
179
179
  position:relative;
180
180
  flex-shrink:0;
@@ -188,33 +188,33 @@
188
188
  background-color:var(--magritte-color-component-skeleton-background-content-v26-0-2);
189
189
  }
190
190
  @media (min-width: 1020px){
191
- body.magritte-old-layout .magritte-preview-item___gz5f2_1-3-47{
191
+ body.magritte-old-layout .magritte-preview-item___gz5f2_1-3-49{
192
192
  height:80px;
193
193
  border-radius:8px;
194
194
  }
195
195
  }
196
196
  @media (min-width: 1024px){
197
- body:not(.magritte-old-layout) .magritte-preview-item___gz5f2_1-3-47{
197
+ body:not(.magritte-old-layout) .magritte-preview-item___gz5f2_1-3-49{
198
198
  height:80px;
199
199
  border-radius:8px;
200
200
  }
201
201
  }
202
- .magritte-preview-item-container___JDVsk_1-3-47{
202
+ .magritte-preview-item-container___JDVsk_1-3-49{
203
203
  contain:layout paint size;
204
204
  overflow:hidden;
205
205
  scale:1;
206
206
  }
207
207
  @media (min-width: 1020px){
208
- body.magritte-old-layout .magritte-preview-item-container___JDVsk_1-3-47{
208
+ body.magritte-old-layout .magritte-preview-item-container___JDVsk_1-3-49{
209
209
  scale:1.66666667;
210
210
  }
211
211
  }
212
212
  @media (min-width: 1024px){
213
- body:not(.magritte-old-layout) .magritte-preview-item-container___JDVsk_1-3-47{
213
+ body:not(.magritte-old-layout) .magritte-preview-item-container___JDVsk_1-3-49{
214
214
  scale:1.66666667;
215
215
  }
216
216
  }
217
- .magritte-preview-item-container___JDVsk_1-3-47 *{
217
+ .magritte-preview-item-container___JDVsk_1-3-49 *{
218
218
  touch-action:none;
219
219
  position:absolute;
220
220
  top:0;
@@ -224,7 +224,7 @@
224
224
  height:100%;
225
225
  user-select:none;
226
226
  }
227
- .magritte-media-viewer-toolbar___2C8nr_1-3-47{
227
+ .magritte-media-viewer-toolbar___2C8nr_1-3-49{
228
228
  background:var(--magritte-color-background-overlay-toolbar-v26-0-2);
229
229
  padding:0 8px;
230
230
  display:grid;
@@ -235,30 +235,30 @@
235
235
  grid-row:4;
236
236
  z-index:10;
237
237
  }
238
- .magritte-media-viewer-toolbar___2C8nr_1-3-47.magritte-no-description___NebrT_1-3-47{
238
+ .magritte-media-viewer-toolbar___2C8nr_1-3-49.magritte-no-description___NebrT_1-3-49{
239
239
  display:flex;
240
240
  justify-content:space-between;
241
241
  }
242
242
  @media (min-width: 1020px){
243
- body.magritte-old-layout .magritte-media-viewer-toolbar___2C8nr_1-3-47{
243
+ body.magritte-old-layout .magritte-media-viewer-toolbar___2C8nr_1-3-49{
244
244
  display:none;
245
245
  }
246
246
  }
247
247
  @media (min-width: 1024px){
248
- body:not(.magritte-old-layout) .magritte-media-viewer-toolbar___2C8nr_1-3-47{
248
+ body:not(.magritte-old-layout) .magritte-media-viewer-toolbar___2C8nr_1-3-49{
249
249
  display:none;
250
250
  }
251
251
  }
252
- .magritte-media-viewer-toolbar-left___YzkJt_1-3-47,
253
- .magritte-media-viewer-toolbar-right___kBER9_1-3-47{
252
+ .magritte-media-viewer-toolbar-left___YzkJt_1-3-49,
253
+ .magritte-media-viewer-toolbar-right___kBER9_1-3-49{
254
254
  display:flex;
255
255
  gap:4px;
256
256
  }
257
- .magritte-media-viewer-toolbar-right___kBER9_1-3-47{
257
+ .magritte-media-viewer-toolbar-right___kBER9_1-3-49{
258
258
  justify-content:end;
259
259
  }
260
- .magritte-prev-button___WMYjR_1-3-47,
261
- .magritte-next-button___f8hJT_1-3-47{
260
+ .magritte-prev-button___WMYjR_1-3-49,
261
+ .magritte-next-button___f8hJT_1-3-49{
262
262
  cursor:pointer;
263
263
  position:absolute;
264
264
  top:0;
@@ -266,40 +266,40 @@
266
266
  width:48px;
267
267
  opacity:var(--media-viewer-background-opacity);
268
268
  }
269
- .magritte-prev-button___WMYjR_1-3-47:active,
270
- .magritte-next-button___f8hJT_1-3-47:active{
269
+ .magritte-prev-button___WMYjR_1-3-49:active,
270
+ .magritte-next-button___f8hJT_1-3-49:active{
271
271
  background:linear-gradient(90deg, var(--magritte-gradient-component-media-viewer-background-fade-v26-0-2));
272
272
  }
273
273
  @media (min-width: 1020px){
274
- body.magritte-old-layout .magritte-prev-button___WMYjR_1-3-47,
275
- body.magritte-old-layout .magritte-next-button___f8hJT_1-3-47{
274
+ body.magritte-old-layout .magritte-prev-button___WMYjR_1-3-49,
275
+ body.magritte-old-layout .magritte-next-button___f8hJT_1-3-49{
276
276
  width:88px;
277
277
  }
278
- body.magritte-old-layout .magritte-prev-button___WMYjR_1-3-47:active,
279
- body.magritte-old-layout .magritte-next-button___f8hJT_1-3-47:active{
278
+ body.magritte-old-layout .magritte-prev-button___WMYjR_1-3-49:active,
279
+ body.magritte-old-layout .magritte-next-button___f8hJT_1-3-49:active{
280
280
  background:none;
281
281
  }
282
282
  }
283
283
  @media (min-width: 1024px){
284
- body:not(.magritte-old-layout) .magritte-prev-button___WMYjR_1-3-47,
285
- body:not(.magritte-old-layout) .magritte-next-button___f8hJT_1-3-47{
284
+ body:not(.magritte-old-layout) .magritte-prev-button___WMYjR_1-3-49,
285
+ body:not(.magritte-old-layout) .magritte-next-button___f8hJT_1-3-49{
286
286
  width:88px;
287
287
  }
288
- body:not(.magritte-old-layout) .magritte-prev-button___WMYjR_1-3-47:active,
289
- body:not(.magritte-old-layout) .magritte-next-button___f8hJT_1-3-47:active{
288
+ body:not(.magritte-old-layout) .magritte-prev-button___WMYjR_1-3-49:active,
289
+ body:not(.magritte-old-layout) .magritte-next-button___f8hJT_1-3-49:active{
290
290
  background:none;
291
291
  }
292
292
  }
293
- .magritte-prev-button___WMYjR_1-3-47{
293
+ .magritte-prev-button___WMYjR_1-3-49{
294
294
  left:0;
295
295
  }
296
- .magritte-prev-button___WMYjR_1-3-47:active{
296
+ .magritte-prev-button___WMYjR_1-3-49:active{
297
297
  background:linear-gradient(270deg, var(--magritte-gradient-component-media-viewer-background-fade-v26-0-2));
298
298
  }
299
- .magritte-next-button___f8hJT_1-3-47{
299
+ .magritte-next-button___f8hJT_1-3-49{
300
300
  right:0;
301
301
  }
302
- .magritte-slide-button___sY8LB_1-3-47{
302
+ .magritte-slide-button___sY8LB_1-3-49{
303
303
  display:flex;
304
304
  background:none;
305
305
  padding:0;
@@ -309,7 +309,7 @@
309
309
  position:absolute;
310
310
  inset:0;
311
311
  }
312
- .magritte-preview-placeholder___yuhW1_1-3-47{
312
+ .magritte-preview-placeholder___yuhW1_1-3-49{
313
313
  --magritte-media-viewer-preview-width:24px;
314
314
  --magritte-media-viewer-preview-gap:2px;
315
315
  flex:0 0 auto;
@@ -318,24 +318,24 @@
318
318
  flex-grow:0;
319
319
  }
320
320
  @media (min-width: 1020px){
321
- body.magritte-old-layout .magritte-preview-placeholder___yuhW1_1-3-47{
321
+ body.magritte-old-layout .magritte-preview-placeholder___yuhW1_1-3-49{
322
322
  --magritte-media-viewer-preview-width:40px;
323
323
  --magritte-media-viewer-preview-gap:8px;
324
324
  }
325
325
  }
326
326
  @media (min-width: 1024px){
327
- body:not(.magritte-old-layout) .magritte-preview-placeholder___yuhW1_1-3-47{
327
+ body:not(.magritte-old-layout) .magritte-preview-placeholder___yuhW1_1-3-49{
328
328
  --magritte-media-viewer-preview-width:40px;
329
329
  --magritte-media-viewer-preview-gap:8px;
330
330
  }
331
331
  }
332
- .magritte-gallery-item-loader___70TDe_1-3-47{
332
+ .magritte-gallery-item-loader___70TDe_1-3-49{
333
333
  position:absolute;
334
334
  top:50%;
335
335
  left:50%;
336
336
  transform:translate(-50%, -50%);
337
337
  }
338
- .magritte-gallery-item-error-container___Z-HyZ_1-3-47{
338
+ .magritte-gallery-item-error-container___Z-HyZ_1-3-49{
339
339
  display:flex;
340
340
  flex-direction:column;
341
341
  align-items:center;
@@ -349,10 +349,10 @@
349
349
  width:100%;
350
350
  box-sizing:border-box;
351
351
  }
352
- .magritte-description-bottom-sheet-content___swnEV_1-3-47{
352
+ .magritte-description-bottom-sheet-content___swnEV_1-3-49{
353
353
  padding:8px 0;
354
354
  }
355
- .magritte-header___egZXt_1-3-47{
355
+ .magritte-header___egZXt_1-3-49{
356
356
  grid-row:1;
357
357
  z-index:2;
358
358
  opacity:var(--media-viewer-toolbars-opacity);
@@ -360,13 +360,13 @@
360
360
  --magritte-ui-nav-bar-title-color-override:var(--magritte-color-text-constant-v26-0-2);
361
361
  --magritte-ui-nav-bar-subtitle-color-override:var(--magritte-color-text-constant-secondary-v26-0-2);
362
362
  }
363
- .magritte-footer___rOH-M_1-3-47{
363
+ .magritte-footer___rOH-M_1-3-49{
364
364
  grid-row:3;
365
365
  z-index:2;
366
366
  opacity:var(--media-viewer-toolbars-opacity);
367
367
  transform:translateY(calc(var(--magritte-ui-media-viewer-hide-tools-progress) * 100%));
368
368
  }
369
- .magritte-description___dYc-E_1-3-47{
369
+ .magritte-description___dYc-E_1-3-49{
370
370
  display:inline-block;
371
371
  max-width:100%;
372
372
  }
package/index.js CHANGED
@@ -18,7 +18,7 @@ import './internal/utils.js';
18
18
  import './internal/hooks/useTapToToggleTools.js';
19
19
  import './internal/hooks/useVirtualization.js';
20
20
  import './public/Footer.js';
21
- import './media-viewer-DG2hhLCD.js';
21
+ import './media-viewer-B50_jHZ8.js';
22
22
  import './public/Gallery.js';
23
23
  import '@hh.ru/magritte-common-resize';
24
24
  import '@hh.ru/magritte-ui-icon/icon';
@@ -33,6 +33,7 @@ import './internal/hooks/usePinchToZoom.js';
33
33
  import './internal/hooks/useWheelToZoom.js';
34
34
  import '@hh.ru/magritte-ui-typography';
35
35
  import './public/Header.js';
36
+ import './public/headerDefaults.js';
36
37
  import '@hh.ru/magritte-ui-nav-bar';
37
38
  import './public/Preview.js';
38
39
  import './internal/Counter.js';
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -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-DG2hhLCD.js';
11
+ import { s as styles } from '../media-viewer-B50_jHZ8.js';
12
12
  import './ImagesLoader.js';
13
13
  import './utils.js';
14
14
  import '@hh.ru/magritte-design-tokens/core-tokens';
@@ -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-DG2hhLCD.js';
17
+ import { s as styles } from '../media-viewer-B50_jHZ8.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/core-tokens';
11
11
  import './animations.js';
12
- import '../media-viewer-DG2hhLCD.js';
12
+ import '../media-viewer-B50_jHZ8.js';
13
13
  import './ImagesLoader.js';
14
14
 
15
15
  const PreviewItem = ({
@@ -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-DG2hhLCD.js';
8
+ import { s as styles } from '../media-viewer-B50_jHZ8.js';
9
9
  import './ImagesLoader.js';
10
10
  import '@hh.ru/magritte-design-tokens/core-tokens';
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-DG2hhLCD.js';
12
+ import { s as styles } from '../media-viewer-B50_jHZ8.js';
13
13
  import './ImagesLoader.js';
14
14
 
15
15
  const getControllerLimits = (controller) => {
@@ -0,0 +1,5 @@
1
+ import './index.css';
2
+ var styles = {"media-viewer":"magritte-media-viewer___KnrXP_1-3-49","mediaViewer":"magritte-media-viewer___KnrXP_1-3-49","gallery-placeholder":"magritte-gallery-placeholder___rUoGL_1-3-49","galleryPlaceholder":"magritte-gallery-placeholder___rUoGL_1-3-49","media-viewer-gallery":"magritte-media-viewer-gallery___P0SnN_1-3-49","mediaViewerGallery":"magritte-media-viewer-gallery___P0SnN_1-3-49","gallery-item":"magritte-gallery-item___Js0Z5_1-3-49","galleryItem":"magritte-gallery-item___Js0Z5_1-3-49","gallery-item-transform-container":"magritte-gallery-item-transform-container___N8-sA_1-3-49","galleryItemTransformContainer":"magritte-gallery-item-transform-container___N8-sA_1-3-49","preview-counter":"magritte-preview-counter___uP2Hc_1-3-49","previewCounter":"magritte-preview-counter___uP2Hc_1-3-49","with-description":"magritte-with-description___-w7ld_1-3-49","withDescription":"magritte-with-description___-w7ld_1-3-49","counter-number":"magritte-counter-number___gUpMp_1-3-49","counterNumber":"magritte-counter-number___gUpMp_1-3-49","no-description-placeholder":"magritte-no-description-placeholder___qc6h2_1-3-49","noDescriptionPlaceholder":"magritte-no-description-placeholder___qc6h2_1-3-49","preview-zoom-control":"magritte-preview-zoom-control___026jA_1-3-49","previewZoomControl":"magritte-preview-zoom-control___026jA_1-3-49","preview-container":"magritte-preview-container___nwjNY_1-3-49","previewContainer":"magritte-preview-container___nwjNY_1-3-49","preview":"magritte-preview___0Ge4C_1-3-49","preview-list":"magritte-preview-list___SAXLZ_1-3-49","previewList":"magritte-preview-list___SAXLZ_1-3-49","preview-item":"magritte-preview-item___gz5f2_1-3-49","previewItem":"magritte-preview-item___gz5f2_1-3-49","preview-item-container":"magritte-preview-item-container___JDVsk_1-3-49","previewItemContainer":"magritte-preview-item-container___JDVsk_1-3-49","media-viewer-toolbar":"magritte-media-viewer-toolbar___2C8nr_1-3-49","mediaViewerToolbar":"magritte-media-viewer-toolbar___2C8nr_1-3-49","no-description":"magritte-no-description___NebrT_1-3-49","noDescription":"magritte-no-description___NebrT_1-3-49","media-viewer-toolbar-left":"magritte-media-viewer-toolbar-left___YzkJt_1-3-49","mediaViewerToolbarLeft":"magritte-media-viewer-toolbar-left___YzkJt_1-3-49","media-viewer-toolbar-right":"magritte-media-viewer-toolbar-right___kBER9_1-3-49","mediaViewerToolbarRight":"magritte-media-viewer-toolbar-right___kBER9_1-3-49","prev-button":"magritte-prev-button___WMYjR_1-3-49","prevButton":"magritte-prev-button___WMYjR_1-3-49","next-button":"magritte-next-button___f8hJT_1-3-49","nextButton":"magritte-next-button___f8hJT_1-3-49","slide-button":"magritte-slide-button___sY8LB_1-3-49","slideButton":"magritte-slide-button___sY8LB_1-3-49","preview-placeholder":"magritte-preview-placeholder___yuhW1_1-3-49","previewPlaceholder":"magritte-preview-placeholder___yuhW1_1-3-49","gallery-item-loader":"magritte-gallery-item-loader___70TDe_1-3-49","galleryItemLoader":"magritte-gallery-item-loader___70TDe_1-3-49","gallery-item-error-container":"magritte-gallery-item-error-container___Z-HyZ_1-3-49","galleryItemErrorContainer":"magritte-gallery-item-error-container___Z-HyZ_1-3-49","description-bottom-sheet-content":"magritte-description-bottom-sheet-content___swnEV_1-3-49","descriptionBottomSheetContent":"magritte-description-bottom-sheet-content___swnEV_1-3-49","header":"magritte-header___egZXt_1-3-49","footer":"magritte-footer___rOH-M_1-3-49","description":"magritte-description___dYc-E_1-3-49"};
3
+
4
+ export { styles as s };
5
+ //# sourceMappingURL=media-viewer-B50_jHZ8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-viewer-B50_jHZ8.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.3.47",
3
+ "version": "1.3.49",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -17,7 +17,11 @@
17
17
  "ts-check": "yarn root:ts-check $(pwd)",
18
18
  "test": "yarn root:test $(pwd)",
19
19
  "test:types": "yarn root:test:types $(pwd)",
20
- "watch": "yarn root:watch $(pwd)"
20
+ "watch": "yarn root:watch $(pwd)",
21
+ "figma-publish": "yarn root:figma-publish $(pwd)",
22
+ "figma-unpublish": "yarn root:figma-unpublish $(pwd)",
23
+ "figma-snapshot-check": "yarn root:figma-snapshot $(pwd)",
24
+ "figma-snapshot-update": "yarn root:figma-snapshot $(pwd) --update"
21
25
  },
22
26
  "publishConfig": {
23
27
  "access": "public"
@@ -29,13 +33,13 @@
29
33
  "@hh.ru/magritte-common-use-translation": "3.6.2",
30
34
  "@hh.ru/magritte-design-tokens": "26.0.2",
31
35
  "@hh.ru/magritte-internal-accessible-region": "1.0.5",
32
- "@hh.ru/magritte-ui-bottom-sheet": "9.4.53",
36
+ "@hh.ru/magritte-ui-bottom-sheet": "9.4.55",
33
37
  "@hh.ru/magritte-ui-breakpoint": "6.1.3",
34
38
  "@hh.ru/magritte-ui-icon": "15.1.6",
35
39
  "@hh.ru/magritte-ui-layer": "3.2.9",
36
40
  "@hh.ru/magritte-ui-loader": "4.1.7",
37
41
  "@hh.ru/magritte-ui-mock-component": "1.1.9",
38
- "@hh.ru/magritte-ui-nav-bar": "2.0.22",
42
+ "@hh.ru/magritte-ui-nav-bar": "2.0.23",
39
43
  "@hh.ru/magritte-ui-tooltip": "11.0.54",
40
44
  "@hh.ru/magritte-ui-typography": "5.3.17",
41
45
  "@use-gesture/react": "10.3.1"
@@ -45,5 +49,5 @@
45
49
  "motion": "^12.23.12",
46
50
  "react": ">=18.2.0"
47
51
  },
48
- "gitHead": "fbf6bc645db47d2b0489603139dc65e9c316e2ec"
52
+ "gitHead": "51c32c8cee9bb273937378996ab89aeb50d9aa48"
49
53
  }
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-DG2hhLCD.js';
3
+ import { s as styles } from '../media-viewer-B50_jHZ8.js';
4
4
 
5
5
  const Footer = ({ children }) => {
6
6
  return /* @__PURE__ */ jsx("div", { "data-media-viewer-interactive": "true", className: styles.footer, 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-DG2hhLCD.js';
13
+ import { s as styles } from '../media-viewer-B50_jHZ8.js';
14
14
  import '../internal/ImagesLoader.js';
15
15
  import '@use-gesture/react';
16
16
  import '@hh.ru/magritte-design-tokens/core-tokens';
@@ -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-DG2hhLCD.js';
20
+ import '../media-viewer-B50_jHZ8.js';
21
21
  import '../internal/ImagesLoader.js';
22
22
 
23
23
  const GALLERY_ITEM_VIRTUALIZATION_PADDING = 5;
package/public/Header.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import './../index.css';
2
2
  import { jsx } from 'react/jsx-runtime';
3
+ import { MEDIA_VIEWER_HEADER_ACTIONS_ICONS_DEFAULTS } from './headerDefaults.js';
3
4
  import { NavBarDefaultPropsContext } from '@hh.ru/magritte-ui-nav-bar';
4
- import { s as styles } from '../media-viewer-DG2hhLCD.js';
5
+ import { s as styles } from '../media-viewer-B50_jHZ8.js';
5
6
 
6
7
  const NAV_BAR_ACTIONS_DEFAULT_PROPS = {
7
8
  verticalAlign: "top"
@@ -12,12 +13,7 @@ const NAV_BAR_TITLE_DEFAULT_PROPS = {
12
13
  const NAV_BAR_SUBTITLE_DEFAULT_PROPS = {
13
14
  style: "constant-secondary"
14
15
  };
15
- const NAV_BAR_ACTIONS_ICONS_DEFAULT_PROPS = {
16
- borderRadius: "halfHeight",
17
- padding: 8,
18
- backgroundStyle: void 0,
19
- initialColor: "constant"
20
- };
16
+ const NAV_BAR_ACTIONS_ICONS_DEFAULT_PROPS = MEDIA_VIEWER_HEADER_ACTIONS_ICONS_DEFAULTS;
21
17
  const Header = ({ children }) => {
22
18
  return /* @__PURE__ */ jsx(
23
19
  NavBarDefaultPropsContext,
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sources":["src/public/Header.tsx"],"sourcesContent":["import { FC, PropsWithChildren } from 'react';\n\nimport { NavBarDefaultPropsContext } from '@hh.ru/magritte-ui-nav-bar';\n\nimport styles from './media-viewer.less';\n\nconst NAV_BAR_ACTIONS_DEFAULT_PROPS = {\n verticalAlign: 'top',\n} as const;\n\nconst NAV_BAR_TITLE_DEFAULT_PROPS = {\n style: 'constant',\n} as const;\n\nconst NAV_BAR_SUBTITLE_DEFAULT_PROPS = {\n style: 'constant-secondary',\n} as const;\n\nconst NAV_BAR_ACTIONS_ICONS_DEFAULT_PROPS = {\n borderRadius: 'halfHeight',\n padding: 8,\n backgroundStyle: undefined,\n initialColor: 'constant',\n} as const;\n\nexport const Header: FC<PropsWithChildren> = ({ children }) => {\n return (\n <NavBarDefaultPropsContext\n actionsProps={NAV_BAR_ACTIONS_DEFAULT_PROPS}\n actionsIconsProps={NAV_BAR_ACTIONS_ICONS_DEFAULT_PROPS}\n titleProps={NAV_BAR_TITLE_DEFAULT_PROPS}\n subtitleProps={NAV_BAR_SUBTITLE_DEFAULT_PROPS}\n >\n <div data-media-viewer-interactive=\"true\" className={styles.header}>\n {children}\n </div>\n </NavBarDefaultPropsContext>\n );\n};\n"],"names":[],"mappings":";;;;AAMA,MAAM,6BAAgC,GAAA;AAAA,EAClC,aAAe,EAAA,KAAA;AACnB,CAAA,CAAA;AAEA,MAAM,2BAA8B,GAAA;AAAA,EAChC,KAAO,EAAA,UAAA;AACX,CAAA,CAAA;AAEA,MAAM,8BAAiC,GAAA;AAAA,EACnC,KAAO,EAAA,oBAAA;AACX,CAAA,CAAA;AAEA,MAAM,mCAAsC,GAAA;AAAA,EACxC,YAAc,EAAA,YAAA;AAAA,EACd,OAAS,EAAA,CAAA;AAAA,EACT,eAAiB,EAAA,KAAA,CAAA;AAAA,EACjB,YAAc,EAAA,UAAA;AAClB,CAAA,CAAA;AAEO,MAAM,MAAgC,GAAA,CAAC,EAAE,QAAA,EAAe,KAAA;AAC3D,EACI,uBAAA,GAAA;AAAA,IAAC,yBAAA;AAAA,IAAA;AAAA,MACG,YAAc,EAAA,6BAAA;AAAA,MACd,iBAAmB,EAAA,mCAAA;AAAA,MACnB,UAAY,EAAA,2BAAA;AAAA,MACZ,aAAe,EAAA,8BAAA;AAAA,MAEf,8BAAC,KAAI,EAAA,EAAA,+BAAA,EAA8B,QAAO,SAAW,EAAA,MAAA,CAAO,QACvD,QACL,EAAA,CAAA;AAAA,KAAA;AAAA,GACJ,CAAA;AAER;;;;"}
1
+ {"version":3,"file":"Header.js","sources":["src/public/Header.tsx"],"sourcesContent":["import { FC, PropsWithChildren } from 'react';\n\nimport { MEDIA_VIEWER_HEADER_ACTIONS_ICONS_DEFAULTS } from '@hh.ru/magritte-ui-media-viewer/public/headerDefaults';\nimport { NavBarDefaultPropsContext } from '@hh.ru/magritte-ui-nav-bar';\n\nimport styles from './media-viewer.less';\n\nconst NAV_BAR_ACTIONS_DEFAULT_PROPS = {\n verticalAlign: 'top',\n} as const;\n\nconst NAV_BAR_TITLE_DEFAULT_PROPS = {\n style: 'constant',\n} as const;\n\nconst NAV_BAR_SUBTITLE_DEFAULT_PROPS = {\n style: 'constant-secondary',\n} as const;\n\nconst NAV_BAR_ACTIONS_ICONS_DEFAULT_PROPS = MEDIA_VIEWER_HEADER_ACTIONS_ICONS_DEFAULTS;\n\nexport const Header: FC<PropsWithChildren> = ({ children }) => {\n return (\n <NavBarDefaultPropsContext\n actionsProps={NAV_BAR_ACTIONS_DEFAULT_PROPS}\n actionsIconsProps={NAV_BAR_ACTIONS_ICONS_DEFAULT_PROPS}\n titleProps={NAV_BAR_TITLE_DEFAULT_PROPS}\n subtitleProps={NAV_BAR_SUBTITLE_DEFAULT_PROPS}\n >\n <div data-media-viewer-interactive=\"true\" className={styles.header}>\n {children}\n </div>\n </NavBarDefaultPropsContext>\n );\n};\n"],"names":[],"mappings":";;;;;AAOA,MAAM,6BAAgC,GAAA;AAAA,EAClC,aAAe,EAAA,KAAA;AACnB,CAAA,CAAA;AAEA,MAAM,2BAA8B,GAAA;AAAA,EAChC,KAAO,EAAA,UAAA;AACX,CAAA,CAAA;AAEA,MAAM,8BAAiC,GAAA;AAAA,EACnC,KAAO,EAAA,oBAAA;AACX,CAAA,CAAA;AAEA,MAAM,mCAAsC,GAAA,0CAAA,CAAA;AAErC,MAAM,MAAgC,GAAA,CAAC,EAAE,QAAA,EAAe,KAAA;AAC3D,EACI,uBAAA,GAAA;AAAA,IAAC,yBAAA;AAAA,IAAA;AAAA,MACG,YAAc,EAAA,6BAAA;AAAA,MACd,iBAAmB,EAAA,mCAAA;AAAA,MACnB,UAAY,EAAA,2BAAA;AAAA,MACZ,aAAe,EAAA,8BAAA;AAAA,MAEf,8BAAC,KAAI,EAAA,EAAA,+BAAA,EAA8B,QAAO,SAAW,EAAA,MAAA,CAAO,QACvD,QACL,EAAA,CAAA;AAAA,KAAA;AAAA,GACJ,CAAA;AAER;;;;"}
@@ -22,7 +22,7 @@ import { Header } from './Header.js';
22
22
  import { Preview } from './Preview.js';
23
23
  import { Toolbar } from './Toolbar.js';
24
24
  import { DesktopTool, MobileTool, RotateTool, CloseTool, FullWidthTool } from './Tools.js';
25
- import { s as styles } from '../media-viewer-DG2hhLCD.js';
25
+ import { s as styles } from '../media-viewer-B50_jHZ8.js';
26
26
  import '../internal/ImagesLoader.js';
27
27
  import '@use-gesture/react';
28
28
  import '@hh.ru/magritte-common-resize';
@@ -36,6 +36,7 @@ import '../internal/hooks/usePan.js';
36
36
  import '../internal/hooks/usePinchToZoom.js';
37
37
  import '../internal/hooks/useWheelToZoom.js';
38
38
  import '@hh.ru/magritte-ui-typography';
39
+ import './headerDefaults.js';
39
40
  import '@hh.ru/magritte-ui-nav-bar';
40
41
  import '../internal/Counter.js';
41
42
  import 'classnames';
@@ -1 +1 @@
1
- {"version":3,"file":"MediaViewer.js","sources":["../../common/keyboard/lib/keys-DMQazhll.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, PageDown as P, Space as S, Tab as T, ArrowRight as a, ArrowDown as b, ArrowLeft as c, DigitKeys as d, End as e, Enter as f, PageUp as g, keys as k };\n//# sourceMappingURL=keys-DMQazhll.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 canReceiveFocus = (element) => {\n if (typeof element.checkVisibility === \"function\") {\n return element.checkVisibility({\n checkVisibilityCSS: true,\n // старое имя опции visibilityProperty (Chrome 105–121)\n visibilityProperty: true\n });\n }\n return true;\n};\nconst findAllFocusableElements = (container) => {\n return [...container.querySelectorAll(FOCUSABLE_SELECTOR)].filter(canReceiveFocus);\n};\nconst findNextFocusableElement = (container, targetElement, direction, mode = \"main\") => {\n if (mode === \"main\" && !targetElement || 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 if (targetRect !== null && !(direction === \"up\" && (elementCenterY >= targetCenterY || elementRect.bottom > targetRect.top)) && !(direction === \"down\" && (elementCenterY <= targetCenterY || elementRect.top < targetRect.bottom)) && !(direction === \"left\" && (elementCenterX >= targetCenterX || elementRect.right > targetRect.left)) && !(direction === \"right\" && (elementCenterX <= targetCenterX || elementRect.left < targetRect.right))) {\n let distanceX = Math.abs(targetCenterX - elementCenterX);\n let distanceY = Math.abs(targetCenterY - elementCenterY);\n if (direction === \"up\" || direction === \"down\") {\n distanceY *= 0.5;\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 if (mode === \"list\") {\n if (direction === \"up\" && elementRect.top - oppositeCoordinate > FLOAT_COMPARISON_THRESHOLD) {\n oppositeElement = element;\n oppositeCoordinate = elementRect.top;\n } else if (direction === \"down\" && elementRect.bottom - oppositeCoordinate < -FLOAT_COMPARISON_THRESHOLD) {\n oppositeElement = element;\n oppositeCoordinate = elementRect.bottom;\n } else if (direction === \"left\" && elementRect.right - oppositeCoordinate > FLOAT_COMPARISON_THRESHOLD) {\n oppositeElement = element;\n oppositeCoordinate = elementRect.right;\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-DMQazhll.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]) && !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};\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 type Ref,\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 CoreTokens from '@hh.ru/magritte-design-tokens/core-tokens';\nimport {\n AccessibleRegionProvider,\n useAccessibleRegionProps,\n type ExplicitRegionProps,\n} from '@hh.ru/magritte-internal-accessible-region';\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 { type GalleryItemController } from '@hh.ru/magritte-ui-media-viewer/internal/hooks/useGalleryItemController';\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\ninterface MediaViewerDialogProps extends HTMLMotionProps<'div'> {\n explicitAria: ExplicitRegionProps;\n /** Плейсхолдер из переводов — используется только если метка не задана иным источником */\n fallbackLabel: string | undefined;\n dialogRef: Ref<HTMLDivElement>;\n}\n\n/**\n * Внутренний `role=\"dialog\"`-узел. Вынесен в отдельный компонент, потому что обязан жить **под**\n * `AccessibleRegionProvider`: только так `useAccessibleRegionProps` видит метки/описания,\n * зарегистрированные потомками, и выставляет `aria-labelledby` / `aria-describedby`. Явные\n * `aria-*` пропы при этом всё перекрывают. Метка из переводов — лишь дефолт: применяется\n * локально, только когда ни один другой источник метку не дал.\n */\nconst MediaViewerDialog: FC<MediaViewerDialogProps> = ({\n explicitAria,\n fallbackLabel,\n dialogRef,\n children,\n ...rest\n}) => {\n const aria = useAccessibleRegionProps(explicitAria);\n const hasLabel = 'aria-label' in aria || 'aria-labelledby' in aria;\n\n return (\n <motion.div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={hasLabel ? undefined : fallbackLabel}\n {...aria}\n {...rest}\n ref={dialogRef}\n >\n {children}\n </motion.div>\n );\n};\n\nexport const MediaViewer: FC<\n PropsWithChildren<{\n /** Флаг видимости компонента */\n visible: boolean;\n /** Коллбек, вызываемый при закрытии медиавьюера */\n onClose?: VoidFunction;\n /** Индекс слайда, который будет отображаться при открытии компонента, индексация с 0 */\n initialItemIndex?: number;\n }> &\n ExplicitRegionProps\n> &\n MediaViewerCompound = ({\n children,\n visible,\n onClose,\n initialItemIndex = 0,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-description': ariaDescription,\n}) => {\n const [isVisible, setIsVisible] = useState(visible);\n const currentSlideIndex = useMotionValue<number>(0);\n const closeProgress = useMotionValue(isVisible ? 0 : 1);\n const currentSlideController = useMotionValue<GalleryItemController | null>(null);\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 finishClose = useInitOnce(() => () => {\n setIsVisible(false);\n scrollEnableRef.current?.();\n scrollEnableRef.current = null;\n currentSlideIndex.set(0);\n currentSlideController.get()?.reset();\n currentSlideController.set(null);\n closeCallbackRef.current?.();\n });\n\n const close = useInitOnce(() => () => {\n if (closeProgress.get() >= 1) {\n closeProgress.set(1);\n finishClose();\n return;\n }\n const delta = Math.abs(closeProgress.get() - 1);\n const animationDuration = delta * (CoreTokens['magritte-semantic-animation-time-m'].duration / 1000);\n animate(closeProgress, 1, {\n duration: animationDuration,\n ease: EASE_BASE,\n onComplete: finishClose,\n });\n });\n const rootRef = useKeyboardNavigation({ mode: 'loop', enabled: isVisible });\n\n const contextValue = useInitOnce(() => {\n const contextValue = createMediaViewerContextValue(\n visibleRange,\n currentSlideIndex,\n closeProgress,\n currentSlideController,\n close\n );\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 const explicitAria: ExplicitRegionProps = {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-description': ariaDescription,\n };\n\n useEffect(() => {\n if (visible && !isVisible) {\n scrollEnableRef.current = disableScroll();\n currentSlideIndex.set(initialItemIndex);\n setIsVisible(true);\n animate(contextValue.closeProgress, 0, {\n duration: CoreTokens['magritte-semantic-animation-time-m'].duration / 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 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 <AccessibleRegionProvider>\n <Layer layer=\"media-viewer\">\n <MediaViewerDialog\n explicitAria={explicitAria}\n fallbackLabel={componentDescriptionTrl}\n className={styles.mediaViewer}\n {...(bindSwipeToClose() as HTMLMotionProps<'div'>)}\n dialogRef={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 ? {\n '--magritte-ui-media-viewer-image-close-progress':\n contextValue.closeProgress,\n }\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 </MediaViewerDialog>\n </Layer>\n </AccessibleRegionProvider>\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":["contextValue"],"mappings":"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"}
1
+ {"version":3,"file":"MediaViewer.js","sources":["../../common/keyboard/lib/keys-DMQazhll.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, PageDown as P, Space as S, Tab as T, ArrowRight as a, ArrowDown as b, ArrowLeft as c, DigitKeys as d, End as e, Enter as f, PageUp as g, keys as k };\n//# sourceMappingURL=keys-DMQazhll.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 canReceiveFocus = (element) => {\n if (typeof element.checkVisibility === \"function\") {\n return element.checkVisibility({\n checkVisibilityCSS: true,\n // старое имя опции visibilityProperty (Chrome 105–121)\n visibilityProperty: true\n });\n }\n return true;\n};\nconst findAllFocusableElements = (container) => {\n return [...container.querySelectorAll(FOCUSABLE_SELECTOR)].filter(canReceiveFocus);\n};\nconst findNextFocusableElement = (container, targetElement, direction, mode = \"main\") => {\n if (mode === \"main\" && !targetElement || 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 if (targetRect !== null && !(direction === \"up\" && (elementCenterY >= targetCenterY || elementRect.bottom > targetRect.top)) && !(direction === \"down\" && (elementCenterY <= targetCenterY || elementRect.top < targetRect.bottom)) && !(direction === \"left\" && (elementCenterX >= targetCenterX || elementRect.right > targetRect.left)) && !(direction === \"right\" && (elementCenterX <= targetCenterX || elementRect.left < targetRect.right))) {\n let distanceX = Math.abs(targetCenterX - elementCenterX);\n let distanceY = Math.abs(targetCenterY - elementCenterY);\n if (direction === \"up\" || direction === \"down\") {\n distanceY *= 0.5;\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 if (mode === \"list\") {\n if (direction === \"up\" && elementRect.top - oppositeCoordinate > FLOAT_COMPARISON_THRESHOLD) {\n oppositeElement = element;\n oppositeCoordinate = elementRect.top;\n } else if (direction === \"down\" && elementRect.bottom - oppositeCoordinate < -FLOAT_COMPARISON_THRESHOLD) {\n oppositeElement = element;\n oppositeCoordinate = elementRect.bottom;\n } else if (direction === \"left\" && elementRect.right - oppositeCoordinate > FLOAT_COMPARISON_THRESHOLD) {\n oppositeElement = element;\n oppositeCoordinate = elementRect.right;\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-DMQazhll.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]) && !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};\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 type Ref,\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 CoreTokens from '@hh.ru/magritte-design-tokens/core-tokens';\nimport {\n AccessibleRegionProvider,\n useAccessibleRegionProps,\n type ExplicitRegionProps,\n} from '@hh.ru/magritte-internal-accessible-region';\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 { type GalleryItemController } from '@hh.ru/magritte-ui-media-viewer/internal/hooks/useGalleryItemController';\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\ninterface MediaViewerDialogProps extends HTMLMotionProps<'div'> {\n explicitAria: ExplicitRegionProps;\n /** Плейсхолдер из переводов — используется только если метка не задана иным источником */\n fallbackLabel: string | undefined;\n dialogRef: Ref<HTMLDivElement>;\n}\n\n/**\n * Внутренний `role=\"dialog\"`-узел. Вынесен в отдельный компонент, потому что обязан жить **под**\n * `AccessibleRegionProvider`: только так `useAccessibleRegionProps` видит метки/описания,\n * зарегистрированные потомками, и выставляет `aria-labelledby` / `aria-describedby`. Явные\n * `aria-*` пропы при этом всё перекрывают. Метка из переводов — лишь дефолт: применяется\n * локально, только когда ни один другой источник метку не дал.\n */\nconst MediaViewerDialog: FC<MediaViewerDialogProps> = ({\n explicitAria,\n fallbackLabel,\n dialogRef,\n children,\n ...rest\n}) => {\n const aria = useAccessibleRegionProps(explicitAria);\n const hasLabel = 'aria-label' in aria || 'aria-labelledby' in aria;\n\n return (\n <motion.div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={hasLabel ? undefined : fallbackLabel}\n {...aria}\n {...rest}\n ref={dialogRef}\n >\n {children}\n </motion.div>\n );\n};\n\nexport const MediaViewer: FC<\n PropsWithChildren<{\n /** Флаг видимости компонента */\n visible: boolean;\n /** Коллбек, вызываемый при закрытии медиавьюера */\n onClose?: VoidFunction;\n /** Индекс слайда, который будет отображаться при открытии компонента, индексация с 0 */\n initialItemIndex?: number;\n }> &\n ExplicitRegionProps\n> &\n MediaViewerCompound = ({\n children,\n visible,\n onClose,\n initialItemIndex = 0,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-description': ariaDescription,\n}) => {\n const [isVisible, setIsVisible] = useState(visible);\n const currentSlideIndex = useMotionValue<number>(0);\n const closeProgress = useMotionValue(isVisible ? 0 : 1);\n const currentSlideController = useMotionValue<GalleryItemController | null>(null);\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 finishClose = useInitOnce(() => () => {\n setIsVisible(false);\n scrollEnableRef.current?.();\n scrollEnableRef.current = null;\n currentSlideIndex.set(0);\n currentSlideController.get()?.reset();\n currentSlideController.set(null);\n closeCallbackRef.current?.();\n });\n\n const close = useInitOnce(() => () => {\n if (closeProgress.get() >= 1) {\n closeProgress.set(1);\n finishClose();\n return;\n }\n const delta = Math.abs(closeProgress.get() - 1);\n const animationDuration = delta * (CoreTokens['magritte-semantic-animation-time-m'].duration / 1000);\n animate(closeProgress, 1, {\n duration: animationDuration,\n ease: EASE_BASE,\n onComplete: finishClose,\n });\n });\n const rootRef = useKeyboardNavigation({ mode: 'loop', enabled: isVisible });\n\n const contextValue = useInitOnce(() => {\n const contextValue = createMediaViewerContextValue(\n visibleRange,\n currentSlideIndex,\n closeProgress,\n currentSlideController,\n close\n );\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 const explicitAria: ExplicitRegionProps = {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-description': ariaDescription,\n };\n\n useEffect(() => {\n if (visible && !isVisible) {\n scrollEnableRef.current = disableScroll();\n currentSlideIndex.set(initialItemIndex);\n setIsVisible(true);\n animate(contextValue.closeProgress, 0, {\n duration: CoreTokens['magritte-semantic-animation-time-m'].duration / 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 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 <AccessibleRegionProvider>\n <Layer layer=\"media-viewer\">\n <MediaViewerDialog\n explicitAria={explicitAria}\n fallbackLabel={componentDescriptionTrl}\n className={styles.mediaViewer}\n {...(bindSwipeToClose() as HTMLMotionProps<'div'>)}\n dialogRef={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 ? {\n '--magritte-ui-media-viewer-image-close-progress':\n contextValue.closeProgress,\n }\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 </MediaViewerDialog>\n </Layer>\n </AccessibleRegionProvider>\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":["contextValue"],"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-DG2hhLCD.js';
15
+ import { s as styles } from '../media-viewer-B50_jHZ8.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
@@ -4,7 +4,7 @@ import classNames from 'classnames';
4
4
  import { IconDefaultPropsContext } from '@hh.ru/magritte-ui-icon';
5
5
  import { hasCounterContent, Counter } from '../internal/Counter.js';
6
6
  import { useGalleryItemsContext } from '../internal/context.js';
7
- import { s as styles } from '../media-viewer-DG2hhLCD.js';
7
+ import { s as styles } from '../media-viewer-B50_jHZ8.js';
8
8
  import 'react';
9
9
  import 'motion/react';
10
10
  import '@hh.ru/magritte-common-use-translation';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Переопределение дефолтных пропсов иконок в боковых слотах навбара внутри `MediaViewer.Header`
3
+ * (ключ `actionsIconsProps` у `NavBarDefaultPropsContext`).
4
+ *
5
+ * Вынесено из `Header.tsx` отдельным модулем ради второго читателя — Code Connect-шаблона
6
+ * (`figma/MediaViewer.figma.ts`): он объявляет эти же значения контекстом для вложенного навбара, чтобы сниппет
7
+ * не повторял проп, который шапка и так подставляет. Значение, скопированное в шаблон литералом, разъезжается
8
+ * молча.
9
+ *
10
+ * Модуль обязан оставаться чистыми данными без импортов рантайма: шаблон инлайнится сборщиком.
11
+ */
12
+ export declare const MEDIA_VIEWER_HEADER_ACTIONS_ICONS_DEFAULTS: {
13
+ readonly borderRadius: 'halfHeight';
14
+ readonly padding: 8;
15
+ readonly backgroundStyle: undefined;
16
+ readonly initialColor: 'constant';
17
+ };
@@ -0,0 +1,10 @@
1
+ import './../index.css';
2
+ const MEDIA_VIEWER_HEADER_ACTIONS_ICONS_DEFAULTS = {
3
+ borderRadius: "halfHeight",
4
+ padding: 8,
5
+ backgroundStyle: void 0,
6
+ initialColor: "constant"
7
+ };
8
+
9
+ export { MEDIA_VIEWER_HEADER_ACTIONS_ICONS_DEFAULTS };
10
+ //# sourceMappingURL=headerDefaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headerDefaults.js","sources":["src/public/headerDefaults.ts"],"sourcesContent":["/**\n * Переопределение дефолтных пропсов иконок в боковых слотах навбара внутри `MediaViewer.Header`\n * (ключ `actionsIconsProps` у `NavBarDefaultPropsContext`).\n *\n * Вынесено из `Header.tsx` отдельным модулем ради второго читателя — Code Connect-шаблона\n * (`figma/MediaViewer.figma.ts`): он объявляет эти же значения контекстом для вложенного навбара, чтобы сниппет\n * не повторял проп, который шапка и так подставляет. Значение, скопированное в шаблон литералом, разъезжается\n * молча.\n *\n * Модуль обязан оставаться чистыми данными без импортов рантайма: шаблон инлайнится сборщиком.\n */\nexport const MEDIA_VIEWER_HEADER_ACTIONS_ICONS_DEFAULTS = {\n borderRadius: 'halfHeight',\n padding: 8,\n backgroundStyle: undefined,\n initialColor: 'constant',\n} as const;\n"],"names":[],"mappings":"AAWO,MAAM,0CAA6C,GAAA;AAAA,EACtD,YAAc,EAAA,YAAA;AAAA,EACd,OAAS,EAAA,CAAA;AAAA,EACT,eAAiB,EAAA,KAAA,CAAA;AAAA,EACjB,YAAc,EAAA,UAAA;AAClB;;;;"}
@@ -1,5 +0,0 @@
1
- import './index.css';
2
- var styles = {"media-viewer":"magritte-media-viewer___KnrXP_1-3-47","mediaViewer":"magritte-media-viewer___KnrXP_1-3-47","gallery-placeholder":"magritte-gallery-placeholder___rUoGL_1-3-47","galleryPlaceholder":"magritte-gallery-placeholder___rUoGL_1-3-47","media-viewer-gallery":"magritte-media-viewer-gallery___P0SnN_1-3-47","mediaViewerGallery":"magritte-media-viewer-gallery___P0SnN_1-3-47","gallery-item":"magritte-gallery-item___Js0Z5_1-3-47","galleryItem":"magritte-gallery-item___Js0Z5_1-3-47","gallery-item-transform-container":"magritte-gallery-item-transform-container___N8-sA_1-3-47","galleryItemTransformContainer":"magritte-gallery-item-transform-container___N8-sA_1-3-47","preview-counter":"magritte-preview-counter___uP2Hc_1-3-47","previewCounter":"magritte-preview-counter___uP2Hc_1-3-47","with-description":"magritte-with-description___-w7ld_1-3-47","withDescription":"magritte-with-description___-w7ld_1-3-47","counter-number":"magritte-counter-number___gUpMp_1-3-47","counterNumber":"magritte-counter-number___gUpMp_1-3-47","no-description-placeholder":"magritte-no-description-placeholder___qc6h2_1-3-47","noDescriptionPlaceholder":"magritte-no-description-placeholder___qc6h2_1-3-47","preview-zoom-control":"magritte-preview-zoom-control___026jA_1-3-47","previewZoomControl":"magritte-preview-zoom-control___026jA_1-3-47","preview-container":"magritte-preview-container___nwjNY_1-3-47","previewContainer":"magritte-preview-container___nwjNY_1-3-47","preview":"magritte-preview___0Ge4C_1-3-47","preview-list":"magritte-preview-list___SAXLZ_1-3-47","previewList":"magritte-preview-list___SAXLZ_1-3-47","preview-item":"magritte-preview-item___gz5f2_1-3-47","previewItem":"magritte-preview-item___gz5f2_1-3-47","preview-item-container":"magritte-preview-item-container___JDVsk_1-3-47","previewItemContainer":"magritte-preview-item-container___JDVsk_1-3-47","media-viewer-toolbar":"magritte-media-viewer-toolbar___2C8nr_1-3-47","mediaViewerToolbar":"magritte-media-viewer-toolbar___2C8nr_1-3-47","no-description":"magritte-no-description___NebrT_1-3-47","noDescription":"magritte-no-description___NebrT_1-3-47","media-viewer-toolbar-left":"magritte-media-viewer-toolbar-left___YzkJt_1-3-47","mediaViewerToolbarLeft":"magritte-media-viewer-toolbar-left___YzkJt_1-3-47","media-viewer-toolbar-right":"magritte-media-viewer-toolbar-right___kBER9_1-3-47","mediaViewerToolbarRight":"magritte-media-viewer-toolbar-right___kBER9_1-3-47","prev-button":"magritte-prev-button___WMYjR_1-3-47","prevButton":"magritte-prev-button___WMYjR_1-3-47","next-button":"magritte-next-button___f8hJT_1-3-47","nextButton":"magritte-next-button___f8hJT_1-3-47","slide-button":"magritte-slide-button___sY8LB_1-3-47","slideButton":"magritte-slide-button___sY8LB_1-3-47","preview-placeholder":"magritte-preview-placeholder___yuhW1_1-3-47","previewPlaceholder":"magritte-preview-placeholder___yuhW1_1-3-47","gallery-item-loader":"magritte-gallery-item-loader___70TDe_1-3-47","galleryItemLoader":"magritte-gallery-item-loader___70TDe_1-3-47","gallery-item-error-container":"magritte-gallery-item-error-container___Z-HyZ_1-3-47","galleryItemErrorContainer":"magritte-gallery-item-error-container___Z-HyZ_1-3-47","description-bottom-sheet-content":"magritte-description-bottom-sheet-content___swnEV_1-3-47","descriptionBottomSheetContent":"magritte-description-bottom-sheet-content___swnEV_1-3-47","header":"magritte-header___egZXt_1-3-47","footer":"magritte-footer___rOH-M_1-3-47","description":"magritte-description___dYc-E_1-3-47"};
3
-
4
- export { styles as s };
5
- //# sourceMappingURL=media-viewer-DG2hhLCD.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"media-viewer-DG2hhLCD.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}