unified-video-framework 1.4.443 → 1.4.444

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.
@@ -118,7 +118,7 @@ export interface FlashNewsTickerConfig {
118
118
  gap?: number;
119
119
  loop?: boolean;
120
120
  separator?: string;
121
- variant?: 'standard' | 'breaking' | 'live' | 'broadcast1' | 'broadcast2' | 'broadcast3' | 'broadcast4' | 'custom';
121
+ variant?: 'standard' | 'breaking' | 'live' | 'broadcast1' | 'custom';
122
122
  badgeText?: string;
123
123
  badgeColor?: string;
124
124
  badgeTextColor?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"FlashNewsTickerTypes.d.ts","sourceRoot":"","sources":["../../../src/react/types/FlashNewsTickerTypes.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,WAAW,CAAC;AASxD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,CAAC;AAWrF,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAQ7F,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAK3D,MAAM,MAAM,cAAc,GACtB,cAAc,GACd,eAAe,GACf,WAAW,GACX,WAAW,GACX,QAAQ,CAAC;AAKb,MAAM,WAAW,aAAa;IAE5B,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAG3B,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAOlB,cAAc,CAAC,EAAE,OAAO,CAAC;IAOzB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAG1B,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,gBAAgB;IAE/B,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD,MAAM,WAAW,oBAAoB;IAEnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,OAAO,CAAC,EAAE,aAAa,CAAC;IAGxB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAG9B,aAAa,CAAC,EAAE,OAAO,CAAC;IAGxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAKD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;AAKlF,MAAM,WAAW,sBAAsB;IAErC,eAAe,CAAC,EAAE;QAEhB,IAAI,CAAC,EAAE,aAAa,CAAC;QAErB,QAAQ,CAAC,EAAE,OAAO,CAAC;QAEnB,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAKD,MAAM,WAAW,iBAAiB;IAEhC,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,cAAc,CAAC,EAAE,kBAAkB,CAAC;IAGpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAKD,MAAM,WAAW,oBAAoB;IAEnC,KAAK,CAAC,EAAE,cAAc,CAAC;IAGvB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAGhC,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,aAAa,CAAC,EAAE,OAAO,CAAC;IAGxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAGtC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAG1C,qBAAqB,CAAC,EAAE,kBAAkB,CAAC;IAG3C,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAKD,MAAM,WAAW,mBAAmB;IAElC,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,EAAE,MAAM,CAAC;IAOb,IAAI,CAAC,EAAE,MAAM,CAAC;IAMd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAMlB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,OAAO,CAAC,EAAE,MAAM,CAAC;IAMjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAMlB,SAAS,CAAC,EAAE,OAAO,CAAC;IAMpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAMnB,cAAc,CAAC,EAAE,kBAAkB,CAAC;IAMpC,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAKD,MAAM,WAAW,mBAAmB;IAElC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAK7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAK7B,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,GAAG,CAAC,EAAE,MAAM,CAAC;IAGb,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAGlC,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACvC;AAKD,MAAM,WAAW,qBAAqB;IAEpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAG9B,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAOrC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAGlC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAGtC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAGhC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAGhC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAKnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAK7B,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,GAAG,CAAC,EAAE,MAAM,CAAC;IAGb,IAAI,CAAC,EAAE,OAAO,CAAC;IAGf,SAAS,CAAC,EAAE,MAAM,CAAC;IAanB,OAAO,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAC;IAGlH,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAKvC,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAKD,MAAM,WAAW,kBAAkB;IAEjC,IAAI,EAAE,MAAM,IAAI,CAAC;IAGjB,IAAI,EAAE,MAAM,IAAI,CAAC;IAGjB,SAAS,EAAE,MAAM,OAAO,CAAC;IAGzB,WAAW,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;IAGpD,OAAO,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAG7C,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAGrC,UAAU,EAAE,MAAM,IAAI,CAAC;IAGvB,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC;IAG/D,KAAK,EAAE,MAAM,IAAI,CAAC;IAGlB,MAAM,EAAE,MAAM,IAAI,CAAC;IAGnB,QAAQ,EAAE,MAAM,OAAO,CAAC;CACzB"}
1
+ {"version":3,"file":"FlashNewsTickerTypes.d.ts","sourceRoot":"","sources":["../../../src/react/types/FlashNewsTickerTypes.ts"],"names":[],"mappings":"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"}
@@ -2577,9 +2577,6 @@ export class WebPlayer extends BasePlayer {
2577
2577
 
2578
2578
  // Route to specific broadcast layouts
2579
2579
  if (variant === 'broadcast1') return this.createBroadcast1Element(config, position);
2580
- if (variant === 'broadcast2') return this.createBroadcast2Element(config, position);
2581
- if (variant === 'broadcast3') return this.createBroadcast3Element(config, position);
2582
- if (variant === 'broadcast4') return this.createBroadcast4Element(config, position);
2583
2580
 
2584
2581
  // Route to specific broadcast style if configured (older style)
2585
2582
  if (config.styleVariant === 'broadcast' || variant === 'breaking' || variant === 'live') {
@@ -2888,322 +2885,6 @@ export class WebPlayer extends BasePlayer {
2888
2885
  const ticker = document.createElement('div');
2889
2886
  ticker.className = `uvf-ticker-broadcast1 ticker-${position}`;
2890
2887
 
2891
- const height = config.height || 70;
2892
- const bottomOffset = config.bottomOffset || 0;
2893
- const topOffset = config.topOffset || 10;
2894
-
2895
- ticker.style.cssText = `
2896
- position: absolute;
2897
- left: 10%;
2898
- right: 10%;
2899
- height: ${height}px;
2900
- ${position === 'top' ? `top: ${topOffset}px;` : `bottom: ${bottomOffset}px;`}
2901
- display: flex;
2902
- font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
2903
- z-index: 100;
2904
- pointer-events: none;
2905
- filter: drop-shadow(0 10px 15px rgba(0,0,0,0.5));
2906
- `;
2907
-
2908
- // 1. Globe Block (Left)
2909
- const globeBlock = document.createElement('div');
2910
- globeBlock.style.cssText = `
2911
- width: ${height * 1.3}px;
2912
- height: ${height}px;
2913
- background: linear-gradient(135deg, #e74c3c 0%, #c0392b 50%, #962d22 100%);
2914
- display: flex;
2915
- align-items: center;
2916
- justify-content: center;
2917
- flex-shrink: 0;
2918
- clip-path: polygon(0% 0%, 78% 0%, 100% 100%, 0% 100%);
2919
- z-index: 30;
2920
- position: relative;
2921
- overflow: hidden;
2922
- `;
2923
-
2924
- // Glossy Overlay for Globe Block
2925
- const glossyGlobe = document.createElement('div');
2926
- glossyGlobe.style.cssText = `
2927
- position: absolute;
2928
- top: 0; left: 0; right: 0; height: 40%;
2929
- background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0) 100%);
2930
- pointer-events: none;
2931
- `;
2932
- globeBlock.appendChild(glossyGlobe);
2933
-
2934
- const globe = this.createGlobeElement(true);
2935
- globe.style.width = '42%';
2936
- globe.style.height = '42%';
2937
- globe.style.marginRight = '18%';
2938
- globeBlock.appendChild(globe);
2939
- ticker.appendChild(globeBlock);
2940
-
2941
- // 2. Right Content (Dual Bars)
2942
- const content = document.createElement('div');
2943
- content.style.cssText = `
2944
- flex-grow: 1;
2945
- display: flex;
2946
- flex-direction: column;
2947
- margin-left: -${height * 0.35}px;
2948
- z-index: 10;
2949
- `;
2950
-
2951
- // Row 1: Top Blue Bar (Headline)
2952
- const topBar = document.createElement('div');
2953
- topBar.style.cssText = `
2954
- height: 55%;
2955
- background: linear-gradient(90deg, #1e3c72 0%, #2a5298 50%, #1e3c72 100%);
2956
- clip-path: polygon(4% 0, 100% 0, 98.5% 100%, 0% 100%);
2957
- display: flex;
2958
- align-items: center;
2959
- padding: 0 40px 0 65px;
2960
- color: white;
2961
- position: relative;
2962
- overflow: hidden;
2963
- border-bottom: 2px solid rgba(255,255,255,0.15);
2964
- `;
2965
-
2966
- const glossyTop = document.createElement('div');
2967
- glossyTop.style.cssText = `
2968
- position: absolute;
2969
- top: 0; left: 0; right: 0; height: 35%;
2970
- background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0) 100%);
2971
- `;
2972
- topBar.appendChild(glossyTop);
2973
-
2974
- const breakingText = document.createElement('span');
2975
- breakingText.textContent = 'BREAKING NEWS';
2976
- breakingText.style.cssText = `
2977
- font-weight: 900;
2978
- font-style: italic;
2979
- font-size: ${height * 0.2}px;
2980
- margin-right: 25px;
2981
- white-space: nowrap;
2982
- color: #fff;
2983
- text-shadow: 0 0 12px rgba(255,255,255,0.6);
2984
- letter-spacing: 0.5px;
2985
- `;
2986
- topBar.appendChild(breakingText);
2987
-
2988
- const headlineText = document.createElement('span');
2989
- headlineText.textContent = config.headline || 'LOREM IPSUM DOLOR SIT AMET, CONSECTETUER';
2990
- headlineText.style.cssText = `
2991
- font-weight: 800;
2992
- font-size: ${height * 0.26}px;
2993
- white-space: nowrap;
2994
- overflow: hidden;
2995
- text-overflow: ellipsis;
2996
- text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
2997
- `;
2998
- topBar.appendChild(headlineText);
2999
- content.appendChild(topBar);
3000
-
3001
- // Row 2: Bottom Black Bar (Scrolling Items)
3002
- const bottomBar = document.createElement('div');
3003
- bottomBar.style.cssText = `
3004
- height: 45%;
3005
- background: linear-gradient(90deg, #0a0a0a 0%, #1a1a1a 50%, #0a0a0a 100%);
3006
- display: flex;
3007
- align-items: center;
3008
- clip-path: polygon(1.5% 0, 100% 0, 100% 100%, 0% 100%);
3009
- border-top: 1px solid rgba(255,255,255,0.08);
3010
- `;
3011
-
3012
- const liveBadge = document.createElement('div');
3013
- liveBadge.textContent = 'LIVE';
3014
- liveBadge.style.cssText = `
3015
- background: linear-gradient(180deg, #f1c40f 0%, #d4ac0d 100%);
3016
- color: #000;
3017
- font-weight: 900;
3018
- font-size: ${height * 0.16}px;
3019
- padding: 2px 14px;
3020
- margin-left: 55px;
3021
- clip-path: polygon(0 0, 88% 0, 100% 100%, 0 100%);
3022
- box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
3023
- `;
3024
- bottomBar.appendChild(liveBadge);
3025
-
3026
- const trackContainer = document.createElement('div');
3027
- trackContainer.style.cssText = `flex-grow: 1; overflow: hidden; height: 100%; display: flex; align-items: center;`;
3028
- const track = this.createSeamlessScrollingTrack(config.items || [], config);
3029
- track.style.fontSize = `${height * 0.18}px`;
3030
- track.style.color = '#fff';
3031
- track.style.fontWeight = '700';
3032
- track.style.textShadow = '1px 1px 2px rgba(0,0,0,0.8)';
3033
- trackContainer.appendChild(track);
3034
- bottomBar.appendChild(trackContainer);
3035
-
3036
- content.appendChild(bottomBar);
3037
- ticker.appendChild(content);
3038
-
3039
- this.ensureTickerAnimations();
3040
- return ticker;
3041
- }
3042
-
3043
- private createBroadcast2Element(config: FlashNewsTickerConfig, position: 'top' | 'bottom'): HTMLDivElement {
3044
- const ticker = document.createElement('div');
3045
- ticker.className = `uvf-ticker-broadcast2 ticker-${position}`;
3046
-
3047
- const height = config.height || 75;
3048
- const bottomOffset = config.bottomOffset || 0;
3049
-
3050
- ticker.style.cssText = `
3051
- position: absolute;
3052
- left: 5%;
3053
- right: 5%;
3054
- bottom: ${bottomOffset}px;
3055
- height: ${height}px;
3056
- display: flex;
3057
- align-items: flex-end;
3058
- font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
3059
- z-index: 100;
3060
- pointer-events: none;
3061
- filter: drop-shadow(0 8px 12px rgba(0,0,0,0.4));
3062
- `;
3063
-
3064
- // Globe Wrapper
3065
- const globeWrapper = document.createElement('div');
3066
- globeWrapper.style.cssText = `
3067
- width: ${height * 0.8}px;
3068
- height: ${height * 0.8}px;
3069
- position: relative;
3070
- z-index: 40;
3071
- margin-right: 12px;
3072
- flex-shrink: 0;
3073
- `;
3074
-
3075
- const globeContainer = document.createElement('div');
3076
- globeContainer.style.cssText = `
3077
- width: 100%;
3078
- height: 100%;
3079
- background: radial-gradient(circle at 30% 30%, #e74c3c 0%, #c1392b 60%, #962d22 100%);
3080
- border-radius: 50%;
3081
- display: flex;
3082
- align-items: center;
3083
- justify-content: center;
3084
- box-shadow: inset -5px -5px 15px rgba(0,0,0,0.5), 0 0 25px rgba(0,0,0,0.6);
3085
- border: 3px solid #fff;
3086
- overflow: hidden;
3087
- `;
3088
-
3089
- const glossyGlobeEffect = document.createElement('div');
3090
- glossyGlobeEffect.style.cssText = `
3091
- position: absolute;
3092
- top: 10%; left: 15%; width: 40%; height: 30%;
3093
- background: rgba(255,255,255,0.3);
3094
- border-radius: 50%;
3095
- filter: blur(4px);
3096
- pointer-events: none;
3097
- `;
3098
- globeContainer.appendChild(glossyGlobeEffect);
3099
-
3100
- const globe = this.createGlobeElement(true);
3101
- globe.style.width = '75%';
3102
- globe.style.height = '75%';
3103
- globeContainer.appendChild(globe);
3104
- globeWrapper.appendChild(globeContainer);
3105
- ticker.appendChild(globeWrapper);
3106
-
3107
- const content = document.createElement('div');
3108
- content.style.cssText = `flex-grow: 1; display: flex; flex-direction: column; z-index: 20;`;
3109
-
3110
- // Row 1: Yellow/Red Header
3111
- const row1 = document.createElement('div');
3112
- row1.style.cssText = `display: flex; height: 50%; position: relative; overflow: hidden;`;
3113
-
3114
- const badge = document.createElement('div');
3115
- badge.textContent = 'BREAKING NEWS';
3116
- badge.style.cssText = `
3117
- background: linear-gradient(180deg, #f1c40f 0%, #d4ac0d 100%);
3118
- color: #000;
3119
- font-weight: 900;
3120
- padding: 0 30px;
3121
- display: flex;
3122
- align-items: center;
3123
- clip-path: polygon(0 0, 88% 0, 100% 100%, 0 100%);
3124
- font-size: ${height * 0.2}px;
3125
- position: relative;
3126
- z-index: 5;
3127
- text-shadow: 0 1px 1px rgba(255,255,255,0.3);
3128
- `;
3129
- row1.appendChild(badge);
3130
-
3131
- const headline = document.createElement('div');
3132
- headline.textContent = config.headline || 'LOREM IPSUM DOLOR SIT AMET, CONSECTETUER';
3133
- headline.style.cssText = `
3134
- background: linear-gradient(90deg, #e74c3c 0%, #c1392b 50%, #e74c3c 100%);
3135
- color: white;
3136
- font-weight: 800;
3137
- padding: 0 45px;
3138
- display: flex;
3139
- align-items: center;
3140
- flex-grow: 1;
3141
- margin-left: -25px;
3142
- clip-path: polygon(5% 0, 100% 0, 96% 100%, 0 100%);
3143
- font-size: ${height * 0.23}px;
3144
- text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
3145
- border-bottom: 3px solid rgba(255,255,255,0.15);
3146
- `;
3147
-
3148
- const glossyHeader = document.createElement('div');
3149
- glossyHeader.style.cssText = `
3150
- position: absolute;
3151
- top: 0; left: 0; right: 0; height: 40%;
3152
- background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0) 100%);
3153
- `;
3154
- headline.appendChild(glossyHeader);
3155
-
3156
- row1.appendChild(headline);
3157
- content.appendChild(row1);
3158
-
3159
- // Row 2: Blue Ticker (Semi-transparent with Pro Blur)
3160
- const row2 = document.createElement('div');
3161
- row2.style.cssText = `
3162
- height: 42%;
3163
- background: rgba(30, 60, 114, 0.85);
3164
- display: flex;
3165
- align-items: center;
3166
- margin-top: 5px;
3167
- clip-path: polygon(1.5% 0, 100% 0, 100% 100%, 2.5% 100%);
3168
- backdrop-filter: blur(12px);
3169
- border: 1px solid rgba(255,255,255,0.1);
3170
- box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
3171
- `;
3172
-
3173
- const live = document.createElement('div');
3174
- live.textContent = 'LIVE';
3175
- live.style.cssText = `
3176
- background: #fff;
3177
- color: #1e3c72;
3178
- font-weight: 950;
3179
- padding: 2px 18px;
3180
- margin-left: 35px;
3181
- margin-right: 20px;
3182
- font-size: ${height * 0.16}px;
3183
- box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
3184
- letter-spacing: 1px;
3185
- `;
3186
- row2.appendChild(live);
3187
-
3188
- const trackCont = document.createElement('div');
3189
- trackCont.style.cssText = `flex-grow: 1; overflow: hidden; height: 100%; display: flex; align-items: center; color: white;`;
3190
- const track = this.createSeamlessScrollingTrack(config.items || [], config);
3191
- track.style.fontSize = `${height * 0.17}px`;
3192
- track.style.fontWeight = '700';
3193
- track.style.textShadow = '1px 1px 3px rgba(0,0,0,0.9)';
3194
- trackCont.appendChild(track);
3195
- row2.appendChild(trackCont);
3196
- content.appendChild(row2);
3197
-
3198
- ticker.appendChild(content);
3199
- this.ensureTickerAnimations();
3200
- return ticker;
3201
- }
3202
-
3203
- private createBroadcast3Element(config: FlashNewsTickerConfig, position: 'top' | 'bottom'): HTMLDivElement {
3204
- const ticker = document.createElement('div');
3205
- ticker.className = `uvf-ticker-broadcast3 ticker-${position}`;
3206
-
3207
2888
  const height = config.height || 60;
3208
2889
  const bottomOffset = config.bottomOffset || 0;
3209
2890
  const topOffset = config.topOffset || 10;
@@ -3292,134 +2973,6 @@ export class WebPlayer extends BasePlayer {
3292
2973
  return ticker;
3293
2974
  }
3294
2975
 
3295
- private createBroadcast4Element(config: FlashNewsTickerConfig, position: 'top' | 'bottom'): HTMLDivElement {
3296
- const ticker = document.createElement('div');
3297
- ticker.className = `uvf-ticker-broadcast4 ticker-${position}`;
3298
-
3299
- const height = config.height || 65;
3300
- const bottomOffset = config.bottomOffset || 0;
3301
-
3302
- ticker.style.cssText = `
3303
- position: absolute;
3304
- left: 15%;
3305
- right: 15%;
3306
- bottom: ${bottomOffset}px;
3307
- height: ${height}px;
3308
- display: flex;
3309
- align-items: flex-end;
3310
- font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
3311
- z-index: 100;
3312
- pointer-events: none;
3313
- filter: drop-shadow(0 12px 20px rgba(0,0,0,0.6));
3314
- `;
3315
-
3316
- // Large Blue Box (Pro Upgrade)
3317
- const newsBox = document.createElement('div');
3318
- newsBox.style.cssText = `
3319
- width: ${height * 1.8}px;
3320
- height: 100%;
3321
- background: linear-gradient(135deg, #1e3c72 0%, #2a5298 50%, #1e3c72 100%);
3322
- display: flex;
3323
- flex-direction: column;
3324
- justify-content: center;
3325
- align-items: center;
3326
- position: relative;
3327
- clip-path: polygon(0 0, 100% 0, 82% 100%, 0 100%);
3328
- flex-shrink: 0;
3329
- z-index: 40;
3330
- border-right: 2px solid rgba(255,255,255,0.2);
3331
- `;
3332
-
3333
- const glossyNews = document.createElement('div');
3334
- glossyNews.style.cssText = `
3335
- position: absolute;
3336
- top: 0; left: 0; right: 0; height: 40%;
3337
- background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0) 100%);
3338
- `;
3339
- newsBox.appendChild(glossyNews);
3340
-
3341
- const bt = document.createElement('div');
3342
- bt.style.cssText = `display: flex; gap: 6px; margin-bottom: 2px; width: 100%; justify-content: center; padding-right: 18%; position: relative; z-index: 2;`;
3343
-
3344
- const b1 = document.createElement('span');
3345
- b1.textContent = 'BREAKING';
3346
- b1.style.cssText = `
3347
- background: #c0392b;
3348
- font-size: ${height * 0.14}px;
3349
- font-weight: 900;
3350
- padding: 2px 8px;
3351
- border-radius: 2px;
3352
- color: white;
3353
- box-shadow: 0 0 10px rgba(192, 57, 43, 0.8);
3354
- `;
3355
- bt.appendChild(b1);
3356
-
3357
- const b2 = document.createElement('span');
3358
- b2.textContent = 'LIVE';
3359
- b2.style.cssText = `
3360
- background: #f1c40f;
3361
- font-size: ${height * 0.14}px;
3362
- font-weight: 900;
3363
- padding: 2px 8px;
3364
- border-radius: 2px;
3365
- color: black;
3366
- box-shadow: 0 0 10px rgba(241, 196, 15, 0.6);
3367
- `;
3368
- bt.appendChild(b2);
3369
- newsBox.appendChild(bt);
3370
-
3371
- const nt = document.createElement('div');
3372
- nt.textContent = 'NEWS';
3373
- nt.style.cssText = `
3374
- font-size: ${height * 0.5}px;
3375
- font-weight: 900;
3376
- color: white;
3377
- letter-spacing: 6px;
3378
- padding-right: 18%;
3379
- line-height: 1;
3380
- text-shadow: 3px 3px 6px rgba(0,0,0,0.6);
3381
- `;
3382
- newsBox.appendChild(nt);
3383
- ticker.appendChild(newsBox);
3384
-
3385
- // Red Scrolling Bar (Pro Upgrade)
3386
- const redBar = document.createElement('div');
3387
- redBar.style.cssText = `
3388
- flex-grow: 1;
3389
- height: 52%;
3390
- background: linear-gradient(90deg, #c0392b 0%, #e74c3c 50%, #c0392b 100%);
3391
- margin-left: -${height * 0.3}px;
3392
- display: flex;
3393
- align-items: center;
3394
- padding-left: ${height * 0.45}px;
3395
- padding-right: 30px;
3396
- clip-path: polygon(6% 0, 100% 0, 100% 100%, 0 100%);
3397
- z-index: 20;
3398
- border-top: 1px solid rgba(255,255,255,0.1);
3399
- box-shadow: inset 0 0 15px rgba(0,0,0,0.4);
3400
- `;
3401
-
3402
- const glossyRed = document.createElement('div');
3403
- glossyRed.style.cssText = `
3404
- position: absolute;
3405
- top: 0; left: 0; right: 0; height: 35%;
3406
- background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0) 100%);
3407
- `;
3408
- redBar.appendChild(glossyRed);
3409
-
3410
- const tCont = document.createElement('div');
3411
- tCont.style.cssText = `flex-grow: 1; overflow: hidden; height: 100%; display: flex; align-items: center; color: white;`;
3412
- const track = this.createSeamlessScrollingTrack(config.items || [], config);
3413
- track.style.fontSize = `${height * 0.24}px`;
3414
- track.style.fontWeight = '800';
3415
- track.style.textShadow = '2px 2px 4px rgba(0,0,0,0.7)';
3416
- tCont.appendChild(track);
3417
- redBar.appendChild(tCont);
3418
- ticker.appendChild(redBar);
3419
-
3420
- this.ensureTickerAnimations();
3421
- return ticker;
3422
- }
3423
2976
 
3424
2977
  private createSeamlessScrollingTrack(items: FlashNewsTickerItem[], config: FlashNewsTickerConfig): HTMLDivElement {
3425
2978
  const track = document.createElement('div');
@@ -434,13 +434,10 @@ export interface FlashNewsTickerConfig {
434
434
  * - 'standard': Original simple scrolling ticker
435
435
  * - 'breaking': Red badge + gradient (TV style)
436
436
  * - 'live': Yellow/Black badge + gradient (TV style)
437
- * - 'broadcast1': Blue/Red/Black dual-bar layout with globe
438
- * - 'broadcast2': Yellow/Red/Blue dual-bar layout with globe
439
- * - 'broadcast3': Triple-segment single bar (Red/Blue/Black)
440
- * - 'broadcast4': Blue box "NEWS" + Red scrolling bar
437
+ * - 'broadcast1': Triple-segment single bar (Red/Blue/Black)
441
438
  * - 'custom': User-defined colors and badges
442
439
  */
443
- variant?: 'standard' | 'breaking' | 'live' | 'broadcast1' | 'broadcast2' | 'broadcast3' | 'broadcast4' | 'custom';
440
+ variant?: 'standard' | 'breaking' | 'live' | 'broadcast1' | 'custom';
444
441
 
445
442
  /** Fixed badge text (e.g. "BREAKING NEWS") */
446
443
  badgeText?: string;