@umituz/react-native-ai-generation-content 1.12.4 → 1.12.5

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 (67) hide show
  1. package/package.json +29 -6
  2. package/src/domains/creations/application/services/CreationsService.ts +71 -0
  3. package/src/domains/creations/domain/entities/Creation.ts +51 -0
  4. package/src/domains/creations/domain/entities/index.ts +6 -0
  5. package/src/domains/creations/domain/repositories/ICreationsRepository.ts +23 -0
  6. package/src/domains/creations/domain/repositories/index.ts +5 -0
  7. package/src/domains/creations/domain/services/ICreationsStorageService.ts +13 -0
  8. package/src/domains/creations/domain/value-objects/CreationsConfig.ts +76 -0
  9. package/src/domains/creations/domain/value-objects/index.ts +12 -0
  10. package/src/domains/creations/index.ts +84 -0
  11. package/src/domains/creations/infrastructure/adapters/createRepository.ts +54 -0
  12. package/src/domains/creations/infrastructure/adapters/index.ts +5 -0
  13. package/src/domains/creations/infrastructure/repositories/CreationsRepository.ts +233 -0
  14. package/src/domains/creations/infrastructure/repositories/index.ts +8 -0
  15. package/src/domains/creations/infrastructure/services/CreationsStorageService.ts +48 -0
  16. package/src/domains/creations/presentation/components/CreationCard.tsx +136 -0
  17. package/src/domains/creations/presentation/components/CreationDetail/DetailActions.tsx +76 -0
  18. package/src/domains/creations/presentation/components/CreationDetail/DetailHeader.tsx +81 -0
  19. package/src/domains/creations/presentation/components/CreationDetail/DetailImage.tsx +41 -0
  20. package/src/domains/creations/presentation/components/CreationDetail/DetailStory.tsx +67 -0
  21. package/src/domains/creations/presentation/components/CreationDetail/index.ts +4 -0
  22. package/src/domains/creations/presentation/components/CreationImageViewer.tsx +43 -0
  23. package/src/domains/creations/presentation/components/CreationThumbnail.tsx +63 -0
  24. package/src/domains/creations/presentation/components/CreationsGrid.tsx +75 -0
  25. package/src/domains/creations/presentation/components/CreationsHomeCard.tsx +176 -0
  26. package/src/domains/creations/presentation/components/EmptyState.tsx +75 -0
  27. package/src/domains/creations/presentation/components/FilterBottomSheet.tsx +158 -0
  28. package/src/domains/creations/presentation/components/FilterChips.tsx +105 -0
  29. package/src/domains/creations/presentation/components/GalleryHeader.tsx +106 -0
  30. package/src/domains/creations/presentation/components/index.ts +19 -0
  31. package/src/domains/creations/presentation/hooks/index.ts +7 -0
  32. package/src/domains/creations/presentation/hooks/useCreations.ts +33 -0
  33. package/src/domains/creations/presentation/hooks/useCreationsFilter.ts +70 -0
  34. package/src/domains/creations/presentation/hooks/useDeleteCreation.ts +51 -0
  35. package/src/domains/creations/presentation/screens/CreationDetailScreen.tsx +71 -0
  36. package/src/domains/creations/presentation/screens/CreationsGalleryScreen.tsx +217 -0
  37. package/src/domains/creations/presentation/screens/index.ts +5 -0
  38. package/src/domains/creations/presentation/utils/filterUtils.ts +52 -0
  39. package/src/domains/creations/types.d.ts +107 -0
  40. package/src/domains/face-detection/domain/constants/faceDetectionConstants.ts +16 -0
  41. package/src/domains/face-detection/domain/entities/FaceDetection.ts +19 -0
  42. package/src/domains/face-detection/index.ts +26 -0
  43. package/src/domains/face-detection/infrastructure/analyzers/faceAnalyzer.ts +36 -0
  44. package/src/domains/face-detection/infrastructure/validators/faceValidator.ts +52 -0
  45. package/src/domains/face-detection/presentation/components/FaceValidationStatus.tsx +111 -0
  46. package/src/domains/face-detection/presentation/hooks/useFaceDetection.ts +58 -0
  47. package/src/domains/feature-background/domain/entities/background.types.ts +77 -0
  48. package/src/domains/feature-background/domain/entities/component.types.ts +96 -0
  49. package/src/domains/feature-background/domain/entities/config.types.ts +41 -0
  50. package/src/domains/feature-background/domain/entities/index.ts +31 -0
  51. package/src/domains/feature-background/index.ts +72 -0
  52. package/src/domains/feature-background/infrastructure/constants/index.ts +5 -0
  53. package/src/domains/feature-background/infrastructure/constants/prompts.constants.ts +15 -0
  54. package/src/domains/feature-background/presentation/components/BackgroundFeature.tsx +145 -0
  55. package/src/domains/feature-background/presentation/components/ComparisonSlider.tsx +199 -0
  56. package/src/domains/feature-background/presentation/components/ErrorDisplay.tsx +58 -0
  57. package/src/domains/feature-background/presentation/components/FeatureHeader.tsx +80 -0
  58. package/src/domains/feature-background/presentation/components/GenerateButton.tsx +86 -0
  59. package/src/domains/feature-background/presentation/components/ImagePicker.tsx +136 -0
  60. package/src/domains/feature-background/presentation/components/ModeSelector.tsx +78 -0
  61. package/src/domains/feature-background/presentation/components/ProcessingModal.tsx +113 -0
  62. package/src/domains/feature-background/presentation/components/PromptInput.tsx +142 -0
  63. package/src/domains/feature-background/presentation/components/ResultDisplay.tsx +123 -0
  64. package/src/domains/feature-background/presentation/components/index.ts +16 -0
  65. package/src/domains/feature-background/presentation/hooks/index.ts +7 -0
  66. package/src/domains/feature-background/presentation/hooks/useBackgroundFeature.ts +118 -0
  67. package/src/index.ts +18 -0
