unified-video-framework 1.4.136 → 1.4.138

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unified-video-framework",
3
- "version": "1.4.136",
3
+ "version": "1.4.138",
4
4
  "description": "Cross-platform video player framework supporting iOS, Android, Web, Smart TVs (Samsung/LG), Roku, and more",
5
5
  "main": "packages/core/dist/index.js",
6
6
  "types": "packages/core/dist/index.d.ts",
@@ -150,9 +150,12 @@ export declare class WebPlayer extends BasePlayer {
150
150
  private _syncUIFromRemote;
151
151
  private _syncCastButtons;
152
152
  private updateSettingsMenu;
153
+ private generateAccordionMenu;
153
154
  private detectAvailableQualities;
154
155
  private detectAvailableSubtitles;
155
156
  private setupSettingsEventListeners;
157
+ private toggleAccordionSection;
158
+ private updateAccordionAfterSelection;
156
159
  private updateSettingsActiveStates;
157
160
  private setPlaybackRateFromSettings;
158
161
  private setQualityFromSettings;
@@ -1 +1 @@
1
- {"version":3,"file":"WebPlayer.d.ts","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAUjD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,GAAG,EAAE,GAAG,CAAC;QACT,MAAM,EAAE,GAAG,CAAC;QACZ,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,MAAM,CAAC,EAAE,GAAG,CAAC;QACb,qBAAqB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;KACxD;CACF;AAED,qBAAa,SAAU,SAAQ,UAAU;IACvC,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAChD,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,mBAAmB,CAAc;IACzC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,iBAAiB,CAAiB;IAC1C,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,mBAAmB,CAA+B;IAC1D,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,kBAAkB,CAA6C;IACvE,OAAO,CAAC,kBAAkB,CAA6C;IACvE,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,UAAU,CAAkB;IAGpC,OAAO,CAAC,cAAc,CAKpB;IACF,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,aAAa,CAA4B;IAEjD,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,iBAAiB,CAAkB;IAG3C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,yBAAyB,CAAa;IAC9C,OAAO,CAAC,iBAAiB,CAAa;IAGtC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,mBAAmB,CAAiB;IAC5C,OAAO,CAAC,KAAK,CAAa;IAG1B,OAAO,CAAC,iBAAiB,CAAa;IAGtC,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,mBAAmB,CAAO;IAGlC,OAAO,CAAC,sBAAsB,CAAkB;IAChD,OAAO,CAAC,mBAAmB,CAAa;IAGxC,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,SAAS;IAOX,UAAU,CAAC,SAAS,EAAE,WAAW,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;cA4B9D,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAgJ5C,OAAO,CAAC,wBAAwB;IAsHhC,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,oBAAoB;IAYtB,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAwDtC,OAAO,CAAC,gBAAgB;YAcV,OAAO;IAyDrB,OAAO,CAAC,cAAc;YAyBR,QAAQ;IA4DtB,OAAO,CAAC,iBAAiB;YAQX,UAAU;IAMxB,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhD,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,gBAAgB;IAOlB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+C3B,KAAK,IAAI,IAAI;IAkBN,YAAY,IAAI,IAAI;IAO3B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAwBxB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM9B,IAAI,IAAI,IAAI;IAMZ,MAAM,IAAI,IAAI;IAOd,cAAc,IAAI,MAAM;IAOxB,YAAY,IAAI,GAAG,EAAE;IAIrB,iBAAiB,IAAI,GAAG;IAIxB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAW/B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOnC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAkBhC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAwDhC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC/B,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAetC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3C,WAAW,IAAI,IAAI;IAUnB,iBAAiB,IAAI,IAAI;IAUzB,OAAO,CAAC,cAAc;YAmBR,0BAA0B;IAwCxC,OAAO,CAAC,eAAe;IAwCvB,uBAAuB,IAAI,IAAI;IA4D/B,OAAO,CAAC,4BAA4B;YAoEtB,gCAAgC;IAgBxC,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;IAkGtD,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAmC3C,4BAA4B,IAAI,IAAI;IA4D9B,gCAAgC,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IA8DtE,0BAA0B,IAAI,IAAI;IAqK5B,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IA4C3C,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAc9C,SAAS,CAAC,eAAe,IAAI,IAAI;IASjC,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,eAAe;IA0iFrB,OAAO,CAAC,uBAAuB;IA4DjC,OAAO,CAAC,oBAAoB;IAuU5B,OAAO,CAAC,2BAA2B;IA4XnC,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAoLxC,SAAS,CAAC,cAAc,IAAI,IAAI;IAmKzB,gBAAgB,CAAC,MAAM,EAAE,GAAG;IA2CnC,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,sBAAsB;IAsDvB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAetC,oBAAoB,IAAI,IAAI;IAO5B,kBAAkB,IAAI,IAAI;IAOjC,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,wBAAwB;IAyEhC,OAAO,CAAC,qBAAqB;IA8FtB,yBAAyB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI;IAiBxE,0BAA0B,CAAC,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAwB1F,OAAO,CAAC,oCAAoC;IAqBrC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IA2DjC,OAAO,CAAC,SAAS;IA8BjB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,iBAAiB;YAgCX,SAAS;IAYvB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,uBAAuB;IAoB/B,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,uBAAuB;IA6D/B,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,kBAAkB;IAiF1B,OAAO,CAAC,wBAAwB;IA+ChC,OAAO,CAAC,wBAAwB;IA6BhC,OAAO,CAAC,2BAA2B;IAmCnC,OAAO,CAAC,0BAA0B;IAgBlC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,sBAAsB;IA4B9B,OAAO,CAAC,WAAW;IAgCnB,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,WAAW;YAoBL,QAAQ;YAqGR,UAAU;IAqBxB,OAAO,CAAC,gBAAgB;IA2CxB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,YAAY;IA6BpB,OAAO,CAAC,sBAAsB;IA6B9B,OAAO,CAAC,sBAAsB;IAiF9B,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,4BAA4B;IAoDpC,OAAO,CAAC,oBAAoB;IA+BrB,aAAa,IAAI,IAAI;IAarB,aAAa,IAAI,IAAI;IAYrB,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAe9B,kBAAkB,IAAI,OAAO;YAKtB,OAAO;IAgBf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CA2C/B"}
1
+ {"version":3,"file":"WebPlayer.d.ts","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"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"}
@@ -2061,6 +2061,141 @@ export class WebPlayer extends BasePlayer {
2061
2061
  transform: translateY(0);
2062
2062
  }
2063
2063
 
2064
+ /* Improved Accordion Styles */
2065
+ .uvf-settings-accordion {
2066
+ padding: 8px 0;
2067
+ }
2068
+
2069
+ .uvf-accordion-item {
2070
+ margin-bottom: 2px;
2071
+ border-radius: 8px;
2072
+ overflow: hidden;
2073
+ background: rgba(255,255,255,0.03);
2074
+ }
2075
+
2076
+ .uvf-accordion-item:last-child {
2077
+ margin-bottom: 0;
2078
+ }
2079
+
2080
+ .uvf-accordion-header {
2081
+ display: flex;
2082
+ align-items: center;
2083
+ justify-content: space-between;
2084
+ padding: 12px 16px;
2085
+ cursor: pointer;
2086
+ transition: all 0.2s ease;
2087
+ background: rgba(255,255,255,0.05);
2088
+ border-bottom: 1px solid rgba(255,255,255,0.08);
2089
+ }
2090
+
2091
+ .uvf-accordion-header:hover {
2092
+ background: rgba(255,255,255,0.1);
2093
+ }
2094
+
2095
+ .uvf-accordion-item.expanded .uvf-accordion-header {
2096
+ background: rgba(255,255,255,0.08);
2097
+ border-bottom-color: rgba(255,255,255,0.12);
2098
+ }
2099
+
2100
+ .uvf-accordion-title {
2101
+ display: flex;
2102
+ align-items: center;
2103
+ gap: 8px;
2104
+ font-size: 13px;
2105
+ font-weight: 500;
2106
+ color: #fff;
2107
+ flex: 1;
2108
+ }
2109
+
2110
+ .uvf-accordion-icon {
2111
+ display: flex;
2112
+ align-items: center;
2113
+ justify-content: center;
2114
+ opacity: 0.9;
2115
+ width: 16px;
2116
+ height: 16px;
2117
+ }
2118
+
2119
+ .uvf-accordion-icon svg {
2120
+ width: 14px;
2121
+ height: 14px;
2122
+ fill: currentColor;
2123
+ }
2124
+
2125
+ .uvf-accordion-current {
2126
+ font-size: 11px;
2127
+ color: var(--uvf-accent-1);
2128
+ background: rgba(255,255,255,0.08);
2129
+ padding: 2px 8px;
2130
+ border-radius: 8px;
2131
+ font-weight: 600;
2132
+ margin-right: 8px;
2133
+ }
2134
+
2135
+ .uvf-accordion-arrow {
2136
+ font-size: 10px;
2137
+ color: rgba(255,255,255,0.7);
2138
+ transition: transform 0.25s ease;
2139
+ width: 16px;
2140
+ text-align: center;
2141
+ }
2142
+
2143
+ .uvf-accordion-item.expanded .uvf-accordion-arrow {
2144
+ transform: rotate(180deg);
2145
+ }
2146
+
2147
+ .uvf-accordion-content {
2148
+ max-height: 0;
2149
+ overflow: hidden;
2150
+ transition: max-height 0.25s cubic-bezier(0.4, 0, 0.2, 1);
2151
+ background: rgba(0,0,0,0.2);
2152
+ }
2153
+
2154
+ .uvf-accordion-item.expanded .uvf-accordion-content {
2155
+ max-height: 250px;
2156
+ }
2157
+
2158
+ /* Settings options within accordion */
2159
+ .uvf-accordion-content .uvf-settings-option {
2160
+ color: #fff;
2161
+ font-size: 13px;
2162
+ padding: 10px 16px;
2163
+ cursor: pointer;
2164
+ transition: all 0.2s ease;
2165
+ border-bottom: 1px solid rgba(255,255,255,0.05);
2166
+ display: flex;
2167
+ align-items: center;
2168
+ justify-content: space-between;
2169
+ }
2170
+
2171
+ .uvf-accordion-content .uvf-settings-option:last-child {
2172
+ border-bottom: none;
2173
+ }
2174
+
2175
+ .uvf-accordion-content .uvf-settings-option:hover {
2176
+ background: rgba(255,255,255,0.06);
2177
+ padding-left: 20px;
2178
+ }
2179
+
2180
+ .uvf-accordion-content .uvf-settings-option.active {
2181
+ color: var(--uvf-accent-1);
2182
+ background: rgba(255,255,255,0.08);
2183
+ font-weight: 600;
2184
+ }
2185
+
2186
+ .uvf-accordion-content .uvf-settings-option.active::after {
2187
+ content: '✓';
2188
+ font-size: 12px;
2189
+ opacity: 0.8;
2190
+ }
2191
+
2192
+ .uvf-settings-empty {
2193
+ padding: 20px;
2194
+ text-align: center;
2195
+ color: rgba(255,255,255,0.6);
2196
+ font-size: 14px;
2197
+ }
2198
+
2064
2199
  .uvf-settings-group {
2065
2200
  padding: 10px 0;
2066
2201
  border-bottom: 1px solid rgba(255,255,255,0.1);
@@ -4588,6 +4723,17 @@ export class WebPlayer extends BasePlayer {
4588
4723
  if (!e.target.closest('#uvf-settings-btn') &&
4589
4724
  !e.target.closest('#uvf-settings-menu')) {
4590
4725
  settingsMenu?.classList.remove('active');
4726
+ settingsMenu?.querySelectorAll('.uvf-accordion-item.expanded').forEach(item => {
4727
+ item.classList.remove('expanded');
4728
+ });
4729
+ }
4730
+ });
4731
+ document.addEventListener('keydown', (e) => {
4732
+ if (e.key === 'Escape' && settingsMenu?.classList.contains('active')) {
4733
+ settingsMenu.classList.remove('active');
4734
+ settingsMenu.querySelectorAll('.uvf-accordion-item.expanded').forEach(item => {
4735
+ item.classList.remove('expanded');
4736
+ });
4591
4737
  }
4592
4738
  });
4593
4739
  }
@@ -5747,41 +5893,92 @@ export class WebPlayer extends BasePlayer {
5747
5893
  this.debugLog('Available qualities:', this.availableQualities);
5748
5894
  this.debugLog('Available subtitles:', this.availableSubtitles);
5749
5895
  this.debugLog('Settings config:', this.settingsConfig);
5750
- let menuHTML = '';
5896
+ this.generateAccordionMenu();
5897
+ }
5898
+ generateAccordionMenu() {
5899
+ const settingsMenu = document.getElementById('uvf-settings-menu');
5900
+ if (!settingsMenu)
5901
+ return;
5902
+ let menuHTML = '<div class="uvf-settings-accordion">';
5751
5903
  if (this.settingsConfig.speed) {
5904
+ const currentSpeedLabel = this.currentPlaybackRate === 1 ? 'Normal' : `${this.currentPlaybackRate}x`;
5752
5905
  menuHTML += `
5753
- <div class="uvf-settings-group">
5754
- <div class="uvf-settings-label">Playback Speed</div>
5755
- <div class="uvf-settings-option speed-option" data-speed="0.25">0.25x</div>
5756
- <div class="uvf-settings-option speed-option" data-speed="0.5">0.5x</div>
5757
- <div class="uvf-settings-option speed-option" data-speed="0.75">0.75x</div>
5758
- <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 1 ? 'active' : ''}" data-speed="1">Normal</div>
5759
- <div class="uvf-settings-option speed-option" data-speed="1.25">1.25x</div>
5760
- <div class="uvf-settings-option speed-option" data-speed="1.5">1.5x</div>
5761
- <div class="uvf-settings-option speed-option" data-speed="1.75">1.75x</div>
5762
- <div class="uvf-settings-option speed-option" data-speed="2">2x</div>
5906
+ <div class="uvf-accordion-item">
5907
+ <div class="uvf-accordion-header" data-section="speed">
5908
+ <div class="uvf-accordion-title">
5909
+ <span class="uvf-accordion-icon">
5910
+ <svg viewBox="0 0 24 24" width="14" height="14" fill="currentColor">
5911
+ <path d="M13,24l11-12L13,0V7.5C5.7,7.5,0,13.2,0,20.5C0,22.4,0.6,24.2,1.6,25.7C4.8,21.8,8.7,19.5,13,19.5V24z"/>
5912
+ </svg>
5913
+ </span>
5914
+ <span>Playback Speed</span>
5915
+ </div>
5916
+ <div class="uvf-accordion-current">${currentSpeedLabel}</div>
5917
+ <div class="uvf-accordion-arrow">▼</div>
5918
+ </div>
5919
+ <div class="uvf-accordion-content" data-section="speed">
5920
+ <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 0.25 ? 'active' : ''}" data-speed="0.25">0.25x</div>
5921
+ <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 0.5 ? 'active' : ''}" data-speed="0.5">0.5x</div>
5922
+ <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 0.75 ? 'active' : ''}" data-speed="0.75">0.75x</div>
5923
+ <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 1 ? 'active' : ''}" data-speed="1">Normal</div>
5924
+ <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 1.25 ? 'active' : ''}" data-speed="1.25">1.25x</div>
5925
+ <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 1.5 ? 'active' : ''}" data-speed="1.5">1.5x</div>
5926
+ <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 1.75 ? 'active' : ''}" data-speed="1.75">1.75x</div>
5927
+ <div class="uvf-settings-option speed-option ${this.currentPlaybackRate === 2 ? 'active' : ''}" data-speed="2">2x</div>
5928
+ </div>
5763
5929
  </div>`;
5764
5930
  }
5765
5931
  if (this.settingsConfig.quality && this.availableQualities.length > 0) {
5766
- menuHTML += `<div class="uvf-settings-group">
5767
- <div class="uvf-settings-label">Quality</div>`;
5932
+ const currentQuality = this.availableQualities.find(q => q.value === this.currentQuality);
5933
+ const currentQualityLabel = currentQuality ? currentQuality.label : 'Auto';
5934
+ menuHTML += `
5935
+ <div class="uvf-accordion-item">
5936
+ <div class="uvf-accordion-header" data-section="quality">
5937
+ <div class="uvf-accordion-title">
5938
+ <span class="uvf-accordion-icon">
5939
+ <svg viewBox="0 0 24 24" width="14" height="14" fill="currentColor">
5940
+ <path d="M9,4v3h5V4h4V16H15v-3H9v3H5V4H9z M8,5H6v10h2V11h6v4h2V5h-2v4H8V5z"/>
5941
+ </svg>
5942
+ </span>
5943
+ <span>Quality</span>
5944
+ </div>
5945
+ <div class="uvf-accordion-current">${currentQualityLabel}</div>
5946
+ <div class="uvf-accordion-arrow">▼</div>
5947
+ </div>
5948
+ <div class="uvf-accordion-content" data-section="quality">`;
5768
5949
  this.availableQualities.forEach(quality => {
5769
5950
  const isActive = quality.value === this.currentQuality ? 'active' : '';
5770
5951
  menuHTML += `<div class="uvf-settings-option quality-option ${isActive}" data-quality="${quality.value}">${quality.label}</div>`;
5771
5952
  });
5772
- menuHTML += `</div>`;
5953
+ menuHTML += `</div></div>`;
5773
5954
  }
5774
5955
  if (this.settingsConfig.subtitles && this.availableSubtitles.length > 0) {
5775
- menuHTML += `<div class="uvf-settings-group">
5776
- <div class="uvf-settings-label">Subtitles/Captions</div>`;
5956
+ const currentSubtitle = this.availableSubtitles.find(s => s.value === this.currentSubtitle);
5957
+ const currentSubtitleLabel = currentSubtitle ? currentSubtitle.label : 'Off';
5958
+ menuHTML += `
5959
+ <div class="uvf-accordion-item">
5960
+ <div class="uvf-accordion-header" data-section="subtitles">
5961
+ <div class="uvf-accordion-title">
5962
+ <span class="uvf-accordion-icon">
5963
+ <svg viewBox="0 0 24 24" width="14" height="14" fill="currentColor">
5964
+ <path d="M20,4H4C2.89,4 2,4.89 2,6V18C2,19.11 2.89,20 4,20H20C21.11,20 22,19.11 22,18V6C22,4.89 21.11,4 20,4M20,18H4V6H20V18M6,10H8V12H6V10M6,14H14V16H6V14M16,14H18V16H16V14M10,10H18V12H10V10Z"/>
5965
+ </svg>
5966
+ </span>
5967
+ <span>Subtitles</span>
5968
+ </div>
5969
+ <div class="uvf-accordion-current">${currentSubtitleLabel}</div>
5970
+ <div class="uvf-accordion-arrow">▼</div>
5971
+ </div>
5972
+ <div class="uvf-accordion-content" data-section="subtitles">`;
5777
5973
  this.availableSubtitles.forEach(subtitle => {
5778
5974
  const isActive = subtitle.value === this.currentSubtitle ? 'active' : '';
5779
5975
  menuHTML += `<div class="uvf-settings-option subtitle-option ${isActive}" data-subtitle="${subtitle.value}">${subtitle.label}</div>`;
5780
5976
  });
5781
- menuHTML += `</div>`;
5977
+ menuHTML += `</div></div>`;
5782
5978
  }
5783
- if (!menuHTML.trim()) {
5784
- menuHTML = '<div class="uvf-settings-group"><div class="uvf-settings-label">No settings available</div></div>';
5979
+ menuHTML += '</div>';
5980
+ if (menuHTML === '<div class="uvf-settings-accordion"></div>') {
5981
+ menuHTML = '<div class="uvf-settings-accordion"><div class="uvf-settings-empty">No settings available</div></div>';
5785
5982
  }
5786
5983
  this.debugLog('Generated menu HTML length:', menuHTML.length);
5787
5984
  this.debugLog('Generated menu HTML content:', menuHTML.substring(0, 200) + (menuHTML.length > 200 ? '...' : ''));
@@ -5856,28 +6053,59 @@ export class WebPlayer extends BasePlayer {
5856
6053
  const settingsMenu = document.getElementById('uvf-settings-menu');
5857
6054
  if (!settingsMenu)
5858
6055
  return;
6056
+ settingsMenu.querySelectorAll('.uvf-accordion-header').forEach(header => {
6057
+ header.addEventListener('click', (e) => {
6058
+ e.preventDefault();
6059
+ e.stopPropagation();
6060
+ const accordionItem = header.parentElement;
6061
+ const section = header.getAttribute('data-section');
6062
+ if (accordionItem && section) {
6063
+ this.toggleAccordionSection(accordionItem, section);
6064
+ }
6065
+ });
6066
+ });
5859
6067
  settingsMenu.querySelectorAll('.speed-option').forEach(option => {
5860
6068
  option.addEventListener('click', (e) => {
5861
6069
  const speed = parseFloat(e.target.dataset.speed || '1');
5862
6070
  this.setPlaybackRateFromSettings(speed);
5863
- this.updateSettingsActiveStates('speed-option', e.target);
6071
+ this.updateAccordionAfterSelection('speed');
5864
6072
  });
5865
6073
  });
5866
6074
  settingsMenu.querySelectorAll('.quality-option').forEach(option => {
5867
6075
  option.addEventListener('click', (e) => {
5868
6076
  const quality = e.target.dataset.quality || 'auto';
5869
6077
  this.setQualityFromSettings(quality);
5870
- this.updateSettingsActiveStates('quality-option', e.target);
6078
+ this.updateAccordionAfterSelection('quality');
5871
6079
  });
5872
6080
  });
5873
6081
  settingsMenu.querySelectorAll('.subtitle-option').forEach(option => {
5874
6082
  option.addEventListener('click', (e) => {
5875
6083
  const subtitle = e.target.dataset.subtitle || 'off';
5876
6084
  this.setSubtitle(subtitle);
5877
- this.updateSettingsActiveStates('subtitle-option', e.target);
6085
+ this.updateAccordionAfterSelection('subtitles');
5878
6086
  });
5879
6087
  });
5880
6088
  }
6089
+ toggleAccordionSection(accordionItem, section) {
6090
+ const isExpanded = accordionItem.classList.contains('expanded');
6091
+ if (isExpanded) {
6092
+ accordionItem.classList.remove('expanded');
6093
+ return;
6094
+ }
6095
+ const settingsMenu = document.getElementById('uvf-settings-menu');
6096
+ if (settingsMenu) {
6097
+ settingsMenu.querySelectorAll('.uvf-accordion-item.expanded').forEach(item => {
6098
+ item.classList.remove('expanded');
6099
+ });
6100
+ }
6101
+ accordionItem.classList.add('expanded');
6102
+ }
6103
+ updateAccordionAfterSelection(section) {
6104
+ setTimeout(() => {
6105
+ this.generateAccordionMenu();
6106
+ this.setupSettingsEventListeners();
6107
+ }, 100);
6108
+ }
5881
6109
  updateSettingsActiveStates(className, activeElement) {
5882
6110
  const settingsMenu = document.getElementById('uvf-settings-menu');
5883
6111
  if (!settingsMenu)