@rstest/browser 0.8.2 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  (()=>{
2
2
  "use strict";
3
3
  var e, t, s, l, o, a, r = {
4
- 3174 (e, t, s) {
5
- var l = s(8525), o = s(3783), a = s(318), r = s(8100), i = s(9081), n = s(8181);
4
+ 2976 (e, t, s) {
5
+ var l = s(6730), o = s(1675), a = s(4869), r = s(4831), i = s(162), n = s(2739);
6
6
  let c = (e)=>{
7
7
  let { message: t } = e;
8
8
  return (0, l.jsx)("div", {
@@ -13,8 +13,8 @@
13
13
  })
14
14
  });
15
15
  };
16
- var d = s(883), p = s(8085), f = s(4107), u = s(8754), x = s(7936);
17
- let h = (e, t)=>{
16
+ var d = s(4548), p = s(5666), h = s(4048), u = s(5671), f = s(8779);
17
+ let x = (e, t)=>{
18
18
  if (!t) return e;
19
19
  let s = t.endsWith("/") ? t.slice(0, -1) : t;
20
20
  if (e.startsWith(s)) {
@@ -22,7 +22,7 @@
22
22
  return t.startsWith("/") ? t.slice(1) : t;
23
23
  }
24
24
  return e;
25
- }, g = (e)=>{
25
+ }, m = (e)=>{
26
26
  var t;
27
27
  null == (t = window.parent) || t.postMessage({
28
28
  type: "open-in-editor",
@@ -31,12 +31,12 @@
31
31
  }
32
32
  }, "*"), fetch(`/__open-in-editor?file=${encodeURIComponent(e)}`).catch(()=>{});
33
33
  };
34
- var m = s(2060), j = s(4708), v = s(1458), y = s(902), _ = s(3461);
35
- let C = {
34
+ var g = s(337), j = s(673), v = s(5911), y = s(5791), _ = s(5894);
35
+ let w = {
36
36
  idle: {
37
37
  label: "Idle",
38
38
  color: "var(--accents-5)",
39
- icon: (0, l.jsx)(m.A, {
39
+ icon: (0, l.jsx)(g.A, {
40
40
  size: 14,
41
41
  strokeWidth: 2.5
42
42
  })
@@ -66,8 +66,8 @@
66
66
  strokeWidth: 2.5
67
67
  })
68
68
  }
69
- }, F = {
70
- ...C,
69
+ }, C = {
70
+ ...w,
71
71
  skip: {
72
72
  label: "Skip",
73
73
  color: "var(--accents-4)",
@@ -76,10 +76,322 @@
76
76
  strokeWidth: 2.5
77
77
  })
78
78
  }
79
- }, k = (e)=>{
80
- let { token: t, activeFile: s, rootPath: o, status: a } = e, { message: i } = r.A.useApp(), n = a ? C[a] : void 0, c = s ? h(s, o) : "", m = c.split("/"), j = m.pop(), v = m.join("/"), y = async ()=>{
81
- c && (await navigator.clipboard.writeText(c), i.success("relative path copied"));
82
- }, _ = "pass" === a ? "green" : "fail" === a ? "red" : "running" === a ? "amber" : null;
79
+ };
80
+ var b = s(8062), k = s(3002), F = s(9193), S = s(904), N = s(3809), A = s(9606), M = s(7009), z = s(7351);
81
+ let P = [
82
+ {
83
+ id: "iPhoneSE",
84
+ label: "iPhone SE",
85
+ width: 375,
86
+ height: 667
87
+ },
88
+ {
89
+ id: "iPhoneXR",
90
+ label: "iPhone XR",
91
+ width: 414,
92
+ height: 896
93
+ },
94
+ {
95
+ id: "iPhone12Pro",
96
+ label: "iPhone 12 Pro",
97
+ width: 390,
98
+ height: 844
99
+ },
100
+ {
101
+ id: "iPhone14ProMax",
102
+ label: "iPhone 14 Pro Max",
103
+ width: 430,
104
+ height: 932
105
+ },
106
+ {
107
+ id: "Pixel7",
108
+ label: "Pixel 7",
109
+ width: 412,
110
+ height: 915
111
+ },
112
+ {
113
+ id: "SamsungGalaxyS8Plus",
114
+ label: "Samsung Galaxy S8+",
115
+ width: 360,
116
+ height: 740
117
+ },
118
+ {
119
+ id: "SamsungGalaxyS20Ultra",
120
+ label: "Samsung Galaxy S20 Ultra",
121
+ width: 412,
122
+ height: 915
123
+ },
124
+ {
125
+ id: "iPadMini",
126
+ label: "iPad Mini",
127
+ width: 768,
128
+ height: 1024
129
+ },
130
+ {
131
+ id: "iPadAir",
132
+ label: "iPad Air",
133
+ width: 820,
134
+ height: 1180
135
+ },
136
+ {
137
+ id: "iPadPro",
138
+ label: "iPad Pro",
139
+ width: 1024,
140
+ height: 1366
141
+ },
142
+ {
143
+ id: "SurfacePro7",
144
+ label: "Surface Pro 7",
145
+ width: 912,
146
+ height: 1368
147
+ },
148
+ {
149
+ id: "SurfaceDuo",
150
+ label: "Surface Duo",
151
+ width: 540,
152
+ height: 720
153
+ },
154
+ {
155
+ id: "GalaxyZFold5",
156
+ label: "Galaxy Z Fold 5",
157
+ width: 344,
158
+ height: 882
159
+ },
160
+ {
161
+ id: "AsusZenbookFold",
162
+ label: "Asus Zenbook Fold",
163
+ width: 853,
164
+ height: 1280
165
+ },
166
+ {
167
+ id: "SamsungGalaxyA51A71",
168
+ label: "Samsung Galaxy A51/71",
169
+ width: 412,
170
+ height: 914
171
+ },
172
+ {
173
+ id: "NestHub",
174
+ label: "Nest Hub",
175
+ width: 1024,
176
+ height: 600
177
+ },
178
+ {
179
+ id: "NestHubMax",
180
+ label: "Nest Hub Max",
181
+ width: 1280,
182
+ height: 800
183
+ }
184
+ ], O = new Set(P.map((e)=>e.id)), R = (e)=>"string" == typeof e && O.has(e), U = (e)=>{
185
+ let t = P.find((t)=>t.id === e);
186
+ if (!t) throw Error(`Unknown device preset: ${e}`);
187
+ return t;
188
+ }, E = (e, t, s)=>Math.min(s, Math.max(t, e)), T = (e)=>{
189
+ let { token: t, value: s, onChange: o } = e, [a, r] = (0, i.useState)(!1), n = (0, i.useRef)({
190
+ width: 800,
191
+ height: 600
192
+ });
193
+ "responsive" === s.mode && (n.current = {
194
+ width: s.width,
195
+ height: s.height
196
+ });
197
+ let c = "full" === s.mode ? "full" : "responsive" === s.mode ? "responsive" : s.preset, h = (0, i.useMemo)(()=>[
198
+ {
199
+ value: "full",
200
+ label: "Full"
201
+ },
202
+ {
203
+ value: "responsive",
204
+ label: "Responsive"
205
+ },
206
+ ...P.map((e)=>{
207
+ let t;
208
+ return {
209
+ value: e.id,
210
+ label: (t = U(e.id), `${t.label} (${t.width} x ${t.height})`)
211
+ };
212
+ })
213
+ ], []), u = (0, l.jsxs)("div", {
214
+ className: "w-[280px]",
215
+ "data-testid": "viewport-popover",
216
+ children: [
217
+ (0, l.jsxs)("div", {
218
+ className: "flex items-center gap-2",
219
+ children: [
220
+ (0, l.jsx)(b.A, {
221
+ value: c,
222
+ options: h,
223
+ listHeight: 280,
224
+ dropdownStyle: {
225
+ maxHeight: 280,
226
+ overflowY: "auto"
227
+ },
228
+ onChange: (e)=>{
229
+ if ("full" === e) {
230
+ o({
231
+ mode: "full"
232
+ }), r(!1);
233
+ return;
234
+ }
235
+ "responsive" === e ? o({
236
+ mode: "responsive",
237
+ ..."responsive" === s.mode ? {
238
+ width: s.width,
239
+ height: s.height
240
+ } : n.current
241
+ }) : (o({
242
+ mode: "preset",
243
+ preset: e,
244
+ orientation: "preset" === s.mode && s.preset === e ? s.orientation : "portrait"
245
+ }), r(!1));
246
+ },
247
+ size: "small",
248
+ className: "flex-1",
249
+ popupMatchSelectWidth: !1,
250
+ "data-testid": "viewport-preset-select"
251
+ }),
252
+ (0, l.jsx)(d.A, {
253
+ title: "Rotate",
254
+ mouseLeaveDelay: 0,
255
+ children: (0, l.jsx)(p.Ay, {
256
+ type: "text",
257
+ size: "small",
258
+ disabled: "full" === s.mode,
259
+ className: "flex h-7 w-7 items-center justify-center rounded-md p-0 text-(--accents-4) hover:text-foreground hover:bg-(--accents-1) transition-all",
260
+ "data-testid": "viewport-rotate",
261
+ "aria-label": "Rotate viewport",
262
+ icon: (0, l.jsx)(z.A, {
263
+ size: 14,
264
+ strokeWidth: 2.2
265
+ }),
266
+ onClick: ()=>{
267
+ if ("full" !== s.mode) {
268
+ if ("responsive" === s.mode) {
269
+ let e = {
270
+ mode: "responsive",
271
+ width: s.height,
272
+ height: s.width
273
+ };
274
+ n.current = {
275
+ width: e.width,
276
+ height: e.height
277
+ }, o(e);
278
+ return;
279
+ }
280
+ o({
281
+ mode: "preset",
282
+ preset: s.preset,
283
+ orientation: "portrait" === s.orientation ? "landscape" : "portrait"
284
+ });
285
+ }
286
+ }
287
+ })
288
+ })
289
+ ]
290
+ }),
291
+ "responsive" === s.mode && (0, l.jsxs)("div", {
292
+ className: "mt-3 flex items-center gap-2",
293
+ "data-testid": "viewport-inputs",
294
+ children: [
295
+ (0, l.jsx)(k.A, {
296
+ min: 1,
297
+ max: 1e4,
298
+ step: 1,
299
+ controls: !1,
300
+ value: s.width,
301
+ onChange: (e)=>{
302
+ let t = E(Number(e ?? s.width), 1, 1e4);
303
+ n.current = {
304
+ width: t,
305
+ height: s.height
306
+ }, o({
307
+ mode: "responsive",
308
+ width: t,
309
+ height: s.height
310
+ });
311
+ },
312
+ size: "small",
313
+ className: "w-[120px]",
314
+ "data-testid": "viewport-width-input",
315
+ "aria-label": "Viewport width"
316
+ }),
317
+ (0, l.jsx)("span", {
318
+ className: "text-(--accents-4) select-none",
319
+ children: "x"
320
+ }),
321
+ (0, l.jsx)(k.A, {
322
+ min: 1,
323
+ max: 1e4,
324
+ step: 1,
325
+ controls: !1,
326
+ value: s.height,
327
+ onChange: (e)=>{
328
+ let t = E(Number(e ?? s.height), 1, 1e4);
329
+ n.current = {
330
+ width: s.width,
331
+ height: t
332
+ }, o({
333
+ mode: "responsive",
334
+ width: s.width,
335
+ height: t
336
+ });
337
+ },
338
+ size: "small",
339
+ className: "w-[120px]",
340
+ "data-testid": "viewport-height-input",
341
+ "aria-label": "Viewport height"
342
+ })
343
+ ]
344
+ })
345
+ ]
346
+ });
347
+ return (0, l.jsx)(F.A, {
348
+ content: u,
349
+ trigger: "click",
350
+ open: a,
351
+ onOpenChange: r,
352
+ placement: "bottomRight",
353
+ children: (0, l.jsxs)(p.Ay, {
354
+ type: "text",
355
+ size: "small",
356
+ className: "flex h-7 items-center gap-2 rounded-md px-2 text-(--accents-6) hover:text-foreground hover:bg-(--accents-1) transition-all",
357
+ "data-testid": "viewport-button",
358
+ "aria-label": "Viewport",
359
+ children: [
360
+ (0, l.jsx)("span", {
361
+ className: "flex h-4 w-4 items-center justify-center text-(--accents-5)",
362
+ children: ((e)=>{
363
+ if ("full" === e.mode) return (0, l.jsx)(S.A, {
364
+ size: 14,
365
+ strokeWidth: 2.2
366
+ });
367
+ if ("responsive" === e.mode) return (0, l.jsx)(N.A, {
368
+ size: 14,
369
+ strokeWidth: 2.2
370
+ });
371
+ let t = U(e.preset).label;
372
+ return t.startsWith("iPad") || t.startsWith("Surface") || t.startsWith("Nest Hub") || t.includes("Fold") ? (0, l.jsx)(A.A, {
373
+ size: 14,
374
+ strokeWidth: 2.2
375
+ }) : (0, l.jsx)(M.A, {
376
+ size: 14,
377
+ strokeWidth: 2.2
378
+ });
379
+ })(s)
380
+ }),
381
+ (0, l.jsx)("span", {
382
+ className: "text-[12px] font-mono tracking-tight leading-none",
383
+ style: {
384
+ color: t.colorTextSecondary
385
+ },
386
+ children: "full" === s.mode ? "Full" : "responsive" === s.mode ? `${s.width} x ${s.height}` : U(s.preset).label
387
+ })
388
+ ]
389
+ })
390
+ });
391
+ }, B = (e)=>{
392
+ let { token: t, activeFile: s, rootPath: o, status: a, viewport: i, onViewportChange: n } = e, { message: c } = r.A.useApp(), g = a ? w[a] : void 0, j = s ? x(s, o) : "", v = j.split("/"), y = v.pop(), _ = v.join("/"), C = async ()=>{
393
+ j && (await navigator.clipboard.writeText(j), c.success("relative path copied"));
394
+ }, b = "pass" === a ? "green" : "fail" === a ? "red" : "running" === a ? "amber" : null;
83
395
  return (0, l.jsxs)("div", {
84
396
  className: "flex h-[48px] items-center justify-between px-4",
85
397
  "data-testid": "preview-header",
@@ -91,7 +403,7 @@
91
403
  (0, l.jsxs)("div", {
92
404
  className: "flex items-center gap-2 overflow-hidden",
93
405
  children: [
94
- (0, l.jsx)(f.A, {
406
+ (0, l.jsx)(h.A, {
95
407
  size: 16,
96
408
  strokeWidth: 2,
97
409
  className: "shrink-0 text-(--accents-7)"
@@ -99,12 +411,12 @@
99
411
  (0, l.jsxs)("div", {
100
412
  className: "flex items-center gap-1.5 overflow-hidden",
101
413
  children: [
102
- v && (0, l.jsxs)(l.Fragment, {
414
+ _ && (0, l.jsxs)(l.Fragment, {
103
415
  children: [
104
416
  (0, l.jsx)("span", {
105
417
  className: "text-[12px] font-mono tracking-tight text-(--accents-5) truncate max-w-[400px] hover:text-(--accents-6) transition-colors cursor-default",
106
- title: v,
107
- children: v
418
+ title: _,
419
+ children: _
108
420
  }),
109
421
  (0, l.jsx)("span", {
110
422
  className: "text-(--accents-3) font-light select-none shrink-0",
@@ -112,12 +424,12 @@
112
424
  })
113
425
  ]
114
426
  }),
115
- j ? (0, l.jsxs)("div", {
427
+ y ? (0, l.jsxs)("div", {
116
428
  className: "flex items-center gap-1.5 shrink-0",
117
429
  children: [
118
430
  (0, l.jsx)("span", {
119
431
  className: "text-[12px] font-mono font-semibold tracking-tight text-foreground",
120
- children: j
432
+ children: y
121
433
  }),
122
434
  s && (0, l.jsxs)("div", {
123
435
  className: "flex items-center",
@@ -137,7 +449,7 @@
137
449
  size: 12,
138
450
  strokeWidth: 2.5
139
451
  }),
140
- onClick: y
452
+ onClick: C
141
453
  })
142
454
  }),
143
455
  (0, l.jsx)(d.A, {
@@ -148,11 +460,11 @@
148
460
  size: "small",
149
461
  className: "flex h-5 w-5 items-center justify-center rounded-md p-0 text-(--accents-4) hover:text-foreground hover:bg-(--accents-1) transition-all",
150
462
  "data-testid": "preview-open-editor",
151
- icon: (0, l.jsx)(x.A, {
463
+ icon: (0, l.jsx)(f.A, {
152
464
  size: 12,
153
465
  strokeWidth: 2.5
154
466
  }),
155
- onClick: ()=>g(s),
467
+ onClick: ()=>m(s),
156
468
  style: {
157
469
  color: t.colorTextDescription
158
470
  }
@@ -169,21 +481,31 @@
169
481
  })
170
482
  ]
171
483
  }),
172
- n && _ && (0, l.jsx)("div", {
173
- className: "flex items-center rounded-md px-2 py-0.5 text-[10px] font-semibold tracking-wider transition-colors shrink-0",
174
- style: {
175
- backgroundColor: `var(--ds-${_}-100)`,
176
- color: `var(--ds-${_}-900)`,
177
- border: `1px solid var(--ds-${_}-300)`
178
- },
179
- children: n.label.toUpperCase()
484
+ (0, l.jsxs)("div", {
485
+ className: "flex items-center gap-3 shrink-0",
486
+ children: [
487
+ i && n && (0, l.jsx)(T, {
488
+ token: t,
489
+ value: i,
490
+ onChange: n
491
+ }),
492
+ g && b && (0, l.jsx)("div", {
493
+ className: "flex items-center rounded-md px-2 py-0.5 text-[10px] font-semibold tracking-wider transition-colors shrink-0",
494
+ style: {
495
+ backgroundColor: `var(--ds-${b}-100)`,
496
+ color: `var(--ds-${b}-900)`,
497
+ border: `1px solid var(--ds-${b}-300)`
498
+ },
499
+ children: g.label.toUpperCase()
500
+ })
501
+ ]
180
502
  })
181
503
  ]
182
504
  });
183
505
  };
184
- var b = s(806);
185
- let S = (e)=>{
186
- let { className: t, style: s, direction: o = "horizontal", children: a, autoSaveId: r, ...n } = e, c = i.Children.toArray(a).filter((e)=>i.isValidElement(e) && e.type === w), d = i.useCallback(()=>{
506
+ var $ = s(2400);
507
+ let W = (e)=>{
508
+ let { className: t, style: s, direction: o = "horizontal", children: a, autoSaveId: r, ...n } = e, c = i.Children.toArray(a).filter((e)=>i.isValidElement(e) && e.type === D), d = i.useCallback(()=>{
187
509
  if (!r) return null;
188
510
  try {
189
511
  let e = localStorage.getItem(r);
@@ -204,14 +526,14 @@
204
526
  max: o ? `${o}%` : void 0,
205
527
  children: a
206
528
  };
207
- }), f = i.useCallback((e)=>{
529
+ }), h = i.useCallback((e)=>{
208
530
  if (r) try {
209
531
  localStorage.setItem(r, JSON.stringify(e));
210
532
  } catch {}
211
533
  }, [
212
534
  r
213
535
  ]);
214
- return (0, l.jsx)(b.A, {
536
+ return (0, l.jsx)($.A, {
215
537
  layout: "horizontal" === o ? "horizontal" : "vertical",
216
538
  className: t,
217
539
  style: {
@@ -221,21 +543,21 @@
221
543
  margin: 0,
222
544
  ...s
223
545
  },
224
- onResizeEnd: f,
546
+ onResizeEnd: h,
225
547
  ...n,
226
- children: p.map((e)=>(0, l.jsx)(b.A.Panel, {
548
+ children: p.map((e)=>(0, l.jsx)($.A.Panel, {
227
549
  ...e,
228
550
  children: e.children
229
551
  }, `panel-${e.defaultSize}-${e.min}-${e.max}`))
230
552
  });
231
- }, w = (e)=>{
553
+ }, D = (e)=>{
232
554
  let { children: t } = e;
233
555
  return (0, l.jsx)(l.Fragment, {
234
556
  children: t
235
557
  });
236
558
  };
237
- var A = s(4559), N = s(5053), M = s(878);
238
- let z = (e)=>(0, l.jsxs)("svg", {
559
+ var Z = s(4114), G = s(6518), L = s(8219);
560
+ let I = (e)=>(0, l.jsxs)("svg", {
239
561
  xmlns: "http://www.w3.org/2000/svg",
240
562
  fill: "none",
241
563
  viewBox: "0 0 217 200",
@@ -1128,24 +1450,24 @@
1128
1450
  ]
1129
1451
  })
1130
1452
  ]
1131
- }), O = (e)=>{
1132
- let { theme: t, onThemeToggle: s, isConnected: o, token: a, counts: r } = e, [n, c] = (0, i.useState)(0), f = (0, i.useRef)(r);
1453
+ }), H = (e)=>{
1454
+ let { theme: t, onThemeToggle: s, isConnected: o, token: a, counts: r } = e, [n, c] = (0, i.useState)(0), h = (0, i.useRef)(r);
1133
1455
  (0, i.useEffect)(()=>{
1134
- let e = f.current;
1456
+ let e = h.current;
1135
1457
  if (e.pass !== r.pass || e.fail !== r.fail || e.running !== r.running) {
1136
1458
  let e = setTimeout(()=>{
1137
1459
  c((e)=>e + 1);
1138
1460
  }, 100);
1139
1461
  return ()=>clearTimeout(e);
1140
1462
  }
1141
- f.current = r;
1463
+ h.current = r;
1142
1464
  }, [
1143
1465
  r
1144
1466
  ]);
1145
- let u = r.idle + r.running + r.pass + r.fail + r.skip, x = (e)=>0 === u ? 0 : e / u * 100, h = x(r.pass), g = x(r.fail), m = x(r.running), j = {
1146
- system: A.A,
1147
- light: N.A,
1148
- dark: M.A
1467
+ let u = r.idle + r.running + r.pass + r.fail + r.skip, f = (e)=>0 === u ? 0 : e / u * 100, x = f(r.pass), m = f(r.fail), g = f(r.running), j = {
1468
+ system: Z.A,
1469
+ light: G.A,
1470
+ dark: L.A
1149
1471
  }[t];
1150
1472
  return (0, l.jsxs)("div", {
1151
1473
  className: "relative flex h-[48px] items-center justify-between px-4",
@@ -1157,7 +1479,7 @@
1157
1479
  (0, l.jsxs)("div", {
1158
1480
  className: "flex items-center gap-2",
1159
1481
  children: [
1160
- (0, l.jsx)(z, {
1482
+ (0, l.jsx)(I, {
1161
1483
  className: "h-6 transition-all"
1162
1484
  }),
1163
1485
  (0, l.jsxs)("div", {
@@ -1223,7 +1545,7 @@
1223
1545
  (0, l.jsx)("div", {
1224
1546
  className: `absolute inset-y-0 left-0 h-full transition-all duration-500 ease-[cubic-bezier(0.4,0,0.2,1)] ${n > 0 ? "progress-flash-active" : ""}`,
1225
1547
  style: {
1226
- width: `${h}%`,
1548
+ width: `${x}%`,
1227
1549
  background: "var(--ds-green-700)",
1228
1550
  zIndex: 3,
1229
1551
  color: "var(--ds-green-700)"
@@ -1232,7 +1554,7 @@
1232
1554
  (0, l.jsx)("div", {
1233
1555
  className: `absolute inset-y-0 left-0 h-full transition-all duration-500 ease-[cubic-bezier(0.4,0,0.2,1)] ${n > 0 ? "progress-flash-active" : ""}`,
1234
1556
  style: {
1235
- width: `${h + g}%`,
1557
+ width: `${x + m}%`,
1236
1558
  background: "var(--ds-red-800)",
1237
1559
  zIndex: 2,
1238
1560
  color: "var(--ds-red-800)"
@@ -1241,7 +1563,7 @@
1241
1563
  (0, l.jsx)("div", {
1242
1564
  className: `absolute inset-y-0 left-0 h-full transition-all duration-500 ease-[cubic-bezier(0.4,0,0.2,1)] ${n > 0 ? "progress-flash-active" : ""}`,
1243
1565
  style: {
1244
- width: `${h + g + m}%`,
1566
+ width: `${x + m + g}%`,
1245
1567
  background: "var(--ds-amber-700)",
1246
1568
  zIndex: 1,
1247
1569
  color: "var(--ds-amber-700)"
@@ -1252,8 +1574,8 @@
1252
1574
  ]
1253
1575
  });
1254
1576
  };
1255
- var U = s(9036), E = s(8647), P = s(5862), R = s(1675), T = s(9559), B = s(8477);
1256
- let $ = (0, i.memo)((e)=>{
1577
+ var q = s(9928), J = s(8524), V = s(4861), K = s(1592), X = s(5726), Y = s(2446);
1578
+ let Q = (0, i.memo)((e)=>{
1257
1579
  let { counts: t, isRunning: s } = e, o = s && 0 === t.running;
1258
1580
  return (0, l.jsx)("div", {
1259
1581
  className: "flex h-6 cursor-default select-none items-center",
@@ -1277,7 +1599,7 @@
1277
1599
  }
1278
1600
  ].map((e)=>{
1279
1601
  let s = t[e.key] || 0, a = "running" === e.key;
1280
- return (0, l.jsxs)(B.A, {
1602
+ return (0, l.jsxs)(Y.A, {
1281
1603
  className: `m-0 flex items-center gap-1 px-2 py-0 border-0 ${a && o ? "animate-pulse" : ""}`,
1282
1604
  style: {
1283
1605
  display: "flex",
@@ -1311,7 +1633,7 @@
1311
1633
  })
1312
1634
  })
1313
1635
  });
1314
- }), D = (e)=>{
1636
+ }), ee = (e)=>{
1315
1637
  let { token: t, filterText: s, onFilterChange: o, isAllExpanded: a, onToggleExpandAll: r, onRerun: i, counts: n, isRunning: c } = e;
1316
1638
  return (0, l.jsxs)("div", {
1317
1639
  className: "flex flex-col gap-3 px-4 py-3",
@@ -1324,7 +1646,7 @@
1324
1646
  className: "flex items-center justify-between",
1325
1647
  children: [
1326
1648
  (0, l.jsx)("div", {
1327
- children: (0, l.jsx)($, {
1649
+ children: (0, l.jsx)(Q, {
1328
1650
  counts: n,
1329
1651
  isRunning: c
1330
1652
  })
@@ -1338,10 +1660,10 @@
1338
1660
  children: (0, l.jsx)(p.Ay, {
1339
1661
  type: "text",
1340
1662
  size: "small",
1341
- icon: a ? (0, l.jsx)(E.A, {
1663
+ icon: a ? (0, l.jsx)(J.A, {
1342
1664
  size: 13,
1343
1665
  strokeWidth: 2.5
1344
- }) : (0, l.jsx)(P.A, {
1666
+ }) : (0, l.jsx)(V.A, {
1345
1667
  size: 13,
1346
1668
  strokeWidth: 2.5
1347
1669
  }),
@@ -1359,7 +1681,7 @@
1359
1681
  children: (0, l.jsx)(p.Ay, {
1360
1682
  type: "text",
1361
1683
  size: "small",
1362
- icon: (0, l.jsx)(R.A, {
1684
+ icon: (0, l.jsx)(K.A, {
1363
1685
  size: 15,
1364
1686
  strokeWidth: 2.5
1365
1687
  }),
@@ -1376,9 +1698,9 @@
1376
1698
  })
1377
1699
  ]
1378
1700
  }),
1379
- (0, l.jsx)(U.A, {
1701
+ (0, l.jsx)(q.A, {
1380
1702
  placeholder: "Search tests...",
1381
- prefix: (0, l.jsx)(T.A, {
1703
+ prefix: (0, l.jsx)(X.A, {
1382
1704
  size: 14,
1383
1705
  strokeWidth: 2.5,
1384
1706
  className: "opacity-40"
@@ -1392,18 +1714,18 @@
1392
1714
  ]
1393
1715
  });
1394
1716
  };
1395
- var W = s(1066), Z = s(354), L = s(3232), G = s(8777), I = s(1835);
1396
- let q = [
1717
+ var et = s(2676), es = s(864), el = s(4908), eo = s(1556), ea = s(6340);
1718
+ let er = [
1397
1719
  "pass",
1398
1720
  "fail",
1399
1721
  "skip"
1400
- ], J = (e)=>{
1401
- let { icon: t, iconColor: s, status: o, label: a, caseId: r, onRerun: n, buttonTextColor: c } = e, f = (0, i.useRef)(null), [u, x] = (0, i.useState)(0), h = q.includes(o);
1722
+ ], ei = (e)=>{
1723
+ let { icon: t, iconColor: s, status: o, label: a, caseId: r, onRerun: n, buttonTextColor: c } = e, h = (0, i.useRef)(null), [u, f] = (0, i.useState)(0), x = er.includes(o);
1402
1724
  return (0, i.useEffect)(()=>{
1403
- h && null !== f.current && f.current !== o && x((e)=>e + 1), f.current = o;
1725
+ x && null !== h.current && h.current !== o && f((e)=>e + 1), h.current = o;
1404
1726
  }, [
1405
1727
  o,
1406
- h
1728
+ x
1407
1729
  ]), (0, l.jsxs)("div", {
1408
1730
  className: "group grid w-full grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-2",
1409
1731
  "data-testid": "test-case-title",
@@ -1432,7 +1754,7 @@
1432
1754
  children: (0, l.jsx)(p.Ay, {
1433
1755
  type: "text",
1434
1756
  size: "small",
1435
- icon: (0, l.jsx)(R.A, {
1757
+ icon: (0, l.jsx)(K.A, {
1436
1758
  size: 14,
1437
1759
  strokeWidth: 2.5
1438
1760
  }),
@@ -1450,28 +1772,28 @@
1450
1772
  })
1451
1773
  ]
1452
1774
  });
1453
- }, H = [
1775
+ }, en = [
1454
1776
  "pass",
1455
1777
  "fail"
1456
- ], K = (e)=>{
1457
- let { icon: t, iconColor: s, status: o, relativePath: a, filePath: r, onOpen: n, onRerun: c, textColor: f } = e, u = (0, i.useRef)(null), [h, g] = (0, i.useState)(0), m = H.includes(o);
1778
+ ], ec = (e)=>{
1779
+ let { icon: t, iconColor: s, status: o, relativePath: a, filePath: r, onOpen: n, onRerun: c, textColor: h } = e, u = (0, i.useRef)(null), [x, m] = (0, i.useState)(0), g = en.includes(o);
1458
1780
  return (0, i.useEffect)(()=>{
1459
- m && null !== u.current && u.current !== o && g((e)=>e + 1), u.current = o;
1781
+ g && null !== u.current && u.current !== o && m((e)=>e + 1), u.current = o;
1460
1782
  }, [
1461
1783
  o,
1462
- m
1784
+ g
1463
1785
  ]), (0, l.jsxs)("div", {
1464
1786
  className: "group grid w-full grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-2",
1465
1787
  "data-testid": "test-file-title",
1466
1788
  "data-test-file": r,
1467
1789
  children: [
1468
1790
  (0, l.jsx)("span", {
1469
- className: `flex w-[16px] shrink-0 items-center justify-center ${h > 0 ? "status-icon-flash" : ""}`,
1791
+ className: `flex w-[16px] shrink-0 items-center justify-center ${x > 0 ? "status-icon-flash" : ""}`,
1470
1792
  style: {
1471
1793
  color: s
1472
1794
  },
1473
1795
  children: t
1474
- }, h),
1796
+ }, x),
1475
1797
  (0, l.jsx)(d.A, {
1476
1798
  title: a,
1477
1799
  styles: {
@@ -1495,7 +1817,7 @@
1495
1817
  children: (0, l.jsx)(p.Ay, {
1496
1818
  type: "text",
1497
1819
  size: "small",
1498
- icon: (0, l.jsx)(x.A, {
1820
+ icon: (0, l.jsx)(f.A, {
1499
1821
  size: 14,
1500
1822
  strokeWidth: 2.5
1501
1823
  }),
@@ -1505,7 +1827,7 @@
1505
1827
  className: "inline-flex h-5 w-5 items-center justify-center p-0",
1506
1828
  "data-testid": "test-file-open-editor",
1507
1829
  style: {
1508
- color: f
1830
+ color: h
1509
1831
  }
1510
1832
  })
1511
1833
  }),
@@ -1515,7 +1837,7 @@
1515
1837
  children: (0, l.jsx)(p.Ay, {
1516
1838
  type: "text",
1517
1839
  size: "small",
1518
- icon: (0, l.jsx)(R.A, {
1840
+ icon: (0, l.jsx)(K.A, {
1519
1841
  size: 14,
1520
1842
  strokeWidth: 2.5
1521
1843
  }),
@@ -1526,7 +1848,7 @@
1526
1848
  className: "inline-flex h-5 w-5 items-center justify-center p-0",
1527
1849
  "data-testid": "test-file-rerun",
1528
1850
  style: {
1529
- color: f
1851
+ color: h
1530
1852
  }
1531
1853
  })
1532
1854
  })
@@ -1534,17 +1856,17 @@
1534
1856
  })
1535
1857
  ]
1536
1858
  });
1537
- }, V = [
1859
+ }, ed = [
1538
1860
  "pass",
1539
1861
  "fail",
1540
1862
  "skip"
1541
- ], Q = (e)=>{
1542
- let { icon: t, iconColor: s, status: o, name: a, fullName: r, onRerun: n, buttonTextColor: c } = e, f = (0, i.useRef)(null), [u, x] = (0, i.useState)(0), h = V.includes(o);
1863
+ ], ep = (e)=>{
1864
+ let { icon: t, iconColor: s, status: o, name: a, fullName: r, onRerun: n, buttonTextColor: c } = e, h = (0, i.useRef)(null), [u, f] = (0, i.useState)(0), x = ed.includes(o);
1543
1865
  return (0, i.useEffect)(()=>{
1544
- h && null !== f.current && f.current !== o && x((e)=>e + 1), f.current = o;
1866
+ x && null !== h.current && h.current !== o && f((e)=>e + 1), h.current = o;
1545
1867
  }, [
1546
1868
  o,
1547
- h
1869
+ x
1548
1870
  ]), (0, l.jsxs)("div", {
1549
1871
  className: "group grid w-full grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-2",
1550
1872
  "data-testid": "test-suite-title",
@@ -1573,7 +1895,7 @@
1573
1895
  children: (0, l.jsx)(p.Ay, {
1574
1896
  type: "text",
1575
1897
  size: "small",
1576
- icon: (0, l.jsx)(R.A, {
1898
+ icon: (0, l.jsx)(K.A, {
1577
1899
  size: 14,
1578
1900
  strokeWidth: 2.5
1579
1901
  }),
@@ -1591,8 +1913,8 @@
1591
1913
  })
1592
1914
  ]
1593
1915
  });
1594
- }, X = (e)=>{
1595
- let { testFiles: t, statusMap: s, caseMap: o, rootPath: a, projects: r, loading: n, connected: c, openFiles: d, activeFile: p, token: f, filterText: u, onExpandChange: x, onSelect: m, onRerunFile: j, onRerunTestCase: v } = e, { filteredTestFiles: y, filteredCaseMap: _ } = (0, i.useMemo)(()=>{
1916
+ }, eh = (e)=>{
1917
+ let { testFiles: t, statusMap: s, caseMap: o, rootPath: a, projects: r, loading: n, connected: c, openFiles: d, activeFile: p, token: h, filterText: u, onExpandChange: f, onSelect: g, onRerunFile: j, onRerunTestCase: v } = e, { filteredTestFiles: y, filteredCaseMap: _ } = (0, i.useMemo)(()=>{
1596
1918
  if (!u.trim()) return {
1597
1919
  filteredTestFiles: t,
1598
1920
  filteredCaseMap: o
@@ -1611,7 +1933,7 @@
1611
1933
  t,
1612
1934
  o,
1613
1935
  u
1614
- ]), k = (0, i.useCallback)((e, t)=>{
1936
+ ]), b = (0, i.useCallback)((e, t)=>{
1615
1937
  if (0 === t.length) return [
1616
1938
  {
1617
1939
  key: `${e}::__empty`,
@@ -1652,10 +1974,10 @@
1652
1974
  }, a = (t, s)=>{
1653
1975
  let r = [];
1654
1976
  for (let i of t.children.values()){
1655
- let t = o(i), n = F[t], d = `${s}::suite::${i.fullPath.join("::")}`, p = i.fullPath.join(" ");
1977
+ let t = o(i), n = C[t], d = `${s}::suite::${i.fullPath.join("::")}`, p = i.fullPath.join(" ");
1656
1978
  r.push({
1657
1979
  key: d,
1658
- title: (0, l.jsx)(Q, {
1980
+ title: (0, l.jsx)(ep, {
1659
1981
  icon: n.icon,
1660
1982
  iconColor: n.color,
1661
1983
  status: t,
@@ -1664,17 +1986,17 @@
1664
1986
  onRerun: c ? ()=>{
1665
1987
  v(e, p);
1666
1988
  } : void 0,
1667
- buttonTextColor: f.colorTextSecondary
1989
+ buttonTextColor: h.colorTextSecondary
1668
1990
  }),
1669
1991
  children: a(i, d),
1670
1992
  selectable: !1
1671
1993
  });
1672
1994
  }
1673
1995
  for (let o of t.cases){
1674
- let t = F[o.status];
1996
+ let t = C[o.status];
1675
1997
  r.push({
1676
1998
  key: `${s}::case::${o.id}`,
1677
- title: (0, l.jsx)(J, {
1999
+ title: (0, l.jsx)(ei, {
1678
2000
  icon: t.icon,
1679
2001
  iconColor: t.color,
1680
2002
  status: o.status,
@@ -1683,7 +2005,7 @@
1683
2005
  onRerun: c ? ()=>{
1684
2006
  v(e, o.fullName);
1685
2007
  } : void 0,
1686
- buttonTextColor: f.colorTextSecondary
2008
+ buttonTextColor: h.colorTextSecondary
1687
2009
  }),
1688
2010
  isLeaf: !0,
1689
2011
  selectable: !1
@@ -1695,35 +2017,35 @@
1695
2017
  }, [
1696
2018
  c,
1697
2019
  v,
1698
- f.colorTextSecondary
1699
- ]), b = (0, i.useMemo)(()=>{
2020
+ h.colorTextSecondary
2021
+ ]), k = (0, i.useMemo)(()=>{
1700
2022
  let e = [
1701
2023
  ...new Set(y.map((e)=>e.projectName))
1702
2024
  ], t = new Map;
1703
2025
  for (let e of r)t.set(e.name, e.projectRoot);
1704
2026
  let o = (e, t)=>{
1705
- let o = e.testPath, r = s[o] ?? "idle", i = C[r], n = h(o, t ?? a), d = Object.values(_[o] ?? {});
2027
+ let o = e.testPath, r = s[o] ?? "idle", i = w[r], n = x(o, t ?? a), d = Object.values(_[o] ?? {});
1706
2028
  return {
1707
2029
  key: o,
1708
- title: (0, l.jsx)(K, {
2030
+ title: (0, l.jsx)(ec, {
1709
2031
  icon: i.icon,
1710
2032
  iconColor: i.color,
1711
2033
  status: r,
1712
2034
  relativePath: n,
1713
2035
  filePath: o,
1714
- onOpen: ()=>g(o),
2036
+ onOpen: ()=>m(o),
1715
2037
  onRerun: c ? ()=>{
1716
2038
  j(o);
1717
2039
  } : void 0,
1718
- textColor: f.colorTextSecondary
2040
+ textColor: h.colorTextSecondary
1719
2041
  }),
1720
- children: k(o, d)
2042
+ children: b(o, d)
1721
2043
  };
1722
2044
  };
1723
2045
  return e.length > 1 ? e.map((e)=>{
1724
2046
  let a = y.filter((t)=>t.projectName === e), r = `__project__${e}`, i = t.get(e), n = a.map((e)=>s[e.testPath] ?? "idle"), c = "idle";
1725
2047
  n.some((e)=>"fail" === e) ? c = "fail" : n.some((e)=>"running" === e) ? c = "running" : n.length > 0 && n.every((e)=>"pass" === e) && (c = "pass");
1726
- let d = C[c];
2048
+ let d = w[c];
1727
2049
  return {
1728
2050
  key: r,
1729
2051
  title: (0, l.jsxs)("div", {
@@ -1731,7 +2053,7 @@
1731
2053
  "data-testid": "test-project-title",
1732
2054
  "data-test-project": e,
1733
2055
  children: [
1734
- (0, l.jsx)(L.A, {
2056
+ (0, l.jsx)(el.A, {
1735
2057
  size: 14,
1736
2058
  style: {
1737
2059
  color: d.color
@@ -1742,7 +2064,7 @@
1742
2064
  (0, l.jsx)("span", {
1743
2065
  className: "truncate text-sm font-medium",
1744
2066
  style: {
1745
- color: f.colorText
2067
+ color: h.colorText
1746
2068
  },
1747
2069
  children: e
1748
2070
  })
@@ -1753,7 +2075,7 @@
1753
2075
  };
1754
2076
  }) : y.map((e)=>o(e));
1755
2077
  }, [
1756
- k,
2078
+ b,
1757
2079
  _,
1758
2080
  c,
1759
2081
  j,
@@ -1761,7 +2083,7 @@
1761
2083
  a,
1762
2084
  s,
1763
2085
  y,
1764
- f
2086
+ h
1765
2087
  ]);
1766
2088
  return n ? (0, l.jsx)("div", {
1767
2089
  className: "space-y-2 p-3",
@@ -1772,12 +2094,12 @@
1772
2094
  ].map((e)=>(0, l.jsxs)("div", {
1773
2095
  className: "flex items-center gap-2",
1774
2096
  children: [
1775
- (0, l.jsx)(W.A.Avatar, {
2097
+ (0, l.jsx)(et.A.Avatar, {
1776
2098
  active: !0,
1777
2099
  size: "small",
1778
2100
  shape: "circle"
1779
2101
  }),
1780
- (0, l.jsx)(W.A.Input, {
2102
+ (0, l.jsx)(et.A.Input, {
1781
2103
  active: !0,
1782
2104
  size: "small",
1783
2105
  style: {
@@ -1798,14 +2120,14 @@
1798
2120
  className: "text-(--muted-foreground)",
1799
2121
  children: "No matching tests found"
1800
2122
  })
1801
- }) : (0, l.jsx)(Z.A, {
2123
+ }) : (0, l.jsx)(es.A, {
1802
2124
  blockNode: !0,
1803
2125
  "data-testid": "test-files-tree",
1804
2126
  showLine: !1,
1805
- switcherIcon: (e)=>e.expanded ? (0, l.jsx)(G.A, {
2127
+ switcherIcon: (e)=>e.expanded ? (0, l.jsx)(eo.A, {
1806
2128
  size: 12,
1807
2129
  strokeWidth: 2.5
1808
- }) : (0, l.jsx)(I.A, {
2130
+ }) : (0, l.jsx)(ea.A, {
1809
2131
  size: 12,
1810
2132
  strokeWidth: 2.5
1811
2133
  }),
@@ -1815,12 +2137,12 @@
1815
2137
  selectedKeys: p ? [
1816
2138
  p
1817
2139
  ] : [],
1818
- onExpand: (e)=>x(e.filter((e)=>"string" == typeof e)),
2140
+ onExpand: (e)=>f(e.filter((e)=>"string" == typeof e)),
1819
2141
  onSelect: (e, t)=>{
1820
2142
  let s = t.node.key, l = y.map((e)=>e.testPath);
1821
- "string" == typeof s && l.includes(s) && m(s);
2143
+ "string" == typeof s && l.includes(s) && g(s);
1822
2144
  },
1823
- treeData: b,
2145
+ treeData: k,
1824
2146
  className: "bg-transparent",
1825
2147
  style: {
1826
2148
  marginLeft: "16px"
@@ -1832,28 +2154,216 @@
1832
2154
  children: "Reconnecting..."
1833
2155
  })
1834
2156
  });
1835
- };
1836
- var Y = s(9800);
1837
- let ee = function() {
1838
- for(var e, t = arguments.length, s = Array(t), l = 0; l < t; l++)s[l] = arguments[l];
1839
- (null == (e = window.__RSTEST_BROWSER_OPTIONS__) ? void 0 : e.debug) === !0 && console.log(...s);
1840
- }, et = [
2157
+ }, eu = (e)=>{
2158
+ if (!e) return {
2159
+ mode: "full"
2160
+ };
2161
+ if ("string" == typeof e && R(e)) return {
2162
+ mode: "preset",
2163
+ preset: e,
2164
+ orientation: "portrait"
2165
+ };
2166
+ if ("object" == typeof e) {
2167
+ let t = Number(e.width), s = Number(e.height);
2168
+ if (Number.isFinite(t) && t > 0 && Number.isFinite(s) && s > 0) return {
2169
+ mode: "responsive",
2170
+ width: t,
2171
+ height: s
2172
+ };
2173
+ }
2174
+ return {
2175
+ mode: "full"
2176
+ };
2177
+ }, ef = (e, t, s)=>Math.min(s, Math.max(t, e)), ex = (e)=>{
2178
+ let { token: t, selection: s, active: o, onResponsiveResize: a, children: r, ...n } = e, c = (0, i.useRef)(null), d = ((e)=>{
2179
+ if ("full" === e.mode) return null;
2180
+ if ("responsive" === e.mode) return {
2181
+ width: e.width,
2182
+ height: e.height
2183
+ };
2184
+ let t = U(e.preset);
2185
+ return "landscape" === e.orientation ? {
2186
+ width: t.height,
2187
+ height: t.width
2188
+ } : {
2189
+ width: t.width,
2190
+ height: t.height
2191
+ };
2192
+ })(s);
2193
+ return ((0, i.useLayoutEffect)(()=>{
2194
+ if (!o || "responsive" !== s.mode || !a) return;
2195
+ let e = c.current;
2196
+ if (!e) return;
2197
+ let t = !0, l = new ResizeObserver((e)=>{
2198
+ var l;
2199
+ let o = null == (l = e[0]) ? void 0 : l.contentRect;
2200
+ if (!o) return;
2201
+ if (t) {
2202
+ t = !1;
2203
+ return;
2204
+ }
2205
+ if (o.width <= 0 || o.height <= 0) return;
2206
+ let r = ef(Math.round(o.width), 1, 1e4), i = ef(Math.round(o.height), 1, 1e4);
2207
+ (r !== s.width || i !== s.height) && a({
2208
+ width: r,
2209
+ height: i
2210
+ });
2211
+ });
2212
+ return l.observe(e), ()=>l.disconnect();
2213
+ }, [
2214
+ o,
2215
+ s,
2216
+ a
2217
+ ]), d) ? (0, l.jsx)("div", {
2218
+ className: "flex h-full w-full items-start justify-center p-4 overflow-auto",
2219
+ children: (0, l.jsx)("div", {
2220
+ ref: c,
2221
+ className: "shrink-0 relative group",
2222
+ style: {
2223
+ width: d.width,
2224
+ height: d.height,
2225
+ boxSizing: "content-box",
2226
+ border: `1px solid ${t.colorBorder}`,
2227
+ borderRadius: 0,
2228
+ background: t.colorBgContainer,
2229
+ overflow: "hidden",
2230
+ resize: "responsive" === s.mode ? "both" : "none",
2231
+ minWidth: "responsive" === s.mode ? 1 : void 0,
2232
+ minHeight: "responsive" === s.mode ? 1 : void 0,
2233
+ maxWidth: "responsive" === s.mode ? 1e4 : void 0,
2234
+ maxHeight: "responsive" === s.mode ? 1e4 : void 0
2235
+ },
2236
+ ...n,
2237
+ children: r
2238
+ })
2239
+ }) : (0, l.jsx)("div", {
2240
+ className: "h-full w-full",
2241
+ style: {
2242
+ background: t.colorBgContainer
2243
+ },
2244
+ ...n,
2245
+ children: r
2246
+ });
2247
+ }, em = async (e, t, s)=>{
2248
+ if (!e || null === s || "function" != typeof s.postMessage) return;
2249
+ let l = (e)=>{
2250
+ s.postMessage({
2251
+ type: "__rstest_snapshot_response__",
2252
+ payload: e
2253
+ }, "*");
2254
+ };
2255
+ try {
2256
+ let s;
2257
+ switch(t.method){
2258
+ case "resolveSnapshotPath":
2259
+ s = await e.resolveSnapshotPath(t.args.testPath);
2260
+ break;
2261
+ case "readSnapshotFile":
2262
+ s = await e.readSnapshotFile(t.args.filepath);
2263
+ break;
2264
+ case "saveSnapshotFile":
2265
+ s = await e.saveSnapshotFile(t.args.filepath, t.args.content);
2266
+ break;
2267
+ case "removeSnapshotFile":
2268
+ s = await e.removeSnapshotFile(t.args.filepath);
2269
+ break;
2270
+ default:
2271
+ s = void 0;
2272
+ }
2273
+ l({
2274
+ id: t.id,
2275
+ result: s
2276
+ });
2277
+ } catch (e) {
2278
+ l({
2279
+ id: t.id,
2280
+ error: e instanceof Error ? e.message : String(e)
2281
+ });
2282
+ }
2283
+ }, eg = [
1841
2284
  1e3,
1842
2285
  2e3,
1843
2286
  4e3,
1844
2287
  8e3,
1845
2288
  16e3,
1846
2289
  3e4
1847
- ], es = (e, t, s)=>{
1848
- let l = new URL("/runner.html", t || window.location.origin);
1849
- return l.searchParams.set("testFile", e), s && l.searchParams.set("testNamePattern", s), l.toString();
1850
- }, el = (e)=>{
2290
+ ], ej = function(e, t, s) {
2291
+ let l = arguments.length > 3 && void 0 !== arguments[3] && arguments[3], o = new URL("/runner.html", t || window.location.origin);
2292
+ return o.searchParams.set("testFile", e), s && o.searchParams.set("testNamePattern", s), l && o.searchParams.set("t", Date.now().toString()), o.toString();
2293
+ };
2294
+ var ev = s(9800);
2295
+ let ey = function() {
2296
+ for(var e, t = arguments.length, s = Array(t), l = 0; l < t; l++)s[l] = arguments[l];
2297
+ (null == (e = window.__RSTEST_BROWSER_OPTIONS__) ? void 0 : e.debug) === !0 && console.log(...s);
2298
+ }, e_ = (e)=>{
1851
2299
  var t, s;
1852
- let { options: a, theme: r, setTheme: n } = e, { token: d } = o.A.useToken(), [p, f] = (0, i.useState)([]), [u, x] = (0, i.useState)(null), [h, g] = (0, i.useState)({}), [m, j] = (0, i.useState)({}), [v, y] = (0, i.useState)([]), [_, C] = (0, i.useState)(""), F = (0, i.useCallback)((e, t)=>{
1853
- ee("[Container] handleReloadTestFile called:", e, t);
2300
+ let { options: a, theme: r, setTheme: n } = e, { token: d } = o.A.useToken(), [p, h] = (0, i.useState)([]), [u, f] = (0, i.useState)(null), [x, m] = (0, i.useState)({}), [g, j] = (0, i.useState)({}), [v, y] = (0, i.useState)([]), [_, w] = (0, i.useState)(""), C = (0, i.useCallback)((e)=>{
2301
+ let t = 5381;
2302
+ for(let e = 0; e < a.rootPath.length; e++)t = 33 * t ^ a.rootPath.charCodeAt(e);
2303
+ return `rstest-viewport:${(t >>> 0).toString(16)}:${e}`;
2304
+ }, [
2305
+ a.rootPath
2306
+ ]), b = (0, i.useCallback)((e)=>{
2307
+ try {
2308
+ let t = localStorage.getItem(C(e));
2309
+ if (!t) return null;
2310
+ let s = JSON.parse(t);
2311
+ if (!s || "object" != typeof s) return null;
2312
+ let l = s.mode;
2313
+ if ("full" === l) return {
2314
+ mode: "full"
2315
+ };
2316
+ if ("responsive" === l) {
2317
+ let e = Number(s.width), t = Number(s.height);
2318
+ if (Number.isFinite(e) && e > 0 && Number.isFinite(t) && t > 0) return {
2319
+ mode: "responsive",
2320
+ width: e,
2321
+ height: t
2322
+ };
2323
+ return null;
2324
+ }
2325
+ if ("preset" === l) {
2326
+ let e = s.preset, t = s.orientation;
2327
+ if (R(e) && ("portrait" === t || "landscape" === t)) return {
2328
+ mode: "preset",
2329
+ preset: e,
2330
+ orientation: t
2331
+ };
2332
+ }
2333
+ return null;
2334
+ } catch {
2335
+ return null;
2336
+ }
2337
+ }, [
2338
+ C
2339
+ ]), k = (0, i.useCallback)((e, t)=>{
2340
+ try {
2341
+ localStorage.setItem(C(e), JSON.stringify(t));
2342
+ } catch {}
2343
+ }, [
2344
+ C
2345
+ ]), [F, S] = (0, i.useState)(()=>{
2346
+ let e = {};
2347
+ for (let t of a.projects ?? [])e[t.name] = b(t.name) ?? eu(t.viewport);
2348
+ return e;
2349
+ });
2350
+ (0, i.useEffect)(()=>{
2351
+ S((e)=>{
2352
+ let t = {
2353
+ ...e
2354
+ };
2355
+ for (let e of a.projects ?? [])t[e.name] || (t[e.name] = b(e.name) ?? eu(e.viewport));
2356
+ return t;
2357
+ });
2358
+ }, [
2359
+ a.projects,
2360
+ b
2361
+ ]);
2362
+ let N = (0, i.useCallback)((e, t)=>{
2363
+ ey("[Container] handleReloadTestFile called:", e, t);
1854
2364
  let s = document.querySelector(`iframe[data-test-file="${e}"]`);
1855
- if (ee("[Container] Found iframe:", s), s) {
1856
- g((t)=>({
2365
+ if (ey("[Container] Found iframe:", s), s) {
2366
+ m((t)=>({
1857
2367
  ...t,
1858
2368
  [e]: "running"
1859
2369
  })), j((t)=>{
@@ -1867,13 +2377,13 @@
1867
2377
  [e]: l
1868
2378
  };
1869
2379
  });
1870
- let l = es(e, a.runnerUrl, t);
1871
- ee("[Container] Setting iframe.src to:", l), s.src = l;
2380
+ let l = ej(e, a.runnerUrl, t);
2381
+ ey("[Container] Setting iframe.src to:", l), s.src = l;
1872
2382
  }
1873
2383
  }, [
1874
2384
  a.runnerUrl
1875
- ]), { rpc: b, loading: A, connected: N } = ((e, t, s)=>{
1876
- let [l, o] = (0, i.useState)(null), [a, r] = (0, i.useState)(!0), [n, c] = (0, i.useState)(!1), d = (0, i.useRef)(e), p = (0, i.useRef)(s), f = (0, i.useRef)(null);
2385
+ ]), { rpc: A, loading: M, connected: z } = ((e, t, s)=>{
2386
+ let [l, o] = (0, i.useState)(null), [a, r] = (0, i.useState)(!0), [n, c] = (0, i.useState)(!1), d = (0, i.useRef)(e), p = (0, i.useRef)(s), h = (0, i.useRef)(null);
1877
2387
  return (0, i.useEffect)(()=>{
1878
2388
  d.current = e;
1879
2389
  }, [
@@ -1885,22 +2395,22 @@
1885
2395
  ]), (0, i.useEffect)(()=>{
1886
2396
  if (!t) return void r(!1);
1887
2397
  let e = null, s = 0, l = null, a = !0, i = ()=>{
2398
+ let n;
1888
2399
  if (!a) return;
1889
- let n = "https:" === window.location.protocol ? "wss:" : "ws:";
1890
- f.current = e = new WebSocket(`${n}//${window.location.hostname}:${t}`);
2400
+ h.current = e = new WebSocket((n = "https:" === window.location.protocol ? "wss:" : "ws:", `${n}//${window.location.hostname}:${t}`));
1891
2401
  let u = {
1892
2402
  onTestFileUpdate (e) {
1893
- ee("[Container RPC] onTestFileUpdate called:", e), d.current(e);
2403
+ ey("[Container RPC] onTestFileUpdate called:", e), d.current(e);
1894
2404
  },
1895
2405
  reloadTestFile (e, t) {
1896
2406
  var s;
1897
- ee("[Container RPC] reloadTestFile called:", e, t), null == (s = p.current) || s.call(p, e, t);
2407
+ ey("[Container RPC] reloadTestFile called:", e, t), null == (s = p.current) || s.call(p, e, t);
1898
2408
  }
1899
2409
  };
1900
2410
  e.onopen = ()=>{
1901
2411
  if (!a || !e) return;
1902
- ee("[Container] WebSocket connected"), s = 0, c(!0);
1903
- let t = (0, Y.L4)(u, {
2412
+ ey("[Container] WebSocket connected"), s = 0, c(!0);
2413
+ let t = (0, ev.L4)(u, {
1904
2414
  post: (t)=>{
1905
2415
  (null == e ? void 0 : e.readyState) === WebSocket.OPEN && e.send(JSON.stringify(t));
1906
2416
  },
@@ -1919,14 +2429,14 @@
1919
2429
  a && r(!1);
1920
2430
  });
1921
2431
  }, e.onclose = ()=>{
1922
- if (f.current !== e || !a) return;
1923
- ee("[Container] WebSocket disconnected"), o(null), c(!1);
1924
- let t = et[Math.min(s, et.length - 1)];
1925
- ee(`[Container] Reconnecting in ${t}ms (attempt ${s + 1})`), s++, l = setTimeout(()=>{
2432
+ if (h.current !== e || !a) return;
2433
+ ey("[Container] WebSocket disconnected"), o(null), c(!1);
2434
+ let t = eg[Math.min(s, eg.length - 1)];
2435
+ ey(`[Container] Reconnecting in ${t}ms (attempt ${s + 1})`), s++, l = setTimeout(()=>{
1926
2436
  a && i();
1927
2437
  }, t);
1928
2438
  }, e.onerror = ()=>{
1929
- a && ee("[Container] WebSocket error");
2439
+ a && ey("[Container] WebSocket error");
1930
2440
  };
1931
2441
  };
1932
2442
  return i(), ()=>{
@@ -1939,9 +2449,9 @@
1939
2449
  loading: a,
1940
2450
  connected: n
1941
2451
  };
1942
- })(f, null == a ? void 0 : a.wsPort, F);
2452
+ })(h, null == a ? void 0 : a.wsPort, N);
1943
2453
  (0, i.useEffect)(()=>{
1944
- g((e)=>{
2454
+ m((e)=>{
1945
2455
  let t = {};
1946
2456
  for (let s of p)t[s.testPath] = e[s.testPath] ?? "idle";
1947
2457
  return t;
@@ -1951,12 +2461,12 @@
1951
2461
  return t;
1952
2462
  });
1953
2463
  let e = p.map((e)=>e.testPath);
1954
- y((t)=>t.filter((t)=>e.includes(t))), x((t)=>!t && p.length > 0 || t && !e.includes(t) && p.length > 0 ? p[0].testPath : t);
2464
+ y((t)=>t.filter((t)=>e.includes(t))), f((t)=>!t && p.length > 0 || t && !e.includes(t) && p.length > 0 ? p[0].testPath : t);
1955
2465
  }, [
1956
2466
  p
1957
2467
  ]);
1958
- let M = (0, i.useCallback)((e)=>"pass" === e ? "pass" : "fail" === e ? "fail" : "skip" === e || "todo" === e ? "skip" : "running", []), z = (0, i.useCallback)((e)=>{
1959
- x(e);
2468
+ let P = (0, i.useCallback)((e)=>"pass" === e ? "pass" : "fail" === e ? "fail" : "skip" === e || "todo" === e ? "skip" : "running", []), O = (0, i.useCallback)((e)=>{
2469
+ f(e);
1960
2470
  }, []), U = (0, i.useCallback)((e, t)=>{
1961
2471
  let s = (t.parentNames ?? []).filter(Boolean), l = [
1962
2472
  ...s,
@@ -1973,7 +2483,7 @@
1973
2483
  name: t.name,
1974
2484
  parentNames: s,
1975
2485
  fullName: l,
1976
- status: M(t.status),
2486
+ status: P(t.status),
1977
2487
  filePath: t.testPath || e,
1978
2488
  location: t.location
1979
2489
  }
@@ -1981,139 +2491,101 @@
1981
2491
  };
1982
2492
  });
1983
2493
  }, [
1984
- M
2494
+ P
1985
2495
  ]), E = (0, i.useCallback)((e)=>{
1986
- x(e), b && N && b.rerunTest(e);
2496
+ f(e), A && z && A.rerunTest(e);
1987
2497
  }, [
1988
- b,
1989
- N
1990
- ]), P = (0, i.useCallback)((e, t)=>{
1991
- x(e), b && N && b.rerunTest(e, t);
2498
+ A,
2499
+ z
2500
+ ]), T = (0, i.useCallback)((e, t)=>{
2501
+ f(e), A && z && A.rerunTest(e, t);
1992
2502
  }, [
1993
- b,
1994
- N
1995
- ]), R = (0, i.useCallback)(()=>{
1996
- if (b && N) for (let e of p)b.rerunTest(e.testPath);
2503
+ A,
2504
+ z
2505
+ ]), $ = (0, i.useCallback)(()=>{
2506
+ if (A && z) for (let e of p)A.rerunTest(e.testPath);
1997
2507
  }, [
1998
2508
  p,
1999
- b,
2000
- N
2509
+ A,
2510
+ z
2001
2511
  ]);
2002
2512
  (0, i.useEffect)(()=>{
2003
2513
  let e = (e)=>{
2004
2514
  var t;
2005
- if ((null == (t = e.data) ? void 0 : t.type) === "__rstest_dispatch__") {
2006
- let t = e.data.payload;
2007
- if ((null == t ? void 0 : t.type) === "file-start") {
2008
- let e = t.payload, s = e.testPath;
2009
- "string" == typeof s && (g((e)=>({
2010
- ...e,
2011
- [s]: "running"
2012
- })), j((e)=>{
2013
- let t = e[s] ?? {}, l = {};
2014
- for (let [e, s] of Object.entries(t))l[e] = {
2015
- ...s,
2016
- status: "running"
2017
- };
2018
- return {
2515
+ let s = (null == (t = e.data) ? void 0 : t.type) !== "__rstest_dispatch__" ? null : e.data.payload;
2516
+ if (s) if ("file-start" === s.type) {
2517
+ let e = s.payload, t = e.testPath;
2518
+ "string" == typeof t && (m((e)=>({
2519
+ ...e,
2520
+ [t]: "running"
2521
+ })), j((e)=>{
2522
+ let s = e[t] ?? {}, l = {};
2523
+ for (let [e, t] of Object.entries(s))l[e] = {
2524
+ ...t,
2525
+ status: "running"
2526
+ };
2527
+ return {
2528
+ ...e,
2529
+ [t]: l
2530
+ };
2531
+ }), null == A || A.onTestFileStart({
2532
+ testPath: t,
2533
+ projectName: e.projectName ?? ""
2534
+ }));
2535
+ } else if ("case-result" === s.type) {
2536
+ let e = s.payload;
2537
+ (null == e ? void 0 : e.testPath) && (U(e.testPath, e), null == A || A.onTestCaseResult(e));
2538
+ } else if ("file-complete" === s.type) {
2539
+ let e = s.payload, t = e.testPath;
2540
+ if ("string" == typeof t) {
2541
+ let s = "pass" === e.status || "skip" === e.status;
2542
+ m((e)=>({
2019
2543
  ...e,
2020
- [s]: l
2021
- };
2022
- }), null == b || b.onTestFileStart({
2023
- testPath: s,
2024
- projectName: e.projectName ?? ""
2025
- }));
2026
- } else if ((null == t ? void 0 : t.type) === "case-result") {
2027
- let e = t.payload;
2028
- (null == e ? void 0 : e.testPath) && (U(e.testPath, e), null == b || b.onTestCaseResult(e));
2029
- } else if ((null == t ? void 0 : t.type) === "file-complete") {
2030
- let e = t.payload, s = e.testPath;
2031
- if ("string" == typeof s) {
2032
- let t = "pass" === e.status || "skip" === e.status;
2033
- g((e)=>({
2544
+ [t]: s ? "pass" : "fail"
2545
+ })), j((s)=>{
2546
+ let l = {};
2547
+ for (let s of e.results ?? [])if (null == s ? void 0 : s.testId) {
2548
+ let e = (s.parentNames ?? []).filter(Boolean), o = [
2034
2549
  ...e,
2035
- [s]: t ? "pass" : "fail"
2036
- })), j((t)=>{
2037
- let l = {};
2038
- for (let t of e.results ?? [])if (null == t ? void 0 : t.testId) {
2039
- let e = (t.parentNames ?? []).filter(Boolean), o = [
2040
- ...e,
2041
- t.name
2042
- ].join(" ") || t.name;
2043
- l[t.testId] = {
2044
- id: t.testId,
2045
- name: t.name,
2046
- parentNames: e,
2047
- fullName: o,
2048
- status: M(t.status),
2049
- filePath: t.testPath || s,
2050
- location: t.location
2051
- };
2052
- }
2053
- return {
2054
- ...t,
2055
- [s]: l
2550
+ s.name
2551
+ ].join(" ") || s.name;
2552
+ l[s.testId] = {
2553
+ id: s.testId,
2554
+ name: s.name,
2555
+ parentNames: e,
2556
+ fullName: o,
2557
+ status: P(s.status),
2558
+ filePath: s.testPath || t,
2559
+ location: s.location
2056
2560
  };
2057
- }), null == b || b.onTestFileComplete(e);
2058
- }
2059
- } else if ((null == t ? void 0 : t.type) === "fatal") {
2060
- u && g((e)=>({
2061
- ...e,
2062
- [u]: "fail"
2063
- }));
2064
- let e = t.payload;
2065
- null == b || b.onFatal(e);
2066
- } else if ((null == t ? void 0 : t.type) === "log") {
2067
- let e = t.payload;
2068
- null == b || b.onLog(e);
2069
- } else if ((null == t ? void 0 : t.type) === "snapshot-rpc-request") {
2070
- let s = t.payload, l = e.source;
2071
- if (!b || !l) return;
2072
- let o = (e)=>{
2073
- l.postMessage({
2074
- type: "__rstest_snapshot_response__",
2075
- payload: e
2076
- }, "*");
2077
- };
2078
- (async ()=>{
2079
- try {
2080
- let e;
2081
- switch(s.method){
2082
- case "resolveSnapshotPath":
2083
- e = await b.resolveSnapshotPath(s.args.testPath);
2084
- break;
2085
- case "readSnapshotFile":
2086
- e = await b.readSnapshotFile(s.args.filepath);
2087
- break;
2088
- case "saveSnapshotFile":
2089
- e = await b.saveSnapshotFile(s.args.filepath, s.args.content);
2090
- break;
2091
- case "removeSnapshotFile":
2092
- e = await b.removeSnapshotFile(s.args.filepath);
2093
- }
2094
- o({
2095
- id: s.id,
2096
- result: e
2097
- });
2098
- } catch (e) {
2099
- o({
2100
- id: s.id,
2101
- error: e instanceof Error ? e.message : String(e)
2102
- });
2103
2561
  }
2104
- })();
2562
+ return {
2563
+ ...s,
2564
+ [t]: l
2565
+ };
2566
+ }), null == A || A.onTestFileComplete(e);
2105
2567
  }
2106
- }
2568
+ } else if ("fatal" === s.type) {
2569
+ u && m((e)=>({
2570
+ ...e,
2571
+ [u]: "fail"
2572
+ }));
2573
+ let e = s.payload;
2574
+ null == A || A.onFatal(e);
2575
+ } else if ("log" === s.type) {
2576
+ let e = s.payload;
2577
+ null == A || A.onLog(e);
2578
+ } else "snapshot-rpc-request" === s.type && em(A, s.payload, e.source);
2107
2579
  };
2108
2580
  return window.addEventListener("message", e), ()=>window.removeEventListener("message", e);
2109
2581
  }, [
2110
2582
  u,
2111
2583
  U,
2112
- M,
2113
- b
2584
+ P,
2585
+ A
2114
2586
  ]);
2115
- let T = (0, i.useMemo)(()=>{
2116
- let e = Object.values(m).flatMap((e)=>Object.values(e));
2587
+ let Z = (0, i.useMemo)(()=>{
2588
+ let e = Object.values(g).flatMap((e)=>Object.values(e));
2117
2589
  return {
2118
2590
  idle: e.filter((e)=>"idle" === e.status).length,
2119
2591
  running: e.filter((e)=>"running" === e.status).length,
@@ -2122,10 +2594,10 @@
2122
2594
  skip: e.filter((e)=>"skip" === e.status).length
2123
2595
  };
2124
2596
  }, [
2125
- m
2126
- ]), B = (0, i.useMemo)(()=>Object.values(h).some((e)=>"running" === e), [
2127
- h
2128
- ]), $ = (0, i.useMemo)(()=>{
2597
+ g
2598
+ ]), G = (0, i.useMemo)(()=>Object.values(x).some((e)=>"running" === e), [
2599
+ x
2600
+ ]), L = (0, i.useMemo)(()=>{
2129
2601
  let e = [], t = [
2130
2602
  ...new Set(p.map((e)=>e.projectName))
2131
2603
  ];
@@ -2133,7 +2605,7 @@
2133
2605
  for (let t of p){
2134
2606
  let s = t.testPath;
2135
2607
  e.push(s);
2136
- let l = Object.values(m[s] ?? {}), o = new Set;
2608
+ let l = Object.values(g[s] ?? {}), o = new Set;
2137
2609
  for (let e of l){
2138
2610
  let t = e.parentNames;
2139
2611
  for(let e = 1; e <= t.length; e++){
@@ -2155,19 +2627,64 @@
2155
2627
  ];
2156
2628
  }, [
2157
2629
  p,
2158
- m
2159
- ]), W = (null == (s = a.projects) || null == (t = s[0]) ? void 0 : t.name) || a.rootPath.split("/").filter(Boolean).pop() || "default", Z = `rstest-split-${W}`;
2630
+ g
2631
+ ]), I = (null == (s = a.projects) || null == (t = s[0]) ? void 0 : t.name) || a.rootPath.split("/").filter(Boolean).pop() || "default", q = `rstest-split-${I}`, J = (0, i.useMemo)(()=>{
2632
+ let e = new Map;
2633
+ for (let t of a.projects ?? [])e.set(t.name, t.viewport);
2634
+ return e;
2635
+ }, [
2636
+ a.projects
2637
+ ]), V = (0, i.useMemo)(()=>{
2638
+ var e, t, s, l;
2639
+ if (!u) return null == (l = a.projects) || null == (s = l[0]) ? void 0 : s.name;
2640
+ let o = p.find((e)=>e.testPath === u);
2641
+ return (null == o ? void 0 : o.projectName) ?? (null == (t = a.projects) || null == (e = t[0]) ? void 0 : e.name);
2642
+ }, [
2643
+ u,
2644
+ p,
2645
+ a.projects
2646
+ ]), K = (0, i.useMemo)(()=>V ? F[V] ?? eu(J.get(V)) : {
2647
+ mode: "full"
2648
+ }, [
2649
+ V,
2650
+ F,
2651
+ J
2652
+ ]), X = (0, i.useCallback)((e)=>{
2653
+ V && (k(V, e), S((t)=>({
2654
+ ...t,
2655
+ [V]: e
2656
+ })));
2657
+ }, [
2658
+ V,
2659
+ k
2660
+ ]), Y = (0, i.useCallback)((e, t)=>{
2661
+ S((s)=>{
2662
+ let l = s[e];
2663
+ if (!l || "responsive" !== l.mode || l.width === t.width && l.height === t.height) return s;
2664
+ let o = {
2665
+ mode: "responsive",
2666
+ width: t.width,
2667
+ height: t.height
2668
+ };
2669
+ return k(e, o), {
2670
+ ...s,
2671
+ [e]: o
2672
+ };
2673
+ });
2674
+ }, [
2675
+ k
2676
+ ]);
2160
2677
  return (0, l.jsx)("div", {
2161
2678
  className: "m-0 h-screen w-full overflow-hidden p-0",
2162
2679
  style: {
2163
2680
  background: d.colorBgContainer
2164
2681
  },
2165
- children: (0, l.jsxs)(S, {
2682
+ children: (0, l.jsxs)(W, {
2166
2683
  direction: "horizontal",
2167
2684
  className: "h-full w-full",
2168
- autoSaveId: Z,
2685
+ autoSaveId: q,
2169
2686
  children: [
2170
- (0, l.jsx)(w, {
2687
+ (0, l.jsx)(D, {
2171
2688
  defaultSize: 32,
2172
2689
  minSize: 20,
2173
2690
  maxSize: 50,
@@ -2177,52 +2694,52 @@
2177
2694
  background: d.colorBgContainer
2178
2695
  },
2179
2696
  children: [
2180
- (0, l.jsx)(O, {
2697
+ (0, l.jsx)(H, {
2181
2698
  theme: r,
2182
2699
  onThemeToggle: n,
2183
- isConnected: N,
2700
+ isConnected: z,
2184
2701
  token: d,
2185
- counts: T
2702
+ counts: Z
2186
2703
  }),
2187
- (0, l.jsx)(D, {
2704
+ (0, l.jsx)(ee, {
2188
2705
  token: d,
2189
2706
  filterText: _,
2190
- onFilterChange: C,
2191
- isAllExpanded: $.length > 0 && $.every((e)=>v.includes(e)),
2707
+ onFilterChange: w,
2708
+ isAllExpanded: L.length > 0 && L.every((e)=>v.includes(e)),
2192
2709
  onToggleExpandAll: ()=>{
2193
- $.length > 0 && $.every((e)=>v.includes(e)) ? y([]) : y($);
2710
+ L.length > 0 && L.every((e)=>v.includes(e)) ? y([]) : y(L);
2194
2711
  },
2195
- onRerun: N ? R : void 0,
2196
- counts: T,
2197
- isRunning: B
2712
+ onRerun: z ? $ : void 0,
2713
+ counts: Z,
2714
+ isRunning: G
2198
2715
  }),
2199
2716
  (0, l.jsx)("div", {
2200
2717
  className: "flex-1 overflow-x-hidden overflow-y-auto",
2201
2718
  style: {
2202
2719
  background: d.colorBgContainer
2203
2720
  },
2204
- children: (0, l.jsx)(X, {
2721
+ children: (0, l.jsx)(eh, {
2205
2722
  testFiles: p,
2206
- statusMap: h,
2207
- caseMap: m,
2723
+ statusMap: x,
2724
+ caseMap: g,
2208
2725
  rootPath: a.rootPath,
2209
2726
  projects: a.projects,
2210
- loading: A,
2211
- connected: N,
2727
+ loading: M,
2728
+ connected: z,
2212
2729
  openFiles: v,
2213
2730
  activeFile: u,
2214
2731
  token: d,
2215
2732
  filterText: _,
2216
2733
  onExpandChange: y,
2217
- onSelect: z,
2734
+ onSelect: O,
2218
2735
  onRerunFile: E,
2219
- onRerunTestCase: P
2736
+ onRerunTestCase: T
2220
2737
  })
2221
2738
  })
2222
2739
  ]
2223
2740
  })
2224
2741
  }),
2225
- (0, l.jsx)(w, {
2742
+ (0, l.jsx)(D, {
2226
2743
  defaultSize: 68,
2227
2744
  minSize: 40,
2228
2745
  children: (0, l.jsxs)("div", {
@@ -2231,16 +2748,18 @@
2231
2748
  background: d.colorBgLayout
2232
2749
  },
2233
2750
  children: [
2234
- (0, l.jsx)(k, {
2751
+ (0, l.jsx)(B, {
2235
2752
  token: d,
2236
2753
  activeFile: u ?? void 0,
2237
2754
  rootPath: a.rootPath,
2238
- status: u ? h[u] ?? "idle" : void 0
2755
+ status: u ? x[u] ?? "idle" : void 0,
2756
+ viewport: V ? K : void 0,
2757
+ onViewportChange: V ? X : void 0
2239
2758
  }),
2240
2759
  (0, l.jsxs)("div", {
2241
- className: "relative min-h-0 flex-1",
2760
+ className: "relative min-h-0 flex-1 overflow-auto",
2242
2761
  style: {
2243
- background: d.colorBgContainer
2762
+ background: d.colorBgLayout
2244
2763
  },
2245
2764
  children: [
2246
2765
  !u && (0, l.jsx)(c, {
@@ -2248,26 +2767,40 @@
2248
2767
  }),
2249
2768
  p.map((e)=>{
2250
2769
  var t;
2251
- let s;
2252
- return (0, l.jsx)("iframe", {
2253
- "data-test-file": e.testPath,
2254
- title: `Test runner for ${(s = (t = e.testPath).split("/"))[s.length - 1] || t}`,
2255
- src: es(e.testPath, a.runnerUrl),
2256
- className: "h-full w-full border-0",
2770
+ let s, o, r;
2771
+ return s = e.testPath === u, o = F[e.projectName] ?? eu(J.get(e.projectName)), (0, l.jsx)("div", {
2772
+ className: "h-full w-full",
2257
2773
  style: {
2258
- display: e.testPath === u ? "block" : "none",
2259
- background: d.colorBgContainer
2774
+ display: s ? "block" : "none"
2260
2775
  },
2261
- onLoad: (t)=>{
2262
- let s = t.currentTarget;
2263
- s.contentWindow && s.contentWindow.postMessage({
2264
- type: "RSTEST_CONFIG",
2265
- payload: {
2266
- ...a,
2267
- testFile: e.testPath
2776
+ children: (0, l.jsx)(ex, {
2777
+ token: d,
2778
+ selection: o,
2779
+ active: s,
2780
+ onResponsiveResize: "responsive" === o.mode ? (t)=>Y(e.projectName, t) : void 0,
2781
+ "data-testid": "responsive" === o.mode ? "viewport-resizer" : void 0,
2782
+ "data-test-project": e.projectName,
2783
+ "data-test-file": e.testPath,
2784
+ children: (0, l.jsx)("iframe", {
2785
+ "data-test-file": e.testPath,
2786
+ title: `Test runner for ${(r = (t = e.testPath).split("/"))[r.length - 1] || t}`,
2787
+ src: ej(e.testPath, a.runnerUrl),
2788
+ className: "block h-full w-full border-0",
2789
+ style: {
2790
+ background: d.colorBgContainer
2791
+ },
2792
+ onLoad: (t)=>{
2793
+ let s = t.currentTarget;
2794
+ s.contentWindow && s.contentWindow.postMessage({
2795
+ type: "RSTEST_CONFIG",
2796
+ payload: {
2797
+ ...a,
2798
+ testFile: e.testPath
2799
+ }
2800
+ }, "*");
2268
2801
  }
2269
- }, "*");
2270
- }
2802
+ })
2803
+ })
2271
2804
  }, e.testPath);
2272
2805
  })
2273
2806
  ]
@@ -2278,7 +2811,7 @@
2278
2811
  ]
2279
2812
  })
2280
2813
  });
2281
- }, eo = ()=>{
2814
+ }, ew = ()=>{
2282
2815
  let e = window.__RSTEST_BROWSER_OPTIONS__, [t, s] = (0, i.useState)("dark"), [n, c] = (0, i.useState)("dark");
2283
2816
  (0, i.useEffect)(()=>{
2284
2817
  let e = window.matchMedia("(prefers-color-scheme: dark)"), t = (e)=>c(e.matches ? "dark" : "light");
@@ -2325,20 +2858,20 @@
2325
2858
  }
2326
2859
  },
2327
2860
  children: (0, l.jsx)(r.A, {
2328
- children: (0, l.jsx)(el, {
2861
+ children: (0, l.jsx)(e_, {
2329
2862
  options: e,
2330
2863
  theme: t,
2331
2864
  setTheme: s
2332
2865
  })
2333
2866
  })
2334
2867
  });
2335
- }, ea = ()=>{
2868
+ }, eC = ()=>{
2336
2869
  let e = document.getElementById("root");
2337
2870
  e && n.createRoot(e).render((0, l.jsx)(i.StrictMode, {
2338
- children: (0, l.jsx)(eo, {})
2871
+ children: (0, l.jsx)(ew, {})
2339
2872
  }));
2340
2873
  };
2341
- "loading" === document.readyState ? document.addEventListener("DOMContentLoaded", ea) : ea();
2874
+ "loading" === document.readyState ? document.addEventListener("DOMContentLoaded", eC) : eC();
2342
2875
  }
2343
2876
  }, i = {};
2344
2877
  function n(e) {
@@ -2396,7 +2929,7 @@
2396
2929
  }
2397
2930
  return e;
2398
2931
  }, l = {
2399
- 49: 0
2932
+ 410: 0
2400
2933
  }, n.O.j = (e)=>0 === l[e], o = (e, t)=>{
2401
2934
  var s, o, [a, r, i] = t, c = 0;
2402
2935
  if (a.some((e)=>0 !== l[e])) {
@@ -2408,7 +2941,7 @@
2408
2941
  }, (a = self.webpackChunk_rstest_browser_ui = self.webpackChunk_rstest_browser_ui || []).forEach(o.bind(null, 0)), a.push = o.bind(null, a.push.bind(a));
2409
2942
  var c = n.O(void 0, [
2410
2943
  "783",
2411
- "837"
2412
- ], ()=>n(3174));
2944
+ "392"
2945
+ ], ()=>n(2976));
2413
2946
  c = n.O(c);
2414
2947
  })();