tmg-media-player 0.0.47 → 0.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/{chunk-52WLRMWV.js → chunk-2COEQIWO.js} +32 -32
  2. package/dist/{chunk-JX4ED2TF.js → chunk-4AULKZY5.js} +5 -5
  3. package/dist/{chunk-ULQ2MD6B.js → chunk-52C7I5MC.js} +26 -26
  4. package/dist/{chunk-GAYJ2V53.js → chunk-5TK2MCDO.js} +5 -5
  5. package/dist/{chunk-XKQBBXIV.js → chunk-77SZDKWV.js} +2 -2
  6. package/dist/{chunk-U5F6FS7Q.js → chunk-7P3SODHT.js} +7 -7
  7. package/dist/{chunk-QXSJAEBE.js → chunk-7QDSSDRH.js} +2 -2
  8. package/dist/{chunk-4T7ZVCMS.js → chunk-CDKSSYGF.js} +2 -2
  9. package/dist/{chunk-VYC7N5ZY.js → chunk-EBFAGVND.js} +41 -41
  10. package/dist/{chunk-XHV5LEY3.js → chunk-FFUPTYZL.js} +17 -17
  11. package/dist/chunk-FFUPTYZL.js.map +1 -0
  12. package/dist/{chunk-GW634LFX.js → chunk-JLUX5NZJ.js} +19 -19
  13. package/dist/{chunk-WX72UHLA.js → chunk-KJX3SSWX.js} +4 -4
  14. package/dist/{chunk-SA4OYBCQ.js → chunk-LASLQXJC.js} +2 -2
  15. package/dist/chunk-LASLQXJC.js.map +1 -0
  16. package/dist/{chunk-ALQVOK6Q.js → chunk-LD6EP37L.js} +2 -2
  17. package/dist/{chunk-CAM6IQ3T.js → chunk-LDT7RVZX.js} +2 -2
  18. package/dist/{chunk-CCGWYDVN.js → chunk-OSUNW323.js} +2 -2
  19. package/dist/{chunk-YXTU4XMT.js → chunk-PCC327MG.js} +62 -62
  20. package/dist/{chunk-YDRDOSZ5.js → chunk-QAMLWLEZ.js} +14 -14
  21. package/dist/{chunk-VNXTVJXF.js → chunk-QAZGBRF3.js} +7 -7
  22. package/dist/{chunk-EXTGGYPL.js → chunk-QPHJOYEO.js} +27 -27
  23. package/dist/{chunk-W5GYHJAH.js → chunk-UKS5MJPA.js} +2 -2
  24. package/dist/{chunk-QXVEPU5G.js → chunk-W23DZJNI.js} +2 -2
  25. package/dist/{chunk-26BY5N4X.js → chunk-YMTSIRUK.js} +5 -5
  26. package/dist/components/controls/fullscreenOrientation.js +2 -2
  27. package/dist/components/controls/timeline/index.js +3 -3
  28. package/dist/components/holders/pipPlaceholder.js +3 -3
  29. package/dist/components/icons/z-register.js +9 -9
  30. package/dist/components/z-register.js +10 -10
  31. package/dist/core/controller.js +2 -2
  32. package/dist/index.css +14 -13
  33. package/dist/index.css.map +1 -1
  34. package/dist/index.js +3 -3
  35. package/dist/init.js +3 -3
  36. package/dist/plugs/menus/main/actions.js +2 -2
  37. package/dist/plugs/menus/settings/auto.js +2 -2
  38. package/dist/plugs/menus/settings/frame.js +2 -2
  39. package/dist/plugs/menus/settings/modes.js +2 -2
  40. package/dist/plugs/menus/settings/sleepTimer.js +2 -2
  41. package/dist/plugs/menus/settings/toasts.js +2 -2
  42. package/dist/plugs/menus/settings/voice.js +2 -2
  43. package/dist/plugs/menus/z-register.js +13 -13
  44. package/dist/plugs/settings/auto/index.cjs +1 -1
  45. package/dist/plugs/settings/auto/index.cjs.map +1 -1
  46. package/dist/plugs/settings/auto/index.js +3 -3
  47. package/dist/plugs/settings/captions/index.js +3 -3
  48. package/dist/plugs/settings/modes/airplay.js +4 -4
  49. package/dist/plugs/settings/modes/cast.js +4 -4
  50. package/dist/plugs/settings/modes/fullscreen.js +3 -3
  51. package/dist/plugs/settings/modes/index.js +3 -3
  52. package/dist/plugs/settings/modes/miniplayer.js +3 -3
  53. package/dist/plugs/settings/modes/pictureInPicture.js +3 -3
  54. package/dist/plugs/settings/modes/theater.js +3 -3
  55. package/dist/plugs/settings/panel/index.cjs +16 -16
  56. package/dist/plugs/settings/panel/index.cjs.map +1 -1
  57. package/dist/plugs/settings/panel/index.js +1 -1
  58. package/dist/plugs/settings/sleepTimer/index.js +1 -1
  59. package/dist/plugs/settings/timeTravel/index.js +3 -3
  60. package/dist/plugs/settings/voice/index.js +2 -2
  61. package/dist/plugs/settings/volume/index.js +3 -3
  62. package/dist/plugs/z-register.cjs +17 -17
  63. package/dist/plugs/z-register.cjs.map +1 -1
  64. package/dist/plugs/z-register.js +33 -33
  65. package/dist/super/components/icons.js +19 -19
  66. package/dist/super/components/index.js +47 -47
  67. package/dist/super/plugs/index.cjs +17 -17
  68. package/dist/super/plugs/index.cjs.map +1 -1
  69. package/dist/super/plugs/index.js +82 -82
  70. package/dist/super/plugs/menus.js +32 -32
  71. package/dist/super/techs.js +9 -9
  72. package/dist/super/utils.js +26 -26
  73. package/dist/super.cjs +17 -17
  74. package/dist/super.cjs.map +1 -1
  75. package/dist/super.css +14 -13
  76. package/dist/super.css.map +1 -1
  77. package/dist/super.global.js +17 -17
  78. package/dist/super.global.js.map +1 -1
  79. package/dist/super.js +73 -73
  80. package/dist/techs/dash.js +3 -3
  81. package/dist/techs/hls.js +3 -3
  82. package/dist/techs/html5.js +2 -2
  83. package/dist/techs/shaka.js +3 -3
  84. package/dist/techs/youtube.js +2 -2
  85. package/dist/techs/z-register.js +6 -6
  86. package/dist/tools/player.js +2 -2
  87. package/dist/tools/runtime/index.js +2 -2
  88. package/package.json +1 -3
  89. package/dist/chunk-SA4OYBCQ.js.map +0 -1
  90. package/dist/chunk-XHV5LEY3.js.map +0 -1
  91. /package/dist/{chunk-52WLRMWV.js.map → chunk-2COEQIWO.js.map} +0 -0
  92. /package/dist/{chunk-JX4ED2TF.js.map → chunk-4AULKZY5.js.map} +0 -0
  93. /package/dist/{chunk-ULQ2MD6B.js.map → chunk-52C7I5MC.js.map} +0 -0
  94. /package/dist/{chunk-GAYJ2V53.js.map → chunk-5TK2MCDO.js.map} +0 -0
  95. /package/dist/{chunk-XKQBBXIV.js.map → chunk-77SZDKWV.js.map} +0 -0
  96. /package/dist/{chunk-U5F6FS7Q.js.map → chunk-7P3SODHT.js.map} +0 -0
  97. /package/dist/{chunk-QXSJAEBE.js.map → chunk-7QDSSDRH.js.map} +0 -0
  98. /package/dist/{chunk-4T7ZVCMS.js.map → chunk-CDKSSYGF.js.map} +0 -0
  99. /package/dist/{chunk-VYC7N5ZY.js.map → chunk-EBFAGVND.js.map} +0 -0
  100. /package/dist/{chunk-GW634LFX.js.map → chunk-JLUX5NZJ.js.map} +0 -0
  101. /package/dist/{chunk-WX72UHLA.js.map → chunk-KJX3SSWX.js.map} +0 -0
  102. /package/dist/{chunk-ALQVOK6Q.js.map → chunk-LD6EP37L.js.map} +0 -0
  103. /package/dist/{chunk-CAM6IQ3T.js.map → chunk-LDT7RVZX.js.map} +0 -0
  104. /package/dist/{chunk-CCGWYDVN.js.map → chunk-OSUNW323.js.map} +0 -0
  105. /package/dist/{chunk-YXTU4XMT.js.map → chunk-PCC327MG.js.map} +0 -0
  106. /package/dist/{chunk-YDRDOSZ5.js.map → chunk-QAMLWLEZ.js.map} +0 -0
  107. /package/dist/{chunk-VNXTVJXF.js.map → chunk-QAZGBRF3.js.map} +0 -0
  108. /package/dist/{chunk-EXTGGYPL.js.map → chunk-QPHJOYEO.js.map} +0 -0
  109. /package/dist/{chunk-W5GYHJAH.js.map → chunk-UKS5MJPA.js.map} +0 -0
  110. /package/dist/{chunk-QXVEPU5G.js.map → chunk-W23DZJNI.js.map} +0 -0
  111. /package/dist/{chunk-26BY5N4X.js.map → chunk-YMTSIRUK.js.map} +0 -0
