@hanifhan1f/vidstack-react 1.12.17 → 1.12.19
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/dev/chunks/{vidstack-awS6X--9.js → vidstack-CevuS08D.js} +12 -5
- package/dev/chunks/{vidstack-o47ADvk_.js → vidstack-CkRXb9Ia.js} +49 -9
- package/dev/player/vidstack-default-components.js +1 -1
- package/dev/player/vidstack-default-layout.js +1 -1
- package/package.json +1 -1
- package/player/layouts/default.d.ts +17 -0
- package/player/styles/default/layouts/video.css +69 -0
- package/prod/chunks/{vidstack-D15hTbK0.js → vidstack-C4tuISYG.js} +12 -5
- package/prod/chunks/{vidstack-Ce0Qn3e1.js → vidstack-CikQpsuo.js} +49 -9
- package/prod/player/vidstack-default-components.js +1 -1
- package/prod/player/vidstack-default-layout.js +1 -1
- package/server/chunks/{vidstack-CWR0J8Qz.js → vidstack-Ct1NFlBa.js} +49 -9
- package/server/chunks/{vidstack-C6mbdfF1.js → vidstack-DTn72IA8.js} +12 -5
- package/server/player/vidstack-default-components.js +1 -1
- package/server/player/vidstack-default-layout.js +1 -1
- package/dev/chunks/vidstack-BZIhWvGa.js +0 -1371
- package/dev/chunks/vidstack-vz-aZSfo.js +0 -1497
- package/prod/chunks/vidstack-D8qjOk_1.js +0 -1497
- package/prod/chunks/vidstack-WsodkLQg.js +0 -1371
- package/server/chunks/vidstack-2zMSe4ym.js +0 -1371
- package/server/chunks/vidstack-CJLEk6TF.js +0 -1497
|
@@ -1328,7 +1328,7 @@ function DefaultVideoLargeLayout() {
|
|
|
1328
1328
|
React.useEffect(() => {
|
|
1329
1329
|
if (!$fullscreen) setEpisodesOpen(false);
|
|
1330
1330
|
}, [$fullscreen]);
|
|
1331
|
-
const canOpenEpisodes =
|
|
1331
|
+
const canOpenEpisodes = $fullscreen && list.length > 0;
|
|
1332
1332
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(DefaultAnnouncer, null), /* @__PURE__ */ React.createElement(DefaultVideoGestures, null), /* @__PURE__ */ React.createElement(DefaultVideoKeyboardDisplay, null), slot(slots, "bufferingIndicator", /* @__PURE__ */ React.createElement(DefaultBufferingIndicator, null)), slot(slots, "captions", /* @__PURE__ */ React.createElement(DefaultCaptions, null)), /* @__PURE__ */ React.createElement(Root$a, { className: "vds-controls" }, /* @__PURE__ */ React.createElement(Group, { className: "vds-controls-group" }, slot(slots, "topControlsGroupStart", null), /* @__PURE__ */ React.createElement(DefaultControlsSpacer, null), slot(slots, "topControlsGroupCenter", null), /* @__PURE__ */ React.createElement(DefaultControlsSpacer, null), slot(slots, "topControlsGroupEnd", null), menuGroup === "top" && /* @__PURE__ */ React.createElement(DefaultVideoMenus, { slots })), /* @__PURE__ */ React.createElement(DefaultControlsSpacer, null), /* @__PURE__ */ React.createElement(Group, { className: "vds-controls-group" }, slot(slots, "centerControlsGroupStart", null), /* @__PURE__ */ React.createElement(DefaultControlsSpacer, null), slot(slots, "centerControlsGroupCenter", null), /* @__PURE__ */ React.createElement(DefaultControlsSpacer, null), slot(slots, "centerControlsGroupEnd", null)), /* @__PURE__ */ React.createElement(DefaultControlsSpacer, null), /* @__PURE__ */ React.createElement(Group, { className: "vds-controls-group" }, slot(slots, "timeSlider", /* @__PURE__ */ React.createElement(DefaultTimeSlider, null))), /* @__PURE__ */ React.createElement(Group, { className: "vds-controls-group" }, slot(slots, "playButton", /* @__PURE__ */ React.createElement(DefaultPlayButton, { tooltip: "top start" })), /* @__PURE__ */ React.createElement(DefaultSeekButton, { backward: true, tooltip: "top" }), /* @__PURE__ */ React.createElement(DefaultSeekButton, { tooltip: "top" }), /* @__PURE__ */ React.createElement(DefaultVolumePopup, { orientation: "horizontal", tooltip: "top", slots }), /* @__PURE__ */ React.createElement(DefaultTimeInfo, { slots }), slot(slots, "chapterTitle", /* @__PURE__ */ React.createElement(DefaultTitle, null)), canOpenEpisodes ? /* @__PURE__ */ React.createElement(DefaultEpisodeButton, { tooltip: "top", onPress: () => setEpisodesOpen((open) => !open) }) : null, slot(slots, "captionButton", /* @__PURE__ */ React.createElement(DefaultCaptionButton, { tooltip: "top" })), menuGroup === "bottom" && /* @__PURE__ */ React.createElement(DefaultVideoMenus, { slots }), slot(slots, "airPlayButton", /* @__PURE__ */ React.createElement(DefaultAirPlayButton, { tooltip: "top" })), slot(slots, "googleCastButton", /* @__PURE__ */ React.createElement(DefaultGoogleCastButton, { tooltip: "top" })), slot(slots, "downloadButton", /* @__PURE__ */ React.createElement(DefaultDownloadButton, null)), slot(slots, "pipButton", /* @__PURE__ */ React.createElement(DefaultPIPButton, { tooltip: "top" })), slot(slots, "fullscreenButton", /* @__PURE__ */ React.createElement(DefaultFullscreenButton, { tooltip: "top end" })))), /* @__PURE__ */ React.createElement(
|
|
1333
1333
|
DefaultEpisodesSidebar,
|
|
1334
1334
|
{
|
|
@@ -1345,7 +1345,7 @@ function DefaultVideoSmallLayout() {
|
|
|
1345
1345
|
React.useEffect(() => {
|
|
1346
1346
|
if (!$fullscreen) setEpisodesOpen(false);
|
|
1347
1347
|
}, [$fullscreen]);
|
|
1348
|
-
const canOpenEpisodes =
|
|
1348
|
+
const canOpenEpisodes = $fullscreen && list.length > 0;
|
|
1349
1349
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(DefaultAnnouncer, null), /* @__PURE__ */ React.createElement(DefaultVideoGestures, null), /* @__PURE__ */ React.createElement(DefaultVideoKeyboardDisplay, null), slot(slots, "bufferingIndicator", /* @__PURE__ */ React.createElement(DefaultBufferingIndicator, null)), slot(slots, "captions", /* @__PURE__ */ React.createElement(DefaultCaptions, null)), /* @__PURE__ */ React.createElement(Root$a, { className: "vds-controls" }, /* @__PURE__ */ React.createElement(Group, { className: "vds-controls-group" }, slot(slots, "topControlsGroupStart", null), slot(slots, "airPlayButton", /* @__PURE__ */ React.createElement(DefaultAirPlayButton, { tooltip: "top start" })), slot(slots, "googleCastButton", /* @__PURE__ */ React.createElement(DefaultGoogleCastButton, { tooltip: "top start" })), /* @__PURE__ */ React.createElement(DefaultControlsSpacer, null), slot(slots, "topControlsGroupCenter", null), /* @__PURE__ */ React.createElement(DefaultControlsSpacer, null), slot(slots, "captionButton", /* @__PURE__ */ React.createElement(DefaultCaptionButton, { tooltip: "bottom" })), slot(slots, "downloadButton", /* @__PURE__ */ React.createElement(DefaultDownloadButton, null)), /* @__PURE__ */ React.createElement(DefaultVideoMenus, { slots }), /* @__PURE__ */ React.createElement(DefaultVolumePopup, { orientation: "vertical", tooltip: "bottom end", slots }), slot(slots, "topControlsGroupEnd", null)), /* @__PURE__ */ React.createElement(DefaultControlsSpacer, null), /* @__PURE__ */ React.createElement(Group, { className: "vds-controls-group" }, slot(slots, "centerControlsGroupStart", null), /* @__PURE__ */ React.createElement(DefaultControlsSpacer, null), /* @__PURE__ */ React.createElement(DefaultSeekButton, { backward: true, tooltip: "top" }), slot(slots, "centerControlsGroupCenter", null), slot(slots, "playButton", /* @__PURE__ */ React.createElement(DefaultPlayButton, { tooltip: "top" })), /* @__PURE__ */ React.createElement(DefaultSeekButton, { tooltip: "top" }), canOpenEpisodes ? /* @__PURE__ */ React.createElement(DefaultEpisodeButton, { tooltip: "top", onPress: () => setEpisodesOpen((open) => !open) }) : null, /* @__PURE__ */ React.createElement(DefaultControlsSpacer, null), slot(slots, "centerControlsGroupEnd", null)), /* @__PURE__ */ React.createElement(DefaultControlsSpacer, null), /* @__PURE__ */ React.createElement(Group, { className: "vds-controls-group" }, /* @__PURE__ */ React.createElement(DefaultTimeInfo, { slots }), slot(slots, "chapterTitle", /* @__PURE__ */ React.createElement(DefaultTitle, null)), slot(slots, "fullscreenButton", /* @__PURE__ */ React.createElement(DefaultFullscreenButton, { tooltip: "top end" }))), /* @__PURE__ */ React.createElement(Group, { className: "vds-controls-group" }, slot(slots, "timeSlider", /* @__PURE__ */ React.createElement(DefaultTimeSlider, null)))), slot(slots, "startDuration", /* @__PURE__ */ React.createElement(DefaultVideoStartDuration, null)), /* @__PURE__ */ React.createElement(
|
|
1350
1350
|
DefaultEpisodesSidebar,
|
|
1351
1351
|
{
|
|
@@ -1401,14 +1401,33 @@ function DefaultVideoMenus({ slots }) {
|
|
|
1401
1401
|
));
|
|
1402
1402
|
}
|
|
1403
1403
|
DefaultVideoMenus.displayName = "DefaultVideoMenus";
|
|
1404
|
+
function formatMinutesLeftLabel(secondsLeft) {
|
|
1405
|
+
if (secondsLeft <= 0) return null;
|
|
1406
|
+
if (secondsLeft < 60) return "<1m left";
|
|
1407
|
+
const m = Math.floor(secondsLeft / 60);
|
|
1408
|
+
return `${m}m left`;
|
|
1409
|
+
}
|
|
1404
1410
|
function DefaultEpisodesSidebar({
|
|
1405
1411
|
open,
|
|
1406
1412
|
onClose,
|
|
1407
1413
|
episodes,
|
|
1408
1414
|
episodesTitle
|
|
1409
1415
|
}) {
|
|
1410
|
-
const $fullscreen = useMediaState("fullscreen"),
|
|
1411
|
-
|
|
1416
|
+
const $fullscreen = useMediaState("fullscreen"), currentTime = useMediaState("currentTime"), duration = useMediaState("duration"), listRef = React.useRef(null), wasEpisodesOpenRef = React.useRef(false);
|
|
1417
|
+
React.useLayoutEffect(() => {
|
|
1418
|
+
const justOpened = open && !wasEpisodesOpenRef.current;
|
|
1419
|
+
wasEpisodesOpenRef.current = open;
|
|
1420
|
+
if (!justOpened || !$fullscreen) return;
|
|
1421
|
+
const root = listRef.current;
|
|
1422
|
+
if (!root) return;
|
|
1423
|
+
requestAnimationFrame(() => {
|
|
1424
|
+
root.querySelector('[data-active="true"]')?.scrollIntoView({
|
|
1425
|
+
block: "nearest",
|
|
1426
|
+
behavior: "smooth"
|
|
1427
|
+
});
|
|
1428
|
+
});
|
|
1429
|
+
}, [open, $fullscreen]);
|
|
1430
|
+
if (!$fullscreen || episodes.length === 0) return null;
|
|
1412
1431
|
return /* @__PURE__ */ React.createElement(
|
|
1413
1432
|
"div",
|
|
1414
1433
|
{
|
|
@@ -1438,12 +1457,15 @@ function DefaultEpisodesSidebar({
|
|
|
1438
1457
|
onClose();
|
|
1439
1458
|
}
|
|
1440
1459
|
},
|
|
1441
|
-
/* @__PURE__ */ React.createElement("span", { "aria-hidden": "true" }, "
|
|
1460
|
+
/* @__PURE__ */ React.createElement("span", { "aria-hidden": "true" }, "\u2715")
|
|
1442
1461
|
)),
|
|
1443
|
-
/* @__PURE__ */ React.createElement("div", { className: "vds-episodes-list", role: "list" }, episodes.map((episode, index) => {
|
|
1444
|
-
const episodeName = episode.episodeTitle || `Episode ${episode.episodeNumber ?? index + 1}
|
|
1462
|
+
/* @__PURE__ */ React.createElement("div", { ref: listRef, className: "vds-episodes-list", role: "list" }, episodes.map((episode, index) => {
|
|
1463
|
+
const episodeName = episode.episodeTitle || `Episode ${episode.episodeNumber ?? index + 1}`;
|
|
1464
|
+
const seasonEpLabel = episode.seasonNumber != null && episode.episodeNumber != null ? `S${String(episode.seasonNumber).padStart(2, "0")} \xB7 E${String(episode.episodeNumber).padStart(2, "0")}` : episodeName;
|
|
1465
|
+
const isActive = !!episode.isActive;
|
|
1445
1466
|
const onEpisodeSelect = (event) => {
|
|
1446
1467
|
event.stopPropagation();
|
|
1468
|
+
if (isActive) return;
|
|
1447
1469
|
event.currentTarget.dispatchEvent(
|
|
1448
1470
|
new CustomEvent("vds-episode-select", {
|
|
1449
1471
|
bubbles: true,
|
|
@@ -1453,11 +1475,29 @@ function DefaultEpisodesSidebar({
|
|
|
1453
1475
|
);
|
|
1454
1476
|
onClose();
|
|
1455
1477
|
};
|
|
1478
|
+
let runtimeText = null;
|
|
1479
|
+
if (isActive && duration > 0) {
|
|
1480
|
+
const secsLeft = Math.max(0, duration - currentTime);
|
|
1481
|
+
runtimeText = formatMinutesLeftLabel(secsLeft);
|
|
1482
|
+
} else if (episode.timeLeft != null && episode.timeLeft > 0) {
|
|
1483
|
+
runtimeText = `${episode.timeLeft}m left`;
|
|
1484
|
+
} else if (Number.isFinite(episode.runtime) && (episode.runtime ?? 0) > 0) {
|
|
1485
|
+
runtimeText = `${episode.runtime}m`;
|
|
1486
|
+
}
|
|
1487
|
+
let progressPct = 0;
|
|
1488
|
+
if (isActive && duration > 0) {
|
|
1489
|
+
progressPct = Math.min(100, currentTime / duration * 100);
|
|
1490
|
+
} else if (episode.progressPercent != null && episode.progressPercent > 0) {
|
|
1491
|
+
progressPct = Math.min(100, episode.progressPercent);
|
|
1492
|
+
}
|
|
1493
|
+
const showSubtitle = !!episode.episodeTitle && episode.episodeTitle.trim() !== "" && episode.episodeTitle !== episode.title;
|
|
1456
1494
|
return /* @__PURE__ */ React.createElement(
|
|
1457
1495
|
"article",
|
|
1458
1496
|
{
|
|
1459
1497
|
key: `${episode.episodeNumber ?? index}-${episode.title ?? ""}`,
|
|
1460
1498
|
className: "vds-episode-item",
|
|
1499
|
+
"data-active": isActive ? "true" : "false",
|
|
1500
|
+
"aria-current": isActive ? "true" : void 0,
|
|
1461
1501
|
role: "button",
|
|
1462
1502
|
tabIndex: 0,
|
|
1463
1503
|
"aria-label": episode.title || episodeName,
|
|
@@ -1475,8 +1515,8 @@ function DefaultEpisodesSidebar({
|
|
|
1475
1515
|
loading: "lazy",
|
|
1476
1516
|
decoding: "async"
|
|
1477
1517
|
}
|
|
1478
|
-
) : /* @__PURE__ */ React.createElement("div", { className: "vds-episode-thumb vds-episode-thumb-placeholder" })),
|
|
1479
|
-
/* @__PURE__ */ React.createElement("div", { className: "vds-episode-body" }, /* @__PURE__ */ React.createElement("div", { className: "vds-episode-meta-row" }, /* @__PURE__ */ React.createElement("span", { className: "vds-episode-label" }, seasonEpLabel), runtimeText ? /* @__PURE__ */ React.createElement("span", { className: "vds-episode-runtime" }, runtimeText) : null), /* @__PURE__ */ React.createElement("h4", { className: "vds-episode-title", title: episode.title || "" }, episode.title || "-"), /* @__PURE__ */ React.createElement("p", { className: "vds-episode-subtitle", title:
|
|
1518
|
+
) : /* @__PURE__ */ React.createElement("div", { className: "vds-episode-thumb vds-episode-thumb-placeholder" }), isActive ? /* @__PURE__ */ React.createElement("div", { className: "vds-episode-active-overlay", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("span", { className: "vds-episode-playing-badge" }, "Now playing")) : null, progressPct > 0 ? /* @__PURE__ */ React.createElement("div", { className: "vds-episode-progress-track", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("div", { className: "vds-episode-progress-fill", style: { width: `${progressPct}%` } })) : null),
|
|
1519
|
+
/* @__PURE__ */ React.createElement("div", { className: "vds-episode-body" }, /* @__PURE__ */ React.createElement("div", { className: "vds-episode-meta-row" }, /* @__PURE__ */ React.createElement("span", { className: "vds-episode-label" }, seasonEpLabel), runtimeText ? /* @__PURE__ */ React.createElement("span", { className: "vds-episode-runtime" }, runtimeText) : null), /* @__PURE__ */ React.createElement("h4", { className: "vds-episode-title", title: episode.title || "" }, episode.title || "-"), showSubtitle ? /* @__PURE__ */ React.createElement("p", { className: "vds-episode-subtitle", title: episode.episodeTitle }, episode.episodeTitle) : null, episode.overview ? /* @__PURE__ */ React.createElement("p", { className: "vds-episode-desc", title: episode.overview }, episode.overview) : null)
|
|
1480
1520
|
);
|
|
1481
1521
|
}))
|
|
1482
1522
|
)
|
|
@@ -1441,7 +1441,8 @@ function DefaultEpisodesSidebar({
|
|
|
1441
1441
|
/* @__PURE__ */ React.createElement("span", { "aria-hidden": "true" }, "x")
|
|
1442
1442
|
)),
|
|
1443
1443
|
/* @__PURE__ */ React.createElement("div", { className: "vds-episodes-list", role: "list" }, episodes.map((episode, index) => {
|
|
1444
|
-
const episodeName = episode.episodeTitle || `Episode ${episode.episodeNumber ?? index + 1}
|
|
1444
|
+
const episodeName = episode.episodeTitle || `Episode ${episode.episodeNumber ?? index + 1}`;
|
|
1445
|
+
const seasonEpLabel = episode.seasonNumber != null && episode.episodeNumber != null ? `S${String(episode.seasonNumber).padStart(2, "0")} \xB7 E${String(episode.episodeNumber).padStart(2, "0")}` : episodeName;
|
|
1445
1446
|
const onEpisodeSelect = (event) => {
|
|
1446
1447
|
event.stopPropagation();
|
|
1447
1448
|
event.currentTarget.dispatchEvent(
|
|
@@ -1453,30 +1454,36 @@ function DefaultEpisodesSidebar({
|
|
|
1453
1454
|
);
|
|
1454
1455
|
onClose();
|
|
1455
1456
|
};
|
|
1457
|
+
const runtimeText = episode.timeLeft && episode.timeLeft > 0 ? `${episode.timeLeft}m left` : Number.isFinite(episode.runtime) && (episode.runtime ?? 0) > 0 ? `${episode.runtime}m` : null;
|
|
1456
1458
|
return /* @__PURE__ */ React.createElement(
|
|
1457
1459
|
"article",
|
|
1458
1460
|
{
|
|
1459
1461
|
key: `${episode.episodeNumber ?? index}-${episode.title ?? ""}`,
|
|
1460
1462
|
className: "vds-episode-item",
|
|
1463
|
+
"data-active": episode.isActive ? "true" : "false",
|
|
1461
1464
|
role: "button",
|
|
1462
1465
|
tabIndex: 0,
|
|
1463
1466
|
"aria-label": episode.title || episodeName,
|
|
1464
1467
|
onPointerUp: onEpisodeSelect,
|
|
1465
1468
|
onKeyDown: (event) => {
|
|
1466
1469
|
if (event.key === "Enter" || event.key === " ") onEpisodeSelect(event);
|
|
1470
|
+
},
|
|
1471
|
+
style: {
|
|
1472
|
+
...episode.isActive ? { borderLeft: "3px solid #ef4444", backgroundColor: "rgba(255,255,255,0.05)" } : {}
|
|
1467
1473
|
}
|
|
1468
1474
|
},
|
|
1469
|
-
/* @__PURE__ */ React.createElement("div", { className: "vds-episode-thumb-wrap" }, episode.thumbnail ? /* @__PURE__ */ React.createElement(
|
|
1475
|
+
/* @__PURE__ */ React.createElement("div", { className: "vds-episode-thumb-wrap", style: { position: "relative", overflow: "hidden" } }, episode.thumbnail ? /* @__PURE__ */ React.createElement(
|
|
1470
1476
|
"img",
|
|
1471
1477
|
{
|
|
1472
1478
|
className: "vds-episode-thumb",
|
|
1473
1479
|
src: episode.thumbnail,
|
|
1474
1480
|
alt: episode.title || episodeName,
|
|
1475
1481
|
loading: "lazy",
|
|
1476
|
-
decoding: "async"
|
|
1482
|
+
decoding: "async",
|
|
1483
|
+
style: episode.isActive ? { filter: "brightness(0.7)" } : {}
|
|
1477
1484
|
}
|
|
1478
|
-
) : /* @__PURE__ */ React.createElement("div", { className: "vds-episode-thumb vds-episode-thumb-placeholder" })),
|
|
1479
|
-
/* @__PURE__ */ React.createElement("div", { className: "vds-episode-body" }, /* @__PURE__ */ React.createElement("div", { className: "vds-episode-meta-row" }, /* @__PURE__ */ React.createElement("span", { className: "vds-episode-label" }, seasonEpLabel), runtimeText ? /* @__PURE__ */ React.createElement("span", { className: "vds-episode-runtime" }, runtimeText) : null), /* @__PURE__ */ React.createElement("h4", { className: "vds-episode-title", title: episode.title || "" }, episode.title || "-"), /* @__PURE__ */ React.createElement("p", { className: "vds-episode-subtitle", title: episodeName }, episodeName), episode.overview ? /* @__PURE__ */ React.createElement("p", { className: "vds-episode-desc", title: episode.overview }, episode.overview) : null)
|
|
1485
|
+
) : /* @__PURE__ */ React.createElement("div", { className: "vds-episode-thumb vds-episode-thumb-placeholder" }), episode.isActive && /* @__PURE__ */ React.createElement("div", { className: "vds-episode-active-overlay", style: { position: "absolute", inset: 0, display: "flex", alignItems: "center", justifyContent: "center", backgroundColor: "rgba(0,0,0,0.3)" } }, /* @__PURE__ */ React.createElement("span", { style: { backgroundColor: "#ef4444", color: "#fff", fontSize: "10px", fontWeight: "bold", padding: "2px 6px", borderRadius: "4px", textTransform: "uppercase", letterSpacing: "0.5px" } }, "Playing")), episode.progressPercent && episode.progressPercent > 0 ? /* @__PURE__ */ React.createElement("div", { style: { position: "absolute", bottom: 0, left: 0, right: 0, height: "4px", backgroundColor: "rgba(255,255,255,0.2)" } }, /* @__PURE__ */ React.createElement("div", { style: { height: "100%", backgroundColor: "#ef4444", width: `${Math.min(episode.progressPercent, 100)}%` } })) : null),
|
|
1486
|
+
/* @__PURE__ */ React.createElement("div", { className: "vds-episode-body" }, /* @__PURE__ */ React.createElement("div", { className: "vds-episode-meta-row" }, /* @__PURE__ */ React.createElement("span", { className: "vds-episode-label", style: episode.isActive ? { color: "#ef4444" } : {} }, seasonEpLabel), runtimeText ? /* @__PURE__ */ React.createElement("span", { className: "vds-episode-runtime" }, runtimeText) : null), /* @__PURE__ */ React.createElement("h4", { className: "vds-episode-title", title: episode.title || "", style: episode.isActive ? { color: "#fff" } : {} }, episode.title || "-"), /* @__PURE__ */ React.createElement("p", { className: "vds-episode-subtitle", title: episodeName }, episodeName), episode.overview ? /* @__PURE__ */ React.createElement("p", { className: "vds-episode-desc", title: episode.overview }, episode.overview) : null)
|
|
1480
1487
|
);
|
|
1481
1488
|
}))
|
|
1482
1489
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
|
|
3
|
-
export { DefaultAudioLayout, DefaultBufferingIndicator, DefaultKeyboardDisplay, DefaultMenuButton, DefaultMenuCheckbox, DefaultMenuItem, DefaultMenuRadioGroup, DefaultMenuSection, DefaultMenuSliderItem, DefaultSliderParts, DefaultSliderSteps, DefaultTooltip, DefaultVideoGestures, DefaultVideoLargeLayout, DefaultVideoLayout, DefaultVideoSmallLayout, createRadioOptions } from '../chunks/vidstack-
|
|
3
|
+
export { DefaultAudioLayout, DefaultBufferingIndicator, DefaultKeyboardDisplay, DefaultMenuButton, DefaultMenuCheckbox, DefaultMenuItem, DefaultMenuRadioGroup, DefaultMenuSection, DefaultMenuSliderItem, DefaultSliderParts, DefaultSliderSteps, DefaultTooltip, DefaultVideoGestures, DefaultVideoLargeLayout, DefaultVideoLayout, DefaultVideoSmallLayout, createRadioOptions } from '../chunks/vidstack-Ct1NFlBa.js';
|
|
4
4
|
export { defaultLayoutIcons } from './vidstack-default-icons.js';
|
|
5
5
|
import 'react';
|
|
6
6
|
import '../chunks/vidstack-D_bWd66h.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client"
|
|
2
2
|
|
|
3
|
-
export { DefaultAudioLayout, DefaultBufferingIndicator, DefaultKeyboardDisplay, DefaultLayoutContext, DefaultMenuButton, DefaultMenuCheckbox, DefaultMenuItem, DefaultMenuRadioGroup, DefaultMenuSection, DefaultMenuSliderItem, DefaultSliderParts, DefaultSliderSteps, DefaultTooltip, DefaultVideoGestures, DefaultVideoLargeLayout, DefaultVideoLayout, DefaultVideoSmallLayout, createRadioOptions, i18n, useDefaultLayoutContext, useDefaultLayoutWord } from '../chunks/vidstack-
|
|
3
|
+
export { DefaultAudioLayout, DefaultBufferingIndicator, DefaultKeyboardDisplay, DefaultLayoutContext, DefaultMenuButton, DefaultMenuCheckbox, DefaultMenuItem, DefaultMenuRadioGroup, DefaultMenuSection, DefaultMenuSliderItem, DefaultSliderParts, DefaultSliderSteps, DefaultTooltip, DefaultVideoGestures, DefaultVideoLargeLayout, DefaultVideoLayout, DefaultVideoSmallLayout, createRadioOptions, i18n, useDefaultLayoutContext, useDefaultLayoutWord } from '../chunks/vidstack-Ct1NFlBa.js';
|
|
4
4
|
export { defaultLayoutIcons } from './vidstack-default-icons.js';
|
|
5
5
|
import 'react';
|
|
6
6
|
import '../chunks/vidstack-D_bWd66h.js';
|