xvai-loi 0.1.97 → 0.1.99

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.
Files changed (61) hide show
  1. package/co.txt +1 -1
  2. package/package.json +2 -3
  3. package/xvai-loi.js +42 -7
  4. package/sfx/LICENSE-Kenney-CC0.txt +0 -22
  5. package/sfx/bong_001.ogg +0 -0
  6. package/sfx/click_001.ogg +0 -0
  7. package/sfx/click_002.ogg +0 -0
  8. package/sfx/click_003.ogg +0 -0
  9. package/sfx/click_004.ogg +0 -0
  10. package/sfx/click_005.ogg +0 -0
  11. package/sfx/confirmation_001.ogg +0 -0
  12. package/sfx/confirmation_002.ogg +0 -0
  13. package/sfx/confirmation_003.ogg +0 -0
  14. package/sfx/confirmation_004.ogg +0 -0
  15. package/sfx/drop_001.ogg +0 -0
  16. package/sfx/drop_002.ogg +0 -0
  17. package/sfx/drop_003.ogg +0 -0
  18. package/sfx/drop_004.ogg +0 -0
  19. package/sfx/glass_001.ogg +0 -0
  20. package/sfx/glass_002.ogg +0 -0
  21. package/sfx/glass_003.ogg +0 -0
  22. package/sfx/glass_004.ogg +0 -0
  23. package/sfx/glass_005.ogg +0 -0
  24. package/sfx/glass_006.ogg +0 -0
  25. package/sfx/impactPunch_heavy_000.ogg +0 -0
  26. package/sfx/impactPunch_heavy_001.ogg +0 -0
  27. package/sfx/impactPunch_heavy_002.ogg +0 -0
  28. package/sfx/impactPunch_heavy_003.ogg +0 -0
  29. package/sfx/impactPunch_heavy_004.ogg +0 -0
  30. package/sfx/impactPunch_medium_000.ogg +0 -0
  31. package/sfx/impactPunch_medium_001.ogg +0 -0
  32. package/sfx/impactPunch_medium_002.ogg +0 -0
  33. package/sfx/impactPunch_medium_003.ogg +0 -0
  34. package/sfx/impactPunch_medium_004.ogg +0 -0
  35. package/sfx/impactSoft_medium_000.ogg +0 -0
  36. package/sfx/impactSoft_medium_001.ogg +0 -0
  37. package/sfx/impactSoft_medium_002.ogg +0 -0
  38. package/sfx/impactSoft_medium_003.ogg +0 -0
  39. package/sfx/impactSoft_medium_004.ogg +0 -0
  40. package/sfx/maximize_001.ogg +0 -0
  41. package/sfx/maximize_002.ogg +0 -0
  42. package/sfx/maximize_003.ogg +0 -0
  43. package/sfx/maximize_004.ogg +0 -0
  44. package/sfx/maximize_005.ogg +0 -0
  45. package/sfx/maximize_006.ogg +0 -0
  46. package/sfx/maximize_007.ogg +0 -0
  47. package/sfx/maximize_008.ogg +0 -0
  48. package/sfx/maximize_009.ogg +0 -0
  49. package/sfx/pluck_001.ogg +0 -0
  50. package/sfx/pluck_002.ogg +0 -0
  51. package/sfx/select_001.ogg +0 -0
  52. package/sfx/select_002.ogg +0 -0
  53. package/sfx/select_003.ogg +0 -0
  54. package/sfx/select_004.ogg +0 -0
  55. package/sfx/select_005.ogg +0 -0
  56. package/sfx/select_006.ogg +0 -0
  57. package/sfx/select_007.ogg +0 -0
  58. package/sfx/select_008.ogg +0 -0
  59. package/sfx/tick_001.ogg +0 -0
  60. package/sfx/tick_002.ogg +0 -0
  61. package/sfx/tick_004.ogg +0 -0