@@ -3,56 +3,55 @@ import {
3
3
  } from "./chunk-EDDHWZ2G.js";
4
4
  import {
5
5
  VolumePlug
6
- } from "./chunk-4T7ZVCMS.js";
7
- import {
8
- SleepTimerPlug
9
- } from "./chunk-FLRUCL3K.js";
6
+ } from "./chunk-CDKSSYGF.js";
10
7
  import {
11
8
  TimePlug
12
9
  } from "./chunk-6HJQ4657.js";
13
10
  import {
14
- TimeTravelPlug
15
- } from "./chunk-CAM6IQ3T.js";
11
+ SleepTimerPlug
12
+ } from "./chunk-FLRUCL3K.js";
16
13
  import {
17
- PosterPlug
18
- } from "./chunk-7Z3ELIF5.js";
14
+ TimeTravelPlug
15
+ } from "./chunk-LDT7RVZX.js";
19
16
  import {
20
17
  PlaybackRatePlug
21
18
  } from "./chunk-HJTL3RDC.js";
22
19
  import {
23
- ObjectFitPlug
24
- } from "./chunk-AFFUBWU7.js";
20
+ PosterPlug
21
+ } from "./chunk-7Z3ELIF5.js";
25
22
  import {
26
- PanelPlug
27
- } from "./chunk-XHV5LEY3.js";
23
+ OverlayPlug
24
+ } from "./chunk-YDEE32IH.js";
28
25
  import {
29
26
  PersistPlug
30
27
  } from "./chunk-7VQGFCDP.js";
31
28
  import {
32
- OverlayPlug
33
- } from "./chunk-YDEE32IH.js";
29
+ PanelPlug
30
+ } from "./chunk-FFUPTYZL.js";
34
31
  import {
35
32
  NotifiersPlug
36
33
  } from "./chunk-6IHIYGRC.js";
34
+ import {
35
+ ObjectFitPlug
36
+ } from "./chunk-AFFUBWU7.js";
37
37
  import {
38
38
  ModesAirPlayPin
39
- } from "./chunk-QXVEPU5G.js";
39
+ } from "./chunk-W23DZJNI.js";
40
40
  import {
41
41
  ModesCastPin
42
- } from "./chunk-XKQBBXIV.js";
42
+ } from "./chunk-77SZDKWV.js";
43
43
  import {
44
44
  ModesFullscreenPin,
45
45
  ModesMiniplayerPin,
46
46
  ModesPictureInPicturePin,
47
47
  ModesPlug,
48
48
  ModesTheaterPin
49
- } from "./chunk-CCGWYDVN.js";
50
- import {
51
- KeysPlug
52
- } from "./chunk-MVECTY6M.js";
49
+ } from "./chunk-OSUNW323.js";
53
50
  import {
54
- LockedPlug
55
- } from "./chunk-U32SPBGP.js";
51
+ GesturePlug,
52
+ GestureTouchPin,
53
+ GestureWheelPin
54
+ } from "./chunk-B6L2LNRR.js";
56
55
  import {
57
56
  MetadataPlug
58
57
  } from "./chunk-VXVCJNJA.js";
@@ -60,10 +59,11 @@ import {
60
59
  FramePlug
61
60
  } from "./chunk-MTX3WPFZ.js";
62
61
  import {
63
- GesturePlug,
64
- GestureTouchPin,
65
- GestureWheelPin
66
- } from "./chunk-B6L2LNRR.js";
62
+ KeysPlug
63
+ } from "./chunk-MVECTY6M.js";
64
+ import {
65
+ LockedPlug
66
+ } from "./chunk-U32SPBGP.js";
67
67
  import {
68
68
  ErrorsPlug
69
69
  } from "./chunk-TO4CTNVU.js";
@@ -72,7 +72,7 @@ import {
72
72
  } from "./chunk-SSEY3TRB.js";
73
73
  import {
74
74
  CaptionsPlug
75
- } from "./chunk-ALQVOK6Q.js";
75
+ } from "./chunk-LD6EP37L.js";
76
76
  import {
77
77
  ControlPanelDraggablePin,
78
78
  ControlPanelPlug
@@ -85,22 +85,22 @@ import {
85
85
  } from "./chunk-33S55DYW.js";
86
86
  import {
87
87
  AutoPlug
88
- } from "./chunk-SA4OYBCQ.js";
88
+ } from "./chunk-LASLQXJC.js";
89
89
  import {
90
90
  BrightnessPlug
91
91
  } from "./chunk-P7AWQTKX.js";
92
92
  import {
93
93
  AmbiencePlug
94
94
  } from "./chunk-EJTIHJQW.js";
95
+ import {
96
+ LightPlug
97
+ } from "./chunk-2DR4K47N.js";
95
98
  import {
96
99
  SkeletonPlug
97
100
  } from "./chunk-HJSF7FIY.js";