@@ -0,0 +1,118 @@
1
+ /**
2
+ * useBackgroundFeature Hook
3
+ * @description Main hook for background feature state and actions
4
+ */
5
+
6
+ import { useCallback, useState } from "react";
7
+ import type {
8
+ BackgroundFeatureState,
9
+ BackgroundProcessResult,
10
+ UseBackgroundFeatureConfig,
11
+ StudioMode,
12
+ } from "../../domain/entities";
13
+
14
+ export interface UseBackgroundFeatureReturn extends BackgroundFeatureState {
15
+ readonly selectImage: () => Promise<void>;
16
+ readonly process: (prompt?: string) => Promise<void>;
17
+ readonly save: () => Promise<void>;
18
+ readonly reset: () => void;
19
+ readonly setPrompt: (prompt: string) => void;
20
+ readonly setMode: (mode: StudioMode) => void;
21
+ }
22
+
23
+ export function useBackgroundFeature(
24
+ config: UseBackgroundFeatureConfig
25
+ ): UseBackgroundFeatureReturn {
26
+ const [imageUri, setImageUri] = useState<string | null>(null);
27
+ const [prompt, setPrompt] = useState<string>("");
28
+ const [processedUrl, setProcessedUrl] = useState<string | null>(null);
29
+ const [isProcessing, setIsProcessing] = useState(false);
30
+ const [progress, setProgress] = useState(0);
31
+ const [error, setError] = useState<string | null>(null);
32
+ const [mode, setMode] = useState<StudioMode>(
33
+ config.defaultMode ?? "transparent"
34
+ );
35
+
36
+ const selectImage = useCallback(async (): Promise<void> => {
37
+ if (!config.onSelectImage) {
38
+ return;
39
+ }
40
+
41
+ try {
42
+ const uri = await config.onSelectImage();
43
+ if (uri) {
44
+ setImageUri(uri);
45
+ setError(null);
46
+ setProcessedUrl(null);
47
+ }
48
+ } catch (err) {
49
+ setError(err instanceof Error ? err.message : "Failed to select image");
50
+ }
51
+ }, [config]);
52
+
53
+ const process = useCallback(
54
+ async (newPrompt?: string): Promise<void> => {
55
+ if (!imageUri) {
56
+ setError("Please select an image first");
57
+ return;
58
+ }
59
+
60
+ const currentPrompt = newPrompt ?? prompt;
61
+ setIsProcessing(true);
62
+ setProgress(0);
63
+ setError(null);
64
+
65
+ try {
66
+ const result: BackgroundProcessResult = await config.processRequest({
67
+ imageUri,
68
+ prompt: currentPrompt,
69
+ mode,
70
+ onProgress: setProgress,
71
+ });
72
+
73
+ if (result.success && result.imageUrl) {
74
+ setProcessedUrl(result.imageUrl);
75
+ } else {
76
+ setError(result.error || "Processing failed");
77
+ }
78
+ } catch (err) {
79
+ setError(err instanceof Error ? err.message : "Processing failed");
80
+ } finally {
81
+ setIsProcessing(false);
82
+ setProgress(0);
83
+ }
84
+ },
85
+ [imageUri, prompt, mode, config]
86
+ );
87
+
88
+ const save = useCallback(async (): Promise<void> => {
89
+ if (!processedUrl) {
90
+ return;
91
+ }
92
+ }, [processedUrl]);
93
+
94
+ const reset = useCallback((): void => {
95
+ setImageUri(null);
96
+ setPrompt("");
97
+ setProcessedUrl(null);
98
+ setIsProcessing(false);
99
+ setProgress(0);
100
+ setError(null);
101
+ }, []);
102
+
103
+ return {
104
+ imageUri,
105
+ prompt,
106
+ processedUrl,
107
+ isProcessing,
108
+ progress,
109
+ error,
110
+ mode,
111
+ selectImage,
112
+ process,
113
+ save,
114
+ reset,
115
+ setPrompt,
116
+ setMode,
117
+ };
118
+ }
package/src/index.ts CHANGED
@@ -233,3 +233,21 @@ export * from "./domains/prompts";
233
233
  // =============================================================================
234
234
 
235
235
  export * from "./domains/content-moderation";
236
+
237
+ // =============================================================================
238
+ // DOMAINS - AI Creations
239
+ // =============================================================================
240
+
241
+ export * from "./domains/creations";
242
+
243
+ // =============================================================================
244
+ // DOMAINS - Face Detection
245
+ // =============================================================================
246
+
247
+ export * from "./domains/face-detection";
248
+
249
+ // =============================================================================
250
+ // DOMAINS - Feature Background
251
+ // =============================================================================
252
+
253
+ export * from "./domains/feature-background";