react-native-ensys-camera-x 1.0.7
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/CustomCamera.podspec +20 -0
- package/LICENSE +20 -0
- package/README.md +833 -0
- package/android/build.gradle +135 -0
- package/android/consumer-rules.pro +47 -0
- package/android/src/main/AndroidManifest.xml +72 -0
- package/android/src/main/java/android/print/PdfPrint.java +51 -0
- package/android/src/main/java/com/customcamera/AnimatedImageViewManager.kt +199 -0
- package/android/src/main/java/com/customcamera/AudioPlayerView.kt +322 -0
- package/android/src/main/java/com/customcamera/AudioRecorder.kt +506 -0
- package/android/src/main/java/com/customcamera/BarcodeScannerActivity.kt +361 -0
- package/android/src/main/java/com/customcamera/BlurBackgroundView.kt +199 -0
- package/android/src/main/java/com/customcamera/CacheCleanupManager.kt +386 -0
- package/android/src/main/java/com/customcamera/CameraAspectRatioMode.kt +77 -0
- package/android/src/main/java/com/customcamera/CameraAsset.kt +211 -0
- package/android/src/main/java/com/customcamera/CameraTheme.kt +479 -0
- package/android/src/main/java/com/customcamera/CompressionCacheStore.kt +504 -0
- package/android/src/main/java/com/customcamera/CompressionFileNameUtils.kt +7 -0
- package/android/src/main/java/com/customcamera/CompressionProfile.kt +195 -0
- package/android/src/main/java/com/customcamera/CustomCameraActivity.kt +7291 -0
- package/android/src/main/java/com/customcamera/CustomCameraFileProvider.kt +9 -0
- package/android/src/main/java/com/customcamera/CustomCameraModule.kt +2479 -0
- package/android/src/main/java/com/customcamera/CustomCameraPackage.kt +53 -0
- package/android/src/main/java/com/customcamera/DisplayUtils.kt +9 -0
- package/android/src/main/java/com/customcamera/DocumentPreviewView.kt +846 -0
- package/android/src/main/java/com/customcamera/DrawingView.kt +214 -0
- package/android/src/main/java/com/customcamera/EmojiPickerData.kt +228 -0
- package/android/src/main/java/com/customcamera/FilterStripAdapter.kt +158 -0
- package/android/src/main/java/com/customcamera/GifSupport.kt +215 -0
- package/android/src/main/java/com/customcamera/GlobalAudioPlayer.kt +320 -0
- package/android/src/main/java/com/customcamera/ImageExporter.kt +1394 -0
- package/android/src/main/java/com/customcamera/ImageFormatSupport.kt +163 -0
- package/android/src/main/java/com/customcamera/Localization.kt +206 -0
- package/android/src/main/java/com/customcamera/MediaAdapters.kt +758 -0
- package/android/src/main/java/com/customcamera/MediaCacheManager.kt +782 -0
- package/android/src/main/java/com/customcamera/MediaExportFormats.kt +201 -0
- package/android/src/main/java/com/customcamera/MediaFileIo.kt +310 -0
- package/android/src/main/java/com/customcamera/MediaMetadataStore.kt +494 -0
- package/android/src/main/java/com/customcamera/MediaPreviewEditor.kt +14865 -0
- package/android/src/main/java/com/customcamera/MediaPublisher.kt +423 -0
- package/android/src/main/java/com/customcamera/MediaStorageWorkflow.kt +722 -0
- package/android/src/main/java/com/customcamera/MediaStoreRepository.kt +378 -0
- package/android/src/main/java/com/customcamera/MediaThumbnailView.kt +286 -0
- package/android/src/main/java/com/customcamera/MediaUtils.kt +37 -0
- package/android/src/main/java/com/customcamera/NativeVideoViewManager.kt +845 -0
- package/android/src/main/java/com/customcamera/OfficeDocumentConverter.kt +2791 -0
- package/android/src/main/java/com/customcamera/PendingCaptureCrops.kt +88 -0
- package/android/src/main/java/com/customcamera/PowerPointPreview.kt +4077 -0
- package/android/src/main/java/com/customcamera/RecentPickerStore.kt +74 -0
- package/android/src/main/java/com/customcamera/SecureFileEraser.kt +411 -0
- package/android/src/main/java/com/customcamera/SecureKeyModule.kt +88 -0
- package/android/src/main/java/com/customcamera/SecureMediaDeleter.kt +493 -0
- package/android/src/main/java/com/customcamera/StickerPickerData.kt +107 -0
- package/android/src/main/java/com/customcamera/SvgDrawable.kt +175 -0
- package/android/src/main/java/com/customcamera/SvgIconViewManager.kt +77 -0
- package/android/src/main/java/com/customcamera/TextEntryController.kt +553 -0
- package/android/src/main/java/com/customcamera/ThumbnailLoader.kt +455 -0
- package/android/src/main/java/com/customcamera/UploadService.kt +909 -0
- package/android/src/main/java/com/customcamera/VideoEditUtils.kt +210 -0
- package/android/src/main/java/com/customcamera/VideoRotationTranscoder.kt +1992 -0
- package/android/src/main/java/com/customcamera/gif/AnimatedGifEncoder.kt +473 -0
- package/android/src/main/java/com/customcamera/gif/GifDecoder.kt +690 -0
- package/android/src/main/java/com/customcamera/gif/GifFramesDrawable.kt +160 -0
- package/android/src/main/java/com/customcamera/gif/GifHttp.kt +112 -0
- package/android/src/main/java/com/customcamera/gif/GifImageLoader.kt +186 -0
- package/android/src/main/java/com/customcamera/gif/GifModels.kt +74 -0
- package/android/src/main/java/com/customcamera/gif/GifProvider.kt +49 -0
- package/android/src/main/java/com/customcamera/gif/GifProviders.kt +27 -0
- package/android/src/main/java/com/customcamera/gif/GifRepository.kt +124 -0
- package/android/src/main/java/com/customcamera/gif/GifSafety.kt +33 -0
- package/android/src/main/java/com/customcamera/gif/GiphyGifProvider.kt +146 -0
- package/android/src/main/java/com/customcamera/gif/LZWEncoder.kt +258 -0
- package/android/src/main/java/com/customcamera/gif/NeuQuant.kt +435 -0
- package/android/src/main/java/com/customcamera/gif/TenorGifProvider.kt +147 -0
- package/android/src/main/res/drawable/bg_brush_selected.xml +5 -0
- package/android/src/main/res/drawable/bg_color_swatch.xml +5 -0
- package/android/src/main/res/drawable/bg_editor_toolbar.xml +6 -0
- package/android/src/main/res/drawable/bg_icon_circle.xml +5 -0
- package/android/src/main/res/drawable/bg_icon_circle_light.xml +5 -0
- package/android/src/main/res/drawable/bg_mode_tab_active.xml +6 -0
- package/android/src/main/res/drawable/bg_pill.xml +6 -0
- package/android/src/main/res/drawable/bg_recording_dot.xml +6 -0
- package/android/src/main/res/drawable/bg_selection_badge.xml +8 -0
- package/android/src/main/res/drawable/bg_send_button.xml +5 -0
- package/android/src/main/res/drawable/bg_shutter_inner.xml +5 -0
- package/android/src/main/res/drawable/bg_shutter_recording.xml +6 -0
- package/android/src/main/res/drawable/bg_shutter_ring.xml +8 -0
- package/android/src/main/res/drawable/bg_shutter_video_idle.xml +5 -0
- package/android/src/main/res/drawable/bg_thumbnail.xml +9 -0
- package/android/src/main/res/drawable/ic_aspect_ratio.xml +17 -0
- package/android/src/main/res/drawable/ic_audio.xml +10 -0
- package/android/src/main/res/drawable/ic_back.xml +10 -0
- package/android/src/main/res/drawable/ic_brush_medium.xml +12 -0
- package/android/src/main/res/drawable/ic_brush_thick.xml +12 -0
- package/android/src/main/res/drawable/ic_brush_thin.xml +12 -0
- package/android/src/main/res/drawable/ic_check.xml +17 -0
- package/android/src/main/res/drawable/ic_chevron_down.xml +10 -0
- package/android/src/main/res/drawable/ic_chevron_up.xml +13 -0
- package/android/src/main/res/drawable/ic_clear_drawing.xml +10 -0
- package/android/src/main/res/drawable/ic_close.xml +10 -0
- package/android/src/main/res/drawable/ic_cover.xml +9 -0
- package/android/src/main/res/drawable/ic_crop.xml +10 -0
- package/android/src/main/res/drawable/ic_delete.xml +9 -0
- package/android/src/main/res/drawable/ic_document.xml +10 -0
- package/android/src/main/res/drawable/ic_done.xml +10 -0
- package/android/src/main/res/drawable/ic_download.xml +10 -0
- package/android/src/main/res/drawable/ic_emoji.xml +10 -0
- package/android/src/main/res/drawable/ic_filter.xml +10 -0
- package/android/src/main/res/drawable/ic_flash_auto.xml +7 -0
- package/android/src/main/res/drawable/ic_flash_off.xml +23 -0
- package/android/src/main/res/drawable/ic_flash_on.xml +16 -0
- package/android/src/main/res/drawable/ic_flip.xml +15 -0
- package/android/src/main/res/drawable/ic_gallery.xml +10 -0
- package/android/src/main/res/drawable/ic_gif.xml +24 -0
- package/android/src/main/res/drawable/ic_lock.xml +19 -0
- package/android/src/main/res/drawable/ic_lock_open.xml +22 -0
- package/android/src/main/res/drawable/ic_marker.xml +10 -0
- package/android/src/main/res/drawable/ic_more_vert.xml +18 -0
- package/android/src/main/res/drawable/ic_overlay_close.xml +19 -0
- package/android/src/main/res/drawable/ic_overlay_resize.xml +18 -0
- package/android/src/main/res/drawable/ic_pause.xml +10 -0
- package/android/src/main/res/drawable/ic_photo_mode.xml +10 -0
- package/android/src/main/res/drawable/ic_play.xml +10 -0
- package/android/src/main/res/drawable/ic_redo.xml +10 -0
- package/android/src/main/res/drawable/ic_rotate.xml +9 -0
- package/android/src/main/res/drawable/ic_send.xml +10 -0
- package/android/src/main/res/drawable/ic_share.xml +10 -0
- package/android/src/main/res/drawable/ic_stat_upload.xml +10 -0
- package/android/src/main/res/drawable/ic_sticker.xml +24 -0
- package/android/src/main/res/drawable/ic_text.xml +10 -0
- package/android/src/main/res/drawable/ic_text_align_center.xml +11 -0
- package/android/src/main/res/drawable/ic_text_align_left.xml +11 -0
- package/android/src/main/res/drawable/ic_text_align_right.xml +11 -0
- package/android/src/main/res/drawable/ic_text_bg.xml +11 -0
- package/android/src/main/res/drawable/ic_trim.xml +23 -0
- package/android/src/main/res/drawable/ic_undo.xml +10 -0
- package/android/src/main/res/drawable/ic_video_mode.xml +10 -0
- package/android/src/main/res/drawable/ic_video_note.xml +13 -0
- package/android/src/main/res/drawable/ic_volume_off.xml +9 -0
- package/android/src/main/res/drawable/ic_volume_on.xml +9 -0
- package/android/src/main/res/drawable/sticker_heart.xml +9 -0
- package/android/src/main/res/drawable/sticker_smile.xml +9 -0
- package/android/src/main/res/drawable/sticker_star.xml +9 -0
- package/android/src/main/res/drawable/sticker_thumbsup.xml +9 -0
- package/android/src/main/res/values/colors.xml +34 -0
- package/android/src/main/res/values/ids.xml +15 -0
- package/android/src/main/res/values/strings.xml +15 -0
- package/android/src/main/res/values/styles.xml +20 -0
- package/android/src/main/res/xml/file_paths.xml +34 -0
- package/ios/CustomCamera.h +5 -0
- package/ios/CustomCamera.mm +214 -0
- package/lib/module/AudioPlayerContext.js +233 -0
- package/lib/module/AudioPlayerContext.js.map +1 -0
- package/lib/module/CameraPreview.js +304 -0
- package/lib/module/CameraPreview.js.map +1 -0
- package/lib/module/NativeAnimatedImageView.js +41 -0
- package/lib/module/NativeAnimatedImageView.js.map +1 -0
- package/lib/module/NativeAudioPlayerView.js +33 -0
- package/lib/module/NativeAudioPlayerView.js.map +1 -0
- package/lib/module/NativeBlurView.js +35 -0
- package/lib/module/NativeBlurView.js.map +1 -0
- package/lib/module/NativeCustomCamera.js +128 -0
- package/lib/module/NativeCustomCamera.js.map +1 -0
- package/lib/module/NativeCustomCamera.web.js +143 -0
- package/lib/module/NativeCustomCamera.web.js.map +1 -0
- package/lib/module/NativeCustomVideoView.js +5 -0
- package/lib/module/NativeCustomVideoView.js.map +1 -0
- package/lib/module/NativeDocumentPreviewView.js +156 -0
- package/lib/module/NativeDocumentPreviewView.js.map +1 -0
- package/lib/module/NativeMediaThumbnailView.js +110 -0
- package/lib/module/NativeMediaThumbnailView.js.map +1 -0
- package/lib/module/NativeSvgIcon.js +32 -0
- package/lib/module/NativeSvgIcon.js.map +1 -0
- package/lib/module/ResponsivePreviewContainer.js +171 -0
- package/lib/module/ResponsivePreviewContainer.js.map +1 -0
- package/lib/module/accessibility.js +61 -0
- package/lib/module/accessibility.js.map +1 -0
- package/lib/module/config.js +352 -0
- package/lib/module/config.js.map +1 -0
- package/lib/module/cpuOptimization.js +296 -0
- package/lib/module/cpuOptimization.js.map +1 -0
- package/lib/module/db/DatabaseManager.js +191 -0
- package/lib/module/db/DatabaseManager.js.map +1 -0
- package/lib/module/db/MediaMapper.js +284 -0
- package/lib/module/db/MediaMapper.js.map +1 -0
- package/lib/module/db/MediaRepository.js +242 -0
- package/lib/module/db/MediaRepository.js.map +1 -0
- package/lib/module/db/index.js +41 -0
- package/lib/module/db/index.js.map +1 -0
- package/lib/module/db/migrations.js +180 -0
- package/lib/module/db/migrations.js.map +1 -0
- package/lib/module/db/react-native-sqlcipher.d.js +2 -0
- package/lib/module/db/react-native-sqlcipher.d.js.map +1 -0
- package/lib/module/db/secureKey.js +87 -0
- package/lib/module/db/secureKey.js.map +1 -0
- package/lib/module/db/types.js +57 -0
- package/lib/module/db/types.js.map +1 -0
- package/lib/module/db/useMediaDatabase.js +123 -0
- package/lib/module/db/useMediaDatabase.js.map +1 -0
- package/lib/module/defaultIcons.js +2259 -0
- package/lib/module/defaultIcons.js.map +1 -0
- package/lib/module/deviceCapabilities.js +408 -0
- package/lib/module/deviceCapabilities.js.map +1 -0
- package/lib/module/errors.js +267 -0
- package/lib/module/errors.js.map +1 -0
- package/lib/module/iconConfig.js +796 -0
- package/lib/module/iconConfig.js.map +1 -0
- package/lib/module/icons.js +514 -0
- package/lib/module/icons.js.map +1 -0
- package/lib/module/index.js +251 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/jest-globals.d.js +2 -0
- package/lib/module/jest-globals.d.js.map +1 -0
- package/lib/module/library/MediaLibrary.js +107 -0
- package/lib/module/library/MediaLibrary.js.map +1 -0
- package/lib/module/library/MediaLibraryScreen.js +2597 -0
- package/lib/module/library/MediaLibraryScreen.js.map +1 -0
- package/lib/module/library/components/AudioPreview.js +74 -0
- package/lib/module/library/components/AudioPreview.js.map +1 -0
- package/lib/module/library/components/DocumentPreview.js +331 -0
- package/lib/module/library/components/DocumentPreview.js.map +1 -0
- package/lib/module/library/components/ExpandableFab.js +343 -0
- package/lib/module/library/components/ExpandableFab.js.map +1 -0
- package/lib/module/library/components/FileTiles.js +251 -0
- package/lib/module/library/components/FileTiles.js.map +1 -0
- package/lib/module/library/components/ImagePreview.js +70 -0
- package/lib/module/library/components/ImagePreview.js.map +1 -0
- package/lib/module/library/components/MediaMetadataHeader.js +175 -0
- package/lib/module/library/components/MediaMetadataHeader.js.map +1 -0
- package/lib/module/library/components/RecordAudioScreen.js +816 -0
- package/lib/module/library/components/RecordAudioScreen.js.map +1 -0
- package/lib/module/library/components/VideoPreview.js +453 -0
- package/lib/module/library/components/VideoPreview.js.map +1 -0
- package/lib/module/library/components/ViewerCounter.js +55 -0
- package/lib/module/library/components/ViewerCounter.js.map +1 -0
- package/lib/module/library/compressionEstimate.js +507 -0
- package/lib/module/library/compressionEstimate.js.map +1 -0
- package/lib/module/library/fileMetadata.js +196 -0
- package/lib/module/library/fileMetadata.js.map +1 -0
- package/lib/module/library/index.js +42 -0
- package/lib/module/library/index.js.map +1 -0
- package/lib/module/library/libraryIconRegistry.js +69 -0
- package/lib/module/library/libraryIconRegistry.js.map +1 -0
- package/lib/module/library/libraryIcons.js +858 -0
- package/lib/module/library/libraryIcons.js.map +1 -0
- package/lib/module/library/localizedFormat.js +181 -0
- package/lib/module/library/localizedFormat.js.map +1 -0
- package/lib/module/library/palette.js +225 -0
- package/lib/module/library/palette.js.map +1 -0
- package/lib/module/library/responsive.js +53 -0
- package/lib/module/library/responsive.js.map +1 -0
- package/lib/module/locales.js +416 -0
- package/lib/module/locales.js.map +1 -0
- package/lib/module/localization.js +1064 -0
- package/lib/module/localization.js.map +1 -0
- package/lib/module/logger.js +20 -0
- package/lib/module/logger.js.map +1 -0
- package/lib/module/lowMemoryCache.js +206 -0
- package/lib/module/lowMemoryCache.js.map +1 -0
- package/lib/module/mediaHistory.js +33 -0
- package/lib/module/mediaHistory.js.map +1 -0
- package/lib/module/mediaStorageService.js +402 -0
- package/lib/module/mediaStorageService.js.map +1 -0
- package/lib/module/memory.js +79 -0
- package/lib/module/memory.js.map +1 -0
- package/lib/module/nativeActions.js +307 -0
- package/lib/module/nativeActions.js.map +1 -0
- package/lib/module/nativeComponentSupport.js +61 -0
- package/lib/module/nativeComponentSupport.js.map +1 -0
- package/lib/module/networkPerformance.js +24 -0
- package/lib/module/networkPerformance.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/performance.js +104 -0
- package/lib/module/performance.js.map +1 -0
- package/lib/module/performanceMonitor.js +155 -0
- package/lib/module/performanceMonitor.js.map +1 -0
- package/lib/module/permissions.js +370 -0
- package/lib/module/permissions.js.map +1 -0
- package/lib/module/rendering.js +40 -0
- package/lib/module/rendering.js.map +1 -0
- package/lib/module/security.js +18 -0
- package/lib/module/security.js.map +1 -0
- package/lib/module/state.js +266 -0
- package/lib/module/state.js.map +1 -0
- package/lib/module/storage.js +400 -0
- package/lib/module/storage.js.map +1 -0
- package/lib/module/theme.js +390 -0
- package/lib/module/theme.js.map +1 -0
- package/lib/module/types.js +4 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils.js +115 -0
- package/lib/module/utils.js.map +1 -0
- package/lib/module/validation.js +288 -0
- package/lib/module/validation.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/AudioPlayerContext.d.ts +27 -0
- package/lib/typescript/src/AudioPlayerContext.d.ts.map +1 -0
- package/lib/typescript/src/CameraPreview.d.ts +13 -0
- package/lib/typescript/src/CameraPreview.d.ts.map +1 -0
- package/lib/typescript/src/NativeAnimatedImageView.d.ts +33 -0
- package/lib/typescript/src/NativeAnimatedImageView.d.ts.map +1 -0
- package/lib/typescript/src/NativeAudioPlayerView.d.ts +12 -0
- package/lib/typescript/src/NativeAudioPlayerView.d.ts.map +1 -0
- package/lib/typescript/src/NativeBlurView.d.ts +12 -0
- package/lib/typescript/src/NativeBlurView.d.ts.map +1 -0
- package/lib/typescript/src/NativeCustomCamera.d.ts +167 -0
- package/lib/typescript/src/NativeCustomCamera.d.ts.map +1 -0
- package/lib/typescript/src/NativeCustomCamera.web.d.ts +47 -0
- package/lib/typescript/src/NativeCustomCamera.web.d.ts.map +1 -0
- package/lib/typescript/src/NativeCustomVideoView.d.ts +30 -0
- package/lib/typescript/src/NativeCustomVideoView.d.ts.map +1 -0
- package/lib/typescript/src/NativeDocumentPreviewView.d.ts +48 -0
- package/lib/typescript/src/NativeDocumentPreviewView.d.ts.map +1 -0
- package/lib/typescript/src/NativeMediaThumbnailView.d.ts +54 -0
- package/lib/typescript/src/NativeMediaThumbnailView.d.ts.map +1 -0
- package/lib/typescript/src/NativeSvgIcon.d.ts +25 -0
- package/lib/typescript/src/NativeSvgIcon.d.ts.map +1 -0
- package/lib/typescript/src/ResponsivePreviewContainer.d.ts +92 -0
- package/lib/typescript/src/ResponsivePreviewContainer.d.ts.map +1 -0
- package/lib/typescript/src/accessibility.d.ts +20 -0
- package/lib/typescript/src/accessibility.d.ts.map +1 -0
- package/lib/typescript/src/config.d.ts +145 -0
- package/lib/typescript/src/config.d.ts.map +1 -0
- package/lib/typescript/src/cpuOptimization.d.ts +63 -0
- package/lib/typescript/src/cpuOptimization.d.ts.map +1 -0
- package/lib/typescript/src/db/DatabaseManager.d.ts +48 -0
- package/lib/typescript/src/db/DatabaseManager.d.ts.map +1 -0
- package/lib/typescript/src/db/MediaMapper.d.ts +77 -0
- package/lib/typescript/src/db/MediaMapper.d.ts.map +1 -0
- package/lib/typescript/src/db/MediaRepository.d.ts +66 -0
- package/lib/typescript/src/db/MediaRepository.d.ts.map +1 -0
- package/lib/typescript/src/db/index.d.ts +23 -0
- package/lib/typescript/src/db/index.d.ts.map +1 -0
- package/lib/typescript/src/db/migrations.d.ts +31 -0
- package/lib/typescript/src/db/migrations.d.ts.map +1 -0
- package/lib/typescript/src/db/secureKey.d.ts +10 -0
- package/lib/typescript/src/db/secureKey.d.ts.map +1 -0
- package/lib/typescript/src/db/types.d.ts +115 -0
- package/lib/typescript/src/db/types.d.ts.map +1 -0
- package/lib/typescript/src/db/useMediaDatabase.d.ts +41 -0
- package/lib/typescript/src/db/useMediaDatabase.d.ts.map +1 -0
- package/lib/typescript/src/defaultIcons.d.ts +139 -0
- package/lib/typescript/src/defaultIcons.d.ts.map +1 -0
- package/lib/typescript/src/deviceCapabilities.d.ts +92 -0
- package/lib/typescript/src/deviceCapabilities.d.ts.map +1 -0
- package/lib/typescript/src/errors.d.ts +95 -0
- package/lib/typescript/src/errors.d.ts.map +1 -0
- package/lib/typescript/src/iconConfig.d.ts +176 -0
- package/lib/typescript/src/iconConfig.d.ts.map +1 -0
- package/lib/typescript/src/icons.d.ts +217 -0
- package/lib/typescript/src/icons.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +104 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/library/MediaLibrary.d.ts +57 -0
- package/lib/typescript/src/library/MediaLibrary.d.ts.map +1 -0
- package/lib/typescript/src/library/MediaLibraryScreen.d.ts +51 -0
- package/lib/typescript/src/library/MediaLibraryScreen.d.ts.map +1 -0
- package/lib/typescript/src/library/components/AudioPreview.d.ts +6 -0
- package/lib/typescript/src/library/components/AudioPreview.d.ts.map +1 -0
- package/lib/typescript/src/library/components/DocumentPreview.d.ts +10 -0
- package/lib/typescript/src/library/components/DocumentPreview.d.ts.map +1 -0
- package/lib/typescript/src/library/components/ExpandableFab.d.ts +39 -0
- package/lib/typescript/src/library/components/ExpandableFab.d.ts.map +1 -0
- package/lib/typescript/src/library/components/FileTiles.d.ts +8 -0
- package/lib/typescript/src/library/components/FileTiles.d.ts.map +1 -0
- package/lib/typescript/src/library/components/ImagePreview.d.ts +5 -0
- package/lib/typescript/src/library/components/ImagePreview.d.ts.map +1 -0
- package/lib/typescript/src/library/components/MediaMetadataHeader.d.ts +16 -0
- package/lib/typescript/src/library/components/MediaMetadataHeader.d.ts.map +1 -0
- package/lib/typescript/src/library/components/RecordAudioScreen.d.ts +8 -0
- package/lib/typescript/src/library/components/RecordAudioScreen.d.ts.map +1 -0
- package/lib/typescript/src/library/components/VideoPreview.d.ts +20 -0
- package/lib/typescript/src/library/components/VideoPreview.d.ts.map +1 -0
- package/lib/typescript/src/library/components/ViewerCounter.d.ts +13 -0
- package/lib/typescript/src/library/components/ViewerCounter.d.ts.map +1 -0
- package/lib/typescript/src/library/compressionEstimate.d.ts +313 -0
- package/lib/typescript/src/library/compressionEstimate.d.ts.map +1 -0
- package/lib/typescript/src/library/fileMetadata.d.ts +33 -0
- package/lib/typescript/src/library/fileMetadata.d.ts.map +1 -0
- package/lib/typescript/src/library/index.d.ts +40 -0
- package/lib/typescript/src/library/index.d.ts.map +1 -0
- package/lib/typescript/src/library/libraryIconRegistry.d.ts +35 -0
- package/lib/typescript/src/library/libraryIconRegistry.d.ts.map +1 -0
- package/lib/typescript/src/library/libraryIcons.d.ts +85 -0
- package/lib/typescript/src/library/libraryIcons.d.ts.map +1 -0
- package/lib/typescript/src/library/localizedFormat.d.ts +49 -0
- package/lib/typescript/src/library/localizedFormat.d.ts.map +1 -0
- package/lib/typescript/src/library/palette.d.ts +104 -0
- package/lib/typescript/src/library/palette.d.ts.map +1 -0
- package/lib/typescript/src/library/responsive.d.ts +15 -0
- package/lib/typescript/src/library/responsive.d.ts.map +1 -0
- package/lib/typescript/src/locales.d.ts +103 -0
- package/lib/typescript/src/locales.d.ts.map +1 -0
- package/lib/typescript/src/localization.d.ts +1051 -0
- package/lib/typescript/src/localization.d.ts.map +1 -0
- package/lib/typescript/src/logger.d.ts +4 -0
- package/lib/typescript/src/logger.d.ts.map +1 -0
- package/lib/typescript/src/lowMemoryCache.d.ts +64 -0
- package/lib/typescript/src/lowMemoryCache.d.ts.map +1 -0
- package/lib/typescript/src/mediaHistory.d.ts +3 -0
- package/lib/typescript/src/mediaHistory.d.ts.map +1 -0
- package/lib/typescript/src/mediaStorageService.d.ts +155 -0
- package/lib/typescript/src/mediaStorageService.d.ts.map +1 -0
- package/lib/typescript/src/memory.d.ts +21 -0
- package/lib/typescript/src/memory.d.ts.map +1 -0
- package/lib/typescript/src/nativeActions.d.ts +174 -0
- package/lib/typescript/src/nativeActions.d.ts.map +1 -0
- package/lib/typescript/src/nativeComponentSupport.d.ts +30 -0
- package/lib/typescript/src/nativeComponentSupport.d.ts.map +1 -0
- package/lib/typescript/src/networkPerformance.d.ts +12 -0
- package/lib/typescript/src/networkPerformance.d.ts.map +1 -0
- package/lib/typescript/src/performance.d.ts +32 -0
- package/lib/typescript/src/performance.d.ts.map +1 -0
- package/lib/typescript/src/performanceMonitor.d.ts +45 -0
- package/lib/typescript/src/performanceMonitor.d.ts.map +1 -0
- package/lib/typescript/src/permissions.d.ts +132 -0
- package/lib/typescript/src/permissions.d.ts.map +1 -0
- package/lib/typescript/src/rendering.d.ts +9 -0
- package/lib/typescript/src/rendering.d.ts.map +1 -0
- package/lib/typescript/src/security.d.ts +6 -0
- package/lib/typescript/src/security.d.ts.map +1 -0
- package/lib/typescript/src/state.d.ts +102 -0
- package/lib/typescript/src/state.d.ts.map +1 -0
- package/lib/typescript/src/storage.d.ts +117 -0
- package/lib/typescript/src/storage.d.ts.map +1 -0
- package/lib/typescript/src/theme.d.ts +15 -0
- package/lib/typescript/src/theme.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +802 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/utils.d.ts +50 -0
- package/lib/typescript/src/utils.d.ts.map +1 -0
- package/lib/typescript/src/validation.d.ts +52 -0
- package/lib/typescript/src/validation.d.ts.map +1 -0
- package/package.json +204 -0
- package/react-native.config.js +17 -0
- package/src/AudioPlayerContext.tsx +220 -0
- package/src/CameraPreview.tsx +352 -0
- package/src/NativeAnimatedImageView.tsx +71 -0
- package/src/NativeAudioPlayerView.tsx +39 -0
- package/src/NativeBlurView.tsx +40 -0
- package/src/NativeCustomCamera.ts +305 -0
- package/src/NativeCustomCamera.web.ts +192 -0
- package/src/NativeCustomVideoView.ts +30 -0
- package/src/NativeDocumentPreviewView.tsx +196 -0
- package/src/NativeMediaThumbnailView.tsx +167 -0
- package/src/NativeSvgIcon.tsx +46 -0
- package/src/ResponsivePreviewContainer.tsx +227 -0
- package/src/accessibility.ts +80 -0
- package/src/config.ts +406 -0
- package/src/cpuOptimization.ts +365 -0
- package/src/db/DatabaseManager.ts +212 -0
- package/src/db/MediaMapper.ts +377 -0
- package/src/db/MediaRepository.ts +313 -0
- package/src/db/index.ts +73 -0
- package/src/db/migrations.ts +222 -0
- package/src/db/react-native-sqlcipher.d.ts +76 -0
- package/src/db/secureKey.ts +100 -0
- package/src/db/types.ts +123 -0
- package/src/db/useMediaDatabase.ts +191 -0
- package/src/defaultIcons.tsx +2390 -0
- package/src/deviceCapabilities.ts +438 -0
- package/src/errors.ts +350 -0
- package/src/iconConfig.tsx +962 -0
- package/src/icons.tsx +788 -0
- package/src/index.tsx +763 -0
- package/src/jest-globals.d.ts +9 -0
- package/src/library/MediaLibrary.tsx +141 -0
- package/src/library/MediaLibraryScreen.tsx +3003 -0
- package/src/library/components/AudioPreview.tsx +73 -0
- package/src/library/components/DocumentPreview.tsx +361 -0
- package/src/library/components/ExpandableFab.tsx +342 -0
- package/src/library/components/FileTiles.tsx +252 -0
- package/src/library/components/ImagePreview.tsx +72 -0
- package/src/library/components/MediaMetadataHeader.tsx +208 -0
- package/src/library/components/RecordAudioScreen.tsx +845 -0
- package/src/library/components/VideoPreview.tsx +478 -0
- package/src/library/components/ViewerCounter.tsx +71 -0
- package/src/library/compressionEstimate.ts +662 -0
- package/src/library/fileMetadata.ts +212 -0
- package/src/library/index.ts +66 -0
- package/src/library/libraryIconRegistry.tsx +86 -0
- package/src/library/libraryIcons.tsx +928 -0
- package/src/library/localizedFormat.ts +207 -0
- package/src/library/palette.ts +281 -0
- package/src/library/responsive.ts +49 -0
- package/src/locales.ts +381 -0
- package/src/localization.ts +1947 -0
- package/src/logger.ts +20 -0
- package/src/lowMemoryCache.ts +218 -0
- package/src/mediaHistory.ts +42 -0
- package/src/mediaStorageService.ts +546 -0
- package/src/memory.ts +102 -0
- package/src/nativeActions.ts +422 -0
- package/src/nativeComponentSupport.ts +60 -0
- package/src/networkPerformance.ts +30 -0
- package/src/performance.ts +137 -0
- package/src/performanceMonitor.ts +219 -0
- package/src/permissions.ts +403 -0
- package/src/rendering.ts +47 -0
- package/src/security.ts +19 -0
- package/src/state.ts +333 -0
- package/src/storage.ts +453 -0
- package/src/theme.tsx +467 -0
- package/src/types.ts +946 -0
- package/src/utils.ts +177 -0
- package/src/validation.ts +372 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comprehensive error handling for the camera module
|
|
3
|
+
*/
|
|
4
|
+
import type { ImageCropOptions } from './types';
|
|
5
|
+
export declare class CameraError extends Error {
|
|
6
|
+
code: string;
|
|
7
|
+
details?: unknown | undefined;
|
|
8
|
+
isRecoverable: boolean;
|
|
9
|
+
severity: 'low' | 'medium' | 'high';
|
|
10
|
+
constructor(message: string, code: string, details?: unknown | undefined, isRecoverable?: boolean, severity?: 'low' | 'medium' | 'high');
|
|
11
|
+
toJSON(): {
|
|
12
|
+
name: string;
|
|
13
|
+
message: string;
|
|
14
|
+
code: string;
|
|
15
|
+
details: unknown;
|
|
16
|
+
isRecoverable: boolean;
|
|
17
|
+
severity: "medium" | "low" | "high";
|
|
18
|
+
stack: string | undefined;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export declare const ERROR_CODES: {
|
|
22
|
+
readonly UNKNOWN: "CAMERA_UNKNOWN_ERROR";
|
|
23
|
+
readonly NO_ACTIVITY: "CAMERA_NO_ACTIVITY";
|
|
24
|
+
readonly PICKER_ALREADY_OPEN: "CAMERA_PICKER_ALREADY_OPEN";
|
|
25
|
+
readonly PERMISSION_DENIED: "CAMERA_PERMISSION_DENIED";
|
|
26
|
+
readonly CAMERA_PERMISSION_DENIED: "CAMERA_CAMERA_PERMISSION_DENIED";
|
|
27
|
+
readonly MICROPHONE_PERMISSION_DENIED: "CAMERA_MICROPHONE_PERMISSION_DENIED";
|
|
28
|
+
readonly STORAGE_PERMISSION_DENIED: "CAMERA_STORAGE_PERMISSION_DENIED";
|
|
29
|
+
readonly INVALID_URI: "CAMERA_INVALID_URI";
|
|
30
|
+
readonly INVALID_FILE_TYPE: "CAMERA_INVALID_FILE_TYPE";
|
|
31
|
+
readonly INVALID_PARAMETER: "CAMERA_INVALID_PARAMETER";
|
|
32
|
+
readonly FILE_NOT_FOUND: "CAMERA_FILE_NOT_FOUND";
|
|
33
|
+
readonly FILE_TOO_LARGE: "CAMERA_FILE_TOO_LARGE";
|
|
34
|
+
readonly OPERATION_CANCELLED: "CAMERA_OPERATION_CANCELLED";
|
|
35
|
+
readonly OPERATION_FAILED: "CAMERA_OPERATION_FAILED";
|
|
36
|
+
readonly UNSUPPORTED_OPERATION: "CAMERA_UNSUPPORTED_OPERATION";
|
|
37
|
+
readonly MEDIA_CORRUPTED: "CAMERA_MEDIA_CORRUPTED";
|
|
38
|
+
readonly MEDIA_TYPE_NOT_SUPPORTED: "CAMERA_MEDIA_TYPE_NOT_SUPPORTED";
|
|
39
|
+
readonly NETWORK_UNAVAILABLE: "CAMERA_NETWORK_UNAVAILABLE";
|
|
40
|
+
readonly UPLOAD_FAILED: "CAMERA_UPLOAD_FAILED";
|
|
41
|
+
readonly CAMERA_UNAVAILABLE: "CAMERA_CAMERA_UNAVAILABLE";
|
|
42
|
+
readonly DEVICE_NOT_SUPPORTED: "CAMERA_DEVICE_NOT_SUPPORTED";
|
|
43
|
+
readonly INSUFFICIENT_MEMORY: "CAMERA_INSUFFICIENT_MEMORY";
|
|
44
|
+
readonly INSUFFICIENT_STORAGE: "CAMERA_INSUFFICIENT_STORAGE";
|
|
45
|
+
};
|
|
46
|
+
export type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];
|
|
47
|
+
/**
|
|
48
|
+
* Validate URI format
|
|
49
|
+
*/
|
|
50
|
+
export declare function validateUri(uri: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Validate file type based on URI
|
|
53
|
+
*/
|
|
54
|
+
export declare function validateFileType(uri: string, allowedTypes: string[]): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Validate image file types
|
|
57
|
+
*/
|
|
58
|
+
export declare function validateImageUri(uri: string): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Validate video file types
|
|
61
|
+
*/
|
|
62
|
+
export declare function validateVideoUri(uri: string): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Validate crop options
|
|
65
|
+
*/
|
|
66
|
+
export declare function validateCropOptions(options: ImageCropOptions): void;
|
|
67
|
+
/**
|
|
68
|
+
* Validate filter type
|
|
69
|
+
*/
|
|
70
|
+
export declare function validateFilterType(filterType: string): void;
|
|
71
|
+
/**
|
|
72
|
+
* Validate flash mode
|
|
73
|
+
*/
|
|
74
|
+
export declare function validateFlashMode(mode: string): void;
|
|
75
|
+
/**
|
|
76
|
+
* Validate face effect
|
|
77
|
+
*/
|
|
78
|
+
export declare function validateFaceEffect(effect: string): void;
|
|
79
|
+
/**
|
|
80
|
+
* Validate camera theme
|
|
81
|
+
*/
|
|
82
|
+
export declare function validateCameraTheme(theme: string): void;
|
|
83
|
+
/**
|
|
84
|
+
* Check if error is a CameraError
|
|
85
|
+
*/
|
|
86
|
+
export declare function isCameraError(error: unknown): error is CameraError;
|
|
87
|
+
/**
|
|
88
|
+
* Handle errors consistently
|
|
89
|
+
*/
|
|
90
|
+
export declare function handleCameraError(error: unknown): never;
|
|
91
|
+
/**
|
|
92
|
+
* Create user-friendly error messages
|
|
93
|
+
*/
|
|
94
|
+
export declare function getUserFriendlyErrorMessage(error: unknown): string;
|
|
95
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAKV,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAGjB,qBAAa,WAAY,SAAQ,KAAK;IAG3B,IAAI,EAAE,MAAM;IACZ,OAAO,CAAC,EAAE,OAAO;IACjB,aAAa;IACb,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM;gBAJ1C,OAAO,EAAE,MAAM,EACR,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,YAAA,EACjB,aAAa,UAAQ,EACrB,QAAQ,GAAE,KAAK,GAAG,QAAQ,GAAG,MAAiB;IAWvD,MAAM;;;;;;;;;CAWP;AAGD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;CAuCd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEvE;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAqBhD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAM7E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAcrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAsCnE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAoB3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAcpD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAcvD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAcvD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAQlE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAgBvD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAqClE"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import type { ImageSourcePropType } from 'react-native';
|
|
2
|
+
import { type CameraIconKey, type CameraIconRegistryConfig, type IconComponent } from './icons';
|
|
3
|
+
import type { CameraIconConfig, CameraIconName } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Which surface an icon is drawn on. Determines which customization fields
|
|
6
|
+
* actually take effect for that icon — see {@link CameraIconCustomization}.
|
|
7
|
+
*/
|
|
8
|
+
export type CameraIconSurface = 'app' | 'camera' | 'both';
|
|
9
|
+
/**
|
|
10
|
+
* Every customizable icon in the plugin, as one flat set of unique keys.
|
|
11
|
+
*
|
|
12
|
+
* Ids are camelCase and deliberately distinct from the two internal key spaces
|
|
13
|
+
* they drive (`CameraIconKey` for the RN registry, `CameraIconName` for the
|
|
14
|
+
* native drawables) so there is never any doubt about which one a config object
|
|
15
|
+
* is addressing.
|
|
16
|
+
*/
|
|
17
|
+
export type CameraIconId = 'close' | 'back' | 'done' | 'cancel' | 'check' | 'selectionCheck' | 'camera' | 'photo' | 'video' | 'photoMode' | 'videoMode' | 'flipCamera' | 'flashOn' | 'flashOff' | 'flashAuto' | 'gallery' | 'record' | 'mic' | 'lock' | 'lockOpen' | 'crop' | 'rotate' | 'aspectRatio' | 'filter' | 'sticker' | 'emoji' | 'gif' | 'text' | 'textBackground' | 'textAlignLeft' | 'textAlignCenter' | 'textAlignRight' | 'draw' | 'marker' | 'brushThin' | 'brushMedium' | 'brushThick' | 'clearDrawing' | 'undo' | 'redo' | 'overlayClose' | 'overlayResize' | 'play' | 'pause' | 'stop' | 'volumeOn' | 'volumeOff' | 'mute' | 'trim' | 'cover' | 'compress' | 'export' | 'send' | 'download' | 'share' | 'delete' | 'trash' | 'more' | 'moreOptions' | 'upload' | 'uploadStatus' | 'document' | 'audio' | 'browseAudio' | 'imageVideo' | 'chevronUp' | 'chevronDown' | 'chevronRight' | 'warning' | 'plus' | 'minus' | 'plusClose' | 'circularSeek' | 'viewDetails' | 'info';
|
|
18
|
+
/** One row of {@link CAMERA_ICON_CATALOG}. */
|
|
19
|
+
export type CameraIconCatalogEntry = {
|
|
20
|
+
/** Where this icon is drawn. */
|
|
21
|
+
surface: CameraIconSurface;
|
|
22
|
+
/** Key in the RN component registry, when this icon has an `app` surface. */
|
|
23
|
+
appKey?: CameraIconKey;
|
|
24
|
+
/** Native drawable name, when this icon has a `camera` surface. */
|
|
25
|
+
nativeName?: CameraIconName;
|
|
26
|
+
/** One-line description of what the icon is used for (documentation). */
|
|
27
|
+
description: string;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* The single source of truth: every icon id, the surfaces it drives, and the
|
|
31
|
+
* internal keys it maps onto.
|
|
32
|
+
*
|
|
33
|
+
* Typed as a total `Record` on purpose — adding a member to
|
|
34
|
+
* {@link CameraIconId} without adding its row here is a compile error, so the
|
|
35
|
+
* catalog can never drift out of sync with the union.
|
|
36
|
+
*/
|
|
37
|
+
export declare const CAMERA_ICON_CATALOG: Record<CameraIconId, CameraIconCatalogEntry>;
|
|
38
|
+
/** Every icon id, in catalog order. Handy for docs and tests. */
|
|
39
|
+
export declare const CAMERA_ICON_IDS: CameraIconId[];
|
|
40
|
+
/** Narrowing guard for an unknown string. */
|
|
41
|
+
export declare function isCameraIconId(value: string): value is CameraIconId;
|
|
42
|
+
/**
|
|
43
|
+
* How one icon should be customized.
|
|
44
|
+
*
|
|
45
|
+
* Which fields take effect depends on the icon's `surface`
|
|
46
|
+
* ({@link CAMERA_ICON_CATALOG}):
|
|
47
|
+
*
|
|
48
|
+
* | Field | `app` surface | `camera` surface |
|
|
49
|
+
* | -------------- | ------------- | ---------------- |
|
|
50
|
+
* | `component` | ✅ | — |
|
|
51
|
+
* | `source` | ✅ | — |
|
|
52
|
+
* | `svg` | ✅ | ✅ |
|
|
53
|
+
* | `resourceName` | — | ✅ |
|
|
54
|
+
* | `tintColor` | ✅ | ✅ |
|
|
55
|
+
* | `size` | ✅ | — |
|
|
56
|
+
*
|
|
57
|
+
* A `both`-surface icon accepts all of them and applies each where it works,
|
|
58
|
+
* so `{ component: MyClose, resourceName: 'my_close' }` replaces the artwork on
|
|
59
|
+
* every surface at once. Anything left unset keeps the icon's shipped default.
|
|
60
|
+
*/
|
|
61
|
+
export type CameraIconCustomization = {
|
|
62
|
+
/** React component to draw instead of the built-in one (app surface). */
|
|
63
|
+
component?: IconComponent;
|
|
64
|
+
/**
|
|
65
|
+
* Image to draw instead of the built-in one (app surface) — e.g.
|
|
66
|
+
* `require('./my-icon.png')` or `{ uri: 'https://…' }`. Rendered with
|
|
67
|
+
* `resizeMode: 'contain'` at the icon's size, and left un-tinted unless
|
|
68
|
+
* `tintColor` is also given, so full-colour artwork survives intact.
|
|
69
|
+
*/
|
|
70
|
+
source?: ImageSourcePropType;
|
|
71
|
+
/**
|
|
72
|
+
* Inline SVG markup, drawn on BOTH surfaces by the library's own bundled
|
|
73
|
+
* parser — no `react-native-svg`. The native camera screen parses it at
|
|
74
|
+
* runtime; the React Native surface draws it through the bundled
|
|
75
|
+
* `CameraSvgIcon` native view. Invalid/unsupported markup (or a platform
|
|
76
|
+
* without the native half) falls back to the icon's built-in default. Use
|
|
77
|
+
* `currentColor` for fills/strokes that should follow the icon tint.
|
|
78
|
+
*/
|
|
79
|
+
svg?: string;
|
|
80
|
+
/**
|
|
81
|
+
* Name of a drawable resource in YOUR Android app to draw instead of the
|
|
82
|
+
* built-in one on the native camera screen (camera surface). Resolved with
|
|
83
|
+
* `Resources.getIdentifier`; falls back to the built-in drawable when the
|
|
84
|
+
* name does not exist.
|
|
85
|
+
*/
|
|
86
|
+
resourceName?: string;
|
|
87
|
+
/** Recolour the icon. Applies on both surfaces. */
|
|
88
|
+
tintColor?: string;
|
|
89
|
+
/** Fixed size in dp for the app-surface icon. */
|
|
90
|
+
size?: number;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* A customization, or one of two shorthands: a bare React component, or a bare
|
|
94
|
+
* image source. `close: MyIcon` is exactly `close: { component: MyIcon }`.
|
|
95
|
+
*/
|
|
96
|
+
export type CameraIconValue = IconComponent | ImageSourcePropType | CameraIconCustomization;
|
|
97
|
+
/**
|
|
98
|
+
* The centralized icon configuration: a flat map of icon id → replacement.
|
|
99
|
+
* Every key is optional; an absent key keeps the plugin's default icon.
|
|
100
|
+
*/
|
|
101
|
+
export type CameraIconsConfig = Partial<Record<CameraIconId, CameraIconValue>>;
|
|
102
|
+
/**
|
|
103
|
+
* Collapse any of the accepted shorthands into a full
|
|
104
|
+
* {@link CameraIconCustomization}.
|
|
105
|
+
*
|
|
106
|
+
* The three input shapes are distinguished structurally, because an image
|
|
107
|
+
* source is `number | object | array` and a React component is
|
|
108
|
+
* `function | object`:
|
|
109
|
+
*
|
|
110
|
+
* - a function, or an object carrying React's `$$typeof` brand
|
|
111
|
+
* (`memo`/`forwardRef` results) → a component;
|
|
112
|
+
* - a number (what `require('./x.png')` compiles to) or an array of sources,
|
|
113
|
+
* or an object with a `uri` → an image source;
|
|
114
|
+
* - an object mentioning any customization field → already a customization;
|
|
115
|
+
* - anything else → treated as an image source, which is what the remaining
|
|
116
|
+
* `ImageSourcePropType` variants are.
|
|
117
|
+
*/
|
|
118
|
+
export declare function normalizeCameraIconValue(value: CameraIconValue): CameraIconCustomization;
|
|
119
|
+
/**
|
|
120
|
+
* Wrap an image source in an {@link IconComponent}.
|
|
121
|
+
*
|
|
122
|
+
* The incoming `color` prop is deliberately ignored: a host-supplied PNG is
|
|
123
|
+
* usually already coloured, and blanket-tinting it with the current theme
|
|
124
|
+
* colour would flatten it. Pass `tintColor` explicitly to opt into recolouring.
|
|
125
|
+
*/
|
|
126
|
+
export declare function createImageIconComponent(source: ImageSourcePropType, tintColor?: string): IconComponent;
|
|
127
|
+
/**
|
|
128
|
+
* Basic structural validity check for inline SVG markup: a non-empty string
|
|
129
|
+
* within the native parser's size cap, with an `<svg>` root and at least one
|
|
130
|
+
* drawable element the parser understands (`path` / `rect` / `circle` /
|
|
131
|
+
* `ellipse` / `line` / `polyline` / `polygon`). Markup that fails this is
|
|
132
|
+
* treated as "no SVG" so the icon keeps its built-in default — the same safe
|
|
133
|
+
* fallback the renderers apply when parsing fails at draw time.
|
|
134
|
+
*/
|
|
135
|
+
export declare function isRenderableSvg(svg: unknown): svg is string;
|
|
136
|
+
/**
|
|
137
|
+
* Wrap inline SVG markup in an {@link IconComponent} for the React Native
|
|
138
|
+
* component surface. The markup is drawn by the library's OWN bundled native
|
|
139
|
+
* renderer (`CameraSvgIcon`, backed by `SvgDrawable`) — no `react-native-svg`
|
|
140
|
+
* and no third-party SVG library.
|
|
141
|
+
*
|
|
142
|
+
* Anything that cannot be drawn falls back to [fallback] (the icon's built-in
|
|
143
|
+
* default component): invalid/empty markup, a platform with no native half
|
|
144
|
+
* (iOS / web), or an older linked binary without the renderer. So a
|
|
145
|
+
* customization never leaves an empty box.
|
|
146
|
+
*
|
|
147
|
+
* `currentColor` in the markup follows the icon's tint — an explicit
|
|
148
|
+
* [tintColor] wins, otherwise the render-time `color` is used — while explicit
|
|
149
|
+
* colours inside the SVG are always preserved.
|
|
150
|
+
*/
|
|
151
|
+
export declare function createSvgIconComponent(svg: string, tintColor?: string, fallback?: IconComponent): IconComponent;
|
|
152
|
+
/**
|
|
153
|
+
* Project the centralized config onto the RN component registry
|
|
154
|
+
* (`src/icons.tsx`).
|
|
155
|
+
*
|
|
156
|
+
* Only ids with an `appKey` contribute. Artwork replacements become registry
|
|
157
|
+
* `overrides` — which take precedence over any registry a host also passes to
|
|
158
|
+
* `CameraIconProvider` — while bare `tintColor` / `size` become per-icon
|
|
159
|
+
* overrides that recolour or resize the *built-in* component. Ids the caller
|
|
160
|
+
* left out never appear, so their defaults resolve untouched.
|
|
161
|
+
*/
|
|
162
|
+
export declare function resolveCameraIconRegistryConfig(config: CameraIconsConfig): CameraIconRegistryConfig;
|
|
163
|
+
/**
|
|
164
|
+
* Project the centralized config onto the native drawable layer
|
|
165
|
+
* (`CameraIconConfig` in `src/types.ts`), which is serialized to the Android
|
|
166
|
+
* Activity by `setCameraConfig`.
|
|
167
|
+
*
|
|
168
|
+
* Only ids with a `nativeName` contribute, and only the fields the native side
|
|
169
|
+
* understands (`resourceName`, `tintColor`, `size`) are carried across — a
|
|
170
|
+
* React component cannot cross into Kotlin UI. The wire format is unchanged, so
|
|
171
|
+
* no native code has to know this module exists.
|
|
172
|
+
*/
|
|
173
|
+
export declare function resolveNativeIconConfig(config: CameraIconsConfig): CameraIconConfig;
|
|
174
|
+
/** Merge two centralized icon configs; `override` wins per icon id. */
|
|
175
|
+
export declare function mergeCameraIconsConfig(base: CameraIconsConfig, override?: CameraIconsConfig): CameraIconsConfig;
|
|
176
|
+
//# sourceMappingURL=iconConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iconConfig.d.ts","sourceRoot":"","sources":["../../../src/iconConfig.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized, dependency-free icon system for the camera plugin.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a complete icon abstraction that:
|
|
5
|
+
* - Requires NO external icon libraries (no react-native-vector-icons, @expo/vector-icons, etc.)
|
|
6
|
+
* - Allows complete customization via a central registry
|
|
7
|
+
* - Provides built-in defaults using React Native primitives only
|
|
8
|
+
* - Supports dynamic icon substitution at runtime
|
|
9
|
+
* - Integrates with the plugin's configuration system
|
|
10
|
+
*
|
|
11
|
+
* Usage:
|
|
12
|
+
* ```tsx
|
|
13
|
+
* // Use hook in components
|
|
14
|
+
* const Icon = useIconComponent('close');
|
|
15
|
+
* <Icon size={24} color="#FFFFFF" />
|
|
16
|
+
*
|
|
17
|
+
* // Or get the registry to render any icon
|
|
18
|
+
* const icons = useIconRegistry();
|
|
19
|
+
* const CloseIcon = icons.get('close');
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
import React, { type ReactNode, type FC } from 'react';
|
|
23
|
+
import type { ColorValue, TextStyle } from 'react-native';
|
|
24
|
+
/** Default edge length (dp) for icons when a caller omits `size`. */
|
|
25
|
+
export declare const DEFAULT_ICON_SIZE = 24;
|
|
26
|
+
/** Default color for icons when a caller omits `color`. */
|
|
27
|
+
export declare const DEFAULT_ICON_COLOR = "#000000";
|
|
28
|
+
/** Default stroke width (dp) for outline-style icons. */
|
|
29
|
+
export declare const DEFAULT_ICON_STROKE_WIDTH = 2;
|
|
30
|
+
/** Color rendered by the fallback icon when a registry entry is missing. */
|
|
31
|
+
export declare const DEFAULT_FALLBACK_ICON_COLOR = "#999";
|
|
32
|
+
/** Font weight used by the fallback icon's glyph. */
|
|
33
|
+
export declare const DEFAULT_FALLBACK_ICON_WEIGHT: TextStyle['fontWeight'];
|
|
34
|
+
/**
|
|
35
|
+
* Props that every icon component must accept.
|
|
36
|
+
* All icons receive at least these standardized props for consistency.
|
|
37
|
+
*/
|
|
38
|
+
export interface IconProps {
|
|
39
|
+
/** Size in dp (icons are square by default) */
|
|
40
|
+
size?: number;
|
|
41
|
+
/** Icon color (CSS color string or React Native color) */
|
|
42
|
+
color?: ColorValue;
|
|
43
|
+
/** Optional stroke width for outline-style icons */
|
|
44
|
+
strokeWidth?: number;
|
|
45
|
+
/** Optional additional styling */
|
|
46
|
+
style?: any;
|
|
47
|
+
/** Optional animation progress for morphing icons like PlusCloseIcon (0 = +, 1 = ×) */
|
|
48
|
+
progress?: any;
|
|
49
|
+
/** Direction for directional icons like seek skip rings ('back' | 'forward') */
|
|
50
|
+
direction?: 'back' | 'forward';
|
|
51
|
+
/** Optional label string for icons that display text (e.g. seek delta '10') */
|
|
52
|
+
label?: string;
|
|
53
|
+
[key: string]: any;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* A React component that renders an icon.
|
|
57
|
+
* Must accept IconProps and render a visual icon representation.
|
|
58
|
+
*/
|
|
59
|
+
export type IconComponent = FC<IconProps>;
|
|
60
|
+
/**
|
|
61
|
+
* All icon keys used throughout the plugin.
|
|
62
|
+
* Each key maps to one icon that can be customized or replaced.
|
|
63
|
+
*/
|
|
64
|
+
export type CameraIconKey = 'close' | 'back' | 'done' | 'cancel' | 'camera' | 'video' | 'photo' | 'flip' | 'flash_on' | 'flash_off' | 'flash_auto' | 'gallery' | 'photo_mode' | 'video_mode' | 'crop' | 'rotate' | 'filter' | 'sticker' | 'emoji' | 'text' | 'draw' | 'undo' | 'redo' | 'delete' | 'trash' | 'play' | 'pause' | 'stop' | 'download' | 'share' | 'send' | 'more' | 'document' | 'audio' | 'lock' | 'lock_open' | 'chevron_up' | 'chevron_right' | 'check' | 'volume_on' | 'volume_off' | 'mute' | 'warning' | 'trim' | 'cover' | 'compress' | 'export' | 'upload' | 'mic' | 'record' | 'browse_audio' | 'image_video' | 'plus' | 'minus' | 'plus_close' | 'circular_seek' | 'view_details' | 'info';
|
|
65
|
+
/**
|
|
66
|
+
* Registry mapping icon keys to React components.
|
|
67
|
+
* Immutable; use setIconRegistry() to replace the entire registry or
|
|
68
|
+
* use overrides in the plugin configuration for targeted changes.
|
|
69
|
+
*/
|
|
70
|
+
export type IconRegistry = Map<CameraIconKey, IconComponent>;
|
|
71
|
+
/**
|
|
72
|
+
* Per-icon customization options.
|
|
73
|
+
* Allows apps to override specific icons or apply global tint colors.
|
|
74
|
+
*/
|
|
75
|
+
export interface IconOverride {
|
|
76
|
+
/** Custom component to use instead of the default */
|
|
77
|
+
component?: IconComponent;
|
|
78
|
+
/** Tint color applied to built-in icons (not custom components) */
|
|
79
|
+
tintColor?: string;
|
|
80
|
+
/** Default size for this icon (can be overridden at render time) */
|
|
81
|
+
size?: number;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Icon registry configuration for the React-component icon system.
|
|
85
|
+
*
|
|
86
|
+
* NOTE: distinct from the NATIVE `CameraIconConfig` in `src/types.ts`, which
|
|
87
|
+
* configures the native camera Activity's Android vector drawables (tint / size
|
|
88
|
+
* / `resourceName`). This type configures the RN-side registry of React
|
|
89
|
+
* components. They are two independent layers — see the header docs.
|
|
90
|
+
*/
|
|
91
|
+
export interface CameraIconRegistryConfig {
|
|
92
|
+
/** Complete custom registry. If provided, replaces the default entirely. */
|
|
93
|
+
registry?: IconRegistry;
|
|
94
|
+
/** Per-icon overrides. Merged with the current registry. */
|
|
95
|
+
overrides?: Partial<Record<CameraIconKey, IconOverride>>;
|
|
96
|
+
/** Global tint color applied to all built-in icons */
|
|
97
|
+
tintColor?: string;
|
|
98
|
+
/** Default size for all icons */
|
|
99
|
+
defaultSize?: number;
|
|
100
|
+
/** Default color for icons when a call site omits `color`. */
|
|
101
|
+
defaultColor?: string;
|
|
102
|
+
/** Default stroke width (dp) for outline-style icons. */
|
|
103
|
+
defaultStrokeWidth?: number;
|
|
104
|
+
}
|
|
105
|
+
/** Internal: effective icon configuration after merging */
|
|
106
|
+
interface ResolvedIconConfig {
|
|
107
|
+
registry: IconRegistry;
|
|
108
|
+
overrides: Partial<Record<CameraIconKey, IconOverride>>;
|
|
109
|
+
tintColor?: string;
|
|
110
|
+
defaultSize: number;
|
|
111
|
+
defaultColor?: string;
|
|
112
|
+
defaultStrokeWidth?: number;
|
|
113
|
+
}
|
|
114
|
+
export type { ResolvedIconConfig };
|
|
115
|
+
/**
|
|
116
|
+
* Replace the process-wide icon configuration and notify every subscriber.
|
|
117
|
+
* Passing `undefined` restores the shipped defaults.
|
|
118
|
+
*/
|
|
119
|
+
export declare function setGlobalIconRegistryConfig(config?: CameraIconRegistryConfig): void;
|
|
120
|
+
/**
|
|
121
|
+
* The current process-wide resolved icon configuration. Reference-stable
|
|
122
|
+
* between {@link setGlobalIconRegistryConfig} calls, so it is safe to use as a
|
|
123
|
+
* `useSyncExternalStore` snapshot.
|
|
124
|
+
*/
|
|
125
|
+
export declare function getGlobalIconRegistryConfig(): ResolvedIconConfig;
|
|
126
|
+
/** Subscribe to process-wide icon configuration changes. */
|
|
127
|
+
export declare function subscribeToGlobalIconRegistryConfig(listener: () => void): () => void;
|
|
128
|
+
export interface CameraIconProviderProps {
|
|
129
|
+
children: ReactNode;
|
|
130
|
+
config?: CameraIconRegistryConfig;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Provider component that manages the icon registry and configuration.
|
|
134
|
+
* Wrap your app with this to customize icons throughout the plugin.
|
|
135
|
+
*
|
|
136
|
+
* ```tsx
|
|
137
|
+
* <CameraIconProvider config={{ tintColor: '#FF0000' }}>
|
|
138
|
+
* <App />
|
|
139
|
+
* </CameraIconProvider>
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
export declare const CameraIconProvider: FC<CameraIconProviderProps>;
|
|
143
|
+
/**
|
|
144
|
+
* Get the current icon configuration and registry.
|
|
145
|
+
* Use this to access the raw registry or override configuration.
|
|
146
|
+
*/
|
|
147
|
+
export declare function useIconRegistry(): IconRegistry;
|
|
148
|
+
/**
|
|
149
|
+
* Get a single icon component by key.
|
|
150
|
+
* Returns the component directly, or a fallback if not found.
|
|
151
|
+
*
|
|
152
|
+
* ```tsx
|
|
153
|
+
* const Icon = useIcon('close');
|
|
154
|
+
* return <Icon size={24} color="#FFF" />;
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
export declare function useIcon(key: CameraIconKey): IconComponent;
|
|
158
|
+
/**
|
|
159
|
+
* Get a rendered icon component with preset props.
|
|
160
|
+
* This is the most convenient way to render icons in most cases.
|
|
161
|
+
*
|
|
162
|
+
* ```tsx
|
|
163
|
+
* return <RenderIcon name="close" size={24} color="#FFF" />;
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
166
|
+
export declare function useRenderIcon(): (name: CameraIconKey, props?: IconProps) => React.ReactElement;
|
|
167
|
+
/**
|
|
168
|
+
* Get the current icon registry configuration as a hook.
|
|
169
|
+
* Useful for accessing tint colors, default sizes, and overrides.
|
|
170
|
+
*/
|
|
171
|
+
export declare function useIconConfig(): ResolvedIconConfig;
|
|
172
|
+
/**
|
|
173
|
+
* Standalone icon component that reads from the icon registry.
|
|
174
|
+
* Works both inside and outside CameraIconProvider — with no provider it reads
|
|
175
|
+
* the centralized configuration set by `setCameraIcons()`, falling back to the
|
|
176
|
+
* built-in default icons.
|
|
177
|
+
*
|
|
178
|
+
* ```tsx
|
|
179
|
+
* <RenderIcon name="close" size={24} color="#FFF" />
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
export declare const RenderIcon: FC<IconProps & {
|
|
183
|
+
name: CameraIconKey;
|
|
184
|
+
}>;
|
|
185
|
+
/**
|
|
186
|
+
* Get an icon component by key without requiring a React context.
|
|
187
|
+
* Reads the centralized configuration set by `setCameraIcons()` and falls back
|
|
188
|
+
* to the built-in default icons.
|
|
189
|
+
* Useful in non-component code or when the provider is not available.
|
|
190
|
+
*/
|
|
191
|
+
export declare function getIconComponent(key: CameraIconKey): IconComponent;
|
|
192
|
+
/**
|
|
193
|
+
* Create or update the global icon configuration.
|
|
194
|
+
* This is called by the plugin's main configure() function.
|
|
195
|
+
*/
|
|
196
|
+
export declare function resolveIconConfig(config?: CameraIconRegistryConfig): ResolvedIconConfig;
|
|
197
|
+
/**
|
|
198
|
+
* Merge icon configurations together.
|
|
199
|
+
* Used by the plugin's configuration system to compose icon customizations.
|
|
200
|
+
*/
|
|
201
|
+
export declare function mergeIconConfigs(base: CameraIconRegistryConfig, override?: Partial<CameraIconRegistryConfig>): CameraIconRegistryConfig;
|
|
202
|
+
/**
|
|
203
|
+
* Create the default icon registry with built-in icons.
|
|
204
|
+
* These are defined in defaultIcons.tsx and require no external dependencies.
|
|
205
|
+
*
|
|
206
|
+
* Returns a FRESH Map on every call so a consumer that mutates the returned
|
|
207
|
+
* registry cannot corrupt the defaults process-wide.
|
|
208
|
+
*/
|
|
209
|
+
export declare function createDefaultIconRegistry(): IconRegistry;
|
|
210
|
+
/**
|
|
211
|
+
* Simple fallback icon for missing icons.
|
|
212
|
+
* Just renders a simple circle to indicate an icon should be here.
|
|
213
|
+
*/
|
|
214
|
+
declare const DefaultFallbackIcon: IconComponent;
|
|
215
|
+
export { DefaultFallbackIcon };
|
|
216
|
+
export declare const DEFAULT_ICON_REGISTRY_CONFIG: CameraIconRegistryConfig;
|
|
217
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/icons.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import type { CameraTheme, CameraThemeConfig, FaceEffect, FilterType, FlashMode, ImageCropOptions, PerformanceMetrics } from './types';
|
|
2
|
+
export { DEFAULT_FILTERS, DEFAULT_FACE_EFFECTS, DEFAULT_THEMES, DEFAULT_FLASH_MODES, validateCropOptions, generateAlbumName, formatVideoDuration, isVideoUri, isImageUri, isGifAsset, requiresNativeImageDecoder, } from './utils';
|
|
3
|
+
export { setCameraLocalization, updateCameraLocalization, setCameraLanguage, setCameraLanguageProvider, clearCameraLanguageProvider, getCameraLanguageProvider, syncCameraLanguage, isCameraLanguageProvider, registerCameraTranslations, getCameraLocale, getCameraIsRtl, defaultTranslations, CameraLocalizationProvider, LocalizationManager, cameraLocalizationKeys, useCameraLocalization, useCameraLocalizationContext, rtlAwareStyles, getRtlAwareStyles, type CameraTranslations, type CameraLanguageProvider, type CameraLanguageSubscription, type CameraLocalizationConfig, type CameraLocalizationProviderProps, type CameraTranslationBundles, type CameraTranslationFunction, type CameraTranslationKey, type CameraTranslationMap, } from './localization';
|
|
4
|
+
export { DEFAULT_LOCALE, RTL_LANGUAGES, RTL_SCRIPTS, isRtlLocale, localeFallbackChain, matchLocaleKey, normalizeLocale, parseLocale, resolveLocaleTranslations, type ParsedLocale, } from './locales';
|
|
5
|
+
export { CameraError, ERROR_CODES, isCameraError, handleCameraError, getUserFriendlyErrorMessage, validateUri, validateImageUri, validateVideoUri, validateFilterType, validateFlashMode, validateFaceEffect, validateCameraTheme, } from './errors';
|
|
6
|
+
export { validateCameraPickerOptions, validateUrisArray, validateAlbumName, validateCaption, validateTimerDelay, validateVideoTrimParameters, validateUploadUrl, checkFileSize, validateAlbumId, validateRotationDegrees, VALIDATION_CONSTANTS, } from './validation';
|
|
7
|
+
export { createInitialOperationState, createLoadingState, createSuccessState, createErrorState, createCancelledState, isOperationInProgress, isOperationSuccessful, isOperationFailed, isOperationCancelled, getStatusMessage, OperationQueue, processInBatches, retryWithBackoff, withTimeout, } from './state';
|
|
8
|
+
export type { OperationResult, OperationStatus } from './state';
|
|
9
|
+
export { DEFAULT_CAMERA_THEME_CONFIG, createCameraTheme, resolveCameraTheme, setGlobalCameraTheme, getCurrentCameraTheme, subscribeToCameraTheme, CameraThemeProvider, useCameraTheme, } from './theme';
|
|
10
|
+
export { CameraPlugin, configureCameraPlugin, getCameraPluginConfig, subscribeToCameraPluginConfig, setCameraIcons, getCameraIcons, resetCameraIcons, DEFAULT_CUSTOM_ICONS, DEFAULT_ICON_CONFIG, DEFAULT_ANIMATION_CONFIG, DEFAULT_DIMENSION_CONFIG, DEFAULT_NOTIFICATION_CONFIG, } from './config';
|
|
11
|
+
export type { ResolvedCameraPluginConfig } from './config';
|
|
12
|
+
export { CAMERA_ICON_CATALOG, CAMERA_ICON_IDS, isCameraIconId, normalizeCameraIconValue, createSvgIconComponent, createImageIconComponent, isRenderableSvg, resolveCameraIconRegistryConfig, resolveNativeIconConfig, mergeCameraIconsConfig, } from './iconConfig';
|
|
13
|
+
export type { CameraIconId, CameraIconsConfig, CameraIconCustomization, CameraIconValue, CameraIconSurface, CameraIconCatalogEntry, } from './iconConfig';
|
|
14
|
+
export type { CameraPluginConfig, CameraIconConfig, CameraIconName, CameraIconStyle, CameraAnimationConfig, CameraDimensionConfig, UploadNotificationConfig, } from './types';
|
|
15
|
+
export { CameraIconProvider, useIcon, useIconRegistry, useIconConfig, useRenderIcon, RenderIcon, createDefaultIconRegistry, resolveIconConfig, mergeIconConfigs, getIconComponent, setGlobalIconRegistryConfig, getGlobalIconRegistryConfig, subscribeToGlobalIconRegistryConfig, DefaultFallbackIcon, DEFAULT_ICON_REGISTRY_CONFIG, DEFAULT_ICON_SIZE, DEFAULT_ICON_COLOR, DEFAULT_ICON_STROKE_WIDTH, DEFAULT_FALLBACK_ICON_COLOR, DEFAULT_FALLBACK_ICON_WEIGHT, } from './icons';
|
|
16
|
+
export type { CameraIconKey, IconComponent, IconProps, IconOverride, IconRegistry, ResolvedIconConfig, CameraIconProviderProps, CameraIconRegistryConfig, } from './icons';
|
|
17
|
+
export type { CameraThemeConfig, CameraThemeInput, CameraThemePreset, CameraThemePalette, CameraThemeTypography, CameraFontWeight, CameraThemeSpacing, CameraThemeBorderRadius, CameraThemeShadow, CameraThemeComponentStyles, CameraThemeComponentStyle, } from './types';
|
|
18
|
+
export { measurePerformance, debounce, throttle, MediaCache, BackgroundOperationManager, LazyLoader, processMediaInChunks, } from './performance';
|
|
19
|
+
export { MemoryManager, WeakCache, processMediaInChunksMemory } from './memory';
|
|
20
|
+
export { checkNetworkConnectivity, validateUploadUrl as validateUploadUrlNetwork, adaptiveUpload, estimateBandwidth, NetworkMonitor, } from './networkPerformance';
|
|
21
|
+
export { runAfterInteractions, createOptimizedListData, createMemoizer, createThrottledRenderer, optimizeListRenderItem, createOptimizedImageSource, } from './rendering';
|
|
22
|
+
export { validateSecureUri, sanitizeFileName, validateFileContentType, validateSecureFileSize, validateBatchOperation, } from './security';
|
|
23
|
+
export { checkCameraPermission, checkCameraPermissionStatus, requestCameraPermission, checkStoragePermission, checkStoragePermissionStatus, requestStoragePermission, checkMicrophonePermission, checkMicrophonePermissionStatus, requestMicrophonePermission, checkAllPermissions, requestAllPermissions, openSettings, shouldShowRationale, getDefaultPermissionRationale, DEFAULT_RATIONALE, type PermissionStatus, type PermissionFeature, } from './permissions';
|
|
24
|
+
export declare const cropImageWithPerformance: (uri: string, options?: ImageCropOptions) => Promise<{
|
|
25
|
+
result: string;
|
|
26
|
+
metrics: PerformanceMetrics;
|
|
27
|
+
}>;
|
|
28
|
+
export declare const applyFilterWithPerformance: (uri: string, filterType?: FilterType) => Promise<{
|
|
29
|
+
result: string;
|
|
30
|
+
metrics: PerformanceMetrics;
|
|
31
|
+
}>;
|
|
32
|
+
export declare const debouncedRotateImage: (uri: unknown, degrees: unknown) => void;
|
|
33
|
+
export declare const throttledSetCameraFlash: (mode: unknown) => void;
|
|
34
|
+
export { LowMemoryCache, processMediaForLowEnd, processInSmallBatches, getOptimizedImageDimensions, shouldUseLowMemoryOptimizations, } from './lowMemoryCache';
|
|
35
|
+
export { debounceForLowEnd, throttleForLowEnd, runInBackgroundWithPriority, createLazyInitializer, processInChunks, efficientDelay, isMainThreadBusy, waitForMainThreadAvailable, requestEfficientAnimationFrame, cancelEfficientAnimationFrame, getCpuOptimizationLevel, supportsIdleCallback, requestIdleCallbackPolyfill, cancelIdleCallbackPolyfill, } from './cpuOptimization';
|
|
36
|
+
export { detectDeviceCapabilities, isLowEndDevice, getOptimizationLevel, getMemorySettings, getCpuSettings, getRenderingSettings, getNetworkSettings, getImageQualitySettings, shouldUseOptimization, createOptimizedConfig, createTestDeviceSpecs, } from './deviceCapabilities';
|
|
37
|
+
export type { DeviceSpecs } from './deviceCapabilities';
|
|
38
|
+
export { PerformanceMonitor } from './performanceMonitor';
|
|
39
|
+
export { useScreenReaderEnabled, useReducedMotion, useBoldText, } from './accessibility';
|
|
40
|
+
export type { CameraPickerOptions, FilePickerOptions, GalleryEditorOptions, MediaEditorItem, MediaEditorOptions, CameraAsset, CameraPickerResult, } from './types';
|
|
41
|
+
export { prependMediaHistory } from './mediaHistory';
|
|
42
|
+
export type { CameraTheme, FaceEffect, FilterType, FlashMode, ImageCropOptions, MediaMetadata, PerformanceMetrics, } from './types';
|
|
43
|
+
export type { ErrorCode } from './errors';
|
|
44
|
+
export declare function openCamera(): Promise<string>;
|
|
45
|
+
export { openCameraPicker, openDocumentPicker, openAudioPicker, openImageVideoPicker, openMediaEditor, openGalleryEditor, openDocument, startUpload, secureDeleteMedia, shareMedia, getMediaMetadata, getRecordedOriginalSize, startAudioRecording, stopAudioRecording, cancelAudioRecording, stopAndPublishAudioRecording, pauseAudioRecording, resumeAudioRecording, getAudioRecordingState, getAudioAmplitude, compressVideo, compressImage, addCompressionProgressListener, } from './nativeActions';
|
|
46
|
+
export type { CompressionProgressEvent } from './nativeActions';
|
|
47
|
+
export declare function getUploadState(): Promise<string>;
|
|
48
|
+
export declare function getNotificationHistory(): Promise<string>;
|
|
49
|
+
export declare function clearNotificationHistory(): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Real device-memory facts from the OS (Android: ActivityManager). Returns
|
|
52
|
+
* `{ isLowRamDevice, memoryClassMb, totalRamMb, availableRamMb,
|
|
53
|
+
* isCurrentlyLowMemory, cpuCores }`. detectDeviceCapabilities() consumes this
|
|
54
|
+
* to classify the device instead of guessing from screen size.
|
|
55
|
+
*/
|
|
56
|
+
export declare function getDeviceCapabilities(): Promise<Object>;
|
|
57
|
+
export declare function cropImage(uri: string, options?: ImageCropOptions): Promise<string>;
|
|
58
|
+
export declare function rotateImage(uri: string, degrees: number): Promise<string>;
|
|
59
|
+
export declare function applyFilter(uri: string, filterType?: FilterType): Promise<string>;
|
|
60
|
+
export declare function createAlbum(albumName: string): Promise<boolean>;
|
|
61
|
+
export declare function moveMediaToAlbum(uris: string[], albumId: string): Promise<boolean>;
|
|
62
|
+
/**
|
|
63
|
+
* Delete media files, securely overwriting their bytes first (Android).
|
|
64
|
+
*
|
|
65
|
+
* Resolves `true` when at least one file was removed. This boolean cannot say
|
|
66
|
+
* whether the secure overwrite actually succeeded — call
|
|
67
|
+
* {@link secureDeleteMedia} instead whenever that distinction matters, e.g.
|
|
68
|
+
* before telling the user their media was securely erased.
|
|
69
|
+
*/
|
|
70
|
+
export declare function deleteMedia(uris: string[]): Promise<boolean>;
|
|
71
|
+
export declare function setCameraFlash(mode?: FlashMode): Promise<void>;
|
|
72
|
+
export declare function setCameraTimer(delaySeconds: number): Promise<void>;
|
|
73
|
+
export declare function enableCameraGrid(enabled: boolean): Promise<void>;
|
|
74
|
+
export declare function setMediaCaption(uri: string, caption: string): Promise<boolean>;
|
|
75
|
+
export declare function trimVideo(uri: string, startTime: number, endTime: number): Promise<string>;
|
|
76
|
+
export declare function scanQRCode(): Promise<string>;
|
|
77
|
+
export declare function enableFaceDetection(enabled: boolean): Promise<void>;
|
|
78
|
+
export declare function setFaceEffect(effectType?: FaceEffect): Promise<void>;
|
|
79
|
+
export declare function setCameraTheme(theme?: CameraTheme | CameraThemeConfig): Promise<void>;
|
|
80
|
+
export { getMediaStorageManager, initializeMediaStorage, publishCachedMedia, getCacheInfo, cleanupExpiredCache, MediaStorageManager, } from './storage';
|
|
81
|
+
export { getMediaStorageService, initializeMediaStorageService, handleCapturedMedia, publishAllCachedMedia, getStorageSummary, MediaStorageService, } from './mediaStorageService';
|
|
82
|
+
export type { StoredMediaMetadata, MediaPublishResult, CleanupResult, StorageStats, MediaStorageLocation, MediaStorageStatus, MediaStorageConfig, SecureDeleteOptions, SecureDeleteResult, } from './types';
|
|
83
|
+
export { DatabaseManager, getDatabaseManager, initializeMediaDatabase, MediaRepository, getMediaRepository, MIGRATIONS, LATEST_SCHEMA_VERSION, runMigrations, assetToRecordInput, recordToAsset, rowToRecord, assetTypeToMediaType, mediaTypeToAssetType, normalizeSource, extensionForMimeType, resolveDocumentsPath, isPublishedToDocuments, detectSource, getDatabaseKey, isHardwareBackedKeyAvailable, useMediaDatabase, MEDIA_TABLE, MediaColumns, } from './db';
|
|
84
|
+
export type { MediaRecord, MediaRecordInput, MediaType, MediaSource, MediaFilter, MediaCounts, MediaQueryOptions, BatchStatement, Migration, MigrationExecutor, UseMediaDatabaseResult, } from './db';
|
|
85
|
+
export { NativeCustomVideoView } from './NativeCustomVideoView';
|
|
86
|
+
export type { NativeCustomVideoViewProps } from './NativeCustomVideoView';
|
|
87
|
+
export { NativeAnimatedImageView, isNativeAnimatedImageAvailable, } from './NativeAnimatedImageView';
|
|
88
|
+
export type { NativeAnimatedImageViewProps } from './NativeAnimatedImageView';
|
|
89
|
+
export { NativeMediaThumbnailView, MediaThumbnail, isNativeMediaThumbnailAvailable, } from './NativeMediaThumbnailView';
|
|
90
|
+
export type { NativeMediaThumbnailViewProps, MediaThumbnailProps, } from './NativeMediaThumbnailView';
|
|
91
|
+
export { NativeBlurView } from './NativeBlurView';
|
|
92
|
+
export type { NativeBlurViewProps } from './NativeBlurView';
|
|
93
|
+
export { NativeAudioPlayerView } from './NativeAudioPlayerView';
|
|
94
|
+
export type { NativeAudioPlayerViewProps } from './NativeAudioPlayerView';
|
|
95
|
+
export { GlobalAudioPlayerProvider, GlobalMiniAudioPlayer, useGlobalAudioPlayer } from './AudioPlayerContext';
|
|
96
|
+
export type { GlobalAudioPlayerProviderProps } from './AudioPlayerContext';
|
|
97
|
+
export { NativeDocumentPreviewView, getDocumentPreviewKind, isNativeDocumentPreviewAvailable, } from './NativeDocumentPreviewView';
|
|
98
|
+
export type { NativeDocumentPreviewViewProps, DocumentPreviewKind, } from './NativeDocumentPreviewView';
|
|
99
|
+
export { CameraPreview } from './CameraPreview';
|
|
100
|
+
export { ResponsivePreviewContainer, PREVIEW_WIDTH, PREVIEW_HEIGHT, WHATSAPP_ASPECT_RATIO, PORTRAIT_PREVIEW_ASPECT_RATIO, DEFAULT_PREVIEW_DIMENSION_CONFIG, calcPreviewDimensions, calcPortraitPreviewDimensions, usePreviewDimensions, usePortraitPreviewDimensions, } from './ResponsivePreviewContainer';
|
|
101
|
+
export type { PreviewDimensionConfig } from './ResponsivePreviewContainer';
|
|
102
|
+
export { CameraMediaLibrary, MediaLibraryScreen, RecordAudioScreen, ImagePreview, VideoPreview, DocumentPreview, AudioPreview, MediaMetadataHeader, ExpandableFab, ViewerCounter, DocumentTile, AudioTile, createLibraryIconRegistry, libraryIconRegistry, PlusCloseIcon, CircularSeekIcon, ViewDetailsIcon, libraryPalette, useLibraryPalette, createPalette, wp, hp, ms, fs, SCREEN_W, SCREEN_H, BASE_W, BASE_H, getFileSize, refreshAssetMetadata, refreshAssetMetadataBatch, } from './library';
|
|
103
|
+
export type { CameraMediaLibraryProps, MediaLibraryScreenProps, MediaLibraryFilterKey, RecordAudioScreenProps, VideoPreviewProps, MediaMetadataHeaderProps, ExpandableFabProps, ViewerCounterProps, ViewerCounterHandle, LibraryPalette, } from './library';
|
|
104
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
|