package/co.txt CHANGED
@@ -1 +1 @@
1
- xvaiLoi121408
1
+ xvaiLoi121827
package/package.json CHANGED
@@ -1,14 +1,13 @@
1
1
  {
2
2
  "name": "xvai-loi",
3
- "version": "0.1.97",
3
+ "version": "0.1.99",
4
4
  "description": "Loi dung video (Edit Video Tu Dong) nap vao tool Google Flow qua o cam engine/oCam.ts",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
7
7
  "files": [
8
8
  "xvai-loi.js",
9
9
  "nap.js",
10
- "co.txt",
11
- "sfx/"
10
+ "co.txt"
12
11
  ],
13
12
  "main": "nap.js",
14
13
  "exports": {
package/xvai-loi.js CHANGED
@@ -4541,9 +4541,6 @@ function phatMau(ctx, mau7, loai, t, amp) {
4541
4541
  return true;
4542
4542
  }
4543
4543
 
4544
- // flow-src/engine/render.ts
4545
- var DAU_CHU_HAU_KY = "titles are added in editing";
4546
-
4547
4544
  // flow-src/engine/tiengNhan.ts
4548
4545
  function mui(ctx, f0, f1, t, dai2, amp, kieu) {
4549
4546
  const o = ctx.createOscillator(), g = ctx.createGain();
@@ -4644,6 +4641,7 @@ function tiengNhan(ctx, loai, t, amp) {
4644
4641
  }
4645
4642
 
4646
4643
  // flow-src/engine/hauKy.ts
4644
+ var DAU_CHU_HAU_KY = "titles are added in editing";
4647
4645
  var NHAC_VOL = 0.18;
4648
4646
  var HE_SO_NHAC = 0.3;
4649
4647
  var DINH_POP = 0.35;
@@ -21068,6 +21066,22 @@ try {
21068
21066
  }, 2500);
21069
21067
  } catch (e) {
21070
21068
  }
21069
+ try {
21070
+ if (!TRONG_LOI) window.addEventListener("message", async (ev) => {
21071
+ const d = ev.data, o = String(ev.origin || "");
21072
+ if (!(d && d.xvaiLenh === true)) return;
21073
+ if (!(o.indexOf("https://flow.google.com") === 0 || o.indexOf("https://labs.google") === 0)) return;
21074
+ const tra = (kq) => {
21075
+ try {
21076
+ ev.source.postMessage({ xvai: true, id: d.id, kq }, ev.origin);
21077
+ } catch (e) {
21078
+ }
21079
+ };
21080
+ if (d.lenh === "ping") tra("pong");
21081
+ else if (d.lenh === "napLoi") tra(await napLoi(d));
21082
+ });
21083
+ } catch (e) {
21084
+ }
21071
21085
 
21072
21086
  // flow-src/engine/cauLenh.ts
21073
21087
  var api = null;
@@ -21083,7 +21097,7 @@ function datCauLenh(a) {
21083
21097
  on2 = true;
21084
21098
  window.addEventListener("message", async (ev) => {
21085
21099
  const d = ev.data;
21086
- if (!d || d.xvaiLoi121408 !== true) return;
21100
+ if (!d || d.xvaiLoi121827 !== true) return;
21087
21101
  const o = String(ev.origin || "");
21088
21102
  if (!(o.indexOf("https://flow.google.com") === 0 || o.indexOf("https://labs.google") === 0)) return;
21089
21103
  const tra = (kq) => {
@@ -21323,6 +21337,24 @@ async function ngheCat(t0, t1) {
21323
21337
  var nut3 = "px-2 py-1 rounded bg-[#1E3A5F] text-[11px] font-bold hover:bg-[#2C4A73]";
21324
21338
  var SuaLich = ({ ten, onDong }) => {
21325
21339
  const khoaDA = String(ten).replace(/(-x[0-9.]+)+$/, "");
21340
+ const [chonAnh, setChonAnh] = useState("");
21341
+ const thumb = (t) => {
21342
+ const G22 = globalThis;
21343
+ G22.__thumbAnh = G22.__thumbAnh || {};
21344
+ if (G22.__thumbAnh[t]) return G22.__thumbAnh[t];
21345
+ try {
21346
+ const im = taiSan(t);
21347
+ if (!im || !im.width) return "";
21348
+ const c = document.createElement("canvas");
21349
+ c.width = 72;
21350
+ c.height = 128;
21351
+ const k = Math.max(72 / im.width, 128 / im.height);
21352
+ c.getContext("2d").drawImage(im, (72 - im.width * k) / 2, (128 - im.height * k) / 2, im.width * k, im.height * k);
21353
+ return G22.__thumbAnh[t] = c.toDataURL("image/jpeg", 0.6);
21354
+ } catch (e) {
21355
+ return "";
21356
+ }
21357
+ };
21326
21358
  const G3 = globalThis;
21327
21359
  const luuCai = (k, v) => {
21328
21360
  try {
@@ -21864,10 +21896,13 @@ var SuaLich = ({ ten, onDong }) => {
21864
21896
  const f2 = giaTri(x, "f"), d = giaTri(x, "d"), e = sua[x.id] || sua[x.i] || {};
21865
21897
  if (e.xoa) return null;
21866
21898
  return /* @__PURE__ */ shim_react_default.createElement("div", { key: "k" + (x.id || x.i), title: x.bo + " " + f2.toFixed(1) + "\u2013" + (f2 + d).toFixed(1) + " " + (x.giant || x.chu || ""), onPointerDown: (ev) => batDauKeo(ev, x, false), className: "absolute top-3 h-5 rounded-sm cursor-grab text-[8px] text-white overflow-hidden whitespace-nowrap px-0.5", style: { left: f2 / tongS * 100 + "%", width: Math.max(0.4, d / tongS * 100) + "%", background: MAUBO[x.bo] || "#777", outline: e.f != null || e.d != null ? "1px solid #fff" : "none" } }, String(x.giant || x.chu || x.bo).split(String.fromCharCode(10))[0].slice(0, 12), /* @__PURE__ */ shim_react_default.createElement("span", { onPointerDown: (ev) => batDauKeo(ev, x, true), className: "absolute right-0 top-0 bottom-0 w-1.5 bg-white/60 cursor-ew-resize" }));
21867
- }))), /* @__PURE__ */ shim_react_default.createElement("div", { className: "mb-2 text-[11px] flex flex-wrap items-center gap-1" }, /* @__PURE__ */ shim_react_default.createElement("span", { className: "text-[#A2B2C9]" }, 'T\u1EEB \u0111i\u1EC3n t\xEAn ri\xEAng (sai \u2192 \u0111\xFAng, m\u1ED7i c\u1EB7p m\u1ED9t d\xF2ng "sai = \u0111\xFAng"):'), /* @__PURE__ */ shim_react_default.createElement("textarea", { className: "w-full h-12 bg-[#0B1A2D] border border-[#2C4A73] rounded p-1 text-[11px]", value: tuDien, onChange: (e) => setTuDien(e.target.value), placeholder: "t\xFA \u0111ao ai = T\xFA \u0110\xE0o AI" }), /* @__PURE__ */ shim_react_default.createElement("button", { className: nut3, onClick: luuTuDien }, "L\u01B0u t\u1EEB \u0111i\u1EC3n")), /* @__PURE__ */ shim_react_default.createElement("div", { className: "mb-2 text-[11px]" }, /* @__PURE__ */ shim_react_default.createElement("button", { className: nut3, onClick: () => setMoLoi(!moLoi) }, moLoi ? "\u1EA8n" : "C\u1EAFt l\u1EDDi theo t\u1EEB", " (", tuLoi.length, " t\u1EEB", catTay.length ? ", xo\xE1 " + catTay.length : "", ")"), moLoi ? /* @__PURE__ */ shim_react_default.createElement("div", { className: "mt-1 max-h-32 overflow-auto bg-[#0B1A2D] border border-[#2C4A73] rounded p-1 leading-6" }, tuLoi.length ? tuLoi.map((w, k) => /* @__PURE__ */ shim_react_default.createElement("span", { key: k, onClick: () => batCat(w), title: (+w.t0).toFixed(2) + " s", className: "cursor-pointer px-0.5 rounded " + (daCat(w) ? "line-through text-red-400 bg-red-900/30" : "hover:bg-[#1E3A5F]") }, w.text, " ")) : /* @__PURE__ */ shim_react_default.createElement("span", { className: "text-[#A2B2C9]" }, "Ch\u01B0a c\xF3 l\u1EDDi (ch\u1EA1y L\xE0m pro tr\u01B0\u1EDBc)")) : null, moLoi && catTay.length ? /* @__PURE__ */ shim_react_default.createElement("div", { className: "mt-1 flex flex-wrap gap-1" }, catTay.map((r, k) => /* @__PURE__ */ shim_react_default.createElement("span", { key: k, className: "px-1 rounded bg-red-900/30 text-red-300 whitespace-nowrap" }, r.tu, " ", /* @__PURE__ */ shim_react_default.createElement("button", { title: "\u0111\u1EA7u s\u1EDBm 0,05 s", onClick: () => chinhCat(k, "t0", -0.05) }, "\u25C0"), (+r.t0).toFixed(2), /* @__PURE__ */ shim_react_default.createElement("button", { title: "\u0111\u1EA7u mu\u1ED9n 0,05 s", onClick: () => chinhCat(k, "t0", 0.05) }, "\u25B6"), "\u2013", /* @__PURE__ */ shim_react_default.createElement("button", { title: "cu\u1ED1i s\u1EDBm 0,05 s", onClick: () => chinhCat(k, "t1", -0.05) }, "\u25C0"), (+r.t1).toFixed(2), /* @__PURE__ */ shim_react_default.createElement("button", { title: "cu\u1ED1i mu\u1ED9n 0,05 s", onClick: () => chinhCat(k, "t1", 0.05) }, "\u25B6"), " ", /* @__PURE__ */ shim_react_default.createElement("button", { className: "font-bold", title: "nghe th\u1EED ch\u1ED7 c\u1EAFt (1,2 s tr\u01B0\u1EDBc + 1,2 s sau)", onClick: () => ngheCat(r.t0, r.t1) }, "\u{1F50A}")))) : null), /* @__PURE__ */ shim_react_default.createElement("datalist", { id: "xvai-kho-anh" }, dsTenTaiSan().map((t) => /* @__PURE__ */ shim_react_default.createElement("option", { key: t, value: t }))), /* @__PURE__ */ shim_react_default.createElement("datalist", { id: "xvai-icon" }, [["tich", "d\u1EA5u t\xEDch"], ["sao", "ng\xF4i sao"], ["tim", "tr\xE1i tim"], ["xu", "\u0111\u1ED3ng xu / ti\u1EC1n"], ["dongho", "\u0111\u1ED3ng h\u1ED3"], ["luu", "l\u01B0u / \u0111\xE1nh d\u1EA5u"], ["canh", "c\u1EA3nh b\xE1o"], ["bieu", "bi\u1EC3u \u0111\u1ED3"], ["lua", "ng\u1ECDn l\u1EEDa"], ["tenlua", "t\xEAn l\u1EEDa"], ["bongden", "b\xF3ng \u0111\xE8n \xFD t\u01B0\u1EDFng"], ["qua", "h\u1ED9p qu\xE0"], ["giohang", "gi\u1ECF h\xE0ng"], ["nha", "ng\xF4i nh\xE0"], ["sach", "quy\u1EC3n s\xE1ch"], ["dienthoai", "\u0111i\u1EC7n tho\u1EA1i"], ["cup", "c\xFAp"], ["khien", "khi\xEAn"], ["la", "chi\u1EBFc l\xE1"], ["giot", "gi\u1ECDt n\u01B0\u1EDBc"], ["kinhlup", "k\xEDnh l\xFAp"], ["sai", "d\u1EA5u sai"], ["chuot", "con tr\u1ECF chu\u1ED9t"], ["none", "kh\xF4ng icon"]].map(([v, n]) => /* @__PURE__ */ shim_react_default.createElement("option", { key: v, value: v }, n))), /* @__PURE__ */ shim_react_default.createElement("div", { className: "max-h-[60vh] overflow-auto" }, /* @__PURE__ */ shim_react_default.createElement("table", { className: "w-full text-[11px]" }, /* @__PURE__ */ shim_react_default.createElement("thead", null, /* @__PURE__ */ shim_react_default.createElement("tr", { className: "text-[#A2B2C9]" }, /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "#"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "khung"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "gi\xE2y"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "b\u1ED1 c\u1EE5c"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "\u0111\u1EA7u/d\xE0i (s)"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "ch\u1EEF nh\u1EA5n"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "y / c\u1EE1"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "ch\u1EEF ph\u1EE5"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "icon"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "\u1EA3nh (t\xEAn kho)"), /* @__PURE__ */ shim_react_default.createElement("th", null, "fx"), /* @__PURE__ */ shim_react_default.createElement("th", null, "xo\xE1"))), /* @__PURE__ */ shim_react_default.createElement("tbody", null, ds2.map((s) => {
21899
+ }))), /* @__PURE__ */ shim_react_default.createElement("div", { className: "mb-2 text-[11px] flex flex-wrap items-center gap-1" }, /* @__PURE__ */ shim_react_default.createElement("span", { className: "text-[#A2B2C9]" }, 'T\u1EEB \u0111i\u1EC3n t\xEAn ri\xEAng (sai \u2192 \u0111\xFAng, m\u1ED7i c\u1EB7p m\u1ED9t d\xF2ng "sai = \u0111\xFAng"):'), /* @__PURE__ */ shim_react_default.createElement("textarea", { className: "w-full h-12 bg-[#0B1A2D] border border-[#2C4A73] rounded p-1 text-[11px]", value: tuDien, onChange: (e) => setTuDien(e.target.value), placeholder: "t\xFA \u0111ao ai = T\xFA \u0110\xE0o AI" }), /* @__PURE__ */ shim_react_default.createElement("button", { className: nut3, onClick: luuTuDien }, "L\u01B0u t\u1EEB \u0111i\u1EC3n")), /* @__PURE__ */ shim_react_default.createElement("div", { className: "mb-2 text-[11px]" }, /* @__PURE__ */ shim_react_default.createElement("button", { className: nut3, onClick: () => setMoLoi(!moLoi) }, moLoi ? "\u1EA8n" : "C\u1EAFt l\u1EDDi theo t\u1EEB", " (", tuLoi.length, " t\u1EEB", catTay.length ? ", xo\xE1 " + catTay.length : "", ")"), moLoi ? /* @__PURE__ */ shim_react_default.createElement("div", { className: "mt-1 max-h-32 overflow-auto bg-[#0B1A2D] border border-[#2C4A73] rounded p-1 leading-6" }, tuLoi.length ? tuLoi.map((w, k) => /* @__PURE__ */ shim_react_default.createElement("span", { key: k, onClick: () => batCat(w), title: (+w.t0).toFixed(2) + " s", className: "cursor-pointer px-0.5 rounded " + (daCat(w) ? "line-through text-red-400 bg-red-900/30" : "hover:bg-[#1E3A5F]") }, w.text, " ")) : /* @__PURE__ */ shim_react_default.createElement("span", { className: "text-[#A2B2C9]" }, "Ch\u01B0a c\xF3 l\u1EDDi (ch\u1EA1y L\xE0m pro tr\u01B0\u1EDBc)")) : null, moLoi && catTay.length ? /* @__PURE__ */ shim_react_default.createElement("div", { className: "mt-1 flex flex-wrap gap-1" }, catTay.map((r, k) => /* @__PURE__ */ shim_react_default.createElement("span", { key: k, className: "px-1 rounded bg-red-900/30 text-red-300 whitespace-nowrap" }, r.tu, " ", /* @__PURE__ */ shim_react_default.createElement("button", { title: "\u0111\u1EA7u s\u1EDBm 0,05 s", onClick: () => chinhCat(k, "t0", -0.05) }, "\u25C0"), (+r.t0).toFixed(2), /* @__PURE__ */ shim_react_default.createElement("button", { title: "\u0111\u1EA7u mu\u1ED9n 0,05 s", onClick: () => chinhCat(k, "t0", 0.05) }, "\u25B6"), "\u2013", /* @__PURE__ */ shim_react_default.createElement("button", { title: "cu\u1ED1i s\u1EDBm 0,05 s", onClick: () => chinhCat(k, "t1", -0.05) }, "\u25C0"), (+r.t1).toFixed(2), /* @__PURE__ */ shim_react_default.createElement("button", { title: "cu\u1ED1i mu\u1ED9n 0,05 s", onClick: () => chinhCat(k, "t1", 0.05) }, "\u25B6"), " ", /* @__PURE__ */ shim_react_default.createElement("button", { className: "font-bold", title: "nghe th\u1EED ch\u1ED7 c\u1EAFt (1,2 s tr\u01B0\u1EDBc + 1,2 s sau)", onClick: () => ngheCat(r.t0, r.t1) }, "\u{1F50A}")))) : null), chonAnh ? /* @__PURE__ */ shim_react_default.createElement("div", { className: "fixed inset-0 z-50 bg-black/70 flex items-center justify-center", onClick: () => setChonAnh("") }, /* @__PURE__ */ shim_react_default.createElement("div", { className: "bg-[#0F2236] border border-[#2C4A73] rounded-xl p-3 max-w-[92%] max-h-[80vh] overflow-auto", onClick: (ev) => ev.stopPropagation() }, /* @__PURE__ */ shim_react_default.createElement("div", { className: "text-[12px] mb-2 font-bold" }, "Ch\u1ECDn \u1EA3nh tr\xE1m cho c\u1EA3nh \u2014 b\u1EA5m v\xE0o \u1EA3nh (T\u1EA3i \u1EA3nh/clip v\xE0o kho \u0111\u1EC3 th\xEAm \u1EA3nh c\u1EE7a anh)"), /* @__PURE__ */ shim_react_default.createElement("div", { className: "flex flex-wrap gap-2" }, dsTenTaiSan().filter((t) => /^(anh|trang|vat|video|clip):/.test(t)).map((t) => /* @__PURE__ */ shim_react_default.createElement("button", { key: t, title: t, className: "rounded overflow-hidden border border-[#2C4A73] hover:border-[#F6D178] bg-[#0B1A2D]", onClick: () => {
21900
+ dat(chonAnh, "ten", t);
21901
+ setChonAnh("");
21902
+ } }, thumb(t) ? /* @__PURE__ */ shim_react_default.createElement("img", { src: thumb(t), className: "w-[72px] h-[128px] object-cover" }) : /* @__PURE__ */ shim_react_default.createElement("div", { className: "w-[72px] h-[128px] text-[9px] p-1 break-all" }, t), /* @__PURE__ */ shim_react_default.createElement("div", { className: "text-[9px] w-[72px] truncate px-1" }, t.replace(/^[a-z]+:/, ""))))))) : null, /* @__PURE__ */ shim_react_default.createElement("datalist", { id: "xvai-kho-anh" }, dsTenTaiSan().map((t) => /* @__PURE__ */ shim_react_default.createElement("option", { key: t, value: t }))), /* @__PURE__ */ shim_react_default.createElement("datalist", { id: "xvai-icon" }, [["tich", "d\u1EA5u t\xEDch"], ["sao", "ng\xF4i sao"], ["tim", "tr\xE1i tim"], ["xu", "\u0111\u1ED3ng xu / ti\u1EC1n"], ["dongho", "\u0111\u1ED3ng h\u1ED3"], ["luu", "l\u01B0u / \u0111\xE1nh d\u1EA5u"], ["canh", "c\u1EA3nh b\xE1o"], ["bieu", "bi\u1EC3u \u0111\u1ED3"], ["lua", "ng\u1ECDn l\u1EEDa"], ["tenlua", "t\xEAn l\u1EEDa"], ["bongden", "b\xF3ng \u0111\xE8n \xFD t\u01B0\u1EDFng"], ["qua", "h\u1ED9p qu\xE0"], ["giohang", "gi\u1ECF h\xE0ng"], ["nha", "ng\xF4i nh\xE0"], ["sach", "quy\u1EC3n s\xE1ch"], ["dienthoai", "\u0111i\u1EC7n tho\u1EA1i"], ["cup", "c\xFAp"], ["khien", "khi\xEAn"], ["la", "chi\u1EBFc l\xE1"], ["giot", "gi\u1ECDt n\u01B0\u1EDBc"], ["kinhlup", "k\xEDnh l\xFAp"], ["sai", "d\u1EA5u sai"], ["chuot", "con tr\u1ECF chu\u1ED9t"], ["none", "kh\xF4ng icon"]].map(([v, n]) => /* @__PURE__ */ shim_react_default.createElement("option", { key: v, value: v }, n))), /* @__PURE__ */ shim_react_default.createElement("div", { className: "max-h-[60vh] overflow-auto" }, /* @__PURE__ */ shim_react_default.createElement("table", { className: "w-full text-[11px]" }, /* @__PURE__ */ shim_react_default.createElement("thead", null, /* @__PURE__ */ shim_react_default.createElement("tr", { className: "text-[#A2B2C9]" }, /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "#"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "khung"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "gi\xE2y"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "b\u1ED1 c\u1EE5c"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "\u0111\u1EA7u/d\xE0i (s)"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "ch\u1EEF nh\u1EA5n"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "y / c\u1EE1"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "ch\u1EEF ph\u1EE5"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "icon"), /* @__PURE__ */ shim_react_default.createElement("th", { className: "text-left" }, "\u1EA3nh (t\xEAn kho)"), /* @__PURE__ */ shim_react_default.createElement("th", null, "fx"), /* @__PURE__ */ shim_react_default.createElement("th", null, "xo\xE1"))), /* @__PURE__ */ shim_react_default.createElement("tbody", null, ds2.map((s) => {
21868
21903
  const e = sua[s.id] || sua[s.i] || {};
21869
21904
  const v = (k) => (typeof e[k] === "string" ? e[k] : s[k]) || "";
21870
- return /* @__PURE__ */ shim_react_default.createElement("tr", { key: s.id || s.i, className: e.xoa ? "opacity-40" : s.khoa ? "bg-[#1E3A5F]/40" : "" }, /* @__PURE__ */ shim_react_default.createElement("td", null, s.i), /* @__PURE__ */ shim_react_default.createElement("td", null, khung[(+s.f).toFixed(1)] ? /* @__PURE__ */ shim_react_default.createElement("img", { src: khung[(+s.f).toFixed(1)], width: 45, height: 80, className: "rounded cursor-zoom-in", onClick: () => setKhungTo(khung[(+s.f).toFixed(1)]) }) : /* @__PURE__ */ shim_react_default.createElement("span", { className: "text-[#A2B2C9]" }, "\u2026")), /* @__PURE__ */ shim_react_default.createElement("td", null, s.f.toFixed(1), "\u2013", (s.f + s.d).toFixed(1)), /* @__PURE__ */ shim_react_default.createElement("td", null, s.bo), /* @__PURE__ */ shim_react_default.createElement("td", { className: "whitespace-nowrap" }, /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-12 bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", value: typeof e.f === "number" ? e.f : s.f, onChange: (ev) => dat(s.id || String(s.i), "f", +ev.target.value), type: "number", step: "0.1" }), " ", /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-12 bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", value: typeof e.d === "number" ? e.d : s.d, onChange: (ev) => dat(s.id || String(s.i), "d", +ev.target.value), type: "number", step: "0.1", min: "0.4" })), /* @__PURE__ */ shim_react_default.createElement("td", null, /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-full bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", value: v(/^(anh|chia)$/.test(s.bo) && !s.giant ? "chu" : "giant"), onChange: (ev) => dat(s.id || String(s.i), /^(anh|chia)$/.test(s.bo) && !s.giant ? "chu" : "giant", ev.target.value) })), /* @__PURE__ */ shim_react_default.createElement("td", { className: "whitespace-nowrap" }, /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-12 bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", type: "number", step: "0.02", min: "0.05", max: "0.6", placeholder: "y", value: typeof e.yChu === "number" ? e.yChu : s.yChu ?? "", onChange: (ev) => dat(s.id || String(s.i), "yChu", +ev.target.value), title: "v\u1ECB tr\xED ch\u1EEF nh\u1EA5n (0,05 tr\xEAn \u2013 0,6 d\u01B0\u1EDBi)" }), " ", /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-12 bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", type: "number", step: "0.1", min: "0.5", max: "1.6", placeholder: "\xD71", value: typeof e.coChu === "number" ? e.coChu : s.coChu ?? "", onChange: (ev) => dat(s.id || String(s.i), "coChu", +ev.target.value), title: "c\u1EE1 ch\u1EEF nh\u1EA5n \xD70,5\u20131,6" })), /* @__PURE__ */ shim_react_default.createElement("td", null, /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-full bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", value: v("chu2") || (/^(anh|chia)$/.test(s.bo) && !s.giant ? "" : v("chu")), onChange: (ev) => dat(s.id || String(s.i), s.chu2 || !s.chu || /^(anh|chia)$/.test(s.bo) && !s.giant ? "chu2" : "chu", ev.target.value) })), /* @__PURE__ */ shim_react_default.createElement("td", null, /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-20 bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", list: "xvai-icon", value: v("st"), onChange: (ev) => dat(s.id || String(s.i), "st", ev.target.value), placeholder: "ch\u1ECDn icon\u2026" }), " ", /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-10 bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", type: "number", step: "0.05", min: "0.05", max: "0.95", placeholder: "x", title: "v\u1ECB tr\xED icon ngang 0,05\u20130,95", value: typeof e.stX === "number" ? e.stX : s.stX ?? "", onChange: (ev) => dat(s.id || String(s.i), "stX", +ev.target.value) }), /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-10 bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", type: "number", step: "0.05", min: "0.05", max: "0.95", placeholder: "y", title: "v\u1ECB tr\xED icon d\u1ECDc", value: typeof e.stY === "number" ? e.stY : s.stY ?? "", onChange: (ev) => dat(s.id || String(s.i), "stY", +ev.target.value) })), /* @__PURE__ */ shim_react_default.createElement("td", null, /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-24 bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", list: "xvai-kho-anh", value: v("ten"), onChange: (ev) => dat(s.id || String(s.i), "ten", ev.target.value), placeholder: "trang:\u2026 / anh:\u2026" })), /* @__PURE__ */ shim_react_default.createElement("td", { className: "text-center" }, /* @__PURE__ */ shim_react_default.createElement("button", { className: nut3 + (Object.keys(fxCua(s)).length ? " bg-[#F6D178] text-[#122238]" : ""), onClick: () => setFxMo(fxMo === (s.id || String(s.i)) ? "" : s.id || String(s.i)) }, "fx"), fxMo === (s.id || String(s.i)) ? /* @__PURE__ */ shim_react_default.createElement("div", { className: "absolute z-40 bg-[#0B1A2D] border border-[#F6D178] rounded p-2 text-[11px] w-56 text-left", onClick: (ev) => ev.stopPropagation() }, [["sang", "s\xE1ng", 0.5, 1.6, 1], ["tuongPhan", "t\u01B0\u01A1ng ph\u1EA3n", 0.5, 1.6, 1], ["baoHoa", "t\u01B0\u01A1i", 0, 1.8, 1], ["am", "\u1EA5m", 0, 0.6, 0], ["mo", "m\u1EDD (px)", 0, 10, 0], ["xam", "\u0111en tr\u1EAFng", 0, 1, 0]].map((r) => /* @__PURE__ */ shim_react_default.createElement("label", { key: r[0], className: "flex items-center gap-1" }, r[1], " ", /* @__PURE__ */ shim_react_default.createElement("input", { type: "range", min: r[2], max: r[3], step: r[0] === "mo" ? 0.5 : 0.05, value: fxCua(s)[r[0]] ?? r[4], onChange: (ev) => datFxCanh(s, r[0], +ev.target.value), className: "flex-1" }), " ", (+(fxCua(s)[r[0]] ?? r[4])).toFixed(2))), /* @__PURE__ */ shim_react_default.createElement("div", { className: "flex gap-1 mt-1" }, /* @__PURE__ */ shim_react_default.createElement("button", { className: nut3, onClick: () => {
21905
+ return /* @__PURE__ */ shim_react_default.createElement("tr", { key: s.id || s.i, className: e.xoa ? "opacity-40" : s.khoa ? "bg-[#1E3A5F]/40" : "" }, /* @__PURE__ */ shim_react_default.createElement("td", null, s.i), /* @__PURE__ */ shim_react_default.createElement("td", null, khung[(+s.f).toFixed(1)] ? /* @__PURE__ */ shim_react_default.createElement("img", { src: khung[(+s.f).toFixed(1)], width: 45, height: 80, className: "rounded cursor-zoom-in", onClick: () => setKhungTo(khung[(+s.f).toFixed(1)]) }) : /* @__PURE__ */ shim_react_default.createElement("span", { className: "text-[#A2B2C9]" }, "\u2026")), /* @__PURE__ */ shim_react_default.createElement("td", null, s.f.toFixed(1), "\u2013", (s.f + s.d).toFixed(1)), /* @__PURE__ */ shim_react_default.createElement("td", null, s.bo), /* @__PURE__ */ shim_react_default.createElement("td", { className: "whitespace-nowrap" }, /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-12 bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", value: typeof e.f === "number" ? e.f : s.f, onChange: (ev) => dat(s.id || String(s.i), "f", +ev.target.value), type: "number", step: "0.1" }), " ", /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-12 bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", value: typeof e.d === "number" ? e.d : s.d, onChange: (ev) => dat(s.id || String(s.i), "d", +ev.target.value), type: "number", step: "0.1", min: "0.4" })), /* @__PURE__ */ shim_react_default.createElement("td", null, /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-full bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", value: v(/^(anh|chia)$/.test(s.bo) && !s.giant ? "chu" : "giant"), onChange: (ev) => dat(s.id || String(s.i), /^(anh|chia)$/.test(s.bo) && !s.giant ? "chu" : "giant", ev.target.value) })), /* @__PURE__ */ shim_react_default.createElement("td", { className: "whitespace-nowrap" }, /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-12 bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", type: "number", step: "0.02", min: "0.05", max: "0.6", placeholder: "y", value: typeof e.yChu === "number" ? e.yChu : s.yChu ?? "", onChange: (ev) => dat(s.id || String(s.i), "yChu", +ev.target.value), title: "v\u1ECB tr\xED ch\u1EEF nh\u1EA5n (0,05 tr\xEAn \u2013 0,6 d\u01B0\u1EDBi)" }), " ", /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-12 bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", type: "number", step: "0.1", min: "0.5", max: "1.6", placeholder: "\xD71", value: typeof e.coChu === "number" ? e.coChu : s.coChu ?? "", onChange: (ev) => dat(s.id || String(s.i), "coChu", +ev.target.value), title: "c\u1EE1 ch\u1EEF nh\u1EA5n \xD70,5\u20131,6" })), /* @__PURE__ */ shim_react_default.createElement("td", null, /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-full bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", value: v("chu2") || (/^(anh|chia)$/.test(s.bo) && !s.giant ? "" : v("chu")), onChange: (ev) => dat(s.id || String(s.i), s.chu2 || !s.chu || /^(anh|chia)$/.test(s.bo) && !s.giant ? "chu2" : "chu", ev.target.value) })), /* @__PURE__ */ shim_react_default.createElement("td", null, /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-20 bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", list: "xvai-icon", value: v("st"), onChange: (ev) => dat(s.id || String(s.i), "st", ev.target.value), placeholder: "ch\u1ECDn icon\u2026" }), " ", /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-10 bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", type: "number", step: "0.05", min: "0.05", max: "0.95", placeholder: "x", title: "v\u1ECB tr\xED icon ngang 0,05\u20130,95", value: typeof e.stX === "number" ? e.stX : s.stX ?? "", onChange: (ev) => dat(s.id || String(s.i), "stX", +ev.target.value) }), /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-10 bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", type: "number", step: "0.05", min: "0.05", max: "0.95", placeholder: "y", title: "v\u1ECB tr\xED icon d\u1ECDc", value: typeof e.stY === "number" ? e.stY : s.stY ?? "", onChange: (ev) => dat(s.id || String(s.i), "stY", +ev.target.value) })), /* @__PURE__ */ shim_react_default.createElement("td", null, /* @__PURE__ */ shim_react_default.createElement("input", { className: "w-24 bg-[#0B1A2D] border border-[#2C4A73] rounded px-1", list: "xvai-kho-anh", value: v("ten"), onChange: (ev) => dat(s.id || String(s.i), "ten", ev.target.value), placeholder: "trang:\u2026 / anh:\u2026" }), /* @__PURE__ */ shim_react_default.createElement("button", { className: nut3 + " ml-1", title: "ch\u1ECDn \u1EA3nh t\u1EEB kho b\u1EB1ng l\u01B0\u1EDBi \u1EA3nh", onClick: () => setChonAnh(s.id || String(s.i)) }, "\u25A6")), /* @__PURE__ */ shim_react_default.createElement("td", { className: "text-center" }, /* @__PURE__ */ shim_react_default.createElement("button", { className: nut3 + (Object.keys(fxCua(s)).length ? " bg-[#F6D178] text-[#122238]" : ""), onClick: () => setFxMo(fxMo === (s.id || String(s.i)) ? "" : s.id || String(s.i)) }, "fx"), fxMo === (s.id || String(s.i)) ? /* @__PURE__ */ shim_react_default.createElement("div", { className: "absolute z-40 bg-[#0B1A2D] border border-[#F6D178] rounded p-2 text-[11px] w-56 text-left", onClick: (ev) => ev.stopPropagation() }, [["sang", "s\xE1ng", 0.5, 1.6, 1], ["tuongPhan", "t\u01B0\u01A1ng ph\u1EA3n", 0.5, 1.6, 1], ["baoHoa", "t\u01B0\u01A1i", 0, 1.8, 1], ["am", "\u1EA5m", 0, 0.6, 0], ["mo", "m\u1EDD (px)", 0, 10, 0], ["xam", "\u0111en tr\u1EAFng", 0, 1, 0]].map((r) => /* @__PURE__ */ shim_react_default.createElement("label", { key: r[0], className: "flex items-center gap-1" }, r[1], " ", /* @__PURE__ */ shim_react_default.createElement("input", { type: "range", min: r[2], max: r[3], step: r[0] === "mo" ? 0.5 : 0.05, value: fxCua(s)[r[0]] ?? r[4], onChange: (ev) => datFxCanh(s, r[0], +ev.target.value), className: "flex-1" }), " ", (+(fxCua(s)[r[0]] ?? r[4])).toFixed(2))), /* @__PURE__ */ shim_react_default.createElement("div", { className: "flex gap-1 mt-1" }, /* @__PURE__ */ shim_react_default.createElement("button", { className: nut3, onClick: () => {
21871
21906
  dat(s.id || String(s.i), "fx", {});
21872
21907
  } }, "V\u1EC1 g\u1ED1c"), /* @__PURE__ */ shim_react_default.createElement("button", { className: nut3, onClick: () => setFxMo("") }, "\u0110\xF3ng"))) : null), /* @__PURE__ */ shim_react_default.createElement("td", { className: "text-center" }, /* @__PURE__ */ shim_react_default.createElement("input", { type: "checkbox", checked: !!e.xoa, onChange: (ev) => dat(s.id || String(s.i), "xoa", ev.target.checked ? 1 : 0) }), " ", sua[s.id] || sua[s.i] ? /* @__PURE__ */ shim_react_default.createElement("button", { className: nut3, title: "AI l\xE0m l\u1EA1i c\u1EA3nh n\xE0y (b\u1ECF s\u1EEDa tay)", onClick: () => boSuaCanh(s) }, "\u21BA") : null));