98
101
  import {
99
102
  DisabledPlug
100
103
  } from "./chunk-L7JGVG2M.js";
101
- import {
102
- LightPlug
103
- } from "./chunk-2DR4K47N.js";
104
104
  import {
105
105
  PlaylistPlug
106
106
  } from "./chunk-II6VPOU3.js";
@@ -162,4 +162,4 @@ for (const Pin of [
162
162
  GestureTouchPin
163
163
  ])
164
164
  PinRegistry.register(Pin);
165
- //# sourceMappingURL=chunk-52WLRMWV.js.map
165
+ //# sourceMappingURL=chunk-2COEQIWO.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  HTML5Tech
3
- } from "./chunk-WX72UHLA.js";
3
+ } from "./chunk-KJX3SSWX.js";
4
+ import {
5
+ MSE_ENABLED
6
+ } from "./chunk-RNETXJ63.js";
4
7
  import {
5
8
  DASH_EXTENSIONS,
6
9
  HLS_EXTENSIONS
7
10
  } from "./chunk-2XJFCVED.js";
8
- import {
9
- MSE_ENABLED
10
- } from "./chunk-RNETXJ63.js";
11
11
  import {
12
12
  loadResource
13
13
  } from "./chunk-RCQPJKYI.js";
@@ -177,4 +177,4 @@ __publicField(ShakaTech, "techName", "shaka");
177
177
  export {
178
178
  ShakaTech
179
179
  };
180
- //# sourceMappingURL=chunk-JX4ED2TF.js.map
180
+ //# sourceMappingURL=chunk-4AULKZY5.js.map
@@ -1,10 +1,3 @@
1
- import {
2
- formatSize,
3
- getExtension,
4
- getMimeTypeFromExtension,
5
- noExtension,
6
- smartFlatSort
7
- } from "./chunk-MPZ62IDU.js";
8
1
  import {
9
2
  clampRGBBri,
10
3
  convertToMonoChrome,
@@ -12,6 +5,13 @@ import {
12
5
  getRGBBri,
13
6
  getRGBSat
14
7
  } from "./chunk-BUEWWAKN.js";
8
+ import {
9
+ formatSize,
10
+ getExtension,
11
+ getMimeTypeFromExtension,
12
+ noExtension,
13
+ smartFlatSort
14
+ } from "./chunk-MPZ62IDU.js";
15
15
  import {
16
16
  DUMMY_AUD,
17
17
  DUMMY_VID,
@@ -26,24 +26,6 @@ import {
26
26
  guardMethod,
27
27
  onAllMethods
28
28
  } from "./chunk-LB3KCUUK.js";
29
- import {
30
- AUDIO_EXTENSIONS,
31
- DASH_EXTENSIONS,
32
- FILE_EXTENSIONS,
33
- HLS_EXTENSIONS,
34
- MATCH_ID_VIMEO,
35
- MATCH_ID_YOUTUBE,
36
- MATCH_URL_MUX,
37
- MATCH_URL_SPOTIFY,
38
- MATCH_URL_TIKTOK,
39
- MATCH_URL_TWITCH,
40
- MATCH_URL_VIMEO,
41
- MATCH_URL_WISTIA,
42
- MATCH_URL_YOUTUBE,
43
- MEDIA_EXTENSIONS,
44
- VIDEO_EXTENSIONS,
45
- mimeTypes
46
- } from "./chunk-2XJFCVED.js";
47
29
  import {
48
30
  ANDROID_VERSION,
49
31
  CHROME_VERSION,
@@ -71,6 +53,24 @@ import {
71
53
  TOUCH_ENABLED,
72
54
  queryMediaMobile
73
55
  } from "./chunk-RNETXJ63.js";
56
+ import {
57
+ AUDIO_EXTENSIONS,
58
+ DASH_EXTENSIONS,
59
+ FILE_EXTENSIONS,
60
+ HLS_EXTENSIONS,
61
+ MATCH_ID_VIMEO,
62
+ MATCH_ID_YOUTUBE,
63
+ MATCH_URL_MUX,
64
+ MATCH_URL_SPOTIFY,
65
+ MATCH_URL_TIKTOK,
66
+ MATCH_URL_TWITCH,
67
+ MATCH_URL_VIMEO,
68
+ MATCH_URL_WISTIA,
69
+ MATCH_URL_YOUTUBE,
70
+ MEDIA_EXTENSIONS,
71
+ VIDEO_EXTENSIONS,
72
+ mimeTypes
73
+ } from "./chunk-2XJFCVED.js";
74
74
  import {
75
75
  addSources,
76
76
  addTracks,
@@ -434,4 +434,4 @@ __export(utils_exports, {
434
434
  export {
435
435
  utils_exports
436
436
  };
437
- //# sourceMappingURL=chunk-ULQ2MD6B.js.map
437
+ //# sourceMappingURL=chunk-52C7I5MC.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  HTML5Tech
3
- } from "./chunk-WX72UHLA.js";
4
- import {
5
- HLS_EXTENSIONS
6
- } from "./chunk-2XJFCVED.js";
3
+ } from "./chunk-KJX3SSWX.js";
7
4
  import {
8
5
  MSE_ENABLED
9
6
  } from "./chunk-RNETXJ63.js";
7
+ import {
8
+ HLS_EXTENSIONS
9
+ } from "./chunk-2XJFCVED.js";
10
10
  import {
11
11
  loadResource
12
12
  } from "./chunk-RCQPJKYI.js";
@@ -157,4 +157,4 @@ __publicField(HLSTech, "techName", "hls");
157
157
  export {
158
158
  HLSTech
159
159
  };
160
- //# sourceMappingURL=chunk-GAYJ2V53.js.map
160
+ //# sourceMappingURL=chunk-5TK2MCDO.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ModesPlug
3
- } from "./chunk-CCGWYDVN.js";
3
+ } from "./chunk-OSUNW323.js";
4
4
  import {
5
5
  MODES_CAST_BUILD
6
6
  } from "./chunk-OBT4ZZUV.js";
@@ -145,4 +145,4 @@ __publicField(ModesCastPin, "BUILD", MODES_CAST_BUILD);
145
145
  export {
146
146
  ModesCastPin
147
147
  };
148
- //# sourceMappingURL=chunk-XKQBBXIV.js.map
148
+ //# sourceMappingURL=chunk-77SZDKWV.js.map
@@ -1,6 +1,3 @@
1
- import {
2
- ShakaTech
3
- } from "./chunk-JX4ED2TF.js";
4
1
  import {
5
2
  VIMEO_EVENTS,
6
3
  VimeoTech
@@ -10,16 +7,19 @@ import {
10
7
  } from "./chunk-S3LYKHDY.js";
11
8
  import {
12
9
  DashTech
13
- } from "./chunk-26BY5N4X.js";
10
+ } from "./chunk-YMTSIRUK.js";
14
11
  import {
15
12
  HLSTech
16
- } from "./chunk-GAYJ2V53.js";
13
+ } from "./chunk-5TK2MCDO.js";
14
+ import {
15
+ ShakaTech
16
+ } from "./chunk-4AULKZY5.js";
17
17
  import {
18
18
  IMATech
19
19
  } from "./chunk-FRT22KFJ.js";
20
20
  import {
21
21
  HTML5Tech
22
- } from "./chunk-WX72UHLA.js";
22
+ } from "./chunk-KJX3SSWX.js";
23
23
  import {
24
24
  BaseTech,
25
25
  cacheKeys
@@ -46,4 +46,4 @@ __export(techs_exports, {
46
46
  export {
47
47
  techs_exports
48
48
  };
49
- //# sourceMappingURL=chunk-U5F6FS7Q.js.map
49
+ //# sourceMappingURL=chunk-7P3SODHT.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init
3
- } from "./chunk-WX72UHLA.js";
3
+ } from "./chunk-KJX3SSWX.js";
4
4
  import {
5
5
  globalState
6
6
  } from "./chunk-CFTZJH7J.js";
@@ -27,4 +27,4 @@ if ("undefined" !== typeof window) {
27
27
  console.log("\x1B[38;2;139;69;19mTMG Media Player Unavailable\x1B[0m");
28
28
  console.error("TMG Media Player cannot run in a terminal!"), console.warn("Consider moving to a browser environment to use the TMG Media Player");
29
29
  }
30
- //# sourceMappingURL=chunk-QXSJAEBE.js.map
30
+ //# sourceMappingURL=chunk-7QDSSDRH.js.map
@@ -8,7 +8,7 @@ import {
8
8
  AUDIO_CONTEXT,
9
9
  connectToAudioManager,
10
10
  disconnectFromAudioManager
11
- } from "./chunk-WX72UHLA.js";
11
+ } from "./chunk-KJX3SSWX.js";
12
12
  import {
13
13
  globalState
14
14
  } from "./chunk-CFTZJH7J.js";
