@umituz/react-native-ai-generation-content 1.17.229 → 1.17.230

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 (45) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +346 -0
  3. package/package.json +1 -3
  4. package/src/domain/README.md +503 -0
  5. package/src/domains/content-moderation/README.md +363 -0
  6. package/src/domains/creations/README.md +394 -0
  7. package/src/domains/face-detection/README.md +395 -0
  8. package/src/domains/prompts/README.md +387 -0
  9. package/src/features/ai-hug/README.md +276 -0
  10. package/src/features/ai-kiss/README.md +276 -0
  11. package/src/features/anime-selfie/README.md +325 -0
  12. package/src/features/audio-generation/README.md +370 -0
  13. package/src/features/colorization/README.md +289 -0
  14. package/src/features/couple-future/README.md +270 -0
  15. package/src/features/face-swap/README.md +234 -0
  16. package/src/features/future-prediction/README.md +281 -0
  17. package/src/features/hd-touch-up/README.md +309 -0
  18. package/src/features/image-captioning/README.md +361 -0
  19. package/src/features/image-to-image/README.md +418 -0
  20. package/src/features/image-to-video/README.md +369 -0
  21. package/src/features/inpainting/README.md +302 -0
  22. package/src/features/meme-generator/README.md +327 -0
  23. package/src/features/photo-restoration/README.md +286 -0
  24. package/src/features/remove-background/README.md +292 -0
  25. package/src/features/remove-object/README.md +352 -0
  26. package/src/features/replace-background/README.md +288 -0
  27. package/src/features/script-generator/README.md +362 -0
  28. package/src/features/shared/README.md +280 -0
  29. package/src/features/sketch-to-image/README.md +296 -0
  30. package/src/features/style-transfer/README.md +301 -0
  31. package/src/features/text-to-image/README.md +228 -0
  32. package/src/features/text-to-video/README.md +245 -0
  33. package/src/features/text-to-voice/README.md +335 -0
  34. package/src/features/upscaling/README.md +247 -0
  35. package/src/infrastructure/config/README.md +310 -0
  36. package/src/infrastructure/middleware/README.md +378 -0
  37. package/src/infrastructure/orchestration/README.md +362 -0
  38. package/src/infrastructure/services/README.md +382 -0
  39. package/src/infrastructure/utils/README.md +523 -0
  40. package/src/infrastructure/wrappers/README.md +336 -0
  41. package/src/presentation/components/README.md +535 -0
  42. package/src/presentation/hooks/README.md +380 -0
  43. package/src/presentation/layouts/README.md +374 -0
  44. package/src/presentation/screens/README.md +430 -0
  45. package/src/presentation/layouts/types/.npmignore.tmp +0 -0
