@kieransimkin/dancemoves 3.0.3 → 3.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -3
- package/docs/README.md +3 -3
- package/docs/api/effects.md +44 -7
- package/docs/api/javascript.md +8 -3
- package/docs/api/styling.md +23 -2
- package/docs/guide.md +7 -1
- package/docs/javascript-api.md +5 -3
- package/docs/releasing-shared.md +7 -6
- package/docs/shared-feature-coverage.md +2 -2
- package/docs/shared-runtime-migration.md +1 -1
- package/docs/wordpress-shared-runtime.md +11 -1
- package/lib/build-manifest.json +15 -15
- package/lib/dancemoves.css +1 -1
- package/lib/dancemoves.min.js +3 -3
- package/lib/index.cjs +334 -5
- package/lib/index.d.ts +6 -1
- package/lib/index.mjs +334 -5
- package/lib/styles/dance-moves-core.css +1 -1
- package/lib/wordpress.js +3 -3
- package/package.json +1 -1
package/lib/index.mjs
CHANGED
|
@@ -505,6 +505,17 @@ function install(__dmScope) {
|
|
|
505
505
|
};
|
|
506
506
|
}
|
|
507
507
|
function dispatchLyric(entry, audio, index) {
|
|
508
|
+
var previousVisibleIndex = -1;
|
|
509
|
+
var previousVisibleEntry = null;
|
|
510
|
+
if (Number.isFinite(index)) {
|
|
511
|
+
for (var previousCursor = index - 1; previousCursor >= 0; previousCursor -= 1) {
|
|
512
|
+
if (String(lyricList[previousCursor].text || "").trim()) {
|
|
513
|
+
previousVisibleIndex = previousCursor;
|
|
514
|
+
previousVisibleEntry = lyricList[previousCursor];
|
|
515
|
+
break;
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
}
|
|
508
519
|
var nextIndex = Number.isFinite(index) && index + 1 < lyricList.length ? index + 1 : -1;
|
|
509
520
|
var nextEntry = nextIndex >= 0 ? lyricList[nextIndex] : null;
|
|
510
521
|
var nextVisibleIndex = -1;
|
|
@@ -524,6 +535,10 @@ function install(__dmScope) {
|
|
|
524
535
|
text: entry ? entry.text : "",
|
|
525
536
|
normalisedText: entry ? entry.normalisedText : "",
|
|
526
537
|
index: Number.isFinite(index) ? index : -1,
|
|
538
|
+
previousVisibleTime: previousVisibleEntry ? previousVisibleEntry.time : null,
|
|
539
|
+
previousVisibleText: previousVisibleEntry ? previousVisibleEntry.text : "",
|
|
540
|
+
previousVisibleNormalisedText: previousVisibleEntry ? previousVisibleEntry.normalisedText : "",
|
|
541
|
+
previousVisibleIndex,
|
|
527
542
|
nextTime: nextEntry ? nextEntry.time : null,
|
|
528
543
|
nextText: nextEntry ? nextEntry.text : "",
|
|
529
544
|
nextNormalisedText: nextEntry ? nextEntry.normalisedText : "",
|
|
@@ -597,6 +612,7 @@ function install(__dmScope) {
|
|
|
597
612
|
__dmScope.dataset(this.element, "danceMovesLyricState", "idle");
|
|
598
613
|
}
|
|
599
614
|
};
|
|
615
|
+
document2.dispatchEvent(new CustomEvent("dance-moves-lyric-ready", { bubbles: true, detail: { element: container } }));
|
|
600
616
|
return lyricRenderer;
|
|
601
617
|
}
|
|
602
618
|
function callHandlers(key, detail) {
|
|
@@ -1345,6 +1361,317 @@ function install2(__dmScope) {
|
|
|
1345
1361
|
}
|
|
1346
1362
|
}));
|
|
1347
1363
|
}
|
|
1364
|
+
function lyricStage(options) {
|
|
1365
|
+
options = options || {};
|
|
1366
|
+
var state = commonState(options, "lyric-stage");
|
|
1367
|
+
var audio = element(options.audio, state.root.querySelector("audio"));
|
|
1368
|
+
var popover = element(options.popover, document2.querySelector(".dance-moves-lyric-popover"));
|
|
1369
|
+
if (!audio)
|
|
1370
|
+
throw new Error("DanceMovesEffects lyricStage requires an audio element");
|
|
1371
|
+
if (!popover) {
|
|
1372
|
+
let mountWhenReady = function() {
|
|
1373
|
+
if (!pending || !document2.querySelector(".dance-moves-lyric-popover"))
|
|
1374
|
+
return;
|
|
1375
|
+
pending = false;
|
|
1376
|
+
state.removers.splice(0).forEach(function(remove) {
|
|
1377
|
+
remove();
|
|
1378
|
+
});
|
|
1379
|
+
lyricStage(options);
|
|
1380
|
+
};
|
|
1381
|
+
var pending = true;
|
|
1382
|
+
listen(document2, "dance-moves-lyric-ready", mountWhenReady, void 0, state.removers);
|
|
1383
|
+
return register(state.id, Object.freeze({
|
|
1384
|
+
id: state.id,
|
|
1385
|
+
type: "lyric-stage-pending",
|
|
1386
|
+
snapshot: function() {
|
|
1387
|
+
return { id: state.id, type: "lyric-stage-pending", phase: "waiting-for-popover" };
|
|
1388
|
+
},
|
|
1389
|
+
teardown: function() {
|
|
1390
|
+
pending = false;
|
|
1391
|
+
state.removers.splice(0).forEach(function(remove) {
|
|
1392
|
+
remove();
|
|
1393
|
+
});
|
|
1394
|
+
instances.delete(state.id);
|
|
1395
|
+
}
|
|
1396
|
+
}));
|
|
1397
|
+
}
|
|
1398
|
+
var current = popover.querySelector(".dance-moves-lyric-popover__text");
|
|
1399
|
+
if (!current)
|
|
1400
|
+
throw new Error("DanceMovesEffects lyricStage requires the DanceMoves current lyric element");
|
|
1401
|
+
var viewport = document2.createElement("div");
|
|
1402
|
+
var track = document2.createElement("div");
|
|
1403
|
+
var previous = document2.createElement("span");
|
|
1404
|
+
var next = document2.createElement("span");
|
|
1405
|
+
viewport.className = "dance-moves-lyric-stage__viewport";
|
|
1406
|
+
track.className = "dance-moves-lyric-stage__track";
|
|
1407
|
+
previous.className = "dance-moves-lyric-stage__line dance-moves-lyric-stage__line--previous";
|
|
1408
|
+
current.className += " dance-moves-lyric-stage__line dance-moves-lyric-stage__line--current";
|
|
1409
|
+
next.className = "dance-moves-lyric-stage__line dance-moves-lyric-stage__line--next";
|
|
1410
|
+
__dmScope.dataset(previous, "danceMovesLyricSlot", "previous");
|
|
1411
|
+
__dmScope.dataset(current, "danceMovesLyricSlot", "current");
|
|
1412
|
+
__dmScope.dataset(next, "danceMovesLyricSlot", "next");
|
|
1413
|
+
track.appendChild(previous);
|
|
1414
|
+
track.appendChild(current);
|
|
1415
|
+
track.appendChild(next);
|
|
1416
|
+
viewport.appendChild(track);
|
|
1417
|
+
popover.appendChild(viewport);
|
|
1418
|
+
__dmScope.dataset(popover, "danceMovesLyricStage", "ready");
|
|
1419
|
+
__dmScope.setStyle(popover.style, "--dance-moves-lyric-progress", "0");
|
|
1420
|
+
var travelTicks = Math.max(1, Math.round(finite2(options.travelTicks, 32)));
|
|
1421
|
+
var defaultCueTicks = Math.max(1, Math.round(finite2(options.cueDurationTicks, 32)));
|
|
1422
|
+
var latest = null, phase = "idle", progress = 0, frame = 0, wakeTimer = 0, cueTimer = 0, cueCleanup = null, cueCount = 0;
|
|
1423
|
+
var lyricEffects = [];
|
|
1424
|
+
var slots = Object.freeze({ previous, current, next, viewport, track });
|
|
1425
|
+
function safely(callback, payload, label) {
|
|
1426
|
+
if (typeof callback !== "function")
|
|
1427
|
+
return null;
|
|
1428
|
+
try {
|
|
1429
|
+
return callback(payload);
|
|
1430
|
+
} catch (error) {
|
|
1431
|
+
if (window2.console && typeof window2.console.error === "function")
|
|
1432
|
+
window2.console.error("DanceMoves " + label + " callback failed", error);
|
|
1433
|
+
}
|
|
1434
|
+
return null;
|
|
1435
|
+
}
|
|
1436
|
+
function blocked() {
|
|
1437
|
+
return document2.hidden || state.reduced.matches || state.forced.matches;
|
|
1438
|
+
}
|
|
1439
|
+
function stopClock() {
|
|
1440
|
+
if (frame)
|
|
1441
|
+
window2.cancelAnimationFrame(frame);
|
|
1442
|
+
if (wakeTimer)
|
|
1443
|
+
window2.clearTimeout(wakeTimer);
|
|
1444
|
+
frame = 0;
|
|
1445
|
+
wakeTimer = 0;
|
|
1446
|
+
}
|
|
1447
|
+
function publish(reason) {
|
|
1448
|
+
__dmScope.dataset(popover, "danceMovesLyricPhase", phase);
|
|
1449
|
+
safely(options.render, {
|
|
1450
|
+
root: state.root,
|
|
1451
|
+
popover,
|
|
1452
|
+
audio,
|
|
1453
|
+
slots,
|
|
1454
|
+
detail: latest,
|
|
1455
|
+
phase,
|
|
1456
|
+
progress,
|
|
1457
|
+
reason,
|
|
1458
|
+
playing: !audio.paused && !audio.ended && !blocked(),
|
|
1459
|
+
reducedMotion: state.reduced.matches,
|
|
1460
|
+
forcedColours: state.forced.matches
|
|
1461
|
+
}, "lyricStage render");
|
|
1462
|
+
}
|
|
1463
|
+
function setPhase(value, reason) {
|
|
1464
|
+
if (phase === value)
|
|
1465
|
+
return;
|
|
1466
|
+
phase = value;
|
|
1467
|
+
publish(reason || value);
|
|
1468
|
+
}
|
|
1469
|
+
function setProgress(value) {
|
|
1470
|
+
progress = clamp(finite2(value, 0), 0, 1);
|
|
1471
|
+
__dmScope.setStyle(popover.style, "--dance-moves-lyric-progress", progress.toFixed(5));
|
|
1472
|
+
}
|
|
1473
|
+
function copyLyrics(detail) {
|
|
1474
|
+
previous.textContent = detail ? String(detail.previousVisibleText || "") : "";
|
|
1475
|
+
current.textContent = detail ? String(detail.text || "") : "";
|
|
1476
|
+
next.textContent = detail ? String(detail.nextVisibleText || "") : "";
|
|
1477
|
+
__dmScope.dataset(previous, "danceMovesLyricIndex", detail ? String(detail.previousVisibleIndex) : "-1");
|
|
1478
|
+
__dmScope.dataset(current, "danceMovesLyricIndex", detail ? String(detail.index) : "-1");
|
|
1479
|
+
__dmScope.dataset(next, "danceMovesLyricIndex", detail ? String(detail.nextVisibleIndex) : "-1");
|
|
1480
|
+
}
|
|
1481
|
+
function scheduleLyricEffect(result) {
|
|
1482
|
+
if (!result)
|
|
1483
|
+
return;
|
|
1484
|
+
var cleanup = typeof result === "function" ? result : typeof result.cleanup === "function" ? result.cleanup : null;
|
|
1485
|
+
if (!cleanup)
|
|
1486
|
+
return;
|
|
1487
|
+
var durationTicks = result && typeof result === "object" ? Math.max(1, Math.round(finite2(result.durationTicks, 64))) : 64;
|
|
1488
|
+
var record = { cleanup, timer: 0 };
|
|
1489
|
+
record.timer = window2.setTimeout(function() {
|
|
1490
|
+
lyricEffects = lyricEffects.filter(function(item) {
|
|
1491
|
+
return item !== record;
|
|
1492
|
+
});
|
|
1493
|
+
safely(cleanup, { reason: "complete" }, "lyricStage lyric cleanup");
|
|
1494
|
+
}, motion.durationMilliseconds(durationTicks));
|
|
1495
|
+
lyricEffects.push(record);
|
|
1496
|
+
}
|
|
1497
|
+
function travelWindow() {
|
|
1498
|
+
if (!latest || !Number.isFinite(Number(latest.nextVisibleTime)))
|
|
1499
|
+
return null;
|
|
1500
|
+
var end = Number(latest.nextVisibleTime);
|
|
1501
|
+
var duration = motion.durationMilliseconds(travelTicks) / 1e3;
|
|
1502
|
+
return { start: Math.max(Number(latest.time) || 0, end - duration), end };
|
|
1503
|
+
}
|
|
1504
|
+
function tick() {
|
|
1505
|
+
frame = 0;
|
|
1506
|
+
if (audio.paused || audio.ended || blocked())
|
|
1507
|
+
return reconcile("frame-inactive");
|
|
1508
|
+
var windowRange = travelWindow();
|
|
1509
|
+
if (!windowRange) {
|
|
1510
|
+
setProgress(0);
|
|
1511
|
+
return setPhase("waiting", "no-next-line");
|
|
1512
|
+
}
|
|
1513
|
+
var now = Math.max(0, finite2(audio.currentTime, 0));
|
|
1514
|
+
if (now < windowRange.start)
|
|
1515
|
+
return reconcile("frame-before-window");
|
|
1516
|
+
if (now >= windowRange.end) {
|
|
1517
|
+
setProgress(1);
|
|
1518
|
+
return setPhase("arrived", "line-arrival");
|
|
1519
|
+
}
|
|
1520
|
+
setPhase("travelling", "travel-start");
|
|
1521
|
+
setProgress((now - windowRange.start) / Math.max(1e-3, windowRange.end - windowRange.start));
|
|
1522
|
+
frame = window2.requestAnimationFrame(tick);
|
|
1523
|
+
}
|
|
1524
|
+
function reconcile(reason) {
|
|
1525
|
+
stopClock();
|
|
1526
|
+
if (blocked()) {
|
|
1527
|
+
setProgress(0);
|
|
1528
|
+
return setPhase("inactive", reason || "inactive");
|
|
1529
|
+
}
|
|
1530
|
+
if (audio.ended) {
|
|
1531
|
+
setProgress(0);
|
|
1532
|
+
return setPhase("ended", reason || "ended");
|
|
1533
|
+
}
|
|
1534
|
+
if (audio.paused) {
|
|
1535
|
+
setProgress(0);
|
|
1536
|
+
return setPhase("paused", reason || "paused");
|
|
1537
|
+
}
|
|
1538
|
+
var windowRange = travelWindow();
|
|
1539
|
+
if (!windowRange) {
|
|
1540
|
+
setProgress(0);
|
|
1541
|
+
return setPhase("waiting", reason || "no-next-line");
|
|
1542
|
+
}
|
|
1543
|
+
var now = Math.max(0, finite2(audio.currentTime, 0));
|
|
1544
|
+
if (now >= windowRange.end) {
|
|
1545
|
+
setProgress(1);
|
|
1546
|
+
return setPhase("arrived", reason || "arrived");
|
|
1547
|
+
}
|
|
1548
|
+
if (now >= windowRange.start) {
|
|
1549
|
+
setPhase("travelling", reason || "travelling");
|
|
1550
|
+
frame = window2.requestAnimationFrame(tick);
|
|
1551
|
+
return;
|
|
1552
|
+
}
|
|
1553
|
+
setProgress(0);
|
|
1554
|
+
setPhase("waiting", reason || "waiting");
|
|
1555
|
+
wakeTimer = window2.setTimeout(function() {
|
|
1556
|
+
wakeTimer = 0;
|
|
1557
|
+
tick();
|
|
1558
|
+
}, Math.max(0, (windowRange.start - now) * 1e3 / Math.max(0.01, finite2(audio.playbackRate, 1))));
|
|
1559
|
+
}
|
|
1560
|
+
function onLyric(detail) {
|
|
1561
|
+
var previousDetail = latest;
|
|
1562
|
+
var previousText = String(current.textContent || "");
|
|
1563
|
+
latest = detail || null;
|
|
1564
|
+
copyLyrics(latest);
|
|
1565
|
+
if (!blocked() && typeof options.renderLyric === "function") {
|
|
1566
|
+
scheduleLyricEffect(safely(options.renderLyric, {
|
|
1567
|
+
root: state.root,
|
|
1568
|
+
popover,
|
|
1569
|
+
audio,
|
|
1570
|
+
slots,
|
|
1571
|
+
detail: latest,
|
|
1572
|
+
previousDetail,
|
|
1573
|
+
previousText,
|
|
1574
|
+
reducedMotion: false,
|
|
1575
|
+
forcedColours: false
|
|
1576
|
+
}, "lyricStage lyric"));
|
|
1577
|
+
}
|
|
1578
|
+
setProgress(0);
|
|
1579
|
+
publish("lyric-change");
|
|
1580
|
+
reconcile("lyric-change");
|
|
1581
|
+
}
|
|
1582
|
+
function clearCue(reason) {
|
|
1583
|
+
if (cueTimer)
|
|
1584
|
+
window2.clearTimeout(cueTimer);
|
|
1585
|
+
cueTimer = 0;
|
|
1586
|
+
if (cueCleanup)
|
|
1587
|
+
safely(cueCleanup, { reason: reason || "complete" }, "lyricStage cue cleanup");
|
|
1588
|
+
cueCleanup = null;
|
|
1589
|
+
__dmScope.dataset(state.root, "danceMovesLyricCue", reason || "idle");
|
|
1590
|
+
}
|
|
1591
|
+
function onCue(detail) {
|
|
1592
|
+
clearCue("restart");
|
|
1593
|
+
if (blocked() || typeof options.renderCue !== "function")
|
|
1594
|
+
return;
|
|
1595
|
+
cueCount += 1;
|
|
1596
|
+
__dmScope.dataset(state.root, "danceMovesLyricCue", String(detail.normalisedName || detail.name || "cue"));
|
|
1597
|
+
var result = safely(options.renderCue, {
|
|
1598
|
+
root: state.root,
|
|
1599
|
+
popover,
|
|
1600
|
+
audio,
|
|
1601
|
+
slots,
|
|
1602
|
+
detail,
|
|
1603
|
+
count: cueCount,
|
|
1604
|
+
reducedMotion: false,
|
|
1605
|
+
forcedColours: false
|
|
1606
|
+
}, "lyricStage cue");
|
|
1607
|
+
var durationTicks = defaultCueTicks;
|
|
1608
|
+
if (typeof result === "function")
|
|
1609
|
+
cueCleanup = result;
|
|
1610
|
+
else if (result && typeof result === "object") {
|
|
1611
|
+
if (typeof result.cleanup === "function")
|
|
1612
|
+
cueCleanup = result.cleanup;
|
|
1613
|
+
durationTicks = Math.max(1, Math.round(finite2(result.durationTicks, defaultCueTicks)));
|
|
1614
|
+
}
|
|
1615
|
+
cueTimer = window2.setTimeout(function() {
|
|
1616
|
+
clearCue("complete");
|
|
1617
|
+
}, motion.durationMilliseconds(durationTicks));
|
|
1618
|
+
}
|
|
1619
|
+
var unsubscribeLyric = motion.onLyric(onLyric, { id: state.id });
|
|
1620
|
+
var unsubscribeCue = motion.onCue("*", onCue, { id: state.id + ":cue" });
|
|
1621
|
+
["play", "playing", "pause", "ended", "seeking", "seeked", "ratechange", "timeupdate", "loadedmetadata"].forEach(function(name) {
|
|
1622
|
+
listen(audio, name, function() {
|
|
1623
|
+
reconcile(name);
|
|
1624
|
+
}, void 0, state.removers);
|
|
1625
|
+
});
|
|
1626
|
+
listen(document2, "visibilitychange", function() {
|
|
1627
|
+
reconcile(document2.hidden ? "hidden" : "visible");
|
|
1628
|
+
}, { passive: true }, state.removers);
|
|
1629
|
+
listen(window2, "resize", function() {
|
|
1630
|
+
publish("resize");
|
|
1631
|
+
}, { passive: true }, state.removers);
|
|
1632
|
+
listen(state.reduced, "change", function() {
|
|
1633
|
+
reconcile(state.reduced.matches ? "reduced-motion" : "motion-restored");
|
|
1634
|
+
}, void 0, state.removers);
|
|
1635
|
+
listen(state.forced, "change", function() {
|
|
1636
|
+
reconcile(state.forced.matches ? "forced-colours" : "colours-restored");
|
|
1637
|
+
}, void 0, state.removers);
|
|
1638
|
+
copyLyrics(null);
|
|
1639
|
+
publish("initial");
|
|
1640
|
+
reconcile("initial");
|
|
1641
|
+
return register(state.id, Object.freeze({
|
|
1642
|
+
id: state.id,
|
|
1643
|
+
type: "lyric-stage",
|
|
1644
|
+
restore: function(reason) {
|
|
1645
|
+
reconcile(reason || "manual-restore");
|
|
1646
|
+
},
|
|
1647
|
+
snapshot: function() {
|
|
1648
|
+
return { id: state.id, type: "lyric-stage", phase, progress, playing: !audio.paused && !audio.ended && !blocked(), lyricIndex: latest ? latest.index : -1, nextVisibleIndex: latest ? latest.nextVisibleIndex : -1, cueCount };
|
|
1649
|
+
},
|
|
1650
|
+
teardown: function() {
|
|
1651
|
+
stopClock();
|
|
1652
|
+
clearCue("teardown");
|
|
1653
|
+
unsubscribeLyric();
|
|
1654
|
+
unsubscribeCue();
|
|
1655
|
+
lyricEffects.splice(0).forEach(function(record) {
|
|
1656
|
+
if (record.timer)
|
|
1657
|
+
window2.clearTimeout(record.timer);
|
|
1658
|
+
safely(record.cleanup, { reason: "teardown" }, "lyricStage lyric cleanup");
|
|
1659
|
+
});
|
|
1660
|
+
state.removers.splice(0).forEach(function(remove) {
|
|
1661
|
+
remove();
|
|
1662
|
+
});
|
|
1663
|
+
current.className = current.className.replace(/\s*dance-moves-lyric-stage__line(?:--current)?/g, "").trim();
|
|
1664
|
+
__dmScope.dataset(current, "danceMovesLyricSlot", null);
|
|
1665
|
+
popover.appendChild(current);
|
|
1666
|
+
if (viewport.parentNode === popover)
|
|
1667
|
+
popover.removeChild(viewport);
|
|
1668
|
+
__dmScope.dataset(popover, "danceMovesLyricStage", null);
|
|
1669
|
+
__dmScope.dataset(popover, "danceMovesLyricPhase", null);
|
|
1670
|
+
__dmScope.removeStyle(popover.style, "--dance-moves-lyric-progress");
|
|
1671
|
+
instances.delete(state.id);
|
|
1672
|
+
}
|
|
1673
|
+
}));
|
|
1674
|
+
}
|
|
1348
1675
|
function quality(options) {
|
|
1349
1676
|
options = options || {};
|
|
1350
1677
|
var state = commonState(options, "quality");
|
|
@@ -1459,6 +1786,7 @@ function install2(__dmScope) {
|
|
|
1459
1786
|
playbackPulse,
|
|
1460
1787
|
cueClass,
|
|
1461
1788
|
cueTimeline,
|
|
1789
|
+
lyricStage,
|
|
1462
1790
|
quality,
|
|
1463
1791
|
get: function(id) {
|
|
1464
1792
|
return instances.get(String(id)) || null;
|
|
@@ -1479,7 +1807,7 @@ function install2(__dmScope) {
|
|
|
1479
1807
|
});
|
|
1480
1808
|
}
|
|
1481
1809
|
});
|
|
1482
|
-
document2.dispatchEvent(new CustomEvent("dance-moves-effects-ready", { detail: { api: window2.DanceMovesEffects, version: window2.DanceMovesEffects.version } }));
|
|
1810
|
+
document2.dispatchEvent(new CustomEvent("dance-moves-effects-ready", { bubbles: true, detail: { api: window2.DanceMovesEffects, version: window2.DanceMovesEffects.version } }));
|
|
1483
1811
|
})(window, document);
|
|
1484
1812
|
}
|
|
1485
1813
|
|
|
@@ -3457,7 +3785,7 @@ function install9(__dmScope) {
|
|
|
3457
3785
|
let native = null, view = null, loading = null, loadError = null;
|
|
3458
3786
|
let frame = 0, serial2 = 0, styleElement = null, removalObserver = null, pageHidden = false;
|
|
3459
3787
|
function emit(name, detail) {
|
|
3460
|
-
document2.dispatchEvent(new window2.CustomEvent(name, { detail }));
|
|
3788
|
+
document2.dispatchEvent(new window2.CustomEvent(name, { bubbles: true, detail }));
|
|
3461
3789
|
}
|
|
3462
3790
|
function number(value, label) {
|
|
3463
3791
|
if (typeof value !== "number" || !Number.isFinite(value))
|
|
@@ -4213,10 +4541,11 @@ function createScope(root, config, { legacyGlobals = false, nonce, orientation =
|
|
|
4213
4541
|
if (property === "readyState") return "complete";
|
|
4214
4542
|
if (property === "defaultView") return window;
|
|
4215
4543
|
if (property === "styleSheets" && !legacyGlobals) return [];
|
|
4216
|
-
if (property === "querySelectorAll") return queryAll;
|
|
4217
|
-
if (property === "querySelector") return (selector) => queryAll(selector)[0] || null;
|
|
4544
|
+
if (property === "querySelectorAll") return legacyGlobals ? target.querySelectorAll.bind(target) : queryAll;
|
|
4545
|
+
if (property === "querySelector") return legacyGlobals ? target.querySelector.bind(target) : (selector) => queryAll(selector)[0] || null;
|
|
4218
4546
|
if (property === "getElementById") return (wanted) => {
|
|
4219
4547
|
if (disposed) return null;
|
|
4548
|
+
if (legacyGlobals) return target.getElementById(wanted);
|
|
4220
4549
|
if (root.id === wanted) return root;
|
|
4221
4550
|
return Array.from(root.querySelectorAll("[id]")).find((node) => node.id === wanted) || [...created].find((node) => node.id === wanted) || null;
|
|
4222
4551
|
};
|
|
@@ -4689,7 +5018,7 @@ function createMotionRecorder(scope, { durationMilliseconds = 3e4, maxSamples =
|
|
|
4689
5018
|
}
|
|
4690
5019
|
|
|
4691
5020
|
// .build/modules/version.mjs
|
|
4692
|
-
var VERSION = "3.0.
|
|
5021
|
+
var VERSION = "3.0.5";
|
|
4693
5022
|
|
|
4694
5023
|
// .build/modules/index.mjs
|
|
4695
5024
|
var mounted = /* @__PURE__ */ new WeakMap();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[data-dance-moves-start-interval]:not([data-dance-moves-started=true]),[data-dance-moves-start-interval]:not([data-dance-moves-started=true]):before,[data-dance-moves-start-interval]:not([data-dance-moves-started=true]):after{animation-play-state:paused!important}html[data-dance-moves-shared-controls=true] .ks-epk .epk-button,html[data-dance-moves-shared-controls=true] .ks-epk .epk-download{transition-property:background-color,color,transform,border-color!important;transition-duration:var(--dance-moves-shared-control-duration)!important;transition-timing-function:ease!important}.ks-epk .ks-epk-lyrics-track summary span[aria-hidden]{transition-property:transform!important;transition-duration:var(--dance-moves-lyric-disclosure-duration)!important;transition-timing-function:ease!important}.dance-moves-lyric-popover{--dance-moves-lyric-bg: rgba(20, 20, 24, .94);--dance-moves-lyric-border: rgba(255, 255, 255, .28);--dance-moves-lyric-color: #fff;position:fixed;z-index:9998;inset-inline:max(1rem,env(safe-area-inset-left)) max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));display:flex;justify-content:center;pointer-events:none;opacity:0;transform:translateY(.75rem) scale(.98);transition:opacity var(--dance-moves-6t) ease,transform var(--dance-moves-6t) ease}.dance-moves-lyric-popover[data-dance-moves-lyric-state=active]{opacity:1;transform:translateY(0) scale(1)}.dance-moves-lyric-popover__text{display:block;max-width:min(44rem,100%);padding:.72rem 1rem;border:1px solid var(--dance-moves-lyric-border);border-radius:.75rem;background:var(--dance-moves-lyric-bg);color:var(--dance-moves-lyric-color);box-shadow:0 .6rem 1.8rem #00000052;font:700 clamp(1rem,2.4vw,1.35rem)/1.3 system-ui,sans-serif;text-align:center;text-wrap:balance}.dance-moves-lyric-popover[data-dance-moves-lyric-pulse=true] .dance-moves-lyric-popover__text{animation:dance-moves-lyric-arrive var(--dance-moves-6t) ease both}@keyframes dance-moves-lyric-arrive{0%{transform:translateY(.4rem) scale(.98)}to{transform:translateY(0) scale(1)}}@media(forced-colors:active){.dance-moves-lyric-popover__text{border:2px solid CanvasText;background:Canvas;color:CanvasText;box-shadow:none}}@media(prefers-reduced-motion:reduce){[data-dance-moves-start-interval],[data-dance-moves-start-interval]:before,[data-dance-moves-start-interval]:after{animation:none!important;transition-duration:.01ms!important}html[data-dance-moves-shared-controls=true] .ks-epk .epk-button,html[data-dance-moves-shared-controls=true] .ks-epk .epk-download,.ks-epk .ks-epk-lyrics-track summary span[aria-hidden]{transition:none!important}.dance-moves-lyric-popover,.dance-moves-lyric-popover__text{animation:none!important;transition:none!important;transform:none!important}}
|
|
1
|
+
[data-dance-moves-start-interval]:not([data-dance-moves-started=true]),[data-dance-moves-start-interval]:not([data-dance-moves-started=true]):before,[data-dance-moves-start-interval]:not([data-dance-moves-started=true]):after{animation-play-state:paused!important}html[data-dance-moves-shared-controls=true] .ks-epk .epk-button,html[data-dance-moves-shared-controls=true] .ks-epk .epk-download{transition-property:background-color,color,transform,border-color!important;transition-duration:var(--dance-moves-shared-control-duration)!important;transition-timing-function:ease!important}.ks-epk .ks-epk-lyrics-track summary span[aria-hidden]{transition-property:transform!important;transition-duration:var(--dance-moves-lyric-disclosure-duration)!important;transition-timing-function:ease!important}.dance-moves-lyric-popover{--dance-moves-lyric-bg: rgba(20, 20, 24, .94);--dance-moves-lyric-border: rgba(255, 255, 255, .28);--dance-moves-lyric-color: #fff;position:fixed;z-index:9998;inset-inline:max(1rem,env(safe-area-inset-left)) max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));display:flex;justify-content:center;pointer-events:none;opacity:0;transform:translateY(.75rem) scale(.98);transition:opacity var(--dance-moves-6t) ease,transform var(--dance-moves-6t) ease}.dance-moves-lyric-popover[data-dance-moves-lyric-state=active]{opacity:1;transform:translateY(0) scale(1)}.dance-moves-lyric-popover__text{display:block;max-width:min(44rem,100%);padding:.72rem 1rem;border:1px solid var(--dance-moves-lyric-border);border-radius:.75rem;background:var(--dance-moves-lyric-bg);color:var(--dance-moves-lyric-color);box-shadow:0 .6rem 1.8rem #00000052;font:700 clamp(1rem,2.4vw,1.35rem)/1.3 system-ui,sans-serif;text-align:center;text-wrap:balance}.dance-moves-lyric-popover[data-dance-moves-lyric-pulse=true] .dance-moves-lyric-popover__text{animation:dance-moves-lyric-arrive var(--dance-moves-6t) ease both}.dance-moves-lyric-popover[data-dance-moves-lyric-stage=ready]{--dance-moves-lyric-stage-step: 4.75rem;--dance-moves-lyric-progress: 0;overflow:hidden;height:calc(var(--dance-moves-lyric-stage-step) * 3);align-items:stretch}.dance-moves-lyric-stage__viewport{width:min(48rem,100%);height:100%;overflow:hidden}.dance-moves-lyric-stage__track{display:grid;grid-template-rows:repeat(3,var(--dance-moves-lyric-stage-step));transform:translate3d(0,calc(var(--dance-moves-lyric-progress) * var(--dance-moves-lyric-stage-step) * -1),0);will-change:transform}.dance-moves-lyric-stage__line{display:grid;place-items:center;min-width:0;padding:.4rem 1rem;color:var(--dance-moves-lyric-color);font:650 clamp(.92rem,2.2vw,1.22rem)/1.25 system-ui,sans-serif;text-align:center;text-wrap:balance;opacity:.58}.dance-moves-lyric-stage__line--current{opacity:1}.dance-moves-lyric-popover[data-dance-moves-lyric-stage=ready] .dance-moves-lyric-popover__text{max-width:none;padding:.4rem 1rem;border:0;border-radius:0;background:transparent;box-shadow:none;animation:none}.dance-moves-lyric-popover[data-dance-moves-lyric-stage=ready][data-dance-moves-lyric-phase=waiting] .dance-moves-lyric-stage__track{will-change:auto}@keyframes dance-moves-lyric-arrive{0%{transform:translateY(.4rem) scale(.98)}to{transform:translateY(0) scale(1)}}@media(forced-colors:active){.dance-moves-lyric-popover__text{border:2px solid CanvasText;background:Canvas;color:CanvasText;box-shadow:none}}@media(prefers-reduced-motion:reduce){[data-dance-moves-start-interval],[data-dance-moves-start-interval]:before,[data-dance-moves-start-interval]:after{animation:none!important;transition-duration:.01ms!important}html[data-dance-moves-shared-controls=true] .ks-epk .epk-button,html[data-dance-moves-shared-controls=true] .ks-epk .epk-download,.ks-epk .ks-epk-lyrics-track summary span[aria-hidden]{transition:none!important}.dance-moves-lyric-popover,.dance-moves-lyric-popover__text,.dance-moves-lyric-stage__track{animation:none!important;transition:none!important;transform:none!important}}
|