@@ -107,4 +107,4 @@ __publicField(VolumePlug, "BUILD", VOLUME_BUILD);
107
107
  export {
108
108
  VolumePlug
109
109
  };
110
- //# sourceMappingURL=chunk-4T7ZVCMS.js.map
110
+ //# sourceMappingURL=chunk-CDKSSYGF.js.map
@@ -43,6 +43,15 @@ import {
43
43
  import {
44
44
  PlaybackRateNotifier
45
45
  } from "./chunk-Q7S5GXUJ.js";
46
+ import {
47
+ volumeHigh
48
+ } from "./chunk-W6TNR6NH.js";
49
+ import {
50
+ volumeLow
51
+ } from "./chunk-CRVRDKEG.js";
52
+ import {
53
+ volumeMuted
54
+ } from "./chunk-2WOP45O7.js";
46
55
  import {
47
56
  AirPlayNotifier
48
57
  } from "./chunk-XTIGTJKL.js";
@@ -55,21 +64,6 @@ import {
55
64
  import {
56
65
  BaseNotifier
57
66
  } from "./chunk-EWCRERLL.js";
58
- import {
59
- videoTrack
60
- } from "./chunk-AIJWNUXU.js";
61
- import {
62
- volumeHigh
63
- } from "./chunk-W6TNR6NH.js";
64
- import {
65
- volumeLow
66
- } from "./chunk-CRVRDKEG.js";
67
- import {
68
- volumeMuted
69
- } from "./chunk-2WOP45O7.js";
70
- import {
71
- shuffle
72
- } from "./chunk-OEHNS7YX.js";
73
67
  import {
74
68
  sort
75
69
  } from "./chunk-QP2X53HC.js";
@@ -92,8 +86,8 @@ import {
92
86
  unlock
93
87
  } from "./chunk-TMTWPBFD.js";
94
88
  import {
95
- playbackRate
96
- } from "./chunk-C3IEUYR3.js";
89
+ videoTrack
90
+ } from "./chunk-AIJWNUXU.js";
97
91
  import {
98
92
  playlist
99
93
  } from "./chunk-KLAI7YSD.js";
@@ -116,8 +110,8 @@ import {
116
110
  settings
117
111
  } from "./chunk-2J3FJY73.js";
118
112
  import {
119
- mic
120
- } from "./chunk-PEKXIISU.js";
113
+ shuffle
114
+ } from "./chunk-OEHNS7YX.js";
121
115
  import {
122
116
  next
123
117
  } from "./chunk-MP2GRDUX.js";
@@ -140,8 +134,8 @@ import {
140
134
  play
141
135
  } from "./chunk-K4UHBEDT.js";
142
136
  import {
143
- exitTheater
144
- } from "./chunk-CRH6DM5A.js";
137
+ playbackRate
138
+ } from "./chunk-C3IEUYR3.js";
145
139
  import {
146
140
  expandMiniplayer
147
141
  } from "./chunk-DN4TFOZV.js";
@@ -164,8 +158,8 @@ import {
164
158
  loop
165
159
  } from "./chunk-OSDM6ZVT.js";
166
160
  import {
167
- dragIndicator
168
- } from "./chunk-ZLZCQ3KJ.js";
161
+ mic
162
+ } from "./chunk-PEKXIISU.js";
169
163
  import {
170
164
  edit
171
165
  } from "./chunk-NLJQAJZB.js";
@@ -188,8 +182,8 @@ import {
188
182
  exitPip
189
183
  } from "./chunk-OCWLEK2W.js";
190
184
  import {
191
- captions
192
- } from "./chunk-CTSPKWKN.js";
185
+ exitTheater
186
+ } from "./chunk-CRH6DM5A.js";
193
187
  import {
194
188
  capture
195
189
  } from "./chunk-HA2GK6KH.js";
@@ -212,8 +206,8 @@ import {
212
206
  doubleTriangleRight
213
207
  } from "./chunk-Q5TE3ZDK.js";
214
208
  import {
215
- audioTrack
216
- } from "./chunk-AH2VE4UI.js";
209
+ dragIndicator
210
+ } from "./chunk-ZLZCQ3KJ.js";
217
211
  import {
218
212
  autoplay
219
213
  } from "./chunk-WTHHXWQM.js";
@@ -235,6 +229,9 @@ import {
235
229
  import {
236
230
  bwd
237
231
  } from "./chunk-PV24XKW2.js";
232
+ import {
233
+ captions
234
+ } from "./chunk-CTSPKWKN.js";
238
235
  import {
239
236
  add
240
237
  } from "./chunk-ID72UAJE.js";
@@ -248,20 +245,20 @@ import {
248
245
  ambience
249
246
  } from "./chunk-XHXIXEGS.js";
250
247
  import {
251
- VolumeControl
252
- } from "./chunk-RE2YAOIL.js";
248
+ audioTrack
249
+ } from "./chunk-AH2VE4UI.js";
253
250
  import {
254
251
  Timeline
255
- } from "./chunk-W5GYHJAH.js";
252
+ } from "./chunk-UKS5MJPA.js";
253
+ import {
254
+ VolumeControl
255
+ } from "./chunk-RE2YAOIL.js";
256
256
  import {
257
257
  BrightnessControl
258
258
  } from "./chunk-HFP6PLGE.js";
