suada-components 1.7.0 → 1.9.0
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/dist/components/{DailyMotion-C2fzQqF6.js → DailyMotion-B7yDPBbg.js} +1 -1
- package/dist/components/{DailyMotion-D6-bQSDC.esm.js → DailyMotion-BmnymjR1.esm.js} +1 -1
- package/dist/components/{Facebook-ngwgOcwS.js → Facebook-42iqQU2G.js} +1 -1
- package/dist/components/{Facebook-CHgu-1qk.esm.js → Facebook-D9Ak6ZJU.esm.js} +1 -1
- package/dist/components/{FilePlayer-gXcilMCz.js → FilePlayer-CAnHK0Cd.js} +1 -1
- package/dist/components/{FilePlayer-CnFGUWCJ.esm.js → FilePlayer-wg9lyafD.esm.js} +1 -1
- package/dist/components/{Kaltura-Dwtf5bDJ.js → Kaltura-Ct6kwbgP.js} +1 -1
- package/dist/components/{Kaltura-BKTRnPwX.esm.js → Kaltura-DPaEN-dq.esm.js} +1 -1
- package/dist/components/{Mixcloud-HlioccZN.esm.js → Mixcloud-BobSN3YI.esm.js} +1 -1
- package/dist/components/{Mixcloud-CtZR5d1S.js → Mixcloud-sBbcL5rG.js} +1 -1
- package/dist/components/{Mux-CiE-LfDW.esm.js → Mux-B9YP-rFr.esm.js} +1 -1
- package/dist/components/{Mux-DhMGRnH7.js → Mux-Cosy8sFO.js} +1 -1
- package/dist/components/{Preview-DuscX4du.js → Preview-DiVfo6aa.js} +1 -1
- package/dist/components/{Preview-BDrq-vcV.esm.js → Preview-XcTlhHT1.esm.js} +1 -1
- package/dist/components/{SoundCloud-BG1mh5fx.esm.js → SoundCloud-BTHoyFWT.esm.js} +1 -1
- package/dist/components/{SoundCloud-pcTMWQVG.js → SoundCloud-CIWqB-QW.js} +1 -1
- package/dist/components/{Streamable-B-2t9AZh.js → Streamable-9anYiQtU.js} +1 -1
- package/dist/components/{Streamable-3QXSsimo.esm.js → Streamable-DsfQCy3p.esm.js} +1 -1
- package/dist/components/{Twitch-B2wmDlW8.esm.js → Twitch-D1BOr8hj.esm.js} +1 -1
- package/dist/components/{Twitch-Ccg79Yis.js → Twitch-Dud6e1Rv.js} +1 -1
- package/dist/components/VideoPlayer/Controls/Controls.js +3 -3
- package/dist/components/VideoPlayer/Controls/Controls.js.map +1 -1
- package/dist/components/VideoPlayer/Controls/Controls.styles.d.ts +24 -8
- package/dist/components/VideoPlayer/Controls/Controls.styles.js +20 -16
- package/dist/components/VideoPlayer/Controls/Controls.styles.js.map +1 -1
- package/dist/components/VideoPlayer/pipManager.d.ts +60 -0
- package/dist/components/VideoPlayer/pipManager.js +272 -0
- package/dist/components/VideoPlayer/pipManager.js.map +1 -0
- package/dist/components/VideoPlayer/usePlayerControls.js +85 -11
- package/dist/components/VideoPlayer/usePlayerControls.js.map +1 -1
- package/dist/components/{Vidyard-BcZfnHmw.js → Vidyard-BuOu85uS.js} +1 -1
- package/dist/components/{Vidyard-stasLAXI.esm.js → Vidyard-C1csjpQH.esm.js} +1 -1
- package/dist/components/{Vimeo-U2HYvdiG.esm.js → Vimeo-CHlHIswX.esm.js} +1 -1
- package/dist/components/{Vimeo-9D0LyMV4.js → Vimeo-DrDJ5O9H.js} +1 -1
- package/dist/components/{Wistia-BNvoofR9.esm.js → Wistia-D-eYyONb.esm.js} +1 -1
- package/dist/components/{Wistia-3LaD3aiP.js → Wistia-fh9U2CA2.js} +1 -1
- package/dist/components/{YouTube-DJZyY4jW.esm.js → YouTube-CmnnzZvk.esm.js} +1 -1
- package/dist/components/{YouTube-CdcE3nmm.js → YouTube-DC2uZ14c.js} +1 -1
- package/dist/components/components/VideoPlayer/Controls/Controls.styles.d.ts +24 -8
- package/dist/components/components/VideoPlayer/pipManager.d.ts +60 -0
- package/dist/components/{index-C5MULDlh.esm.js → index-DKAGRUEW.esm.js} +379 -46
- package/dist/components/{index-Debc-Hq8.js → index-DetZ05pw.js} +379 -46
- package/dist/components/index.esm.js +1 -1
- package/dist/icons/components/VideoPlayer/Controls/Controls.styles.d.ts +24 -8
- package/dist/icons/components/VideoPlayer/pipManager.d.ts +60 -0
- package/package.json +1 -1
|
@@ -32397,7 +32397,7 @@ var CourseStatusContainer = dt.div(templateObject_13$2 || (templateObject_13$2 =
|
|
|
32397
32397
|
});
|
|
32398
32398
|
dt.div(templateObject_14$2 || (templateObject_14$2 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n div {\n font-size: 13px;\n }\n"], ["\n display: flex;\n align-items: center;\n justify-content: space-between;\n div {\n font-size: 13px;\n }\n"])));
|
|
32399
32399
|
var TooltipContent = dt.div(templateObject_15$2 || (templateObject_15$2 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n align-items: center;\n & > :first-child {\n font-size: 14px;\n margin-bottom: 5px;\n }\n div {\n font-size: 14px;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n & > .tooltip-text {\n font-size: 12px;\n margin-top: 5px;\n text-align: center;\n }\n }\n"], ["\n display: flex;\n flex-direction: column;\n align-items: center;\n & > :first-child {\n font-size: 14px;\n margin-bottom: 5px;\n }\n div {\n font-size: 14px;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n & > .tooltip-text {\n font-size: 12px;\n margin-top: 5px;\n text-align: center;\n }\n }\n"])));
|
|
32400
|
-
var StyledCardBottomContainer = dt.div(templateObject_16$
|
|
32400
|
+
var StyledCardBottomContainer = dt.div(templateObject_16$2 || (templateObject_16$2 = __makeTemplateObject(["\n display: flex;\n width: 100%;\n flex-direction: column !important;\n align-self: flex-end;\n gap: 10px;\n padding-bottom: 10px;\n"], ["\n display: flex;\n width: 100%;\n flex-direction: column !important;\n align-self: flex-end;\n gap: 10px;\n padding-bottom: 10px;\n"])));
|
|
32401
32401
|
var StyledActionsContainer = dt.div(templateObject_17$1 || (templateObject_17$1 = __makeTemplateObject(["\n display: flex;\n flex-direction: row !important;\n width: 100%;\n"], ["\n display: flex;\n flex-direction: row !important;\n width: 100%;\n"])));
|
|
32402
32402
|
var StyledActionItem = dt.span(templateObject_18$1 || (templateObject_18$1 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n height: 14px;\n cursor: ", ";\n color: ", ";\n font-size: 14px;\n padding-bottom: 10px;\n width: 100%;\n justify-content: center;\n gap: 8px;\n padding: 12px 4px;\n svg path {\n fill: ", ";\n width: 16px;\n height: 16px;\n }\n svg {\n width: 16px;\n height: 16px;\n }\n &:hover {\n color: ", ";\n svg path {\n fill: ", ";\n }\n }\n"], ["\n display: flex;\n align-items: center;\n height: 14px;\n cursor: ", ";\n color: ", ";\n font-size: 14px;\n padding-bottom: 10px;\n width: 100%;\n justify-content: center;\n gap: 8px;\n padding: 12px 4px;\n svg path {\n fill: ", ";\n width: 16px;\n height: 16px;\n }\n svg {\n width: 16px;\n height: 16px;\n }\n &:hover {\n color: ", ";\n svg path {\n fill: ", ";\n }\n }\n"])), function (_a) {
|
|
32403
32403
|
var disabled = _a.disabled;
|
|
@@ -32446,7 +32446,7 @@ var GridItem = dt.div(templateObject_32 || (templateObject_32 = __makeTemplateOb
|
|
|
32446
32446
|
var $isFromUser = _a.$isFromUser;
|
|
32447
32447
|
return $isFromUser && "\n figure {\n position: relative;\n &:after {\n content: 'View Analytics';\n position: absolute;\n top: 0;\n opacity: 0;\n color: #06c68f;\n left: 0;\n font-size: 24px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.9);\n width: 100%;\n height: 100%;\n transition: opacity 0.3s ease;\n z-index: 10;\n }\n }\n\n &:hover {\n figure {\n &:after {\n opacity: 1;\n }\n }\n }\n " || '';
|
|
32448
32448
|
});
|
|
32449
|
-
var templateObject_1$o, templateObject_2$j, templateObject_3$f, templateObject_4$c, templateObject_5$8, templateObject_6$7, templateObject_7$5, templateObject_8$4, templateObject_9$3, templateObject_10$2, templateObject_11$2, templateObject_12$2, templateObject_13$2, templateObject_14$2, templateObject_15$2, templateObject_16$
|
|
32449
|
+
var templateObject_1$o, templateObject_2$j, templateObject_3$f, templateObject_4$c, templateObject_5$8, templateObject_6$7, templateObject_7$5, templateObject_8$4, templateObject_9$3, templateObject_10$2, templateObject_11$2, templateObject_12$2, templateObject_13$2, templateObject_14$2, templateObject_15$2, templateObject_16$2, templateObject_17$1, templateObject_18$1, templateObject_19$1, templateObject_20$1, templateObject_21$1, templateObject_22$1, templateObject_23$1, templateObject_24, templateObject_25, templateObject_26, templateObject_27, templateObject_28, templateObject_29, templateObject_30, templateObject_31, templateObject_32;
|
|
32450
32450
|
|
|
32451
32451
|
var TooltipHeight$1 = function TooltipHeight(_a) {
|
|
32452
32452
|
var text = _a.text,
|
|
@@ -42831,7 +42831,7 @@ var InputFileContainer = dt.div(templateObject_12$1 || (templateObject_12$1 = __
|
|
|
42831
42831
|
var UploadInput = dt.input(templateObject_13$1 || (templateObject_13$1 = __makeTemplateObject(["\n opacity: 0;\n position: absolute;\n z-index: -1;\n left: 0;\n width: 0;\n top: 0;\n overflow: hidden;\n"], ["\n opacity: 0;\n position: absolute;\n z-index: -1;\n left: 0;\n width: 0;\n top: 0;\n overflow: hidden;\n"])));
|
|
42832
42832
|
dt.div(templateObject_14$1 || (templateObject_14$1 = __makeTemplateObject(["\n position: absolute;\n left: 0px;\n top: -15px;\n background: #fff;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.54);\n"], ["\n position: absolute;\n left: 0px;\n top: -15px;\n background: #fff;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.54);\n"])));
|
|
42833
42833
|
var ImagePlaceholder = dt.div(templateObject_15$1 || (templateObject_15$1 = __makeTemplateObject(["\n img {\n position: relative;\n width: 72px;\n height: 48px;\n border-radius: 4px;\n padding: 4px;\n top: 2px;\n }\n"], ["\n img {\n position: relative;\n width: 72px;\n height: 48px;\n border-radius: 4px;\n padding: 4px;\n top: 2px;\n }\n"])));
|
|
42834
|
-
var InputLabel = dt.label(templateObject_16 || (templateObject_16 = __makeTemplateObject(["\n cursor: pointer;\n color: #fff;\n background: #06c68f;\n font-size: 11px;\n padding: 9px 6px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n"], ["\n cursor: pointer;\n color: #fff;\n background: #06c68f;\n font-size: 11px;\n padding: 9px 6px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n"
|
|
42834
|
+
var InputLabel = dt.label(templateObject_16$1 || (templateObject_16$1 = __makeTemplateObject(["\n cursor: pointer;\n color: #fff;\n background: #06c68f;\n font-size: 11px;\n padding: 9px 6px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n"], ["\n cursor: pointer;\n color: #fff;\n background: #06c68f;\n font-size: 11px;\n padding: 9px 6px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n"
|
|
42835
42835
|
// UploaderButton
|
|
42836
42836
|
])));
|
|
42837
42837
|
// UploaderButton
|
|
@@ -42853,7 +42853,7 @@ var styles$1 = {
|
|
|
42853
42853
|
padding: '4px'
|
|
42854
42854
|
}
|
|
42855
42855
|
};
|
|
42856
|
-
var templateObject_1$j, templateObject_2$e, templateObject_3$a, templateObject_4$7, templateObject_5$6, templateObject_6$5, templateObject_7$3, templateObject_8$2, templateObject_9$1, templateObject_10$1, templateObject_11$1, templateObject_12$1, templateObject_13$1, templateObject_14$1, templateObject_15$1, templateObject_16, templateObject_17, templateObject_18, templateObject_19, templateObject_20, templateObject_21, templateObject_22, templateObject_23;
|
|
42856
|
+
var templateObject_1$j, templateObject_2$e, templateObject_3$a, templateObject_4$7, templateObject_5$6, templateObject_6$5, templateObject_7$3, templateObject_8$2, templateObject_9$1, templateObject_10$1, templateObject_11$1, templateObject_12$1, templateObject_13$1, templateObject_14$1, templateObject_15$1, templateObject_16$1, templateObject_17, templateObject_18, templateObject_19, templateObject_20, templateObject_21, templateObject_22, templateObject_23;
|
|
42857
42857
|
|
|
42858
42858
|
var ImageWithFallback = function ImageWithFallback(_a) {
|
|
42859
42859
|
var src = _a.src,
|
|
@@ -81375,7 +81375,7 @@ function requirePlayers () {
|
|
|
81375
81375
|
canPlay: import_patterns.canPlay.youtube,
|
|
81376
81376
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81377
81377
|
/* webpackChunkName: 'reactPlayerYouTube' */
|
|
81378
|
-
'./YouTube-
|
|
81378
|
+
'./YouTube-DC2uZ14c.js'
|
|
81379
81379
|
); }).then(function (n) { return n.YouTube; }))
|
|
81380
81380
|
},
|
|
81381
81381
|
{
|
|
@@ -81384,7 +81384,7 @@ function requirePlayers () {
|
|
|
81384
81384
|
canPlay: import_patterns.canPlay.soundcloud,
|
|
81385
81385
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81386
81386
|
/* webpackChunkName: 'reactPlayerSoundCloud' */
|
|
81387
|
-
'./SoundCloud-
|
|
81387
|
+
'./SoundCloud-CIWqB-QW.js'
|
|
81388
81388
|
); }).then(function (n) { return n.SoundCloud; }))
|
|
81389
81389
|
},
|
|
81390
81390
|
{
|
|
@@ -81393,7 +81393,7 @@ function requirePlayers () {
|
|
|
81393
81393
|
canPlay: import_patterns.canPlay.vimeo,
|
|
81394
81394
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81395
81395
|
/* webpackChunkName: 'reactPlayerVimeo' */
|
|
81396
|
-
'./Vimeo-
|
|
81396
|
+
'./Vimeo-DrDJ5O9H.js'
|
|
81397
81397
|
); }).then(function (n) { return n.Vimeo; }))
|
|
81398
81398
|
},
|
|
81399
81399
|
{
|
|
@@ -81402,7 +81402,7 @@ function requirePlayers () {
|
|
|
81402
81402
|
canPlay: import_patterns.canPlay.mux,
|
|
81403
81403
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81404
81404
|
/* webpackChunkName: 'reactPlayerMux' */
|
|
81405
|
-
'./Mux-
|
|
81405
|
+
'./Mux-Cosy8sFO.js'
|
|
81406
81406
|
); }).then(function (n) { return n.Mux; }))
|
|
81407
81407
|
},
|
|
81408
81408
|
{
|
|
@@ -81411,7 +81411,7 @@ function requirePlayers () {
|
|
|
81411
81411
|
canPlay: import_patterns.canPlay.facebook,
|
|
81412
81412
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81413
81413
|
/* webpackChunkName: 'reactPlayerFacebook' */
|
|
81414
|
-
'./Facebook-
|
|
81414
|
+
'./Facebook-42iqQU2G.js'
|
|
81415
81415
|
); }).then(function (n) { return n.Facebook; }))
|
|
81416
81416
|
},
|
|
81417
81417
|
{
|
|
@@ -81420,7 +81420,7 @@ function requirePlayers () {
|
|
|
81420
81420
|
canPlay: import_patterns.canPlay.streamable,
|
|
81421
81421
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81422
81422
|
/* webpackChunkName: 'reactPlayerStreamable' */
|
|
81423
|
-
'./Streamable-
|
|
81423
|
+
'./Streamable-9anYiQtU.js'
|
|
81424
81424
|
); }).then(function (n) { return n.Streamable; }))
|
|
81425
81425
|
},
|
|
81426
81426
|
{
|
|
@@ -81429,7 +81429,7 @@ function requirePlayers () {
|
|
|
81429
81429
|
canPlay: import_patterns.canPlay.wistia,
|
|
81430
81430
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81431
81431
|
/* webpackChunkName: 'reactPlayerWistia' */
|
|
81432
|
-
'./Wistia-
|
|
81432
|
+
'./Wistia-fh9U2CA2.js'
|
|
81433
81433
|
); }).then(function (n) { return n.Wistia; }))
|
|
81434
81434
|
},
|
|
81435
81435
|
{
|
|
@@ -81438,7 +81438,7 @@ function requirePlayers () {
|
|
|
81438
81438
|
canPlay: import_patterns.canPlay.twitch,
|
|
81439
81439
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81440
81440
|
/* webpackChunkName: 'reactPlayerTwitch' */
|
|
81441
|
-
'./Twitch-
|
|
81441
|
+
'./Twitch-Dud6e1Rv.js'
|
|
81442
81442
|
); }).then(function (n) { return n.Twitch; }))
|
|
81443
81443
|
},
|
|
81444
81444
|
{
|
|
@@ -81447,7 +81447,7 @@ function requirePlayers () {
|
|
|
81447
81447
|
canPlay: import_patterns.canPlay.dailymotion,
|
|
81448
81448
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81449
81449
|
/* webpackChunkName: 'reactPlayerDailyMotion' */
|
|
81450
|
-
'./DailyMotion-
|
|
81450
|
+
'./DailyMotion-B7yDPBbg.js'
|
|
81451
81451
|
); }).then(function (n) { return n.DailyMotion; }))
|
|
81452
81452
|
},
|
|
81453
81453
|
{
|
|
@@ -81456,7 +81456,7 @@ function requirePlayers () {
|
|
|
81456
81456
|
canPlay: import_patterns.canPlay.mixcloud,
|
|
81457
81457
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81458
81458
|
/* webpackChunkName: 'reactPlayerMixcloud' */
|
|
81459
|
-
'./Mixcloud-
|
|
81459
|
+
'./Mixcloud-sBbcL5rG.js'
|
|
81460
81460
|
); }).then(function (n) { return n.Mixcloud; }))
|
|
81461
81461
|
},
|
|
81462
81462
|
{
|
|
@@ -81465,7 +81465,7 @@ function requirePlayers () {
|
|
|
81465
81465
|
canPlay: import_patterns.canPlay.vidyard,
|
|
81466
81466
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81467
81467
|
/* webpackChunkName: 'reactPlayerVidyard' */
|
|
81468
|
-
'./Vidyard-
|
|
81468
|
+
'./Vidyard-BuOu85uS.js'
|
|
81469
81469
|
); }).then(function (n) { return n.Vidyard; }))
|
|
81470
81470
|
},
|
|
81471
81471
|
{
|
|
@@ -81474,7 +81474,7 @@ function requirePlayers () {
|
|
|
81474
81474
|
canPlay: import_patterns.canPlay.kaltura,
|
|
81475
81475
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81476
81476
|
/* webpackChunkName: 'reactPlayerKaltura' */
|
|
81477
|
-
'./Kaltura-
|
|
81477
|
+
'./Kaltura-Ct6kwbgP.js'
|
|
81478
81478
|
); }).then(function (n) { return n.Kaltura; }))
|
|
81479
81479
|
},
|
|
81480
81480
|
{
|
|
@@ -81486,7 +81486,7 @@ function requirePlayers () {
|
|
|
81486
81486
|
},
|
|
81487
81487
|
lazyPlayer: (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
81488
81488
|
/* webpackChunkName: 'reactPlayerFilePlayer' */
|
|
81489
|
-
'./FilePlayer-
|
|
81489
|
+
'./FilePlayer-CAnHK0Cd.js'
|
|
81490
81490
|
); }).then(function (n) { return n.FilePlayer; }))
|
|
81491
81491
|
}
|
|
81492
81492
|
];
|
|
@@ -82307,7 +82307,7 @@ function requireReactPlayer () {
|
|
|
82307
82307
|
var import_Player = __toESM(/*@__PURE__*/ requirePlayer());
|
|
82308
82308
|
const Preview = (0, import_utils.lazy)(() => Promise.resolve().then(function () { return require(
|
|
82309
82309
|
/* webpackChunkName: 'reactPlayerPreview' */
|
|
82310
|
-
'./Preview-
|
|
82310
|
+
'./Preview-DiVfo6aa.js'
|
|
82311
82311
|
); }).then(function (n) { return n.Preview; }));
|
|
82312
82312
|
const IS_BROWSER = typeof window !== "undefined" && window.document && typeof document !== "undefined";
|
|
82313
82313
|
const IS_GLOBAL = typeof commonjsGlobal !== "undefined" && commonjsGlobal.window && commonjsGlobal.window.document;
|
|
@@ -82549,32 +82549,36 @@ var injectHLSSubtitleStyles = function injectHLSSubtitleStyles() {
|
|
|
82549
82549
|
};
|
|
82550
82550
|
var templateObject_1$9, templateObject_2$7, templateObject_3$4, templateObject_4$2, templateObject_5$2, templateObject_6$2, templateObject_7$1;
|
|
82551
82551
|
|
|
82552
|
-
var StyledControls = dt.div(templateObject_1$8 || (templateObject_1$8 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n width: 100%;\n border-radius: 0px 0px 8px 8px;\n background: rgba(86, 90, 98, 0.6);\n backdrop-filter: blur(4px);\n padding: 12px 16px;\n position: relative;\n opacity: 0.8;\n\n\n svg {\n cursor: pointer;\n\n @media screen and (max-width: 1500px) {\n width: 20px;\n height: 20px;\n }\n\n @media screen and (max-width: 1000px) {\n width: 16px;\n height: 16px;\n }\n }\n\n & > p {\n color: var(--neutral-colors-light);\n font-family: 'Poppins', sans-serif;\n ", "\n }\n"], ["\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n width: 100%;\n border-radius: 0px 0px 8px 8px;\n background: rgba(86, 90, 98, 0.6);\n backdrop-filter: blur(4px);\n padding: 12px 16px;\n position: relative;\n opacity: 0.8;\n\n\n svg {\n cursor: pointer;\n\n @media screen and (max-width: 1500px) {\n width: 20px;\n height: 20px;\n }\n\n @media screen and (max-width: 1000px) {\n width: 16px;\n height: 16px;\n }\n }\n\n & > p {\n color: var(--neutral-colors-light);\n font-family: 'Poppins', sans-serif;\n ", "\n }\n"])), {
|
|
82552
|
+
var StyledControls = dt.div(templateObject_1$8 || (templateObject_1$8 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n width: 100%;\n border-radius: 0px 0px 8px 8px;\n background: rgba(86, 90, 98, 0.6);\n backdrop-filter: blur(4px);\n padding: 12px 16px;\n position: relative;\n opacity: 0.8;\n\n /* Responsive padding adjustments */\n @media screen and (max-width: 768px) {\n padding: 8px 12px;\n gap: 12px;\n }\n\n @media screen and (max-width: 480px) {\n padding: 6px 8px;\n gap: 8px;\n }\n\n svg {\n cursor: pointer;\n transition: transform 0.2s ease;\n\n /* Desktop and large screens */\n @media screen and (min-width: 1501px) {\n width: 24px;\n height: 24px;\n }\n\n /* Medium to large screens */\n @media screen and (max-width: 1500px) {\n width: 20px;\n height: 20px;\n }\n\n /* Small to medium screens */\n @media screen and (max-width: 1000px) {\n width: 18px;\n height: 18px;\n }\n\n /* Tablet screens */\n @media screen and (max-width: 768px) {\n width: 20px;\n height: 20px;\n }\n\n /* Mobile screens */\n @media screen and (max-width: 480px) {\n width: 18px;\n height: 18px;\n }\n\n /* Very small mobile screens */\n @media screen and (max-width: 320px) {\n width: 16px;\n height: 16px;\n }\n\n &:hover {\n transform: scale(1.1);\n }\n\n &:active {\n transform: scale(0.95);\n }\n }\n\n & > p {\n color: var(--neutral-colors-light);\n font-family: 'Poppins', sans-serif;\n ", "\n }\n"], ["\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n width: 100%;\n border-radius: 0px 0px 8px 8px;\n background: rgba(86, 90, 98, 0.6);\n backdrop-filter: blur(4px);\n padding: 12px 16px;\n position: relative;\n opacity: 0.8;\n\n /* Responsive padding adjustments */\n @media screen and (max-width: 768px) {\n padding: 8px 12px;\n gap: 12px;\n }\n\n @media screen and (max-width: 480px) {\n padding: 6px 8px;\n gap: 8px;\n }\n\n svg {\n cursor: pointer;\n transition: transform 0.2s ease;\n\n /* Desktop and large screens */\n @media screen and (min-width: 1501px) {\n width: 24px;\n height: 24px;\n }\n\n /* Medium to large screens */\n @media screen and (max-width: 1500px) {\n width: 20px;\n height: 20px;\n }\n\n /* Small to medium screens */\n @media screen and (max-width: 1000px) {\n width: 18px;\n height: 18px;\n }\n\n /* Tablet screens */\n @media screen and (max-width: 768px) {\n width: 20px;\n height: 20px;\n }\n\n /* Mobile screens */\n @media screen and (max-width: 480px) {\n width: 18px;\n height: 18px;\n }\n\n /* Very small mobile screens */\n @media screen and (max-width: 320px) {\n width: 16px;\n height: 16px;\n }\n\n &:hover {\n transform: scale(1.1);\n }\n\n &:active {\n transform: scale(0.95);\n }\n }\n\n & > p {\n color: var(--neutral-colors-light);\n font-family: 'Poppins', sans-serif;\n ", "\n }\n"])), {
|
|
82553
82553
|
fontStyle: 'descriptor'
|
|
82554
82554
|
});
|
|
82555
|
-
var StyledSlider = dt.input(templateObject_2$6 || (templateObject_2$6 = __makeTemplateObject(["\n width: 100%;\n height: 2px;\n border-radius: 5px;\n position: absolute;\n top: 0;\n left: 0;\n background: ", ";\n outline: none;\n -webkit-transition: 0.2s;\n transition: opacity 0.2s;\n cursor: pointer;\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--brand-colors-accent);\n cursor: pointer;\n }\n\n &::-moz-range-thumb {\n appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--brand-colors-accent);\n cursor: pointer;\n }\n"], ["\n width: 100%;\n height: 2px;\n border-radius: 5px;\n position: absolute;\n top: 0;\n left: 0;\n background: ", ";\n outline: none;\n -webkit-transition: 0.2s;\n transition: opacity 0.2s;\n cursor: pointer;\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--brand-colors-accent);\n cursor: pointer;\n }\n\n &::-moz-range-thumb {\n appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--brand-colors-accent);\n cursor: pointer;\n }\n"])), function (_a) {
|
|
82555
|
+
var StyledSlider = dt.input(templateObject_2$6 || (templateObject_2$6 = __makeTemplateObject(["\n width: 100%;\n height: 2px;\n border-radius: 5px;\n position: absolute;\n top: 0;\n left: 0;\n background: ", ";\n outline: none;\n -webkit-transition: 0.2s;\n transition: opacity 0.2s;\n cursor: pointer;\n\n /* Enhanced mobile touch target */\n @media (hover: none) and (pointer: coarse) {\n height: 4px;\n }\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--brand-colors-accent);\n cursor: pointer;\n\n /* Larger touch target for mobile */\n @media (hover: none) and (pointer: coarse) {\n width: 16px;\n height: 16px;\n }\n\n /* Responsive adjustments */\n @media screen and (max-width: 480px) {\n width: 14px;\n height: 14px;\n }\n }\n\n &::-moz-range-thumb {\n appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--brand-colors-accent);\n cursor: pointer;\n border: none;\n\n /* Larger touch target for mobile */\n @media (hover: none) and (pointer: coarse) {\n width: 16px;\n height: 16px;\n }\n\n /* Responsive adjustments */\n @media screen and (max-width: 480px) {\n width: 14px;\n height: 14px;\n }\n }\n\n /* Enhance visibility on focus for accessibility */\n &:focus {\n outline: 2px solid var(--brand-colors-accent);\n outline-offset: 2px;\n }\n"], ["\n width: 100%;\n height: 2px;\n border-radius: 5px;\n position: absolute;\n top: 0;\n left: 0;\n background: ", ";\n outline: none;\n -webkit-transition: 0.2s;\n transition: opacity 0.2s;\n cursor: pointer;\n\n /* Enhanced mobile touch target */\n @media (hover: none) and (pointer: coarse) {\n height: 4px;\n }\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--brand-colors-accent);\n cursor: pointer;\n\n /* Larger touch target for mobile */\n @media (hover: none) and (pointer: coarse) {\n width: 16px;\n height: 16px;\n }\n\n /* Responsive adjustments */\n @media screen and (max-width: 480px) {\n width: 14px;\n height: 14px;\n }\n }\n\n &::-moz-range-thumb {\n appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--brand-colors-accent);\n cursor: pointer;\n border: none;\n\n /* Larger touch target for mobile */\n @media (hover: none) and (pointer: coarse) {\n width: 16px;\n height: 16px;\n }\n\n /* Responsive adjustments */\n @media screen and (max-width: 480px) {\n width: 14px;\n height: 14px;\n }\n }\n\n /* Enhance visibility on focus for accessibility */\n &:focus {\n outline: 2px solid var(--brand-colors-accent);\n outline-offset: 2px;\n }\n"])), function (_a) {
|
|
82556
82556
|
var value = _a.value;
|
|
82557
82557
|
return "linear-gradient(\n to right,\n var(--brand-colors-accent) 0%,\n var(--brand-colors-accent) ".concat(value, "%,\n var(--level-dark-200) ").concat(value, "%,\n var(--level-dark-200) 100%\n )");
|
|
82558
82558
|
});
|
|
82559
|
-
var StyledVolumeWrapper = dt.div(templateObject_3$3 || (templateObject_3$3 = __makeTemplateObject(["\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 16px;\n\n & > svg {\n cursor: pointer;\n }\n\n & > input {\n display: none;\n }\n\n &:hover > input {\n display: block;\n }\n"], ["\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 16px;\n\n & > svg {\n cursor: pointer;\n }\n\n & > input {\n display: none;\n }\n\n &:hover > input {\n display: block;\n }\n"])));
|
|
82560
|
-
var StyledVolumeSlider = dt.input(templateObject_4$1 || (templateObject_4$1 = __makeTemplateObject(["\n width: 100px;\n height: 4px;\n border-radius: 5px;\n background: ", ";\n outline: none;\n -webkit-transition: 0.2s;\n transition: opacity 0.2s;\n cursor: pointer;\n justify-content: center;\n align-items: center;\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--neutral-colors-light);\n cursor: pointer;\n }\n\n &::-moz-range-thumb {\n appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--neutral-colors-light);\n cursor: pointer;\n }\n"], ["\n width: 100px;\n height: 4px;\n border-radius: 5px;\n background: ", ";\n outline: none;\n -webkit-transition: 0.2s;\n transition: opacity 0.2s;\n cursor: pointer;\n justify-content: center;\n align-items: center;\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--neutral-colors-light);\n cursor: pointer;\n }\n\n &::-moz-range-thumb {\n appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--neutral-colors-light);\n cursor: pointer;\n }\n"])), function (_a) {
|
|
82559
|
+
var StyledVolumeWrapper = dt.div(templateObject_3$3 || (templateObject_3$3 = __makeTemplateObject(["\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 16px;\n\n /* Responsive gap adjustments */\n @media screen and (max-width: 768px) {\n gap: 12px;\n }\n\n @media screen and (max-width: 480px) {\n gap: 8px;\n }\n\n & > svg {\n cursor: pointer;\n }\n\n & > input {\n display: none;\n }\n\n &:hover > input {\n display: block;\n }\n\n /* Always show volume slider on touch devices */\n @media (hover: none) and (pointer: coarse) {\n & > input {\n display: block;\n }\n }\n\n /* Hide volume slider on very small screens */\n @media screen and (max-width: 320px) {\n & > input {\n display: none !important;\n }\n }\n"], ["\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 16px;\n\n /* Responsive gap adjustments */\n @media screen and (max-width: 768px) {\n gap: 12px;\n }\n\n @media screen and (max-width: 480px) {\n gap: 8px;\n }\n\n & > svg {\n cursor: pointer;\n }\n\n & > input {\n display: none;\n }\n\n &:hover > input {\n display: block;\n }\n\n /* Always show volume slider on touch devices */\n @media (hover: none) and (pointer: coarse) {\n & > input {\n display: block;\n }\n }\n\n /* Hide volume slider on very small screens */\n @media screen and (max-width: 320px) {\n & > input {\n display: none !important;\n }\n }\n"])));
|
|
82560
|
+
var StyledVolumeSlider = dt.input(templateObject_4$1 || (templateObject_4$1 = __makeTemplateObject(["\n width: 100px;\n height: 4px;\n border-radius: 5px;\n background: ", ";\n outline: none;\n -webkit-transition: 0.2s;\n transition: opacity 0.2s;\n cursor: pointer;\n justify-content: center;\n align-items: center;\n\n /* Responsive width adjustments */\n @media screen and (max-width: 768px) {\n width: 80px;\n }\n\n @media screen and (max-width: 480px) {\n width: 60px;\n }\n\n @media screen and (max-width: 320px) {\n width: 50px;\n }\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--neutral-colors-light);\n cursor: pointer;\n\n /* Responsive thumb size */\n @media screen and (max-width: 480px) {\n width: 14px;\n height: 14px;\n }\n }\n\n &::-moz-range-thumb {\n appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--neutral-colors-light);\n cursor: pointer;\n border: none;\n\n /* Responsive thumb size */\n @media screen and (max-width: 480px) {\n width: 14px;\n height: 14px;\n }\n }\n"], ["\n width: 100px;\n height: 4px;\n border-radius: 5px;\n background: ", ";\n outline: none;\n -webkit-transition: 0.2s;\n transition: opacity 0.2s;\n cursor: pointer;\n justify-content: center;\n align-items: center;\n\n /* Responsive width adjustments */\n @media screen and (max-width: 768px) {\n width: 80px;\n }\n\n @media screen and (max-width: 480px) {\n width: 60px;\n }\n\n @media screen and (max-width: 320px) {\n width: 50px;\n }\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--neutral-colors-light);\n cursor: pointer;\n\n /* Responsive thumb size */\n @media screen and (max-width: 480px) {\n width: 14px;\n height: 14px;\n }\n }\n\n &::-moz-range-thumb {\n appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--neutral-colors-light);\n cursor: pointer;\n border: none;\n\n /* Responsive thumb size */\n @media screen and (max-width: 480px) {\n width: 14px;\n height: 14px;\n }\n }\n"])), function (_a) {
|
|
82561
82561
|
var value = _a.value;
|
|
82562
82562
|
return "linear-gradient(\n to right,\n var(--neutral-colors-light) 0%,\n var(--neutral-colors-light) ".concat(value, "%,\n var(--level-grey-500) ").concat(value, "%,\n var(--level-grey-500) 100%\n )");
|
|
82563
82563
|
});
|
|
82564
|
-
var StyledControllerLeft = dt.div(templateObject_5$1 || (templateObject_5$1 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n gap: 16px;\n flex: 1;\n"], ["\n display: flex;\n align-items: center;\n gap: 16px;\n flex: 1;\n"])));
|
|
82565
|
-
var StyledControllerRight = dt.div(templateObject_6$1 || (templateObject_6$1 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n gap: 16px;\n flex-shrink: 0;\n\n .skip-icon-disabled {\n cursor: default;\n\n & > path {\n fill: var(--level-dark-300);\n }\n }\n"], ["\n display: flex;\n align-items: center;\n gap: 16px;\n flex-shrink: 0;\n\n .skip-icon-disabled {\n cursor: default;\n\n & > path {\n fill: var(--level-dark-300);\n }\n }\n"])));
|
|
82566
|
-
var StyledTimeTrack = dt.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n color: #FFFFFF;\n ", "\n text-align: right;\n white-space: nowrap;\n"], ["\n color: #FFFFFF;\n ", "\n text-align: right;\n white-space: nowrap;\n
|
|
82564
|
+
var StyledControllerLeft = dt.div(templateObject_5$1 || (templateObject_5$1 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n gap: 16px;\n flex: 1;\n \n /* Responsive gap adjustments */\n @media screen and (max-width: 768px) {\n gap: 12px;\n }\n\n @media screen and (max-width: 480px) {\n gap: 8px;\n }\n\n @media screen and (max-width: 320px) {\n gap: 6px;\n }\n\n /* Hide rewind/forward controls on very small screens */\n @media screen and (max-width: 480px) {\n .rewind-control,\n .forward-control {\n display: none;\n }\n }\n"], ["\n display: flex;\n align-items: center;\n gap: 16px;\n flex: 1;\n \n /* Responsive gap adjustments */\n @media screen and (max-width: 768px) {\n gap: 12px;\n }\n\n @media screen and (max-width: 480px) {\n gap: 8px;\n }\n\n @media screen and (max-width: 320px) {\n gap: 6px;\n }\n\n /* Hide rewind/forward controls on very small screens */\n @media screen and (max-width: 480px) {\n .rewind-control,\n .forward-control {\n display: none;\n }\n }\n"])));
|
|
82565
|
+
var StyledControllerRight = dt.div(templateObject_6$1 || (templateObject_6$1 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n gap: 16px;\n flex-shrink: 0;\n\n /* Responsive gap adjustments */\n @media screen and (max-width: 768px) {\n gap: 12px;\n }\n\n @media screen and (max-width: 480px) {\n gap: 8px;\n \n /* Hide less essential controls on mobile */\n .skip-control,\n .favorite-control,\n .download-control {\n display: none;\n }\n }\n\n @media screen and (max-width: 320px) {\n gap: 6px;\n }\n\n .skip-icon-disabled {\n cursor: default;\n\n & > path {\n fill: var(--level-dark-300);\n }\n }\n"], ["\n display: flex;\n align-items: center;\n gap: 16px;\n flex-shrink: 0;\n\n /* Responsive gap adjustments */\n @media screen and (max-width: 768px) {\n gap: 12px;\n }\n\n @media screen and (max-width: 480px) {\n gap: 8px;\n \n /* Hide less essential controls on mobile */\n .skip-control,\n .favorite-control,\n .download-control {\n display: none;\n }\n }\n\n @media screen and (max-width: 320px) {\n gap: 6px;\n }\n\n .skip-icon-disabled {\n cursor: default;\n\n & > path {\n fill: var(--level-dark-300);\n }\n }\n"])));
|
|
82566
|
+
var StyledTimeTrack = dt.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n color: #FFFFFF;\n ", "\n text-align: right;\n white-space: nowrap;\n font-size: 14px;\n \n /* Responsive font size adjustments */\n @media screen and (max-width: 768px) {\n font-size: 12px;\n }\n\n @media screen and (max-width: 480px) {\n font-size: 11px;\n }\n\n @media screen and (max-width: 320px) {\n font-size: 10px;\n }\n"], ["\n color: #FFFFFF;\n ", "\n text-align: right;\n white-space: nowrap;\n font-size: 14px;\n \n /* Responsive font size adjustments */\n @media screen and (max-width: 768px) {\n font-size: 12px;\n }\n\n @media screen and (max-width: 480px) {\n font-size: 11px;\n }\n\n @media screen and (max-width: 320px) {\n font-size: 10px;\n }\n"
|
|
82567
|
+
// Base styles for icon containers
|
|
82568
|
+
])), {
|
|
82567
82569
|
fontStyle: 'descriptor'
|
|
82568
82570
|
});
|
|
82569
|
-
|
|
82570
|
-
var
|
|
82571
|
-
var
|
|
82572
|
-
var
|
|
82573
|
-
var
|
|
82574
|
-
var
|
|
82575
|
-
var
|
|
82576
|
-
var
|
|
82577
|
-
var
|
|
82571
|
+
// Base styles for icon containers
|
|
82572
|
+
var BaseIconContainer = dt.div(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n min-width: 24px;\n min-height: 24px;\n border-radius: 4px;\n transition: background-color 0.2s ease, transform 0.1s ease;\n\n /* Enhanced touch targets for mobile */\n @media (hover: none) and (pointer: coarse) {\n min-width: 32px;\n min-height: 32px;\n }\n\n & > svg > path {\n fill: #FFFFFF !important;\n transition: fill 0.2s ease;\n }\n\n &:hover {\n background-color: rgba(255, 255, 255, 0.1);\n \n & > svg > path {\n fill: #08C694 !important;\n }\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n /* Focus styles for accessibility */\n &:focus-visible {\n outline: 2px solid var(--brand-colors-accent);\n outline-offset: 2px;\n }\n"], ["\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n min-width: 24px;\n min-height: 24px;\n border-radius: 4px;\n transition: background-color 0.2s ease, transform 0.1s ease;\n\n /* Enhanced touch targets for mobile */\n @media (hover: none) and (pointer: coarse) {\n min-width: 32px;\n min-height: 32px;\n }\n\n & > svg > path {\n fill: #FFFFFF !important;\n transition: fill 0.2s ease;\n }\n\n &:hover {\n background-color: rgba(255, 255, 255, 0.1);\n \n & > svg > path {\n fill: #08C694 !important;\n }\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n /* Focus styles for accessibility */\n &:focus-visible {\n outline: 2px solid var(--brand-colors-accent);\n outline-offset: 2px;\n }\n"])));
|
|
82573
|
+
var StyledHeartIconContainer = dt(BaseIconContainer)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n /* Additional specific styles if needed */\n"], ["\n /* Additional specific styles if needed */\n"])));
|
|
82574
|
+
var StyledDownloadIconContainer = dt(BaseIconContainer)(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n & > svg {\n width: 24px !important;\n height: 24px !important;\n \n @media screen and (max-width: 1500px) {\n width: 20px !important;\n height: 20px !important;\n }\n\n @media screen and (max-width: 1000px) {\n width: 16px !important;\n height: 16px !important;\n }\n\n @media screen and (max-width: 768px) {\n width: 20px !important;\n height: 20px !important;\n }\n\n @media screen and (max-width: 480px) {\n width: 18px !important;\n height: 18px !important;\n }\n }\n"], ["\n & > svg {\n width: 24px !important;\n height: 24px !important;\n \n @media screen and (max-width: 1500px) {\n width: 20px !important;\n height: 20px !important;\n }\n\n @media screen and (max-width: 1000px) {\n width: 16px !important;\n height: 16px !important;\n }\n\n @media screen and (max-width: 768px) {\n width: 20px !important;\n height: 20px !important;\n }\n\n @media screen and (max-width: 480px) {\n width: 18px !important;\n height: 18px !important;\n }\n }\n"])));
|
|
82575
|
+
var StyledSubtitlesIconContainer = dt(BaseIconContainer)(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n /* Additional specific styles if needed */\n"], ["\n /* Additional specific styles if needed */\n"])));
|
|
82576
|
+
var StyledFullscreenIconContainer = dt(BaseIconContainer)(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n /* Additional specific styles if needed */\n"], ["\n /* Additional specific styles if needed */\n"])));
|
|
82577
|
+
var StyledPictureInPictureIconContainer = dt(BaseIconContainer)(templateObject_13 || (templateObject_13 = __makeTemplateObject(["\n &.pip-active {\n background-color: rgba(8, 198, 148, 0.2);\n \n & > svg > path {\n fill: #08C694 !important;\n }\n }\n"], ["\n &.pip-active {\n background-color: rgba(8, 198, 148, 0.2);\n \n & > svg > path {\n fill: #08C694 !important;\n }\n }\n"])));
|
|
82578
|
+
var StyledVolumeIconContainer = dt(BaseIconContainer)(templateObject_14 || (templateObject_14 = __makeTemplateObject(["\n /* Additional specific styles if needed */\n"], ["\n /* Additional specific styles if needed */\n"])));
|
|
82579
|
+
var StyledPlayPauseIconContainer = dt(BaseIconContainer)(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n /* Additional specific styles if needed */\n"], ["\n /* Additional specific styles if needed */\n"])));
|
|
82580
|
+
var StyledRewindIconContainer = dt(BaseIconContainer)(templateObject_16 || (templateObject_16 = __makeTemplateObject(["\n /* Additional specific styles if needed */\n"], ["\n /* Additional specific styles if needed */\n"])));
|
|
82581
|
+
var templateObject_1$8, templateObject_2$6, templateObject_3$3, templateObject_4$1, templateObject_5$1, templateObject_6$1, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15, templateObject_16;
|
|
82578
82582
|
|
|
82579
82583
|
var PLAYBACK_SPEED_LIST = [{
|
|
82580
82584
|
label: 'playback_speed.2x',
|
|
@@ -82863,8 +82867,9 @@ var Controls = function Controls(_a) {
|
|
|
82863
82867
|
children: playing ? jsxRuntimeExports.jsx(PauseIcon, {}) : jsxRuntimeExports.jsx(PlayIcon, {})
|
|
82864
82868
|
})
|
|
82865
82869
|
}), jsxRuntimeExports.jsx(CustomTooltip, {
|
|
82866
|
-
title: "Rewind
|
|
82870
|
+
title: "Rewind 5 seconds",
|
|
82867
82871
|
children: jsxRuntimeExports.jsx(StyledRewindIconContainer, {
|
|
82872
|
+
className: "rewind-control",
|
|
82868
82873
|
children: jsxRuntimeExports.jsx(RewindIcon, {
|
|
82869
82874
|
onClick: rewindHandler
|
|
82870
82875
|
})
|
|
@@ -82872,6 +82877,7 @@ var Controls = function Controls(_a) {
|
|
|
82872
82877
|
}), jsxRuntimeExports.jsx(CustomTooltip, {
|
|
82873
82878
|
title: "Forward 10 seconds",
|
|
82874
82879
|
children: jsxRuntimeExports.jsx(StyledRewindIconContainer, {
|
|
82880
|
+
className: "forward-control",
|
|
82875
82881
|
children: jsxRuntimeExports.jsx(RewindIcon, {
|
|
82876
82882
|
forward: true,
|
|
82877
82883
|
onClick: handleFastForward
|
|
@@ -82896,6 +82902,7 @@ var Controls = function Controls(_a) {
|
|
|
82896
82902
|
children: [handleSkipBackward && jsxRuntimeExports.jsx(CustomTooltip, {
|
|
82897
82903
|
title: "Previous video",
|
|
82898
82904
|
children: jsxRuntimeExports.jsx(StyledRewindIconContainer, {
|
|
82905
|
+
className: "skip-control",
|
|
82899
82906
|
children: jsxRuntimeExports.jsx(SkipIcon, {
|
|
82900
82907
|
onClick: function onClick() {
|
|
82901
82908
|
if (!isPreviousVideo) return;
|
|
@@ -82907,6 +82914,7 @@ var Controls = function Controls(_a) {
|
|
|
82907
82914
|
}), handleSkipForward && jsxRuntimeExports.jsx(CustomTooltip, {
|
|
82908
82915
|
title: "Next video",
|
|
82909
82916
|
children: jsxRuntimeExports.jsx(StyledRewindIconContainer, {
|
|
82917
|
+
className: "skip-control",
|
|
82910
82918
|
children: jsxRuntimeExports.jsx(SkipIcon, {
|
|
82911
82919
|
forward: true,
|
|
82912
82920
|
onClick: function onClick() {
|
|
@@ -82919,6 +82927,7 @@ var Controls = function Controls(_a) {
|
|
|
82919
82927
|
}), showFavorite && jsxRuntimeExports.jsx(CustomTooltip, {
|
|
82920
82928
|
title: isFavorite ? 'Remove from favorites' : 'Add to favorites',
|
|
82921
82929
|
children: jsxRuntimeExports.jsx(StyledHeartIconContainer, {
|
|
82930
|
+
className: "favorite-control",
|
|
82922
82931
|
children: jsxRuntimeExports.jsx(HeartIcon, {
|
|
82923
82932
|
active: isFavorite,
|
|
82924
82933
|
onClick: toggleIsFavorite
|
|
@@ -82927,6 +82936,7 @@ var Controls = function Controls(_a) {
|
|
|
82927
82936
|
}), showDownload && downloadUrl && jsxRuntimeExports.jsx(CustomTooltip, {
|
|
82928
82937
|
title: "Download video",
|
|
82929
82938
|
children: jsxRuntimeExports.jsx(StyledDownloadIconContainer, {
|
|
82939
|
+
className: "download-control",
|
|
82930
82940
|
children: jsxRuntimeExports.jsx(DownloadIcon, {
|
|
82931
82941
|
onClick: handleDownloadClick
|
|
82932
82942
|
})
|
|
@@ -88748,6 +88758,247 @@ var useEventListener = function useEventListener(eventName, handler, element, sh
|
|
|
88748
88758
|
}, [eventName, element, shouldRun]);
|
|
88749
88759
|
};
|
|
88750
88760
|
|
|
88761
|
+
/**
|
|
88762
|
+
* Global Picture-in-Picture Manager
|
|
88763
|
+
* This module manages PiP state across component unmounts and route changes
|
|
88764
|
+
*/
|
|
88765
|
+
var PictureInPictureManager = /** @class */function () {
|
|
88766
|
+
function PictureInPictureManager() {
|
|
88767
|
+
this.videoElement = null;
|
|
88768
|
+
this.pipContainer = null;
|
|
88769
|
+
this.currentVideoState = null;
|
|
88770
|
+
this.onStateChange = null;
|
|
88771
|
+
// Listen for PiP events globally
|
|
88772
|
+
document.addEventListener('leavepictureinpicture', this.handlePiPExit.bind(this));
|
|
88773
|
+
document.addEventListener('enterpictureinpicture', this.handlePiPEnter.bind(this));
|
|
88774
|
+
}
|
|
88775
|
+
/**
|
|
88776
|
+
* Register a video element for PiP management
|
|
88777
|
+
*/
|
|
88778
|
+
PictureInPictureManager.prototype.registerVideo = function (videoElement, url, onStateChange) {
|
|
88779
|
+
this.videoElement = videoElement;
|
|
88780
|
+
this.onStateChange = onStateChange || null;
|
|
88781
|
+
// Store current video state
|
|
88782
|
+
this.currentVideoState = {
|
|
88783
|
+
url: url,
|
|
88784
|
+
currentTime: videoElement.currentTime,
|
|
88785
|
+
isPlaying: !videoElement.paused,
|
|
88786
|
+
volume: videoElement.volume,
|
|
88787
|
+
playbackRate: videoElement.playbackRate
|
|
88788
|
+
};
|
|
88789
|
+
// Add listeners to track state changes
|
|
88790
|
+
videoElement.addEventListener('timeupdate', this.handleTimeUpdate.bind(this));
|
|
88791
|
+
videoElement.addEventListener('play', this.handlePlayStateChange.bind(this));
|
|
88792
|
+
videoElement.addEventListener('pause', this.handlePlayStateChange.bind(this));
|
|
88793
|
+
videoElement.addEventListener('volumechange', this.handleVolumeChange.bind(this));
|
|
88794
|
+
videoElement.addEventListener('ratechange', this.handleRateChange.bind(this));
|
|
88795
|
+
};
|
|
88796
|
+
/**
|
|
88797
|
+
* Unregister the current video element
|
|
88798
|
+
*/
|
|
88799
|
+
PictureInPictureManager.prototype.unregisterVideo = function () {
|
|
88800
|
+
if (this.videoElement) {
|
|
88801
|
+
this.videoElement.removeEventListener('timeupdate', this.handleTimeUpdate.bind(this));
|
|
88802
|
+
this.videoElement.removeEventListener('play', this.handlePlayStateChange.bind(this));
|
|
88803
|
+
this.videoElement.removeEventListener('pause', this.handlePlayStateChange.bind(this));
|
|
88804
|
+
this.videoElement.removeEventListener('volumechange', this.handleVolumeChange.bind(this));
|
|
88805
|
+
this.videoElement.removeEventListener('ratechange', this.handleRateChange.bind(this));
|
|
88806
|
+
}
|
|
88807
|
+
this.videoElement = null;
|
|
88808
|
+
this.onStateChange = null;
|
|
88809
|
+
};
|
|
88810
|
+
/**
|
|
88811
|
+
* Create a persistent video element for PiP
|
|
88812
|
+
*/
|
|
88813
|
+
PictureInPictureManager.prototype.createPersistentVideo = function (originalVideo) {
|
|
88814
|
+
var persistentVideo = originalVideo.cloneNode(true);
|
|
88815
|
+
// Copy all relevant properties
|
|
88816
|
+
persistentVideo.src = originalVideo.src;
|
|
88817
|
+
persistentVideo.currentTime = originalVideo.currentTime;
|
|
88818
|
+
persistentVideo.volume = originalVideo.volume;
|
|
88819
|
+
persistentVideo.playbackRate = originalVideo.playbackRate;
|
|
88820
|
+
persistentVideo.muted = originalVideo.muted;
|
|
88821
|
+
// Set properties for PiP
|
|
88822
|
+
persistentVideo.style.position = 'fixed';
|
|
88823
|
+
persistentVideo.style.top = '-9999px';
|
|
88824
|
+
persistentVideo.style.left = '-9999px';
|
|
88825
|
+
persistentVideo.style.width = '1px';
|
|
88826
|
+
persistentVideo.style.height = '1px';
|
|
88827
|
+
persistentVideo.style.opacity = '0';
|
|
88828
|
+
persistentVideo.style.pointerEvents = 'none';
|
|
88829
|
+
return persistentVideo;
|
|
88830
|
+
};
|
|
88831
|
+
/**
|
|
88832
|
+
* Enter picture-in-picture mode with persistence
|
|
88833
|
+
*/
|
|
88834
|
+
PictureInPictureManager.prototype.enterPiP = function () {
|
|
88835
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
88836
|
+
var persistentVideo_1, error_1;
|
|
88837
|
+
return __generator(this, function (_a) {
|
|
88838
|
+
switch (_a.label) {
|
|
88839
|
+
case 0:
|
|
88840
|
+
if (!this.videoElement || !document.pictureInPictureEnabled) {
|
|
88841
|
+
return [2 /*return*/];
|
|
88842
|
+
}
|
|
88843
|
+
_a.label = 1;
|
|
88844
|
+
case 1:
|
|
88845
|
+
_a.trys.push([1, 6,, 7]);
|
|
88846
|
+
if (!document.pictureInPictureElement) return [3 /*break*/, 3];
|
|
88847
|
+
return [4 /*yield*/, document.exitPictureInPicture()];
|
|
88848
|
+
case 2:
|
|
88849
|
+
_a.sent();
|
|
88850
|
+
_a.label = 3;
|
|
88851
|
+
case 3:
|
|
88852
|
+
// Create a container if it doesn't exist
|
|
88853
|
+
if (!this.pipContainer) {
|
|
88854
|
+
this.pipContainer = document.createElement('div');
|
|
88855
|
+
this.pipContainer.id = 'suada-pip-container';
|
|
88856
|
+
this.pipContainer.style.position = 'fixed';
|
|
88857
|
+
this.pipContainer.style.top = '-9999px';
|
|
88858
|
+
this.pipContainer.style.left = '-9999px';
|
|
88859
|
+
this.pipContainer.style.width = '1px';
|
|
88860
|
+
this.pipContainer.style.height = '1px';
|
|
88861
|
+
this.pipContainer.style.zIndex = '-1';
|
|
88862
|
+
document.body.appendChild(this.pipContainer);
|
|
88863
|
+
}
|
|
88864
|
+
persistentVideo_1 = this.createPersistentVideo(this.videoElement);
|
|
88865
|
+
this.pipContainer.appendChild(persistentVideo_1);
|
|
88866
|
+
// Wait for video to load
|
|
88867
|
+
return [4 /*yield*/, new Promise(function (resolve) {
|
|
88868
|
+
if (persistentVideo_1.readyState >= 2) {
|
|
88869
|
+
resolve();
|
|
88870
|
+
} else {
|
|
88871
|
+
persistentVideo_1.addEventListener('loadedmetadata', function () {
|
|
88872
|
+
return resolve();
|
|
88873
|
+
}, {
|
|
88874
|
+
once: true
|
|
88875
|
+
});
|
|
88876
|
+
}
|
|
88877
|
+
})
|
|
88878
|
+
// Enter PiP mode
|
|
88879
|
+
];
|
|
88880
|
+
case 4:
|
|
88881
|
+
// Wait for video to load
|
|
88882
|
+
_a.sent();
|
|
88883
|
+
// Enter PiP mode
|
|
88884
|
+
return [4 /*yield*/, persistentVideo_1.requestPictureInPicture()
|
|
88885
|
+
// Update the reference to the persistent video
|
|
88886
|
+
];
|
|
88887
|
+
case 5:
|
|
88888
|
+
// Enter PiP mode
|
|
88889
|
+
_a.sent();
|
|
88890
|
+
// Update the reference to the persistent video
|
|
88891
|
+
this.videoElement = persistentVideo_1;
|
|
88892
|
+
return [3 /*break*/, 7];
|
|
88893
|
+
case 6:
|
|
88894
|
+
error_1 = _a.sent();
|
|
88895
|
+
console.error('Failed to enter picture-in-picture:', error_1);
|
|
88896
|
+
return [3 /*break*/, 7];
|
|
88897
|
+
case 7:
|
|
88898
|
+
return [2 /*return*/];
|
|
88899
|
+
}
|
|
88900
|
+
});
|
|
88901
|
+
});
|
|
88902
|
+
};
|
|
88903
|
+
/**
|
|
88904
|
+
* Exit picture-in-picture mode
|
|
88905
|
+
*/
|
|
88906
|
+
PictureInPictureManager.prototype.exitPiP = function () {
|
|
88907
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
88908
|
+
var error_2;
|
|
88909
|
+
return __generator(this, function (_a) {
|
|
88910
|
+
switch (_a.label) {
|
|
88911
|
+
case 0:
|
|
88912
|
+
_a.trys.push([0, 3,, 4]);
|
|
88913
|
+
if (!document.pictureInPictureElement) return [3 /*break*/, 2];
|
|
88914
|
+
return [4 /*yield*/, document.exitPictureInPicture()];
|
|
88915
|
+
case 1:
|
|
88916
|
+
_a.sent();
|
|
88917
|
+
_a.label = 2;
|
|
88918
|
+
case 2:
|
|
88919
|
+
return [3 /*break*/, 4];
|
|
88920
|
+
case 3:
|
|
88921
|
+
error_2 = _a.sent();
|
|
88922
|
+
console.error('Failed to exit picture-in-picture:', error_2);
|
|
88923
|
+
return [3 /*break*/, 4];
|
|
88924
|
+
case 4:
|
|
88925
|
+
return [2 /*return*/];
|
|
88926
|
+
}
|
|
88927
|
+
});
|
|
88928
|
+
});
|
|
88929
|
+
};
|
|
88930
|
+
/**
|
|
88931
|
+
* Check if currently in PiP mode
|
|
88932
|
+
*/
|
|
88933
|
+
PictureInPictureManager.prototype.isPiPActive = function () {
|
|
88934
|
+
return !!document.pictureInPictureElement;
|
|
88935
|
+
};
|
|
88936
|
+
/**
|
|
88937
|
+
* Get current video state
|
|
88938
|
+
*/
|
|
88939
|
+
PictureInPictureManager.prototype.getCurrentState = function () {
|
|
88940
|
+
return this.currentVideoState;
|
|
88941
|
+
};
|
|
88942
|
+
/**
|
|
88943
|
+
* Restore video state to a new video element
|
|
88944
|
+
*/
|
|
88945
|
+
PictureInPictureManager.prototype.restoreStateToVideo = function (videoElement) {
|
|
88946
|
+
if (!this.currentVideoState) return;
|
|
88947
|
+
videoElement.currentTime = this.currentVideoState.currentTime;
|
|
88948
|
+
videoElement.volume = this.currentVideoState.volume;
|
|
88949
|
+
videoElement.playbackRate = this.currentVideoState.playbackRate;
|
|
88950
|
+
if (this.currentVideoState.isPlaying) {
|
|
88951
|
+
videoElement.play()["catch"](console.error);
|
|
88952
|
+
}
|
|
88953
|
+
};
|
|
88954
|
+
PictureInPictureManager.prototype.handleTimeUpdate = function () {
|
|
88955
|
+
if (this.videoElement && this.currentVideoState) {
|
|
88956
|
+
this.currentVideoState.currentTime = this.videoElement.currentTime;
|
|
88957
|
+
this.notifyStateChange();
|
|
88958
|
+
}
|
|
88959
|
+
};
|
|
88960
|
+
PictureInPictureManager.prototype.handlePlayStateChange = function () {
|
|
88961
|
+
if (this.videoElement && this.currentVideoState) {
|
|
88962
|
+
this.currentVideoState.isPlaying = !this.videoElement.paused;
|
|
88963
|
+
this.notifyStateChange();
|
|
88964
|
+
}
|
|
88965
|
+
};
|
|
88966
|
+
PictureInPictureManager.prototype.handleVolumeChange = function () {
|
|
88967
|
+
if (this.videoElement && this.currentVideoState) {
|
|
88968
|
+
this.currentVideoState.volume = this.videoElement.volume;
|
|
88969
|
+
this.notifyStateChange();
|
|
88970
|
+
}
|
|
88971
|
+
};
|
|
88972
|
+
PictureInPictureManager.prototype.handleRateChange = function () {
|
|
88973
|
+
if (this.videoElement && this.currentVideoState) {
|
|
88974
|
+
this.currentVideoState.playbackRate = this.videoElement.playbackRate;
|
|
88975
|
+
this.notifyStateChange();
|
|
88976
|
+
}
|
|
88977
|
+
};
|
|
88978
|
+
PictureInPictureManager.prototype.handlePiPEnter = function () {
|
|
88979
|
+
console.log('Entered picture-in-picture mode');
|
|
88980
|
+
};
|
|
88981
|
+
PictureInPictureManager.prototype.handlePiPExit = function () {
|
|
88982
|
+
console.log('Exited picture-in-picture mode');
|
|
88983
|
+
this.cleanup();
|
|
88984
|
+
};
|
|
88985
|
+
PictureInPictureManager.prototype.notifyStateChange = function () {
|
|
88986
|
+
if (this.onStateChange && this.currentVideoState) {
|
|
88987
|
+
this.onStateChange(this.currentVideoState);
|
|
88988
|
+
}
|
|
88989
|
+
};
|
|
88990
|
+
PictureInPictureManager.prototype.cleanup = function () {
|
|
88991
|
+
// Clean up the persistent container
|
|
88992
|
+
if (this.pipContainer && this.pipContainer.parentNode) {
|
|
88993
|
+
this.pipContainer.parentNode.removeChild(this.pipContainer);
|
|
88994
|
+
this.pipContainer = null;
|
|
88995
|
+
}
|
|
88996
|
+
};
|
|
88997
|
+
return PictureInPictureManager;
|
|
88998
|
+
}();
|
|
88999
|
+
// Create a singleton instance
|
|
89000
|
+
var pipManager = new PictureInPictureManager();
|
|
89001
|
+
|
|
88751
89002
|
var count = 0;
|
|
88752
89003
|
var defaultVideoState = {
|
|
88753
89004
|
muted: false,
|
|
@@ -88823,24 +89074,70 @@ function usePlayerControls(_a) {
|
|
|
88823
89074
|
}
|
|
88824
89075
|
}, [subtitleUrl]);
|
|
88825
89076
|
React.useEffect(function () {
|
|
89077
|
+
var _a;
|
|
88826
89078
|
var handleFullscreenChange = function handleFullscreenChange() {
|
|
88827
89079
|
setIsFullscreen(!!document.fullscreenElement);
|
|
88828
89080
|
};
|
|
88829
|
-
var
|
|
88830
|
-
setIsPiPActive(
|
|
89081
|
+
var handlePiPEnter = function handlePiPEnter() {
|
|
89082
|
+
setIsPiPActive(true);
|
|
89083
|
+
};
|
|
89084
|
+
var handlePiPLeave = function handlePiPLeave() {
|
|
89085
|
+
setIsPiPActive(false);
|
|
89086
|
+
// Also cleanup the PiP manager when PiP exits
|
|
89087
|
+
pipManager.unregisterVideo();
|
|
88831
89088
|
};
|
|
88832
89089
|
document.addEventListener('fullscreenchange', handleFullscreenChange);
|
|
88833
|
-
document.addEventListener('enterpictureinpicture',
|
|
88834
|
-
document.addEventListener('leavepictureinpicture',
|
|
89090
|
+
document.addEventListener('enterpictureinpicture', handlePiPEnter);
|
|
89091
|
+
document.addEventListener('leavepictureinpicture', handlePiPLeave);
|
|
89092
|
+
// Add event listeners to the video element when it's available
|
|
89093
|
+
var videoElement = (_a = videoPlayerRef.current) === null || _a === void 0 ? void 0 : _a.getInternalPlayer();
|
|
89094
|
+
if (videoElement && videoElement instanceof HTMLVideoElement) {
|
|
89095
|
+
videoElement.addEventListener('enterpictureinpicture', handlePiPEnter);
|
|
89096
|
+
videoElement.addEventListener('leavepictureinpicture', handlePiPLeave);
|
|
89097
|
+
}
|
|
88835
89098
|
return function () {
|
|
88836
89099
|
document.removeEventListener('fullscreenchange', handleFullscreenChange);
|
|
88837
|
-
document.removeEventListener('enterpictureinpicture',
|
|
88838
|
-
document.removeEventListener('leavepictureinpicture',
|
|
89100
|
+
document.removeEventListener('enterpictureinpicture', handlePiPEnter);
|
|
89101
|
+
document.removeEventListener('leavepictureinpicture', handlePiPLeave);
|
|
89102
|
+
// Clean up video element listeners using the captured reference
|
|
89103
|
+
if (videoElement && videoElement instanceof HTMLVideoElement) {
|
|
89104
|
+
videoElement.removeEventListener('enterpictureinpicture', handlePiPEnter);
|
|
89105
|
+
videoElement.removeEventListener('leavepictureinpicture', handlePiPLeave);
|
|
89106
|
+
}
|
|
88839
89107
|
};
|
|
88840
|
-
}, []);
|
|
89108
|
+
}, [url]); // Re-run when URL changes to ensure proper cleanup and setup
|
|
88841
89109
|
React.useEffect(function () {
|
|
88842
89110
|
setStartPlayed(false);
|
|
88843
|
-
|
|
89111
|
+
// Check if there's an active PiP session and restore state
|
|
89112
|
+
if (pipManager.isPiPActive()) {
|
|
89113
|
+
var savedState_1 = pipManager.getCurrentState();
|
|
89114
|
+
if (savedState_1 && savedState_1.url === url) {
|
|
89115
|
+
setIsPiPActive(true);
|
|
89116
|
+
// Restore video state from PiP manager
|
|
89117
|
+
setVideoState(function (prev) {
|
|
89118
|
+
var _a;
|
|
89119
|
+
return __assign(__assign({}, prev), {
|
|
89120
|
+
volume: savedState_1.volume,
|
|
89121
|
+
playbackRate: savedState_1.playbackRate,
|
|
89122
|
+
played: savedState_1.currentTime / (((_a = videoPlayerRef.current) === null || _a === void 0 ? void 0 : _a.getDuration()) || 1)
|
|
89123
|
+
});
|
|
89124
|
+
});
|
|
89125
|
+
setIsPlaying(savedState_1.isPlaying);
|
|
89126
|
+
}
|
|
89127
|
+
}
|
|
89128
|
+
}, [url, setIsPlaying]);
|
|
89129
|
+
// Cleanup effect to handle component unmounting while in PiP mode
|
|
89130
|
+
React.useEffect(function () {
|
|
89131
|
+
return function () {
|
|
89132
|
+
// Unregister from PiP manager when component unmounts
|
|
89133
|
+
pipManager.unregisterVideo();
|
|
89134
|
+
// Check if we're in PiP mode when component unmounts
|
|
89135
|
+
if (document.pictureInPictureElement) {
|
|
89136
|
+
// The PiP manager will handle keeping the video alive
|
|
89137
|
+
console.log('Component unmounting while in Picture-in-Picture mode - PiP will persist');
|
|
89138
|
+
}
|
|
89139
|
+
};
|
|
89140
|
+
}, []);
|
|
88844
89141
|
var playPauseHandler = React.useCallback(function () {
|
|
88845
89142
|
setIsPlaying(function (prev) {
|
|
88846
89143
|
return !prev;
|
|
@@ -89011,9 +89308,18 @@ function usePlayerControls(_a) {
|
|
|
89011
89308
|
if (videoPlayerRef.current && !startPlayed) {
|
|
89012
89309
|
videoPlayerRef.current.seekTo(startTime);
|
|
89013
89310
|
setStartPlayed(true);
|
|
89311
|
+
// Register video with PiP manager when it's ready
|
|
89312
|
+
var videoElement = videoPlayerRef.current.getInternalPlayer();
|
|
89313
|
+
if (videoElement && videoElement instanceof HTMLVideoElement) {
|
|
89314
|
+
// Restore state if there was a previous PiP session
|
|
89315
|
+
var savedState = pipManager.getCurrentState();
|
|
89316
|
+
if (savedState && savedState.url === url && pipManager.isPiPActive()) {
|
|
89317
|
+
pipManager.restoreStateToVideo(videoElement);
|
|
89318
|
+
}
|
|
89319
|
+
}
|
|
89014
89320
|
}
|
|
89015
89321
|
setLoading(false);
|
|
89016
|
-
}, [startTime, startPlayed, setLoading]);
|
|
89322
|
+
}, [startTime, startPlayed, setLoading, url]);
|
|
89017
89323
|
var handleFullScreen = function handleFullScreen() {
|
|
89018
89324
|
var playerContainer = playerContainerRef.current;
|
|
89019
89325
|
if (!playerContainer) {
|
|
@@ -89036,9 +89342,36 @@ function usePlayerControls(_a) {
|
|
|
89036
89342
|
return;
|
|
89037
89343
|
}
|
|
89038
89344
|
if (document.pictureInPictureElement) {
|
|
89039
|
-
|
|
89345
|
+
pipManager.exitPiP()["catch"](function (error) {
|
|
89346
|
+
console.error('Failed to exit picture-in-picture:', error);
|
|
89347
|
+
});
|
|
89040
89348
|
} else {
|
|
89041
|
-
|
|
89349
|
+
// Register the video with the PiP manager
|
|
89350
|
+
pipManager.registerVideo(videoElement, url, function (state) {
|
|
89351
|
+
// Update local state when PiP video state changes
|
|
89352
|
+
setVideoState(function (prev) {
|
|
89353
|
+
return __assign(__assign({}, prev), {
|
|
89354
|
+
played: state.currentTime / duration,
|
|
89355
|
+
volume: state.volume,
|
|
89356
|
+
playbackRate: state.playbackRate
|
|
89357
|
+
});
|
|
89358
|
+
});
|
|
89359
|
+
setIsPlaying(state.isPlaying);
|
|
89360
|
+
});
|
|
89361
|
+
// Ensure the video is playing before entering PiP mode
|
|
89362
|
+
if (videoElement.paused && isPlaying) {
|
|
89363
|
+
videoElement.play().then(function () {
|
|
89364
|
+
pipManager.enterPiP()["catch"](function (error) {
|
|
89365
|
+
console.error('Failed to enter picture-in-picture:', error);
|
|
89366
|
+
});
|
|
89367
|
+
})["catch"](function (error) {
|
|
89368
|
+
console.error('Failed to play video before PiP:', error);
|
|
89369
|
+
});
|
|
89370
|
+
} else {
|
|
89371
|
+
pipManager.enterPiP()["catch"](function (error) {
|
|
89372
|
+
console.error('Failed to enter picture-in-picture:', error);
|
|
89373
|
+
});
|
|
89374
|
+
}
|
|
89042
89375
|
}
|
|
89043
89376
|
};
|
|
89044
89377
|
var handleKeyDown = React.useCallback(function (event) {
|