21873
21908
  })))), khungTo ? /* @__PURE__ */ shim_react_default.createElement("div", { className: "fixed inset-0 bg-black/70 flex items-center justify-center z-50", onClick: () => setKhungTo("") }, /* @__PURE__ */ shim_react_default.createElement("img", { src: khungTo, style: { height: "80vh" }, className: "rounded" })) : null, /* @__PURE__ */ shim_react_default.createElement("div", { className: "text-[#A2B2C9] mt-2" }, "Ch\u1EEF nh\u1EA5n xu\u1ED1ng d\xF2ng: g\xF5 \\n. Icon: tich, luu, chuot, sao, tim, dong-ho\u2026 (t\xEAn trong veSticker). S\u1EEDa xong b\u1EA5m V\u1EBD l\u1EA1i (~2\u20135 ph\xFAt)."));
@@ -21898,7 +21933,7 @@ var Vo = () => {
21898
21933
  window.__loiApp = { p, ex, b, phienBan: PHIEN_BAN };
21899
21934
  const [hienSua, setHienSua] = useState(false);
21900
21935
  const dangXuat = !!(ex && !ex.error && ex.percent < 100) && !window.__loiHienUI;
21901
- return /* @__PURE__ */ shim_react_default.createElement("div", { className: "min-h-screen bg-[#0B1A2D] text-[#E6EEF8]" }, /* @__PURE__ */ shim_react_default.createElement("div", { className: "sticky top-0 z-40 h-12 bg-[#0B1A2D]/95 backdrop-blur border-b border-[#2C4A73] px-4 flex items-center gap-3" }, /* @__PURE__ */ shim_react_default.createElement("span", { className: "text-[13px] font-black text-[#F6D178] whitespace-nowrap" }, "EDIT VIDEO T\u1EF0 \u0110\u1ED8NG \xB7 L\xD5I M\u1EDAI"), /* @__PURE__ */ shim_react_default.createElement("span", { className: "text-[11px] text-[#A2B2C9] truncate flex-1 min-w-0" }, PHIEN_BAN, " \xB7 ", p.name || "D\u1EF1 \xE1n m\u1EDBi", " \xB7 ", p.timeline ? p.timeline.length : 0, " \u0111o\u1EA1n"), /* @__PURE__ */ shim_react_default.createElement("button", { className: nut4 + (hienSua ? " ring-2 ring-[#F6D178]" : ""), onClick: () => setHienSua((v) => !v) }, "S\u1EEDa l\u1ECBch"), /* @__PURE__ */ shim_react_default.createElement("button", { className: nut4, onClick: () => handleExportProject(p, toast), disabled: !p.scenes || !p.scenes.length }, "L\u01B0u d\u1EF1 \xE1n"), /* @__PURE__ */ shim_react_default.createElement("button", { className: nut4, onClick: () => doi(TRONG()) }, "D\u1EF1 \xE1n m\u1EDBi"), /* @__PURE__ */ shim_react_default.createElement("button", { className: nut4, onClick: () => window.__loiTat && window.__loiTat() }, "V\u1EC1 tool c\u0169")), bao && /* @__PURE__ */ shim_react_default.createElement("div", { className: "max-w-6xl mx-auto px-8 pt-3 text-[12px] text-[#F6D178]" }, bao), hienSua && /* @__PURE__ */ shim_react_default.createElement("div", { className: "max-w-6xl mx-auto px-8 pt-3" }, /* @__PURE__ */ shim_react_default.createElement(SuaLich, { ten: String(p.name || "du-an"), onDong: () => setHienSua(false) })), dangXuat && /* @__PURE__ */ shim_react_default.createElement("div", { className: "max-w-6xl mx-auto px-8 pt-6 text-[13px] text-[#E6EEF8]" }, /* @__PURE__ */ shim_react_default.createElement("div", { className: "rounded-xl border border-[#2C4A73] p-4" }, /* @__PURE__ */ shim_react_default.createElement("div", { className: "font-black text-[#F6D178]" }, "\u0110ANG D\u1EF0NG PHIM\u2026 ", ex && ex.percent > 0 ? Math.round(ex.percent) + "%" : ""), /* @__PURE__ */ shim_react_default.createElement("div", { className: "mt-1 text-[12px] text-[#A2B2C9] break-words" }, String(ex && ex.step || "")), /* @__PURE__ */ shim_react_default.createElement("div", { className: "mt-2 text-[11px] text-[#A2B2C9]" }, "Giao di\u1EC7n t\u1EA1m \u1EA9n \u0111\u1EC3 d\u1EF1ng nhanh h\u01A1n (\u0111o 09/10: nhanh ~5\xD7). C\xF3 th\u1EC3 chuy\u1EC3n tab kh\xE1c, \u0111\u1EEBng t\u1EA3i l\u1EA1i trang."))), /* @__PURE__ */ shim_react_default.createElement("div", { className: "max-w-6xl mx-auto w-full p-6", style: dangXuat ? { display: "none" } : void 0 }, /* @__PURE__ */ shim_react_default.createElement(StudioEdit, { project: p, setProject: setP, exporting: ex, blob: b, onExport: xuat, onDownload: tai, onOpenVoice: () => toast("Gi\u1ECDng \u0111\u1ECDc AI: d\xF9ng tool c\u0169") })));
21936
+ return /* @__PURE__ */ shim_react_default.createElement("div", { className: "min-h-screen bg-[#0B1A2D] text-[#E6EEF8]" }, /* @__PURE__ */ shim_react_default.createElement("div", { className: "sticky top-0 z-40 h-12 bg-[#0B1A2D]/95 backdrop-blur border-b border-[#2C4A73] px-4 flex items-center gap-3" }, /* @__PURE__ */ shim_react_default.createElement("span", { className: "text-[13px] font-black text-[#F6D178] whitespace-nowrap" }, "EDIT VIDEO T\u1EF0 \u0110\u1ED8NG \xB7 L\xD5I M\u1EDAI"), /* @__PURE__ */ shim_react_default.createElement("span", { className: "text-[11px] text-[#A2B2C9] truncate flex-1 min-w-0" }, PHIEN_BAN, " \xB7 ", p.name || "D\u1EF1 \xE1n m\u1EDBi", " \xB7 ", p.timeline ? p.timeline.length : 0, " \u0111o\u1EA1n"), /* @__PURE__ */ shim_react_default.createElement("button", { className: nut4 + (hienSua ? " ring-2 ring-[#F6D178]" : ""), onClick: () => setHienSua((v) => !v) }, "S\u1EEDa l\u1ECBch"), /* @__PURE__ */ shim_react_default.createElement("button", { className: nut4, onClick: () => handleExportProject(p, toast), disabled: !p.scenes || !p.scenes.length }, "L\u01B0u d\u1EF1 \xE1n"), /* @__PURE__ */ shim_react_default.createElement("button", { className: nut4, onClick: () => doi(TRONG()) }, "D\u1EF1 \xE1n m\u1EDBi")), bao && /* @__PURE__ */ shim_react_default.createElement("div", { className: "max-w-6xl mx-auto px-8 pt-3 text-[12px] text-[#F6D178]" }, bao), hienSua && /* @__PURE__ */ shim_react_default.createElement("div", { className: "max-w-6xl mx-auto px-8 pt-3" }, /* @__PURE__ */ shim_react_default.createElement(SuaLich, { ten: String(p.name || "du-an"), onDong: () => setHienSua(false) })), dangXuat && /* @__PURE__ */ shim_react_default.createElement("div", { className: "max-w-6xl mx-auto px-8 pt-6 text-[13px] text-[#E6EEF8]" }, /* @__PURE__ */ shim_react_default.createElement("div", { className: "rounded-xl border border-[#2C4A73] p-4" }, /* @__PURE__ */ shim_react_default.createElement("div", { className: "font-black text-[#F6D178]" }, "\u0110ANG D\u1EF0NG PHIM\u2026 ", ex && ex.percent > 0 ? Math.round(ex.percent) + "%" : ""), /* @__PURE__ */ shim_react_default.createElement("div", { className: "mt-1 text-[12px] text-[#A2B2C9] break-words" }, String(ex && ex.step || "")), /* @__PURE__ */ shim_react_default.createElement("div", { className: "mt-2 text-[11px] text-[#A2B2C9]" }, "Giao di\u1EC7n t\u1EA1m \u1EA9n \u0111\u1EC3 d\u1EF1ng nhanh h\u01A1n (\u0111o 09/10: nhanh ~5\xD7). C\xF3 th\u1EC3 chuy\u1EC3n tab kh\xE1c, \u0111\u1EEBng t\u1EA3i l\u1EA1i trang."))), /* @__PURE__ */ shim_react_default.createElement("div", { className: "max-w-6xl mx-auto w-full p-6", style: dangXuat ? { display: "none" } : void 0 }, /* @__PURE__ */ shim_react_default.createElement(StudioEdit, { project: p, setProject: setP, exporting: ex, blob: b, onExport: xuat, onDownload: tai, onOpenVoice: () => toast("Gi\u1ECDng \u0111\u1ECDc AI: ch\u01B0a c\xF3 trong b\u1EA3n edit") })));
21902
21937
  };