259
259
  import {
260
260
  RangeInput
261
261
  } from "./chunk-C2QWEEZM.js";
262
- import {
263
- TheaterButton
264
- } from "./chunk-CTXFLY7V.js";
265
262
  import {
266
263
  TimeButton
267
264
  } from "./chunk-5D3HDH6Z.js";
@@ -271,9 +268,6 @@ import {
271
268
  import {
272
269
  VoiceButton
273
270
  } from "./chunk-V7NE5HVK.js";
274
- import {
275
- Meta
276
- } from "./chunk-WMDE4WR7.js";
277
271
  import {
278
272
  NextButton
279
273
  } from "./chunk-ZJTUWRBI.js";
@@ -296,8 +290,8 @@ import {
296
290
  SettingsButton
297
291
  } from "./chunk-WZINXIIW.js";
298
292
  import {
299
- CastButton
300
- } from "./chunk-6OT6DHIW.js";
293
+ TheaterButton
294
+ } from "./chunk-CTXFLY7V.js";
301
295
  import {
302
296
  ChapterButton
303
297
  } from "./chunk-TBXDQT5T.js";
@@ -320,8 +314,8 @@ import {
320
314
  FullscreenOrientationButton
321
315
  } from "./chunk-ZYZP6OTZ.js";
322
316
  import {
323
- PiPPlaceholder
324
- } from "./chunk-6XZXEBLR.js";
317
+ Meta
318
+ } from "./chunk-WMDE4WR7.js";
325
319
  import {
326
320
  AirPlayButton
327
321
  } from "./chunk-X3RI4YSK.js";
