@overlap.ai/react-video-subtitles 1.0.27 → 1.0.28

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 (35) hide show
  1. package/dist/components/SubtitleText.d.ts +2 -0
  2. package/dist/components/Subtitles.d.ts +2 -0
  3. package/dist/hooks/fontLoader.d.ts +1 -0
  4. package/dist/hooks/useAdjustedPhrases.d.ts +10 -0
  5. package/dist/hooks/useAdjustedPosition.d.ts +4 -0
  6. package/dist/hooks/useProcessWords.d.ts +3 -0
  7. package/dist/hooks/useRelativeNumber.d.ts +2 -0
  8. package/dist/hooks/useStyleConfig.d.ts +2 -0
  9. package/dist/hooks/useTextStyle.d.ts +42 -0
  10. package/dist/index.d.ts +10 -0
  11. package/dist/index.esm.js +17031 -0
  12. package/dist/index.js +17039 -0
  13. package/dist/test/TestComponent.d.ts +1 -0
  14. package/dist/test/components/FullScreenPreset.d.ts +1 -0
  15. package/dist/test/components/GridView.d.ts +1 -0
  16. package/dist/test/components/NewPreset.d.ts +1 -0
  17. package/dist/test/components/PresetTest.d.ts +1 -0
  18. package/dist/test/components/SmallTest.d.ts +1 -0
  19. package/dist/test/components/SwitchableTest.d.ts +1 -0
  20. package/dist/test/components/controls/ColorPicker.d.ts +7 -0
  21. package/dist/test/components/controls/Select.d.ts +8 -0
  22. package/dist/test/components/controls/Slider.d.ts +10 -0
  23. package/dist/test/components/controls/Switch.d.ts +7 -0
  24. package/dist/test/constants/testWords.d.ts +5 -0
  25. package/dist/test/hooks/useAnimationFrame.d.ts +4 -0
  26. package/dist/test/main.d.ts +1 -0
  27. package/dist/test/styles/common.d.ts +7 -0
  28. package/dist/test/utils/loadSubtitlePresets.d.ts +1 -0
  29. package/dist/types/components.d.ts +20 -0
  30. package/dist/types/index.d.ts +2 -0
  31. package/dist/types/subtitles.d.ts +93 -0
  32. package/dist/utils/findPhrasesInRange.d.ts +2 -0
  33. package/dist/utils/loadSubtitlePreset.d.ts +3 -0
  34. package/dist/utils/saveSubtitlePreset.d.ts +27 -0
  35. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ export declare const TestComponent: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const FullScreenPreset: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const GridView: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const NewPreset: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const PresetTest: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const SmallTest: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const SwitchableTest: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ interface ColorPickerProps {
2
+ label: string;
3
+ value: string;
4
+ onChange: (value: string) => void;
5
+ }
6
+ export declare const ColorPicker: ({ label, value, onChange }: ColorPickerProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,8 @@
1
+ interface SelectProps {
2
+ label: string;
3
+ value: string;
4
+ options: string[];
5
+ onChange: (value: string) => void;
6
+ }
7
+ export declare const Select: ({ label, value, options, onChange }: SelectProps) => import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,10 @@
1
+ interface SliderProps {
2
+ label: string;
3
+ value: number;
4
+ min: number;
5
+ max: number;
6
+ step?: number;
7
+ onChange: (value: number) => void;
8
+ }
9
+ export declare const Slider: ({ label, value, min, max, step, onChange }: SliderProps) => import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,7 @@
1
+ interface SwitchProps {
2
+ label: string;
3
+ checked: boolean;
4
+ onChange: (value: boolean) => void;
5
+ }
6
+ export declare const Switch: ({ label, checked, onChange }: SwitchProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,5 @@
1
+ export declare const testWords: {
2
+ text: string;
3
+ start: number;
4
+ end: number;
5
+ }[];
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ export declare const useAnimationFrame: (setCurrentTime: React.Dispatch<React.SetStateAction<number>>, words: Array<{
3
+ end: number;
4
+ }>) => void;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ export declare const backgroundStyle: {
2
+ backgroundColor: string;
3
+ backgroundImage: string;
4
+ backgroundSize: string;
5
+ backgroundPosition: string;
6
+ opacity: number;
7
+ };
@@ -0,0 +1 @@
1
+ export declare const loadSubtitlePresets: () => Promise<any[]>;
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { StyleConfig } from './subtitles';
3
+ export interface SubtitleTextProps {
4
+ text: string;
5
+ style: StyleConfig;
6
+ frame: number;
7
+ startFrame: number;
8
+ words?: Array<{
9
+ word: string;
10
+ start: number;
11
+ end: number;
12
+ }>;
13
+ fps: number;
14
+ animationStyle?: string;
15
+ randomColors?: StyleConfig['randomColors'];
16
+ highlightWords?: string[];
17
+ highlightWordsColor?: string;
18
+ lineCount?: number;
19
+ }
20
+ export type SubtitleComponent = React.ComponentType<SubtitleTextProps> | React.MemoExoticComponent<React.ComponentType<SubtitleTextProps>>;
@@ -0,0 +1,2 @@
1
+ export type { StyleConfig, SubtitlesProps, Phrase } from './subtitles';
2
+ export type { SubtitleComponent, SubtitleTextProps } from './components';
@@ -0,0 +1,93 @@
1
+ export interface SegmentWord {
2
+ text: string;
3
+ start: number;
4
+ end: number;
5
+ }
6
+ export interface Phrase {
7
+ start: number;
8
+ end: number;
9
+ text: string;
10
+ words: SegmentWord[];
11
+ startFrame?: number;
12
+ durationInFrames?: number;
13
+ subType?: string;
14
+ }
15
+ export interface StyleConfig {
16
+ name: string;
17
+ captionPosition: "bottom" | "middle";
18
+ amplifiedColor: string;
19
+ amplifiedOpacity?: number;
20
+ amplifySpokenWords: boolean;
21
+ fontFamily: string;
22
+ fontWeight: string;
23
+ fontColor: string;
24
+ fontSize: string;
25
+ textCase: string;
26
+ outlineColor: string;
27
+ outlineWidth: string;
28
+ outlineStyle?: string;
29
+ shadowColor: string;
30
+ shadowBlur: string;
31
+ shadowOffsetX: string;
32
+ shadowOffsetY: string;
33
+ shadowEnabled?: boolean;
34
+ shadowIntensity?: number;
35
+ backgroundColor?: string;
36
+ backgroundOpacity?: number;
37
+ backgroundPadding?: string | number;
38
+ backgroundPaddingX?: string | number;
39
+ backgroundPaddingY?: string | number;
40
+ backgroundBorderRadius?: string | number;
41
+ backgroundFillStyle?: "wrap" | "none";
42
+ textSpacing?: string | number;
43
+ lineCount?: number;
44
+ maxCharsPerLine?: number;
45
+ textAlign?: string;
46
+ lineSpacing?: number;
47
+ animationStyle?: string | 'spring-word' | 'fade' | 'fade-word' | 'intense' | 'tiktok';
48
+ isItalic?: boolean;
49
+ shinyWordHighlight?: boolean;
50
+ shinySegmentHighlight?: boolean;
51
+ verticalStretch?: string | number;
52
+ opacity?: number;
53
+ textHighlightPersists?: boolean;
54
+ currentWordBlock?: boolean;
55
+ currentWordBlockBorderRadius?: string | number;
56
+ currentWordBlockBackgroundColor?: string;
57
+ currentWordBlockOpacity?: number;
58
+ currentWordBlockPadding?: string | number;
59
+ amplifyOpacityTransitionDuration?: number;
60
+ randomColors?: {
61
+ enabled?: boolean | string;
62
+ colors?: Array<{
63
+ type: string;
64
+ color: string;
65
+ }>;
66
+ avoidFillers?: boolean;
67
+ pctApplied?: number;
68
+ randomWordCountRange?: [number, number];
69
+ };
70
+ amplifiedColors?: Array<{
71
+ type: string;
72
+ colors: string[];
73
+ angle?: number;
74
+ }>;
75
+ }
76
+ export interface SubtitlesProps {
77
+ words: SegmentWord[];
78
+ maxCharsPerLine?: number;
79
+ lineCount?: number;
80
+ styleConfig: StyleConfig;
81
+ x: number;
82
+ y: number;
83
+ currentFrame: number;
84
+ currentTime: number;
85
+ fps: number;
86
+ startTime?: number;
87
+ endTime?: number;
88
+ highlightWords?: string[];
89
+ highlightWordsColor?: string;
90
+ width: number;
91
+ height: number;
92
+ devMode?: boolean;
93
+ }
@@ -0,0 +1,2 @@
1
+ import { Phrase } from '../types/subtitles';
2
+ export declare const findPhrasesInRange: (time: number, phrases: Phrase[]) => Phrase[];
@@ -0,0 +1,3 @@
1
+ export function loadSubtitlePreset(presetId: any): Promise<{
2
+ id: string;
3
+ }>;
@@ -0,0 +1,27 @@
1
+ export function saveSubtitlePreset(presetData: any): Promise<{
2
+ success: boolean;
3
+ id: any;
4
+ error?: undefined;
5
+ } | {
6
+ success: boolean;
7
+ error: any;
8
+ id?: undefined;
9
+ }>;
10
+ export function updateSubtitlePreset(id: any, presetData: any): Promise<{
11
+ success: boolean;
12
+ id: any;
13
+ error?: undefined;
14
+ } | {
15
+ success: boolean;
16
+ error: any;
17
+ id?: undefined;
18
+ }>;
19
+ export function deleteSubtitlePreset(id: any): Promise<{
20
+ success: boolean;
21
+ id: any;
22
+ error?: undefined;
23
+ } | {
24
+ success: boolean;
25
+ error: any;
26
+ id?: undefined;
27
+ }>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@overlap.ai/react-video-subtitles",
3
- "version": "1.0.27",
3
+ "version": "1.0.28",
4
4
  "description": "A React component for rendering animated subtitles in videos",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",