@phont-ai/subtitles 0.1.58 → 0.1.60
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/index.d.mts +209 -84
- package/dist/index.d.ts +209 -84
- package/dist/index.js +56 -119
- package/dist/index.mjs +51 -114
- package/dist/styles.css +128 -3
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AnimationFetcher, PhontClient, LoginResponse, RegisterResponse, WordAnimationState } from '@phont-ai/subtitles-core';
|
|
2
2
|
export { AnimationFetcher, LoginResponse, PhontClient, PhontClientOptions, PublishedAnimationResolver, RegisterResponse, VodMetadata, calculateAnimationState, createPublishedAnimationResolver, decodeAnimationUrl, subtitleManager } from '@phont-ai/subtitles-core';
|
|
3
|
-
import
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import React__default, { ReactNode } from 'react';
|
|
4
5
|
|
|
5
6
|
interface PhontClientConfig {
|
|
6
7
|
apiKey: string;
|
|
@@ -33,7 +34,7 @@ type EmotionAnimationUrls = Record<string, string>;
|
|
|
33
34
|
/**
|
|
34
35
|
* Provider component for animation config (URL-based system)
|
|
35
36
|
*/
|
|
36
|
-
declare function AnimationConfigProvider({ children, customUrls, }: AnimationConfigProviderProps):
|
|
37
|
+
declare function AnimationConfigProvider({ children, customUrls, }: AnimationConfigProviderProps): React__default.JSX.Element;
|
|
37
38
|
/**
|
|
38
39
|
* Hook to access animation config
|
|
39
40
|
*/
|
|
@@ -45,7 +46,7 @@ declare function useAnimationConfig(): AnimationConfigContextValue;
|
|
|
45
46
|
*/
|
|
46
47
|
|
|
47
48
|
interface PhontRootProps {
|
|
48
|
-
children:
|
|
49
|
+
children: React__default.ReactNode;
|
|
49
50
|
/**
|
|
50
51
|
* Phont Subtitles API origin (no trailing slash), e.g. `process.env.NEXT_PUBLIC_API_SUB_BASE_URL`.
|
|
51
52
|
* When set, configures the published animation resolver to hit `{apiBaseUrl}/animations`.
|
|
@@ -57,7 +58,7 @@ interface PhontRootProps {
|
|
|
57
58
|
/** Initial stylesheet name for resolver/emotion lookup (`default` | `children` in built-in registry) */
|
|
58
59
|
defaultStylesheet?: string;
|
|
59
60
|
}
|
|
60
|
-
declare function PhontRoot({ children, apiBaseUrl, customEmotionUrls, defaultStylesheet, }: PhontRootProps):
|
|
61
|
+
declare function PhontRoot({ children, apiBaseUrl, customEmotionUrls, defaultStylesheet, }: PhontRootProps): React__default.JSX.Element;
|
|
61
62
|
|
|
62
63
|
/**
|
|
63
64
|
* React hook for the published animation resolver.
|
|
@@ -87,17 +88,24 @@ declare function configurePublishedAnimationFetcher(fetcher: AnimationFetcher):
|
|
|
87
88
|
*
|
|
88
89
|
* Returns a function: `(backendUrl, emotion) => resolvedUrl | null`
|
|
89
90
|
*
|
|
90
|
-
* Resolution order:
|
|
91
|
-
* 1.
|
|
92
|
-
*
|
|
93
|
-
*
|
|
91
|
+
* Resolution order (Model A — backend is source of truth):
|
|
92
|
+
* 1. Per-segment `animation_url` from the backend. The backend embeds the
|
|
93
|
+
* latest published URL for the segment's emotion at serialize time, so
|
|
94
|
+
* this is the freshest and most specific value available.
|
|
95
|
+
* 2. Published animation from the `/animations` API cache. Legacy safety
|
|
96
|
+
* net for old subtitles that didn't have `animation_url` baked in.
|
|
97
|
+
* 3. Hardcoded `getAnimationUrlForEmotion` from core.
|
|
98
|
+
*
|
|
99
|
+
* Note: only the query-string portion of the URL is read by the renderer.
|
|
100
|
+
* The URL origin (localhost vs. phont.ai vs. tenant subdomain) is
|
|
101
|
+
* irrelevant — animation URLs are parsed, not fetched.
|
|
94
102
|
*/
|
|
95
103
|
declare function usePublishedAnimationResolver(): {
|
|
96
104
|
/**
|
|
97
105
|
* Resolve an animation URL.
|
|
98
106
|
*
|
|
99
|
-
* Priority:
|
|
100
|
-
* Pass `stylesheetName` and `segmentEmotion` to
|
|
107
|
+
* Priority: per-segment `animation_url` > published cache > hardcoded mapping.
|
|
108
|
+
* Pass `stylesheetName` and `segmentEmotion` to control the published lookup.
|
|
101
109
|
*/
|
|
102
110
|
resolve(backendUrl: string | undefined | null, emotion: string | null, opts?: {
|
|
103
111
|
stylesheetName?: string | null;
|
|
@@ -117,63 +125,11 @@ interface StylesheetContextValue {
|
|
|
117
125
|
isDefaultActive: boolean;
|
|
118
126
|
}
|
|
119
127
|
declare function StylesheetProvider({ children, defaultStylesheet, }: {
|
|
120
|
-
children:
|
|
128
|
+
children: React__default.ReactNode;
|
|
121
129
|
defaultStylesheet?: string;
|
|
122
|
-
}):
|
|
130
|
+
}): React__default.JSX.Element;
|
|
123
131
|
declare function useStylesheet(): StylesheetContextValue;
|
|
124
132
|
|
|
125
|
-
interface FontAxisConfig {
|
|
126
|
-
min: number;
|
|
127
|
-
max: number;
|
|
128
|
-
default: number;
|
|
129
|
-
cssProperty: string;
|
|
130
|
-
tag: string;
|
|
131
|
-
unit?: string;
|
|
132
|
-
description?: string;
|
|
133
|
-
}
|
|
134
|
-
interface OptionalAxisConfig {
|
|
135
|
-
min: number;
|
|
136
|
-
max: number;
|
|
137
|
-
default: number;
|
|
138
|
-
cssProperty: string;
|
|
139
|
-
tag: string;
|
|
140
|
-
description?: string;
|
|
141
|
-
usedBy?: string[];
|
|
142
|
-
}
|
|
143
|
-
interface VariableFontConfig {
|
|
144
|
-
name: string;
|
|
145
|
-
id: string;
|
|
146
|
-
family: string;
|
|
147
|
-
axes: {
|
|
148
|
-
weight: FontAxisConfig;
|
|
149
|
-
width: FontAxisConfig;
|
|
150
|
-
};
|
|
151
|
-
optionalAxes?: {
|
|
152
|
-
thinStroke?: OptionalAxisConfig;
|
|
153
|
-
ascenderHeight?: OptionalAxisConfig;
|
|
154
|
-
};
|
|
155
|
-
fallbacks?: string[];
|
|
156
|
-
loadCheck: string;
|
|
157
|
-
variationAxes?: string[];
|
|
158
|
-
mapping?: {
|
|
159
|
-
volume?: {
|
|
160
|
-
source?: string;
|
|
161
|
-
target?: string;
|
|
162
|
-
min: number;
|
|
163
|
-
max: number;
|
|
164
|
-
description?: string;
|
|
165
|
-
};
|
|
166
|
-
speechRate?: {
|
|
167
|
-
source?: string;
|
|
168
|
-
target?: string;
|
|
169
|
-
min: number;
|
|
170
|
-
max: number;
|
|
171
|
-
inverse?: boolean;
|
|
172
|
-
description?: string;
|
|
173
|
-
};
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
|
|
177
133
|
/**
|
|
178
134
|
* PhontSubtitles Component
|
|
179
135
|
*
|
|
@@ -191,12 +147,108 @@ interface PhontSubtitlesProps {
|
|
|
191
147
|
isRTL?: boolean;
|
|
192
148
|
phontClient?: PhontClient | null;
|
|
193
149
|
className?: string;
|
|
194
|
-
style?:
|
|
150
|
+
style?: React__default.CSSProperties;
|
|
195
151
|
subtitleAvailable?: boolean;
|
|
196
|
-
variableFontEnabled?: boolean;
|
|
197
|
-
variableFontConfig?: VariableFontConfig;
|
|
198
152
|
}
|
|
199
|
-
declare function PhontSubtitles({ vodId, currentTime, isPlaying, mode, language, maxExpression, threshold, isRTL, phontClient, className, style, subtitleAvailable,
|
|
153
|
+
declare function PhontSubtitles({ vodId, currentTime, isPlaying, mode, language, maxExpression, threshold, isRTL, phontClient, className, style, subtitleAvailable, }: PhontSubtitlesProps): React__default.JSX.Element | null;
|
|
154
|
+
|
|
155
|
+
declare function PhontSubtitlesWithUrlAnimations({ segment, currentTime, isPlaying, maxExpression, threshold, className, style, nextSegment, forceMobile, fontFallbackMode, disablePublishedAnimationFetch, }: {
|
|
156
|
+
segment: any;
|
|
157
|
+
currentTime: number;
|
|
158
|
+
isPlaying?: boolean;
|
|
159
|
+
maxExpression?: number;
|
|
160
|
+
threshold?: number;
|
|
161
|
+
className?: string;
|
|
162
|
+
style?: React__default.CSSProperties;
|
|
163
|
+
nextSegment?: any;
|
|
164
|
+
forceMobile?: boolean;
|
|
165
|
+
fontFallbackMode?: boolean;
|
|
166
|
+
disablePublishedAnimationFetch?: boolean;
|
|
167
|
+
}): React__default.JSX.Element;
|
|
168
|
+
|
|
169
|
+
declare function useUrlAnimations({ segment, currentTime, maxExpression, threshold, nextSegmentStartTime, extendedEndTime, transparentUntilSpoken, disablePublishedAnimationFetch, stylesheetName: stylesheetNameProp, }: {
|
|
170
|
+
segment: any;
|
|
171
|
+
currentTime: number;
|
|
172
|
+
maxExpression?: number;
|
|
173
|
+
threshold?: number;
|
|
174
|
+
nextSegmentStartTime?: number | null;
|
|
175
|
+
extendedEndTime?: number | null;
|
|
176
|
+
transparentUntilSpoken?: boolean;
|
|
177
|
+
disablePublishedAnimationFetch?: boolean;
|
|
178
|
+
stylesheetName?: string | null;
|
|
179
|
+
}): {
|
|
180
|
+
text: string;
|
|
181
|
+
words: never[];
|
|
182
|
+
emotion: string;
|
|
183
|
+
emotionIntensity: number;
|
|
184
|
+
fontFamily: string;
|
|
185
|
+
currentWordIndex: number;
|
|
186
|
+
startTime: number;
|
|
187
|
+
endTime: number;
|
|
188
|
+
isActive: boolean;
|
|
189
|
+
hasMergedSubtitles: boolean;
|
|
190
|
+
debug: {
|
|
191
|
+
segmentFontSize?: undefined;
|
|
192
|
+
finalWeight?: undefined;
|
|
193
|
+
mergedRange?: undefined;
|
|
194
|
+
currentTime?: undefined;
|
|
195
|
+
finalIsActive?: undefined;
|
|
196
|
+
};
|
|
197
|
+
extendedMergedEndTime?: undefined;
|
|
198
|
+
} | {
|
|
199
|
+
text: string;
|
|
200
|
+
words: {
|
|
201
|
+
word: any;
|
|
202
|
+
start: any;
|
|
203
|
+
end: any;
|
|
204
|
+
animationEnd: any;
|
|
205
|
+
isActive: boolean;
|
|
206
|
+
emotion: string;
|
|
207
|
+
emotionIntensity: number;
|
|
208
|
+
fontFamily: string;
|
|
209
|
+
emphasisEffect: null;
|
|
210
|
+
strongEmphasis: null;
|
|
211
|
+
animationParameters: Record<string, any>;
|
|
212
|
+
effects: {
|
|
213
|
+
standardEmphasis: null;
|
|
214
|
+
strongEmphasis: null;
|
|
215
|
+
};
|
|
216
|
+
emotionCategory: string | null;
|
|
217
|
+
volume: any;
|
|
218
|
+
}[];
|
|
219
|
+
emotion: string;
|
|
220
|
+
emotionIntensity: number;
|
|
221
|
+
fontFamily: string;
|
|
222
|
+
currentWordIndex: number;
|
|
223
|
+
startTime: any;
|
|
224
|
+
endTime: any;
|
|
225
|
+
extendedMergedEndTime: any;
|
|
226
|
+
isActive: boolean;
|
|
227
|
+
hasMergedSubtitles: boolean;
|
|
228
|
+
debug: {
|
|
229
|
+
segmentFontSize: number;
|
|
230
|
+
finalWeight: number;
|
|
231
|
+
mergedRange: null;
|
|
232
|
+
currentTime: number;
|
|
233
|
+
finalIsActive: boolean;
|
|
234
|
+
};
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
declare function WordRenderer({ text, words, fontFamily, className, style, debugMode, currentTime, mergedSubtitleStart, mergedSubtitleEnd, mergedSubtitleExtendedEnd, hasMultipleSubtitles, fontFallbackMode, gts, }: {
|
|
238
|
+
text?: string;
|
|
239
|
+
words?: any[];
|
|
240
|
+
fontFamily?: string;
|
|
241
|
+
className?: string;
|
|
242
|
+
style?: React__default.CSSProperties;
|
|
243
|
+
debugMode?: boolean;
|
|
244
|
+
currentTime?: number;
|
|
245
|
+
mergedSubtitleStart?: number | null;
|
|
246
|
+
mergedSubtitleEnd?: number | null;
|
|
247
|
+
mergedSubtitleExtendedEnd?: number | null;
|
|
248
|
+
hasMultipleSubtitles?: boolean;
|
|
249
|
+
fontFallbackMode?: boolean;
|
|
250
|
+
gts?: number;
|
|
251
|
+
}): React__default.JSX.Element | null;
|
|
200
252
|
|
|
201
253
|
/**
|
|
202
254
|
* SDK Authentication Hook
|
|
@@ -248,7 +300,7 @@ interface SDKAuthProps {
|
|
|
248
300
|
apiBaseUrl?: string;
|
|
249
301
|
onAuthenticated?: (client: any) => void;
|
|
250
302
|
}
|
|
251
|
-
declare function SDKAuth({ apiBaseUrl, onAuthenticated }: SDKAuthProps):
|
|
303
|
+
declare function SDKAuth({ apiBaseUrl, onAuthenticated }: SDKAuthProps): React__default.JSX.Element;
|
|
252
304
|
|
|
253
305
|
/**
|
|
254
306
|
* SDK Animation Hook
|
|
@@ -605,11 +657,11 @@ interface PhontVideoPlayerProps extends Omit<PhontSubtitlesProps, 'currentTime'
|
|
|
605
657
|
/** Custom update interval in ms */
|
|
606
658
|
updateInterval?: number;
|
|
607
659
|
/** Children to render (your video player UI) */
|
|
608
|
-
children?:
|
|
660
|
+
children?: React__default.ReactNode;
|
|
609
661
|
/** Subtitle container className */
|
|
610
662
|
subtitleClassName?: string;
|
|
611
663
|
/** Subtitle container style */
|
|
612
|
-
subtitleStyle?:
|
|
664
|
+
subtitleStyle?: React__default.CSSProperties;
|
|
613
665
|
}
|
|
614
666
|
/**
|
|
615
667
|
* All-in-one component for video + PHONT subtitles.
|
|
@@ -617,7 +669,7 @@ interface PhontVideoPlayerProps extends Omit<PhontSubtitlesProps, 'currentTime'
|
|
|
617
669
|
* Automatically syncs with your video player and renders subtitles.
|
|
618
670
|
* Works with HTML5, Bitmovin, Shaka, Video.js, 3Q Video Player, or any custom adapter.
|
|
619
671
|
*/
|
|
620
|
-
declare function PhontVideoPlayer(props: PhontVideoPlayerProps):
|
|
672
|
+
declare function PhontVideoPlayer(props: PhontVideoPlayerProps): React__default.JSX.Element;
|
|
621
673
|
|
|
622
674
|
interface PositionConfig {
|
|
623
675
|
bottomVh: number;
|
|
@@ -643,7 +695,7 @@ interface SoundbiteContainerProps {
|
|
|
643
695
|
isPhontControlsOpen?: boolean;
|
|
644
696
|
config?: Partial<PositionConfig>;
|
|
645
697
|
}
|
|
646
|
-
declare function SoundbiteContainer({ isVodMode, boxSize, width, height, bottomVh, intensity, hideWhenPanelsOpen, isMetaPanelOpen, isPhontControlsOpen, config }: SoundbiteContainerProps):
|
|
698
|
+
declare function SoundbiteContainer({ isVodMode, boxSize, width, height, bottomVh, intensity, hideWhenPanelsOpen, isMetaPanelOpen, isPhontControlsOpen, config }: SoundbiteContainerProps): React__default.JSX.Element | null;
|
|
647
699
|
|
|
648
700
|
/**
|
|
649
701
|
* PlayerTestSuite - Standalone Test Component
|
|
@@ -681,7 +733,7 @@ interface PlayerTestSuiteProps {
|
|
|
681
733
|
threeqDataId?: string;
|
|
682
734
|
}
|
|
683
735
|
declare function PlayerTestSuite({ defaultVodId, // Default to Pooh_Compilation
|
|
684
|
-
defaultPlayer, apiEndpoint, bitmovinLicenseKey: propBitmovinLicenseKey, threeqDataId, }: PlayerTestSuiteProps):
|
|
736
|
+
defaultPlayer, apiEndpoint, bitmovinLicenseKey: propBitmovinLicenseKey, threeqDataId, }: PlayerTestSuiteProps): React__default.JSX.Element;
|
|
685
737
|
|
|
686
738
|
/**
|
|
687
739
|
* Animation Mode Toggle Component
|
|
@@ -694,15 +746,45 @@ interface AnimationModeToggleProps {
|
|
|
694
746
|
animationMode: AnimationMode;
|
|
695
747
|
setAnimationMode: (mode: AnimationMode) => void;
|
|
696
748
|
}
|
|
697
|
-
declare function AnimationModeToggle({ animationMode, setAnimationMode, }: AnimationModeToggleProps):
|
|
749
|
+
declare function AnimationModeToggle({ animationMode, setAnimationMode, }: AnimationModeToggleProps): React__default.JSX.Element;
|
|
698
750
|
|
|
699
751
|
/**
|
|
700
|
-
* Phont Controls
|
|
701
|
-
*
|
|
702
|
-
* Matches app/components/phont-controls/PhontControls.jsx but with additional animation controls and settings panel
|
|
752
|
+
* Production Phont Controls — same UI as phont.ai /video fullscreen.
|
|
753
|
+
* Stage Content Manager fullscreen should import this from @phont-ai/subtitles.
|
|
703
754
|
*/
|
|
704
755
|
|
|
705
756
|
interface PhontControlsProps {
|
|
757
|
+
isVisible?: boolean;
|
|
758
|
+
onPanelMouseEnter?: () => void;
|
|
759
|
+
onPanelMouseLeave?: () => void;
|
|
760
|
+
isLive?: boolean;
|
|
761
|
+
currentVideoId?: string | null;
|
|
762
|
+
gts: number;
|
|
763
|
+
setGTS: (value: number) => void;
|
|
764
|
+
threshold: number;
|
|
765
|
+
maxExpression: number;
|
|
766
|
+
subtitleLanguage?: string | null;
|
|
767
|
+
availableLanguages?: Record<string, string>;
|
|
768
|
+
currentSubtitleLanguage?: string | null;
|
|
769
|
+
handleLanguageChange?: (language: string | null) => void;
|
|
770
|
+
isTranslating?: boolean;
|
|
771
|
+
translatingToLanguage?: string | null;
|
|
772
|
+
translationProvider?: string | null;
|
|
773
|
+
translationModel?: string | null;
|
|
774
|
+
/** Accepted for API compat; production UI is word-by-word only. */
|
|
775
|
+
animationMode?: AnimationMode;
|
|
776
|
+
setAnimationMode?: (mode: AnimationMode) => void;
|
|
777
|
+
toggles: boolean[];
|
|
778
|
+
handleToggle: (index: number) => void;
|
|
779
|
+
}
|
|
780
|
+
declare function PhontControls({ isVisible, onPanelMouseEnter, onPanelMouseLeave, isLive, currentVideoId, gts, setGTS, threshold, maxExpression, subtitleLanguage, availableLanguages, currentSubtitleLanguage, handleLanguageChange, isTranslating, translatingToLanguage, translationProvider, translationModel, toggles, handleToggle, }: PhontControlsProps): React__default.JSX.Element | null;
|
|
781
|
+
|
|
782
|
+
/**
|
|
783
|
+
* Dev-only Phont Controls — PlayerTestSuite / internal testing.
|
|
784
|
+
* Production integrators (Stage, html5 demo) should use PhontControls instead.
|
|
785
|
+
*/
|
|
786
|
+
|
|
787
|
+
interface PhontControlsDevProps {
|
|
706
788
|
isVisible?: boolean;
|
|
707
789
|
controlsVisible?: boolean;
|
|
708
790
|
onControlsVisibilityChange?: (visible: boolean) => void;
|
|
@@ -742,7 +824,50 @@ interface PhontControlsProps {
|
|
|
742
824
|
onLogout?: () => void;
|
|
743
825
|
username?: string | null;
|
|
744
826
|
}
|
|
745
|
-
declare function
|
|
827
|
+
declare function PhontControlsDev({ isVisible, controlsVisible: externalControlsVisible, onControlsVisibilityChange, isLive, currentVideoId, gts, setGTS, subtitleLanguage, availableLanguages, currentSubtitleLanguage, handleLanguageChange, isTranslating, translatingToLanguage, translationProvider, translationModel, animationMode, setAnimationMode, toggles, handleToggle, customAnimationUrl, setCustomAnimationUrl, emotionMappings, setEmotionMappings, showSettingsPanel, selectedPlayer, setSelectedPlayer, players, vodId, setVodId, vods, onLogout, username, }: PhontControlsDevProps): React__default.JSX.Element | null;
|
|
828
|
+
|
|
829
|
+
/**
|
|
830
|
+
* GTS (Global Tone & Style) Utilities
|
|
831
|
+
* SDK version - calculates threshold and maxExpression from GTS value
|
|
832
|
+
* Matches the logic from app/context/GTSContext.js
|
|
833
|
+
*/
|
|
834
|
+
/**
|
|
835
|
+
* Calculate emotion threshold from GTS value
|
|
836
|
+
* Threshold: Uses RENDERING_CONTROL values (0.3 at GTS=0, 0.0 at GTS=1)
|
|
837
|
+
*/
|
|
838
|
+
declare function calculateThreshold(gts: number): number;
|
|
839
|
+
/**
|
|
840
|
+
* Calculate max expression from GTS value
|
|
841
|
+
* Max Expression: M(G) = 0.20 + 0.80*G (20% at 0, 100% at 1)
|
|
842
|
+
*/
|
|
843
|
+
declare function calculateMaxExpression(gts: number): number;
|
|
844
|
+
|
|
845
|
+
/** Default translation languages — same list as SDK integration demos. */
|
|
846
|
+
declare const PHONT_DEFAULT_LANGUAGES: Record<string, string>;
|
|
847
|
+
interface UsePhontVodControlsOptions {
|
|
848
|
+
vodId: string | null;
|
|
849
|
+
phontClient: PhontClient | null;
|
|
850
|
+
initialGts?: number;
|
|
851
|
+
closedCaptionsOn?: boolean;
|
|
852
|
+
availableLanguages?: Record<string, string>;
|
|
853
|
+
}
|
|
854
|
+
/**
|
|
855
|
+
* Wires GTS, translation, and CC toggles for VOD playback.
|
|
856
|
+
* Use with PhontSubtitles + PhontControls for Stage / integrator parity.
|
|
857
|
+
*/
|
|
858
|
+
declare function usePhontVodControls({ vodId, phontClient, initialGts, closedCaptionsOn, availableLanguages, }: UsePhontVodControlsOptions): {
|
|
859
|
+
gts: number;
|
|
860
|
+
setGTS: React.Dispatch<React.SetStateAction<number>>;
|
|
861
|
+
threshold: number;
|
|
862
|
+
maxExpression: number;
|
|
863
|
+
toggles: boolean[];
|
|
864
|
+
handleToggle: (index: number) => void;
|
|
865
|
+
subtitleLanguage: string | null;
|
|
866
|
+
handleLanguageChange: (lang: string | null) => void;
|
|
867
|
+
isTranslating: boolean;
|
|
868
|
+
translatingToLanguage: string | null;
|
|
869
|
+
availableLanguages: Record<string, string>;
|
|
870
|
+
};
|
|
746
871
|
|
|
747
872
|
/**
|
|
748
873
|
* GTS (Global Tone & Style) Slider Component
|
|
@@ -756,7 +881,7 @@ interface GTSSliderProps {
|
|
|
756
881
|
threshold: number;
|
|
757
882
|
maxExpression: number;
|
|
758
883
|
}
|
|
759
|
-
declare function GTSSlider({ gts, setGTS, threshold, maxExpression }: GTSSliderProps):
|
|
884
|
+
declare function GTSSlider({ gts, setGTS, threshold, maxExpression }: GTSSliderProps): React__default.JSX.Element;
|
|
760
885
|
|
|
761
886
|
/**
|
|
762
887
|
* Translation Dropdown Component
|
|
@@ -774,7 +899,7 @@ interface TranslationDropdownProps {
|
|
|
774
899
|
translationProvider?: string;
|
|
775
900
|
translationModel?: string;
|
|
776
901
|
}
|
|
777
|
-
declare function TranslationDropdown({ subtitleLanguage, availableLanguages, currentSubtitleLanguage, onLanguageChange, isTranslating, translatingToLanguage, translationProvider, translationModel, }: TranslationDropdownProps):
|
|
902
|
+
declare function TranslationDropdown({ subtitleLanguage, availableLanguages, currentSubtitleLanguage, onLanguageChange, isTranslating, translatingToLanguage, translationProvider, translationModel, }: TranslationDropdownProps): React__default.JSX.Element;
|
|
778
903
|
|
|
779
904
|
/**
|
|
780
905
|
* Reusable Toggle Switch Component
|
|
@@ -787,7 +912,7 @@ interface ToggleSwitchProps {
|
|
|
787
912
|
label: string;
|
|
788
913
|
onToggle: () => void;
|
|
789
914
|
}
|
|
790
|
-
declare function ToggleSwitch({ isOn, label, onToggle }: ToggleSwitchProps):
|
|
915
|
+
declare function ToggleSwitch({ isOn, label, onToggle }: ToggleSwitchProps): React__default.JSX.Element;
|
|
791
916
|
|
|
792
917
|
/**
|
|
793
918
|
* Animation URL Config Component
|
|
@@ -800,6 +925,6 @@ interface AnimationUrlConfigProps {
|
|
|
800
925
|
emotionMappings: Partial<EmotionAnimationUrls>;
|
|
801
926
|
setEmotionMappings: (mappings: Partial<EmotionAnimationUrls>) => void;
|
|
802
927
|
}
|
|
803
|
-
declare function AnimationUrlConfig({ customAnimationUrl, setCustomAnimationUrl, emotionMappings, setEmotionMappings, }: AnimationUrlConfigProps):
|
|
928
|
+
declare function AnimationUrlConfig({ customAnimationUrl, setCustomAnimationUrl, emotionMappings, setEmotionMappings, }: AnimationUrlConfigProps): React__default.JSX.Element;
|
|
804
929
|
|
|
805
|
-
export { AnimationConfigProvider, type AnimationConfigProviderProps, type AnimationMode, AnimationModeToggle, type AnimationModeToggleProps, AnimationUrlConfig, type AnimationUrlConfigProps, type BitmovinPlayer, BitmovinPlayerAdapter, type EmotionAnimationUrls, GTSSlider, type GTSSliderProps, HTML5VideoAdapter, type PhontClientConfig, PhontControls, type PhontControlsProps, PhontRoot, type PhontRootProps, PhontSubtitles, type PhontSubtitlesProps, PhontVideoPlayer, type PhontVideoPlayerProps, type PlayerAdapter, PlayerTestSuite, type PlayerTestSuiteProps, type PlayerType, SDKAuth, type SDKAuthProps, type SDKAuthState, type ShakaPlayer, ShakaPlayerAdapter, SoundbiteContainer, StylesheetProvider, type ThreeQPlayer, ThreeQPlayerAdapter, ToggleSwitch, type ToggleSwitchProps, TranslationDropdown, type TranslationDropdownProps, type UsePlayerSyncOptions, type UsePlayerSyncResult, type UseSDKAnimationOptions, type UseVideoPlayerOptions, type VideoJSPlayer, VideoJSPlayerAdapter, buildPhontAnimationRequestHeaders, configurePublishedAnimationFetcher, createPhontAnimationFetcher, useAnimationConfig, usePlayerSync, usePublishedAnimationResolver, useSDKAnimation, useSDKAuth, useStylesheet, useVideoPlayer };
|
|
930
|
+
export { AnimationConfigProvider, type AnimationConfigProviderProps, type AnimationMode, AnimationModeToggle, type AnimationModeToggleProps, AnimationUrlConfig, type AnimationUrlConfigProps, type BitmovinPlayer, BitmovinPlayerAdapter, type EmotionAnimationUrls, GTSSlider, type GTSSliderProps, HTML5VideoAdapter, PHONT_DEFAULT_LANGUAGES, type PhontClientConfig, PhontControls, PhontControlsDev, type PhontControlsDevProps, type PhontControlsProps, PhontRoot, type PhontRootProps, PhontSubtitles, type PhontSubtitlesProps, PhontSubtitlesWithUrlAnimations, PhontVideoPlayer, type PhontVideoPlayerProps, type PlayerAdapter, PlayerTestSuite, type PlayerTestSuiteProps, type PlayerType, SDKAuth, type SDKAuthProps, type SDKAuthState, type ShakaPlayer, ShakaPlayerAdapter, SoundbiteContainer, StylesheetProvider, type ThreeQPlayer, ThreeQPlayerAdapter, ToggleSwitch, type ToggleSwitchProps, TranslationDropdown, type TranslationDropdownProps, type UsePhontVodControlsOptions, type UsePlayerSyncOptions, type UsePlayerSyncResult, type UseSDKAnimationOptions, type UseVideoPlayerOptions, type VideoJSPlayer, VideoJSPlayerAdapter, WordRenderer, buildPhontAnimationRequestHeaders, calculateMaxExpression, calculateThreshold, configurePublishedAnimationFetcher, createPhontAnimationFetcher, useAnimationConfig, usePhontVodControls, usePlayerSync, usePublishedAnimationResolver, useSDKAnimation, useSDKAuth, useStylesheet, useUrlAnimations, useVideoPlayer };
|