speakid-build-a-sentence 1.0.27 → 1.0.29
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,5 +1,5 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useState as
|
|
1
|
+
import { jsx as c, jsxs as b } from "react/jsx-runtime";
|
|
2
|
+
import { useState as l, useCallback as ce, useRef as re, useEffect as j, useMemo as dt, Component as pt } from "react";
|
|
3
3
|
const ut = `
|
|
4
4
|
@keyframes spin {
|
|
5
5
|
from { transform: rotate(0deg); }
|
|
@@ -134,13 +134,14 @@ const Ce = {
|
|
|
134
134
|
fontFamily: '"Geist", system-ui',
|
|
135
135
|
width: "160px"
|
|
136
136
|
},
|
|
137
|
-
// ✅ Обновлено только для качества логотипа (размер как в
|
|
137
|
+
// ✅ Обновлено только для качества логотипа (размер как в Hangman)
|
|
138
138
|
gmLogoFixed: {
|
|
139
139
|
position: "absolute",
|
|
140
140
|
top: "16px",
|
|
141
141
|
left: "16px",
|
|
142
142
|
width: "auto",
|
|
143
|
-
zIndex:
|
|
143
|
+
zIndex: 30,
|
|
144
|
+
// ✅ Унифицирован zIndex для консистентности
|
|
144
145
|
pointerEvents: "none",
|
|
145
146
|
background: "transparent",
|
|
146
147
|
transform: "none",
|
|
@@ -173,7 +174,7 @@ const Ce = {
|
|
|
173
174
|
// ===== Анимационные стили =====
|
|
174
175
|
...Ce
|
|
175
176
|
}, ft = () => {
|
|
176
|
-
const [f, s] =
|
|
177
|
+
const [f, s] = l([]), v = ce((k, M, h) => {
|
|
177
178
|
const w = [];
|
|
178
179
|
k.trim() || w.push({
|
|
179
180
|
type: "empty",
|
|
@@ -293,9 +294,9 @@ function kt(f = {}) {
|
|
|
293
294
|
const e = document.getElementById("magic-sentence-reset");
|
|
294
295
|
e && e.remove();
|
|
295
296
|
}), []);
|
|
296
|
-
const [S, z] =
|
|
297
|
+
const [S, z] = l("select"), [E, de] = l(null), [pe, ue] = l(null), [T, Z] = l([]), [D, fe] = l(0), [oe, me] = l([]), [I, ie] = l([]), [W, ge] = l(20), [V, G] = l(0), [yt, he] = l(null), [X, P] = l(null), [a, _] = l(!1), [xe, se] = l(!1), [ae, Te] = l(
|
|
297
298
|
Number(localStorage.getItem("magicSentenceBest")) || 0
|
|
298
|
-
), q = re(null), De = re(null), ye = re(0), [x, B] =
|
|
299
|
+
), q = re(null), De = re(null), ye = re(0), [x, B] = l({ list: null, id: null, side: null }), [m, Re] = l(!1), [ze, U] = l(1), [be, J] = l(null), [Ee, Pe] = l(!1), [Be, Le] = l(!1), [Me, We] = l(!1), [Ae, He] = l(!1), [$e, Oe] = l(!1), [Ne, Ge] = l(!1), [Xe, je] = l(!1), [Fe, Ve] = l(!1), [qe, Ue] = l(!1), [bt, Je] = l(!1), [wt, Ye] = l(!1);
|
|
299
300
|
j(() => {
|
|
300
301
|
const e = () => {
|
|
301
302
|
const n = h(), t = w(), r = n < 768 || n === 926 && t === 428 || n === 932 && t === 430, o = t < 700, p = n / t > 1.8, g = n === 768 && t === 1024, i = n === 1024 && t === 768, d = n === 820 && t === 1180, R = n === 1180 && t === 820, C = n === 540 && t === 720, ne = n === 720 && t === 540, ve = n === 1024 && t === 1366, ke = n === 1366 && t === 1024, Ie = n >= 1200 && t >= 600 && !r;
|
|
@@ -321,7 +322,7 @@ function kt(f = {}) {
|
|
|
321
322
|
return window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
|
|
322
323
|
}, [$, H, k]);
|
|
323
324
|
const Q = (e, n, t, r) => {
|
|
324
|
-
if (
|
|
325
|
+
if (a) return;
|
|
325
326
|
let o = [...oe], p = [...I];
|
|
326
327
|
const g = e === "bank" ? o : p, i = n === "bank" ? o : p, d = g.findIndex((ne) => ne.id === t);
|
|
327
328
|
if (d === -1) return;
|
|
@@ -329,7 +330,7 @@ function kt(f = {}) {
|
|
|
329
330
|
let C = r;
|
|
330
331
|
e === n && C !== null && C !== void 0 && C > d && (C = C - 1), C == null || C < 0 || C > i.length ? i.push(R) : i.splice(C, 0, R), e === "bank" ? o = g : p = g, n === "bank" ? o = i : p = i, me(o), ie(p);
|
|
331
332
|
}, Y = (e, n, t) => {
|
|
332
|
-
if (e.preventDefault(),
|
|
333
|
+
if (e.preventDefault(), a) {
|
|
333
334
|
B({ list: null, id: null, side: null });
|
|
334
335
|
return;
|
|
335
336
|
}
|
|
@@ -382,10 +383,10 @@ function kt(f = {}) {
|
|
|
382
383
|
}));
|
|
383
384
|
me(r), ie([]), fe(e), ye.current = e, ge(pe || 20), P(null), _(!1), se(!1), z("play");
|
|
384
385
|
};
|
|
385
|
-
j(() => (S === "play" && !
|
|
386
|
+
j(() => (S === "play" && !a && (q.current !== null && window.clearTimeout(q.current), W > 0 ? q.current = window.setTimeout(() => ge((e) => e - 1), 1e3) : _(!0)), () => {
|
|
386
387
|
q.current !== null && window.clearTimeout(q.current);
|
|
387
|
-
}), [S, W,
|
|
388
|
-
if (S === "play" &&
|
|
388
|
+
}), [S, W, a]), j(() => {
|
|
389
|
+
if (S === "play" && a && W === 0) {
|
|
389
390
|
const e = T[D];
|
|
390
391
|
if (!e) {
|
|
391
392
|
P(null);
|
|
@@ -394,10 +395,10 @@ function kt(f = {}) {
|
|
|
394
395
|
const n = e.trim().split(/\s+/), t = I.map((i) => i.text), r = n.filter((i) => !t.includes(i)).length, o = t.filter((i) => !n.includes(i)).length, p = n.filter((i, d) => t.includes(i) ? t[d] !== i : !1).length, g = r + o + p;
|
|
395
396
|
g === 0 ? (P("correct"), xe || (se(!0), G((i) => i + 1)), L("correct"), A("Correct! Well done!")) : g === 1 ? (P("almost"), G((i) => i + 0.5), L("half"), A("Almost correct! Just one mistake.")) : (P("wrong"), L("wrong"), A("Not quite right. Keep trying!"));
|
|
396
397
|
}
|
|
397
|
-
}, [S,
|
|
398
|
+
}, [S, a, W, T, D, I, xe]);
|
|
398
399
|
const tt = (e = !0) => {
|
|
399
400
|
if (e) {
|
|
400
|
-
if (
|
|
401
|
+
if (a) {
|
|
401
402
|
D + 1 < (E || 0) ? ee(D + 1) : (z("results"), setTimeout(() => te(), 600));
|
|
402
403
|
return;
|
|
403
404
|
}
|
|
@@ -452,9 +453,9 @@ function kt(f = {}) {
|
|
|
452
453
|
};
|
|
453
454
|
g();
|
|
454
455
|
}, nt = () => /* @__PURE__ */ b("div", { style: u.gmCenterScreen, children: [
|
|
455
|
-
/* @__PURE__ */
|
|
456
|
-
/* @__PURE__ */
|
|
457
|
-
/* @__PURE__ */
|
|
456
|
+
/* @__PURE__ */ c("h1", { style: u.gmHeadline1, children: "MAGIC SENTENCE" }),
|
|
457
|
+
/* @__PURE__ */ c("p", { style: u.gmBodyM, children: "Select number of rounds" }),
|
|
458
|
+
/* @__PURE__ */ c("div", { style: {
|
|
458
459
|
display: "flex",
|
|
459
460
|
gap: y() ? "8px" : "16px",
|
|
460
461
|
justifyContent: "center"
|
|
@@ -474,9 +475,9 @@ function kt(f = {}) {
|
|
|
474
475
|
e
|
|
475
476
|
)) })
|
|
476
477
|
] }), rt = () => /* @__PURE__ */ b("div", { style: u.gmCenterScreen, children: [
|
|
477
|
-
/* @__PURE__ */
|
|
478
|
-
/* @__PURE__ */
|
|
479
|
-
/* @__PURE__ */
|
|
478
|
+
/* @__PURE__ */ c("h1", { style: u.gmHeadline1, children: "MAGIC SENTENCE" }),
|
|
479
|
+
/* @__PURE__ */ c("p", { style: u.gmBodyM, children: "Select time per round" }),
|
|
480
|
+
/* @__PURE__ */ c("div", { style: {
|
|
480
481
|
display: "flex",
|
|
481
482
|
gap: y() ? "8px" : "16px",
|
|
482
483
|
justifyContent: "center"
|
|
@@ -503,8 +504,8 @@ function kt(f = {}) {
|
|
|
503
504
|
E && E > 1 ? "s" : "",
|
|
504
505
|
" for your student"
|
|
505
506
|
] }),
|
|
506
|
-
/* @__PURE__ */
|
|
507
|
-
/* @__PURE__ */
|
|
507
|
+
/* @__PURE__ */ c("p", { style: { ...u.gmBodyS, marginBottom: "16px", marginTop: "0px", color: "#6b7280" }, children: "Maximum 41 characters per sentence" }),
|
|
508
|
+
/* @__PURE__ */ c("div", { style: {
|
|
508
509
|
display: "flex",
|
|
509
510
|
flexDirection: "column",
|
|
510
511
|
gap: 12,
|
|
@@ -514,7 +515,7 @@ function kt(f = {}) {
|
|
|
514
515
|
// Минимальная ширина по содержимому
|
|
515
516
|
maxWidth: "600px"
|
|
516
517
|
// Ограничиваем максимальную ширину
|
|
517
|
-
}, children: T.map((e, n) => /* @__PURE__ */
|
|
518
|
+
}, children: T.map((e, n) => /* @__PURE__ */ c(
|
|
518
519
|
"input",
|
|
519
520
|
{
|
|
520
521
|
value: e,
|
|
@@ -532,7 +533,7 @@ function kt(f = {}) {
|
|
|
532
533
|
},
|
|
533
534
|
n
|
|
534
535
|
)) }),
|
|
535
|
-
/* @__PURE__ */
|
|
536
|
+
/* @__PURE__ */ c(
|
|
536
537
|
"button",
|
|
537
538
|
{
|
|
538
539
|
onClick: et,
|
|
@@ -548,11 +549,11 @@ function kt(f = {}) {
|
|
|
548
549
|
}
|
|
549
550
|
)
|
|
550
551
|
] }), it = () => /* @__PURE__ */ b("div", { style: u.gmReadyWrapper, children: [
|
|
551
|
-
/* @__PURE__ */
|
|
552
|
+
/* @__PURE__ */ c("h1", { style: {
|
|
552
553
|
...u.gmHeadline1,
|
|
553
554
|
color: "#ec4c44"
|
|
554
555
|
}, children: "GET READY" }),
|
|
555
|
-
/* @__PURE__ */
|
|
556
|
+
/* @__PURE__ */ c("div", { style: u.gmHourglass, children: "⏳" })
|
|
556
557
|
] }), st = () => /* @__PURE__ */ b("div", { style: u.gmGameLayout, children: [
|
|
557
558
|
/* @__PURE__ */ b("h2", { style: {
|
|
558
559
|
marginBottom: y() ? "5px" : "10px",
|
|
@@ -563,9 +564,9 @@ function kt(f = {}) {
|
|
|
563
564
|
"/",
|
|
564
565
|
E,
|
|
565
566
|
" — ",
|
|
566
|
-
|
|
567
|
+
a ? "TIME'S UP!" : `Time: ${W}s`
|
|
567
568
|
] }),
|
|
568
|
-
/* @__PURE__ */
|
|
569
|
+
/* @__PURE__ */ c(
|
|
569
570
|
"div",
|
|
570
571
|
{
|
|
571
572
|
style: {
|
|
@@ -576,7 +577,7 @@ function kt(f = {}) {
|
|
|
576
577
|
overflow: "hidden",
|
|
577
578
|
marginBottom: y() ? "10px" : "20px"
|
|
578
579
|
},
|
|
579
|
-
children: /* @__PURE__ */
|
|
580
|
+
children: /* @__PURE__ */ c(
|
|
580
581
|
"div",
|
|
581
582
|
{
|
|
582
583
|
style: {
|
|
@@ -589,7 +590,7 @@ function kt(f = {}) {
|
|
|
589
590
|
)
|
|
590
591
|
}
|
|
591
592
|
),
|
|
592
|
-
/* @__PURE__ */
|
|
593
|
+
/* @__PURE__ */ c(
|
|
593
594
|
"div",
|
|
594
595
|
{
|
|
595
596
|
onDragOver: (e) => e.preventDefault(),
|
|
@@ -604,15 +605,15 @@ function kt(f = {}) {
|
|
|
604
605
|
width: "100%",
|
|
605
606
|
boxSizing: "border-box"
|
|
606
607
|
},
|
|
607
|
-
children: oe.map((e, n) => /* @__PURE__ */
|
|
608
|
+
children: oe.map((e, n) => /* @__PURE__ */ c(
|
|
608
609
|
"div",
|
|
609
610
|
{
|
|
610
|
-
draggable: !
|
|
611
|
+
draggable: !a,
|
|
611
612
|
role: "button",
|
|
612
|
-
tabIndex:
|
|
613
|
-
"aria-label":
|
|
613
|
+
tabIndex: a ? -1 : 0,
|
|
614
|
+
"aria-label": a ? `Word: ${e.text} (time expired)` : mt("Drag word", e.text, "to build sentence"),
|
|
614
615
|
onDragStart: (t) => {
|
|
615
|
-
if (
|
|
616
|
+
if (a) {
|
|
616
617
|
t.preventDefault();
|
|
617
618
|
return;
|
|
618
619
|
}
|
|
@@ -622,7 +623,7 @@ function kt(f = {}) {
|
|
|
622
623
|
), t.dataTransfer.setData("text/plain", e.id), A(`Dragging word: ${e.text}`);
|
|
623
624
|
},
|
|
624
625
|
onKeyDown: (t) => {
|
|
625
|
-
|
|
626
|
+
a || gt(t, () => Q("bank", "selected", e.id, null));
|
|
626
627
|
},
|
|
627
628
|
onDragOver: (t) => t.preventDefault(),
|
|
628
629
|
onDrop: (t) => {
|
|
@@ -630,20 +631,20 @@ function kt(f = {}) {
|
|
|
630
631
|
B({ list: null, id: null, side: null }), t.stopPropagation(), Y(t, "bank", p);
|
|
631
632
|
},
|
|
632
633
|
onDragEnter: (t) => {
|
|
633
|
-
if (
|
|
634
|
+
if (a) return;
|
|
634
635
|
const r = t.currentTarget.getBoundingClientRect(), o = r.left + r.width / 2;
|
|
635
636
|
B({ list: "bank", id: e.id, side: t.clientX > o ? "right" : "left" });
|
|
636
637
|
},
|
|
637
638
|
onDragLeave: () => B({ list: null, id: null, side: null }),
|
|
638
639
|
onClick: () => {
|
|
639
|
-
|
|
640
|
+
a || Q("bank", "selected", e.id, null);
|
|
640
641
|
},
|
|
641
642
|
style: {
|
|
642
643
|
padding: m || h() < 768 ? "6px 10px" : "10px 16px",
|
|
643
644
|
borderRadius: m || h() < 768 ? "6px" : "10px",
|
|
644
645
|
border: "1px solid #ccc",
|
|
645
|
-
background:
|
|
646
|
-
cursor:
|
|
646
|
+
background: a ? "#f0f0f0" : "#f9f9f9",
|
|
647
|
+
cursor: a ? "not-allowed" : x.list === "bank" && x.id === e.id ? "grabbing" : "grab",
|
|
647
648
|
fontSize: (() => {
|
|
648
649
|
const t = h();
|
|
649
650
|
return m || t < 768 ? "12px" : t >= 768 && t < 1300 ? "14px" : "18px";
|
|
@@ -652,7 +653,7 @@ function kt(f = {}) {
|
|
|
652
653
|
...x.list === "bank" && x.id === e.id && x.side === "right" ? { borderRight: "3px solid #3b82f6" } : {},
|
|
653
654
|
flexShrink: 0,
|
|
654
655
|
flexBasis: "auto",
|
|
655
|
-
opacity:
|
|
656
|
+
opacity: a ? 0.6 : 1,
|
|
656
657
|
transition: "opacity 0.3s ease, transform 0.2s ease",
|
|
657
658
|
...x.list === "bank" && x.id === e.id ? {
|
|
658
659
|
transform: "scale(1.05)",
|
|
@@ -665,7 +666,7 @@ function kt(f = {}) {
|
|
|
665
666
|
))
|
|
666
667
|
}
|
|
667
668
|
),
|
|
668
|
-
/* @__PURE__ */
|
|
669
|
+
/* @__PURE__ */ c(
|
|
669
670
|
"div",
|
|
670
671
|
{
|
|
671
672
|
onDragOver: (e) => e.preventDefault(),
|
|
@@ -701,12 +702,12 @@ function kt(f = {}) {
|
|
|
701
702
|
overflowX: N() ? "hidden" : "auto",
|
|
702
703
|
whiteSpace: N() ? "normal" : "nowrap"
|
|
703
704
|
},
|
|
704
|
-
children: I.map((e, n) => /* @__PURE__ */
|
|
705
|
+
children: I.map((e, n) => /* @__PURE__ */ c(
|
|
705
706
|
"span",
|
|
706
707
|
{
|
|
707
|
-
draggable: !
|
|
708
|
+
draggable: !a,
|
|
708
709
|
onDragStart: (t) => {
|
|
709
|
-
if (
|
|
710
|
+
if (a) {
|
|
710
711
|
t.preventDefault();
|
|
711
712
|
return;
|
|
712
713
|
}
|
|
@@ -721,24 +722,24 @@ function kt(f = {}) {
|
|
|
721
722
|
B({ list: null, id: null, side: null }), t.stopPropagation(), Y(t, "selected", g);
|
|
722
723
|
},
|
|
723
724
|
onDragEnter: (t) => {
|
|
724
|
-
if (
|
|
725
|
+
if (a) return;
|
|
725
726
|
const r = t.currentTarget.getBoundingClientRect(), o = r.left + r.width / 2;
|
|
726
727
|
B({ list: "selected", id: e.id, side: t.clientX > o ? "right" : "left" });
|
|
727
728
|
},
|
|
728
729
|
onDragLeave: () => B({ list: null, id: null, side: null }),
|
|
729
730
|
onClick: () => {
|
|
730
|
-
|
|
731
|
+
a || Q("selected", "bank", e.id, null);
|
|
731
732
|
},
|
|
732
|
-
title:
|
|
733
|
+
title: a ? "Time expired" : "Click to remove back to bank",
|
|
733
734
|
style: {
|
|
734
735
|
padding: y() ? "4px 6px" : "6px 10px",
|
|
735
736
|
margin: y() ? "2px" : "4px",
|
|
736
737
|
borderRadius: y() ? "4px" : "8px",
|
|
737
|
-
background:
|
|
738
|
-
border:
|
|
738
|
+
background: a ? "#f0f0f0" : "#ffe9e7",
|
|
739
|
+
border: a ? "1px solid #ccc" : "1px solid #ec4c44",
|
|
739
740
|
...x.list === "selected" && x.id === e.id && x.side === "left" ? { borderLeft: "3px solid #3b82f6" } : {},
|
|
740
741
|
...x.list === "selected" && x.id === e.id && x.side === "right" ? { borderRight: "3px solid #3b82f6" } : {},
|
|
741
|
-
cursor:
|
|
742
|
+
cursor: a ? "not-allowed" : x.list === "selected" && x.id === e.id ? "grabbing" : "grab",
|
|
742
743
|
userSelect: "none",
|
|
743
744
|
fontSize: `${we(I.length)}px`,
|
|
744
745
|
// Адаптивный размер шрифта для слов
|
|
@@ -746,7 +747,7 @@ function kt(f = {}) {
|
|
|
746
747
|
// Более плотный шрифт
|
|
747
748
|
whiteSpace: "nowrap",
|
|
748
749
|
// Запрещаем перенос слов
|
|
749
|
-
opacity:
|
|
750
|
+
opacity: a ? 0.6 : 1,
|
|
750
751
|
transition: "opacity 0.3s ease, transform 0.2s ease",
|
|
751
752
|
...x.list === "selected" && x.id === e.id ? {
|
|
752
753
|
transform: "scale(1.05)",
|
|
@@ -759,20 +760,20 @@ function kt(f = {}) {
|
|
|
759
760
|
))
|
|
760
761
|
}
|
|
761
762
|
),
|
|
762
|
-
/* @__PURE__ */
|
|
763
|
+
/* @__PURE__ */ c(
|
|
763
764
|
"button",
|
|
764
765
|
{
|
|
765
766
|
onClick: () => tt(!0),
|
|
766
|
-
disabled: !
|
|
767
|
+
disabled: !a && I.length === 0,
|
|
767
768
|
style: {
|
|
768
769
|
marginTop: y() ? "15px" : "30px",
|
|
769
770
|
fontSize: y() ? "14px" : "20px",
|
|
770
771
|
padding: y() ? "6px 12px" : "10px 24px",
|
|
771
772
|
borderRadius: y() ? "8px" : "12px",
|
|
772
|
-
background:
|
|
773
|
+
background: a || I.length > 0 ? "#ec4c44" : "#ccc",
|
|
773
774
|
color: "white",
|
|
774
775
|
border: "none",
|
|
775
|
-
cursor:
|
|
776
|
+
cursor: a || I.length > 0 ? "pointer" : "not-allowed"
|
|
776
777
|
},
|
|
777
778
|
children: "NEXT"
|
|
778
779
|
}
|
|
@@ -780,7 +781,7 @@ function kt(f = {}) {
|
|
|
780
781
|
] }), at = () => {
|
|
781
782
|
const e = h(), n = w(), t = m && e > n || e === 896 && n === 414 || e === 844 && n === 390 || e === 926 && n === 428 || e === 932 && n === 430 || Be || Me || Ae || $e || Ne || Xe || Fe || qe, r = m && e <= 375 && n <= 667 || e === 896 && n === 414 || e === 844 && n === 390 || e === 926 && n === 428 || e === 932 && n === 430, o = e === 1366 && n === 766 || e === 1366 && n === 768 || e === 1280 && n === 720 || e === 1440 && n === 900;
|
|
782
783
|
return /* @__PURE__ */ b("div", { style: u.gmCenterScreen, children: [
|
|
783
|
-
/* @__PURE__ */
|
|
784
|
+
/* @__PURE__ */ c("h1", { style: {
|
|
784
785
|
...u.gmHeadline1,
|
|
785
786
|
marginTop: "0px",
|
|
786
787
|
marginBottom: t ? "2px" : "10px",
|
|
@@ -812,7 +813,7 @@ function kt(f = {}) {
|
|
|
812
813
|
gap: t || m && e <= 375 && n <= 667 ? "6px" : "12px",
|
|
813
814
|
marginTop: t || m && e <= 375 && n <= 667 ? "2px" : o || Ee ? "12px" : "24px"
|
|
814
815
|
}, children: [
|
|
815
|
-
/* @__PURE__ */
|
|
816
|
+
/* @__PURE__ */ c(
|
|
816
817
|
"button",
|
|
817
818
|
{
|
|
818
819
|
onClick: () => {
|
|
@@ -827,7 +828,7 @@ function kt(f = {}) {
|
|
|
827
828
|
children: "🔁 Play again"
|
|
828
829
|
}
|
|
829
830
|
),
|
|
830
|
-
/* @__PURE__ */
|
|
831
|
+
/* @__PURE__ */ c(
|
|
831
832
|
"button",
|
|
832
833
|
{
|
|
833
834
|
onClick: () => {
|
|
@@ -848,31 +849,19 @@ function kt(f = {}) {
|
|
|
848
849
|
if (m && e > n || n < 700 || !Se)
|
|
849
850
|
return null;
|
|
850
851
|
const t = s || (typeof window < "u" && window.origin ? `${window.origin}/cloud/speakid/games/magic%20sentence/logo` : "/cloud/speakid/games/magic%20sentence/logo");
|
|
851
|
-
return (
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
),
|
|
861
|
-
/* @__PURE__ */ a(
|
|
862
|
-
"img",
|
|
863
|
-
{
|
|
864
|
-
src: `${t}.png`,
|
|
865
|
-
alt: "SPEAKID Logo",
|
|
866
|
-
style: u.gmLogoImg,
|
|
867
|
-
loading: "lazy"
|
|
868
|
-
}
|
|
869
|
-
)
|
|
870
|
-
] }) })
|
|
871
|
-
);
|
|
852
|
+
return /* @__PURE__ */ c("div", { style: u.gmLogoFixed, children: /* @__PURE__ */ c(
|
|
853
|
+
"img",
|
|
854
|
+
{
|
|
855
|
+
src: `${t}.svg`,
|
|
856
|
+
alt: "SPEAKID Logo",
|
|
857
|
+
style: u.gmLogoImg,
|
|
858
|
+
loading: "lazy"
|
|
859
|
+
}
|
|
860
|
+
) });
|
|
872
861
|
},
|
|
873
862
|
[m, Se, s, $, H]
|
|
874
863
|
);
|
|
875
|
-
return /* @__PURE__ */
|
|
864
|
+
return /* @__PURE__ */ c(
|
|
876
865
|
"div",
|
|
877
866
|
{
|
|
878
867
|
ref: M,
|
|
@@ -891,7 +880,7 @@ function kt(f = {}) {
|
|
|
891
880
|
right: 0,
|
|
892
881
|
bottom: 0
|
|
893
882
|
},
|
|
894
|
-
children: /* @__PURE__ */
|
|
883
|
+
children: /* @__PURE__ */ b(
|
|
895
884
|
"div",
|
|
896
885
|
{
|
|
897
886
|
style: {
|
|
@@ -910,28 +899,30 @@ function kt(f = {}) {
|
|
|
910
899
|
transform: `scale(${ze})`
|
|
911
900
|
// ✅ Применяем масштаб для широких экранов
|
|
912
901
|
},
|
|
913
|
-
children:
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
902
|
+
children: [
|
|
903
|
+
lt,
|
|
904
|
+
/* @__PURE__ */ c(
|
|
905
|
+
"div",
|
|
906
|
+
{
|
|
907
|
+
style: {
|
|
908
|
+
transform: "translateZ(0)",
|
|
909
|
+
width: "100%",
|
|
910
|
+
height: "100%",
|
|
911
|
+
display: "flex",
|
|
912
|
+
justifyContent: "center",
|
|
913
|
+
alignItems: "center"
|
|
914
|
+
},
|
|
915
|
+
children: /* @__PURE__ */ b("div", { id: "magic-sentence-root", children: [
|
|
916
|
+
S === "select" ? nt() : null,
|
|
917
|
+
S === "time" ? rt() : null,
|
|
918
|
+
S === "type" ? ot() : null,
|
|
919
|
+
S === "getready" ? it() : null,
|
|
920
|
+
S === "play" ? st() : null,
|
|
921
|
+
S === "results" ? at() : null
|
|
922
|
+
] })
|
|
923
|
+
}
|
|
924
|
+
)
|
|
925
|
+
]
|
|
935
926
|
}
|
|
936
927
|
)
|
|
937
928
|
}
|
|
@@ -969,9 +960,9 @@ class It extends pt {
|
|
|
969
960
|
color: "#dc2626",
|
|
970
961
|
fontFamily: "system-ui, sans-serif"
|
|
971
962
|
}, children: [
|
|
972
|
-
/* @__PURE__ */
|
|
973
|
-
/* @__PURE__ */
|
|
974
|
-
/* @__PURE__ */
|
|
963
|
+
/* @__PURE__ */ c("h1", { style: { fontSize: "24px", marginBottom: "16px" }, children: "🚨 Oops! Something went wrong" }),
|
|
964
|
+
/* @__PURE__ */ c("p", { style: { fontSize: "16px", marginBottom: "24px", maxWidth: "500px" }, children: "The game encountered an unexpected error. Don't worry, your progress is saved!" }),
|
|
965
|
+
/* @__PURE__ */ c(
|
|
975
966
|
"button",
|
|
976
967
|
{
|
|
977
968
|
onClick: this.handleReset,
|
|
@@ -991,7 +982,7 @@ class It extends pt {
|
|
|
991
982
|
}
|
|
992
983
|
),
|
|
993
984
|
typeof process < "u" && process.env.NODE_ENV === "development" && this.state.error && /* @__PURE__ */ b("details", { style: { marginTop: "20px", textAlign: "left", maxWidth: "600px" }, children: [
|
|
994
|
-
/* @__PURE__ */
|
|
985
|
+
/* @__PURE__ */ c("summary", { style: { cursor: "pointer", fontSize: "14px" }, children: "Technical Details (Development Only)" }),
|
|
995
986
|
/* @__PURE__ */ b("pre", { style: {
|
|
996
987
|
backgroundColor: "#f3f4f6",
|
|
997
988
|
padding: "12px",
|