@@ -0,0 +1,535 @@
1
+ # Presentation Components
2
+
3
+ Reusable UI components for AI generation features.
4
+
5
+ ## Overview
6
+
7
+ The components module provides a comprehensive set of pre-built UI components for AI generation features. These components are designed to be flexible, customizable, and easy to integrate.
8
+
9
+ ## Features
10
+
11
+ - Progress modals and indicators
12
+ - Image/video pickers
13
+ - Result displays
14
+ - Form inputs
15
+ - Style selectors
16
+ - And more...
17
+
18
+ ## Core Components
19
+
20
+ ### GenerationProgressModal
21
+
22
+ Modal showing generation progress:
23
+
24
+ ```tsx
25
+ import { GenerationProgressModal } from '@umituz/react-native-ai-generation-content';
26
+
27
+ <GenerationProgressModal
28
+ visible={isGenerating}
29
+ progress={progress}
30
+ status="Processing your request..."
31
+ onCancel={() => cancelGeneration()}
32
+ />
33
+ ```
34
+
35
+ ### GenerationProgressContent
36
+
37
+ Progress content component:
38
+
39
+ ```tsx
40
+ import { GenerationProgressContent } from '@umituz/react-native-ai-generation-content';
41
+
42
+ <GenerationProgressContent
43
+ progress={75}
44
+ status="Generating image..."
45
+ stages={[
46
+ { label: 'Initializing', completed: true },
47
+ { label: 'Processing', completed: false },
48
+ { label: 'Finalizing', completed: false },
49
+ ]}
50
+ />
51
+ ```
52
+
53
+ ### GenerationProgressBar
54
+
55
+ Progress bar component:
56
+
57
+ ```tsx
58
+ import { GenerationProgressBar } from '@umituz/react-native-ai-generation-content';
59
+
60
+ <GenerationProgressBar
61
+ progress={progress}
62
+ height={8}
63
+ color="#4CAF50"
64
+ />
65
+ ```
66
+
67
+ ### PendingJobCard
68
+
69
+ Card showing pending job:
70
+
71
+ ```tsx
72
+ import { PendingJobCard } from '@umituz/react-native-ai-generation-content';
73
+
74
+ <PendingJobCard
75
+ job={{
76
+ id: 'job-123',
77
+ featureType: 'text-to-image',
78
+ status: 'processing',
79
+ progress: 45,
80
+ createdAt: new Date(),
81
+ }}
82
+ onPress={() => viewJob('job-123')}
83
+ />
84
+ ```
85
+
86
+ ### GenerationResultContent
87
+
88
+ Display generation result:
89
+
90
+ ```tsx
91
+ import { GenerationResultContent } from '@umituz/react-native-ai-generation-content';
92
+
93
+ <GenerationResultContent
94
+ result={{
95
+ imageUrl: 'https://...',
96
+ prompt: 'A sunset',
97
+ metadata: {},
98
+ }}
99
+ onSave={() => saveResult()}
100
+ onShare={() => shareResult()}
101
+ />
102
+ ```
103
+
104
+ ### ResultImageCard
105
+
106
+ Card displaying image result:
107
+
108
+ ```tsx
109
+ import { ResultImageCard } from '@umituz/react-native-ai-generation-content';
110
+
111
+ <ResultImageCard
112
+ imageUrl="https://..."
113
+ onSave={() => saveToGallery()}
114
+ onShare={() => shareImage()}
115
+ onDelete={() => deleteImage()}
116
+ />
117
+ ```
118
+
119
+ ### ResultStoryCard
120
+
121
+ Card for story/image results:
122
+
123
+ ```tsx
124
+ import { ResultStoryCard } from '@umituz/react-native-ai-generation-content';
125
+
126
+ <ResultStoryCard
127
+ imageUrl="https://..."
128
+ prompt="A sunset"
129
+ onSave={() => save()}
130
+ onShare={() => share()}
131
+ />
132
+ ```
133
+
134
+ ## Input Components
135
+
136
+ ### DualImagePicker
137
+
138
+ Picker for two images:
139
+
140
+ ```tsx
141
+ import { DualImagePicker } from '@umituz/react-native-ai-generation-content';
142
+
143
+ <DualImagePicker
144
+ sourceImage={sourceImage}
145
+ targetImage={targetImage}
146
+ onSelectSourceImage={handleSelectSource}
147
+ onSelectTargetImage={handleSelectTarget}
148
+ sourceLabel="First Image"
149
+ targetLabel="Second Image"
150
+ />
151
+ ```
152
+
153
+ ### PromptInput
154
+
155
+ Text input for prompts:
156
+
157
+ ```tsx
158
+ import { PromptInput } from '@umituz/react-native-ai-generation-content';
159
+
160
+ <PromptInput
161
+ prompt={prompt}
162
+ onChangePrompt={setPrompt}
163
+ placeholder="Describe what you want to create..."
164
+ maxLength={1000}
165
+ showCharacterCount
166
+ />
167
+ ```
168
+
169
+ ### PhotoUploadCard
170
+
171
+ Card for photo upload:
172
+
173
+ ```tsx
174
+ import { PhotoUploadCard } from '@umituz/react-native-ai-generation-content';
175
+
176
+ <PhotoUploadCard
177
+ image={image}
178
+ onSelectImage={handleSelectImage}
179
+ title="Upload Photo"
180
+ maxSize={5 * 1024 * 1024} // 5MB
181
+ allowedTypes={['image/jpeg', 'image/png']}
182
+ />
183
+ ```
184
+
185
+ ### AIGenerationHero
186
+
187
+ Hero section for AI generation:
188
+
189
+ ```tsx
190
+ import { AIGenerationHero } from '@umituz/react-native-ai-generation-content';
191
+
192
+ <AIGenerationHero
193
+ title="AI Image Generator"
194
+ description="Create stunning images from text"
195
+ illustration={require('./assets/hero.png')}
196
+ />
197
+ ```
198
+
199
+ ### ExamplePrompts
200
+
201
+ Example prompts selector:
202
+
203
+ ```tsx
204
+ import { ExamplePrompts } from '@umituz/react-native-ai-generation-content';
205
+
206
+ <ExamplePrompts
207
+ prompts={[
208
+ 'A beautiful sunset',
209
+ 'A futuristic city',
210
+ 'A serene forest',
211
+ ]}
212
+ onSelectPrompt={(prompt) => setPrompt(prompt)}
213
+ />
214
+ ```
215
+
216
+ ### GenerateButton
217
+
218
+ Styled generate button:
219
+
220
+ ```tsx
221
+ import { GenerateButton } from '@umituz/react-native-ai-generation-content';
222
+
223
+ <GenerateButton
224
+ onPress={handleGenerate}
225
+ disabled={!canGenerate}
226
+ loading={isGenerating}
227
+ text="Generate Image"
228
+ />
229
+ ```
230
+
231
+ ## Selection Components
232
+
233
+ ### StyleSelector
234
+
235
+ Style selection component:
236
+
237
+ ```tsx
238
+ import { StyleSelector } from '@umituz/react-native-ai-generation-content';
239
+
240
+ <StyleSelector
241
+ styles={[
242
+ { id: 'realistic', name: 'Realistic', preview: '...' },
243
+ { id: 'artistic', name: 'Artistic', preview: '...' },
244
+ ]}
245
+ selectedStyle={selectedStyle}
246
+ onSelectStyle={setSelectedStyle}
247
+ />
248
+ ```
249
+
250
+ ### AspectRatioSelector
251
+
252
+ Aspect ratio selector:
253
+
254
+ ```tsx
255
+ import { AspectRatioSelector } from '@umituz/react-native-ai-generation-content';
256
+
257
+ <AspectRatioSelector
258
+ selectedAspectRatio={aspectRatio}
259
+ onSelectAspectRatio={setAspectRatio}
260
+ availableRatios={['1:1', '16:9', '9:16']}
261
+ />
262
+ ```
263
+
264
+ ### DurationSelector
265
+
266
+ Duration selector:
267
+
268
+ ```tsx
269
+ import { DurationSelector } from '@umituz/react-native-ai-generation-content';
270
+
271
+ <DurationSelector
272
+ selectedDuration={duration}
273
+ onSelectDuration={setDuration}
274
+ durations={[4, 5, 6, 7, 8]}
275
+ unit="seconds"
276
+ />
277
+ ```
278
+
279
+ ### GridSelector
280
+
281
+ Generic grid selector:
282
+
283
+ ```tsx
284
+ import { GridSelector } from '@umituz/react-native-ai-generation-content';
285
+
286
+ <GridSelector
287
+ options={[
288
+ { id: 'option1', name: 'Option 1', description: 'Description' },
289
+ { id: 'option2', name: 'Option 2', description: 'Description' },
290
+ ]}
291
+ selectedOption={selectedOption}
292
+ onSelectOption={setSelectedOption}
293
+ />
294
+ ```
295
+
296
+ ### StylePresetsGrid
297
+
298
+ Grid of style presets:
299
+
300
+ ```tsx
301
+ import { StylePresetsGrid } from '@umituz/react-native-ai-generation-content';
302
+
303
+ <StylePresetsGrid
304
+ styles={stylePresets}
305
+ selectedStyle={selectedStyle}
306
+ onSelectStyle={setSelectedStyle}
307
+ columns={3}
308
+ />
309
+ ```
310
+
311
+ ## Display Components
312
+
313
+ ### ResultDisplay
314
+
315
+ Display generation result:
316
+
317
+ ```tsx
318
+ import { ResultDisplay } from '@umituz/react-native-ai-generation-content';
319
+
320
+ <ResultDisplay
321
+ result={{
322
+ success: true,
323
+ imageUrl: 'https://...',
324
+ metadata: {},
325
+ }}
326
+ originalImage={originalImage}
327
+ onSave={() => save()}
328
+ onShare={() => share()}
329
+ />
330
+ ```
331
+
332
+ ### AIGenerationResult
333
+
334
+ Complete result display:
335
+
336
+ ```tsx
337
+ import { AIGenerationResult } from '@umituz/react-native-ai-generation-content';
338
+
339
+ <AIGenerationResult
340
+ result={result}
341
+ onSave={() => saveResult()}
342
+ onShare={() => shareResult()}
343
+ onRegenerate={() => regenerate()}
344
+ />
345
+ ```
346
+
347
+ ### ErrorDisplay
348
+
349
+ Error display component:
350
+
351
+ ```tsx
352
+ import { ErrorDisplay } from '@umituz/react-native-ai-generation-content';
353
+
354
+ <ErrorDisplay
355
+ error="Generation failed. Please try again."
356
+ onRetry={() => retry()}
357
+ onDismiss={() => dismiss()}
358
+ />
359
+ ```
360
+
361
+ ## Header Components
362
+
363
+ ### FeatureHeader
364
+
365
+ Feature screen header:
366
+
367
+ ```tsx
368
+ import { FeatureHeader } from '@umituz/react-native-ai-generation-content';
369
+
370
+ <FeatureHeader
371
+ title="Text to Image"
372
+ description="Generate images from text descriptions"
373
+ icon={require('./assets/icon.png')}
374
+ />
375
+ ```
376
+
377
+ ### AIGenScreenHeader
378
+
379
+ AI generation screen header:
380
+
381
+ ```tsx
382
+ import { AIGenScreenHeader } from '@umituz/react-native-ai-generation-content';
383
+
384
+ <AIGenScreenHeader
385
+ title="AI Image Generator"
386
+ showBackButton
387
+ onBackPress={() => navigation.goBack()}
388
+ />
389
+ ```
390
+
391
+ ### CreditBadge
392
+
393
+ Credit badge display:
394
+
395
+ ```tsx
396
+ import { CreditBadge } from '@umituz/react-native-ai-generation-content';
397
+
398
+ <CreditBadge
399
+ credits={userCredits}
400
+ cost={generationCost}
401
+ />
402
+ ```
403
+
404
+ ## Form Components
405
+
406
+ ### AIGenerationForm
407
+
408
+ Complete AI generation form:
409
+
410
+ ```tsx
411
+ import { AIGenerationForm } from '@umituz/react-native-ai-generation-content';
412
+
413
+ <AIGenerationForm
414
+ fields={[
415
+ {
416
+ type: 'prompt',
417
+ key: 'prompt',
418
+ label: 'Prompt',
419
+ required: true,
420
+ },
421
+ {
422
+ type: 'style-selector',
423
+ key: 'style',
424
+ label: 'Style',
425
+ options: styleOptions,
426
+ },
427
+ {
428
+ type: 'aspect-ratio',
429
+ key: 'aspectRatio',
430
+ label: 'Aspect Ratio',
431
+ },
432
+ ]}
433
+ values={formValues}
434
+ onChange={setFormValues}
435
+ onSubmit={handleSubmit}
436
+ submitLabel="Generate"
437
+ />
438
+ ```
439
+
440
+ ### SettingsSheet
441
+
442
+ Settings bottom sheet:
443
+
444
+ ```tsx
445
+ import { SettingsSheet } from '@umituz/react-native-ai-generation-content';
446
+
447
+ <SettingsSheet
448
+ visible={showSettings}
449
+ onClose={() => setShowSettings(false)}
450
+ settings={[
451
+ {
452
+ key: 'quality',
453
+ label: 'Quality',
454
+ type: 'select',
455
+ options: ['low', 'medium', 'high'],
456
+ },
457
+ {
458
+ key: 'notifications',
459
+ label: 'Notifications',
460
+ type: 'toggle',
461
+ },
462
+ ]}
463
+ values={settings}
464
+ onChange={updateSettings}
465
+ />
466
+ ```
467
+
468
+ ## Utility Components
469
+
470
+ ### ModerationSummary
471
+
472
+ Content moderation summary:
473
+
474
+ ```tsx
475
+ import { ModerationSummary } from '@umituz/react-native-ai-generation-content';
476
+
477
+ <ModerationSummary
478
+ violations={[
479
+ { category: 'violence', severity: 'high' },
480
+ ]}
481
+ onDismiss={() => acknowledgeWarning()}
482
+ />
483
+ ```
484
+
485
+ ### PhotoStep
486
+
487
+ Photo upload step:
488
+
489
+ ```tsx
490
+ import { PhotoStep } from '@umituz/react-native-ai-generation-content';
491
+
492
+ <PhotoStep
493
+ image={image}
494
+ onSelectImage={selectImage}
495
+ title="Upload Photo"
496
+ description="Choose a photo to process"
497
+ />
498
+ ```
499
+
500
+ ## Customization
501
+
502
+ All components support customization through props:
503
+
504
+ ```tsx
505
+ <GenerationProgressModal
506
+ visible={visible}
507
+ progress={progress}
508
+ // Custom styling
509
+ backgroundColor="#FFFFFF"
510
+ progressColor="#4CAF50"
511
+ textColor="#000000"
512
+ // Custom behavior
513
+ onCancel={handleCancel}
514
+ showCancel={true}
515
+ cancelText="Cancel Generation"
516
+ />
517
+ ```
518
+
519
+ ## Best Practices
520
+
521
+ 1. **Composition**: Combine components for complex UIs
522
+ 2. **Styling**: Use StyleSheet for consistent styling
523
+ 3. **Accessibility**: Add accessibility labels
524
+ 4. **Performance**: Use memo for expensive components
525
+ 5. **Testing**: Test components in isolation
526
+
527
+ ## Related
528
+
529
+ - [Hooks](../hooks/) - Custom React hooks
530
+ - [Layouts](../layouts/) - Layout components
531
+ - [Screens](../screens/) - Screen components
532
+
533
+ ## License
534
+
535
+ MIT