hocmai-feedback-widget 0.1.6 → 0.1.8

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,13 +1,13 @@
1
- import { jsxs as v, jsx as b, Fragment as Wt } from "react/jsx-runtime";
2
- import pi, { forwardRef as qt, createElement as et, useState as E, useEffect as bi, createContext as gi, useContext as wi } from "react";
3
- var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
1
+ import { jsxs as x, jsx as b, Fragment as it } from "react/jsx-runtime";
2
+ import kt, { forwardRef as Xt, createElement as nt, useState as I, useEffect as xi, createContext as vi, useContext as ki } from "react";
3
+ var Si = "2.0.7", Ci = 500, St = "user-agent", he = "", Ct = "?", C = {
4
4
  FUNCTION: "function",
5
5
  OBJECT: "object",
6
6
  STRING: "string",
7
7
  UNDEFINED: "undefined"
8
- }, _ = "browser", j = "cpu", B = "device", z = "engine", D = "os", fe = "result", c = "name", a = "type", d = "vendor", u = "version", O = "architecture", Se = "major", l = "model", Ae = "console", g = "mobile", y = "tablet", C = "smarttv", $ = "wearable", Te = "xr", ke = "embedded", ae = "inapp", st = "brands", te = "formFactors", at = "fullVersionList", pe = "platform", lt = "platformVersion", He = "bitness", J = "sec-ch-ua", xi = J + "-full-version-list", vi = J + "-arch", ki = J + "-" + He, Si = J + "-form-factors", Ci = J + "-" + g, Ei = J + "-" + l, jt = J + "-" + pe, Ii = jt + "-version", Nt = [st, at, g, l, pe, lt, O, te, He], Re = "Amazon", le = "Apple", xt = "ASUS", vt = "BlackBerry", ee = "Google", kt = "Huawei", je = "Lenovo", St = "Honor", Oe = "LG", Ne = "Microsoft", Ge = "Motorola", Ct = "Nvidia", Et = "OnePlus", Xe = "OPPO", ge = "Samsung", It = "Sharp", we = "Sony", Ye = "Xiaomi", Qe = "Zebra", Tt = "Chrome", Rt = "Chromium", X = "Chromecast", Fe = "Edge", me = "Firefox", ye = "Opera", Ke = "Facebook", Ot = "Sogou", ce = "Mobile ", xe = " Browser", tt = "Windows", Ti = typeof window !== S.UNDEFINED, F = Ti && window.navigator ? window.navigator : void 0, ie = F && F.userAgentData ? F.userAgentData : void 0, Ri = function(e, t) {
8
+ }, P = "browser", G = "cpu", B = "device", U = "engine", D = "os", fe = "result", c = "name", a = "type", d = "vendor", u = "version", M = "architecture", Se = "major", l = "model", Pe = "console", w = "mobile", v = "tablet", E = "smarttv", $ = "wearable", Oe = "xr", ke = "embedded", ae = "inapp", ct = "brands", ne = "formFactors", dt = "fullVersionList", pe = "platform", ut = "platformVersion", Ue = "bitness", Z = "sec-ch-ua", Ei = Z + "-full-version-list", Ii = Z + "-arch", Ti = Z + "-" + Ue, Ri = Z + "-form-factors", Oi = Z + "-" + w, Mi = Z + "-" + l, Yt = Z + "-" + pe, Ai = Yt + "-version", Qt = [ct, dt, w, l, pe, ut, M, ne, Ue], Me = "Amazon", le = "Apple", Et = "ASUS", It = "BlackBerry", ie = "Google", Tt = "Huawei", Ge = "Lenovo", Rt = "Honor", Ae = "LG", Xe = "Microsoft", Ye = "Motorola", Ot = "Nvidia", Mt = "OnePlus", Qe = "OPPO", ge = "Samsung", At = "Sharp", we = "Sony", Ke = "Xiaomi", Je = "Zebra", Ft = "Chrome", Pt = "Chromium", Y = "Chromecast", _e = "Edge", me = "Firefox", ye = "Opera", Ze = "Facebook", _t = "Sogou", ce = "Mobile ", xe = " Browser", rt = "Windows", Fi = typeof window !== C.UNDEFINED, F = Fi && window.navigator ? window.navigator : void 0, re = F && F.userAgentData ? F.userAgentData : void 0, Pi = function(e, t) {
9
9
  var i = {}, n = t;
10
- if (!_e(t)) {
10
+ if (!Le(t)) {
11
11
  n = {};
12
12
  for (var o in t)
13
13
  for (var s in t[o])
@@ -16,69 +16,69 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
16
16
  for (var r in e)
17
17
  i[r] = n[r] && n[r].length % 2 === 0 ? n[r].concat(e[r]) : e[r];
18
18
  return i;
19
- }, ze = function(e) {
19
+ }, $e = function(e) {
20
20
  for (var t = {}, i = 0; i < e.length; i++)
21
21
  t[e[i].toUpperCase()] = e[i];
22
22
  return t;
23
- }, it = function(e, t) {
24
- if (typeof e === S.OBJECT && e.length > 0) {
23
+ }, ot = function(e, t) {
24
+ if (typeof e === C.OBJECT && e.length > 0) {
25
25
  for (var i in e)
26
- if (Y(t) == Y(e[i])) return !0;
26
+ if (Q(t) == Q(e[i])) return !0;
27
27
  return !1;
28
28
  }
29
- return Ce(e) ? Y(t) == Y(e) : !1;
30
- }, _e = function(e, t) {
29
+ return Ce(e) ? Q(t) == Q(e) : !1;
30
+ }, Le = function(e, t) {
31
31
  for (var i in e)
32
- return /^(browser|cpu|device|engine|os)$/.test(i) || (t ? _e(e[i]) : !1);
32
+ return /^(browser|cpu|device|engine|os)$/.test(i) || (t ? Le(e[i]) : !1);
33
33
  }, Ce = function(e) {
34
- return typeof e === S.STRING;
35
- }, Je = function(e) {
34
+ return typeof e === C.STRING;
35
+ }, et = function(e) {
36
36
  if (e) {
37
37
  for (var t = [], i = be(/\\?\"/g, e).split(","), n = 0; n < i.length; n++)
38
38
  if (i[n].indexOf(";") > -1) {
39
- var o = Le(i[n]).split(";v=");
39
+ var o = De(i[n]).split(";v=");
40
40
  t[n] = { brand: o[0], version: o[1] };
41
41
  } else
42
- t[n] = Le(i[n]);
42
+ t[n] = De(i[n]);
43
43
  return t;
44
44
  }
45
- }, Y = function(e) {
45
+ }, Q = function(e) {
46
46
  return Ce(e) ? e.toLowerCase() : e;
47
- }, nt = function(e) {
47
+ }, st = function(e) {
48
48
  return Ce(e) ? be(/[^\d\.]/g, e).split(".")[0] : void 0;
49
- }, q = function(e) {
49
+ }, j = function(e) {
50
50
  for (var t in e)
51
51
  if (e.hasOwnProperty(t)) {
52
52
  var i = e[t];
53
- typeof i == S.OBJECT && i.length == 2 ? this[i[0]] = i[1] : this[i] = void 0;
53
+ typeof i == C.OBJECT && i.length == 2 ? this[i[0]] = i[1] : this[i] = void 0;
54
54
  }
55
55
  return this;
56
56
  }, be = function(e, t) {
57
57
  return Ce(t) ? t.replace(e, he) : t;
58
58
  }, ve = function(e) {
59
59
  return be(/\\?\"/g, e);
60
- }, Le = function(e, t) {
61
- return e = be(/^\s\s*/, String(e)), typeof t === S.UNDEFINED ? e : e.substring(0, t);
62
- }, rt = function(e, t) {
60
+ }, De = function(e, t) {
61
+ return e = be(/^\s\s*/, String(e)), typeof t === C.UNDEFINED ? e : e.substring(0, t);
62
+ }, at = function(e, t) {
63
63
  if (!(!e || !t))
64
64
  for (var i = 0, n, o, s, r, h, f; i < t.length && !h; ) {
65
- var w = t[i], m = t[i + 1];
66
- for (n = o = 0; n < w.length && !h && w[n]; )
67
- if (h = w[n++].exec(e), h)
65
+ var g = t[i], m = t[i + 1];
66
+ for (n = o = 0; n < g.length && !h && g[n]; )
67
+ if (h = g[n++].exec(e), h)
68
68
  for (s = 0; s < m.length; s++)
69
- f = h[++o], r = m[s], typeof r === S.OBJECT && r.length > 0 ? r.length === 2 ? typeof r[1] == S.FUNCTION ? this[r[0]] = r[1].call(this, f) : this[r[0]] = r[1] : r.length >= 3 && (typeof r[1] === S.FUNCTION && !(r[1].exec && r[1].test) ? r.length > 3 ? this[r[0]] = f ? r[1].apply(this, r.slice(2)) : void 0 : this[r[0]] = f ? r[1].call(this, f, r[2]) : void 0 : r.length == 3 ? this[r[0]] = f ? f.replace(r[1], r[2]) : void 0 : r.length == 4 ? this[r[0]] = f ? r[3].call(this, f.replace(r[1], r[2])) : void 0 : r.length > 4 && (this[r[0]] = f ? r[3].apply(this, [f.replace(r[1], r[2])].concat(r.slice(4))) : void 0)) : this[r] = f || void 0;
69
+ f = h[++o], r = m[s], typeof r === C.OBJECT && r.length > 0 ? r.length === 2 ? typeof r[1] == C.FUNCTION ? this[r[0]] = r[1].call(this, f) : this[r[0]] = r[1] : r.length >= 3 && (typeof r[1] === C.FUNCTION && !(r[1].exec && r[1].test) ? r.length > 3 ? this[r[0]] = f ? r[1].apply(this, r.slice(2)) : void 0 : this[r[0]] = f ? r[1].call(this, f, r[2]) : void 0 : r.length == 3 ? this[r[0]] = f ? f.replace(r[1], r[2]) : void 0 : r.length == 4 ? this[r[0]] = f ? r[3].call(this, f.replace(r[1], r[2])) : void 0 : r.length > 4 && (this[r[0]] = f ? r[3].apply(this, [f.replace(r[1], r[2])].concat(r.slice(4))) : void 0)) : this[r] = f || void 0;
70
70
  i += 2;
71
71
  }
72
72
  }, H = function(e, t) {
73
73
  for (var i in t)
74
- if (typeof t[i] === S.OBJECT && t[i].length > 0) {
74
+ if (typeof t[i] === C.OBJECT && t[i].length > 0) {
75
75
  for (var n = 0; n < t[i].length; n++)
76
- if (it(t[i][n], e))
77
- return i === yt ? void 0 : i;
78
- } else if (it(t[i], e))
79
- return i === yt ? void 0 : i;
76
+ if (ot(t[i][n], e))
77
+ return i === Ct ? void 0 : i;
78
+ } else if (ot(t[i], e))
79
+ return i === Ct ? void 0 : i;
80
80
  return t.hasOwnProperty("*") ? t["*"] : e;
81
- }, Mt = {
81
+ }, Lt = {
82
82
  ME: "4.90",
83
83
  "NT 3.51": "3.51",
84
84
  "NT 4.0": "4.0",
@@ -90,7 +90,7 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
90
90
  "8.1": "6.3",
91
91
  10: ["6.4", "10.0"],
92
92
  NT: ""
93
- }, At = {
93
+ }, Dt = {
94
94
  embedded: "Automotive",
95
95
  mobile: "Mobile",
96
96
  tablet: ["Tablet", "EInk"],
@@ -99,7 +99,7 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
99
99
  xr: ["VR", "XR"],
100
100
  "?": ["Desktop", "Unknown"],
101
101
  "*": void 0
102
- }, Oi = {
102
+ }, _i = {
103
103
  Chrome: "Google Chrome",
104
104
  Edge: "Microsoft Edge",
105
105
  "Edge WebView2": "Microsoft Edge WebView2",
@@ -109,7 +109,7 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
109
109
  "MIUI Browser": "Miui Browser",
110
110
  "Opera Mobi": "OperaMobile",
111
111
  Yandex: "YaBrowser"
112
- }, Ft = {
112
+ }, zt = {
113
113
  browser: [
114
114
  [
115
115
  // Most common regardless engine
@@ -121,7 +121,7 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
121
121
  /webview.+edge\/([\w\.]+)/i
122
122
  // Microsoft Edge
123
123
  ],
124
- [u, [c, Fe + " WebView"]],
124
+ [u, [c, _e + " WebView"]],
125
125
  [
126
126
  /edg(?:e|ios|a)?\/([\w\.]+)/i
127
127
  ],
@@ -225,7 +225,7 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
225
225
  /slbrowser\/([\w\.]+)/i
226
226
  // Smart Lenovo Browser
227
227
  ],
228
- [u, [c, "Smart " + je + xe]],
228
+ [u, [c, "Smart " + Ge + xe]],
229
229
  [
230
230
  /(avast|avg)\/([\w\.]+)/i
231
231
  // Avast/AVG Secure Browser
@@ -290,12 +290,12 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
290
290
  /metasr[\/ ]?([\d\.]+)/i
291
291
  // Sogou Explorer
292
292
  ],
293
- [u, [c, Ot + " Explorer"]],
293
+ [u, [c, _t + " Explorer"]],
294
294
  [
295
295
  /(sogou)mo\w+\/([\d\.]+)/i
296
296
  // Sogou Mobile
297
297
  ],
298
- [[c, Ot + " Mobile"], u],
298
+ [[c, _t + " Mobile"], u],
299
299
  [
300
300
  /(electron)\/([\w\.]+) safari/i,
301
301
  // Electron-based App
@@ -322,7 +322,7 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
322
322
  /((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
323
323
  // Facebook App for iOS & Android
324
324
  ],
325
- [[c, Ke], u, [a, ae]],
325
+ [[c, Ze], u, [a, ae]],
326
326
  [
327
327
  /(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
328
328
  // Kakao App
@@ -373,17 +373,17 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
373
373
  /headlesschrome(?:\/([\w\.]+)| )/i
374
374
  // Chrome Headless
375
375
  ],
376
- [u, [c, Tt + " Headless"]],
376
+ [u, [c, Ft + " Headless"]],
377
377
  [
378
378
  /wv\).+chrome\/([\w\.]+).+edgw\//i
379
379
  // Edge WebView2
380
380
  ],
381
- [u, [c, Fe + " WebView2"]],
381
+ [u, [c, _e + " WebView2"]],
382
382
  [
383
383
  / wv\).+(chrome)\/([\w\.]+)/i
384
384
  // Chrome WebView
385
385
  ],
386
- [[c, Tt + " WebView"], u],
386
+ [[c, Ft + " WebView"], u],
387
387
  [
388
388
  /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
389
389
  // Android Browser
@@ -474,34 +474,34 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
474
474
  /\b((amd|x|x86[-_]?|wow|win)64)\b/i
475
475
  // AMD64 (x64)
476
476
  ],
477
- [[O, "amd64"]],
477
+ [[M, "amd64"]],
478
478
  [
479
479
  /(ia32(?=;))/i,
480
480
  // IA32 (quicktime)
481
481
  /\b((i[346]|x)86)(pc)?\b/i
482
482
  // IA32 (x86)
483
483
  ],
484
- [[O, "ia32"]],
484
+ [[M, "ia32"]],
485
485
  [
486
486
  /\b(aarch64|arm(v?[89]e?l?|_?64))\b/i
487
487
  // ARM64
488
488
  ],
489
- [[O, "arm64"]],
489
+ [[M, "arm64"]],
490
490
  [
491
491
  /\b(arm(v[67])?ht?n?[fl]p?)\b/i
492
492
  // ARMHF
493
493
  ],
494
- [[O, "armhf"]],
494
+ [[M, "armhf"]],
495
495
  [
496
496
  // PocketPC mistakenly identified as PowerPC
497
497
  /( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i
498
498
  ],
499
- [[O, "arm"]],
499
+ [[M, "arm"]],
500
500
  [
501
501
  / sun4\w[;\)]/i
502
502
  // SPARC
503
503
  ],
504
- [[O, "sparc"]],
504
+ [[M, "sparc"]],
505
505
  [
506
506
  // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
507
507
  /\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i,
@@ -510,15 +510,15 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
510
510
  /(?:osf1|[freopnt]{3,4}bsd) (alpha)/i
511
511
  // Alpha
512
512
  ],
513
- [[O, /ower/, he, Y]],
513
+ [[M, /ower/, he, Q]],
514
514
  [
515
515
  /mc680.0/i
516
516
  ],
517
- [[O, "68k"]],
517
+ [[M, "68k"]],
518
518
  [
519
519
  /winnt.+\[axp/i
520
520
  ],
521
- [[O, "alpha"]]
521
+ [[M, "alpha"]]
522
522
  ],
523
523
  device: [
524
524
  [
@@ -528,25 +528,25 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
528
528
  // Samsung
529
529
  /\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i
530
530
  ],
531
- [l, [d, ge], [a, y]],
531
+ [l, [d, ge], [a, v]],
532
532
  [
533
533
  /\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
534
534
  /samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,
535
535
  /sec-(sgh\w+)/i
536
536
  ],
537
- [l, [d, ge], [a, g]],
537
+ [l, [d, ge], [a, w]],
538
538
  [
539
539
  // Apple
540
540
  /(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i
541
541
  // iPod/iPhone
542
542
  ],
543
- [l, [d, le], [a, g]],
543
+ [l, [d, le], [a, w]],
544
544
  [
545
545
  /\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,
546
546
  // iPad
547
547
  /\b(ipad)[\d,]*[;\] ].+(mac |i(pad)?)os/i
548
548
  ],
549
- [l, [d, le], [a, y]],
549
+ [l, [d, le], [a, v]],
550
550
  [
551
551
  /(macintosh);/i
552
552
  ],
@@ -555,33 +555,33 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
555
555
  // Sharp
556
556
  /\b(sh-?[altvz]?\d\d[a-ekm]?)/i
557
557
  ],
558
- [l, [d, It], [a, g]],
558
+ [l, [d, At], [a, w]],
559
559
  [
560
560
  // Honor
561
561
  /\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i
562
562
  ],
563
- [l, [d, St], [a, y]],
563
+ [l, [d, Rt], [a, v]],
564
564
  [
565
565
  /honor([-\w ]+)[;\)]/i
566
566
  ],
567
- [l, [d, St], [a, g]],
567
+ [l, [d, Rt], [a, w]],
568
568
  [
569
569
  // Huawei
570
570
  /\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i
571
571
  ],
572
- [l, [d, kt], [a, y]],
572
+ [l, [d, Tt], [a, v]],
573
573
  [
574
574
  /(?:huawei) ?([-\w ]+)[;\)]/i,
575
575
  /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i
576
576
  ],
577
- [l, [d, kt], [a, g]],
577
+ [l, [d, Tt], [a, w]],
578
578
  [
579
579
  // Xiaomi
580
580
  /oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,
581
581
  /\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i
582
582
  // Mi Pad tablets
583
583
  ],
584
- [[l, /_/g, " "], [d, Ye], [a, y]],
584
+ [[l, /_/g, " "], [d, Ke], [a, v]],
585
585
  [
586
586
  /\b; (\w+) build\/hm\1/i,
587
587
  // Xiaomi Hongmi 'numeric' models
@@ -593,93 +593,93 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
593
593
  /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,
594
594
  / ([\w ]+) miui\/v?\d/i
595
595
  ],
596
- [[l, /_/g, " "], [d, Ye], [a, g]],
596
+ [[l, /_/g, " "], [d, Ke], [a, w]],
597
597
  [
598
598
  // OnePlus
599
599
  /droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-k]\w[1m]10)\b/i,
600
600
  /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
601
601
  ],
602
- [l, [d, Et], [a, g]],
602
+ [l, [d, Mt], [a, w]],
603
603
  [
604
604
  // OPPO
605
605
  /; (\w+) bui.+ oppo/i,
606
606
  /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
607
607
  ],
608
- [l, [d, Xe], [a, g]],
608
+ [l, [d, Qe], [a, w]],
609
609
  [
610
610
  /\b(opd2(\d{3}a?))(?: bui|\))/i
611
611
  ],
612
- [l, [d, H, { OnePlus: ["203", "304", "403", "404", "413", "415"], "*": Xe }], [a, y]],
612
+ [l, [d, H, { OnePlus: ["203", "304", "403", "404", "413", "415"], "*": Qe }], [a, v]],
613
613
  [
614
614
  // BLU
615
615
  /(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i
616
616
  // Vivo series
617
617
  ],
618
- [l, [d, "BLU"], [a, g]],
618
+ [l, [d, "BLU"], [a, w]],
619
619
  [
620
620
  // Vivo
621
621
  /; vivo (\w+)(?: bui|\))/i,
622
622
  /\b(v[12]\d{3}\w?[at])(?: bui|;)/i
623
623
  ],
624
- [l, [d, "Vivo"], [a, g]],
624
+ [l, [d, "Vivo"], [a, w]],
625
625
  [
626
626
  // Realme
627
627
  /\b(rmx[1-3]\d{3})(?: bui|;|\))/i
628
628
  ],
629
- [l, [d, "Realme"], [a, g]],
629
+ [l, [d, "Realme"], [a, w]],
630
630
  [
631
631
  // Lenovo
632
632
  /(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,
633
633
  /lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i
634
634
  ],
635
- [l, [d, je], [a, y]],
635
+ [l, [d, Ge], [a, v]],
636
636
  [
637
637
  /lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i
638
638
  ],
639
- [l, [d, je], [a, g]],
639
+ [l, [d, Ge], [a, w]],
640
640
  [
641
641
  // Motorola
642
642
  /\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
643
643
  /\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,
644
644
  /((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i
645
645
  ],
646
- [l, [d, Ge], [a, g]],
646
+ [l, [d, Ye], [a, w]],
647
647
  [
648
648
  /\b(mz60\d|xoom[2 ]{0,2}) build\//i
649
649
  ],
650
- [l, [d, Ge], [a, y]],
650
+ [l, [d, Ye], [a, v]],
651
651
  [
652
652
  // LG
653
653
  /((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
654
654
  ],
655
- [l, [d, Oe], [a, y]],
655
+ [l, [d, Ae], [a, v]],
656
656
  [
657
657
  /(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
658
658
  /\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,
659
659
  /\blg-?([\d\w]+) bui/i
660
660
  ],
661
- [l, [d, Oe], [a, g]],
661
+ [l, [d, Ae], [a, w]],
662
662
  [
663
663
  // Nokia
664
664
  /(nokia) (t[12][01])/i
665
665
  ],
666
- [d, l, [a, y]],
666
+ [d, l, [a, v]],
667
667
  [
668
668
  /(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,
669
669
  /nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i
670
670
  ],
671
- [[l, /_/g, " "], [a, g], [d, "Nokia"]],
671
+ [[l, /_/g, " "], [a, w], [d, "Nokia"]],
672
672
  [
673
673
  // Google
674
674
  /(pixel (c|tablet))\b/i
675
675
  // Google Pixel C/Tablet
676
676
  ],
677
- [l, [d, ee], [a, y]],
677
+ [l, [d, ie], [a, v]],
678
678
  [
679
679
  // Google Pixel
680
680
  /droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i
681
681
  ],
682
- [l, [d, ee], [a, g]],
682
+ [l, [d, ie], [a, w]],
683
683
  [
684
684
  /(google) (pixelbook( go)?)/i
685
685
  ],
@@ -688,12 +688,12 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
688
688
  // Sony
689
689
  /droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i
690
690
  ],
691
- [l, [d, we], [a, g]],
691
+ [l, [d, we], [a, w]],
692
692
  [
693
693
  /sony tablet [ps]/i,
694
694
  /\b(?:sony)?sgp\w+(?: bui|\))/i
695
695
  ],
696
- [[l, "Xperia Tablet"], [d, we], [a, y]],
696
+ [[l, "Xperia Tablet"], [d, we], [a, v]],
697
697
  [
698
698
  // Amazon
699
699
  /(alexa)webm/i,
@@ -702,38 +702,38 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
702
702
  /(kf[a-z]+)( bui|\)).+silk\//i
703
703
  // Kindle Fire HD
704
704
  ],
705
- [l, [d, Re], [a, y]],
705
+ [l, [d, Me], [a, v]],
706
706
  [
707
707
  /((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i
708
708
  // Fire Phone
709
709
  ],
710
- [[l, /(.+)/g, "Fire Phone $1"], [d, Re], [a, g]],
710
+ [[l, /(.+)/g, "Fire Phone $1"], [d, Me], [a, w]],
711
711
  [
712
712
  // BlackBerry
713
713
  /(playbook);[-\w\),; ]+(rim)/i
714
714
  // BlackBerry PlayBook
715
715
  ],
716
- [l, d, [a, y]],
716
+ [l, d, [a, v]],
717
717
  [
718
718
  /\b((?:bb[a-f]|st[hv])100-\d)/i,
719
719
  /(?:blackberry|\(bb10;) (\w+)/i
720
720
  ],
721
- [l, [d, vt], [a, g]],
721
+ [l, [d, It], [a, w]],
722
722
  [
723
723
  // Asus
724
724
  /(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
725
725
  ],
726
- [l, [d, xt], [a, y]],
726
+ [l, [d, Et], [a, v]],
727
727
  [
728
728
  / (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
729
729
  ],
730
- [l, [d, xt], [a, g]],
730
+ [l, [d, Et], [a, w]],
731
731
  [
732
732
  // HTC
733
733
  /(nexus 9)/i
734
734
  // HTC Nexus 9
735
735
  ],
736
- [l, [d, "HTC"], [a, y]],
736
+ [l, [d, "HTC"], [a, v]],
737
737
  [
738
738
  /(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,
739
739
  // HTC
@@ -742,76 +742,76 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
742
742
  /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i
743
743
  // Alcatel/GeeksPhone/Nexian/Panasonic/Sony
744
744
  ],
745
- [d, [l, /_/g, " "], [a, g]],
745
+ [d, [l, /_/g, " "], [a, w]],
746
746
  [
747
747
  // TCL
748
748
  /tcl (xess p17aa)/i,
749
749
  /droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i
750
750
  ],
751
- [l, [d, "TCL"], [a, y]],
751
+ [l, [d, "TCL"], [a, v]],
752
752
  [
753
753
  /droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i
754
754
  ],
755
- [l, [d, "TCL"], [a, g]],
755
+ [l, [d, "TCL"], [a, w]],
756
756
  [
757
757
  // itel
758
758
  /(itel) ((\w+))/i
759
759
  ],
760
- [[d, Y], l, [a, H, { tablet: ["p10001l", "w7001"], "*": "mobile" }]],
760
+ [[d, Q], l, [a, H, { tablet: ["p10001l", "w7001"], "*": "mobile" }]],
761
761
  [
762
762
  // Acer
763
763
  /droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
764
764
  ],
765
- [l, [d, "Acer"], [a, y]],
765
+ [l, [d, "Acer"], [a, v]],
766
766
  [
767
767
  // Meizu
768
768
  /droid.+; (m[1-5] note) bui/i,
769
769
  /\bmz-([-\w]{2,})/i
770
770
  ],
771
- [l, [d, "Meizu"], [a, g]],
771
+ [l, [d, "Meizu"], [a, w]],
772
772
  [
773
773
  // Ulefone
774
774
  /; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i
775
775
  ],
776
- [l, [d, "Ulefone"], [a, g]],
776
+ [l, [d, "Ulefone"], [a, w]],
777
777
  [
778
778
  // Energizer
779
779
  /; (energy ?\w+)(?: bui|\))/i,
780
780
  /; energizer ([\w ]+)(?: bui|\))/i
781
781
  ],
782
- [l, [d, "Energizer"], [a, g]],
782
+ [l, [d, "Energizer"], [a, w]],
783
783
  [
784
784
  // Cat
785
785
  /; cat (b35);/i,
786
786
  /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i
787
787
  ],
788
- [l, [d, "Cat"], [a, g]],
788
+ [l, [d, "Cat"], [a, w]],
789
789
  [
790
790
  // Smartfren
791
791
  /((?:new )?andromax[\w- ]+)(?: bui|\))/i
792
792
  ],
793
- [l, [d, "Smartfren"], [a, g]],
793
+ [l, [d, "Smartfren"], [a, w]],
794
794
  [
795
795
  // Nothing
796
796
  /droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i
797
797
  ],
798
- [l, [d, "Nothing"], [a, g]],
798
+ [l, [d, "Nothing"], [a, w]],
799
799
  [
800
800
  // Archos
801
801
  /; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,
802
802
  /archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i
803
803
  ],
804
- [l, [d, "Archos"], [a, y]],
804
+ [l, [d, "Archos"], [a, v]],
805
805
  [
806
806
  /archos ([\w ]+)( b|\))/i,
807
807
  /; (ac[3-6]\d\w{2,8})( b|\))/i
808
808
  ],
809
- [l, [d, "Archos"], [a, g]],
809
+ [l, [d, "Archos"], [a, w]],
810
810
  [
811
811
  // HMD
812
812
  /; (n159v)/i
813
813
  ],
814
- [l, [d, "HMD"], [a, g]],
814
+ [l, [d, "HMD"], [a, w]],
815
815
  [
816
816
  // MIXED
817
817
  /(imo) (tab \w+)/i,
@@ -819,7 +819,7 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
819
819
  /(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i
820
820
  // Infinix XPad / Tecno
821
821
  ],
822
- [d, l, [a, y]],
822
+ [d, l, [a, v]],
823
823
  [
824
824
  /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,
825
825
  // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Tecno/Micromax/Advan
@@ -836,7 +836,7 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
836
836
  /droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i
837
837
  // Philips
838
838
  ],
839
- [d, l, [a, g]],
839
+ [d, l, [a, w]],
840
840
  [
841
841
  /(kobo)\s(ereader|touch)/i,
842
842
  // Kobo
@@ -845,41 +845,41 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
845
845
  /(kindle)\/([\w\.]+)/i
846
846
  // Kindle
847
847
  ],
848
- [d, l, [a, y]],
848
+ [d, l, [a, v]],
849
849
  [
850
850
  /(surface duo)/i
851
851
  // Surface Duo
852
852
  ],
853
- [l, [d, Ne], [a, y]],
853
+ [l, [d, Xe], [a, v]],
854
854
  [
855
855
  /droid [\d\.]+; (fp\du?)(?: b|\))/i
856
856
  // Fairphone
857
857
  ],
858
- [l, [d, "Fairphone"], [a, g]],
858
+ [l, [d, "Fairphone"], [a, w]],
859
859
  [
860
860
  /((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i
861
861
  // Nvidia Tablets
862
862
  ],
863
- [l, [d, Ct], [a, y]],
863
+ [l, [d, Ot], [a, v]],
864
864
  [
865
865
  /(sprint) (\w+)/i
866
866
  // Sprint Phones
867
867
  ],
868
- [d, l, [a, g]],
868
+ [d, l, [a, w]],
869
869
  [
870
870
  /(kin\.[onetw]{3})/i
871
871
  // Microsoft Kin
872
872
  ],
873
- [[l, /\./g, " "], [d, Ne], [a, g]],
873
+ [[l, /\./g, " "], [d, Xe], [a, w]],
874
874
  [
875
875
  /droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
876
876
  // Zebra
877
877
  ],
878
- [l, [d, Qe], [a, y]],
878
+ [l, [d, Je], [a, v]],
879
879
  [
880
880
  /droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
881
881
  ],
882
- [l, [d, Qe], [a, g]],
882
+ [l, [d, Je], [a, w]],
883
883
  [
884
884
  ///////////////////
885
885
  // SMARTTVS
@@ -889,90 +889,90 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
889
889
  /smart-tv.+(samsung)/i
890
890
  // Samsung
891
891
  ],
892
- [d, [a, C]],
892
+ [d, [a, E]],
893
893
  [
894
894
  /hbbtv.+maple;(\d+)/i
895
895
  ],
896
- [[l, /^/, "SmartTV"], [d, ge], [a, C]],
896
+ [[l, /^/, "SmartTV"], [d, ge], [a, E]],
897
897
  [
898
898
  /(vizio)(?: |.+model\/)(\w+-\w+)/i,
899
899
  // Vizio
900
900
  /tcast.+(lg)e?. ([-\w]+)/i
901
901
  // LG SmartTV
902
902
  ],
903
- [d, l, [a, C]],
903
+ [d, l, [a, E]],
904
904
  [
905
905
  /(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i
906
906
  ],
907
- [[d, Oe], [a, C]],
907
+ [[d, Ae], [a, E]],
908
908
  [
909
909
  /(apple) ?tv/i
910
910
  // Apple TV
911
911
  ],
912
- [d, [l, le + " TV"], [a, C]],
912
+ [d, [l, le + " TV"], [a, E]],
913
913
  [
914
914
  /crkey.*devicetype\/chromecast/i
915
915
  // Google Chromecast Third Generation
916
916
  ],
917
- [[l, X + " Third Generation"], [d, ee], [a, C]],
917
+ [[l, Y + " Third Generation"], [d, ie], [a, E]],
918
918
  [
919
919
  /crkey.*devicetype\/([^/]*)/i
920
920
  // Google Chromecast with specific device type
921
921
  ],
922
- [[l, /^/, "Chromecast "], [d, ee], [a, C]],
922
+ [[l, /^/, "Chromecast "], [d, ie], [a, E]],
923
923
  [
924
924
  /fuchsia.*crkey/i
925
925
  // Google Chromecast Nest Hub
926
926
  ],
927
- [[l, X + " Nest Hub"], [d, ee], [a, C]],
927
+ [[l, Y + " Nest Hub"], [d, ie], [a, E]],
928
928
  [
929
929
  /crkey/i
930
930
  // Google Chromecast, Linux-based or unknown
931
931
  ],
932
- [[l, X], [d, ee], [a, C]],
932
+ [[l, Y], [d, ie], [a, E]],
933
933
  [
934
934
  /(portaltv)/i
935
935
  // Facebook Portal TV
936
936
  ],
937
- [l, [d, Ke], [a, C]],
937
+ [l, [d, Ze], [a, E]],
938
938
  [
939
939
  /droid.+aft(\w+)( bui|\))/i
940
940
  // Fire TV
941
941
  ],
942
- [l, [d, Re], [a, C]],
942
+ [l, [d, Me], [a, E]],
943
943
  [
944
944
  /(shield \w+ tv)/i
945
945
  // Nvidia Shield TV
946
946
  ],
947
- [l, [d, Ct], [a, C]],
947
+ [l, [d, Ot], [a, E]],
948
948
  [
949
949
  /\(dtv[\);].+(aquos)/i,
950
950
  /(aquos-tv[\w ]+)\)/i
951
951
  // Sharp
952
952
  ],
953
- [l, [d, It], [a, C]],
953
+ [l, [d, At], [a, E]],
954
954
  [
955
955
  /(bravia[\w ]+)( bui|\))/i
956
956
  // Sony
957
957
  ],
958
- [l, [d, we], [a, C]],
958
+ [l, [d, we], [a, E]],
959
959
  [
960
960
  /(mi(tv|box)-?\w+) bui/i
961
961
  // Xiaomi
962
962
  ],
963
- [l, [d, Ye], [a, C]],
963
+ [l, [d, Ke], [a, E]],
964
964
  [
965
965
  /Hbbtv.*(technisat) (.*);/i
966
966
  // TechniSAT
967
967
  ],
968
- [d, l, [a, C]],
968
+ [d, l, [a, E]],
969
969
  [
970
970
  /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
971
971
  // Roku
972
972
  /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i
973
973
  // HbbTV devices
974
974
  ],
975
- [[d, /.+\/(\w+)/, "$1", H, { LG: "lge" }], [l, Le], [a, C]],
975
+ [[d, /.+\/(\w+)/, "$1", H, { LG: "lge" }], [l, De], [a, E]],
976
976
  [
977
977
  ///////////////////
978
978
  // CONSOLES
@@ -980,12 +980,12 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
980
980
  /(playstation \w+)/i
981
981
  // Playstation
982
982
  ],
983
- [l, [d, we], [a, Ae]],
983
+ [l, [d, we], [a, Pe]],
984
984
  [
985
985
  /\b(xbox(?: one)?(?!; xbox))[\); ]/i
986
986
  // Microsoft Xbox
987
987
  ],
988
- [l, [d, Ne], [a, Ae]],
988
+ [l, [d, Xe], [a, Pe]],
989
989
  [
990
990
  /(ouya)/i,
991
991
  // Ouya
@@ -997,7 +997,7 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
997
997
  /droid.+; ((shield|rgcube|gr0006))( bui|\))/i
998
998
  // Nvidia Portable/Anbernic/Logitech
999
999
  ],
1000
- [[d, H, { Nvidia: "Shield", Anbernic: "RGCUBE", Logitech: "GR0006" }], l, [a, Ae]],
1000
+ [[d, H, { Nvidia: "Shield", Anbernic: "RGCUBE", Logitech: "GR0006" }], l, [a, Pe]],
1001
1001
  [
1002
1002
  ///////////////////
1003
1003
  // WEARABLES
@@ -1017,7 +1017,7 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
1017
1017
  /(ow(?:19|20)?we?[1-3]{1,3})/i
1018
1018
  // Oppo Watch
1019
1019
  ],
1020
- [l, [d, Xe], [a, $]],
1020
+ [l, [d, Qe], [a, $]],
1021
1021
  [
1022
1022
  /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
1023
1023
  // Apple Watch
@@ -1027,12 +1027,12 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
1027
1027
  /(opwwe\d{3})/i
1028
1028
  // OnePlus Watch
1029
1029
  ],
1030
- [l, [d, Et], [a, $]],
1030
+ [l, [d, Mt], [a, $]],
1031
1031
  [
1032
1032
  /(moto 360)/i
1033
1033
  // Motorola 360
1034
1034
  ],
1035
- [l, [d, Ge], [a, $]],
1035
+ [l, [d, Ye], [a, $]],
1036
1036
  [
1037
1037
  /(smartwatch 3)/i
1038
1038
  // Sony SmartWatch
@@ -1042,11 +1042,11 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
1042
1042
  /(g watch r)/i
1043
1043
  // LG G Watch R
1044
1044
  ],
1045
- [l, [d, Oe], [a, $]],
1045
+ [l, [d, Ae], [a, $]],
1046
1046
  [
1047
1047
  /droid.+; (wt63?0{2,3})\)/i
1048
1048
  ],
1049
- [l, [d, Qe], [a, $]],
1049
+ [l, [d, Je], [a, $]],
1050
1050
  [
1051
1051
  ///////////////////
1052
1052
  // XR
@@ -1054,22 +1054,22 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
1054
1054
  /droid.+; (glass) \d/i
1055
1055
  // Google Glass
1056
1056
  ],
1057
- [l, [d, ee], [a, Te]],
1057
+ [l, [d, ie], [a, Oe]],
1058
1058
  [
1059
1059
  /(pico) ([\w ]+) os\d/i
1060
1060
  // Pico
1061
1061
  ],
1062
- [d, l, [a, Te]],
1062
+ [d, l, [a, Oe]],
1063
1063
  [
1064
1064
  /(quest( \d| pro)?s?).+vr/i
1065
1065
  // Meta Quest
1066
1066
  ],
1067
- [l, [d, Ke], [a, Te]],
1067
+ [l, [d, Ze], [a, Oe]],
1068
1068
  [
1069
1069
  /mobile vr; rv.+firefox/i
1070
1070
  // Unidentifiable VR device using Firefox Reality / Wolvic
1071
1071
  ],
1072
- [[a, Te]],
1072
+ [[a, Oe]],
1073
1073
  [
1074
1074
  ///////////////////
1075
1075
  // EMBEDDED
@@ -1082,7 +1082,7 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
1082
1082
  /(aeobc)\b/i
1083
1083
  // Echo Dot
1084
1084
  ],
1085
- [l, [d, Re], [a, ke]],
1085
+ [l, [d, Me], [a, ke]],
1086
1086
  [
1087
1087
  /(homepod).+mac os/i
1088
1088
  // Apple HomePod
@@ -1100,25 +1100,25 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
1100
1100
  /droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i
1101
1101
  // Unidentifiable SmartTV
1102
1102
  ],
1103
- [l, [a, C]],
1103
+ [l, [a, E]],
1104
1104
  [
1105
1105
  /\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i
1106
1106
  ],
1107
- [[a, C]],
1107
+ [[a, E]],
1108
1108
  [
1109
1109
  /droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i
1110
1110
  ],
1111
- [l, [a, H, { mobile: "Mobile", xr: "VR", "*": y }]],
1111
+ [l, [a, H, { mobile: "Mobile", xr: "VR", "*": v }]],
1112
1112
  [
1113
1113
  /\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i
1114
1114
  // Unidentifiable Tablet
1115
1115
  ],
1116
- [[a, y]],
1116
+ [[a, v]],
1117
1117
  [
1118
1118
  /(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i
1119
1119
  // Unidentifiable Mobile
1120
1120
  ],
1121
- [[a, g]],
1121
+ [[a, w]],
1122
1122
  [
1123
1123
  /droid .+?; ([\w\. -]+)( bui|\))/i
1124
1124
  // Generic Android Device
@@ -1130,7 +1130,7 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
1130
1130
  /windows.+ edge\/([\w\.]+)/i
1131
1131
  // EdgeHTML
1132
1132
  ],
1133
- [u, [c, Fe + "HTML"]],
1133
+ [u, [c, _e + "HTML"]],
1134
1134
  [
1135
1135
  /(arkweb)\/([\w\.]+)/i
1136
1136
  // ArkWeb
@@ -1172,7 +1172,7 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
1172
1172
  /(windows nt) (6\.[23]); arm/i
1173
1173
  // Windows RT
1174
1174
  ],
1175
- [[c, /N/, "R"], [u, H, Mt]],
1175
+ [[c, /N/, "R"], [u, H, Lt]],
1176
1176
  [
1177
1177
  /(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,
1178
1178
  // Windows IoT/Mobile/Phone
@@ -1184,7 +1184,7 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
1184
1184
  /windows nt ?([\d\.\)]*)(?!.+xbox)/i,
1185
1185
  /\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i
1186
1186
  ],
1187
- [[u, /(;|\))/g, "", H, Mt], [c, tt]],
1187
+ [[u, /(;|\))/g, "", H, Lt], [c, rt]],
1188
1188
  [
1189
1189
  /(windows ce)\/?([\d\.]*)/i
1190
1190
  // Windows CE
@@ -1210,27 +1210,27 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
1210
1210
  /android ([\d\.]+).*crkey/i
1211
1211
  // Google Chromecast, Android-based
1212
1212
  ],
1213
- [u, [c, X + " Android"]],
1213
+ [u, [c, Y + " Android"]],
1214
1214
  [
1215
1215
  /fuchsia.*crkey\/([\d\.]+)/i
1216
1216
  // Google Chromecast, Fuchsia-based
1217
1217
  ],
1218
- [u, [c, X + " Fuchsia"]],
1218
+ [u, [c, Y + " Fuchsia"]],
1219
1219
  [
1220
1220
  /crkey\/([\d\.]+).*devicetype\/smartspeaker/i
1221
1221
  // Google Chromecast, Linux-based Smart Speaker
1222
1222
  ],
1223
- [u, [c, X + " SmartSpeaker"]],
1223
+ [u, [c, Y + " SmartSpeaker"]],
1224
1224
  [
1225
1225
  /linux.*crkey\/([\d\.]+)/i
1226
1226
  // Google Chromecast, Legacy Linux-based
1227
1227
  ],
1228
- [u, [c, X + " Linux"]],
1228
+ [u, [c, Y + " Linux"]],
1229
1229
  [
1230
1230
  /crkey\/([\d\.]+)/i
1231
1231
  // Google Chromecast, unknown
1232
1232
  ],
1233
- [u, [c, X]],
1233
+ [u, [c, Y]],
1234
1234
  [
1235
1235
  // Mobile OSes
1236
1236
  /droid ([\w\.]+)\b.+(android[- ]x86)/i
@@ -1253,7 +1253,7 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
1253
1253
  /\(bb(10);/i
1254
1254
  // BlackBerry 10
1255
1255
  ],
1256
- [u, [c, vt]],
1256
+ [u, [c, It]],
1257
1257
  [
1258
1258
  /(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i
1259
1259
  // Symbian
@@ -1337,47 +1337,47 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
1337
1337
  ],
1338
1338
  [c, u]
1339
1339
  ]
1340
- }, Me = (function() {
1340
+ }, Fe = (function() {
1341
1341
  var e = { init: {}, isIgnore: {}, isIgnoreRgx: {}, toString: {} };
1342
- return q.call(e.init, [
1343
- [_, [c, u, Se, a]],
1344
- [j, [O]],
1342
+ return j.call(e.init, [
1343
+ [P, [c, u, Se, a]],
1344
+ [G, [M]],
1345
1345
  [B, [a, l, d]],
1346
- [z, [c, u]],
1346
+ [U, [c, u]],
1347
1347
  [D, [c, u]]
1348
- ]), q.call(e.isIgnore, [
1349
- [_, [u, Se]],
1350
- [z, [u]],
1348
+ ]), j.call(e.isIgnore, [
1349
+ [P, [u, Se]],
1350
+ [U, [u]],
1351
1351
  [D, [u]]
1352
- ]), q.call(e.isIgnoreRgx, [
1353
- [_, / ?browser$/i],
1352
+ ]), j.call(e.isIgnoreRgx, [
1353
+ [P, / ?browser$/i],
1354
1354
  [D, / ?os$/i]
1355
- ]), q.call(e.toString, [
1356
- [_, [c, u]],
1357
- [j, [O]],
1355
+ ]), j.call(e.toString, [
1356
+ [P, [c, u]],
1357
+ [G, [M]],
1358
1358
  [B, [d, l]],
1359
- [z, [c, u]],
1359
+ [U, [c, u]],
1360
1360
  [D, [c, u]]
1361
1361
  ]), e;
1362
- })(), Mi = function(e, t) {
1363
- var i = Me.init[t], n = Me.isIgnore[t] || 0, o = Me.isIgnoreRgx[t] || 0, s = Me.toString[t] || 0;
1362
+ })(), Li = function(e, t) {
1363
+ var i = Fe.init[t], n = Fe.isIgnore[t] || 0, o = Fe.isIgnoreRgx[t] || 0, s = Fe.toString[t] || 0;
1364
1364
  function r() {
1365
- q.call(this, i);
1365
+ j.call(this, i);
1366
1366
  }
1367
1367
  return r.prototype.getItem = function() {
1368
1368
  return e;
1369
1369
  }, r.prototype.withClientHints = function() {
1370
- return ie ? ie.getHighEntropyValues(Nt).then(function(h) {
1371
- return e.setCH(new Gt(h, !1)).parseCH().get();
1370
+ return re ? re.getHighEntropyValues(Qt).then(function(h) {
1371
+ return e.setCH(new Kt(h, !1)).parseCH().get();
1372
1372
  }) : e.parseCH().get();
1373
1373
  }, r.prototype.withFeatureCheck = function() {
1374
1374
  return e.detectFeature().get();
1375
1375
  }, t != fe && (r.prototype.is = function(h) {
1376
1376
  var f = !1;
1377
- for (var w in this)
1378
- if (this.hasOwnProperty(w) && !it(n, w) && Y(o ? be(o, this[w]) : this[w]) == Y(o ? be(o, h) : h)) {
1379
- if (f = !0, h != S.UNDEFINED) break;
1380
- } else if (h == S.UNDEFINED && f) {
1377
+ for (var g in this)
1378
+ if (this.hasOwnProperty(g) && !ot(n, g) && Q(o ? be(o, this[g]) : this[g]) == Q(o ? be(o, h) : h)) {
1379
+ if (f = !0, h != C.UNDEFINED) break;
1380
+ } else if (h == C.UNDEFINED && f) {
1381
1381
  f = !f;
1382
1382
  break;
1383
1383
  }
@@ -1385,82 +1385,82 @@ var mi = "2.0.7", yi = 500, mt = "user-agent", he = "", yt = "?", S = {
1385
1385
  }, r.prototype.toString = function() {
1386
1386
  var h = he;
1387
1387
  for (var f in s)
1388
- typeof this[s[f]] !== S.UNDEFINED && (h += (h ? " " : he) + this[s[f]]);
1389
- return h || S.UNDEFINED;
1388
+ typeof this[s[f]] !== C.UNDEFINED && (h += (h ? " " : he) + this[s[f]]);
1389
+ return h || C.UNDEFINED;
1390
1390
  }), r.prototype.then = function(h) {
1391
- var f = this, w = function() {
1391
+ var f = this, g = function() {
1392
1392
  for (var k in f)
1393
1393
  f.hasOwnProperty(k) && (this[k] = f[k]);
1394
1394
  };
1395
- w.prototype = {
1395
+ g.prototype = {
1396
1396
  is: r.prototype.is,
1397
1397
  toString: r.prototype.toString,
1398
1398
  withClientHints: r.prototype.withClientHints,
1399
1399
  withFeatureCheck: r.prototype.withFeatureCheck
1400
1400
  };
1401
- var m = new w();
1401
+ var m = new g();
1402
1402
  return h(m), m;
1403
1403
  }, new r();
1404
1404
  };
1405
- function Gt(e, t) {
1406
- if (e = e || {}, q.call(this, Nt), t)
1407
- q.call(this, [
1408
- [st, Je(e[J])],
1409
- [at, Je(e[xi])],
1410
- [g, /\?1/.test(e[Ci])],
1411
- [l, ve(e[Ei])],
1412
- [pe, ve(e[jt])],
1413
- [lt, ve(e[Ii])],
1414
- [O, ve(e[vi])],
1415
- [te, Je(e[Si])],
1416
- [He, ve(e[ki])]
1405
+ function Kt(e, t) {
1406
+ if (e = e || {}, j.call(this, Qt), t)
1407
+ j.call(this, [
1408
+ [ct, et(e[Z])],
1409
+ [dt, et(e[Ei])],
1410
+ [w, /\?1/.test(e[Oi])],
1411
+ [l, ve(e[Mi])],
1412
+ [pe, ve(e[Yt])],
1413
+ [ut, ve(e[Ai])],
1414
+ [M, ve(e[Ii])],
1415
+ [ne, et(e[Ri])],
1416
+ [Ue, ve(e[Ti])]
1417
1417
  ]);
1418
1418
  else
1419
1419
  for (var i in e)
1420
- this.hasOwnProperty(i) && typeof e[i] !== S.UNDEFINED && (this[i] = e[i]);
1420
+ this.hasOwnProperty(i) && typeof e[i] !== C.UNDEFINED && (this[i] = e[i]);
1421
1421
  }
1422
- function K(e, t, i, n) {
1423
- return q.call(this, [
1422
+ function J(e, t, i, n) {
1423
+ return j.call(this, [
1424
1424
  ["itemType", e],
1425
1425
  ["ua", t],
1426
1426
  ["uaCH", n],
1427
1427
  ["rgxMap", i],
1428
- ["data", Mi(this, e)]
1428
+ ["data", Li(this, e)]
1429
1429
  ]), this;
1430
1430
  }
1431
- K.prototype.get = function(e) {
1431
+ J.prototype.get = function(e) {
1432
1432
  return e ? this.data.hasOwnProperty(e) ? this.data[e] : void 0 : this.data;
1433
1433
  };
1434
- K.prototype.set = function(e, t) {
1434
+ J.prototype.set = function(e, t) {
1435
1435
  return this.data[e] = t, this;
1436
1436
  };
1437
- K.prototype.setCH = function(e) {
1437
+ J.prototype.setCH = function(e) {
1438
1438
  return this.uaCH = e, this;
1439
1439
  };
1440
- K.prototype.detectFeature = function() {
1440
+ J.prototype.detectFeature = function() {
1441
1441
  if (F && F.userAgent == this.ua)
1442
1442
  switch (this.itemType) {
1443
- case _:
1444
- F.brave && typeof F.brave.isBrave == S.FUNCTION && this.set(c, "Brave");
1443
+ case P:
1444
+ F.brave && typeof F.brave.isBrave == C.FUNCTION && this.set(c, "Brave");
1445
1445
  break;
1446
1446
  case B:
1447
- !this.get(a) && ie && ie[g] && this.set(a, g), this.get(l) == "Macintosh" && F && typeof F.standalone !== S.UNDEFINED && F.maxTouchPoints && F.maxTouchPoints > 2 && this.set(l, "iPad").set(a, y);
1447
+ !this.get(a) && re && re[w] && this.set(a, w), this.get(l) == "Macintosh" && F && typeof F.standalone !== C.UNDEFINED && F.maxTouchPoints && F.maxTouchPoints > 2 && this.set(l, "iPad").set(a, v);
1448
1448
  break;
1449
1449
  case D:
1450
- !this.get(c) && ie && ie[pe] && this.set(c, ie[pe]);
1450
+ !this.get(c) && re && re[pe] && this.set(c, re[pe]);
1451
1451
  break;
1452
1452
  case fe:
1453
1453
  var e = this.data, t = function(i) {
1454
1454
  return e[i].getItem().detectFeature().get();
1455
1455
  };
1456
- this.set(_, t(_)).set(j, t(j)).set(B, t(B)).set(z, t(z)).set(D, t(D));
1456
+ this.set(P, t(P)).set(G, t(G)).set(B, t(B)).set(U, t(U)).set(D, t(D));
1457
1457
  }
1458
1458
  return this;
1459
1459
  };
1460
- K.prototype.parseUA = function() {
1461
- switch (this.itemType != fe && rt.call(this.data, this.ua, this.rgxMap), this.itemType) {
1462
- case _:
1463
- this.set(Se, nt(this.get(u)));
1460
+ J.prototype.parseUA = function() {
1461
+ switch (this.itemType != fe && at.call(this.data, this.ua, this.rgxMap), this.itemType) {
1462
+ case P:
1463
+ this.set(Se, st(this.get(u)));
1464
1464
  break;
1465
1465
  case D:
1466
1466
  if (this.get(c) == "iOS" && this.get(u) == "18.6") {
@@ -1471,56 +1471,56 @@ K.prototype.parseUA = function() {
1471
1471
  }
1472
1472
  return this;
1473
1473
  };
1474
- K.prototype.parseCH = function() {
1474
+ J.prototype.parseCH = function() {
1475
1475
  var e = this.uaCH, t = this.rgxMap;
1476
1476
  switch (this.itemType) {
1477
- case _:
1478
- case z:
1479
- var i = e[at] || e[st], n;
1477
+ case P:
1478
+ case U:
1479
+ var i = e[dt] || e[ct], n;
1480
1480
  if (i)
1481
1481
  for (var o = 0; o < i.length; o++) {
1482
1482
  var s = i[o].brand || i[o], r = i[o].version;
1483
- this.itemType == _ && !/not.a.brand/i.test(s) && (!n || /Chrom/.test(n) && s != Rt || n == Fe && /WebView2/.test(s)) && (s = H(s, Oi), n = this.get(c), n && !/Chrom/.test(n) && /Chrom/.test(s) || this.set(c, s).set(u, r).set(Se, nt(r)), n = s), this.itemType == z && s == Rt && this.set(u, r);
1483
+ this.itemType == P && !/not.a.brand/i.test(s) && (!n || /Chrom/.test(n) && s != Pt || n == _e && /WebView2/.test(s)) && (s = H(s, _i), n = this.get(c), n && !/Chrom/.test(n) && /Chrom/.test(s) || this.set(c, s).set(u, r).set(Se, st(r)), n = s), this.itemType == U && s == Pt && this.set(u, r);
1484
1484
  }
1485
1485
  break;
1486
- case j:
1487
- var h = e[O];
1488
- h && (h && e[He] == "64" && (h += "64"), rt.call(this.data, h + ";", t));
1486
+ case G:
1487
+ var h = e[M];
1488
+ h && (h && e[Ue] == "64" && (h += "64"), at.call(this.data, h + ";", t));
1489
1489
  break;
1490
1490
  case B:
1491
- if (e[g] && this.set(a, g), e[l] && (this.set(l, e[l]), !this.get(a) || !this.get(d))) {
1491
+ if (e[w] && this.set(a, w), e[l] && (this.set(l, e[l]), !this.get(a) || !this.get(d))) {
1492
1492
  var f = {};
1493
- rt.call(f, "droid 9; " + e[l] + ")", t), !this.get(a) && f.type && this.set(a, f.type), !this.get(d) && f.vendor && this.set(d, f.vendor);
1493
+ at.call(f, "droid 9; " + e[l] + ")", t), !this.get(a) && f.type && this.set(a, f.type), !this.get(d) && f.vendor && this.set(d, f.vendor);
1494
1494
  }
1495
- if (e[te]) {
1496
- var w;
1497
- if (typeof e[te] != "string")
1498
- for (var m = 0; !w && m < e[te].length; )
1499
- w = H(e[te][m++], At);
1495
+ if (e[ne]) {
1496
+ var g;
1497
+ if (typeof e[ne] != "string")
1498
+ for (var m = 0; !g && m < e[ne].length; )
1499
+ g = H(e[ne][m++], Dt);
1500
1500
  else
1501
- w = H(e[te], At);
1502
- this.set(a, w);
1501
+ g = H(e[ne], Dt);
1502
+ this.set(a, g);
1503
1503
  }
1504
1504
  break;
1505
1505
  case D:
1506
1506
  var k = e[pe];
1507
1507
  if (k) {
1508
- var T = e[lt];
1509
- k == tt && (T = parseInt(nt(T), 10) >= 13 ? "11" : "10"), this.set(c, k).set(u, T);
1508
+ var T = e[ut];
1509
+ k == rt && (T = parseInt(st(T), 10) >= 13 ? "11" : "10"), this.set(c, k).set(u, T);
1510
1510
  }
1511
- this.get(c) == tt && e[l] == "Xbox" && this.set(c, "Xbox").set(u, void 0);
1511
+ this.get(c) == rt && e[l] == "Xbox" && this.set(c, "Xbox").set(u, void 0);
1512
1512
  break;
1513
1513
  case fe:
1514
- var U = this.data, M = function(x) {
1515
- return U[x].getItem().setCH(e).parseCH().get();
1514
+ var z = this.data, R = function(y) {
1515
+ return z[y].getItem().setCH(e).parseCH().get();
1516
1516
  };
1517
- this.set(_, M(_)).set(j, M(j)).set(B, M(B)).set(z, M(z)).set(D, M(D));
1517
+ this.set(P, R(P)).set(G, R(G)).set(B, R(B)).set(U, R(U)).set(D, R(D));
1518
1518
  }
1519
1519
  return this;
1520
1520
  };
1521
- function N(e, t, i) {
1522
- if (typeof e === S.OBJECT ? (_e(e, !0) ? (typeof t === S.OBJECT && (i = t), t = e) : (i = e, t = void 0), e = void 0) : typeof e === S.STRING && !_e(t, !0) && (i = t, t = void 0), i)
1523
- if (typeof i.append === S.FUNCTION) {
1521
+ function X(e, t, i) {
1522
+ if (typeof e === C.OBJECT ? (Le(e, !0) ? (typeof t === C.OBJECT && (i = t), t = e) : (i = e, t = void 0), e = void 0) : typeof e === C.STRING && !Le(t, !0) && (i = t, t = void 0), i)
1523
+ if (typeof i.append === C.FUNCTION) {
1524
1524
  var n = {};
1525
1525
  i.forEach(function(m, k) {
1526
1526
  n[String(k).toLowerCase()] = m;
@@ -1531,46 +1531,46 @@ function N(e, t, i) {
1531
1531
  i.hasOwnProperty(s) && (o[String(s).toLowerCase()] = i[s]);
1532
1532
  i = o;
1533
1533
  }
1534
- if (!(this instanceof N))
1535
- return new N(e, t, i).getResult();
1536
- var r = typeof e === S.STRING ? e : (
1534
+ if (!(this instanceof X))
1535
+ return new X(e, t, i).getResult();
1536
+ var r = typeof e === C.STRING ? e : (
1537
1537
  // Passed user-agent string
1538
- i && i[mt] ? i[mt] : (
1538
+ i && i[St] ? i[St] : (
1539
1539
  // User-Agent from passed headers
1540
1540
  F && F.userAgent ? F.userAgent : (
1541
1541
  // navigator.userAgent
1542
1542
  he
1543
1543
  )
1544
1544
  )
1545
- ), h = new Gt(i, !0), f = t ? Ri(Ft, t) : Ft, w = function(m) {
1545
+ ), h = new Kt(i, !0), f = t ? Pi(zt, t) : zt, g = function(m) {
1546
1546
  return m == fe ? function() {
1547
- return new K(m, r, f, h).set("ua", r).set(_, this.getBrowser()).set(j, this.getCPU()).set(B, this.getDevice()).set(z, this.getEngine()).set(D, this.getOS()).get();
1547
+ return new J(m, r, f, h).set("ua", r).set(P, this.getBrowser()).set(G, this.getCPU()).set(B, this.getDevice()).set(U, this.getEngine()).set(D, this.getOS()).get();
1548
1548
  } : function() {
1549
- return new K(m, r, f[m], h).parseUA().get();
1549
+ return new J(m, r, f[m], h).parseUA().get();
1550
1550
  };
1551
1551
  };
1552
- return q.call(this, [
1553
- ["getBrowser", w(_)],
1554
- ["getCPU", w(j)],
1555
- ["getDevice", w(B)],
1556
- ["getEngine", w(z)],
1557
- ["getOS", w(D)],
1558
- ["getResult", w(fe)],
1552
+ return j.call(this, [
1553
+ ["getBrowser", g(P)],
1554
+ ["getCPU", g(G)],
1555
+ ["getDevice", g(B)],
1556
+ ["getEngine", g(U)],
1557
+ ["getOS", g(D)],
1558
+ ["getResult", g(fe)],
1559
1559
  ["getUA", function() {
1560
1560
  return r;
1561
1561
  }],
1562
1562
  ["setUA", function(m) {
1563
- return Ce(m) && (r = Le(m, yi)), this;
1563
+ return Ce(m) && (r = De(m, Ci)), this;
1564
1564
  }]
1565
1565
  ]).setUA(r), this;
1566
1566
  }
1567
- N.VERSION = mi;
1568
- N.BROWSER = ze([c, u, Se, a]);
1569
- N.CPU = ze([O]);
1570
- N.DEVICE = ze([l, d, a, Ae, g, C, y, $, ke]);
1571
- N.ENGINE = N.OS = ze([c, u]);
1572
- const Ai = () => {
1573
- const t = new N().getResult();
1567
+ X.VERSION = Si;
1568
+ X.BROWSER = $e([c, u, Se, a]);
1569
+ X.CPU = $e([M]);
1570
+ X.DEVICE = $e([l, d, a, Pe, w, E, v, $, ke]);
1571
+ X.ENGINE = X.OS = $e([c, u]);
1572
+ const Jt = () => {
1573
+ const t = new X().getResult();
1574
1574
  return {
1575
1575
  os: t.os.name || "unknown",
1576
1576
  osVersion: t.os.version || "unknown",
@@ -1580,7 +1580,7 @@ const Ai = () => {
1580
1580
  // Default to desktop if empty (common for desktop browsers)
1581
1581
  };
1582
1582
  };
1583
- function Fi(e, t) {
1583
+ function Di(e, t) {
1584
1584
  if (e.match(/^[a-z]+:\/\//i))
1585
1585
  return e;
1586
1586
  if (e.match(/^\/\//))
@@ -1590,7 +1590,7 @@ function Fi(e, t) {
1590
1590
  const i = document.implementation.createHTMLDocument(), n = i.createElement("base"), o = i.createElement("a");
1591
1591
  return i.head.appendChild(n), i.body.appendChild(o), t && (n.href = t), o.href = e, o.href;
1592
1592
  }
1593
- const _i = /* @__PURE__ */ (() => {
1593
+ const zi = /* @__PURE__ */ (() => {
1594
1594
  let e = 0;
1595
1595
  const t = () => (
1596
1596
  // eslint-disable-next-line no-bitwise
@@ -1598,33 +1598,33 @@ const _i = /* @__PURE__ */ (() => {
1598
1598
  );
1599
1599
  return () => (e += 1, `u${t()}${e}`);
1600
1600
  })();
1601
- function Q(e) {
1601
+ function K(e) {
1602
1602
  const t = [];
1603
1603
  for (let i = 0, n = e.length; i < n; i++)
1604
1604
  t.push(e[i]);
1605
1605
  return t;
1606
1606
  }
1607
1607
  let de = null;
1608
- function Xt(e = {}) {
1609
- return de || (e.includeStyleProperties ? (de = e.includeStyleProperties, de) : (de = Q(window.getComputedStyle(document.documentElement)), de));
1608
+ function Zt(e = {}) {
1609
+ return de || (e.includeStyleProperties ? (de = e.includeStyleProperties, de) : (de = K(window.getComputedStyle(document.documentElement)), de));
1610
1610
  }
1611
- function Pe(e, t) {
1611
+ function ze(e, t) {
1612
1612
  const n = (e.ownerDocument.defaultView || window).getComputedStyle(e).getPropertyValue(t);
1613
1613
  return n ? parseFloat(n.replace("px", "")) : 0;
1614
1614
  }
1615
- function Li(e) {
1616
- const t = Pe(e, "border-left-width"), i = Pe(e, "border-right-width");
1615
+ function Hi(e) {
1616
+ const t = ze(e, "border-left-width"), i = ze(e, "border-right-width");
1617
1617
  return e.clientWidth + t + i;
1618
1618
  }
1619
- function Pi(e) {
1620
- const t = Pe(e, "border-top-width"), i = Pe(e, "border-bottom-width");
1619
+ function Ui(e) {
1620
+ const t = ze(e, "border-top-width"), i = ze(e, "border-bottom-width");
1621
1621
  return e.clientHeight + t + i;
1622
1622
  }
1623
- function Yt(e, t = {}) {
1624
- const i = t.width || Li(e), n = t.height || Pi(e);
1623
+ function ei(e, t = {}) {
1624
+ const i = t.width || Hi(e), n = t.height || Ui(e);
1625
1625
  return { width: i, height: n };
1626
1626
  }
1627
- function Di() {
1627
+ function $i() {
1628
1628
  let e, t;
1629
1629
  try {
1630
1630
  t = process;
@@ -1633,11 +1633,11 @@ function Di() {
1633
1633
  const i = t && t.env ? t.env.devicePixelRatio : null;
1634
1634
  return i && (e = parseInt(i, 10), Number.isNaN(e) && (e = 1)), e || window.devicePixelRatio || 1;
1635
1635
  }
1636
- const P = 16384;
1637
- function Hi(e) {
1638
- (e.width > P || e.height > P) && (e.width > P && e.height > P ? e.width > e.height ? (e.height *= P / e.width, e.width = P) : (e.width *= P / e.height, e.height = P) : e.width > P ? (e.height *= P / e.width, e.width = P) : (e.width *= P / e.height, e.height = P));
1636
+ const L = 16384;
1637
+ function Bi(e) {
1638
+ (e.width > L || e.height > L) && (e.width > L && e.height > L ? e.width > e.height ? (e.height *= L / e.width, e.width = L) : (e.width *= L / e.height, e.height = L) : e.width > L ? (e.height *= L / e.width, e.width = L) : (e.width *= L / e.height, e.height = L));
1639
1639
  }
1640
- function De(e) {
1640
+ function He(e) {
1641
1641
  return new Promise((t, i) => {
1642
1642
  const n = new Image();
1643
1643
  n.onload = () => {
@@ -1647,80 +1647,80 @@ function De(e) {
1647
1647
  }, n.onerror = i, n.crossOrigin = "anonymous", n.decoding = "async", n.src = e;
1648
1648
  });
1649
1649
  }
1650
- async function zi(e) {
1650
+ async function Vi(e) {
1651
1651
  return Promise.resolve().then(() => new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then((t) => `data:image/svg+xml;charset=utf-8,${t}`);
1652
1652
  }
1653
- async function Ui(e, t, i) {
1653
+ async function Wi(e, t, i) {
1654
1654
  const n = "http://www.w3.org/2000/svg", o = document.createElementNS(n, "svg"), s = document.createElementNS(n, "foreignObject");
1655
- return o.setAttribute("width", `${t}`), o.setAttribute("height", `${i}`), o.setAttribute("viewBox", `0 0 ${t} ${i}`), s.setAttribute("width", "100%"), s.setAttribute("height", "100%"), s.setAttribute("x", "0"), s.setAttribute("y", "0"), s.setAttribute("externalResourcesRequired", "true"), o.appendChild(s), s.appendChild(e), zi(o);
1655
+ return o.setAttribute("width", `${t}`), o.setAttribute("height", `${i}`), o.setAttribute("viewBox", `0 0 ${t} ${i}`), s.setAttribute("width", "100%"), s.setAttribute("height", "100%"), s.setAttribute("x", "0"), s.setAttribute("y", "0"), s.setAttribute("externalResourcesRequired", "true"), o.appendChild(s), s.appendChild(e), Vi(o);
1656
1656
  }
1657
- const L = (e, t) => {
1657
+ const _ = (e, t) => {
1658
1658
  if (e instanceof t)
1659
1659
  return !0;
1660
1660
  const i = Object.getPrototypeOf(e);
1661
- return i === null ? !1 : i.constructor.name === t.name || L(i, t);
1661
+ return i === null ? !1 : i.constructor.name === t.name || _(i, t);
1662
1662
  };
1663
- function $i(e) {
1663
+ function qi(e) {
1664
1664
  const t = e.getPropertyValue("content");
1665
1665
  return `${e.cssText} content: '${t.replace(/'|"/g, "")}';`;
1666
1666
  }
1667
- function Bi(e, t) {
1668
- return Xt(t).map((i) => {
1667
+ function Ni(e, t) {
1668
+ return Zt(t).map((i) => {
1669
1669
  const n = e.getPropertyValue(i), o = e.getPropertyPriority(i);
1670
1670
  return `${i}: ${n}${o ? " !important" : ""};`;
1671
1671
  }).join(" ");
1672
1672
  }
1673
- function Vi(e, t, i, n) {
1674
- const o = `.${e}:${t}`, s = i.cssText ? $i(i) : Bi(i, n);
1673
+ function ji(e, t, i, n) {
1674
+ const o = `.${e}:${t}`, s = i.cssText ? qi(i) : Ni(i, n);
1675
1675
  return document.createTextNode(`${o}{${s}}`);
1676
1676
  }
1677
- function _t(e, t, i, n) {
1677
+ function Ht(e, t, i, n) {
1678
1678
  const o = window.getComputedStyle(e, i), s = o.getPropertyValue("content");
1679
1679
  if (s === "" || s === "none")
1680
1680
  return;
1681
- const r = _i();
1681
+ const r = zi();
1682
1682
  try {
1683
1683
  t.className = `${t.className} ${r}`;
1684
1684
  } catch {
1685
1685
  return;
1686
1686
  }
1687
1687
  const h = document.createElement("style");
1688
- h.appendChild(Vi(r, i, o, n)), t.appendChild(h);
1688
+ h.appendChild(ji(r, i, o, n)), t.appendChild(h);
1689
1689
  }
1690
- function Wi(e, t, i) {
1691
- _t(e, t, ":before", i), _t(e, t, ":after", i);
1690
+ function Gi(e, t, i) {
1691
+ Ht(e, t, ":before", i), Ht(e, t, ":after", i);
1692
1692
  }
1693
- const Lt = "application/font-woff", Pt = "image/jpeg", qi = {
1694
- woff: Lt,
1695
- woff2: Lt,
1693
+ const Ut = "application/font-woff", $t = "image/jpeg", Xi = {
1694
+ woff: Ut,
1695
+ woff2: Ut,
1696
1696
  ttf: "application/font-truetype",
1697
1697
  eot: "application/vnd.ms-fontobject",
1698
1698
  png: "image/png",
1699
- jpg: Pt,
1700
- jpeg: Pt,
1699
+ jpg: $t,
1700
+ jpeg: $t,
1701
1701
  gif: "image/gif",
1702
1702
  tiff: "image/tiff",
1703
1703
  svg: "image/svg+xml",
1704
1704
  webp: "image/webp"
1705
1705
  };
1706
- function ji(e) {
1706
+ function Yi(e) {
1707
1707
  const t = /\.([^./]*?)$/g.exec(e);
1708
1708
  return t ? t[1] : "";
1709
1709
  }
1710
- function ct(e) {
1711
- const t = ji(e).toLowerCase();
1712
- return qi[t] || "";
1710
+ function ht(e) {
1711
+ const t = Yi(e).toLowerCase();
1712
+ return Xi[t] || "";
1713
1713
  }
1714
- function Ni(e) {
1714
+ function Qi(e) {
1715
1715
  return e.split(/,/)[1];
1716
1716
  }
1717
- function ot(e) {
1717
+ function lt(e) {
1718
1718
  return e.search(/^(data:)/) !== -1;
1719
1719
  }
1720
- function Gi(e, t) {
1720
+ function Ki(e, t) {
1721
1721
  return `data:${t};base64,${e}`;
1722
1722
  }
1723
- async function Qt(e, t, i) {
1723
+ async function ti(e, t, i) {
1724
1724
  const n = await fetch(e, t);
1725
1725
  if (n.status === 404)
1726
1726
  throw new Error(`Resource "${n.url}" not found`);
@@ -1736,86 +1736,86 @@ async function Qt(e, t, i) {
1736
1736
  }, h.readAsDataURL(o);
1737
1737
  });
1738
1738
  }
1739
- const Ze = {};
1740
- function Xi(e, t, i) {
1739
+ const tt = {};
1740
+ function Ji(e, t, i) {
1741
1741
  let n = e.replace(/\?.*/, "");
1742
1742
  return i && (n = e), /ttf|otf|eot|woff2?/i.test(n) && (n = n.replace(/.*\//, "")), t ? `[${t}]${n}` : n;
1743
1743
  }
1744
- async function dt(e, t, i) {
1745
- const n = Xi(e, t, i.includeQueryParams);
1746
- if (Ze[n] != null)
1747
- return Ze[n];
1744
+ async function ft(e, t, i) {
1745
+ const n = Ji(e, t, i.includeQueryParams);
1746
+ if (tt[n] != null)
1747
+ return tt[n];
1748
1748
  i.cacheBust && (e += (/\?/.test(e) ? "&" : "?") + (/* @__PURE__ */ new Date()).getTime());
1749
1749
  let o;
1750
1750
  try {
1751
- const s = await Qt(e, i.fetchRequestInit, ({ res: r, result: h }) => (t || (t = r.headers.get("Content-Type") || ""), Ni(h)));
1752
- o = Gi(s, t);
1751
+ const s = await ti(e, i.fetchRequestInit, ({ res: r, result: h }) => (t || (t = r.headers.get("Content-Type") || ""), Qi(h)));
1752
+ o = Ki(s, t);
1753
1753
  } catch (s) {
1754
1754
  o = i.imagePlaceholder || "";
1755
1755
  let r = `Failed to fetch resource: ${e}`;
1756
1756
  s && (r = typeof s == "string" ? s : s.message), r && console.warn(r);
1757
1757
  }
1758
- return Ze[n] = o, o;
1758
+ return tt[n] = o, o;
1759
1759
  }
1760
- async function Yi(e) {
1760
+ async function Zi(e) {
1761
1761
  const t = e.toDataURL();
1762
- return t === "data:," ? e.cloneNode(!1) : De(t);
1762
+ return t === "data:," ? e.cloneNode(!1) : He(t);
1763
1763
  }
1764
- async function Qi(e, t) {
1764
+ async function en(e, t) {
1765
1765
  if (e.currentSrc) {
1766
1766
  const s = document.createElement("canvas"), r = s.getContext("2d");
1767
1767
  s.width = e.clientWidth, s.height = e.clientHeight, r?.drawImage(e, 0, 0, s.width, s.height);
1768
1768
  const h = s.toDataURL();
1769
- return De(h);
1769
+ return He(h);
1770
1770
  }
1771
- const i = e.poster, n = ct(i), o = await dt(i, n, t);
1772
- return De(o);
1771
+ const i = e.poster, n = ht(i), o = await ft(i, n, t);
1772
+ return He(o);
1773
1773
  }
1774
- async function Ki(e, t) {
1774
+ async function tn(e, t) {
1775
1775
  var i;
1776
1776
  try {
1777
1777
  if (!((i = e?.contentDocument) === null || i === void 0) && i.body)
1778
- return await Ue(e.contentDocument.body, t, !0);
1778
+ return await Be(e.contentDocument.body, t, !0);
1779
1779
  } catch {
1780
1780
  }
1781
1781
  return e.cloneNode(!1);
1782
1782
  }
1783
- async function Ji(e, t) {
1784
- return L(e, HTMLCanvasElement) ? Yi(e) : L(e, HTMLVideoElement) ? Qi(e, t) : L(e, HTMLIFrameElement) ? Ki(e, t) : e.cloneNode(Kt(e));
1783
+ async function nn(e, t) {
1784
+ return _(e, HTMLCanvasElement) ? Zi(e) : _(e, HTMLVideoElement) ? en(e, t) : _(e, HTMLIFrameElement) ? tn(e, t) : e.cloneNode(ii(e));
1785
1785
  }
1786
- const Zi = (e) => e.tagName != null && e.tagName.toUpperCase() === "SLOT", Kt = (e) => e.tagName != null && e.tagName.toUpperCase() === "SVG";
1787
- async function en(e, t, i) {
1786
+ const rn = (e) => e.tagName != null && e.tagName.toUpperCase() === "SLOT", ii = (e) => e.tagName != null && e.tagName.toUpperCase() === "SVG";
1787
+ async function on(e, t, i) {
1788
1788
  var n, o;
1789
- if (Kt(t))
1789
+ if (ii(t))
1790
1790
  return t;
1791
1791
  let s = [];
1792
- return Zi(e) && e.assignedNodes ? s = Q(e.assignedNodes()) : L(e, HTMLIFrameElement) && (!((n = e.contentDocument) === null || n === void 0) && n.body) ? s = Q(e.contentDocument.body.childNodes) : s = Q(((o = e.shadowRoot) !== null && o !== void 0 ? o : e).childNodes), s.length === 0 || L(e, HTMLVideoElement) || await s.reduce((r, h) => r.then(() => Ue(h, i)).then((f) => {
1792
+ return rn(e) && e.assignedNodes ? s = K(e.assignedNodes()) : _(e, HTMLIFrameElement) && (!((n = e.contentDocument) === null || n === void 0) && n.body) ? s = K(e.contentDocument.body.childNodes) : s = K(((o = e.shadowRoot) !== null && o !== void 0 ? o : e).childNodes), s.length === 0 || _(e, HTMLVideoElement) || await s.reduce((r, h) => r.then(() => Be(h, i)).then((f) => {
1793
1793
  f && t.appendChild(f);
1794
1794
  }), Promise.resolve()), t;
1795
1795
  }
1796
- function tn(e, t, i) {
1796
+ function sn(e, t, i) {
1797
1797
  const n = t.style;
1798
1798
  if (!n)
1799
1799
  return;
1800
1800
  const o = window.getComputedStyle(e);
1801
- o.cssText ? (n.cssText = o.cssText, n.transformOrigin = o.transformOrigin) : Xt(i).forEach((s) => {
1801
+ o.cssText ? (n.cssText = o.cssText, n.transformOrigin = o.transformOrigin) : Zt(i).forEach((s) => {
1802
1802
  let r = o.getPropertyValue(s);
1803
- s === "font-size" && r.endsWith("px") && (r = `${Math.floor(parseFloat(r.substring(0, r.length - 2))) - 0.1}px`), L(e, HTMLIFrameElement) && s === "display" && r === "inline" && (r = "block"), s === "d" && t.getAttribute("d") && (r = `path(${t.getAttribute("d")})`), n.setProperty(s, r, o.getPropertyPriority(s));
1803
+ s === "font-size" && r.endsWith("px") && (r = `${Math.floor(parseFloat(r.substring(0, r.length - 2))) - 0.1}px`), _(e, HTMLIFrameElement) && s === "display" && r === "inline" && (r = "block"), s === "d" && t.getAttribute("d") && (r = `path(${t.getAttribute("d")})`), n.setProperty(s, r, o.getPropertyPriority(s));
1804
1804
  });
1805
1805
  }
1806
- function nn(e, t) {
1807
- L(e, HTMLTextAreaElement) && (t.innerHTML = e.value), L(e, HTMLInputElement) && t.setAttribute("value", e.value);
1806
+ function an(e, t) {
1807
+ _(e, HTMLTextAreaElement) && (t.innerHTML = e.value), _(e, HTMLInputElement) && t.setAttribute("value", e.value);
1808
1808
  }
1809
- function rn(e, t) {
1810
- if (L(e, HTMLSelectElement)) {
1809
+ function ln(e, t) {
1810
+ if (_(e, HTMLSelectElement)) {
1811
1811
  const n = Array.from(t.children).find((o) => e.value === o.getAttribute("value"));
1812
1812
  n && n.setAttribute("selected", "");
1813
1813
  }
1814
1814
  }
1815
- function on(e, t, i) {
1816
- return L(t, Element) && (tn(e, t, i), Wi(e, t, i), nn(e, t), rn(e, t)), t;
1815
+ function cn(e, t, i) {
1816
+ return _(t, Element) && (sn(e, t, i), Gi(e, t, i), an(e, t), ln(e, t)), t;
1817
1817
  }
1818
- async function sn(e, t) {
1818
+ async function dn(e, t) {
1819
1819
  const i = e.querySelectorAll ? e.querySelectorAll("use") : [];
1820
1820
  if (i.length === 0)
1821
1821
  return e;
@@ -1823,8 +1823,8 @@ async function sn(e, t) {
1823
1823
  for (let s = 0; s < i.length; s++) {
1824
1824
  const h = i[s].getAttribute("xlink:href");
1825
1825
  if (h) {
1826
- const f = e.querySelector(h), w = document.querySelector(h);
1827
- !f && w && !n[h] && (n[h] = await Ue(w, t, !0));
1826
+ const f = e.querySelector(h), g = document.querySelector(h);
1827
+ !f && g && !n[h] && (n[h] = await Be(g, t, !0));
1828
1828
  }
1829
1829
  }
1830
1830
  const o = Object.values(n);
@@ -1839,31 +1839,31 @@ async function sn(e, t) {
1839
1839
  }
1840
1840
  return e;
1841
1841
  }
1842
- async function Ue(e, t, i) {
1843
- return !i && t.filter && !t.filter(e) ? null : Promise.resolve(e).then((n) => Ji(n, t)).then((n) => en(e, n, t)).then((n) => on(e, n, t)).then((n) => sn(n, t));
1842
+ async function Be(e, t, i) {
1843
+ return !i && t.filter && !t.filter(e) ? null : Promise.resolve(e).then((n) => nn(n, t)).then((n) => on(e, n, t)).then((n) => cn(e, n, t)).then((n) => dn(n, t));
1844
1844
  }
1845
- const Jt = /url\((['"]?)([^'"]+?)\1\)/g, an = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g, ln = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
1846
- function cn(e) {
1845
+ const ni = /url\((['"]?)([^'"]+?)\1\)/g, un = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g, hn = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
1846
+ function fn(e) {
1847
1847
  const t = e.replace(/([.*+?^${}()|\[\]\/\\])/g, "\\$1");
1848
1848
  return new RegExp(`(url\\(['"]?)(${t})(['"]?\\))`, "g");
1849
1849
  }
1850
- function dn(e) {
1850
+ function pn(e) {
1851
1851
  const t = [];
1852
- return e.replace(Jt, (i, n, o) => (t.push(o), i)), t.filter((i) => !ot(i));
1852
+ return e.replace(ni, (i, n, o) => (t.push(o), i)), t.filter((i) => !lt(i));
1853
1853
  }
1854
- async function un(e, t, i, n, o) {
1854
+ async function bn(e, t, i, n, o) {
1855
1855
  try {
1856
- const s = i ? Fi(t, i) : t, r = ct(t);
1856
+ const s = i ? Di(t, i) : t, r = ht(t);
1857
1857
  let h;
1858
- return o || (h = await dt(s, r, n)), e.replace(cn(t), `$1${h}$3`);
1858
+ return o || (h = await ft(s, r, n)), e.replace(fn(t), `$1${h}$3`);
1859
1859
  } catch {
1860
1860
  }
1861
1861
  return e;
1862
1862
  }
1863
- function hn(e, { preferredFontFormat: t }) {
1864
- return t ? e.replace(ln, (i) => {
1863
+ function gn(e, { preferredFontFormat: t }) {
1864
+ return t ? e.replace(hn, (i) => {
1865
1865
  for (; ; ) {
1866
- const [n, , o] = an.exec(i) || [];
1866
+ const [n, , o] = un.exec(i) || [];
1867
1867
  if (!o)
1868
1868
  return "";
1869
1869
  if (o === t)
@@ -1871,52 +1871,55 @@ function hn(e, { preferredFontFormat: t }) {
1871
1871
  }
1872
1872
  }) : e;
1873
1873
  }
1874
- function Zt(e) {
1875
- return e.search(Jt) !== -1;
1874
+ function ri(e) {
1875
+ return e.search(ni) !== -1;
1876
1876
  }
1877
- async function ei(e, t, i) {
1878
- if (!Zt(e))
1877
+ async function oi(e, t, i) {
1878
+ if (!ri(e))
1879
1879
  return e;
1880
- const n = hn(e, i);
1881
- return dn(n).reduce((s, r) => s.then((h) => un(h, r, t, i)), Promise.resolve(n));
1880
+ const n = gn(e, i);
1881
+ return pn(n).reduce((s, r) => s.then((h) => bn(h, r, t, i)), Promise.resolve(n));
1882
1882
  }
1883
1883
  async function ue(e, t, i) {
1884
1884
  var n;
1885
1885
  const o = (n = t.style) === null || n === void 0 ? void 0 : n.getPropertyValue(e);
1886
1886
  if (o) {
1887
- const s = await ei(o, null, i);
1887
+ const s = await oi(o, null, i);
1888
1888
  return t.style.setProperty(e, s, t.style.getPropertyPriority(e)), !0;
1889
1889
  }
1890
1890
  return !1;
1891
1891
  }
1892
- async function fn(e, t) {
1892
+ async function wn(e, t) {
1893
1893
  await ue("background", e, t) || await ue("background-image", e, t), await ue("mask", e, t) || await ue("-webkit-mask", e, t) || await ue("mask-image", e, t) || await ue("-webkit-mask-image", e, t);
1894
1894
  }
1895
- async function pn(e, t) {
1896
- const i = L(e, HTMLImageElement);
1897
- if (!(i && !ot(e.src)) && !(L(e, SVGImageElement) && !ot(e.href.baseVal)))
1895
+ async function mn(e, t) {
1896
+ const i = _(e, HTMLImageElement);
1897
+ if (!(i && !lt(e.src)) && !(_(e, SVGImageElement) && !lt(e.href.baseVal)))
1898
1898
  return;
1899
- const n = i ? e.src : e.href.baseVal, o = await dt(n, ct(n), t);
1899
+ const n = i ? e.src : e.href.baseVal, o = await ft(n, ht(n), t);
1900
1900
  await new Promise((s, r) => {
1901
- e.onload = s, e.onerror = t.onImageErrorHandler ? (...f) => {
1901
+ const f = [new Promise((m) => {
1902
+ e.onload = m;
1903
+ })];
1904
+ e.onerror = t.onImageErrorHandler ? (...m) => {
1902
1905
  try {
1903
- s(t.onImageErrorHandler(...f));
1904
- } catch (w) {
1905
- r(w);
1906
+ s(t.onImageErrorHandler(...m));
1907
+ } catch (k) {
1908
+ r(k);
1906
1909
  }
1907
1910
  } : r;
1908
- const h = e;
1909
- h.decode && (h.decode = s), h.loading === "lazy" && (h.loading = "eager"), i ? (e.srcset = "", e.src = o) : e.href.baseVal = o;
1911
+ const g = e;
1912
+ g.loading === "lazy" && (g.loading = "eager"), i ? (e.srcset = "", e.src = o) : e.href.baseVal = o, g.decode && f.push(g.decode().catch()), Promise.all(f).then(s);
1910
1913
  });
1911
1914
  }
1912
- async function bn(e, t) {
1913
- const n = Q(e.childNodes).map((o) => ti(o, t));
1915
+ async function yn(e, t) {
1916
+ const n = K(e.childNodes).map((o) => si(o, t));
1914
1917
  await Promise.all(n).then(() => e);
1915
1918
  }
1916
- async function ti(e, t) {
1917
- L(e, Element) && (await fn(e, t), await pn(e, t), await bn(e, t));
1919
+ async function si(e, t) {
1920
+ _(e, Element) && (await wn(e, t), await mn(e, t), await yn(e, t));
1918
1921
  }
1919
- function gn(e, t) {
1922
+ function xn(e, t) {
1920
1923
  const { style: i } = e;
1921
1924
  t.backgroundColor && (i.backgroundColor = t.backgroundColor), t.width && (i.width = `${t.width}px`), t.height && (i.height = `${t.height}px`);
1922
1925
  const n = t.style;
@@ -1924,23 +1927,23 @@ function gn(e, t) {
1924
1927
  i[o] = n[o];
1925
1928
  }), e;
1926
1929
  }
1927
- const Dt = {};
1928
- async function Ht(e) {
1929
- let t = Dt[e];
1930
+ const Bt = {};
1931
+ async function Vt(e) {
1932
+ let t = Bt[e];
1930
1933
  if (t != null)
1931
1934
  return t;
1932
1935
  const n = await (await fetch(e)).text();
1933
- return t = { url: e, cssText: n }, Dt[e] = t, t;
1936
+ return t = { url: e, cssText: n }, Bt[e] = t, t;
1934
1937
  }
1935
- async function zt(e, t) {
1938
+ async function Wt(e, t) {
1936
1939
  let i = e.cssText;
1937
1940
  const n = /url\(["']?([^"')]+)["']?\)/g, s = (i.match(/url\([^)]+\)/g) || []).map(async (r) => {
1938
1941
  let h = r.replace(n, "$1");
1939
- return h.startsWith("https://") || (h = new URL(h, e.url).href), Qt(h, t.fetchRequestInit, ({ result: f }) => (i = i.replace(r, `url(${f})`), [r, f]));
1942
+ return h.startsWith("https://") || (h = new URL(h, e.url).href), ti(h, t.fetchRequestInit, ({ result: f }) => (i = i.replace(r, `url(${f})`), [r, f]));
1940
1943
  });
1941
1944
  return Promise.all(s).then(() => i);
1942
1945
  }
1943
- function Ut(e) {
1946
+ function qt(e) {
1944
1947
  if (e == null)
1945
1948
  return [];
1946
1949
  const t = [], i = /(\/\*[\s\S]*?\*\/)/gi;
@@ -1966,15 +1969,15 @@ function Ut(e) {
1966
1969
  }
1967
1970
  return t;
1968
1971
  }
1969
- async function wn(e, t) {
1972
+ async function vn(e, t) {
1970
1973
  const i = [], n = [];
1971
1974
  return e.forEach((o) => {
1972
1975
  if ("cssRules" in o)
1973
1976
  try {
1974
- Q(o.cssRules || []).forEach((s, r) => {
1977
+ K(o.cssRules || []).forEach((s, r) => {
1975
1978
  if (s.type === CSSRule.IMPORT_RULE) {
1976
1979
  let h = r + 1;
1977
- const f = s.href, w = Ht(f).then((m) => zt(m, t)).then((m) => Ut(m).forEach((k) => {
1980
+ const f = s.href, g = Vt(f).then((m) => Wt(m, t)).then((m) => qt(m).forEach((k) => {
1978
1981
  try {
1979
1982
  o.insertRule(k, k.startsWith("@import") ? h += 1 : o.cssRules.length);
1980
1983
  } catch (T) {
@@ -1986,12 +1989,12 @@ async function wn(e, t) {
1986
1989
  })).catch((m) => {
1987
1990
  console.error("Error loading remote css", m.toString());
1988
1991
  });
1989
- n.push(w);
1992
+ n.push(g);
1990
1993
  }
1991
1994
  });
1992
1995
  } catch (s) {
1993
1996
  const r = e.find((h) => h.href == null) || document.styleSheets[0];
1994
- o.href != null && n.push(Ht(o.href).then((h) => zt(h, t)).then((h) => Ut(h).forEach((f) => {
1997
+ o.href != null && n.push(Vt(o.href).then((h) => Wt(h, t)).then((h) => qt(h).forEach((f) => {
1995
1998
  r.insertRule(f, r.cssRules.length);
1996
1999
  })).catch((h) => {
1997
2000
  console.error("Error loading remote stylesheet", h);
@@ -2000,7 +2003,7 @@ async function wn(e, t) {
2000
2003
  }), Promise.all(n).then(() => (e.forEach((o) => {
2001
2004
  if ("cssRules" in o)
2002
2005
  try {
2003
- Q(o.cssRules || []).forEach((s) => {
2006
+ K(o.cssRules || []).forEach((s) => {
2004
2007
  i.push(s);
2005
2008
  });
2006
2009
  } catch (s) {
@@ -2008,88 +2011,98 @@ async function wn(e, t) {
2008
2011
  }
2009
2012
  }), i));
2010
2013
  }
2011
- function mn(e) {
2012
- return e.filter((t) => t.type === CSSRule.FONT_FACE_RULE).filter((t) => Zt(t.style.getPropertyValue("src")));
2014
+ function kn(e) {
2015
+ return e.filter((t) => t.type === CSSRule.FONT_FACE_RULE).filter((t) => ri(t.style.getPropertyValue("src")));
2013
2016
  }
2014
- async function yn(e, t) {
2017
+ async function Sn(e, t) {
2015
2018
  if (e.ownerDocument == null)
2016
2019
  throw new Error("Provided element is not within a Document");
2017
- const i = Q(e.ownerDocument.styleSheets), n = await wn(i, t);
2018
- return mn(n);
2020
+ const i = K(e.ownerDocument.styleSheets), n = await vn(i, t);
2021
+ return kn(n);
2019
2022
  }
2020
- function ii(e) {
2023
+ function ai(e) {
2021
2024
  return e.trim().replace(/["']/g, "");
2022
2025
  }
2023
- function xn(e) {
2026
+ function Cn(e) {
2024
2027
  const t = /* @__PURE__ */ new Set();
2025
2028
  function i(n) {
2026
2029
  (n.style.fontFamily || getComputedStyle(n).fontFamily).split(",").forEach((s) => {
2027
- t.add(ii(s));
2030
+ t.add(ai(s));
2028
2031
  }), Array.from(n.children).forEach((s) => {
2029
2032
  s instanceof HTMLElement && i(s);
2030
2033
  });
2031
2034
  }
2032
2035
  return i(e), t;
2033
2036
  }
2034
- async function vn(e, t) {
2035
- const i = await yn(e, t), n = xn(e);
2036
- return (await Promise.all(i.filter((s) => n.has(ii(s.style.fontFamily))).map((s) => {
2037
+ async function En(e, t) {
2038
+ const i = await Sn(e, t), n = Cn(e);
2039
+ return (await Promise.all(i.filter((s) => n.has(ai(s.style.fontFamily))).map((s) => {
2037
2040
  const r = s.parentStyleSheet ? s.parentStyleSheet.href : null;
2038
- return ei(s.cssText, r, t);
2041
+ return oi(s.cssText, r, t);
2039
2042
  }))).join(`
2040
2043
  `);
2041
2044
  }
2042
- async function kn(e, t) {
2043
- const i = t.fontEmbedCSS != null ? t.fontEmbedCSS : t.skipFonts ? null : await vn(e, t);
2045
+ async function In(e, t) {
2046
+ const i = t.fontEmbedCSS != null ? t.fontEmbedCSS : t.skipFonts ? null : await En(e, t);
2044
2047
  if (i) {
2045
2048
  const n = document.createElement("style"), o = document.createTextNode(i);
2046
2049
  n.appendChild(o), e.firstChild ? e.insertBefore(n, e.firstChild) : e.appendChild(n);
2047
2050
  }
2048
2051
  }
2049
- async function Sn(e, t = {}) {
2050
- const { width: i, height: n } = Yt(e, t), o = await Ue(e, t, !0);
2051
- return await kn(o, t), await ti(o, t), gn(o, t), await Ui(o, i, n);
2052
+ async function Tn(e, t = {}) {
2053
+ const { width: i, height: n } = ei(e, t), o = await Be(e, t, !0);
2054
+ return await In(o, t), await si(o, t), xn(o, t), await Wi(o, i, n);
2052
2055
  }
2053
- async function Cn(e, t = {}) {
2054
- const { width: i, height: n } = Yt(e, t), o = await Sn(e, t), s = await De(o), r = document.createElement("canvas"), h = r.getContext("2d"), f = t.pixelRatio || Di(), w = t.canvasWidth || i, m = t.canvasHeight || n;
2055
- return r.width = w * f, r.height = m * f, t.skipAutoScale || Hi(r), r.style.width = `${w}`, r.style.height = `${m}`, t.backgroundColor && (h.fillStyle = t.backgroundColor, h.fillRect(0, 0, r.width, r.height)), h.drawImage(s, 0, 0, r.width, r.height), r;
2056
+ async function Rn(e, t = {}) {
2057
+ const { width: i, height: n } = ei(e, t), o = await Tn(e, t), s = await He(o), r = document.createElement("canvas"), h = r.getContext("2d"), f = t.pixelRatio || $i(), g = t.canvasWidth || i, m = t.canvasHeight || n;
2058
+ return r.width = g * f, r.height = m * f, t.skipAutoScale || Bi(r), r.style.width = `${g}`, r.style.height = `${m}`, t.backgroundColor && (h.fillStyle = t.backgroundColor, h.fillRect(0, 0, r.width, r.height)), h.drawImage(s, 0, 0, r.width, r.height), r;
2056
2059
  }
2057
- async function En(e, t = {}) {
2058
- return (await Cn(e, t)).toDataURL();
2060
+ async function On(e, t = {}) {
2061
+ return (await Rn(e, t)).toDataURL();
2059
2062
  }
2060
- const In = async (e) => {
2061
- try {
2062
- const t = document.documentElement, i = e ? e.x : 0, n = e ? e.y : 0, o = e ? e.width : window.innerWidth, s = e ? e.height : window.innerHeight, r = t.getBoundingClientRect(), h = window.getComputedStyle(t), f = parseFloat(h.marginLeft) || 0, w = parseFloat(h.marginTop) || 0, m = i - r.left + f, k = n - r.top + w;
2063
- return await En(t, {
2064
- quality: 0.9,
2065
- pixelRatio: 1,
2066
- cacheBust: !0,
2067
- skipAutoScale: !0,
2068
- width: o,
2069
- height: s,
2070
- canvasWidth: o,
2071
- canvasHeight: s,
2072
- style: {
2073
- // translate the content to bring the desired area into view (0,0) of the canvas
2074
- transform: `translate(${-m}px, ${-k}px)`
2075
- }
2076
- });
2077
- } catch (t) {
2078
- return console.error("Screenshot capture failed:", t), null;
2079
- }
2063
+ const Mn = async (e) => {
2064
+ let i = 0;
2065
+ const { os: n } = Jt(), o = n === "iOS";
2066
+ for (; i < 3; )
2067
+ try {
2068
+ const s = document.documentElement, r = e ? e.x : 0, h = e ? e.y : 0, f = e ? e.width : window.innerWidth, g = e ? e.height : window.innerHeight, m = window.scrollX, k = window.scrollY, T = m + r, z = k + h;
2069
+ i > 0 && await new Promise((O) => setTimeout(O, 500 * i));
2070
+ const R = o;
2071
+ return await On(s, {
2072
+ quality: 0.9,
2073
+ pixelRatio: 1,
2074
+ // Disable cacheBust on iOS to prevent CORS/SignedURL issues
2075
+ cacheBust: R ? !1 : i === 0,
2076
+ skipAutoScale: !0,
2077
+ width: f,
2078
+ height: g,
2079
+ canvasWidth: f,
2080
+ canvasHeight: g,
2081
+ // Disable font embedding on iOS to prevent Safari crashes
2082
+ fontEmbedCSS: R || i > 0 ? "" : void 0,
2083
+ style: {
2084
+ // translate the content to bring the desired area into view (0,0) of the canvas
2085
+ transform: `translate(${-T}px, ${-z}px)`
2086
+ }
2087
+ });
2088
+ } catch (s) {
2089
+ if (console.warn(`Screenshot attempt ${i + 1} failed:`, s), i++, i === 3)
2090
+ return console.error("All screenshot attempts failed."), null;
2091
+ }
2092
+ return null;
2080
2093
  };
2081
- const Tn = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Rn = (e) => e.replace(
2094
+ const An = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Fn = (e) => e.replace(
2082
2095
  /^([A-Z])|[\s-_]+(\w)/g,
2083
2096
  (t, i, n) => n ? n.toUpperCase() : i.toLowerCase()
2084
- ), $t = (e) => {
2085
- const t = Rn(e);
2097
+ ), Nt = (e) => {
2098
+ const t = Fn(e);
2086
2099
  return t.charAt(0).toUpperCase() + t.slice(1);
2087
- }, ni = (...e) => e.filter((t, i, n) => !!t && t.trim() !== "" && n.indexOf(t) === i).join(" ").trim(), On = (e) => {
2100
+ }, li = (...e) => e.filter((t, i, n) => !!t && t.trim() !== "" && n.indexOf(t) === i).join(" ").trim(), Pn = (e) => {
2088
2101
  for (const t in e)
2089
2102
  if (t.startsWith("aria-") || t === "role" || t === "title")
2090
2103
  return !0;
2091
2104
  };
2092
- var Mn = {
2105
+ var _n = {
2093
2106
  xmlns: "http://www.w3.org/2000/svg",
2094
2107
  width: 24,
2095
2108
  height: 24,
@@ -2100,7 +2113,7 @@ var Mn = {
2100
2113
  strokeLinecap: "round",
2101
2114
  strokeLinejoin: "round"
2102
2115
  };
2103
- const An = qt(
2116
+ const Ln = Xt(
2104
2117
  ({
2105
2118
  color: e = "currentColor",
2106
2119
  size: t = 24,
@@ -2110,52 +2123,57 @@ const An = qt(
2110
2123
  children: s,
2111
2124
  iconNode: r,
2112
2125
  ...h
2113
- }, f) => et(
2126
+ }, f) => nt(
2114
2127
  "svg",
2115
2128
  {
2116
2129
  ref: f,
2117
- ...Mn,
2130
+ ..._n,
2118
2131
  width: t,
2119
2132
  height: t,
2120
2133
  stroke: e,
2121
2134
  strokeWidth: n ? Number(i) * 24 / Number(t) : i,
2122
- className: ni("lucide", o),
2123
- ...!s && !On(h) && { "aria-hidden": "true" },
2135
+ className: li("lucide", o),
2136
+ ...!s && !Pn(h) && { "aria-hidden": "true" },
2124
2137
  ...h
2125
2138
  },
2126
2139
  [
2127
- ...r.map(([w, m]) => et(w, m)),
2140
+ ...r.map(([g, m]) => nt(g, m)),
2128
2141
  ...Array.isArray(s) ? s : [s]
2129
2142
  ]
2130
2143
  )
2131
2144
  );
2132
- const ne = (e, t) => {
2133
- const i = qt(
2134
- ({ className: n, ...o }, s) => et(An, {
2145
+ const ee = (e, t) => {
2146
+ const i = Xt(
2147
+ ({ className: n, ...o }, s) => nt(Ln, {
2135
2148
  ref: s,
2136
2149
  iconNode: t,
2137
- className: ni(
2138
- `lucide-${Tn($t(e))}`,
2150
+ className: li(
2151
+ `lucide-${An(Nt(e))}`,
2139
2152
  `lucide-${e}`,
2140
2153
  n
2141
2154
  ),
2142
2155
  ...o
2143
2156
  })
2144
2157
  );
2145
- return i.displayName = $t(e), i;
2158
+ return i.displayName = Nt(e), i;
2146
2159
  };
2147
- const Fn = [
2160
+ const Dn = [
2148
2161
  ["path", { d: "M6 2v14a2 2 0 0 0 2 2h14", key: "ron5a4" }],
2149
2162
  ["path", { d: "M18 22V8a2 2 0 0 0-2-2H2", key: "7s9ehn" }]
2150
- ], _n = ne("crop", Fn);
2151
- const Ln = [
2163
+ ], zn = ee("crop", Dn);
2164
+ const Hn = [
2152
2165
  ["line", { x1: "4", x2: "20", y1: "9", y2: "9", key: "4lhtct" }],
2153
2166
  ["line", { x1: "4", x2: "20", y1: "15", y2: "15", key: "vyu0kd" }],
2154
2167
  ["line", { x1: "10", x2: "8", y1: "3", y2: "21", key: "1ggp8o" }],
2155
2168
  ["line", { x1: "16", x2: "14", y1: "3", y2: "21", key: "weycgp" }]
2156
- ], Bt = ne("hash", Ln);
2157
- const Pn = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]], Dn = ne("loader-circle", Pn);
2158
- const Hn = [
2169
+ ], jt = ee("hash", Hn);
2170
+ const Un = [
2171
+ ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
2172
+ ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }],
2173
+ ["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }]
2174
+ ], $n = ee("image", Un);
2175
+ const Bn = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]], Vn = ee("loader-circle", Bn);
2176
+ const Wn = [
2159
2177
  [
2160
2178
  "path",
2161
2179
  {
@@ -2165,58 +2183,58 @@ const Hn = [
2165
2183
  ],
2166
2184
  ["path", { d: "M12 8v6", key: "1ib9pf" }],
2167
2185
  ["path", { d: "M9 11h6", key: "1fldmi" }]
2168
- ], zn = ne("message-square-plus", Hn);
2169
- const Un = [
2186
+ ], qn = ee("message-square-plus", Wn);
2187
+ const Nn = [
2170
2188
  ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
2171
2189
  ["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
2172
2190
  ["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
2173
- ], $n = ne("monitor", Un);
2174
- const Bn = [
2191
+ ], jn = ee("monitor", Nn);
2192
+ const Gn = [
2175
2193
  ["path", { d: "M21 5H3", key: "1fi0y6" }],
2176
2194
  ["path", { d: "M15 12H3", key: "6jk70r" }],
2177
2195
  ["path", { d: "M17 19H3", key: "z6ezky" }]
2178
- ], Vn = ne("text-align-start", Bn);
2179
- const Wn = [
2196
+ ], Xn = ee("text-align-start", Gn);
2197
+ const Yn = [
2180
2198
  ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
2181
2199
  ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
2182
- ], Vt = ne("x", Wn), qn = ({ onConfirm: e, onCancel: t }) => {
2183
- const [i, n] = E(!1), [o, s] = E({ x: 0, y: 0 }), [r, h] = E({ x: 0, y: 0 }), f = (x) => {
2184
- n(!0), s({ x: x.clientX, y: x.clientY }), h({ x: x.clientX, y: x.clientY });
2185
- }, w = (x) => {
2186
- i && h({ x: x.clientX, y: x.clientY });
2200
+ ], Gt = ee("x", Yn), Qn = ({ onConfirm: e, onCancel: t }) => {
2201
+ const [i, n] = I(!1), [o, s] = I({ x: 0, y: 0 }), [r, h] = I({ x: 0, y: 0 }), f = (y) => {
2202
+ n(!0), s({ x: y.clientX, y: y.clientY }), h({ x: y.clientX, y: y.clientY });
2203
+ }, g = (y) => {
2204
+ i && h({ x: y.clientX, y: y.clientY });
2187
2205
  }, m = () => {
2188
- M();
2189
- }, k = (x) => {
2190
- if (x.touches.length === 1) {
2206
+ R();
2207
+ }, k = (y) => {
2208
+ if (y.touches.length === 1) {
2191
2209
  n(!0);
2192
- const R = x.touches[0];
2193
- s({ x: R.clientX, y: R.clientY }), h({ x: R.clientX, y: R.clientY }), document.body.style.overflow = "hidden";
2210
+ const O = y.touches[0];
2211
+ s({ x: O.clientX, y: O.clientY }), h({ x: O.clientX, y: O.clientY }), document.body.style.overflow = "hidden";
2194
2212
  }
2195
- }, T = (x) => {
2196
- if (i && x.touches.length === 1) {
2197
- const R = x.touches[0];
2198
- h({ x: R.clientX, y: R.clientY });
2213
+ }, T = (y) => {
2214
+ if (i && y.touches.length === 1) {
2215
+ const O = y.touches[0];
2216
+ h({ x: O.clientX, y: O.clientY });
2199
2217
  }
2200
- }, U = () => {
2201
- M(), document.body.style.overflow = "";
2202
- }, M = () => {
2218
+ }, z = () => {
2219
+ R(), document.body.style.overflow = "";
2220
+ }, R = () => {
2203
2221
  if (i) {
2204
2222
  n(!1);
2205
- const x = Math.min(o.x, r.x), R = Math.min(o.y, r.y), V = Math.abs(r.x - o.x), G = Math.abs(r.y - o.y);
2206
- V > 10 && G > 10 && e({
2207
- x,
2208
- y: R,
2223
+ const y = Math.min(o.x, r.x), O = Math.min(o.y, r.y), V = Math.abs(r.x - o.x), W = Math.abs(r.y - o.y);
2224
+ V > 10 && W > 10 && e({
2225
+ x: y,
2226
+ y: O,
2209
2227
  width: V,
2210
- height: G
2228
+ height: W
2211
2229
  });
2212
2230
  }
2213
2231
  };
2214
- return bi(() => {
2215
- const x = (R) => {
2216
- R.key === "Escape" && t();
2232
+ return xi(() => {
2233
+ const y = (O) => {
2234
+ O.key === "Escape" && t();
2217
2235
  };
2218
- return window.addEventListener("keydown", x), () => window.removeEventListener("keydown", x);
2219
- }, [t]), /* @__PURE__ */ v(
2236
+ return window.addEventListener("keydown", y), () => window.removeEventListener("keydown", y);
2237
+ }, [t]), /* @__PURE__ */ x(
2220
2238
  "div",
2221
2239
  {
2222
2240
  style: {
@@ -2228,11 +2246,11 @@ const Wn = [
2228
2246
  userSelect: "none"
2229
2247
  },
2230
2248
  onMouseDown: f,
2231
- onMouseMove: w,
2249
+ onMouseMove: g,
2232
2250
  onMouseUp: m,
2233
2251
  onTouchStart: k,
2234
2252
  onTouchMove: T,
2235
- onTouchEnd: U,
2253
+ onTouchEnd: z,
2236
2254
  children: [
2237
2255
  /* @__PURE__ */ b("div", { style: {
2238
2256
  position: "absolute",
@@ -2270,7 +2288,7 @@ const Wn = [
2270
2288
  ]
2271
2289
  }
2272
2290
  );
2273
- }, jn = ({
2291
+ }, Kn = ({
2274
2292
  questionId: e,
2275
2293
  questionIdChild: t,
2276
2294
  contextData: i,
@@ -2281,77 +2299,99 @@ const Wn = [
2281
2299
  onOpen: h,
2282
2300
  onClose: f
2283
2301
  }) => {
2284
- const [w, m] = E(!1), [k, T] = E(""), [U, M] = E(e), [x, R] = E(t || ""), [V, G] = E([]), [$e, Be] = E(null), [oi, ut] = E(!1), [Z, ht] = E(!1), [ft, Ee] = E(!1), [W, re] = E(null), [A, oe] = E({}), [pt, Ie] = E("incorrect_content"), [si, Ve] = E(!1), We = r !== void 0 ? r : w, ai = We && !si;
2285
- pi.useEffect(() => {
2286
- We && (oe({}), M(e), R(t || ""), G([]), T(""), Ie("incorrect_content"));
2287
- }, [We, e, t]);
2288
- const li = () => {
2289
- G([]), T(""), M(e), R(t || ""), Ie("incorrect_content"), oe({}), r === void 0 && m(!0);
2290
- }, bt = async (p) => {
2302
+ const [g, m] = I(!1), [k, T] = I(""), [z, R] = I(e), [y, O] = I(t || ""), [V, W] = I([]), [Ve, We] = I(null), [di, pt] = I(!1), [te, bt] = I(!1), [gt, Ee] = I(!1), [q, oe] = I(null), [A, se] = I({}), [wt, Ie] = I("incorrect_content"), [ui, qe] = I(!1), mt = kt.useRef(null), Ne = r !== void 0 ? r : g, hi = Ne && !ui;
2303
+ kt.useEffect(() => {
2304
+ Ne && (se({}), R(e), O(t || ""), W([]), T(""), Ie("incorrect_content"));
2305
+ }, [Ne, e, t]);
2306
+ const fi = () => {
2291
2307
  if (V.length >= 3) {
2292
2308
  alert("Bạn chỉ có thể chụp tối đa 3 ảnh.");
2293
2309
  return;
2294
2310
  }
2295
- if (Ve(!0), p === "crop") {
2311
+ mt.current?.click();
2312
+ }, pi = (p) => {
2313
+ const S = p.target.files?.[0];
2314
+ if (!S) return;
2315
+ if (!S.type.startsWith("image/")) {
2316
+ alert("Vui lòng chọn file ảnh.");
2317
+ return;
2318
+ }
2319
+ if (S.size > 5 * 1024 * 1024) {
2320
+ alert("Ảnh quá lớn. Vui lòng chọn ảnh dưới 5MB.");
2321
+ return;
2322
+ }
2323
+ const N = new FileReader();
2324
+ N.onload = (Te) => {
2325
+ const Re = Te.target?.result;
2326
+ Re && W((vt) => [...vt, Re]);
2327
+ }, N.readAsDataURL(S), p.target.value = "";
2328
+ }, bi = () => {
2329
+ W([]), T(""), R(e), O(t || ""), Ie("incorrect_content"), se({}), r === void 0 && m(!0);
2330
+ }, yt = async (p) => {
2331
+ if (V.length >= 3) {
2332
+ alert("Bạn chỉ có thể chụp tối đa 3 ảnh.");
2333
+ return;
2334
+ }
2335
+ if (qe(!0), p === "crop") {
2296
2336
  setTimeout(() => Ee(!0), 150);
2297
2337
  return;
2298
2338
  }
2299
2339
  setTimeout(async () => {
2300
- await gt();
2340
+ await xt();
2301
2341
  }, 150);
2302
- }, gt = async (p) => {
2303
- ut(!0);
2342
+ }, xt = async (p) => {
2343
+ pt(!0);
2304
2344
  try {
2305
- const I = await In(p);
2306
- I ? G((se) => [...se, I]) : alert("Không thể chụp ảnh màn hình. Vui lòng thử lại.");
2307
- } catch (I) {
2308
- console.error(I);
2345
+ const S = await Mn(p);
2346
+ S ? W((N) => [...N, S]) : alert("Không thể chụp ảnh màn hình. Vui lòng thử lại.");
2347
+ } catch (S) {
2348
+ console.error(S);
2309
2349
  } finally {
2310
- ut(!1), Ve(!1);
2350
+ pt(!1), qe(!1);
2311
2351
  }
2312
- }, ci = (p) => {
2313
- Ee(!1), gt(p);
2314
- }, di = () => {
2315
- Ee(!1), Ve(!1);
2316
- }, ui = (p) => {
2317
- G((I) => I.filter((se, wt) => wt !== p));
2318
- }, qe = () => {
2319
- f && f(), m(!1), G([]), Ee(!1), Be(null), T(""), oe({}), Ie("incorrect_content");
2320
- }, hi = async () => {
2352
+ }, gi = (p) => {
2353
+ Ee(!1), xt(p);
2354
+ }, wi = () => {
2355
+ Ee(!1), qe(!1);
2356
+ }, mi = (p) => {
2357
+ W((S) => S.filter((N, Te) => Te !== p));
2358
+ }, je = () => {
2359
+ f && f(), m(!1), W([]), Ee(!1), We(null), T(""), se({}), Ie("incorrect_content");
2360
+ }, yi = async () => {
2321
2361
  const p = {};
2322
- if (U ? isNaN(Number(U)) && (p.questionId = "ID câu hỏi phải là số") : p.questionId = "Vui lòng nhập ID câu hỏi", x && isNaN(Number(x)) && (p.questionIdChild = "ID câu hỏi con phải là số"), k.trim() || (p.description = "Vui lòng nhập mô tả lỗi"), Object.keys(p).length > 0) {
2323
- oe(p);
2362
+ if (z ? isNaN(Number(z)) && (p.questionId = "ID câu hỏi phải là số") : p.questionId = "Vui lòng nhập ID câu hỏi", y && isNaN(Number(y)) && (p.questionIdChild = "ID câu hỏi con phải là số"), k.trim() || (p.description = "Vui lòng nhập mô tả lỗi"), Object.keys(p).length > 0) {
2363
+ se(p);
2324
2364
  return;
2325
2365
  }
2326
- ht(!0);
2366
+ bt(!0);
2327
2367
  try {
2328
- const I = Ai(), se = await Promise.all(
2329
- V.map(async (fi) => (await (await fetch("https://lcms.icanwork.vn/api/upload-to-s3/upload-image-error-to-s3", {
2368
+ const S = Jt(), N = await Promise.all(
2369
+ V.map(async (Re) => (await (await fetch("https://lcms.icanwork.vn/api/upload-to-s3/upload-image-error-to-s3", {
2330
2370
  method: "POST",
2331
2371
  headers: {
2332
2372
  "Content-Type": "application/json"
2333
2373
  },
2334
2374
  body: JSON.stringify({
2335
- base64: fi
2375
+ base64: Re
2336
2376
  })
2337
2377
  })).json()).file_url)
2338
2378
  );
2339
2379
  await n({
2340
- idQuestion: U,
2341
- idChildQuestion: x,
2342
- errorType: pt,
2380
+ idQuestion: z,
2381
+ idChildQuestion: y,
2382
+ errorType: wt,
2343
2383
  errorDescription: k,
2344
- listImage: se,
2345
- deviceInfo: I,
2384
+ listImage: N,
2385
+ deviceInfo: S,
2346
2386
  contextData: i
2347
- }), qe();
2348
- } catch (I) {
2349
- console.error("Submit feedback failed", I);
2387
+ }), je();
2388
+ } catch (S) {
2389
+ console.error("Submit feedback failed", S);
2350
2390
  } finally {
2351
- ht(!1);
2391
+ bt(!1);
2352
2392
  }
2353
2393
  };
2354
- return /* @__PURE__ */ v(Wt, { children: [
2394
+ return /* @__PURE__ */ x(it, { children: [
2355
2395
  /* @__PURE__ */ b("style", { id: "feedback-widget-styles", children: `
2356
2396
  @keyframes fb-fade-in {
2357
2397
  from { opacity: 0; transform: translateY(10px); }
@@ -2380,6 +2420,7 @@ const Wn = [
2380
2420
  flex-direction: column;
2381
2421
  gap: 12px;
2382
2422
  text-align: left;
2423
+ box-sizing: border-box;
2383
2424
  }
2384
2425
  @media (max-width: 640px) {
2385
2426
  .fb-widget-modal {
@@ -2389,20 +2430,33 @@ const Wn = [
2389
2430
  max-height: 70vh !important;
2390
2431
  }
2391
2432
  .fb-widget-trigger {
2392
- bottom: 16px !important;
2393
- right: 16px !important;
2394
- width: 44px !important;
2395
- height: 44px !important;
2433
+ bottom: 20px !important;
2434
+ right: 20px !important;
2435
+ }
2436
+ /* Prevent iOS zoom on inputs */
2437
+ input, select, textarea {
2438
+ font-size: 16px !important;
2396
2439
  }
2397
2440
  }
2398
- @media (max-width: 767px) {
2441
+ @media (max-width: 820px) {
2399
2442
  .fb-btn-crop {
2400
2443
  display: none !important;
2401
2444
  }
2445
+ /* Enforce 16px font on all mobile/tablet inputs to prevent zoom */
2446
+ .fb-widget-modal input,
2447
+ .fb-widget-modal select,
2448
+ .fb-widget-modal textarea {
2449
+ font-size: 16px !important;
2450
+ }
2451
+ }
2452
+ @media (min-width: 768px) {
2453
+ .fb-btn-upload {
2454
+
2455
+ }
2402
2456
  }
2403
2457
  ` }),
2404
- ft && /* @__PURE__ */ b(qn, { onConfirm: ci, onCancel: di }),
2405
- $e && /* @__PURE__ */ b(
2458
+ gt && /* @__PURE__ */ b(Qn, { onConfirm: gi, onCancel: wi }),
2459
+ Ve && /* @__PURE__ */ b(
2406
2460
  "div",
2407
2461
  {
2408
2462
  style: {
@@ -2417,11 +2471,11 @@ const Wn = [
2417
2471
  animation: "fb-fade-in 0.2s ease-out",
2418
2472
  backdropFilter: "blur(4px)"
2419
2473
  },
2420
- onClick: () => Be(null),
2474
+ onClick: () => We(null),
2421
2475
  children: /* @__PURE__ */ b(
2422
2476
  "img",
2423
2477
  {
2424
- src: $e,
2478
+ src: Ve,
2425
2479
  alt: "Zoomed",
2426
2480
  draggable: !1,
2427
2481
  onContextMenu: (p) => p.preventDefault(),
@@ -2440,7 +2494,7 @@ const Wn = [
2440
2494
  }
2441
2495
  ),
2442
2496
  /* @__PURE__ */ b("div", { onClick: () => {
2443
- r === void 0 ? li() : h && h();
2497
+ r === void 0 ? bi() : h && h();
2444
2498
  }, style: { cursor: "pointer", display: "inline-block" }, children: s || /* @__PURE__ */ b(
2445
2499
  "button",
2446
2500
  {
@@ -2466,17 +2520,17 @@ const Wn = [
2466
2520
  title: "Báo lỗi",
2467
2521
  onMouseEnter: (p) => p.currentTarget.style.transform = "scale(1.1)",
2468
2522
  onMouseLeave: (p) => p.currentTarget.style.transform = "scale(1)",
2469
- children: /* @__PURE__ */ b(zn, { size: 24 })
2523
+ children: /* @__PURE__ */ b(qn, { size: 24 })
2470
2524
  }
2471
2525
  ) }),
2472
- oi && /* @__PURE__ */ b("div", { style: { position: "fixed", top: 20, right: 20, background: "rgba(0,0,0,0.8)", color: "white", padding: "8px 12px", borderRadius: "8px", zIndex: 1e4, fontWeight: 500, backdropFilter: "blur(4px)", fontSize: "0.8rem" }, children: "Đang chụp..." }),
2473
- ai && !ft && !$e && /* @__PURE__ */ v("div", { className: "fb-widget-modal", children: [
2474
- /* @__PURE__ */ v("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [
2526
+ di && /* @__PURE__ */ b("div", { style: { position: "fixed", top: 20, right: 20, background: "rgba(0,0,0,0.8)", color: "white", padding: "8px 12px", borderRadius: "8px", zIndex: 1e4, fontWeight: 500, backdropFilter: "blur(4px)", fontSize: "0.8rem" }, children: "Đang chụp..." }),
2527
+ hi && !gt && !Ve && /* @__PURE__ */ x("div", { className: "fb-widget-modal", children: [
2528
+ /* @__PURE__ */ x("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [
2475
2529
  /* @__PURE__ */ b("h2", { style: { margin: 0, fontSize: "1rem", fontWeight: 700, color: "#111827" }, children: "Báo lỗi" }),
2476
2530
  /* @__PURE__ */ b(
2477
2531
  "button",
2478
2532
  {
2479
- onClick: qe,
2533
+ onClick: je,
2480
2534
  style: {
2481
2535
  background: "transparent",
2482
2536
  border: "none",
@@ -2491,26 +2545,28 @@ const Wn = [
2491
2545
  },
2492
2546
  onMouseEnter: (p) => p.currentTarget.style.backgroundColor = "#f3f4f6",
2493
2547
  onMouseLeave: (p) => p.currentTarget.style.backgroundColor = "transparent",
2494
- children: /* @__PURE__ */ b(Vt, { size: 18 })
2548
+ children: /* @__PURE__ */ b(Gt, { size: 18 })
2495
2549
  }
2496
2550
  )
2497
2551
  ] }),
2498
- /* @__PURE__ */ v("div", { style: { display: "flex", flexDirection: "column", gap: "10px" }, children: [
2499
- /* @__PURE__ */ v("div", { children: [
2500
- /* @__PURE__ */ v("label", { style: { display: "block", marginBottom: "2px", fontSize: "0.8rem", fontWeight: 600, color: "#374151" }, children: [
2552
+ /* @__PURE__ */ x("div", { style: { display: "flex", flexDirection: "column", gap: "10px" }, children: [
2553
+ /* @__PURE__ */ x("div", { children: [
2554
+ /* @__PURE__ */ x("label", { style: { display: "block", marginBottom: "2px", fontSize: "0.8rem", fontWeight: 600, color: "#374151" }, children: [
2501
2555
  "ID Câu hỏi ",
2556
+ t ? "bài đọc" : "",
2557
+ " ",
2502
2558
  /* @__PURE__ */ b("span", { style: { color: "#ef4444" }, children: "*" })
2503
2559
  ] }),
2504
- /* @__PURE__ */ v("div", { style: {
2560
+ /* @__PURE__ */ x("div", { style: {
2505
2561
  position: "relative",
2506
2562
  display: "flex",
2507
2563
  alignItems: "center",
2508
2564
  transition: "all 0.2s"
2509
2565
  }, children: [
2510
- /* @__PURE__ */ b(Bt, { size: 12, style: {
2566
+ /* @__PURE__ */ b(jt, { size: 12, style: {
2511
2567
  position: "absolute",
2512
2568
  left: "10px",
2513
- color: W === "id" ? o : A.questionId ? "#ef4444" : "#9ca3af",
2569
+ color: q === "id" ? o : A.questionId ? "#ef4444" : "#9ca3af",
2514
2570
  transition: "color 0.2s",
2515
2571
  pointerEvents: "none"
2516
2572
  } }),
@@ -2518,11 +2574,11 @@ const Wn = [
2518
2574
  "input",
2519
2575
  {
2520
2576
  type: "text",
2521
- value: U,
2522
- onFocus: () => re("id"),
2523
- onBlur: () => re(null),
2577
+ value: z,
2578
+ onFocus: () => oe("id"),
2579
+ onBlur: () => oe(null),
2524
2580
  onChange: (p) => {
2525
- M(p.target.value), A.questionId && oe((I) => ({ ...I, questionId: void 0 }));
2581
+ R(p.target.value), A.questionId && se((S) => ({ ...S, questionId: void 0 }));
2526
2582
  },
2527
2583
  disabled: !!e,
2528
2584
  placeholder: "Nhập ID (ví dụ: 101)",
@@ -2530,8 +2586,8 @@ const Wn = [
2530
2586
  width: "100%",
2531
2587
  padding: "6px 10px 6px 28px",
2532
2588
  borderRadius: "6px",
2533
- border: `1px solid ${A.questionId ? "#ef4444" : W === "id" ? o : "#e5e7eb"}`,
2534
- boxShadow: W === "id" ? `0 0 0 2px ${o}20` : "none",
2589
+ border: `1px solid ${A.questionId ? "#ef4444" : q === "id" ? o : "#e5e7eb"}`,
2590
+ boxShadow: q === "id" ? `0 0 0 2px ${o}20` : "none",
2535
2591
  outline: "none",
2536
2592
  fontSize: "0.85rem",
2537
2593
  color: "#1f2937",
@@ -2543,18 +2599,18 @@ const Wn = [
2543
2599
  ] }),
2544
2600
  A.questionId && /* @__PURE__ */ b("span", { style: { display: "block", marginTop: "2px", fontSize: "0.7rem", color: "#ef4444" }, children: A.questionId })
2545
2601
  ] }),
2546
- /* @__PURE__ */ v("div", { children: [
2547
- /* @__PURE__ */ b("label", { style: { display: "block", marginBottom: "2px", fontSize: "0.8rem", fontWeight: 600, color: "#374151" }, children: "ID Câu hỏi con" }),
2548
- /* @__PURE__ */ v("div", { style: {
2602
+ t ? /* @__PURE__ */ x("div", { children: [
2603
+ /* @__PURE__ */ b("label", { style: { display: "block", marginBottom: "2px", fontSize: "0.8rem", fontWeight: 600, color: "#374151" }, children: "ID Câu hỏi" }),
2604
+ /* @__PURE__ */ x("div", { style: {
2549
2605
  position: "relative",
2550
2606
  display: "flex",
2551
2607
  alignItems: "center",
2552
2608
  transition: "all 0.2s"
2553
2609
  }, children: [
2554
- /* @__PURE__ */ b(Bt, { size: 12, style: {
2610
+ /* @__PURE__ */ b(jt, { size: 12, style: {
2555
2611
  position: "absolute",
2556
2612
  left: "10px",
2557
- color: W === "idChild" ? o : A.questionIdChild ? "#ef4444" : "#9ca3af",
2613
+ color: q === "idChild" ? o : A.questionIdChild ? "#ef4444" : "#9ca3af",
2558
2614
  transition: "color 0.2s",
2559
2615
  pointerEvents: "none"
2560
2616
  } }),
@@ -2562,11 +2618,11 @@ const Wn = [
2562
2618
  "input",
2563
2619
  {
2564
2620
  type: "text",
2565
- value: x,
2566
- onFocus: () => re("idChild"),
2567
- onBlur: () => re(null),
2621
+ value: y,
2622
+ onFocus: () => oe("idChild"),
2623
+ onBlur: () => oe(null),
2568
2624
  onChange: (p) => {
2569
- R(p.target.value);
2625
+ O(p.target.value);
2570
2626
  },
2571
2627
  placeholder: "Nhập ID (ví dụ: 101)",
2572
2628
  disabled: !!t,
@@ -2574,8 +2630,8 @@ const Wn = [
2574
2630
  width: "100%",
2575
2631
  padding: "6px 10px 6px 28px",
2576
2632
  borderRadius: "6px",
2577
- border: `1px solid ${A.questionIdChild ? "#ef4444" : W === "idChild" ? o : "#e5e7eb"}`,
2578
- boxShadow: W === "idChild" ? `0 0 0 2px ${o}20` : "none",
2633
+ border: `1px solid ${A.questionIdChild ? "#ef4444" : q === "idChild" ? o : "#e5e7eb"}`,
2634
+ boxShadow: q === "idChild" ? `0 0 0 2px ${o}20` : "none",
2579
2635
  outline: "none",
2580
2636
  fontSize: "0.85rem",
2581
2637
  color: "#1f2937",
@@ -2586,16 +2642,16 @@ const Wn = [
2586
2642
  )
2587
2643
  ] }),
2588
2644
  A.questionIdChild && /* @__PURE__ */ b("span", { style: { display: "block", marginTop: "2px", fontSize: "0.7rem", color: "#ef4444" }, children: A.questionIdChild })
2589
- ] }),
2590
- /* @__PURE__ */ v("div", { children: [
2591
- /* @__PURE__ */ v("label", { style: { display: "block", marginBottom: "2px", fontSize: "0.8rem", fontWeight: 600, color: "#374151" }, children: [
2645
+ ] }) : /* @__PURE__ */ b(it, {}),
2646
+ /* @__PURE__ */ x("div", { children: [
2647
+ /* @__PURE__ */ x("label", { style: { display: "block", marginBottom: "2px", fontSize: "0.8rem", fontWeight: 600, color: "#374151" }, children: [
2592
2648
  "Loại lỗi ",
2593
2649
  /* @__PURE__ */ b("span", { style: { color: "#ef4444" }, children: "*" })
2594
2650
  ] }),
2595
- /* @__PURE__ */ v(
2651
+ /* @__PURE__ */ x(
2596
2652
  "select",
2597
2653
  {
2598
- value: pt,
2654
+ value: wt,
2599
2655
  onChange: (p) => Ie(p.target.value),
2600
2656
  style: {
2601
2657
  width: "100%",
@@ -2623,35 +2679,35 @@ const Wn = [
2623
2679
  }
2624
2680
  )
2625
2681
  ] }),
2626
- /* @__PURE__ */ v("div", { children: [
2627
- /* @__PURE__ */ v("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", marginBottom: "2px" }, children: [
2628
- /* @__PURE__ */ v("label", { style: { fontSize: "0.8rem", fontWeight: 600, color: "#374151" }, children: [
2682
+ /* @__PURE__ */ x("div", { children: [
2683
+ /* @__PURE__ */ x("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", marginBottom: "2px" }, children: [
2684
+ /* @__PURE__ */ x("label", { style: { fontSize: "0.8rem", fontWeight: 600, color: "#374151" }, children: [
2629
2685
  "Mô tả lỗi ",
2630
2686
  /* @__PURE__ */ b("span", { style: { color: "#ef4444" }, children: "*" })
2631
2687
  ] }),
2632
- /* @__PURE__ */ v("span", { style: { fontSize: "0.7rem", color: "#9ca3af" }, children: [
2688
+ /* @__PURE__ */ x("span", { style: { fontSize: "0.7rem", color: "#9ca3af" }, children: [
2633
2689
  k.length,
2634
2690
  "/1000"
2635
2691
  ] })
2636
2692
  ] }),
2637
- /* @__PURE__ */ v("div", { style: { position: "relative" }, children: [
2693
+ /* @__PURE__ */ x("div", { style: { position: "relative" }, children: [
2638
2694
  /* @__PURE__ */ b("div", { style: {
2639
2695
  position: "absolute",
2640
2696
  left: "10px",
2641
2697
  top: "8px",
2642
2698
  pointerEvents: "none"
2643
- }, children: /* @__PURE__ */ b(Vn, { size: 12, style: {
2644
- color: W === "desc" ? o : A.description ? "#ef4444" : "#9ca3af",
2699
+ }, children: /* @__PURE__ */ b(Xn, { size: 12, style: {
2700
+ color: q === "desc" ? o : A.description ? "#ef4444" : "#9ca3af",
2645
2701
  transition: "color 0.2s"
2646
2702
  } }) }),
2647
2703
  /* @__PURE__ */ b(
2648
2704
  "textarea",
2649
2705
  {
2650
2706
  value: k,
2651
- onFocus: () => re("desc"),
2652
- onBlur: () => re(null),
2707
+ onFocus: () => oe("desc"),
2708
+ onBlur: () => oe(null),
2653
2709
  onChange: (p) => {
2654
- T(p.target.value), A.description && oe((I) => ({ ...I, description: void 0 }));
2710
+ T(p.target.value), A.description && se((S) => ({ ...S, description: void 0 }));
2655
2711
  },
2656
2712
  maxLength: 1e3,
2657
2713
  placeholder: "Mô tả chi tiết...",
@@ -2660,8 +2716,8 @@ const Wn = [
2660
2716
  minHeight: "60px",
2661
2717
  padding: "6px 10px 6px 28px",
2662
2718
  borderRadius: "6px",
2663
- border: `1px solid ${A.description ? "#ef4444" : W === "desc" ? o : "#e5e7eb"}`,
2664
- boxShadow: W === "desc" ? `0 0 0 2px ${o}20` : "none",
2719
+ border: `1px solid ${A.description ? "#ef4444" : q === "desc" ? o : "#e5e7eb"}`,
2720
+ boxShadow: q === "desc" ? `0 0 0 2px ${o}20` : "none",
2665
2721
  outline: "none",
2666
2722
  fontSize: "0.85rem",
2667
2723
  color: "#1f2937",
@@ -2678,13 +2734,13 @@ const Wn = [
2678
2734
  A.description && /* @__PURE__ */ b("span", { style: { display: "block", marginTop: "2px", fontSize: "0.7rem", color: "#ef4444" }, children: A.description })
2679
2735
  ] })
2680
2736
  ] }),
2681
- /* @__PURE__ */ v("div", { style: { marginBottom: "2px" }, children: [
2682
- /* @__PURE__ */ b("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", marginBottom: "6px" }, children: /* @__PURE__ */ v("label", { style: { fontWeight: 600, fontSize: "0.8rem", color: "#374151" }, children: [
2737
+ /* @__PURE__ */ x("div", { style: { marginBottom: "2px" }, children: [
2738
+ /* @__PURE__ */ b("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", marginBottom: "6px" }, children: /* @__PURE__ */ x("label", { style: { fontWeight: 600, fontSize: "0.8rem", color: "#374151" }, children: [
2683
2739
  "Ảnh chụp (",
2684
2740
  V.length,
2685
2741
  "/3)"
2686
2742
  ] }) }),
2687
- V.length > 0 && /* @__PURE__ */ b("div", { style: { display: "grid", gridTemplateColumns: "repeat(3, 1fr)", gap: "6px", marginBottom: "8px" }, children: V.map((p, I) => /* @__PURE__ */ v("div", { style: {
2743
+ V.length > 0 && /* @__PURE__ */ b("div", { style: { display: "grid", gridTemplateColumns: "repeat(3, 1fr)", gap: "6px", marginBottom: "8px" }, children: V.map((p, S) => /* @__PURE__ */ x("div", { style: {
2688
2744
  position: "relative",
2689
2745
  aspectRatio: "16/9",
2690
2746
  border: "1px solid #e5e7eb",
@@ -2696,9 +2752,9 @@ const Wn = [
2696
2752
  "img",
2697
2753
  {
2698
2754
  src: p,
2699
- alt: `Screenshot ${I + 1}`,
2755
+ alt: `Screenshot ${S + 1}`,
2700
2756
  draggable: !1,
2701
- onContextMenu: (se) => se.preventDefault(),
2757
+ onContextMenu: (N) => N.preventDefault(),
2702
2758
  style: {
2703
2759
  width: "100%",
2704
2760
  height: "100%",
@@ -2708,13 +2764,13 @@ const Wn = [
2708
2764
  userSelect: "none",
2709
2765
  WebkitUserSelect: "none"
2710
2766
  },
2711
- onClick: () => Be(p)
2767
+ onClick: () => We(p)
2712
2768
  }
2713
2769
  ),
2714
2770
  /* @__PURE__ */ b(
2715
2771
  "button",
2716
2772
  {
2717
- onClick: () => ui(I),
2773
+ onClick: () => mi(S),
2718
2774
  title: "Xóa ảnh",
2719
2775
  style: {
2720
2776
  position: "absolute",
@@ -2733,15 +2789,25 @@ const Wn = [
2733
2789
  padding: 0,
2734
2790
  boxShadow: "0 1px 2px rgba(0,0,0,0.2)"
2735
2791
  },
2736
- children: /* @__PURE__ */ b(Vt, { size: 10 })
2792
+ children: /* @__PURE__ */ b(Gt, { size: 10 })
2737
2793
  }
2738
2794
  )
2739
- ] }, I)) }),
2740
- V.length < 3 && /* @__PURE__ */ v("div", { style: { display: "flex", gap: "8px" }, children: [
2741
- /* @__PURE__ */ v(
2795
+ ] }, S)) }),
2796
+ /* @__PURE__ */ x("div", { style: { display: "flex", gap: "8px" }, children: [
2797
+ /* @__PURE__ */ b(
2798
+ "input",
2799
+ {
2800
+ type: "file",
2801
+ ref: mt,
2802
+ style: { display: "none" },
2803
+ accept: "image/*",
2804
+ onChange: pi
2805
+ }
2806
+ ),
2807
+ /* @__PURE__ */ x(
2742
2808
  "button",
2743
2809
  {
2744
- onClick: () => bt("full"),
2810
+ onClick: () => yt("full"),
2745
2811
  style: {
2746
2812
  flex: 1,
2747
2813
  padding: "12px",
@@ -2755,7 +2821,9 @@ const Wn = [
2755
2821
  flexDirection: "column",
2756
2822
  alignItems: "center",
2757
2823
  gap: "4px",
2758
- transition: "all 0.2s"
2824
+ transition: "all 0.2s",
2825
+ minWidth: "60px"
2826
+ // Prevent squishing
2759
2827
  },
2760
2828
  onMouseOver: (p) => {
2761
2829
  p.currentTarget.style.borderColor = o, p.currentTarget.style.color = o, p.currentTarget.style.backgroundColor = "#f9fafb";
@@ -2764,15 +2832,15 @@ const Wn = [
2764
2832
  p.currentTarget.style.borderColor = "#d1d5db", p.currentTarget.style.color = "#4b5563", p.currentTarget.style.backgroundColor = "white";
2765
2833
  },
2766
2834
  children: [
2767
- /* @__PURE__ */ b($n, { size: 18 }),
2835
+ /* @__PURE__ */ b(jn, { size: 18 }),
2768
2836
  /* @__PURE__ */ b("span", { style: { fontSize: "0.8rem", fontWeight: 500 }, children: "Toàn màn hình" })
2769
2837
  ]
2770
2838
  }
2771
2839
  ),
2772
- /* @__PURE__ */ v(
2840
+ /* @__PURE__ */ x(
2773
2841
  "button",
2774
2842
  {
2775
- onClick: () => bt("crop"),
2843
+ onClick: () => yt("crop"),
2776
2844
  className: "fb-btn-crop",
2777
2845
  style: {
2778
2846
  flex: 1,
@@ -2787,7 +2855,8 @@ const Wn = [
2787
2855
  flexDirection: "column",
2788
2856
  alignItems: "center",
2789
2857
  gap: "4px",
2790
- transition: "all 0.2s"
2858
+ transition: "all 0.2s",
2859
+ minWidth: "60px"
2791
2860
  },
2792
2861
  onMouseOver: (p) => {
2793
2862
  p.currentTarget.style.borderColor = o, p.currentTarget.style.color = o, p.currentTarget.style.backgroundColor = "#f9fafb";
@@ -2796,19 +2865,52 @@ const Wn = [
2796
2865
  p.currentTarget.style.borderColor = "#d1d5db", p.currentTarget.style.color = "#4b5563", p.currentTarget.style.backgroundColor = "white";
2797
2866
  },
2798
2867
  children: [
2799
- /* @__PURE__ */ b(_n, { size: 18 }),
2868
+ /* @__PURE__ */ b(zn, { size: 18 }),
2800
2869
  /* @__PURE__ */ b("span", { style: { fontSize: "0.8rem", fontWeight: 500 }, children: "Chọn vùng" })
2801
2870
  ]
2802
2871
  }
2872
+ ),
2873
+ /* @__PURE__ */ x(
2874
+ "button",
2875
+ {
2876
+ onClick: fi,
2877
+ className: "fb-btn-upload",
2878
+ style: {
2879
+ flex: 1,
2880
+ padding: "12px",
2881
+ textAlign: "center",
2882
+ background: "white",
2883
+ border: "1px dashed #d1d5db",
2884
+ borderRadius: "8px",
2885
+ color: "#4b5563",
2886
+ cursor: "pointer",
2887
+ display: "flex",
2888
+ flexDirection: "column",
2889
+ alignItems: "center",
2890
+ gap: "4px",
2891
+ transition: "all 0.2s",
2892
+ minWidth: "60px"
2893
+ },
2894
+ onMouseOver: (p) => {
2895
+ p.currentTarget.style.borderColor = o, p.currentTarget.style.color = o, p.currentTarget.style.backgroundColor = "#f9fafb";
2896
+ },
2897
+ onMouseOut: (p) => {
2898
+ p.currentTarget.style.borderColor = "#d1d5db", p.currentTarget.style.color = "#4b5563", p.currentTarget.style.backgroundColor = "white";
2899
+ },
2900
+ children: [
2901
+ /* @__PURE__ */ b($n, { size: 18 }),
2902
+ /* @__PURE__ */ b("span", { style: { fontSize: "0.8rem", fontWeight: 500 }, children: "Chọn ảnh" })
2903
+ ]
2904
+ }
2803
2905
  )
2804
2906
  ] })
2805
2907
  ] }),
2806
- /* @__PURE__ */ v("div", { style: { display: "flex", justifyContent: "flex-end", gap: "8px", marginTop: "auto", paddingTop: "8px", borderTop: "1px solid #f3f4f6" }, children: [
2908
+ /* @__PURE__ */ x("div", { style: { display: "flex", justifyContent: "flex-end", gap: "8px", marginTop: "auto", paddingTop: "8px", borderTop: "1px solid #f3f4f6" }, children: [
2807
2909
  /* @__PURE__ */ b(
2808
2910
  "button",
2809
2911
  {
2810
- onClick: qe,
2811
- disabled: Z,
2912
+ onClick: je,
2913
+ disabled: te,
2812
2914
  style: {
2813
2915
  padding: "8px 16px",
2814
2916
  borderRadius: "8px",
@@ -2828,25 +2930,25 @@ const Wn = [
2828
2930
  /* @__PURE__ */ b(
2829
2931
  "button",
2830
2932
  {
2831
- onClick: hi,
2832
- disabled: Z,
2933
+ onClick: yi,
2934
+ disabled: te,
2833
2935
  style: {
2834
2936
  padding: "8px 16px",
2835
2937
  borderRadius: "8px",
2836
2938
  border: "none",
2837
2939
  background: o,
2838
2940
  color: "white",
2839
- cursor: Z ? "not-allowed" : "pointer",
2941
+ cursor: te ? "not-allowed" : "pointer",
2840
2942
  fontWeight: 600,
2841
2943
  fontSize: "0.85rem",
2842
- opacity: Z ? 0.7 : 1,
2944
+ opacity: te ? 0.7 : 1,
2843
2945
  boxShadow: "0 2px 4px -1px rgba(0, 0, 0, 0.1)",
2844
2946
  transition: "transform 0.1s, opacity 0.2s"
2845
2947
  },
2846
- onMouseDown: (p) => !Z && (p.currentTarget.style.transform = "scale(0.98)"),
2847
- onMouseUp: (p) => !Z && (p.currentTarget.style.transform = "scale(1)"),
2848
- children: Z ? /* @__PURE__ */ v("div", { style: { display: "flex", alignItems: "center", gap: "6px" }, children: [
2849
- /* @__PURE__ */ b(Dn, { size: 16, style: { animation: "fb-spin 1s linear infinite" } }),
2948
+ onMouseDown: (p) => !te && (p.currentTarget.style.transform = "scale(0.98)"),
2949
+ onMouseUp: (p) => !te && (p.currentTarget.style.transform = "scale(1)"),
2950
+ children: te ? /* @__PURE__ */ x("div", { style: { display: "flex", alignItems: "center", gap: "6px" }, children: [
2951
+ /* @__PURE__ */ b(Vn, { size: 16, style: { animation: "fb-spin 1s linear infinite" } }),
2850
2952
  /* @__PURE__ */ b("span", { children: "Đang gửi..." })
2851
2953
  ] }) : "Gửi báo lỗi"
2852
2954
  }
@@ -2854,40 +2956,40 @@ const Wn = [
2854
2956
  ] })
2855
2957
  ] })
2856
2958
  ] });
2857
- }, ri = gi(void 0), Kn = () => {
2858
- const e = wi(ri);
2959
+ }, ci = vi(void 0), ir = () => {
2960
+ const e = ki(ci);
2859
2961
  if (!e)
2860
2962
  throw new Error("useFeedback must be used within a FeedbackProvider");
2861
2963
  return e;
2862
- }, Jn = ({
2964
+ }, nr = ({
2863
2965
  children: e,
2864
2966
  onSubmit: t,
2865
2967
  themeColor: i
2866
2968
  }) => {
2867
- const [n, o] = E(!1), [s, r] = E(null), [h, f] = E(""), [w, m] = E(void 0), k = (U, M, x) => {
2868
- r(U), f(M || ""), m(x), o(!0);
2969
+ const [n, o] = I(!1), [s, r] = I(null), [h, f] = I(""), [g, m] = I(void 0), k = (z, R, y) => {
2970
+ r(z), f(R || ""), m(y), o(!0);
2869
2971
  }, T = () => {
2870
2972
  o(!1);
2871
2973
  };
2872
- return /* @__PURE__ */ v(ri.Provider, { value: { openFeedback: k, closeFeedback: T, isOpen: n, activeQuestionId: s }, children: [
2974
+ return /* @__PURE__ */ x(ci.Provider, { value: { openFeedback: k, closeFeedback: T, isOpen: n, activeQuestionId: s }, children: [
2873
2975
  e,
2874
2976
  s && /* @__PURE__ */ b(
2875
- jn,
2977
+ Kn,
2876
2978
  {
2877
2979
  questionId: s,
2878
2980
  questionIdChild: h,
2879
- contextData: w,
2981
+ contextData: g,
2880
2982
  onSubmit: t,
2881
2983
  themeColor: i,
2882
2984
  isOpen: n,
2883
2985
  onClose: T,
2884
- triggerComponent: /* @__PURE__ */ b(Wt, {})
2986
+ triggerComponent: /* @__PURE__ */ b(it, {})
2885
2987
  }
2886
2988
  )
2887
2989
  ] });
2888
2990
  };
2889
2991
  export {
2890
- Jn as FeedbackProvider,
2891
- jn as FeedbackWidget,
2892
- Kn as useFeedback
2992
+ nr as FeedbackProvider,
2993
+ Kn as FeedbackWidget,
2994
+ ir as useFeedback
2893
2995
  };