@umituz/react-native-ai-generation-content 1.61.64 → 1.61.65
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 +1 -1
- package/src/domains/image-to-video/domain/constants/index.ts +0 -5
- package/src/domains/image-to-video/domain/types/index.ts +0 -3
- package/src/domains/image-to-video/index.ts +0 -7
- package/src/domains/image-to-video/presentation/components/index.ts +0 -4
- package/src/exports/features.ts +3 -4
- package/src/domains/image-to-video/domain/constants/music.constants.ts +0 -53
- package/src/domains/image-to-video/domain/types/music.types.ts +0 -21
- package/src/domains/image-to-video/presentation/components/MusicMoodSelector.tsx +0 -181
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@umituz/react-native-ai-generation-content",
|
|
3
|
-
"version": "1.61.
|
|
3
|
+
"version": "1.61.65",
|
|
4
4
|
"description": "Provider-agnostic AI generation orchestration for React Native with result preview components",
|
|
5
5
|
"main": "src/index.ts",
|
|
6
6
|
"types": "src/index.ts",
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
// Animation Types
|
|
2
2
|
export type { AnimationStyle, AnimationStyleId } from "./animation.types";
|
|
3
3
|
|
|
4
|
-
// Music Types
|
|
5
|
-
export type { MusicMood, MusicMoodId } from "./music.types";
|
|
6
|
-
|
|
7
4
|
// Duration Types
|
|
8
5
|
export type { VideoDuration, DurationOption } from "./duration.types";
|
|
9
6
|
|
|
@@ -10,9 +10,6 @@
|
|
|
10
10
|
// Animation Types
|
|
11
11
|
export type { AnimationStyle, AnimationStyleId } from "./domain";
|
|
12
12
|
|
|
13
|
-
// Music Types
|
|
14
|
-
export type { MusicMood, MusicMoodId } from "./domain";
|
|
15
|
-
|
|
16
13
|
// Duration Types
|
|
17
14
|
export type { VideoDuration, DurationOption } from "./domain";
|
|
18
15
|
|
|
@@ -54,8 +51,6 @@ export type {
|
|
|
54
51
|
export {
|
|
55
52
|
DEFAULT_ANIMATION_STYLES as IMAGE_TO_VIDEO_ANIMATION_STYLES,
|
|
56
53
|
DEFAULT_ANIMATION_STYLE_ID as IMAGE_TO_VIDEO_DEFAULT_ANIMATION,
|
|
57
|
-
DEFAULT_MUSIC_MOODS as IMAGE_TO_VIDEO_MUSIC_MOODS,
|
|
58
|
-
DEFAULT_MUSIC_MOOD_ID as IMAGE_TO_VIDEO_DEFAULT_MUSIC,
|
|
59
54
|
DEFAULT_DURATION_OPTIONS as IMAGE_TO_VIDEO_DURATION_OPTIONS,
|
|
60
55
|
DEFAULT_VIDEO_DURATION as IMAGE_TO_VIDEO_DEFAULT_DURATION,
|
|
61
56
|
DEFAULT_FORM_VALUES as IMAGE_TO_VIDEO_FORM_DEFAULTS,
|
|
@@ -101,7 +96,6 @@ export type {
|
|
|
101
96
|
export {
|
|
102
97
|
ImageToVideoAnimationStyleSelector,
|
|
103
98
|
ImageToVideoDurationSelector,
|
|
104
|
-
ImageToVideoMusicMoodSelector,
|
|
105
99
|
ImageToVideoSelectionGrid,
|
|
106
100
|
ImageToVideoGenerateButton,
|
|
107
101
|
} from "./presentation";
|
|
@@ -109,7 +103,6 @@ export {
|
|
|
109
103
|
export type {
|
|
110
104
|
ImageToVideoAnimationStyleSelectorProps,
|
|
111
105
|
ImageToVideoDurationSelectorProps,
|
|
112
|
-
ImageToVideoMusicMoodSelectorProps,
|
|
113
106
|
ImageToVideoSelectionGridProps,
|
|
114
107
|
ImageToVideoSelectionGridTranslations,
|
|
115
108
|
ImageToVideoGenerateButtonProps,
|
|
@@ -10,10 +10,6 @@ export type { AnimationStyleSelectorProps as ImageToVideoAnimationStyleSelectorP
|
|
|
10
10
|
export { DurationSelector as ImageToVideoDurationSelector } from "./DurationSelector";
|
|
11
11
|
export type { DurationSelectorProps as ImageToVideoDurationSelectorProps } from "./DurationSelector";
|
|
12
12
|
|
|
13
|
-
// Music Mood Selector
|
|
14
|
-
export { MusicMoodSelector as ImageToVideoMusicMoodSelector } from "./MusicMoodSelector";
|
|
15
|
-
export type { MusicMoodSelectorProps as ImageToVideoMusicMoodSelectorProps } from "./MusicMoodSelector";
|
|
16
|
-
|
|
17
13
|
// Image Selection Grid
|
|
18
14
|
export { ImageSelectionGrid as ImageToVideoSelectionGrid } from "./ImageSelectionGrid";
|
|
19
15
|
export type {
|
package/src/exports/features.ts
CHANGED
|
@@ -55,7 +55,7 @@ export {
|
|
|
55
55
|
|
|
56
56
|
// Image-to-Video Feature
|
|
57
57
|
export type {
|
|
58
|
-
AnimationStyle, AnimationStyleId,
|
|
58
|
+
AnimationStyle, AnimationStyleId,
|
|
59
59
|
VideoDuration, DurationOption as ImageToVideoDurationOption,
|
|
60
60
|
ImageToVideoFormState, ImageToVideoFormActions, ImageToVideoFormDefaults,
|
|
61
61
|
ImageToVideoCallbacks, ImageToVideoFormConfig, ImageToVideoTranslationsExtended,
|
|
@@ -68,18 +68,17 @@ export type {
|
|
|
68
68
|
UseImageToVideoFormOptions, UseImageToVideoFormReturn,
|
|
69
69
|
UseImageToVideoFeatureProps, UseImageToVideoFeatureReturn,
|
|
70
70
|
ImageToVideoAnimationStyleSelectorProps, ImageToVideoDurationSelectorProps,
|
|
71
|
-
|
|
71
|
+
ImageToVideoSelectionGridProps,
|
|
72
72
|
ImageToVideoSelectionGridTranslations, ImageToVideoGenerateButtonProps,
|
|
73
73
|
} from "../domains/image-to-video";
|
|
74
74
|
export {
|
|
75
75
|
IMAGE_TO_VIDEO_ANIMATION_STYLES, IMAGE_TO_VIDEO_DEFAULT_ANIMATION,
|
|
76
|
-
IMAGE_TO_VIDEO_MUSIC_MOODS, IMAGE_TO_VIDEO_DEFAULT_MUSIC,
|
|
77
76
|
IMAGE_TO_VIDEO_DURATION_OPTIONS, IMAGE_TO_VIDEO_DEFAULT_DURATION,
|
|
78
77
|
IMAGE_TO_VIDEO_FORM_DEFAULTS, IMAGE_TO_VIDEO_CONFIG,
|
|
79
78
|
executeImageToVideo, hasImageToVideoSupport,
|
|
80
79
|
useImageToVideoFormState, useImageToVideoGeneration, useImageToVideoForm, useImageToVideoFeature,
|
|
81
80
|
ImageToVideoAnimationStyleSelector, ImageToVideoDurationSelector,
|
|
82
|
-
|
|
81
|
+
ImageToVideoSelectionGrid, ImageToVideoGenerateButton,
|
|
83
82
|
} from "../domains/image-to-video";
|
|
84
83
|
|
|
85
84
|
// Wizard Flows
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Music Mood Constants
|
|
3
|
-
* Default music moods for image-to-video
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type { MusicMood } from "../types";
|
|
7
|
-
|
|
8
|
-
export const DEFAULT_MUSIC_MOODS: MusicMood[] = [
|
|
9
|
-
{
|
|
10
|
-
id: "none",
|
|
11
|
-
name: "No Music",
|
|
12
|
-
description: "Silent video",
|
|
13
|
-
icon: "volume-mute-outline",
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
id: "energetic",
|
|
17
|
-
name: "Energetic",
|
|
18
|
-
description: "Upbeat and dynamic",
|
|
19
|
-
icon: "flash-outline",
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
id: "calm",
|
|
23
|
-
name: "Calm",
|
|
24
|
-
description: "Peaceful and relaxing",
|
|
25
|
-
icon: "leaf-outline",
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
id: "happy",
|
|
29
|
-
name: "Happy",
|
|
30
|
-
description: "Cheerful and joyful",
|
|
31
|
-
icon: "happy-outline",
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
id: "emotional",
|
|
35
|
-
name: "Emotional",
|
|
36
|
-
description: "Touching and heartfelt",
|
|
37
|
-
icon: "heart-outline",
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
id: "rhythmic",
|
|
41
|
-
name: "Rhythmic",
|
|
42
|
-
description: "Beat-driven and groovy",
|
|
43
|
-
icon: "musical-notes-outline",
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
id: "custom",
|
|
47
|
-
name: "Custom",
|
|
48
|
-
description: "Upload your own audio",
|
|
49
|
-
icon: "cloud-upload-outline",
|
|
50
|
-
},
|
|
51
|
-
];
|
|
52
|
-
|
|
53
|
-
export const DEFAULT_MUSIC_MOOD_ID = "none";
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Music Types for Image-to-Video
|
|
3
|
-
* Defines music mood options
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
export interface MusicMood {
|
|
7
|
-
id: string;
|
|
8
|
-
name: string;
|
|
9
|
-
description: string;
|
|
10
|
-
icon: string;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export type MusicMoodId =
|
|
14
|
-
| "none"
|
|
15
|
-
| "energetic"
|
|
16
|
-
| "calm"
|
|
17
|
-
| "happy"
|
|
18
|
-
| "emotional"
|
|
19
|
-
| "rhythmic"
|
|
20
|
-
| "custom"
|
|
21
|
-
| string;
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Music Mood Selector Component
|
|
3
|
-
* Generic component for music mood selection
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import React from "react";
|
|
7
|
-
import { View, ScrollView, TouchableOpacity, StyleSheet } from "react-native";
|
|
8
|
-
import {
|
|
9
|
-
AtomicText,
|
|
10
|
-
AtomicIcon,
|
|
11
|
-
useAppDesignTokens,
|
|
12
|
-
} from "@umituz/react-native-design-system";
|
|
13
|
-
import type { MusicMood, MusicMoodId } from "../../domain/types";
|
|
14
|
-
|
|
15
|
-
export interface MusicMoodSelectorProps {
|
|
16
|
-
moods: MusicMood[];
|
|
17
|
-
selectedMood: MusicMoodId;
|
|
18
|
-
onMoodSelect: (moodId: MusicMoodId) => void;
|
|
19
|
-
label: string;
|
|
20
|
-
hasCustomAudio?: boolean;
|
|
21
|
-
customAudioLabel?: string;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export const MusicMoodSelector: React.FC<MusicMoodSelectorProps> = ({
|
|
25
|
-
moods,
|
|
26
|
-
selectedMood,
|
|
27
|
-
onMoodSelect,
|
|
28
|
-
label,
|
|
29
|
-
hasCustomAudio = false,
|
|
30
|
-
customAudioLabel,
|
|
31
|
-
}) => {
|
|
32
|
-
const tokens = useAppDesignTokens();
|
|
33
|
-
|
|
34
|
-
return (
|
|
35
|
-
<View style={componentStyles.section}>
|
|
36
|
-
<AtomicText
|
|
37
|
-
type="bodyMedium"
|
|
38
|
-
style={[componentStyles.label, { color: tokens.colors.textPrimary }]}
|
|
39
|
-
>
|
|
40
|
-
{label}
|
|
41
|
-
</AtomicText>
|
|
42
|
-
<ScrollView
|
|
43
|
-
horizontal
|
|
44
|
-
showsHorizontalScrollIndicator={false}
|
|
45
|
-
style={componentStyles.scroll}
|
|
46
|
-
>
|
|
47
|
-
{moods.map((mood) => {
|
|
48
|
-
const isSelected = selectedMood === mood.id;
|
|
49
|
-
return (
|
|
50
|
-
<TouchableOpacity
|
|
51
|
-
key={mood.id}
|
|
52
|
-
style={[
|
|
53
|
-
componentStyles.card,
|
|
54
|
-
{
|
|
55
|
-
backgroundColor: isSelected
|
|
56
|
-
? tokens.colors.primary
|
|
57
|
-
: tokens.colors.surface,
|
|
58
|
-
borderColor: isSelected
|
|
59
|
-
? tokens.colors.primary
|
|
60
|
-
: tokens.colors.borderLight,
|
|
61
|
-
},
|
|
62
|
-
]}
|
|
63
|
-
onPress={() => onMoodSelect(mood.id)}
|
|
64
|
-
activeOpacity={0.7}
|
|
65
|
-
>
|
|
66
|
-
<View
|
|
67
|
-
style={[
|
|
68
|
-
componentStyles.iconContainer,
|
|
69
|
-
{
|
|
70
|
-
backgroundColor: isSelected
|
|
71
|
-
? tokens.colors.modalOverlay
|
|
72
|
-
: tokens.colors.surface,
|
|
73
|
-
},
|
|
74
|
-
]}
|
|
75
|
-
>
|
|
76
|
-
<AtomicIcon
|
|
77
|
-
name={mood.icon as never}
|
|
78
|
-
size="lg"
|
|
79
|
-
color={isSelected ? "onSurface" : "primary"}
|
|
80
|
-
/>
|
|
81
|
-
</View>
|
|
82
|
-
<AtomicText
|
|
83
|
-
type="bodySmall"
|
|
84
|
-
style={[
|
|
85
|
-
componentStyles.moodName,
|
|
86
|
-
{
|
|
87
|
-
color: isSelected
|
|
88
|
-
? tokens.colors.textInverse
|
|
89
|
-
: tokens.colors.textPrimary,
|
|
90
|
-
},
|
|
91
|
-
]}
|
|
92
|
-
>
|
|
93
|
-
{mood.name}
|
|
94
|
-
</AtomicText>
|
|
95
|
-
<AtomicText
|
|
96
|
-
type="labelSmall"
|
|
97
|
-
style={[
|
|
98
|
-
componentStyles.moodDescription,
|
|
99
|
-
{
|
|
100
|
-
color: isSelected
|
|
101
|
-
? tokens.colors.textInverse
|
|
102
|
-
: tokens.colors.textSecondary,
|
|
103
|
-
opacity: isSelected ? 0.9 : 0.7,
|
|
104
|
-
},
|
|
105
|
-
]}
|
|
106
|
-
>
|
|
107
|
-
{mood.description}
|
|
108
|
-
</AtomicText>
|
|
109
|
-
</TouchableOpacity>
|
|
110
|
-
);
|
|
111
|
-
})}
|
|
112
|
-
</ScrollView>
|
|
113
|
-
{selectedMood === "custom" && hasCustomAudio && customAudioLabel && (
|
|
114
|
-
<View
|
|
115
|
-
style={[
|
|
116
|
-
componentStyles.customBadge,
|
|
117
|
-
{ backgroundColor: tokens.colors.surfaceVariant },
|
|
118
|
-
]}
|
|
119
|
-
>
|
|
120
|
-
<AtomicIcon name="checkmark-circle-outline" size="sm" color="primary" />
|
|
121
|
-
<AtomicText
|
|
122
|
-
type="labelSmall"
|
|
123
|
-
style={[componentStyles.customBadgeText, { color: tokens.colors.primary }]}
|
|
124
|
-
>
|
|
125
|
-
{customAudioLabel}
|
|
126
|
-
</AtomicText>
|
|
127
|
-
</View>
|
|
128
|
-
)}
|
|
129
|
-
</View>
|
|
130
|
-
);
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
const componentStyles = StyleSheet.create({
|
|
134
|
-
section: {
|
|
135
|
-
padding: 16,
|
|
136
|
-
marginBottom: 8,
|
|
137
|
-
},
|
|
138
|
-
label: {
|
|
139
|
-
fontWeight: "600",
|
|
140
|
-
marginBottom: 12,
|
|
141
|
-
},
|
|
142
|
-
scroll: {
|
|
143
|
-
marginHorizontal: -16,
|
|
144
|
-
paddingHorizontal: 16,
|
|
145
|
-
},
|
|
146
|
-
card: {
|
|
147
|
-
width: 140,
|
|
148
|
-
padding: 16,
|
|
149
|
-
borderRadius: 16,
|
|
150
|
-
borderWidth: 2,
|
|
151
|
-
marginRight: 12,
|
|
152
|
-
alignItems: "center",
|
|
153
|
-
},
|
|
154
|
-
iconContainer: {
|
|
155
|
-
width: 56,
|
|
156
|
-
height: 56,
|
|
157
|
-
borderRadius: 28,
|
|
158
|
-
alignItems: "center",
|
|
159
|
-
justifyContent: "center",
|
|
160
|
-
},
|
|
161
|
-
moodName: {
|
|
162
|
-
fontWeight: "600",
|
|
163
|
-
marginTop: 8,
|
|
164
|
-
textAlign: "center",
|
|
165
|
-
},
|
|
166
|
-
moodDescription: {
|
|
167
|
-
marginTop: 4,
|
|
168
|
-
textAlign: "center",
|
|
169
|
-
},
|
|
170
|
-
customBadge: {
|
|
171
|
-
flexDirection: "row",
|
|
172
|
-
alignItems: "center",
|
|
173
|
-
padding: 12,
|
|
174
|
-
borderRadius: 12,
|
|
175
|
-
marginTop: 12,
|
|
176
|
-
},
|
|
177
|
-
customBadgeText: {
|
|
178
|
-
marginLeft: 8,
|
|
179
|
-
flex: 1,
|
|
180
|
-
},
|
|
181
|
-
});
|