@@ -343,6 +337,9 @@ import {
343
337
  import {
344
338
  CaptureButton
345
339
  } from "./chunk-EJV73FIY.js";
340
+ import {
341
+ CastButton
342
+ } from "./chunk-6OT6DHIW.js";
346
343
  import {
347
344
  AirPlayPlaceholder
348
345
  } from "./chunk-6QYP3OA6.js";
@@ -352,6 +349,9 @@ import {
352
349
  import {
353
350
  ErrorPlaceholder
354
351
  } from "./chunk-IU2B6VX5.js";
352
+ import {
353
+ PiPPlaceholder
354
+ } from "./chunk-6XZXEBLR.js";
355
355
  import {
356
356
  Buffer
357
357
  } from "./chunk-IA77Q36X.js";
@@ -498,4 +498,4 @@ __export(components_exports, {
498
498
  export {
499
499
  components_exports
500
500
  };
501
- //# sourceMappingURL=chunk-VYC7N5ZY.js.map
501
+ //# sourceMappingURL=chunk-EBFAGVND.js.map
@@ -120,31 +120,31 @@ var PanelPlug = class extends BasePlug {
120
120
  </div>
121
121
  <h3 style="margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;">\u{1F39B}\uFE0F The Smart Canvas (Mouse & Touch)</h3>
122
122
  <ul style="padding-left: 20px; line-height: 1.6; margin-bottom: 25px;">
123
- <li><strong>Hyper-speed on demand:</strong> Click and hold the right side of the video screen or the play key (<strong>Spacebar</strong>) to fast-forward, left side or <strong>Shift</strong> + play key rewinds.</li>
124
- <li><strong>Smart scrubbing:</strong> Don't hunt for the tiny progress bar. Just scroll horizontally across the middle of the screen to scrub smoothly through time.</li>
125
- <li><strong>Invisible sliders:</strong> Scroll vertically on the <em>right edge</em> for Volume, and the <em>left edge</em> for Brightness.</li>
126
- <li><strong>Precision taps:</strong> Double-tap the edges to skip forward or backward. Double tap the center to toggle Fullscreen (or Play/Pause on mobile).</li>
123
+ <li><p><strong>Hyper-speed on demand:</strong> Click and hold the right side of the video screen or the play key (<strong>Spacebar</strong>) to fast-forward, left side or <strong>Shift</strong> + play key rewinds.</p></li>
124
+ <li><p><strong>Smart scrubbing:</strong> Don't hunt for the tiny progress bar. Just scroll horizontally across the middle of the screen to scrub smoothly through time.</p></li>
125
+ <li><p><strong>Invisible sliders:</strong> Scroll vertically on the <em>right edge</em> for Volume, and the <em>left edge</em> for Brightness.</p></li>
126
+ <li><p><strong>Precision taps:</strong> Double-tap the edges to skip forward or backward. Double tap the center to toggle Fullscreen (or Play/Pause on mobile).</p></li>
127
127
  </ul>
128
128
  <h3 style="margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;">\u{1F3D7}\uFE0F Total UI Control</h3>
129
129
  <ul style="padding-left: 20px; line-height: 1.6; margin-bottom: 25px;">
130
- <li><strong>Build your own player:</strong> Don't like our layout? <strong>Click and drag</strong> almost "any" button on the control bars to physically rearrange the interface exactly how you want it.</li>
131
- <li><strong>Draggable subtitles:</strong> Subtitles blocking a crucial part of the scene? Just grab the text box and drag it anywhere else on the screen.</li>
132
- <li><strong>The chameleon engine:</strong> Head to settings and set your Brand/Theme colors to "Video Derived". TVP will actively analyze the video frames and extract dominant colors to paint the UI dynamically.</li>
133
- <li><strong>Descriptive hints:</strong> Hover over the controls to expose their tooltips and get more information about how to trigger each function.</li>
130
+ <li><p><strong>Build your own player:</strong> Don't like our layout? <strong>Click and drag</strong> almost "any" button on the control bars to physically rearrange the interface exactly how you want it.</p></li>
131
+ <li><p><strong>Draggable subtitles:</strong> Subtitles blocking a crucial part of the scene? Just grab the text box and drag it anywhere else on the screen.</p></li>
132
+ <li><p><strong>The chameleon engine:</strong> Head to settings and set your Brand/Theme colors to "Video Derived". TVP will actively analyze the video frames and extract dominant colors to paint the UI dynamically.</p></li>
133
+ <li><p><strong>Descriptive hints:</strong> Hover over the controls to expose their tooltips and get more information about how to trigger each function.</p></li>
134
134
  </ul>
135
135
  <h3 style="margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;">\u2328\uFE0F Keyboard Ninja Status</h3>
136
136
  <ul style="padding-left: 20px; line-height: 1.6; margin-bottom: 25px;">
137
- <li><strong>The playback trinity (J, K, L):</strong> Skip backward, Play/Pause, and Skip forward like a pro editor. Do the same with arrow keys, hold <strong>Ctrl</strong>, <strong>Shift</strong> or <strong>Alt</strong> to spice things up.</li>
138
- <li><strong>Time travel:</strong> Hit any number key to jump to that percentage of the video (e.g., hitting '5' jumps to the exact middle). <em>(Easter Egg: Undo or Redo with <strong>Ctrl + Z</strong> and <strong>Ctrl + Y</strong>)</em></li>
139
- <li><strong>Frame-by-frame:</strong> Paused the video? Use <strong>,</strong> (comma) and <strong>.</strong> (period) to step backward or forward one single frame at a time.</li>
140
- <li><strong>Warp speed:</strong> Use <strong>&gt;</strong> and <strong>&lt;</strong> to crank the playback speed up or down.</li>
137
+ <li><p><strong>The playback trinity (J, K, L):</strong> Skip backward, Play/Pause, and Skip forward like a pro editor. Do the same with arrow keys, hold <strong>Ctrl</strong>, <strong>Shift</strong> or <strong>Alt</strong> to spice things up.</p></li>
138
+ <li><p><strong>Time travel:</strong> Hit any number key to jump to that percentage of the video (e.g., hitting '5' jumps to the exact middle). <em>(Easter Egg: Undo or Redo with <strong>Ctrl + Z</strong> and <strong>Ctrl + Y</strong>)</em></p></li>
139
+ <li><p><strong>Frame-by-frame:</strong> Paused the video? Use <strong>,</strong> (comma) and <strong>.</strong> (period) to step backward or forward one single frame at a time.</p></li>
140
+ <li><p><strong>Warp speed:</strong> Use <strong>&gt;</strong> and <strong>&lt;</strong> to crank the playback speed up or down.</p></li>
141
141
  </ul>
142
142
  <h3 style="margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;">\u{1F52C} Advanced Window Tech</h3>
143
143
  <ul style="padding-left: 20px; line-height: 1.6; margin-bottom: 20px;">
144
- <li><strong>The snapshot engine:</strong> Click the Camera icon or press <strong>s</strong> to screenshot a high-res image of the exact frame. <em>(Easter Egg: Double-Click or press <strong>Alt + s</strong> to capture in pure Black &amp; White!)</em></li>
145
- <li><strong>Ultra-readable time:</strong> Click the time display or press <strong>q</strong> to toggle between elapsed time and remaining time. <em>(Easter Egg: Double-Click or press <strong>z</strong> to display the time in different formats!)</em></li>
146
- <li><strong>Floating miniplayer:</strong> Start playing a video and just scroll down the page. TVP will automatically detach into a draggable miniplayer so you never miss a second.</li>
147
- <li><strong>Custom picture-in-picture:</strong> We bypassed standard browser limits to give you a floating player that actually keeps all your custom UI controls intact.</li>
144
+ <li><p><strong>The snapshot engine:</strong> Click the Camera icon or press <strong>s</strong> to screenshot a high-res image of the exact frame. <em>(Easter Egg: Double-Click or press <strong>Alt + s</strong> to capture in pure Black &amp; White!)</em></p></li>
145
+ <li><p><strong>Ultra-readable time:</strong> Click the time display or press <strong>q</strong> to toggle between elapsed time and remaining time. <em>(Easter Egg: Double-Click or press <strong>z</strong> to display the time in different formats!)</em></p></li>
146
+ <li><p><strong>Floating miniplayer:</strong> Start playing a video and just scroll down the page. TVP will automatically detach into a draggable miniplayer so you never miss a second.</p></li>
147
+ <li><p><strong>Custom picture-in-picture:</strong> We bypassed standard browser limits to give you a floating player that actually keeps all your custom UI controls intact.</p></li>
148
148
  </ul>
149
149
  <div style="text-align: center; margin-top: 30px; padding: 15px; border-radius: 8px; background: rgba(128, 128, 128, 0.1);">
150
150
  <p style="margin: 0 0 10px 0;"><strong>Enjoy the player.</strong> We're still in active development, but already miles ahead. Welcome to the bleeding edge.</p>
@@ -167,4 +167,4 @@ __publicField(PanelPlug, "BUILD", SETTINGS_BUILD);
167
167
  export {
168
168
  PanelPlug
169
169
  };
170
- //# sourceMappingURL=chunk-XHV5LEY3.js.map
170
+ //# sourceMappingURL=chunk-FFUPTYZL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ts/plugs/settings/panel/index.ts"],"sourcesContent":["import { silence } from \"sia-reactor/modules\";\r\nimport { BasePlug } from \"../../base\";\r\nimport { SETTINGS_BUILD } from \"./build\";\r\nimport type { panelConfig, panelState } from \"./types\";\r\nimport { SettingsMenu } from \"./menu\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { mockAsync } from \"@utils/fn\";\r\nimport { parseCSSTime } from \"@utils/str\";\r\nimport type { Controller } from \"@core/controller\";\r\nimport { isPOJO } from \"@utils/obj\";\r\n\r\nexport class PanelPlug extends BasePlug<panelConfig, panelState> {\r\n public static readonly plugName = \"panel\";\r\n public static readonly BUILD = SETTINGS_BUILD;\r\n public closeBtn!: HTMLButtonElement | null;\r\n public menu!: SettingsMenu;\r\n protected wasPaused = false;\r\n\r\n constructor(ctlr: Controller, config = ctlr.settings.panel) {\r\n super(ctlr, config, { viewOpen: false });\r\n this.menu = new SettingsMenu(this.ctlr, this.config.menu);\r\n }\r\n\r\n public override mount(): void {\r\n this.closeBtn = this.ctlr.queryDOM(\".tmg-media-settings-close-btn\")!;\r\n this.menu.onViewClick = this.toggleView;\r\n }\r\n public override unmount(): void {\r\n this.media.container.classList.remove(\"tmg-media-more-settings\");\r\n this.ctlr.queryDOM(\".tmg-media-settings-tips-btn\")?.remove(), this.ctlr.queryDOM(\".tmg-media-settings-brand-wrapper\")?.remove(), this.ctlr.queryDOM(\".tmg-media-settings-theme-wrapper\")?.remove();\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.closeBtn?.addEventListener(\"click\", this.exitMore, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.paused\", ({ value }) => !value && this.exitMore(), { signal: this.signal });\r\n // Post Wiring\r\n this.ctlr.learn(\"settings\", { fn: () => this.menu.toggle(undefined, true) }, this.signal);\r\n !this.config.menu.disabled && this.menu.wire(), super.wire();\r\n }\r\n\r\n public async enterMore(): Promise<void> {\r\n if (this.ctlr.isUIActive(\"moreSettings\")) return;\r\n if (!this.viewReady) this.initView(), (this.viewReady = true);\r\n (this.wasPaused = this.media.state.paused), this.config.autoPause && silence(() => (this.media.intent.paused = true));\r\n !isPOJO(this.menu.anchor) && this.menu.close(), this.media.container.classList.add(\"tmg-media-more-settings\"), (this.state.viewOpen = true);\r\n await mockAsync(parseCSSTime(this.settings.css.panelTransitionTime));\r\n this.ctlr.plug(\"settings.overlay\")?.show();\r\n this.ctlr.DOM.settings?.removeAttribute(\"inert\"), this.ctlr.DOM.containerContent?.setAttribute(\"inert\", \"\");\r\n !isPOJO(this.menu.anchor) && this.closeBtn?.focus();\r\n } // #STANDALONE: needs scoped behavior\r\n private viewReady = false;\r\n\r\n public async exitMore(): Promise<void> {\r\n if (!this.ctlr.isUIActive(\"moreSettings\")) return;\r\n !isPOJO(this.menu.anchor) && this.menu.close(), this.media.container.classList.remove(\"tmg-media-more-settings\"), (this.state.viewOpen = false);\r\n await mockAsync(parseCSSTime(this.settings.css.panelTransitionTime));\r\n this.config.autoPause && silence(() => (this.media.intent.paused = this.wasPaused));\r\n this.ctlr.DOM.settings?.setAttribute(\"inert\", \"\"), this.ctlr.DOM.containerContent?.removeAttribute(\"inert\");\r\n } // #STANDALONE: needs scoped behavior\r\n\r\n public async toggleView(): Promise<void> {\r\n this.ctlr.isUIActive(\"moreSettings\") ? await this.exitMore() : await this.enterMore();\r\n }\r\n\r\n private initView() {\r\n // Theming\r\n // prettier-ignore\r\n const options = [{ option: \"Light Blue\", value: \"#3198f5\" }, { option: \"Hot Pink\", value: \"#ff69b4\" }, { option: \"Fiery Red\", value: \"#ff0033\" }, { option: \"Dark Turquoise\", value: \"#00ced1\" }, { option: \"Custom Hue\", value: \"custom\" }, { option: \"Video Derived\", value: \"auto\" }],\r\n gcolors = options.slice(0, -2).map((opt) => opt.value),\r\n defs = { brand: this.settings.css.brandColor as string ?? \"#e26e02\", theme: this.settings.css.themeColor as string ?? \"#ffffff\", bcolors: [\"#e26e02\", ...gcolors], tcolors: [\"#ffffff\", ...gcolors] },\r\n bField = t007.field({ type: \"select\", label: \"Brand Color\", helperText: { info: \"Try changing your brand color\" }, options: [{ option: \"Tastey Orange\", value: \"#e26e02\" }, ...options], value: !defs.bcolors.includes(defs.brand as string) ? (!this.settings.css.syncWithMedia.brandColor ? \"custom\" : \"auto\") : defs.brand }),\r\n cBField = t007.field({ type: \"color\" }),\r\n tField = t007.field({ type: \"select\", label: \"Theme Color\", helperText: { info: \"Also try changing your theme color\" }, options: [{ option: \"Pure White\", value: \"#ffffff\" }, ...options], value: !defs.tcolors.includes(defs.theme as string) ? (!this.settings.css.syncWithMedia.themeColor ? \"custom\" : \"auto\") : defs.theme }),\r\n cTField = t007.field({ type: \"color\" }),\r\n bWrapper = createEl(\"div\", { className: \"tmg-media-settings-brand-wrapper\" }),\r\n tWrapper = createEl(\"div\", { className: \"tmg-media-settings-theme-wrapper\" });\r\n this.ctlr.config.watch(\"settings.css.brandColor\", (v = defs.brand) => ((v = (v as string).toLowerCase()), (cBField.inputEl.value = v), (bField.inputEl.value = !defs.bcolors.includes(v) ? (!this.settings.css.syncWithMedia.brandColor ? \"custom\" : \"auto\") : v)), { init: true, signal: this.signal });\r\n this.ctlr.config.watch(\"settings.css.themeColor\", (v = defs.theme) => ((v = (v as string).toLowerCase()), (cTField.inputEl.value = v), (tField.inputEl.value = !defs.tcolors.includes(v) ? (!this.settings.css.syncWithMedia.themeColor ? \"custom\" : \"auto\") : v)), { init: true, signal: this.signal });\r\n this.ctlr.DOM.settingsBottomPanel?.append((bWrapper.append(bField, cBField), bWrapper), (tWrapper.append(tField, cTField), tWrapper));\r\n const id = { theme: \"\", brand: \"\" },\r\n sync = (cb: any, req = true, type = \"brand\") => ((this.settings.css.syncWithMedia[`${type}Color`] = req), cb(req)),\r\n assert = (opts: any, type: \"brand\" | \"theme\" = \"brand\") => this.ctlr.toast?.update(id[type], opts),\r\n onBColorChange = ({ target: { value: val } }: any) =>\r\n this.ctlr.throttle(\r\n \"brandColorPicking\",\r\n async () => {\r\n id.brand && t007.toast?.dismiss(id.brand);\r\n let col;\r\n if (val === \"custom\") return cBField.inputEl.click();\r\n if (val !== \"auto\") col = this.settings.css.brandColor = val;\r\n else col = this.settings.css.brandColor = (this.media.status.loadedData ? await this.ctlr.plug(\"settings.frame\")?.getMainColor(this.media.state.currentTime, this.media.features.frameCapture ? \"\" : undefined) : null) ?? this.ctlr.plug(\"settings.css\")?.build.brandColor!; // said 'video' not 'poster' derived\r\n const cb = (s: any) => (bField.inputEl.value = defs.bcolors.includes(col as string) ? (col as string) : s ? \"auto\" : \"custom\"),\r\n No = () => (sync(cb, false), assert({ actions: { Yes } })),\r\n Yes = () => (sync(cb, true), assert({ actions: { No } }));\r\n sync(cb, val === \"auto\");\r\n val === \"auto\" && (id.brand = this.ctlr.toast?.(\"The brand color will change anytime a video loads\", { icon: \"🎨\", autoClose: 15000, hideProgressBar: false, actions: { No }, onClose: () => (id.brand = \"\"), signal: this.signal }) || \"\");\r\n },\r\n 150\r\n ),\r\n onTColorChange = ({ target: { value: val } }: any) =>\r\n this.ctlr.throttle(\r\n \"themeColorPicking\",\r\n async () => {\r\n id.theme && t007.toast?.dismiss(id.theme);\r\n let col;\r\n if (val === \"custom\") return cTField.inputEl.click();\r\n if (val !== \"auto\") col = this.settings.css.themeColor = val;\r\n else col = this.settings.css.themeColor = (this.media.status.loadedData ? await this.ctlr.plug(\"settings.frame\")?.getMainColor(this.media.state.currentTime, this.media.features.frameCapture ? \"\" : undefined) : null) ?? this.ctlr.plug(\"settings.css\")?.build.themeColor!;\r\n const cb = (s: any) => (tField.inputEl.value = defs.tcolors.includes(col as string) ? (col as string) : s ? \"auto\" : \"custom\"),\r\n No = () => (sync(cb, false, \"theme\"), assert({ actions: { Yes } }, \"theme\")),\r\n Yes = () => (sync(cb, true, \"theme\"), assert({ actions: { No } }, \"theme\"));\r\n sync(cb, val === \"auto\", \"theme\");\r\n val === \"auto\" && (id.theme = this.ctlr.toast?.(\"The theme color will change anytime a video loads\", { icon: \"🎨\", autoClose: 15000, hideProgressBar: false, actions: { No }, onClose: () => (id.theme = \"\"), signal: this.signal }) || \"\");\r\n },\r\n 150\r\n );\r\n bField.inputEl.addEventListener(\"input\", onBColorChange, { signal: this.signal }), cBField.inputEl.addEventListener(\"input\", onBColorChange, { signal: this.signal });\r\n tField.inputEl.addEventListener(\"input\", onTColorChange, { signal: this.signal }), cTField.inputEl.addEventListener(\"input\", onTColorChange, { signal: this.signal });\r\n // Helpful Tips\r\n const tipsBtn = createEl(\"button\", { className: \"tmg-media-settings-tips-btn\", innerHTML: `<span>💡 Did You Know?</span>` });\r\n this.closeBtn?.insertAdjacentElement(\"afterend\", tipsBtn);\r\n tipsBtn.addEventListener(\"click\", this.showTipsDialog, { signal: this.signal });\r\n }\r\n\r\n private getTipsHTML() {\r\n return `\r\n <div style=\"font-family: inherit; color: inherit;\">\r\n <div style=\"text-align: center; margin-bottom: 25px;\">\r\n <h2 style=\"margin: 0 0 10px 0; letter-spacing: -0.5px;\">🎬 Welcome to TVP</h2>\r\n <p style=\"margin: 0; opacity: 0.9; line-height: 1.5;\">\r\n You aren't just watching a video; you're sitting in the cockpit of the most advanced, performance-first media engine on the web. We are thrilled to have you here. \r\n <br><strong>Here is your official flight manual to unlock its full power:</strong>\r\n </p>\r\n </div>\r\n <h3 style=\"margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;\">🎛️ The Smart Canvas (Mouse & Touch)</h3>\r\n <ul style=\"padding-left: 20px; line-height: 1.6; margin-bottom: 25px;\">\r\n <li><p><strong>Hyper-speed on demand:</strong> Click and hold the right side of the video screen or the play key (<strong>Spacebar</strong>) to fast-forward, left side or <strong>Shift</strong> + play key rewinds.</p></li>\r\n <li><p><strong>Smart scrubbing:</strong> Don't hunt for the tiny progress bar. Just scroll horizontally across the middle of the screen to scrub smoothly through time.</p></li>\r\n <li><p><strong>Invisible sliders:</strong> Scroll vertically on the <em>right edge</em> for Volume, and the <em>left edge</em> for Brightness.</p></li>\r\n <li><p><strong>Precision taps:</strong> Double-tap the edges to skip forward or backward. Double tap the center to toggle Fullscreen (or Play/Pause on mobile).</p></li>\r\n </ul>\r\n <h3 style=\"margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;\">🏗️ Total UI Control</h3>\r\n <ul style=\"padding-left: 20px; line-height: 1.6; margin-bottom: 25px;\">\r\n <li><p><strong>Build your own player:</strong> Don't like our layout? <strong>Click and drag</strong> almost \"any\" button on the control bars to physically rearrange the interface exactly how you want it.</p></li>\r\n <li><p><strong>Draggable subtitles:</strong> Subtitles blocking a crucial part of the scene? Just grab the text box and drag it anywhere else on the screen.</p></li>\r\n <li><p><strong>The chameleon engine:</strong> Head to settings and set your Brand/Theme colors to \"Video Derived\". TVP will actively analyze the video frames and extract dominant colors to paint the UI dynamically.</p></li>\r\n <li><p><strong>Descriptive hints:</strong> Hover over the controls to expose their tooltips and get more information about how to trigger each function.</p></li>\r\n </ul>\r\n <h3 style=\"margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;\">⌨️ Keyboard Ninja Status</h3>\r\n <ul style=\"padding-left: 20px; line-height: 1.6; margin-bottom: 25px;\">\r\n <li><p><strong>The playback trinity (J, K, L):</strong> Skip backward, Play/Pause, and Skip forward like a pro editor. Do the same with arrow keys, hold <strong>Ctrl</strong>, <strong>Shift</strong> or <strong>Alt</strong> to spice things up.</p></li>\r\n <li><p><strong>Time travel:</strong> Hit any number key to jump to that percentage of the video (e.g., hitting '5' jumps to the exact middle). <em>(Easter Egg: Undo or Redo with <strong>Ctrl + Z</strong> and <strong>Ctrl + Y</strong>)</em></p></li>\r\n <li><p><strong>Frame-by-frame:</strong> Paused the video? Use <strong>,</strong> (comma) and <strong>.</strong> (period) to step backward or forward one single frame at a time.</p></li>\r\n <li><p><strong>Warp speed:</strong> Use <strong>&gt;</strong> and <strong>&lt;</strong> to crank the playback speed up or down.</p></li>\r\n </ul>\r\n <h3 style=\"margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;\">🔬 Advanced Window Tech</h3>\r\n <ul style=\"padding-left: 20px; line-height: 1.6; margin-bottom: 20px;\">\r\n <li><p><strong>The snapshot engine:</strong> Click the Camera icon or press <strong>s</strong> to screenshot a high-res image of the exact frame. <em>(Easter Egg: Double-Click or press <strong>Alt + s</strong> to capture in pure Black &amp; White!)</em></p></li>\r\n <li><p><strong>Ultra-readable time:</strong> Click the time display or press <strong>q</strong> to toggle between elapsed time and remaining time. <em>(Easter Egg: Double-Click or press <strong>z</strong> to display the time in different formats!)</em></p></li>\r\n <li><p><strong>Floating miniplayer:</strong> Start playing a video and just scroll down the page. TVP will automatically detach into a draggable miniplayer so you never miss a second.</p></li>\r\n <li><p><strong>Custom picture-in-picture:</strong> We bypassed standard browser limits to give you a floating player that actually keeps all your custom UI controls intact.</p></li>\r\n </ul>\r\n <div style=\"text-align: center; margin-top: 30px; padding: 15px; border-radius: 8px; background: rgba(128, 128, 128, 0.1);\">\r\n <p style=\"margin: 0 0 10px 0;\"><strong>Enjoy the player.</strong> We're still in active development, but already miles ahead. Welcome to the bleeding edge.</p>\r\n <p style=\"margin: 0; opacity: 0.8;\">🧪 <strong>beta tester?</strong> Find the Settings advanced menu to travel through linear time, or <a href=\"mailto:tobioketade007@gmail.com\" style=\"color: inherit; text-decoration: underline;\">drop me an email</a> to collaborate!</p>\r\n </div>\r\n </div>\r\n `;\r\n }\r\n\r\n private async showTipsDialog() {\r\n await this.exitMore();\r\n t007.alert(this.getTipsHTML(), { id: `${this.ctlr.config.id}-tips-dialog`, rootElement: this.ctlr.DOM.containerContent, confirmText: \"Got it!\" });\r\n }\r\n\r\n protected override onDestroy(): void {\r\n this.menu.destroy(), super.onDestroy();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface PlugRegistryMap {\r\n \"settings.panel\": typeof PanelPlug;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/config\" {\r\n interface Settings {\r\n panel: panelConfig;\r\n }\r\n}\r\n\r\nexport type * from \"./types\";\r\nexport * from \"./build\";\r\n"],"mappings":"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","names":[]}