21903
21938
  async function giuThuc() {
21904
21939
  const W4 = window;
@@ -1,22 +0,0 @@
1
-
2
-
3
- Interface Sounds (1.0)
4
-
5
- Created/distributed by Kenney (www.kenney.nl)
6
- Creation date: 11-02-2020
7
-
8
- ------------------------------
9
-
10
- License: (Creative Commons Zero, CC0)
11
- http://creativecommons.org/publicdomain/zero/1.0/
12
-
13
- This content is free to use in personal, educational and commercial projects.
14
- Support us by crediting Kenney or www.kenney.nl (this is not mandatory)
15
-
16
- ------------------------------
17
-
18
- Donate: http://support.kenney.nl
19
- Patreon: http://patreon.com/kenney/
20
-
21
- Follow on Twitter for updates:
22
- http://twitter.com/KenneyNL
package/sfx/bong_001.ogg DELETED
Binary file
package/sfx/click_001.ogg DELETED
Binary file
package/sfx/click_002.ogg DELETED
Binary file
package/sfx/click_003.ogg DELETED
Binary file
package/sfx/click_004.ogg DELETED
Binary file
package/sfx/click_005.ogg DELETED
Binary file
Binary file
Binary file
Binary file
Binary file
package/sfx/drop_001.ogg DELETED
Binary file
package/sfx/drop_002.ogg DELETED
Binary file
package/sfx/drop_003.ogg DELETED
Binary file
package/sfx/drop_004.ogg DELETED
Binary file
package/sfx/glass_001.ogg DELETED
Binary file
package/sfx/glass_002.ogg DELETED
Binary file
package/sfx/glass_003.ogg DELETED
Binary file
package/sfx/glass_004.ogg DELETED
Binary file
package/sfx/glass_005.ogg DELETED
Binary file
package/sfx/glass_006.ogg DELETED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/sfx/pluck_001.ogg DELETED
Binary file
package/sfx/pluck_002.ogg DELETED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/sfx/tick_001.ogg DELETED
Binary file
package/sfx/tick_002.ogg DELETED
Binary file
package/sfx/tick_004.ogg DELETED
Binary file