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
|
@@ -32377,7 +32377,7 @@ var CourseStatusContainer = dt.div(templateObject_13$2 || (templateObject_13$2 =
|
|
|
32377
32377
|
});
|
|
32378
32378
|
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"])));
|
|
32379
32379
|
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"])));
|
|
32380
|
-
var StyledCardBottomContainer = dt.div(templateObject_16$
|
|
32380
|
+
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"])));
|
|
32381
32381
|
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"])));
|
|
32382
32382
|
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) {
|
|
32383
32383
|
var disabled = _a.disabled;
|
|
@@ -32426,7 +32426,7 @@ var GridItem = dt.div(templateObject_32 || (templateObject_32 = __makeTemplateOb
|
|
|
32426
32426
|
var $isFromUser = _a.$isFromUser;
|
|
32427
32427
|
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 " || '';
|
|
32428
32428
|
});
|
|
32429
|
-
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$
|
|
32429
|
+
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;
|
|
32430
32430
|
|
|
32431
32431
|
var TooltipHeight$1 = function TooltipHeight(_a) {
|
|
32432
32432
|
var text = _a.text,
|
|
@@ -42811,7 +42811,7 @@ var InputFileContainer = dt.div(templateObject_12$1 || (templateObject_12$1 = __
|
|
|
42811
42811
|
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"])));
|
|
42812
42812
|
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"])));
|
|
42813
42813
|
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"])));
|
|
42814
|
-
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"
|
|
42814
|
+
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"
|
|
42815
42815
|
// UploaderButton
|
|
42816
42816
|
])));
|
|
42817
42817
|
// UploaderButton
|
|
@@ -42833,7 +42833,7 @@ var styles$1 = {
|
|
|
42833
42833
|
padding: '4px'
|
|
42834
42834
|
}
|
|
42835
42835
|
};
|
|
42836
|
-
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;
|
|
42836
|
+
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;
|
|
42837
42837
|
|
|
42838
42838
|
var ImageWithFallback = function ImageWithFallback(_a) {
|
|
42839
42839
|
var src = _a.src,
|
|
@@ -81355,7 +81355,7 @@ function requirePlayers () {
|
|
|
81355
81355
|
canPlay: import_patterns.canPlay.youtube,
|
|
81356
81356
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81357
81357
|
/* webpackChunkName: 'reactPlayerYouTube' */
|
|
81358
|
-
'./YouTube-
|
|
81358
|
+
'./YouTube-CmnnzZvk.esm.js'
|
|
81359
81359
|
).then(function (n) { return n.Y; }))
|
|
81360
81360
|
},
|
|
81361
81361
|
{
|
|
@@ -81364,7 +81364,7 @@ function requirePlayers () {
|
|
|
81364
81364
|
canPlay: import_patterns.canPlay.soundcloud,
|
|
81365
81365
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81366
81366
|
/* webpackChunkName: 'reactPlayerSoundCloud' */
|
|
81367
|
-
'./SoundCloud-
|
|
81367
|
+
'./SoundCloud-BTHoyFWT.esm.js'
|
|
81368
81368
|
).then(function (n) { return n.S; }))
|
|
81369
81369
|
},
|
|
81370
81370
|
{
|
|
@@ -81373,7 +81373,7 @@ function requirePlayers () {
|
|
|
81373
81373
|
canPlay: import_patterns.canPlay.vimeo,
|
|
81374
81374
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81375
81375
|
/* webpackChunkName: 'reactPlayerVimeo' */
|
|
81376
|
-
'./Vimeo-
|
|
81376
|
+
'./Vimeo-CHlHIswX.esm.js'
|
|
81377
81377
|
).then(function (n) { return n.V; }))
|
|
81378
81378
|
},
|
|
81379
81379
|
{
|
|
@@ -81382,7 +81382,7 @@ function requirePlayers () {
|
|
|
81382
81382
|
canPlay: import_patterns.canPlay.mux,
|
|
81383
81383
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81384
81384
|
/* webpackChunkName: 'reactPlayerMux' */
|
|
81385
|
-
'./Mux-
|
|
81385
|
+
'./Mux-B9YP-rFr.esm.js'
|
|
81386
81386
|
).then(function (n) { return n.M; }))
|
|
81387
81387
|
},
|
|
81388
81388
|
{
|
|
@@ -81391,7 +81391,7 @@ function requirePlayers () {
|
|
|
81391
81391
|
canPlay: import_patterns.canPlay.facebook,
|
|
81392
81392
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81393
81393
|
/* webpackChunkName: 'reactPlayerFacebook' */
|
|
81394
|
-
'./Facebook-
|
|
81394
|
+
'./Facebook-D9Ak6ZJU.esm.js'
|
|
81395
81395
|
).then(function (n) { return n.F; }))
|
|
81396
81396
|
},
|
|
81397
81397
|
{
|
|
@@ -81400,7 +81400,7 @@ function requirePlayers () {
|
|
|
81400
81400
|
canPlay: import_patterns.canPlay.streamable,
|
|
81401
81401
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81402
81402
|
/* webpackChunkName: 'reactPlayerStreamable' */
|
|
81403
|
-
'./Streamable-
|
|
81403
|
+
'./Streamable-DsfQCy3p.esm.js'
|
|
81404
81404
|
).then(function (n) { return n.S; }))
|
|
81405
81405
|
},
|
|
81406
81406
|
{
|
|
@@ -81409,7 +81409,7 @@ function requirePlayers () {
|
|
|
81409
81409
|
canPlay: import_patterns.canPlay.wistia,
|
|
81410
81410
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81411
81411
|
/* webpackChunkName: 'reactPlayerWistia' */
|
|
81412
|
-
'./Wistia-
|
|
81412
|
+
'./Wistia-D-eYyONb.esm.js'
|
|
81413
81413
|
).then(function (n) { return n.W; }))
|
|
81414
81414
|
},
|
|
81415
81415
|
{
|
|
@@ -81418,7 +81418,7 @@ function requirePlayers () {
|
|
|
81418
81418
|
canPlay: import_patterns.canPlay.twitch,
|
|
81419
81419
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81420
81420
|
/* webpackChunkName: 'reactPlayerTwitch' */
|
|
81421
|
-
'./Twitch-
|
|
81421
|
+
'./Twitch-D1BOr8hj.esm.js'
|
|
81422
81422
|
).then(function (n) { return n.T; }))
|
|
81423
81423
|
},
|
|
81424
81424
|
{
|
|
@@ -81427,7 +81427,7 @@ function requirePlayers () {
|
|
|
81427
81427
|
canPlay: import_patterns.canPlay.dailymotion,
|
|
81428
81428
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81429
81429
|
/* webpackChunkName: 'reactPlayerDailyMotion' */
|
|
81430
|
-
'./DailyMotion-
|
|
81430
|
+
'./DailyMotion-BmnymjR1.esm.js'
|
|
81431
81431
|
).then(function (n) { return n.D; }))
|
|
81432
81432
|
},
|
|
81433
81433
|
{
|
|
@@ -81436,7 +81436,7 @@ function requirePlayers () {
|
|
|
81436
81436
|
canPlay: import_patterns.canPlay.mixcloud,
|
|
81437
81437
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81438
81438
|
/* webpackChunkName: 'reactPlayerMixcloud' */
|
|
81439
|
-
'./Mixcloud-
|
|
81439
|
+
'./Mixcloud-BobSN3YI.esm.js'
|
|
81440
81440
|
).then(function (n) { return n.M; }))
|
|
81441
81441
|
},
|
|
81442
81442
|
{
|
|
@@ -81445,7 +81445,7 @@ function requirePlayers () {
|
|
|
81445
81445
|
canPlay: import_patterns.canPlay.vidyard,
|
|
81446
81446
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81447
81447
|
/* webpackChunkName: 'reactPlayerVidyard' */
|
|
81448
|
-
'./Vidyard-
|
|
81448
|
+
'./Vidyard-C1csjpQH.esm.js'
|
|
81449
81449
|
).then(function (n) { return n.V; }))
|
|
81450
81450
|
},
|
|
81451
81451
|
{
|
|
@@ -81454,7 +81454,7 @@ function requirePlayers () {
|
|
|
81454
81454
|
canPlay: import_patterns.canPlay.kaltura,
|
|
81455
81455
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81456
81456
|
/* webpackChunkName: 'reactPlayerKaltura' */
|
|
81457
|
-
'./Kaltura-
|
|
81457
|
+
'./Kaltura-DPaEN-dq.esm.js'
|
|
81458
81458
|
).then(function (n) { return n.K; }))
|
|
81459
81459
|
},
|
|
81460
81460
|
{
|
|
@@ -81466,7 +81466,7 @@ function requirePlayers () {
|
|
|
81466
81466
|
},
|
|
81467
81467
|
lazyPlayer: (0, import_utils.lazy)(() => import(
|
|
81468
81468
|
/* webpackChunkName: 'reactPlayerFilePlayer' */
|
|
81469
|
-
'./FilePlayer-
|
|
81469
|
+
'./FilePlayer-wg9lyafD.esm.js'
|
|
81470
81470
|
).then(function (n) { return n.F; }))
|
|
81471
81471
|
}
|
|
81472
81472
|
];
|
|
@@ -82287,7 +82287,7 @@ function requireReactPlayer () {
|
|
|
82287
82287
|
var import_Player = __toESM(/*@__PURE__*/ requirePlayer());
|
|
82288
82288
|
const Preview = (0, import_utils.lazy)(() => import(
|
|
82289
82289
|
/* webpackChunkName: 'reactPlayerPreview' */
|
|
82290
|
-
'./Preview-
|
|
82290
|
+
'./Preview-XcTlhHT1.esm.js'
|
|
82291
82291
|
).then(function (n) { return n.P; }));
|
|
82292
82292
|
const IS_BROWSER = typeof window !== "undefined" && window.document && typeof document !== "undefined";
|
|
82293
82293
|
const IS_GLOBAL = typeof commonjsGlobal !== "undefined" && commonjsGlobal.window && commonjsGlobal.window.document;
|
|
@@ -82529,32 +82529,36 @@ var injectHLSSubtitleStyles = function injectHLSSubtitleStyles() {
|
|
|
82529
82529
|
};
|
|
82530
82530
|
var templateObject_1$9, templateObject_2$7, templateObject_3$4, templateObject_4$2, templateObject_5$2, templateObject_6$2, templateObject_7$1;
|
|
82531
82531
|
|
|
82532
|
-
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"])), {
|
|
82532
|
+
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"])), {
|
|
82533
82533
|
fontStyle: 'descriptor'
|
|
82534
82534
|
});
|
|
82535
|
-
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) {
|
|
82535
|
+
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) {
|
|
82536
82536
|
var value = _a.value;
|
|
82537
82537
|
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 )");
|
|
82538
82538
|
});
|
|
82539
|
-
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"])));
|
|
82540
|
-
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) {
|
|
82539
|
+
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"])));
|
|
82540
|
+
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) {
|
|
82541
82541
|
var value = _a.value;
|
|
82542
82542
|
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 )");
|
|
82543
82543
|
});
|
|
82544
|
-
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"])));
|
|
82545
|
-
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"])));
|
|
82546
|
-
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
|
|
82544
|
+
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"])));
|
|
82545
|
+
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"])));
|
|
82546
|
+
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"
|
|
82547
|
+
// Base styles for icon containers
|
|
82548
|
+
])), {
|
|
82547
82549
|
fontStyle: 'descriptor'
|
|
82548
82550
|
});
|
|
82549
|
-
|
|
82550
|
-
var
|
|
82551
|
-
var
|
|
82552
|
-
var
|
|
82553
|
-
var
|
|
82554
|
-
var
|
|
82555
|
-
var
|
|
82556
|
-
var
|
|
82557
|
-
var
|
|
82551
|
+
// Base styles for icon containers
|
|
82552
|
+
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"])));
|
|
82553
|
+
var StyledHeartIconContainer = dt(BaseIconContainer)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n /* Additional specific styles if needed */\n"], ["\n /* Additional specific styles if needed */\n"])));
|
|
82554
|
+
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"])));
|
|
82555
|
+
var StyledSubtitlesIconContainer = dt(BaseIconContainer)(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n /* Additional specific styles if needed */\n"], ["\n /* Additional specific styles if needed */\n"])));
|
|
82556
|
+
var StyledFullscreenIconContainer = dt(BaseIconContainer)(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n /* Additional specific styles if needed */\n"], ["\n /* Additional specific styles if needed */\n"])));
|
|
82557
|
+
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"])));
|
|
82558
|
+
var StyledVolumeIconContainer = dt(BaseIconContainer)(templateObject_14 || (templateObject_14 = __makeTemplateObject(["\n /* Additional specific styles if needed */\n"], ["\n /* Additional specific styles if needed */\n"])));
|
|
82559
|
+
var StyledPlayPauseIconContainer = dt(BaseIconContainer)(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n /* Additional specific styles if needed */\n"], ["\n /* Additional specific styles if needed */\n"])));
|
|
82560
|
+
var StyledRewindIconContainer = dt(BaseIconContainer)(templateObject_16 || (templateObject_16 = __makeTemplateObject(["\n /* Additional specific styles if needed */\n"], ["\n /* Additional specific styles if needed */\n"])));
|
|
82561
|
+
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;
|
|
82558
82562
|
|
|
82559
82563
|
var PLAYBACK_SPEED_LIST = [{
|
|
82560
82564
|
label: 'playback_speed.2x',
|
|
@@ -82843,8 +82847,9 @@ var Controls = function Controls(_a) {
|
|
|
82843
82847
|
children: playing ? jsxRuntimeExports.jsx(PauseIcon, {}) : jsxRuntimeExports.jsx(PlayIcon, {})
|
|
82844
82848
|
})
|
|
82845
82849
|
}), jsxRuntimeExports.jsx(CustomTooltip, {
|
|
82846
|
-
title: "Rewind
|
|
82850
|
+
title: "Rewind 5 seconds",
|
|
82847
82851
|
children: jsxRuntimeExports.jsx(StyledRewindIconContainer, {
|
|
82852
|
+
className: "rewind-control",
|
|
82848
82853
|
children: jsxRuntimeExports.jsx(RewindIcon, {
|
|
82849
82854
|
onClick: rewindHandler
|
|
82850
82855
|
})
|
|
@@ -82852,6 +82857,7 @@ var Controls = function Controls(_a) {
|
|
|
82852
82857
|
}), jsxRuntimeExports.jsx(CustomTooltip, {
|
|
82853
82858
|
title: "Forward 10 seconds",
|
|
82854
82859
|
children: jsxRuntimeExports.jsx(StyledRewindIconContainer, {
|
|
82860
|
+
className: "forward-control",
|
|
82855
82861
|
children: jsxRuntimeExports.jsx(RewindIcon, {
|
|
82856
82862
|
forward: true,
|
|
82857
82863
|
onClick: handleFastForward
|
|
@@ -82876,6 +82882,7 @@ var Controls = function Controls(_a) {
|
|
|
82876
82882
|
children: [handleSkipBackward && jsxRuntimeExports.jsx(CustomTooltip, {
|
|
82877
82883
|
title: "Previous video",
|
|
82878
82884
|
children: jsxRuntimeExports.jsx(StyledRewindIconContainer, {
|
|
82885
|
+
className: "skip-control",
|
|
82879
82886
|
children: jsxRuntimeExports.jsx(SkipIcon, {
|
|
82880
82887
|
onClick: function onClick() {
|
|
82881
82888
|
if (!isPreviousVideo) return;
|
|
@@ -82887,6 +82894,7 @@ var Controls = function Controls(_a) {
|
|
|
82887
82894
|
}), handleSkipForward && jsxRuntimeExports.jsx(CustomTooltip, {
|
|
82888
82895
|
title: "Next video",
|
|
82889
82896
|
children: jsxRuntimeExports.jsx(StyledRewindIconContainer, {
|
|
82897
|
+
className: "skip-control",
|
|
82890
82898
|
children: jsxRuntimeExports.jsx(SkipIcon, {
|
|
82891
82899
|
forward: true,
|
|
82892
82900
|
onClick: function onClick() {
|
|
@@ -82899,6 +82907,7 @@ var Controls = function Controls(_a) {
|
|
|
82899
82907
|
}), showFavorite && jsxRuntimeExports.jsx(CustomTooltip, {
|
|
82900
82908
|
title: isFavorite ? 'Remove from favorites' : 'Add to favorites',
|
|
82901
82909
|
children: jsxRuntimeExports.jsx(StyledHeartIconContainer, {
|
|
82910
|
+
className: "favorite-control",
|
|
82902
82911
|
children: jsxRuntimeExports.jsx(HeartIcon, {
|
|
82903
82912
|
active: isFavorite,
|
|
82904
82913
|
onClick: toggleIsFavorite
|
|
@@ -82907,6 +82916,7 @@ var Controls = function Controls(_a) {
|
|
|
82907
82916
|
}), showDownload && downloadUrl && jsxRuntimeExports.jsx(CustomTooltip, {
|
|
82908
82917
|
title: "Download video",
|
|
82909
82918
|
children: jsxRuntimeExports.jsx(StyledDownloadIconContainer, {
|
|
82919
|
+
className: "download-control",
|
|
82910
82920
|
children: jsxRuntimeExports.jsx(DownloadIcon, {
|
|
82911
82921
|
onClick: handleDownloadClick
|
|
82912
82922
|
})
|
|
@@ -88728,6 +88738,247 @@ var useEventListener = function useEventListener(eventName, handler, element, sh
|
|
|
88728
88738
|
}, [eventName, element, shouldRun]);
|
|
88729
88739
|
};
|
|
88730
88740
|
|
|
88741
|
+
/**
|
|
88742
|
+
* Global Picture-in-Picture Manager
|
|
88743
|
+
* This module manages PiP state across component unmounts and route changes
|
|
88744
|
+
*/
|
|
88745
|
+
var PictureInPictureManager = /** @class */function () {
|
|
88746
|
+
function PictureInPictureManager() {
|
|
88747
|
+
this.videoElement = null;
|
|
88748
|
+
this.pipContainer = null;
|
|
88749
|
+
this.currentVideoState = null;
|
|
88750
|
+
this.onStateChange = null;
|
|
88751
|
+
// Listen for PiP events globally
|
|
88752
|
+
document.addEventListener('leavepictureinpicture', this.handlePiPExit.bind(this));
|
|
88753
|
+
document.addEventListener('enterpictureinpicture', this.handlePiPEnter.bind(this));
|
|
88754
|
+
}
|
|
88755
|
+
/**
|
|
88756
|
+
* Register a video element for PiP management
|
|
88757
|
+
*/
|
|
88758
|
+
PictureInPictureManager.prototype.registerVideo = function (videoElement, url, onStateChange) {
|
|
88759
|
+
this.videoElement = videoElement;
|
|
88760
|
+
this.onStateChange = onStateChange || null;
|
|
88761
|
+
// Store current video state
|
|
88762
|
+
this.currentVideoState = {
|
|
88763
|
+
url: url,
|
|
88764
|
+
currentTime: videoElement.currentTime,
|
|
88765
|
+
isPlaying: !videoElement.paused,
|
|
88766
|
+
volume: videoElement.volume,
|
|
88767
|
+
playbackRate: videoElement.playbackRate
|
|
88768
|
+
};
|
|
88769
|
+
// Add listeners to track state changes
|
|
88770
|
+
videoElement.addEventListener('timeupdate', this.handleTimeUpdate.bind(this));
|
|
88771
|
+
videoElement.addEventListener('play', this.handlePlayStateChange.bind(this));
|
|
88772
|
+
videoElement.addEventListener('pause', this.handlePlayStateChange.bind(this));
|
|
88773
|
+
videoElement.addEventListener('volumechange', this.handleVolumeChange.bind(this));
|
|
88774
|
+
videoElement.addEventListener('ratechange', this.handleRateChange.bind(this));
|
|
88775
|
+
};
|
|
88776
|
+
/**
|
|
88777
|
+
* Unregister the current video element
|
|
88778
|
+
*/
|
|
88779
|
+
PictureInPictureManager.prototype.unregisterVideo = function () {
|
|
88780
|
+
if (this.videoElement) {
|
|
88781
|
+
this.videoElement.removeEventListener('timeupdate', this.handleTimeUpdate.bind(this));
|
|
88782
|
+
this.videoElement.removeEventListener('play', this.handlePlayStateChange.bind(this));
|
|
88783
|
+
this.videoElement.removeEventListener('pause', this.handlePlayStateChange.bind(this));
|
|
88784
|
+
this.videoElement.removeEventListener('volumechange', this.handleVolumeChange.bind(this));
|
|
88785
|
+
this.videoElement.removeEventListener('ratechange', this.handleRateChange.bind(this));
|
|
88786
|
+
}
|
|
88787
|
+
this.videoElement = null;
|
|
88788
|
+
this.onStateChange = null;
|
|
88789
|
+
};
|
|
88790
|
+
/**
|
|
88791
|
+
* Create a persistent video element for PiP
|
|
88792
|
+
*/
|
|
88793
|
+
PictureInPictureManager.prototype.createPersistentVideo = function (originalVideo) {
|
|
88794
|
+
var persistentVideo = originalVideo.cloneNode(true);
|
|
88795
|
+
// Copy all relevant properties
|
|
88796
|
+
persistentVideo.src = originalVideo.src;
|
|
88797
|
+
persistentVideo.currentTime = originalVideo.currentTime;
|
|
88798
|
+
persistentVideo.volume = originalVideo.volume;
|
|
88799
|
+
persistentVideo.playbackRate = originalVideo.playbackRate;
|
|
88800
|
+
persistentVideo.muted = originalVideo.muted;
|
|
88801
|
+
// Set properties for PiP
|
|
88802
|
+
persistentVideo.style.position = 'fixed';
|
|
88803
|
+
persistentVideo.style.top = '-9999px';
|
|
88804
|
+
persistentVideo.style.left = '-9999px';
|
|
88805
|
+
persistentVideo.style.width = '1px';
|
|
88806
|
+
persistentVideo.style.height = '1px';
|
|
88807
|
+
persistentVideo.style.opacity = '0';
|
|
88808
|
+
persistentVideo.style.pointerEvents = 'none';
|
|
88809
|
+
return persistentVideo;
|
|
88810
|
+
};
|
|
88811
|
+
/**
|
|
88812
|
+
* Enter picture-in-picture mode with persistence
|
|
88813
|
+
*/
|
|
88814
|
+
PictureInPictureManager.prototype.enterPiP = function () {
|
|
88815
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
88816
|
+
var persistentVideo_1, error_1;
|
|
88817
|
+
return __generator(this, function (_a) {
|
|
88818
|
+
switch (_a.label) {
|
|
88819
|
+
case 0:
|
|
88820
|
+
if (!this.videoElement || !document.pictureInPictureEnabled) {
|
|
88821
|
+
return [2 /*return*/];
|
|
88822
|
+
}
|
|
88823
|
+
_a.label = 1;
|
|
88824
|
+
case 1:
|
|
88825
|
+
_a.trys.push([1, 6,, 7]);
|
|
88826
|
+
if (!document.pictureInPictureElement) return [3 /*break*/, 3];
|
|
88827
|
+
return [4 /*yield*/, document.exitPictureInPicture()];
|
|
88828
|
+
case 2:
|
|
88829
|
+
_a.sent();
|
|
88830
|
+
_a.label = 3;
|
|
88831
|
+
case 3:
|
|
88832
|
+
// Create a container if it doesn't exist
|
|
88833
|
+
if (!this.pipContainer) {
|
|
88834
|
+
this.pipContainer = document.createElement('div');
|
|
88835
|
+
this.pipContainer.id = 'suada-pip-container';
|
|
88836
|
+
this.pipContainer.style.position = 'fixed';
|
|
88837
|
+
this.pipContainer.style.top = '-9999px';
|
|
88838
|
+
this.pipContainer.style.left = '-9999px';
|
|
88839
|
+
this.pipContainer.style.width = '1px';
|
|
88840
|
+
this.pipContainer.style.height = '1px';
|
|
88841
|
+
this.pipContainer.style.zIndex = '-1';
|
|
88842
|
+
document.body.appendChild(this.pipContainer);
|
|
88843
|
+
}
|
|
88844
|
+
persistentVideo_1 = this.createPersistentVideo(this.videoElement);
|
|
88845
|
+
this.pipContainer.appendChild(persistentVideo_1);
|
|
88846
|
+
// Wait for video to load
|
|
88847
|
+
return [4 /*yield*/, new Promise(function (resolve) {
|
|
88848
|
+
if (persistentVideo_1.readyState >= 2) {
|
|
88849
|
+
resolve();
|
|
88850
|
+
} else {
|
|
88851
|
+
persistentVideo_1.addEventListener('loadedmetadata', function () {
|
|
88852
|
+
return resolve();
|
|
88853
|
+
}, {
|
|
88854
|
+
once: true
|
|
88855
|
+
});
|
|
88856
|
+
}
|
|
88857
|
+
})
|
|
88858
|
+
// Enter PiP mode
|
|
88859
|
+
];
|
|
88860
|
+
case 4:
|
|
88861
|
+
// Wait for video to load
|
|
88862
|
+
_a.sent();
|
|
88863
|
+
// Enter PiP mode
|
|
88864
|
+
return [4 /*yield*/, persistentVideo_1.requestPictureInPicture()
|
|
88865
|
+
// Update the reference to the persistent video
|
|
88866
|
+
];
|
|
88867
|
+
case 5:
|
|
88868
|
+
// Enter PiP mode
|
|
88869
|
+
_a.sent();
|
|
88870
|
+
// Update the reference to the persistent video
|
|
88871
|
+
this.videoElement = persistentVideo_1;
|
|
88872
|
+
return [3 /*break*/, 7];
|
|
88873
|
+
case 6:
|
|
88874
|
+
error_1 = _a.sent();
|
|
88875
|
+
console.error('Failed to enter picture-in-picture:', error_1);
|
|
88876
|
+
return [3 /*break*/, 7];
|
|
88877
|
+
case 7:
|
|
88878
|
+
return [2 /*return*/];
|
|
88879
|
+
}
|
|
88880
|
+
});
|
|
88881
|
+
});
|
|
88882
|
+
};
|
|
88883
|
+
/**
|
|
88884
|
+
* Exit picture-in-picture mode
|
|
88885
|
+
*/
|
|
88886
|
+
PictureInPictureManager.prototype.exitPiP = function () {
|
|
88887
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
88888
|
+
var error_2;
|
|
88889
|
+
return __generator(this, function (_a) {
|
|
88890
|
+
switch (_a.label) {
|
|
88891
|
+
case 0:
|
|
88892
|
+
_a.trys.push([0, 3,, 4]);
|
|
88893
|
+
if (!document.pictureInPictureElement) return [3 /*break*/, 2];
|
|
88894
|
+
return [4 /*yield*/, document.exitPictureInPicture()];
|
|
88895
|
+
case 1:
|
|
88896
|
+
_a.sent();
|
|
88897
|
+
_a.label = 2;
|
|
88898
|
+
case 2:
|
|
88899
|
+
return [3 /*break*/, 4];
|
|
88900
|
+
case 3:
|
|
88901
|
+
error_2 = _a.sent();
|
|
88902
|
+
console.error('Failed to exit picture-in-picture:', error_2);
|
|
88903
|
+
return [3 /*break*/, 4];
|
|
88904
|
+
case 4:
|
|
88905
|
+
return [2 /*return*/];
|
|
88906
|
+
}
|
|
88907
|
+
});
|
|
88908
|
+
});
|
|
88909
|
+
};
|
|
88910
|
+
/**
|
|
88911
|
+
* Check if currently in PiP mode
|
|
88912
|
+
*/
|
|
88913
|
+
PictureInPictureManager.prototype.isPiPActive = function () {
|
|
88914
|
+
return !!document.pictureInPictureElement;
|
|
88915
|
+
};
|
|
88916
|
+
/**
|
|
88917
|
+
* Get current video state
|
|
88918
|
+
*/
|
|
88919
|
+
PictureInPictureManager.prototype.getCurrentState = function () {
|
|
88920
|
+
return this.currentVideoState;
|
|
88921
|
+
};
|
|
88922
|
+
/**
|
|
88923
|
+
* Restore video state to a new video element
|
|
88924
|
+
*/
|
|
88925
|
+
PictureInPictureManager.prototype.restoreStateToVideo = function (videoElement) {
|
|
88926
|
+
if (!this.currentVideoState) return;
|
|
88927
|
+
videoElement.currentTime = this.currentVideoState.currentTime;
|
|
88928
|
+
videoElement.volume = this.currentVideoState.volume;
|
|
88929
|
+
videoElement.playbackRate = this.currentVideoState.playbackRate;
|
|
88930
|
+
if (this.currentVideoState.isPlaying) {
|
|
88931
|
+
videoElement.play()["catch"](console.error);
|
|
88932
|
+
}
|
|
88933
|
+
};
|
|
88934
|
+
PictureInPictureManager.prototype.handleTimeUpdate = function () {
|
|
88935
|
+
if (this.videoElement && this.currentVideoState) {
|
|
88936
|
+
this.currentVideoState.currentTime = this.videoElement.currentTime;
|
|
88937
|
+
this.notifyStateChange();
|
|
88938
|
+
}
|
|
88939
|
+
};
|
|
88940
|
+
PictureInPictureManager.prototype.handlePlayStateChange = function () {
|
|
88941
|
+
if (this.videoElement && this.currentVideoState) {
|
|
88942
|
+
this.currentVideoState.isPlaying = !this.videoElement.paused;
|
|
88943
|
+
this.notifyStateChange();
|
|
88944
|
+
}
|
|
88945
|
+
};
|
|
88946
|
+
PictureInPictureManager.prototype.handleVolumeChange = function () {
|
|
88947
|
+
if (this.videoElement && this.currentVideoState) {
|
|
88948
|
+
this.currentVideoState.volume = this.videoElement.volume;
|
|
88949
|
+
this.notifyStateChange();
|
|
88950
|
+
}
|
|
88951
|
+
};
|
|
88952
|
+
PictureInPictureManager.prototype.handleRateChange = function () {
|
|
88953
|
+
if (this.videoElement && this.currentVideoState) {
|
|
88954
|
+
this.currentVideoState.playbackRate = this.videoElement.playbackRate;
|
|
88955
|
+
this.notifyStateChange();
|
|
88956
|
+
}
|
|
88957
|
+
};
|
|
88958
|
+
PictureInPictureManager.prototype.handlePiPEnter = function () {
|
|
88959
|
+
console.log('Entered picture-in-picture mode');
|
|
88960
|
+
};
|
|
88961
|
+
PictureInPictureManager.prototype.handlePiPExit = function () {
|
|
88962
|
+
console.log('Exited picture-in-picture mode');
|
|
88963
|
+
this.cleanup();
|
|
88964
|
+
};
|
|
88965
|
+
PictureInPictureManager.prototype.notifyStateChange = function () {
|
|
88966
|
+
if (this.onStateChange && this.currentVideoState) {
|
|
88967
|
+
this.onStateChange(this.currentVideoState);
|
|
88968
|
+
}
|
|
88969
|
+
};
|
|
88970
|
+
PictureInPictureManager.prototype.cleanup = function () {
|
|
88971
|
+
// Clean up the persistent container
|
|
88972
|
+
if (this.pipContainer && this.pipContainer.parentNode) {
|
|
88973
|
+
this.pipContainer.parentNode.removeChild(this.pipContainer);
|
|
88974
|
+
this.pipContainer = null;
|
|
88975
|
+
}
|
|
88976
|
+
};
|
|
88977
|
+
return PictureInPictureManager;
|
|
88978
|
+
}();
|
|
88979
|
+
// Create a singleton instance
|
|
88980
|
+
var pipManager = new PictureInPictureManager();
|
|
88981
|
+
|
|
88731
88982
|
var count = 0;
|
|
88732
88983
|
var defaultVideoState = {
|
|
88733
88984
|
muted: false,
|
|
@@ -88803,24 +89054,70 @@ function usePlayerControls(_a) {
|
|
|
88803
89054
|
}
|
|
88804
89055
|
}, [subtitleUrl]);
|
|
88805
89056
|
useEffect(function () {
|
|
89057
|
+
var _a;
|
|
88806
89058
|
var handleFullscreenChange = function handleFullscreenChange() {
|
|
88807
89059
|
setIsFullscreen(!!document.fullscreenElement);
|
|
88808
89060
|
};
|
|
88809
|
-
var
|
|
88810
|
-
setIsPiPActive(
|
|
89061
|
+
var handlePiPEnter = function handlePiPEnter() {
|
|
89062
|
+
setIsPiPActive(true);
|
|
89063
|
+
};
|
|
89064
|
+
var handlePiPLeave = function handlePiPLeave() {
|
|
89065
|
+
setIsPiPActive(false);
|
|
89066
|
+
// Also cleanup the PiP manager when PiP exits
|
|
89067
|
+
pipManager.unregisterVideo();
|
|
88811
89068
|
};
|
|
88812
89069
|
document.addEventListener('fullscreenchange', handleFullscreenChange);
|
|
88813
|
-
document.addEventListener('enterpictureinpicture',
|
|
88814
|
-
document.addEventListener('leavepictureinpicture',
|
|
89070
|
+
document.addEventListener('enterpictureinpicture', handlePiPEnter);
|
|
89071
|
+
document.addEventListener('leavepictureinpicture', handlePiPLeave);
|
|
89072
|
+
// Add event listeners to the video element when it's available
|
|
89073
|
+
var videoElement = (_a = videoPlayerRef.current) === null || _a === void 0 ? void 0 : _a.getInternalPlayer();
|
|
89074
|
+
if (videoElement && videoElement instanceof HTMLVideoElement) {
|
|
89075
|
+
videoElement.addEventListener('enterpictureinpicture', handlePiPEnter);
|
|
89076
|
+
videoElement.addEventListener('leavepictureinpicture', handlePiPLeave);
|
|
89077
|
+
}
|
|
88815
89078
|
return function () {
|
|
88816
89079
|
document.removeEventListener('fullscreenchange', handleFullscreenChange);
|
|
88817
|
-
document.removeEventListener('enterpictureinpicture',
|
|
88818
|
-
document.removeEventListener('leavepictureinpicture',
|
|
89080
|
+
document.removeEventListener('enterpictureinpicture', handlePiPEnter);
|
|
89081
|
+
document.removeEventListener('leavepictureinpicture', handlePiPLeave);
|
|
89082
|
+
// Clean up video element listeners using the captured reference
|
|
89083
|
+
if (videoElement && videoElement instanceof HTMLVideoElement) {
|
|
89084
|
+
videoElement.removeEventListener('enterpictureinpicture', handlePiPEnter);
|
|
89085
|
+
videoElement.removeEventListener('leavepictureinpicture', handlePiPLeave);
|
|
89086
|
+
}
|
|
88819
89087
|
};
|
|
88820
|
-
}, []);
|
|
89088
|
+
}, [url]); // Re-run when URL changes to ensure proper cleanup and setup
|
|
88821
89089
|
useEffect(function () {
|
|
88822
89090
|
setStartPlayed(false);
|
|
88823
|
-
|
|
89091
|
+
// Check if there's an active PiP session and restore state
|
|
89092
|
+
if (pipManager.isPiPActive()) {
|
|
89093
|
+
var savedState_1 = pipManager.getCurrentState();
|
|
89094
|
+
if (savedState_1 && savedState_1.url === url) {
|
|
89095
|
+
setIsPiPActive(true);
|
|
89096
|
+
// Restore video state from PiP manager
|
|
89097
|
+
setVideoState(function (prev) {
|
|
89098
|
+
var _a;
|
|
89099
|
+
return __assign(__assign({}, prev), {
|
|
89100
|
+
volume: savedState_1.volume,
|
|
89101
|
+
playbackRate: savedState_1.playbackRate,
|
|
89102
|
+
played: savedState_1.currentTime / (((_a = videoPlayerRef.current) === null || _a === void 0 ? void 0 : _a.getDuration()) || 1)
|
|
89103
|
+
});
|
|
89104
|
+
});
|
|
89105
|
+
setIsPlaying(savedState_1.isPlaying);
|
|
89106
|
+
}
|
|
89107
|
+
}
|
|
89108
|
+
}, [url, setIsPlaying]);
|
|
89109
|
+
// Cleanup effect to handle component unmounting while in PiP mode
|
|
89110
|
+
useEffect(function () {
|
|
89111
|
+
return function () {
|
|
89112
|
+
// Unregister from PiP manager when component unmounts
|
|
89113
|
+
pipManager.unregisterVideo();
|
|
89114
|
+
// Check if we're in PiP mode when component unmounts
|
|
89115
|
+
if (document.pictureInPictureElement) {
|
|
89116
|
+
// The PiP manager will handle keeping the video alive
|
|
89117
|
+
console.log('Component unmounting while in Picture-in-Picture mode - PiP will persist');
|
|
89118
|
+
}
|
|
89119
|
+
};
|
|
89120
|
+
}, []);
|
|
88824
89121
|
var playPauseHandler = useCallback(function () {
|
|
88825
89122
|
setIsPlaying(function (prev) {
|
|
88826
89123
|
return !prev;
|
|
@@ -88991,9 +89288,18 @@ function usePlayerControls(_a) {
|
|
|
88991
89288
|
if (videoPlayerRef.current && !startPlayed) {
|
|
88992
89289
|
videoPlayerRef.current.seekTo(startTime);
|
|
88993
89290
|
setStartPlayed(true);
|
|
89291
|
+
// Register video with PiP manager when it's ready
|
|
89292
|
+
var videoElement = videoPlayerRef.current.getInternalPlayer();
|
|
89293
|
+
if (videoElement && videoElement instanceof HTMLVideoElement) {
|
|
89294
|
+
// Restore state if there was a previous PiP session
|
|
89295
|
+
var savedState = pipManager.getCurrentState();
|
|
89296
|
+
if (savedState && savedState.url === url && pipManager.isPiPActive()) {
|
|
89297
|
+
pipManager.restoreStateToVideo(videoElement);
|
|
89298
|
+
}
|
|
89299
|
+
}
|
|
88994
89300
|
}
|
|
88995
89301
|
setLoading(false);
|
|
88996
|
-
}, [startTime, startPlayed, setLoading]);
|
|
89302
|
+
}, [startTime, startPlayed, setLoading, url]);
|
|
88997
89303
|
var handleFullScreen = function handleFullScreen() {
|
|
88998
89304
|
var playerContainer = playerContainerRef.current;
|
|
88999
89305
|
if (!playerContainer) {
|
|
@@ -89016,9 +89322,36 @@ function usePlayerControls(_a) {
|
|
|
89016
89322
|
return;
|
|
89017
89323
|
}
|
|
89018
89324
|
if (document.pictureInPictureElement) {
|
|
89019
|
-
|
|
89325
|
+
pipManager.exitPiP()["catch"](function (error) {
|
|
89326
|
+
console.error('Failed to exit picture-in-picture:', error);
|
|
89327
|
+
});
|
|
89020
89328
|
} else {
|
|
89021
|
-
|
|
89329
|
+
// Register the video with the PiP manager
|
|
89330
|
+
pipManager.registerVideo(videoElement, url, function (state) {
|
|
89331
|
+
// Update local state when PiP video state changes
|
|
89332
|
+
setVideoState(function (prev) {
|
|
89333
|
+
return __assign(__assign({}, prev), {
|
|
89334
|
+
played: state.currentTime / duration,
|
|
89335
|
+
volume: state.volume,
|
|
89336
|
+
playbackRate: state.playbackRate
|
|
89337
|
+
});
|
|
89338
|
+
});
|
|
89339
|
+
setIsPlaying(state.isPlaying);
|
|
89340
|
+
});
|
|
89341
|
+
// Ensure the video is playing before entering PiP mode
|
|
89342
|
+
if (videoElement.paused && isPlaying) {
|
|
89343
|
+
videoElement.play().then(function () {
|
|
89344
|
+
pipManager.enterPiP()["catch"](function (error) {
|
|
89345
|
+
console.error('Failed to enter picture-in-picture:', error);
|
|
89346
|
+
});
|
|
89347
|
+
})["catch"](function (error) {
|
|
89348
|
+
console.error('Failed to play video before PiP:', error);
|
|
89349
|
+
});
|
|
89350
|
+
} else {
|
|
89351
|
+
pipManager.enterPiP()["catch"](function (error) {
|
|
89352
|
+
console.error('Failed to enter picture-in-picture:', error);
|
|
89353
|
+
});
|
|
89354
|
+
}
|
|
89022
89355
|
}
|
|
89023
89356
|
};
|
|
89024
89357
|
var handleKeyDown = useCallback(function (event) {
|